计算机控制实验报告
专 业: 测控技术与仪器 班 级: 学 号: 姓 名: 例1. 已知某单位反馈系统开环传递函数如下:
.GK(s)1 如果采用比例控制器进行调节,试绘制比例系数KP分别为1、4、
(s1)(2s1)10、50时的单位阶跃响应曲线,并分析比例控制器对控制系统性能的影响。 解:求解命令如下: num=1;
den=conv([1 1],[2 1]); GK=tf(num,den); Kp=1;
sys=feedback(Kp*GK,1,-1); step(sys,'b:'); hold on
gtext('Kp=1') pause Kp=4;
sys=feedback(Kp*GK,1,-1); step(sys,'k-'); hold on
gtext('Kp=4') pause Kp=10;
sys=feedback(Kp*GK,1,-1); step(sys,'g--'); hold on
gtext('Kp=10') pause Kp=50;
sys=feedback(Kp*GK,1,-1); step(sys,'r-'); gtext('Kp=50')
title('比例控制性能分析') xlabel('时间(秒)') ylabel('幅值')
执行上述命令后,可得到不同比例系数下闭环系统单位阶跃响应曲线,如图所
比例控制对控制系统性能分析图
结论:从图中可以看出,随着比例系数的增加,闭环系统稳态误差减小,上升时间缩短,调节次数增大,最大超调量增大,而且闭环系统稳态误差无法消除。
例2. 已知某单位反馈系统开环传递函数如下:
GK(s)1如果采用积分(PI)控制器进行调节,试绘制比例系数KP1积分系
(s1)(s2)数KI为0.2、0.8、2.0、5时的单位阶跃响应曲线,并分析积分控制器对控制系统性能的影响。
解:求解命令如下: num=1;
den=conv([1 1],[1 2]); GK=tf(num,den); Kp=1;
for Ki=0.2:1:2.2
Gc=tf([Kp,Ki],[1 0])
sys=feedback(Gc*GK,1,-1); step(sys); hold on end
Gc=tf([Kp,5],[1 0])
sys=feedback(Gc*GK,1,-1); step(sys);
title('积分控制性能分析') xlabel('时间(秒)') ylabel('幅值')
axis([0 60 0 1.6])
gtext('Ki=0.2'),gtext('Ki=1.2'),gtext('Ki=2.2'),gtext('Ki=5')
积分控制对控制系统性能分析图
结论:执行上述命令后,可得不同积分系数下闭环系统单位阶跃响应曲线。由图知,随积分系数增大,闭环系统响应速度加快,调节次数增加,最大超调量增大,稳定性变差。同时由于积分环节存在,闭环系统稳态误差为零。 例3. 已知某单位反馈系统开环传递函数如下:
GK(s)1 如果采用比例微分(PD)控制器进行调节,试绘制比例系数KP=1,
(s1)(2s1)微分系数分别为0.2、1.7、3.2、10时的单位阶跃响应曲线,并分析微分控制器对控制系统性能的影响。
解:求解命令如下: num=1;
den=conv([1 1 ],[1 2]); GK=tf(num,den); Kp=1;
for Kd=0.2:1.5:3.2
Gc=tf([Kd*Kp,Kp],1);
sys=feedback(Gc*GK,1,-1); step(sys); hold on end
axis([0 20 0 1])
gtext('Kd=0.2'),gtext('Kd=1.7'),gtext('Kd=3.2'), pause Kd=10;
Gc=tf([Kd*Kp,Kp],1);
sys=feedback(Gc*GK,1,-1); step(sys);
title('微分控制性能分析') xlabel('时间(秒)')
ylabel('幅值') grid
gtext('Kd=10')
执行上述命令后,可得到不同微分系数下闭环系统单位阶跃响应曲线,如下图所示:
微分控制对控制系统性能分析图
结论:执行上述命令后,可得不同微分系数下闭环系统单位阶跃响应曲线。由图知,随微分系数增大,闭环系统上升时间减小,最大超调量减小,调节时间减小,同时比例微分控制无法消除稳态误差。
例4. 根据某系统单位阶跃响应曲线图所示,且已知t=1.5,T=5.5,K=0.5。根据Ziegler-Nichols经验整定公式设计PID控制器。
解:经过计算可得PID控制器结构Kp=8.8,Ti=3s,Td=0.75s。 求解命令如下: Kp=8.8; Ti=3
Td=0.75; s=tf('s');
Gc=Kp*(1+s/Ti+Td*s); [num1,den1]=pade(1,4); G1=tf(num1,den1); num2=0.5;
den2=conv([3 1 ],[1 1]); G2=tf(num2,den2); Gk=Gc*G2*G1
sys=feedback(Gk,1); step(sys);
title('单位阶跃响应') xlabel('时间') ylabel('幅值') grid
执行命令后,可得到系统单位阶跃响应曲线,如下如所示:
Ziegler-Nichols整定的单位阶跃响应曲线
例5. 已知被控对象的数学模型如下:
G(s)25 试用Ziegler-Nichols时域整定方法分别设计一个P控制器、一个PI控2s7s25制器和一个PID控制器,并绘制在3种控制器作用下系统的单位阶跃响应曲线。 解:求解命令如下: num=25;
den=[1 7 25]; Gk=tf(num,den); step(Gk)
title('开环阶跃响应曲线') xlabel('时间(秒)') ylabel('响应') grid
执行命令后,得如下结果:
校正器开环阶跃响应曲线
由Ziegler-Nichols经验整定公式,可得PID控制器的参数。并将PID控制器加在真实对象数学模型上,可得其阶跃响应曲线,具体的编程如下:
K=1; T=0.45; tao=0.05; num=25;
den=[1 7 25]; G=tf(num,den); s=tf('s');
PKp=T/(K*tao); GK1=PKp*G;
sys1=feedback(GK1,1,-1); figure(2)
step(sys1,'k:') gtext('P') pause hold on
PIKp=0.9*T/(K*tao); PITi=3*tao;
Gc2=PIKp*(1+1/(PITi*s)); GK2=Gc2*G;
sys2=feedback(GK2,1,-1); step(sys2,'b--'); axis([0 2 0 2]) gtext('PI') pause
PIDKp=1.2*T/(K*tao); PIDTi=2*tao; PIDTd=0.5*tao;
Gc3=PIKp*(1+1/(PITi*s)+PIDTd*s); GK3=Gc3*G;
sys3=feedback(GK3,1,-1); step(sys3,'r--')
title('P、PI、PID控制单位阶跃响应') xlabel('时间') ylabel('幅值') grid
gtext('PID')
执行上述命令后,可得到在P、PI和PID控制器作用下系统的阶跃响应曲线,如下图所示:
原始对象P、PI、PID控制下系统单位阶跃响应曲线
如果将上述被控对象改为由S曲线近似的带纯延迟的一阶惯性环节,其单位阶跃响应曲线如下图所示,求近似对象模型的P、PI和PID控制单位阶跃响应曲线的命令如下: K=1; T=0.45; tao=0.05; num0=1;
den0=[0.45 1]; tao=0.05;
[num1,den1]=pade(tao,4) num=conv(num0,num1); den=conv(den0,den1); G=tf(num,den); s=tf('s');
%p控制器设计 PKp=T/(K*tao); GK1=PKp*G;
sys1=feedback(GK1,1,-1); figure(2) step(sys1,'k:') gtext('P') pause hold on
%PI控制器设计 PIKp=0.9*T/(K*tao); PITi=3*tao;
Gc2=PIKp*(1+1/(PITi*s)); GK2=Gc2*G;
sys2=feedback(GK2,1,-1); step(sys2,'b--'); axis([0 2 0 2])
gtext('PI') pause
%PID控制器设计 PIDKp=1.2*T/(K*tao); PIDTi=2*tao; PIDTd=0.5*tao;
Gc3=PIKp*(1+1/(PITi*s)+PIDTd*s); GK3=Gc3*G;
sys3=feedback(GK3,1,-1); step(sys3,'r--')
title('P、PI、PID控制单位阶跃响应') xlabel('时间') ylabel('幅值') grid
gtext('PID')
执行上述命令后,可得到如下图所示曲线:
近似对象模型的P、PI和PID控制单位阶跃响应曲线
例6. 已知被控对象的数学模型如下:
G(s)1e5s试根据Ziegler-Nichols经验整定公式分别设计P、PI和PID控制器,
15s1并观察其单位阶跃响应曲线。 解:求解命令如下: K=1; T=15; tao=5; num0=1;
den0=[15 1];
[num1,den1]=pade(tao,3) num=conv(num0,num1); den=conv(den0,den1); G=tf(num,den);
s=tf('s');
PKp=T/(K*tao); GK1=PKp*G;
sys1=feedback(GK1,1,-1); step(sys1,'k:') gtext('P') pause hold on
PIKp=0.9*T/(K*tao); PITi=3*tao;
Gc2=PIKp*(1+1/(PITi*s)); GK2=Gc2*G;
sys2=feedback(GK2,1,-1); step(sys2,'b--'); gtext('PI') pause
PIDKp=1.2*T/(K*tao); PIDTi=2*tao; PIDTd=0.5*tao;
Gc3=PIKp*(1+1/(PITi*s)+PIDTd*s); GK3=Gc3*G;
sys3=feedback(GK3,1,-1); step(sys3,'r-')
title('P、PI、PID控制单位阶跃响应') xlabel('时间') ylabel('幅值') grid
gtext('PID')
执行上述命令后得在P、PI和PID控制器作用下系统的阶跃响应曲线,如下图所示:
带纯延迟的一阶惯性环节P、PI和PID控制下的阶跃响应
实验结论:如果有S曲线近似的数学模型与被控对象真实数学模型越接近,由Ziegler-Nichols经验整定公式设计的PID控制器控制效果越好。当二者差异过大,控制性能也较差。
例7. 已知某被控对象传递函数如下:
G(s)10试利用iegler-Nichols经验整定公式分别设计P、PI和PID
s(0.1s1)(0.25s1)控制器,并求其单位阶跃响应曲线。
解:设计上述P、PI和PID控制器的命令如下: num=10;
den=conv([1 0],conv([0.01 1],[0.025 1])); G=tf(num,den); s=tf('s');
[Gm,Pm,Wcp]=margin(G); Tc=2*pi/Wcp;
%P控制器设计 PKp=0.5*Gm;
sys1=feedback(PKp*G,1,-1); step(sys1,'k-') hold on
gtext('P'),pause
%PI控制器设计 PIKp=0.4*Gm; PITi=0.8*Tc;
PIGc=PIKp*(1+1/(PITi*s)); sys2=feedback(PIGc*G,1,-1); step(sys2,'b:'),hold on gtext('PI'),pause
%PID控制器设计 PIDKp=0.6*Gm; PIDTi=0.5*Tc; PIDTd=0.12*Tc;
PIDGc=PIDKp*(1+1/(PIDTi*s)+PIDTd*s); sys3=feedback(PIDGc*G,1,-1); step(sys3,'g--'),hold on gtext('PID')
title('P、PI、PID控制单位阶跃响应') xlabel('时间') ylabel('幅值')
执行上述命令后。可得到在P、PI和PID控制器作用下系统的阶跃响应曲线,如下图所示:
频域整定的PID作用下系统单位阶跃响应
例8. 已知控制系统框图如下图所示:
r(t) y(t)
惯于控制系统框图 图中,被控对象G(s)10e150s,GC(s)为控制器,试建立控制系统Simulink仿真模
300s1型,并利用Ziegler-Nichols法整定PID控制器参数。
解:根据要求建立控制系统的Simulink仿真模型,如下图所示。根据PID参数的Ziegler-Nichols经验整定公式可计算出PID控制器的初始参数值为Kp=0.24,Ti=350,Td=75。Simulink求解器仿真终止时间设置为2000s,其他参数取默认值。运行仿真,可得初步整定参数下系统单位阶跃响应,如下图所示:
例8的Simulink的仿真模型
从下面的初步仿真结果图中可以看出,系统超调量为稳态值的30%,振荡次数为3次,峰值时间为350s,基本符合要求。如果工作机构对系统超调量有严格要求,欲控制在10%以内,则可以根据PID参数对控制系统性能的影响,在Simulink仿真模型里修改Kp、Ti
和Td的数值。经过反复调试,最后整定PID控制器参数为Kp=0.17,Ti=357,Td=50。运行仿真得到再次整定PID参数后的仿真结果,如下图所示。系统指定中,超调量8%,峰值时间420s。可以看出,修改PID参数后降低了系统的超调量,但也牺牲了系统的动态性能,满足工作机构对超调量的要求。
例8的初步仿真结果
例8的再次整定PID参数后的仿真结果
例9. 已知单位负反馈控制系统开环传递函数如下:
G(s)1 控制器为PID控制器,试采用临界比例带法整定PID参数,并求系
s(s2)(s4)统单位阶跃响应。
解:根据临界比例带法,第1步:建立如下图所示的Simulink模型,并将PID的积分、微分环节断开,置比例系数Kp=1。
第2步:以10倍速度逐渐增大Kp,当Kp=100时,系统输出发散。再以1/2调节量进行收敛。最后得到等幅振荡的Kp=48。此时,临界比例带k=0.0208,临界振荡周期Tk=2.2s。 第3步:根据k和Tk的数值,经验公式,计算出调节器的参数=0.035、Ti=1.1s和Td=0.275。
例9的所示Simulink仿真模型
然后依次将比例、积分、微分环节投入运行,可得如下图所示的仿真结果。从此图中可以看出,利用临界比例带法初次整定的控制效果并不十分理想,特别是采用比例积分控制。下面再对PID参数进行修正,修正后Kp=28.5,Ti=2.5,Td=0.5,PID控制仿真结果如下图所示,对比两图可以看出,系统超调量由73%减少到20%,峰值时间由1.8s增加到2s。
例9 比例、积分、微分依次投入后输出
PID修正后Simulink仿真模型
例9 修正后PID控制输出
例10. 对例9采用衰减曲线法进行PID参数整定。 解:求解过程如下:
(1)建立系统Simulink仿真模型。如下图所示,将Ti置为无穷大,将Td置零,Kp设置为30。运行系统,得到如8-9(a)所示仿真结果。
(2)根据8-9所示结果,反复调节Kp,当Kp=20时系统出现4:1振荡,如图8-9(b)所示。此时,比例带=0.05,振荡周期Ts=3.35s。
Simulink仿真模型
图8-9(a)Kp=30时的衰减曲线
图8-9(b)Kp=20时的衰减曲线
(3)计算PID参数,得=0.04(Kp=25),Ti=1.0s,Td=0.34s。修改后PID参数,再次仿真,可得如图8-10所示的仿真结果。
观察图8-10所示的仿真结果,如果不够理想,可根据PID控制原理,微调控制器的各个参数。
图8-10 按4:1衰减曲线法整定的系统单位阶跃响应
因篇幅问题不能全部显示,请点此查看更多更全内容