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=1sinφ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°ωc20h10

使用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; %410倍频程

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')
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐