⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.asv

📁 POS算法
💻 ASV
字号:
clear
clc
global popsize  %%粒子群个数
popsize=80;
global dimsize  %%变量个数
dimsize=10;
global a0min     %%a0下限  
a0min=1e-3;
global a0max     %%a0上限 
a0max=2e-3;
global a1min     %%a1下限
a1min=1e-10;
global a1max     %%a1上限
a1max=9e-10;
global dmin      %%d下限
dmin=100;
global dmax      %%d上限
dmax=800;
global gmin      %%g下限
gmin=-0.2;
global gmax      %%g上限
gmax=0.8;

global va0min     %%a0下限  
va0min=1e-3;
global va0max     %%a0上限 
va0max=2e-3;
global va1min     %%a1下限
va1min=1e-10;
global va1max     %%a1上限
va1max=9e-10;
global vdmin      %%d下限
vdmin=100;
global vdmax      %%d上限
vdmax=800;
global vgmin      %%g下限
vgmin=-0.2;
global vgmax      %%g上限
vgmax=0.8;

global wcmax    %%
wcmax=0.9;
global wcmin    %%
wcmin=0.1;
global c1
global c2
c1=2;
c2=2;
global maxgeneration                      %%迭代总次数
maxgeneration=100;
global generation
global PBEST
global GBEST
global PVALUER
global GVALUER
global YY
YY=[-0.54081-0.60692i,0.012149 + 0.68679i,0.11882 - 0.19483i,0.13601 - 0.34158i,-0.4657 + 0.35149i,0.57219 + 0.084515i,-0.30602 - 0.45357i,-0.12448 + 0.4733i,0.28253 - 0.22736i,-0.041232 - 0.046053i,-0.27818 + 0.10149i,0.35255 + 0.10889i,-0.15708-0.33035i,-0.12981+0.30804i,0.27992-0.10334i,-0.16859-0.046979i,-0.074748+0.027345i,0.18405+0.1087i,-0.06962-0.22639i,-0.11754+0.19898i,0.20472-0.035646i,-0.14713-0.09783i,0.015134 + 0.072464i,0.065154+0.05626i,-0.01676-0.14516i,-0.096746+0.11933i,0.14494-0.0074938i,-0.089348-0.095349i,0.0039871+0.09879i,0.030279-0.0085858i];
global f;
f=1000000:1000000:30000000;

 generation=1;                          %%第一次
 pop=initpop(popsize);            %%初始化
 [pbest,gbest,objvalue,gvaluer]=calobjvalue(pop);%%calobjvalue函数的功能是计算目标函数的适应度
 PBEST=pbest;
 GBEST=gbest;
 PVALUER=objvalue;
 GVALUER=gvaluer;
     %[pbest,gbest,pvaluer,objvaluetemp]=regulate(pop,pbest,gbest,objvalue);%%粒子在进化过程中依据其适应度,调节个体最好位置Pbest和群体最好位置best
 pop=renew(pop,PBEST,GBEST);              %%%对粒子的速度和位置进行进化

for generation=2:maxgeneration             %%迭代次数
   [pbest,gbest,objvalue]=calobjvalue(pop);%%calobjvalue函数的功能是计算目标函数的适应度
   for n=1:popsize
       if(objvalue(n,1)<PVALUER(n,1))
            PVALUER(n,1)=objvalue(n,1);
            PBEST(n,1:dimsize)=pbest(n,1:dimsize)
       end
   end
  [GVALUER,m]=min(PVALUER);
  GVALUER
  GBEST=PBEST(m,1:dimsize)
     %[pbest,gbest,pvaluer,objvaluetemp]=regulate(pop,PBEST,GBEST,objvalue);%%粒子在进化过程中依据其适应度,调节个体最好位置Pbest和群体最好位置best
   pop=renew(pop,PBEST,GBEST);              %%%对粒子的速度和位置进行进化
end
GBEST
GVALUER

k=0.95;
a0=GBEST(1,1);a1=GBEST(1,2);
g=[GBEST(1,7),GBEST(1,8),GBEST(1,9),GBEST(1,10)];
d=[GBEST(1,3),GBEST(1,4),GBEST(1,5),GBEST(1,6)];
c=1.5*10^8;
HH=0;
for i=1:4
      H=g(1,i)*exp(-(a0+a1*f.^k)*d(1,i)-j*2*pi*f.*d(1,i)/c);
     %H=g(1,i)*exp(-(a0+a1*f.^k)*d(1,i)).*exp(-j*2*3.14*f*d(1,i)/c);
      HH=HH+H;
 end
 plot(f,HH,'r-',f,YY,'g-');
 grid on;
 LEGEND('粒子群算法','实测值');



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -