微分先行PID控制算法.doc

微分先行PID控制算法.doc

ID:55586864

大小:53.50 KB

页数:5页

时间:2020-05-19

上传者:简单2019
微分先行PID控制算法.doc_第1页
微分先行PID控制算法.doc_第2页
微分先行PID控制算法.doc_第3页
微分先行PID控制算法.doc_第4页
微分先行PID控制算法.doc_第5页
资源描述:

《微分先行PID控制算法.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

微分先行的PID控制算法实验目的通过上机实践操作,使学生能够直观理解课堂上所讲的内容。学生在计算机上结合课程教学用的Matlab语言或Simulink构建仿真模型实现微分先行的PID控制算法,培养学生的动手实践能力。实验内容用Matlab语言或Simulink构建仿真模型实现微分先行的PID控制算法题目:控制对象为,采样时间为20s,输入信号为带有高频干扰的方波信号:,执行机构输出限制在[-10,10],仿真时间为8000s;其中,.试采用微分先行的PID控制算法和标准PID控制算法实现后,比较两种控制算法的输入/输出、控制量。实验原理微分先行PID控制算法:式中。实验程序:clearall;closeall; ts=20;M=2;ki=0.006;kd=18;kp=0.3;gama=0.4;sys=tf(1,[701],'inputdelay',80);dsys=c2d(sys,ts,'zoh');[num,den]=tfdata(dsys,'v');ud_1=0;y_1=0;e_1=0;ei=0;u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;Td=kd/kp;c1=gama*Td/(gama*Td+ts);c2=(Td+ts)/(gama*Td+ts);c3=Td/(gama*Td+ts);%微分先行算法中的参数c1,c2,c3fork=0:1:400time(k+1)=k*ts;y(k+1)=-den(2)*y_1+u_5*num(2);%输出量ud(k+1)=c1*ud_1+c2*y(k+1)-c3*y_1;%控制量ud_1=ud(k+1);r(k+1)=sign(sin(0.0005*pi*time(k+1)))+0.05*sin(0.03*pi*time(k+1));ifM==1e(k+1)=r(k+1)-ud(k+1);ei=ei+e(k+1)*ts;%积分项累加值u(k+1)=kp*e(k+1)+ki*ei;%控制量elsee(k+1)=r(k+1)-y(k+1);ei=ei+e(k+1)*ts;u(k+1)=kp*e(k+1)+ki*ei+kd*(e(k+1)-e_1)/ts;endifu(k+1)>10%控制量限幅u(k+1)=10;elseifu(k+1)<-10u(k+1)=-10;endendy_1=y(k+1);u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k+1);e_1=e(k+1);endholdon;ifM==1figure(1);plot(time,r,'r',time,y,'b');xlabel('时间(单位:s)');ylabel('输入/输出');legend('输入','微分先行PID输出');else figure(1);plot(time,r,'r',time,y,'b');xlabel('时间(单位:s)');ylabel('输入/输出');legend('输入','普通PID输出');endfigure(2);plot(time,u,'r');xlabel('时间(单位:s)');ylabel('控制量');legend('微分先行PID控制算法控制量');实验结果微分先行PID算法结果: 普通PID算法结果: 结果及分析通过比较两种PID算法的输出可发现,当输入r(t)具有高频干扰信号时,采用微分先行PID算法,只对输出进行微分,可以避免给定值频繁升降引起的振荡,改善系统动态特性。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭