T-S模糊系统结论参数的MATLAB仿真研究(3)
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:
或QQ:
处理(尽可能给您提供完整文档),感谢您的支持与谅解。

pm=0.1+1×0.1/G,第二代时,变异率
pm=0.1+2×0.1/G,以此类推。这样随着进化代数的增加,
pm也随着增加。
另外,为了防止遗传操作对最优个体的破坏,采取保留最优个体的方法。将每一代产生的最优个体放在该种群的最后,再继续进行下一代的操作。整个算法的流程图如图1所示。具体实现的遗传操作的主要代码如下:
G=300;%进化的代数
BsJ=0;
for kg=1:1:G
time(kg)=kg;
%*******step 1:计算误差****************
for i=1:1:Size
cansu1=Kpar(i,:);
selectcode=cansu1;
error=computeitae(selectcode);%计算均方误差;
BsJ1=error;
BsJi1(i)=BsJ1;
end
[OderJi,IndexJi]=sort(BsJi1);
BestJ(kg)=OderJi(1);
BJ=BestJ(kg);
Ji=BsJi1+1e-10;%避免除零
fi=1./Ji;% 求适应度的值
[Oderfi,Indexfi]=sort(fi)%对适应度值由小到大排列
Bestfi=Oderfi(Size);
BestS=Kpar(Indexfi(Size),:)%保存最大适应度值对应的染色体(参数)
%*******step2:选择和复制************
图1 算法流程图
fi_sum=sum(fi);
fi_Size=(Oderfi/fi_sum)*Size;
fi_S=floor(fi_Size);
r=Size-sum(fi_S);
Rest=fi_Size-fi_S;
[RestValue,Index]=sort(Rest);
for i=Size:-1:Size-r+1
fi_S(Index(i))=fi_S(Index(i))+1;
end
k=1;
for i=Size:-1:1
for j=1:1:fi_S(i)
TempE(k,:)=Kpar(Indexfi(i),:);
k=k+1;
end
end
% step 3交叉率不能太大
Pc=0.7;
for i=1:2:(Size-1)
temp=rand;
if Pc>temp
alfa=rand;
TempE(i,:)=alfa*Kpar(i+1,:)+(1-alfa)*Kpar(i,:);
TempE(i+1,:)=alfa*Kpar(i,:)+(1-alfa)*Kpar(i+1,:);
end
end
TempE(Size,:)=BestS;
Kpar=TempE;
%*******Step 4:变异*******变异率不能太大
Pm=0.15+[1:1:Size]*(0.01)/Size;
Pm_rand=rand(Size,CodeL);
Mean=(MaxX+MinX)/2;
Dif=(MaxX-MinX)/2;
for i=1:1:Size
for j=1:1:CodeL
if Pm(i)>Pm_rand(i,j)
TempE(i,j)=Mean(j)+Dif(j)*(rand- 0.4);
End
end
end
TempE(Size,:)=BestS;%保留最优个体
Kpar=TempE;
end
BestS
Best_J=BestJ(G)
figure(1);
plot(time,BestJ);
xlabel('Time(s)');Ylabel('Best J');
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说计算机T-S模糊系统结论参数的MATLAB仿真研究(3)在线全文阅读。
T-S模糊系统结论参数的MATLAB仿真研究(3).doc
将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
下载失败或者文档不完整,请联系客服人员解决!