基于遗传算法的模糊控制器优化设计.docVIP

  • 22
  • 0
  • 约6.61千字
  • 约 8页
  • 2016-10-16 发布于天津
  • 举报

基于遗传算法的模糊控制器优化设计.doc

基于遗传算法的模糊控制器优化设计.doc

基于遗传算法的模糊控制器优化设计 基于遗传算法的模糊控制器优化设计思想: 通常FLC是基于专家经验和知识进行设计的,但很多情况下专家经验不可得。这时可采用遗传算法来优化模糊控制规则,进而优化控制系统,使系统达到理想输出。 模糊PID控制系统结构图 基于遗传算法的模糊PID控制系统结构图 设计思想 第一步:初始化各项参数,设定种群规模(随机选择10条染色体),遗传代数(3代)。 被控对象的传递函数为:。 第二步:当遗传代数为1时,将各条染色体代入系统,计算系统输出,染色体适配值。 将具有最大适配值的染色体取出,将具有最大适配值染色体运算所得的系统输出取出。将10条染色体传入第二代,按适配值大小,交叉概率,变异概率进行复制,交叉和变异,从而产生第二代染色体。 第三步:将新产生的染色体重新代入系统进行第二代计算。同理进行第三代染色体的计算。 第四步:进行完三代染色体的系统输出,绘制每代中具有最大适配值时的系统输出图像。 三:程序 clc close all T=0.1; %控制系统采样时间 TM=1000; %控制系统运行次数 time=zeros(1,TM); %E=zeros(1,TM); kp=0.2;ki=0.002;kd=10; tr=0; %定义初始种群参数 N=10; %初始种群数目 M=3; %遗传代数 varb=3; %语言值个数 yout1=zeros(N,TM); yout=zeros(M,TM);%存放 fitness=zeros(1,N); %************************************************ %产生初始种群W n=varb^2; n1=varb^2+varb*2; %每条染色体的长度 mfpara1=randint(N,n,[1,varb]); %rule table mfpara2=-1*rand(N,varb); %mfpara2(1),mfpara2(2),mfpara2(3)分别为an,bn,cn mfpara3=rand(N,varb); %mfpara3(1),mfpara3(2),mfpara3(3)分别为ap,bp,cp init=[mfpara1,mfpara2,mfpara3]; %离散化被控对象 num=[1]; den=conv(conv([1,0.1],[1,0.2]),[1,0.7]); g=tf(num,den); yn=c2d(g,T,zoh); [tt,ff]=tfdata(yn,v); %循环开始 p=1; while p=M %循环代数从1到3 q=1 while q=N %染色体数从1到10 y=zeros(1,TM); u=zeros(1,TM); er=zeros(1,TM); yr=zeros(1,TM); e1=0;e2=0;E1=0; y1=0;y2=0;y3=0; u1=0;u2=0;u3=0; e=zeros(1,TM); E=zeros(1,TM); for k=1:TM %运行系统 yr(k)=1; y(k)=-ff(2)*y1-ff(3)*y2-ff(4)*y3+tt(2)*u1+tt(3)*u2+tt(4)*u3; y3=y2;y2=y1;y1=y(k); u3=u2;u2=u1; e(k)=yr(k)-y(k); er(k)=(e(k)-e1)/T; detae=fu_zzy(init(q,:),e(k),er(k),varb); %调用模糊控制规则程序 E(k)=e(k)+detae; u(k)=kp*E(k)+ki*sum(E)+kd*(E(k)-E1); E1=E(k); u1=u(k); e2=e1;e1=e(k); end for k=1:TM if abs(y(k)-1)=0.1 tr=k*T; %上升时间tr break end end ymax=0; for k=1:TM if ymaxy(k) ymax=y(k); %最大输出ymax end end for k=1:T

文档评论(0)

1亿VIP精品文档

相关文档