串联超前校正一般步骤

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

2、求出校正前截止频率 [公式] 相角裕度 [公式]

3、设计串联超前校正的传递函数 [公式]  [公式] ,并根据指标要求确定校正后的相角裕度 [公式] 

4、求补偿的相角 [公式] ,其中 [公式] 一般取值8~11。超前校正正是通过提供超前相角在校正后的截止频率进行补偿,这个补偿的相角就是串联超前校正的最大相角 [公式] ,即 [公式] 

5、 [公式]

6、根据 [公式] ,求得校正后的截止频率 [公式] 

7、 [公式]

8、系统校验。


Matlab代码部分

可能使用到的命令

1、Bode图

bode(G)

2、求解幅值向量和幅角向量

[mag,phase,omega]=bode(num,den)

计算系统Bode图的输出数据,输出变量mag是系统Bode图的幅值向量,注意此幅值不是分贝值,须用mag_db=20*lg(mag)转换;phase为Bode图的幅角向量,单位为(°);ω是系统Bode图的频率向量,单位是rad/s。

3、求截止频率,幅值裕度和各自对应的频率

[Gm,Pm,wg,wc]=margin(num,den)

4、print传递函数

printsys=(num,den,'s')

5、splin函数

wc=spline(mag_db,w,temp)  %返回在向量mag_db中,与temp值对应相等时,自变量w的值wc

Example 5

已知某单位负反馈伺服控制系统开环传递函数为:

[公式]

若要求系统跟踪速度信号 [公式] 时,位置输出稳态误差 [公式] ,相角裕度 [公式] ,试设计串联超前校正网络

首先,手算计算K值。

clear all

num=[20];
den=[0.5,1,0];
G_0=tf(num,den); %G_0为校正前系统开环传递函数
%% 计算a
[Gm,Pm,wg_0,wc_0]=margin(G_0); %Pm为校正前的幅值裕度
gamma=60; %确定校正后的相角裕度
Phi_c=gamma-Pm+8; %此处8为补偿,取值范围8~11, Phi_c单位为度;Phi_c为补偿环节的相角
Phi_m=(Phi_c*pi)/180; %角度单位转化
a=(1+sin(Phi_m))/(1-sin(Phi_m));

%% 计算T
temp=-10*log10(a);
[mag,phase,w]=bode(num,den);
mag_db=20*log10(mag);
wc=spline(mag_db,w,temp);  %wc为校正后的截止频率
T=1/(sqrt(a)*wc);

%% 验证
num_1=[a*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;

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