串联滞后校正一般步骤

1、根据稳态误差要求求出 [公式] 

2、设滞后校正传递函数 [公式]  [公式] ,并设校正后的截止频率下 [公式] 相角 [公式] ,一般取 [公式] 

3、根据要求确定校正后的相角裕度,通过 [公式] 确定校正后的截止频率 [公式] 

4、 [公式] ,求得 [公式] 

5、 [公式],求得 [公式] 

6、系统校验


Matlab代码部分

可能使用到的命令见如下文章

Example 6
系统的开环传递函数 [公式] ,若要求校正后系统的静态误差系数 [公式] ,相对裕度 [公式] ,开环系统的截止频率 [公式] ,试设计校正装置。

解:首先根据静态误差系数求出 [公式]

clear all
syms b_1
Z=[];
P=[0,-10,-5];
K=1500;
G_0=zpk(Z,P,K); %G_0为校正前系统开环传递函数
[num,den]=tfdata(G_0);
%% 求解b,T
[Gm,Pm,wg_0,wc_0]=margin(G_0); %Pm为校正前的幅值裕度,
gamma=40; %确定校正后的相角裕度
Phi_c=-6; %校正后的截止频率下Gc(s)的相角,一般取-6°
temp=gamma-Phi_c-180;
[mag,phase,w]=bode(num,den);
wc=spline(phase,w,temp); %求解校正后的截止频率

mag_1=spline(w,mag,wc);
mag_db1=20*log10(mag_1); %单位不统一,做代换
solve(-20*log10(b_1)==mag_db1,b_1);
b=double(ans); %利用double将原本ans为syms类型转化为数值型
%b=10^(-1/20*mag_db1);
T=1/(0.1*wc*b);

%% 验证
num_1=[b*T,1];
den_1=[T,1];
G_c=tf(num_1,den_1);
printsys(num_1,den_1,'s');
G=G_0*G_c;
[Gm1,Pm1,wg1,wc1]=margin(G)

bode(G_0);
hold on;
bode(G);
legend('G_0(s)','G(s)');
hold off;

GG=feedback(G,1);

运行程序得到,校正后系统幅值裕度 [公式] ,开环系统截止频率 [公式] ,且闭环系统稳定,设计成功。附上校正前后开环系统的bode图对比。