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

微分先行PID控制算法VIP免费

微分先行PID控制算法_第1页
1/5
微分先行PID控制算法_第2页
2/5
微分先行PID控制算法_第3页
3/5
1 / 5 微分先行的PID 控制算法实验目的通过上机实践操作, 使学生能够直观理解课堂上所讲的内容。学生在计算机上结合课程教学用的Matlab 语言或 Simulink 构建仿真模型实现微分先行的PID控制算法,培养学生的动手实践能力。实验内容用 Matlab 语言或 Simulink 构建仿真模型实现微分先行的PID 控制算法题目:控制对象为170800seGt,采样时间为 20s,输入信号为带有高频干扰的方波信号:)03.0sin(05.0))0005.0(()(ttsquaresigntr,执行机构输出限制在[-10,10],仿真时间为8000s ;其中,0.418,kd0.006,ki0.3,kp.试采用微分先行的PID 控制算法和标准 PID 控制算法实现后,比较两种控制算法的输入/输出、控制量。实验原理微分先行 PID 控制算法:kjipDDTjekkekkukyckyckucku0321*)(*)(*)()1(*)(*)1(*)(式中)()()(,*,*,**321kukrkeTTTcTTTTcTTTcDdddddd。实验程序:clear all;close all;2 / 5 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; 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)+ki*ei+kd*(e(k+1)-e_1)/ts;endif u(k+1)>10 %控制量限幅 u(k+1)=10;elseif u(k+1)<-10 u(k+1)=-10;endend 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 输出 ' );else3 / 5 figure(1); plot(time,r,'r',time,y,'b');xlabel(' 时间(单位:s ) ' );ylabel(' 输入/ 输出 ' ); legend(' 输入 ' , ' 普通 PID 输出 ' );endfigure(2);plot(time,u,'r');xlabel(' 时间(单位: s )' );ylabel(' ...

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

碎片内容

微分先行PID控制算法

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