资源描述:
《基于遗传算的模糊控制器优化设计.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于遗传算法的模糊控制器优化设计一.基于遗传算法的模糊控制器优化设计思想:通常FLC是基于专家经验和知识进行设计的,但很多情况下专家经验不可得。这时可采用遗传算法来优化模糊控制规则,进而优化控制系统,使系统达到理想输出。1.模糊PID控制系统结构图2.基于遗传算法的模糊PID控制系统结构图二.设计思想第一步:初始化各项参数,设定种群规模(随机选择10条染色体),遗传代数(3代)。被控对象的传递函数为:。第二步:当遗传代数为1时,将各条染色体代入系统,计算系统输出,染色体适配值。将具有最大适配值的染色体取出,将具有最大适配值染色体运算所得的系统输出取出。将10条染色
2、体传入第二代,按适配值大小,交叉概率,变异概率进行复制,交叉和变异,从而产生第二代染色体。第三步:将新产生的染色体重新代入系统进行第二代计算。同理进行第三代染色体的计算。第四步:进行完三代染色体的系统输出,绘制每代中具有最大适配值时的系统输出图像。三:程序clccloseallT=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(
3、N,TM);yout=zeros(M,TM);%存放fitness=zeros(1,N);%************************************************%产生初始种群Wn=varb^2;n1=varb^2+varb*2;%每条染色体的长度mfpara1=randint(N,n,[1,varb]);%ruletablemfpara2=-1*rand(N,varb);%mfpara2(1),mfpara2(2),mfpara2(3)分别为an,bn,cnmfpara3=rand(N,varb);%mfpara3(1),mfpara3
4、(2),mfpara3(3)分别为ap,bp,cpinit=[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;whilep<=M%循环代数从1到3q=1whileq<=N%染色体数从1到10y=zeros(1,TM);u=zeros(1,TM);er=zeros(1,TM);yr=zeros(1,TM);e1=0;e2=0;E
5、1=0;y1=0;y2=0;y3=0;u1=0;u2=0;u3=0;e=zeros(1,TM);E=zeros(1,TM);fork=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*
6、E(k)+ki*sum(E)+kd*(E(k)-E1);E1=E(k);u1=u(k);e2=e1;e1=e(k);endfork=1:TMifabs(y(k)-1)<=0.1tr=k*T;%上升时间trbreakendendymax=0;fork=1:TMifymax7、值%归一化0—100if(tr>5)
8、(overshoot>2)
9、(accer>100)fitness2=0;elsetr1=tr*20;overshoot1=overshoot*50;accer1=accer*1;index=[tr1,abs(overshoot1),accer1];fitness1=(0.6*index(1)+1.2*index(2)+1.2*index(3))/3;fitness2=100-fitness1;end%if(overshoot<0.15)&(tr<1)&(accer<20)&(fitness2>85)%判断结束条件是否满足%ou
10、t=ini