1_21微分先行PID控制.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1_21微分先行PID控制

微分先行PID控制 题目:用微分先行PID控制传递函数为为的被控对象: =exp(-80)/(60s+1) 原理: 微分先行PID控制是对偏差作比例积分作用,对输出作微分作用,控制结构如下图所示。适用于给定值频繁变化的场合,可以避免给定值升降引起的系统震荡,从而提高了系统的动态特性。 程序清单: %PID Controler with differential in advance 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;error_2=0; ei=0; for k=1:1:400 time(k)=k*ts; %Linear model yout(k)=-den(2)*y_1+num(2)*u_5; kp=0.36;kd=15;ki=0.0021; rin(k)=1.0*sign(sin(0.00025*2*pi*k*ts)); rin(k)=rin(k)+0.05*sin(0.03*pi*k*ts); error(k)=rin(k)-yout(k); ei=ei+error(k)*ts; gama=0.50; Td=kd/kp; Ti=0.5; c1=gama*Td/(gama*Td+ts); c2=(Td+ts)/(gama*Td+ts); c3=Td/(gama*Td+ts); M=1; if M==1 %PID Control with differential in advance ud(k)=c1*ud_1+c2*yout(k)-c3*y_1; u(k)=kp*error(k)+ud(k)+ki*ei; elseif M==2 %Simple PID Control u(k)=kp*error(k)+kd*(error(k)-error_1)/ts+ki*ei; end if u(k)=110 u(k)=110; end if u(k)=-110 u(k)=-110; end %Update parameters 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_2=error_1; error_1=error(k); end figure(1); plot(time,rin,r,time,yout,b); xlabel(time(s));ylabel(rin,yout); figure(2); plot(time,u,r); xlabel(time(s));ylabel(u); 不用微分先行: 加上微分先行: 由图所示,在设定值频繁变动的情况下,加入微分先行后控制效果更加好。 结语: 微分先行常用于设定值频繁变动的情况下,改善系统的动态性能。

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档