微分先行PID控制算法.doc

上传人:飞****9 文档编号:133702625 上传时间:2020-05-29 格式:DOC 页数:5 大小:53.50KB
返回 下载 相关 举报
微分先行PID控制算法.doc_第1页
第1页 / 共5页
微分先行PID控制算法.doc_第2页
第2页 / 共5页
微分先行PID控制算法.doc_第3页
第3页 / 共5页
微分先行PID控制算法.doc_第4页
第4页 / 共5页
微分先行PID控制算法.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《微分先行PID控制算法.doc》由会员分享,可在线阅读,更多相关《微分先行PID控制算法.doc(5页珍藏版)》请在金锄头文库上搜索。

1、微分先行的PID控制算法实验目的通过上机实践操作,使学生能够直观理解课堂上所讲的内容。学生在计算机上结合课程教学用的Matlab语言或Simulink构建仿真模型实现微分先行的PID控制算法,培养学生的动手实践能力。实验内容用Matlab语言或Simulink构建仿真模型实现微分先行的PID控制算法题目:控制对象为,采样时间为20s,输入信号为带有高频干扰的方波信号:,执行机构输出限制在-10,10,仿真时间为8000s;其中,.试采用微分先行的PID控制算法和标准PID控制算法实现后,比较两种控制算法的输入/输出、控制量。实验原理微分先行PID控制算法:式中。实验程序:clear all;c

2、lose all;ts=20;M=2;ki=0.006;kd=18;kp=0.3;gama=0.4;sys=tf(1,70 1,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,c3for k=0:1:400 time(k+1)=k*ts

3、; 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); if M=1 e(k+1)=r(k+1)-ud(k+1); ei=ei+e(k+1)*ts; %积分项累加值 u(k+1)=kp*e(k+1)+ki*ei; %控制量 else e(k+1)=r(k+1)-y(k+1); ei=ei+e(k+1)*ts; u(k+1)=kp*e(k+1)+

4、ki*ei+kd*(e(k+1)-e_1)/ts; end if u(k+1)10 %控制量限幅 u(k+1)=10; else if u(k+1)-10 u(k+1)=-10; end end y_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);endhold on;if M=1 figure(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算法,只对输出进行微分,可以避免给定值频繁升降引起的振荡,改善系统动态特性。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

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