一、原传递函数
8 G(s),对其进行PID控制器的设计
(s5)(s2)(2s1)二、传递函数性能分析
稳定性分析:(文件名:Untitled1.m)
s=tf('s');
G0=8/(s*(s+5)*(s+2)*(2*s+1)); %原系统开环传递函数 [Gm,Pm]=margin(G0); %返回系统相对稳定参数 figure(1)
pzmap(G0) %零极点分布图 figure(2)
margin(G0) %系统Bode图 figure(3)
step(feedback(G0,1)) %系统单位阶跃响应
得出的零极点分布图、Bode图和阶跃响应曲线分别如图1、图2、图3所示:
图1 原函数零极点分布图
图2 原函数Bode图
图3 原函数阶跃响应曲线
Simulink环境下的原函数方框图及其阶跃响应分别如图4和图5所示:
图4 Simulink下的原函数模型
图5 原函数阶跃响应(simulink)
三、在MATLAB下实现PID控制器的设计与仿真
1、参数计算(文件名:Untitled2.m)
num=[8];
den=conv([1 5],conv([1 2],[2 1])); step(num,den); k=dcgain(num,den)
图6 参数计算
输出参数结果:
k =
0.8000
由图可知,取L=0.615 T=3.18。于读图存在误差,因此参数仍需整定。 2、设计PID控制器
(1)已知对象的K、L 和T 值后,根据Ziegler — Nichols整定公式编写一 个MATLAB函数ziegler_std ( )用以设计PID控制器。(文件名:Ziegler_std.m)
function [num,den,Kp,Ti,Td,H]=Ziegler_std (key,vars)
Ti=[ ];Td=[ ];H=[ ]; K=vars(1); L=vars(2); T=vars(3); a=K*L/T; if key==1
num=1/a; %判断设计P 控制器 elseif key==2
Kp=0.9/a;Ti=3.33*L; %判断设计PI 控制器 elseif key==3
Kp=1.2/a;Ti=2*L;Td=L/2; %判断设计PID控制器 end
switch key case 1
num=Kp;den=1; % P控制器 case 2
num=Kp*[Ti,1];den=[Ti,0]; % PI控制器 case 3 % PID控制器 p0=[Ti*Td,0,0];
p1=[0,Ti,1];p2=[0,0,1]; p3=p0+p1+p2; p4=Kp*p3; num=p4/Ti; den=[1,0]; end
退出M文件
>>K=0.8000;L=0.615;T=3.16;[num,den,Kp,Ti,Td]=Ziegler_std (3,[K,L,T])
num =
2.3700 7.7073 12.5322 den = 1 0 Kp = 7.7073 Ti = 1.2300 Td = 0.3075
(2)动态仿真集成环境 Simulink下构造系统模型
图7 Simulink下的PID模型图
图8 PID模型的阶跃响应(Simulink)
由图可以看出,经过调节参数之后超调量明显减小,响应曲线平滑,调节时
间理想,可以采用。
因篇幅问题不能全部显示,请点此查看更多更全内容