最新模糊自适应整定PID控制matlab仿真程序

上传人:人*** 文档编号:508110493 上传时间:2024-01-21 格式:DOCX 页数:11 大小:176.55KB
返回 下载 相关 举报
最新模糊自适应整定PID控制matlab仿真程序_第1页
第1页 / 共11页
最新模糊自适应整定PID控制matlab仿真程序_第2页
第2页 / 共11页
最新模糊自适应整定PID控制matlab仿真程序_第3页
第3页 / 共11页
最新模糊自适应整定PID控制matlab仿真程序_第4页
第4页 / 共11页
最新模糊自适应整定PID控制matlab仿真程序_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《最新模糊自适应整定PID控制matlab仿真程序》由会员分享,可在线阅读,更多相关《最新模糊自适应整定PID控制matlab仿真程序(11页珍藏版)》请在金锄头文库上搜索。

1、模糊自适应整定PID控制mat l ab仿真程序(刘金锟-先进PID控制及其MATLAB仿真)作者XXXX 日期XXXX这个例子的程序百度文库里有很多版本,但我下了很多都有错误,运行不了。以下程序我一字一字的敲出来的,已经成功运行,绝对无误。仿真实例,被控对象为(S)二 523500ps 3 + 87.35s 2 +10470s米样时间为1ms,米用模糊PID控制进彳丁阶跃响应,在第3 00个米样 时间时控制器输出加1。0的干扰,相应的运行结果如图113所示。仿真程序如下:将以下程序保存为f uzzypid.m文件,即可得到仿真 结果。%fuz zy tunning PID con t r o

2、l cle a r a ll;clear all;a二newfis(fuzzpid);a二addvar (a,inp ut ,e,, -3,3);%parameter ea=ad dmf(a,input, 1, NB,zmf,-3, 一1); a = addmf(a,input, 1,NMZ, t rimf, -3, 2,0);a二addmf(a,inpu t,1,NS, tr imf , 一3, 一 1 ,1); a=addmf(a,input ,1,,Ztrimf, -2,0,2);a二addm f(a,z input,, 1, PS, trimf,1,1, 3); a=addmf(a,i

3、nput,1,PM,trimf,0,2,3); a=addmf(a,input,1,PB,smf,1,3);a=addv ar(a,zinput ,ec,一3,3);% p arameter eca=a ddmf(a,inpu t ,2,NB,zmf , -3, 1); a=ad dmf (a,inp ut , 2,NM, trimf, 一3 ,一2,0); a二addmf (a,input ,2,NS,trimf,-3, 1,1);a=addmf(a,input,,2,Z,trimf,-2,0,2);a=addmf(a,input,2,PS,,trimf,-1,1,3); a=addmf(a

4、,input,,2,PM,,trimf,0,2,3);a二addmf(ainput,2,PB,smf,l, 3);a二addv ar (a,output r ,kp,一0。3,0。3);%param eter kpa二 a ddmf(a,out put, 1, NB, zmf,一 0 .3, -0。1); a=addmf(a, f output ,1,NM, tr imf,-0.3, -0。2,0);a= a ddmf(a, f output ,1,NS, t rimf, 一0. 3,-0。1, 0. 1);a二addmf(a, output ,1,Z,trimf,0.2,0, 0。 2);a

5、=ad dmf(a,ou tpu t, 1,PS, trimf,0.1, 0.1,0.3);a =addm f(a,output, 1,PM, trimf, 0,0。2, 0.3); a=a ddm f(a,ou tput,1,PB,, smf,01,03);a二addvar(a,ou tpu t, ki,0. 0 6,0.06); %p a rameter kia =addmf(a,ou tput ,2,NB,zmf, 0.06, 一0。 02);a=ad dmf(a, output ,2,NM, t rimf,-0.06,-0。0 4,0);a=addmf(a,output,2,NS, t

6、rimf,0.06, 0。0 2, 0. 02);a= a ddmf(a,ou tput ,2,Z, trimf,-0.04,0,0。04); a=ad dmf(a, o utput ,2,PS, t rimf, -0。02, 0.02,0。06);a=addmf(a,output,2,PM,trimf,0,0.04, 0.06);a=ad dmf(a,o utput ,2,PB,smf,0o 02,0。06);a=ad dvar(a,o utput, kd, 3,3);%par a me terkda=addmf(a,output,3,NB,zmf,-3,1); a=addmf(a,outp

7、ut,3,NM,trimf,-3,-2,0);a二addmf(a, output, 3,NS, trimf, 3,1, 1); a = a ddmf(a,output ,3,Z, trimf, 2, 0,2); a=addmf(a,output ,3,PS, trimf,一1,1,3); a二addm f(a, out putf ,3,PMZ,t rimf7 , 0, 2,3); a=addmf(a,ou tpu t,3,PB,, f smf , 1,3);rulelist=11 7 151 1;12 7 1311;1 3 6 2 111;1 4 6 2111;1 5 5311 1;1 6 4

8、421 1;1 7 4 4511;2 1 7 1 5 1 1;2 2 7 1 3 11;2 3 6 2111;2 453 2 1 1 ;2 5 5 3 2 1 1;2 6 44 31 1;2 7 3 4 4 1 1;3 1 6 141 13 2 6 2 3 11;3 3 63 2 11;3 4 5 3 2 1 1;3 5 4431 1;36 3 5 3 1 1;3 73 5 4 11;4 1 624 11;4 2 6 2 311;4 35 3 31 1;4 4 443 1 1;4 5 35 31 1;4 6 26 31 1;4 7 2 64 1 1;5 1 5 2 411;5 2 53 4 1

9、 1;5 3 4 4 4 1 1;5 4 35 4 1 1;55 3 54 11;5 6 2 6 4 1 1;5 7 2 7 411;6154711;6 24451 1;633551 164255 1 1;6 5265 11;6 6 2 7 5 1 1;6 717 7 1 1;7 1 44 71 1;7 2 4 4 61 1;7 3 2 5 6 1 1;7 4 2 6 6 1 1;7 5 2 6 5 1 1;7 617 5 11;77 177 1 1;a=addrule(a,rulelist);a = setfis(a, DefuzzMethod,mom); writ efis (a, fuz

10、zpid);a=readfis(fu zzp id);%PID contro lie rt s=0.001;sys二 tf (5。235e 005, 1,87。35,1。04 7e004,0); dsys 二 c2d(sy s,t s, tusti n);n um,de n二tfdata(d sys,vz);u_1=0oO; u_2=0oO ;u_3=0.0; y_1=0;y_2=0;y_3=0x二0, 0,0;error_1=O;e _1=0o 0;e c _1=0.0; kp0=0.4O;kd0=1.0;kiO=0.O;for k=1:1:5O0 time(k)=k*ts;rin(k)=1

11、;%using f u zzy inference to tu nning PI D k_pid=e valfis(e_1, ec_1 ,a);kp (k)=kpO + k_pid(l);ki (k) = kiO+k_pid (2);k d(k) =kd 0 +k_pid(3);u(k)二kp(k)*x(l) + kd(k)*x(2)+ki(k)*x (3);if k=300 %adding d i s t urbane e(lo0v at time 0.3s) u(k)=u(k)1O;en dif u(k)=10u(k)=10;endif u(k)=10u(k)=-10;endyou t (

12、k)=一den(2)*y_lden(3)*y_2den (4)*y_ 3 +num (l)*u(k) + num (2) *u_1+num(3)*u_2+num(4)*u_3; error(k)=rin(k)-yout(k);%return of pid parame t ers%u _ 3 =u_2;u_2=u_l;u_1=u(k);y_3=y_2; y_2=y_ l ; y_1=yout(k);x(l)=error(k); %ealeula ting Px (2) =erro r (k)一er r or_1;%eal culating Dx(3)=x (3) +error(k); %cal

13、cula ting De_l=x(l); ec_l=x(2);error_2 =err or_ 1; error_l =er ror(k); end showrule(a) figured) ;pl ot(ti me,rin, b , ti me,y out,,r); xla bel ( ti me(s) ;yl abel ( rin, yout);f igu re(2); p lot (t ime,err or,rz)xlabel(time(s);ylabel ( e rror );figure (3) ;p l ot(ti me,u, r);x labe l( time(s);ylabel( u z);figure(4);pl ot(ti me,kp,r); xlabel ( time(s);ylabel( k p );figure(5);plot(time,ki,r); xlabel(time(s);ylabel( ki );figure(6);plot(time,kd,r); xlabel (time(s),);ylabel( kd );figure(7);plotmf(a,input,1);f igu re (8);pl otmf (a,inp ut ,2

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号