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

📄 simtest3.m

📁 氧乐果控制过程
💻 M
字号:
function genetic
global a b oldpop newpop popsize lchrom maxgen pcross pmutation fitu;
global min max minpp maxpp k lc gen s;
a=[0 0 0];
b=[2 2 1];
popsize=6;
lchrom=18;
lc=lchrom/3;
% maxgen=10;
pcross=[0.6 0.6 0.6];
pmutation=0.02;
gen=0;
k=1;
% %********************************群体的初始化*******************************%
for s=1:popsize
oldpop{s}.chrom=randint(1,18);
oldpop{s}.dvalue=decode(oldpop{s}.chrom);
kp=oldpop{s}.dvalue(1);
ki=oldpop{s}.dvalue(2);
kd=oldpop{s}.dvalue(3);
oldpop{s}.fitness=1;                %计算每个个体的适应度%
oldpop{s}.parent1=0;
oldpop{s}.parent2=0;
oldpop{s}.xsite=0;
% aa=oldpop{k}.fitness;
end
statistics(oldpop);
% %**************************************************************************

sim('test1')
J

end
%*********************译码*************************************
function dval=decode(x)
global a b;
m=[0 0 0];
for i=1:3
    for j=1:6
    m(i)=m(i)+x((i-1)*6+j)*(2^(6-j));
    end
end
for i=1:3
    dval(i)=a(i)+m(i)*(b(i)-a(i))/(2^6-1);
end
end
%**************************************************************


%*******************群体适应度计算******************************
function statistics(pop)
global newpop oldpop popsize min max maxpp minpp;
sumfitness=pop{1}.fitness;
min=pop{1}.fitness;
max=pop{1}.fitness;
maxpp=1;
minpp=1;
for j=1:popsize
sumfitness=sumfitness+pop{j}.fitness;
    if (pop{j}.fitness>max)
        max=pop{j}.fitness;
        maxpp=j;
    end
    if(pop{j}.fitness<min)
        min=pop{j}.fitness;
        minpp=j;
    end
end
avg=sumfitness/popsize;
end
%************************************************************

⌨️ 快捷键说明

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