电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

PID控制算法的MATLAB仿真分析VIP免费

PID控制算法的MATLAB仿真分析_第1页
1/15
PID控制算法的MATLAB仿真分析_第2页
2/15
PID控制算法的MATLAB仿真分析_第3页
3/15
PID 的 MATLAB 仿真程序: %PID Controler 不完全微分 clear all; close all; ts=20; sys=tf([1],[60,1],'inputdelay',80); dsys=c2d(sys,ts,'zoh'); [num,den]=tfdata(dsys,'v'); u_1=0;u_2=0;u_3=0;u_4=0;u_5=0; ud_1=0; y_1=0;y_2=0;y_3=0; error_1=0; ei=0; for k=1:1:100 time(k)=k*ts; rin(k)=1.0; %Linear model yout(k)=-den(2)*y_1+num(2)*u_5; D(k)=0.01*rands(1); yout(k)=yout(k)+D(k); error(k)=rin(k)-yout(k); %PID Controller with partly differential ei=ei+error(k)*ts; kc=0.30; ki=0.0055; TD=140; kd=kc*TD/ts; Tf=180; Q=tf([1],[Tf,1]); %Low Freq Signal Filter M=2; %M=1 不完全微分, %M=2 普通 Pid 控制!! if M==1 %Using PID with Partial differential alfa=Tf/(ts+Tf); ud(k)=kd*(1-alfa)*(error(k)-error_1)+alfa*ud_1; u(k)=kc*error(k)+ud(k)+ki*ei; ud_1=ud(k); elseif M==2 %Using Simple PID u(k)=kc*error(k)+kd*(error(k)-error_1)+ki*ei; end %Restricting the output of controller if u(k)>=10 u(k)=10; end if u(k)<=-10 u(k)=-10; end u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k); y_3=y_2;y_2=y_1;y_1=yout(k); error_1=error(k); end figure(1); plot(time,rin,'b',time,yout,'r'); xlabel('time(s)');ylabel('rin,yout'); 由仿真结果可以看出,采用不完全微分型PID 算法,引入不完全微分后能有效克服普通PID 的不足,尽管不完全微分算法比普通PID 控制算法要复杂的多,但由于其良好的控制特性,近年来越来越广泛的应用。 图(2-6)不完全微分型(r 输入,b 输出,下同) 图(2-7)普通PID 控制 2)微分先行和输入滤波 P ID 控制算法 微分先行 PID 控制算法的特点是只对输出量进行微分,而对给定值不进行 微分。这样,在改变给定值时,输出不会改变,而且由于被控量一般不会突变,即使给定值已发生改变,被控量也是缓慢变化的,从而不致引起微分项的突变。 微分先行 PID 控制算式为: dpp1ITTu (k)=k [e(k)-e(k-1)]+ kp[e(k)-2c(k-1)+c(k-2)]- k[c(k)-c(k-1)]TT (2-9) 输入滤波,输入滤波就是在计算微分项时,不是直接应用当前时刻的误差e(n),而是采用滤波值 e(n),即用过去和当前四个采样时刻的误差的平均值,再通过加权求和形式近似构成微分项 )3()2(3)1(3)(6)(...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

PID控制算法的MATLAB仿真分析

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部