优秀的编程知识分享平台

网站首页 > 技术文章 正文

自动控制原理-滞后校正设计方法以及编程实现

nanyue 2024-12-31 13:38:51 技术文章 6 ℃

1. 滞后校正的步骤

(1)给定的相角裕度指标计算剪切频率Wgc,即φ(Wgc)=-180°+Pmd+5°~10°;

(2)根据Wgc计算校正环节零极点的转折频率Wc1;

(3)有Wc1和幅值的分贝数确定β,即-20logβ=L(Wc1);

(4) 为了最大滞后相位角在系统开环截止频率附件,通常要交接频率W1远小于剪切频率,一般取0.1 Wgc;

(5)有交接频率W1和β确定T,即T=1/(β*W1);

(6)有T和β确定校正环节的传递函数Gc=(1+Ts)/(1+βTs)。

2. 滞后校正举例应用

2.1 系统传递函数与性能指标要求

被控对象传递函数:

Gp=k/(s*(0.1s+1)*(0.2s+1));

性能指标:

(1) 开环增益K>=30;

(2) 相位裕度>45°;

(3) 截止频率Wc>=2.3rad/s

(4) 幅值裕度>10db;

2.2 滞后校正MATLAB代码实现

k=30;
num=1;
den=conv(conv([1 0],[0.1 1]),[0.2 1]);
Gp=tf(k*num,den);
[mag,phase,w]=bode(Gp);
fm=-180+45+7;

for i=1:1:length(phase)
m(i)=phase(:,:,i);
end
wc1=spline(m,w,fm);
magdb=20*log10(mag);
Lg=spline(w,magdb,wc1);
B=10^(-Lg/20);
w1=0.1*wc1;
T=1/(B*w1);
nc=[B*T 1];
dc=[T 1];
Gc=tf(nc,dc);
disp('校正环节传递函数:');
printsys(nc,dc,'s');
G=Gc*Gp;

figure(1)
margin(Gp);
grid on
figure(2)
bode(Gc)
grid on
figure(3)
margin(G);
grid on

num1=G.num{1};
den1=G.den{1};
disp('加上校正环节传递函数:');
printsys(num1,den1,'s');
[Gm, Pm1, Wcg, Wcp]=margin(G);
Gm1=20*log10(Gm);

if Gm1>=10 && Pm1>=45 && wc1>=2.3
disp(['设计后相位裕度:',num2str(Pm1),...
'设计后相角裕度',num2str(Gm1),...
'设计后穿越频率',num2str(wc1),...
'满足设计要求']);
else
disp(['设计后相位裕度:',num2str(Pm1),...
'设计后相角裕度',num2str(Gm1),...
'设计后穿越频率',num2str(wc1),...
'不满足设计要求']);
end

figure(4)
bode(Gp,G);
grid on

Gclose_bef=feedback(Gp,1);
Gclose_aft=feedback(G,1);
disp('校正前后阶跃响应对比:')
figure(5)
subplot(1,2,1)
step(Gclose_bef);
subplot(1,2,2)
step(Gclose_aft);

2.3 结果输出

1. 校正前传递函数

Gp=k/(s*(0.1s+1)*(0.2s+1));

伯德图如下

2. 校正环节传递函数:

num/den =

4.3045 s + 1

-------------

49.1016 s + 1

伯德图如下:


3. 加上校正环节传递函数:

num/den =

129.1338 s + 30

--------------------------------------------

0.98203 s^4 + 14.7505 s^3 + 49.4016 s^2 + s

伯德图如下:

设计后相位裕度:46.6747设计后相角裕度14.5513设计后穿越频率2.3232满足设计要求

4. 校正前后性能对比

校正前后伯德图曲线对比:

5 校正前后阶跃响应对比

闭环传递函数阶跃响应对比

滞后环节校正之后,系统从不稳定,变成稳定的系统。

Tags:

最近发表
标签列表