由于专业课程安排,今天下午学习了下如何利用MATLAB来完成系统的超前校正,U1S1,MATLAB的强大计算分析能力没得说。
超前校正是利用校正装置的相位超前特性来增加系统的相位稳定裕量,利用校正装置幅频特性曲线的正斜率段来增加系统的穿越频率,从而改善系统的平稳性和快速性。为了最大限度地利用其相位超前特性来增加系统的相位稳定裕量,一般选择校正装置的最大超前相角φm。出现在系统新的穿越频率ωc‘处。
超前校正的特点:增益和型次未改变,稳态精度变化不大,加快了系统的响应速度,即改善系统的瞬态性能。
首先要记住以下几个公式(敲黑板!):
ωm=1/T√a
φm=arcsin(a-1/a+1)
其中ωm是最大超前角频率,φm为最大超前角
设给定的校正后性能指标要求ess,ωc‘以及相位裕量γ‘
步骤如下:
(1)根据ess要求得出开环增益K
(2)利用已知的开环增益K,求出未校正时系统的ωc和相角裕度γ(常规计算不做赘述)
(3)根据ωc‘的要求,计算出参数a和T
ωc’=ωm=1/T√a(关键选择ωc=ωm)
-L(ωc’)=-Lc(ωm)=-10lga(校正环节开环传函即为aGc(s))
(4)校正后开环传函=校正环节开环传函*原传函
(5)验算相位裕量γ‘是否满足要求,不满足则重选ωm(一般使其增大)
[Gm , Pm , ωg , wc] = margin(num , den)
其中幅值裕度Gm和对应频率ωg,相位裕度Pm和对应的频率
[mag , phase , ] = bode(mun , den)
计算系统Bode图的输出数据,输出变量mag是系统Bode图的幅值向量,注意此幅值不是分贝值,须用magdb=20*log(mag)转换;phase为Bode图的幅角向量,单位为(°);ω是系统Bode图的频率向量,单位是rad/s。
s = spline(x,y,xq) :
返回与 xq 中的查询点对应的插值 s 的向量。s 的值由 x 和 y 的三次样条插值确定。此处利用它求得对应频率。
设一系统结构如图所示,要求系统的速度误差系数Kv≥20,相位裕量γ’≥45°,为满足系统性能指标的要求,试设计超前校正装置的参数。
num=20;den=conv([1,0],[0.5,1]);
[gm,pm,wcg,wcp]=margin(num,den); %求校正前的相位裕度pm
dpm=50-pm+5; %根据性能指标求出φm
phi=dpm*pi/180;
a=(1+sin(phi))/(1-sin(phi)); %利用φm=arcsin(a-1/a+1)求得a
mm=-10*log10(a); %计算-10 lga
[mag,phase,w]=bode(num,den); %利用伯德图得到幅值向量mag
bode(num,den);grid on; %显示伯德图
mag_db=20*log10(mag); %将幅值转换为分贝值
wc=spline(mag_db,w,mm); %计算出当幅值为mm时的频率
T=1/(wc*sqrt(a)); %利用T与a关系求出T
p=a*T;
nk=[p,1];dk=[T,1]; %求出加入的校正装置
gc=tf(nk,dk);
printsys(nk,dk,'s') %求出校正后的传函
h=tf(num,den);h1=tf(nk,dk);
g=h*h1;
[gm1,pm1,wcg1,wcp1]=margin(g);
fprintf('系统相位裕量是%f\n',pm1) %调用显示系统相位裕量的值
if (pm1>=45)
fprintf('满足设计要求')
else
fprintf('不满足设计要求')
end
运行结果如下
至此算是结束了,代码自认为解释的比较清晰,第一次写文,着实难顶,能力尚需提高,希望该文对需要的朋友们有所帮助!如有错误或者建议,希望大佬教正!