版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业西安理工大学研究生课程论文/研究报告课程名称: 智能控制 任课教师: 论文/研究报告题目: 基于遗传算法的模糊控制器最优设计 完成日期: 2016 年 8 月 27 日学 科: 电力电子与电力传动 学 号: 姓 名: 1.基于遗传算法的模糊控制MATLAB程序:clear allclose allclcT=0.1; %控制系统采样时间TM=200; %控制系统运行次数time=zeros(1,TM);kp=0.2;ki=0.002;kd=20;tr=0; %定义初始种群
2、参数N=10; %初始种群数目M=3; %遗传代数varb=3; %语言值个数yout1=zeros(N,TM);yout=zeros(M,TM);fitness=zeros(1,N); %产生初始种群n=varb2;n1=varb2+varb*2; %每条染色体的长度mfpara1=randint(N,n,1,varb); %控制规则表mfpara2=-1*rand(N,varb); %mfpara2(1),mfpara2(2),mfpara2(3)分别为an,bn,cnmfpara3=rand(N,varb); %mfpara3(1),mfpara3(2),mfpara3(3)分别为ap,
3、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 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=z
4、eros(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);
5、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 ymax2)|(overshoot1)|(accer50) fitness2=0; else tr1=tr*50; overshoot1=overshoot*100; accer1=accer*2; index=tr1,abs(overshoot1),accer1; fitness1=(0.6*index(1)+1.2*index(2)+1.2*index(3)/3; fitn
6、ess2=100-fitness1; end fitness(q)=fitness2; y; yout1(q,:)=y; q=q+1 end %一代种群运行完毕 fitness maxfit1,h=max(fitness); maxfit(p)=maxfit1 %每代的最大适配值存入maxfit yout(p,:)=yout1(h,:); %每一代当适配值最大时,系统的阶跃响应输出 init=gene_tic(init,fitness,p,N,varb,n,n1); %调用遗传算法优化,得到新的种群 p=p+1end %运行3代后结束 for k=1:TM time(k)=k*T;end pl
7、ot(time,yout(1,:),r-,time,yout(2,:),g-,time,yout(3,:),b-)legend(遗传第1代,遗传第2代,遗传第3代)grid onbest=max(maxfit) e1=1;y=;e=;e1=0;y1=0;y2=0;y3=0;u1=0;u2=0;u3=0;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
8、)-e1)/T; u(k)=kp*e(k)+ki*sum(e)+kd*(e(k)-e1); u1=u(k); e1=e(k); endfigure(2)opt=find(maxfit=best);plot(time,y,-,time,yout(opt(1),:)legend(PID控制器,GA优化的模糊PID控制器)grid on各子函数MATLAB程序:模糊控制子程序fu_zzy.mfunction detae=fu_zzy(init,F,L,varb)if F=1 F=1;endif L=1 L=1;end %模糊控制规则an=init(10);bn=init(11);cn=init(12
9、);ap=init(13);bp=init(14);cp=init(15);a=newfis(fuzzf); %建立隶属度函数a=addvar(a,input,F,-1,1);a=addmf(a,input,1,NL,zmf,-1,an);a=addmf(a,input,1,ZR,trimf,an,0,ap);a=addmf(a,input,1,PL,smf,ap,1);a=addvar(a,input,L,-1,1);a=addmf(a,input,2,NL,zmf,-1,bn);a=addmf(a,input,2,ZR,trimf,bn,0,bp);a=addmf(a,input,2,PL
10、,smf,bp,1);a=addvar(a,output,detae,-1,1);a=addmf(a,output,1,NL,zmf,-1,cn);a=addmf(a,output,1,ZR,trimf,cn,0,cp);a=addmf(a,output,1,PL,smf,cp,1); %建立控制规则表rulelist=1 1 init(1) 1 1;1 2 init(2) 1 1;1 3 init(3) 1 1; 2 1 init(4) 1 1;2 2 init(5) 1 1;2 3 init(6) 1 1; 3 1 init(7) 1 1;3 2 init(8) 1 1;3 3 init(
11、9) 1 1;a=addrule(a,rulelist);a1=setfis(a,DefuzzMethod,mom);writefis(a1,fuzzf);a2=readfis(fuzzf); %模糊控制器输出detae=evalfis(F,L,a2);2)遗传算法子程序gene_tic.mfunction init=gene_tic(init,fitness,k,N,varb,n,n1)fitness=fitness;N=N;varb=varb;init=init; %复制sumfit=sum(fitness); %sumfit为每一代总的适应值zongfit(k)=sumfit; %保存每
12、一代总的适应值到zongfitsumfit1(1)=fitness(1);for i=2:N sumfit1(i)=sumfit1(i-1)+fitness(i);endlunpan=round(sumfit*rand(1,N);A=zeros(N,n1);for i=1:N for j=1:(N-1) if (lunpan(i)=0)&(lunpan(i)sumfit1(j)&(lunpan(i)=sumfit1(j+1) A(i,:)=init(j+1,:); end endendinit=A; %交叉pc=0.6; %交叉概率选为0.7Q=rand(1);place=round(n1-1
13、)*rand(1)+1); %产生交叉位match=randperm(N); %产生匹配对的随机序列B=zeros(N,n1);if Qpc for i=1:place B(:,i)=init(:,i); end for i=place:n1 for j=1:(N/2) B(match(j-1)*2+1),i)=init(match(j*2),i); B(match(j*2),i)=init(match(j-1)*2+1),i); end endendinit=B; %变异pm=0.01; %变异概率选为0.01d=round(N*n1*pm); %计算变异位个数if d=0 init=ini
14、t;elseif d=1 i=round(N*rand(1)+1); j=round(n1*rand(1)+1); if j=n init(i,j)=round(varb-1)*rand(1)+1); %如果是前n位数,则变异为1至VN中的一个 elseif j=n+varb init(i,j)=-1*randint(1,1,1,16)*1/16; %如果是n+1至n+3位数,则变异为-1至0之间中的一个 elseif j1 C=zeros(1,N*n1); x=randint(1,d,1,N*n1); %随机产生d个变异位置,存入x中 C=reshape(init,1,N*n1); %将N行
15、n1列的矩阵init转换为1行N*n1列的矩阵C for i=1:d if C(x(i)=0)&(C(x(i)=1 C(x(i)=randint(1,1,1,varb); %若变异位大于等于1,则随机选取(1,varb)之间的整数赋值 end end init=reshape(C,N,n1); %将变异后的1行N*n1列的矩阵C,转换为N行n1列的矩阵initendinit=init;程序运行结果程序运行过程中遗传各代的每条染色体的阶跃响应性能指标如下表1,2,3所示。表1 遗传第一代各染色体阶跃响应的性能指标染色体第1条第2条第3条第4条第5条第6条第7条第8条第9条第10条上升时间01.3
16、0001.10001.10001.10001.10001.10001.40001.80001.4000超调量-0.26731.64640.9836-0.5809-0.7620-0.76720.96781.98440.31880.6170累计误差118.4311162.2475172.2924139.0905189.3429195.7397166.9554215.314818.9711124.3250适应度值0000000054.06970表2 遗传第二代各染色体阶跃响应的性能指标染色体第1条第2条第3条第4条第5条第6条第7条第8条第9条第10条上升时间1.80001.80001.80001.
17、80001.80001.80001.80001.80001.80001.8000超调量0.31880.31880.31880.31880.28110.31880.31880.31880.31880.3188累计误差18.971118.971118.971118.971117.992818.971118.971118.971118.971119.3735适应度值54.069754.069754.069754.069756.363354.069754.069754.069754.069753.7478表3 遗传第三代各染色体阶跃响应的性能指标染色体第1条第2条第3条第4条第5条第6条第7条第8条第
18、9条第10条上升时间1.80001.80001.80001.80001.80001.80001.80001.80001.80001.8000超调量0.31880.31880.31880.31880.31880.31880.31880.20220.31880.3188累计误差18.971118.971119.373519.508518.971118.971118.971119.623318.971119.3735适应度值54.069754.069753.747853.639954.069754.069754.069758.214554.069753.7478程序运行的各代最大适应度值为:maxfit = 54.0697 56.3633 58.2145程序运行的最佳适应度值为:best = 58.2145Kp=0.2,ki=0.002,kd=10时系统运行结果如图1所示,优化后的控制器输出平稳但存在稳态误差,此时系统调节时间为1.8s,超调为2.1%,误差为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全国山西经济版小学信息技术第二册第一单元活动4《文字化妆轻松行》说课稿
- 2025年秋季三年级上学期班主任工作计划
- 2025年幼儿园教学计划开头语
- 2025年秋季初中教务处工作计划例文
- 2025年护士s管理工作计划范文
- 2025护士工作计划:护士年终工作计划范文
- 2025年度培训计划及实施统计表
- 2025年小学校园卫生工作计划范文
- 2025年小学四年级班主任个人工作计划
- 全国山西经济版小学信息技术第二册第三单元活动1《初识文件小管家》说课稿
- 冬春季呼吸道传染病防控
- 数学-2025年高考综合改革适应性演练(八省联考)
- 2024-2025学年安徽省六安市金安区三上数学期末调研试题含解析
- 2024年医疗器械经营质量管理规范培训课件
- 2024年计算机二级WPS考试题库380题(含答案)
- 高压配电柜系列产品出厂检验规范
- 节流孔板孔径计算
- 法院传票模板
- 企业价值图(企业价值管理图EVM)
- 水利施工风险管理责任落实表
- 双梁门式起重机计算书
评论
0/150
提交评论