微分先行的PID控制算法

2020-04-14 23:40

微分先行的PID控制算法

实验目的

通过上机实践操作,使学生能够直观理解课堂上所讲的内容。学生在计算机上结合课程教学用的Matlab语言或Simulink构建仿真模型实现微分先行的PID控制算法,培养学生的动手实践能力。

实验内容

用Matlab语言或Simulink构建仿真模型实现微分先行的PID控制算法

e?80t题目:控制对象为G0?,采样时间为20s,输入信号为带有高频干

70s?1?t))?0.05sin(0.03?t),执扰的方波信号:r(t)?sign(square(0.0005行机构输出限制在[-10,10],仿真时间为中,kp?0.3,ki?0.006,kd?18,?8000s;其

?0.4.试采用微分先行的PID控制算法

和标准PID控制算法实现后,比较两种控制算法的输入/输出、控制量。

实验原理

微分先行PID控制算法:

uD(k)?c1*uD(k?1)?c2*y(k)?c3*y(k?1)u(k)?kp*e(k)?ki*?e(j)*Tj?0k

式中c1??*Td?*Td?T,c2?Td?TTd,c3?,e(k)?r(k)?uD(k)。

?*Td?T?*Td?T实验程序:

clear all;close 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,c3 for 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; 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); end

hold 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输出'); end

figure(2);

plot(time,u,'r');xlabel('时间(单位:s)');ylabel('控制量'); legend('微分先行PID控制算法控制量');

实验结果

微分先行PID算法结果:

1.5输入微分先行PID输出1 0.5输入/输出0-0.5-1-1.5 010002000300040005000时间(单位:s)600070008000

1.5微分先行PID控制算法控制量10.5控制量0-0.5-1-1.5 010002000300040005000时间(单位:s)600070008000

普通PID算法结果:

1.5输入普通PID输出1 0.5输入/输出0-0.5-1-1.5 010002000300040005000时间(单位:s)600070008000

2微分先行PID控制算法控制量1.510.5控制量0-0.5-1-1.5-2 010002000300040005000时间(单位:s)600070008000

结果及分析

通过比较两种PID 算法的输出可发现,当输入r(t)具有高频干扰信号时,采用微分先行PID算法,只对输出进行微分,可以避免给定值频繁升降引起的振荡,改善系统动态特性。


微分先行的PID控制算法.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《护理学基础》复习题(4)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: