1、专家PID控制系统Matlab仿真 专家PID控制系统Matlab仿真摘要:分析了一个速度控制器的控制仿真。其传递函数为: 使用专家PID控制系统,输入信号为阶跃信号,取采样时间为1ms,画出阶跃响应曲线和误差变化曲线。0引言 专家控制(Expert Control)的实质是基于受控对象和控制规律的各种知识,并以智能的方式利用这些知识来设计控制器。利用专家经验来设计PID参数便构成专家PID控制。 典型的二阶系统单位阶跃响应误差曲线如图1、2所示。对于典型的二阶系统阶跃响应过程作如下分析,根据误差及其变化,可设计专家PID控制器,该控制器可分为五种情况进行设计。1设计 根据误差及其变化,可设计
2、专家PID控制器,该控制器可分为以下五种情况进行设计: (1)当时,说明误差的绝对值已经很大,不论误差变化趋势如何,都应考虑控制器的输出应按最大或最小)输出,以达到迅速调整误差,使误差绝对值以最大速度减小。此时,它相当于实施开环控制。 (2)当时,说明误差在朝误差绝对值增大方向变化,或误差为某一常值,未发生变化。此时,如果,说明误差也较大,可考虑由控制器实施较强的控制作用,以达到扭转误差绝对值朝减小方向变化,并迅速减小误差的绝对值。此时,如果,说明尽管误差朝绝对值增大方向变化,但误差绝对值本身并不很大,可考虑控制器实施一般的控制作用,只要扭转误差的变化趋势,使其初误差绝对值减小方向变化。 (3
3、)当,或时,说明误差的绝对值朝减小的方向变化,或者已经达到平衡状态。此时,可考虑采取保持控制器输出不变。 (4)当,时,说明误差处于极值状态。如果此时误差的绝对值较大,可考虑实施较强的控制作用。 (5)当时,说明误差的绝对值很小,此时加入积分,减少稳态误差。2仿真图图1 阶跃响应曲线图2 误差曲线3程序%Expert PID Controllerclear all;close all;ts=0.001;sys=tf(5.235e005,1,87.35,1.047e004,0);dsys=c2d(sys,ts,z);num,den=tfdata(dsys,v);u_1=0.0;u_2=0.0;u
4、_3=0.0;y_1=0;y_2=0;y_3=0;x=0,0,0;x2_1=0;kp=0.6;ki=0.03; kd=0.01;error_1=0;for k=1:1:500time(k)=k*ts;rin(k)=1.0; %Tracing Jieyue Signalu(k)=kp*x(1)+kd*x(2)+ki*x(3); %PID Controller%Expert control ruleif abs(x(1)0.8 %Rule1:Unclosed control firstly u(k)=0.45;elseif abs(x(1)0.40 u(k)=0.40;elseif abs(x(1
5、)0.20 u(k)=0.12; elseif abs(x(1)0.01 u(k)=0.10; end if x(1)*x(2)0|(x(2)=0) %Rule2 if abs(x(1)=0.05 u(k)=u_1+2*kp*x(1); else u(k)=u_1+0.4*kp*x(1); endend if (x(1)*x(2)0)|(x(1)=0) %Rule3 u(k)=u(k);endif x(1)*x(2)0&x(2)*x2_1=0.05 u(k)=u_1+2*kp*error_1; else u(k)=u_1+0.6*kp*error_1; endendif abs(x(1)=10
6、 u(k)=10;endif u(k)=-10 u(k)=-10;end%Linear modelyout(k)=-den(2)*y_1-den(3)*y_2-den(4)*y_3+num(1)*u(k)+num(2)*u_1+num(3)*u_2+num(4)*u_3;error(k)=rin(k)-yout(k);%-Return of PID parameters-%u_3=u_2;u_2=u_1;u_1=u(k);y_3=y_2;y_2=y_1;y_1=yout(k); x(1)=error(k); % Calculating Px2_1=x(2);x(2)=(error(k)-err
7、or_1)/ts; % Calculating Dx(3)=x(3)+error(k)*ts; % Calculating Ierror_1=error(k);endfigure(1);plot(time,rin,b,time,yout,r);xlabel(time(s);ylabel(rin,yout);figure(2);plot(time,rin-yout,r);xlabel(time(s);ylabel(error);参考文献:1董海鹰. 智能控制理论及应用M.中国铁道出版社:北京.2006,47-48(页)模糊PID控制系统Matlab仿真摘要:分析了一个速度控制器的控制仿真。其传递
8、函数为: 使用模糊PID控制系统,输入信号为阶跃信号,取采样时间为1ms,画出阶跃响应曲线和误差变化曲线。0引言 模糊PID控制算法以误差E和Ec为输入,利用模糊控制规则在线对PID参数进行修改,以满足不同时刻的E和Ec对PID参数的要求,输出为Kp,Ki,Kd。图1 模糊控制原理图 该模糊推理控制系统是一个两输入三输出的形式,输入变量为E和Ec,输出变量为Kp,Ki和Kd,其调整原则为:(1)当误差|E|较大时,为使系统具有较好的快速跟踪性能,不论误差的变化趋势如何,都应该取较大的Kp和较小的Kd,同时为避免系统响应出现较大的超调,应对积分作用加以限制,取较小的Ki值。(2)当误差|E|处于
9、中等大小时,为使系统响应具有较小的超调,Kp应取得小些,同时为保证系统的响应速度,Ki和Kd的大小要适中,其中Kd的取值对系统响应的影响较大。(3)当误差|E|较小时,为保证系统具有较好的稳态性能,Kp和Ki应取得大些,同时为避免系统在设定值附近出现振荡,并考虑系统的抗干扰性能,当|E|较小时,Kd可取大些;当|E|较大时,Kd应取小些。1建立控制规则表 输入变量E,Ec和Kd语言值的模糊子集取为负大,负中,负小,零,正小,正中,正大,并简记为NB,NM,NS,ZO,PS,PM,PB,论域为-3,-2,-l,0,1,2,3。Ki论域为-0.06,-0.04,-0.02,0,0.02,0.04,
10、0.06,Kp论域为-0.3,-0.2,-0.l,0,0.1,0.2,0.3。隶属函数采用三角形函数, 根据对已有控制系统设计经验的总结,得到PID三个控制参数的模糊控制规则表,见表1表3。表1 Kp的模糊规则表ekpde NBNMNSZOPSPMPBNBPBPBPMPMPSZOZONMPBPBPMPSPSZONSNSPMPMPMPSZONSNSZOPMPMPSZONSNMNMPSPSPSZONSNSNMNMPMPSZONSNMNMNMNBPBZOZONMNMNMNBNB注:NB、NM、NS、ZO、PS、PM、PB分别表示负大、负中、负小、零、正小、正中、正大。表2 Ki的模糊规则表ekide
11、 NBNMNSZOPSPMPBNBNBNBNMNMNSZOZONMNBNBNMNSNSZOZONSNBNMNSNSZOPSPSZONMNMNSZOPSPMPMPSNMNSZOPSPSPMPBPMZOZOPSPSPMPBPBPBZOZOPSPMPMPBPB表3 Kd的模糊规则表ekdde NBNMNSZOPSPMPBNBPSNSNBNBNBNMPSNMPSNSNBNMNMNSZONSZONSNMNMNSNSZOZOZONSNSNSNSNSZOPSZOZOZOZOZOZOZOPMPBNSPSPSPSPSPBPBPBPMPMPMPSPSPB2仿真结果图2 ki的隶属度函数曲线图3 kp的隶属度函数曲
12、线图4 ec的隶属度函数曲线图5 e的隶属度函数曲线图6 kd的曲线图7 ki的曲线图7 kp的曲线图8 u的输出曲线图9 e的曲线图10 阶跃响应的曲线图11 规则输入输出3输出49条规则ans =1. If (e is NB) and (ec is NB) then (kp is PB)(ki is NB)(kd is PS) (1) 2. If (e is NB) and (ec is NM) then (kp is PB)(ki is NB)(kd is NS) (1) 3. If (e is NB) and (ec is NS) then (kp is PM)(ki is NM)(k
13、d is NB) (1) 4. If (e is NB) and (ec is Z) then (kp is PM)(ki is NM)(kd is NB) (1) 5. If (e is NB) and (ec is PS) then (kp is PS)(ki is NS)(kd is NB) (1) 6. If (e is NB) and (ec is PM) then (kp is Z)(ki is Z)(kd is NM) (1) 7. If (e is NB) and (ec is PB) then (kp is Z)(ki is Z)(kd is PS) (1) 8. If (e
14、 is NM) and (ec is NB) then (kp is PB)(ki is NB)(kd is PS) (1) 9. If (e is NM) and (ec is NM) then (kp is PB)(ki is NB)(kd is NS) (1) 10. If (e is NM) and (ec is NS) then (kp is PM)(ki is NM)(kd is NB) (1)11. If (e is NM) and (ec is Z) then (kp is PS)(ki is NS)(kd is NM) (1) 12. If (e is NM) and (ec
15、 is PS) then (kp is PS)(ki is NS)(kd is NM) (1)13. If (e is NM) and (ec is PM) then (kp is Z)(ki is Z)(kd is NS) (1) 14. If (e is NM) and (ec is PB) then (kp is NS)(ki is Z)(kd is Z) (1) 15. If (e is NS) and (ec is NB) then (kp is PM)(ki is NB)(kd is Z) (1) 16. If (e is NS) and (ec is NM) then (kp i
16、s PM)(ki is NM)(kd is NS) (1)17. If (e is NS) and (ec is NS) then (kp is PM)(ki is NS)(kd is NM) (1)18. If (e is NS) and (ec is Z) then (kp is PS)(ki is NS)(kd is NM) (1) 19. If (e is NS) and (ec is PS) then (kp is Z)(ki is Z)(kd is NS) (1) 20. If (e is NS) and (ec is PM) then (kp is NS)(ki is PS)(k
17、d is NS) (1)21. If (e is NS) and (ec is PB) then (kp is NS)(ki is PS)(kd is Z) (1) 22. If (e is Z) and (ec is NB) then (kp is PM)(ki is NM)(kd is Z) (1) 23. If (e is Z) and (ec is NM) then (kp is PM)(ki is NM)(kd is NS) (1) 24. If (e is Z) and (ec is NS) then (kp is PS)(ki is NS)(kd is NS) (1) 25. I
18、f (e is Z) and (ec is Z) then (kp is Z)(ki is Z)(kd is NS) (1) 26. If (e is Z) and (ec is PS) then (kp is NS)(ki is PS)(kd is NS) (1) 27. If (e is Z) and (ec is PM) then (kp is NM)(ki is PM)(kd is NS) (1) 28. If (e is Z) and (ec is PB) then (kp is NM)(ki is PM)(kd is Z) (1) 29. If (e is PS) and (ec
19、is NB) then (kp is PS)(ki is NM)(kd is Z) (1) 30. If (e is PS) and (ec is NM) then (kp is PS)(ki is NS)(kd is Z) (1) 31. If (e is PS) and (ec is NS) then (kp is Z)(ki is Z)(kd is Z) (1) 32. If (e is PS) and (ec is Z) then (kp is NS)(ki is PS)(kd is Z) (1) 33. If (e is PS) and (ec is PS) then (kp is
20、NS)(ki is PS)(kd is Z) (1) 34. If (e is PS) and (ec is PM) then (kp is NM)(ki is PM)(kd is Z) (1) 35. If (e is PS) and (ec is PB) then (kp is NM)(ki is PB)(kd is Z) (1) 36. If (e is PM) and (ec is NB) then (kp is PS)(ki is Z)(kd is PB) (1) 37. If (e is PM) and (ec is NM) then (kp is Z)(ki is Z)(kd i
21、s PS) (1) 38. If (e is PM) and (ec is NS) then (kp is NS)(ki is PS)(kd is PS) (1)39. If (e is PM) and (ec is Z) then (kp is NM)(ki is PS)(kd is PS) (1) 40. If (e is PM) and (ec is PS) then (kp is NM)(ki is PM)(kd is PS) (1)41. If (e is PM) and (ec is PM) then (kp is NM)(ki is PB)(kd is PS) (1)42. If
22、 (e is PM) and (ec is PB) then (kp is NB)(ki is PB)(kd is PB) (1)43. If (e is PB) and (ec is NB) then (kp is Z)(ki is Z)(kd is PB) (1) 44. If (e is PB) and (ec is NM) then (kp is Z)(ki is Z)(kd is PM) (1) 45. If (e is PB) and (ec is NS) then (kp is NM)(ki is PS)(kd is PM) (1)46. If (e is PB) and (ec
23、 is Z) then (kp is NM)(ki is PM)(kd is PM) (1) 47. If (e is PB) and (ec is PS) then (kp is NM)(ki is PM)(kd is PS) (1)48. If (e is PB) and (ec is PM) then (kp is NB)(ki is PB)(kd is PS) (1)49. If (e is PB) and (ec is PB) then (kp is NB)(ki is PB)(kd is PB) (1)4 程序:%Fuzzy Tunning PID Controlclear all
24、;close all;a=newfis(fuzzpid);a=addvar(a,input,e,-3,3); %Parameter ea=addmf(a,input,1,NB,zmf,-3,-1);a=addmf(a,input,1,NM,trimf,-3,-2,0);a=addmf(a,input,1,NS,trimf,-3,-1,1);a=addmf(a,input,1,Z,trimf,-2,0,2);a=addmf(a,input,1,PS,trimf,-1,1,3);a=addmf(a,input,1,PM,trimf,0,2,3);a=addmf(a,input,1,PB,smf,1
25、,3);a=addvar(a,input,ec,-3,3); %Parameter eca=addmf(a,input,2,NB,zmf,-3,-1);a=addmf(a,input,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,input,2,PM,trimf,0,2,3);a=addmf(a,input,2,PB,smf,1,3);a=addvar(a,output,k
26、p,-0.3,0.3); %Parameter kpa=addmf(a,output,1,NB,zmf,-0.3,-0.1);a=addmf(a,output,1,NM,trimf,-0.3,-0.2,0);a=addmf(a,output,1,NS,trimf,-0.3,-0.1,0.1);a=addmf(a,output,1,Z,trimf,-0.2,0,0.2);a=addmf(a,output,1,PS,trimf,-0.1,0.1,0.3);a=addmf(a,output,1,PM,trimf,0,0.2,0.3);a=addmf(a,output,1,PB,smf,0.1,0.3
27、);a=addvar(a,output,ki,-0.06,0.06); %Parameter kia=addmf(a,output,2,NB,zmf,-0.06,-0.02);a=addmf(a,output,2,NM,trimf,-0.06,-0.04,0);a=addmf(a,output,2,NS,trimf,-0.06,-0.02,0.02);a=addmf(a,output,2,Z,trimf,-0.04,0,0.04);a=addmf(a,output,2,PS,trimf,-0.02,0.02,0.06);a=addmf(a,output,2,PM,trimf,0,0.04,0.
28、06);a=addmf(a,output,2,PB,smf,0.02,0.06);a=addvar(a,output,kd,-3,3); %Parameter kpa=addmf(a,output,3,NB,zmf,-3,-1);a=addmf(a,output,3,NM,trimf,-3,-2,0);a=addmf(a,output,3,NS,trimf,-3,-1,1);a=addmf(a,output,3,Z,trimf,-2,0,2);a=addmf(a,output,3,PS,trimf,-1,1,3);a=addmf(a,output,3,PM,trimf,0,2,3);a=addmf(a,output,3,PB,smf,1,3);rulelist=1 1 7 1 5 1 1; 1 2 7 1 3 1 1; 1 3 6 2 1 1 1; 1 4 6 2 1 1 1;
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2