Matlab设计串联滞后超前校正
串联滞后超前校正步骤:
1、确定原系统。
2、根据期望截止频率
ω
c
∗
ω_c^*
ωc∗,确定超前装置最大超前角
φ
m
=
γ
∗
−
γ
0
(
ω
c
∗
)
+
6
°
φ_m=\gamma^*-\gamma_0(ω_c^*)+6°
φm=γ∗−γ0(ωc∗)+6°。
3、求解超前校正参数
a
=
1
+
s
i
n
φ
m
1
−
s
i
n
φ
m
a=\frac{1+sinφ_m}{1-sinφ_m}
a=1−sinφm1+sinφm
4、根据校正点与两个转折频率处的倍频关系求出两个转折频率,得出超前校正传函。
5、使用超前校正后的系统在
ω
c
∗
ω_c^*
ωc∗处进行设计滞后校正。
6、根据滞后校正装置倍频关系求解滞后校正参数。
7、进行串联滞后超前校正,并验算校正后指标是否满足要求。
例:已知单位反馈系统的系统开环传递函数 G 0 = 100 s ( 1 10 s + 1 ) ( 1 60 s + 1 ) G_0=\frac{100}{s(\frac{1}{10}s+1)(\frac{1}{60}s+1)} G0=s(101s+1)(601s+1)100 请设计串联滞后超前校正装置,使校正后系统满足 γ ≥ 50 ° , ω c ∗ ≥ 20 , h ≥ 10 \gamma≥50°,ω_c^*≥20,h≥10 γ≥50°,ωc∗≥20,h≥10。
使用matlab进行校正,结果如下:
鸣谢:感谢江苏科技大学张永韡(wei)老师的悉心教导!
校正代码:
clear; close all; clc
K = 100;
s = tf('s');
G0 = K/(s*(s/10+1)*(s/60+1)); % 原系统
gamma = 50; %期望相角裕度
h = 10; %期望幅值裕度
wc = 20; % 期望截止频率,将该处设为校正点
lb = 0.1;
ub = 1000; %4个10倍频程
gamma0_wc = 180+angle(freqresp(G0,wc))/(2*pi)*360;
phim = gamma - gamma0_wc + 6; %设置校正装置最大相角
a = (1+sind(phim))/(1-sind(phim)); % 求解超前校正参数a
w4 = wc*sqrt(a); %超前装置第二个转折频率(与校正点根号a倍频关系)
w3 = w4/a; %超前装置第一个转折频率(a倍频关系)
Gclead = tf([1/w3,1],[1/w4,1]); % 超前校正传函
Glead = Gclead*G0; % 超前校正后系统传函
mag_wm = 20*log10(abs(freqresp(Glead,wc))); % 超前校正后系统wc处幅值
b = 10^(-mag_wm/20); % 利用校正点处20lgb的对称性求解b
w2 = 0.1*wc; % 校正装置第二个转折频率,校正点往前10倍频
w1 = b*w2; %校正装置第1个转折频率(1/b倍频关系)
Gclag = tf([1/w2,1],[1/w1,1]); % 滞后校正传函
Gc = Gclag*Gclead; % 滞后超前校正函数
G = Gc*G0; % 校正后系统
bode(G0,Gc,G,{lb,ub});
grid on
[Gm,Pm,Wcg,Wcp]= margin(G);
title(['滞后超前校正: \gamma^*=',num2str(gamma),...
'\circ, h^*>= 10 dB at w_c^*=20 rad/s. ',...
'\gamma=',num2str(Pm),'\circ, h=',num2str(-20*log10(1/Gm)),...
' dB at w_c=',num2str(Wcp),' rad/s.']);
legend('原系统G0','校正传函Gc','已校正系统G')