从图2中得,?c=1.5。这样,未校正系统的相位裕量为0o ,与要求值仅差+45o ,这样大小的超前相角通过简单的超前校正是很容易实现的。
?由超前部分应产生超前相角?而定,即??1?sin?1?sin?。在本题中,
??45??5??50?,因此
??1T21151?sin50?1?sin50?o
?7.55
1T2取
??c,以使滞后相角控制在-5以内,因此
?0.1,滞后部分的传
递函数为
s?0.1s?0.01。
过??c,?20lgG?j?c??,作20dB/dec直线,由该直线与0dB线交点坐标?T1确定T1。未校正系统的伯德图在?c=1.5处的增益是13dB。所以过点(1.5,-13)画一条20dB/dec的直线,与0dB线的交点确定转折频率。经计算得,转折频率
1T1?0.89,另一转折频率为
?T1?6.7。所以超前部分的传递函数为
s?0.89s?6.7。
将滞后校正部分和超前校正部分的传递函数组合在一起,得滞后-超前校正的传递函数为
Gc?s??s?0.89s?0.1s?6.7s?0.01
系统校正后的传递函数为
4.用MATLAB函数求出校正前与校正后系统的特征根,并判断其系统是否稳定
G?s?Gc?s??10?s?0.89??s?0.1?s?s?1??0.5s?1??s?6.7??s?0.01?4.1校正前的特征根及其稳定性 用MATLAB求出其特征根,程序如下: p=[1 3 2 20]; v=roots(p) 运行结果: v =
-3.8371 0.4186 + 2.2443i 0.4186 - 2.2443i
由于其运行出来的特征根有两个负数根在右半平面,根据传递函数的稳定性判定原理,该传递函数不稳定。
4.2校正后的特征根及其稳定性 用MATLAB求出其特征根,程序如下: 先求出其闭环传递函数: num=conv([1 0.89],[1 0.89]);
den=conv([1 0],conv([1 1],conv([0.5 1],conv([1 6.7],[1 0.01])))); Gk=tf(num,den); sys=feedback(Gk,1)
再由下述MATLAB命令,可求出闭环系统的特征根。 >> p=[0.5 4.855 11.1 7.811 1.847 0.7921]; V=roots(p) V =
-6.7545 -1.8697 -1.0043 -0.0408 + 0.3511i -0.0408 - 0.3511i
由于其运行出来的特征根全部都在左半平面,根据传递函数的稳定性判定原理,该传递函数稳定。
5.MATLAB作出系统校正前与校正后的三种曲线并且进行分析 5.1校正前
(1).校正前单位脉冲响应曲线: 程序如下: >> num=20;
den=conv([1 1],[1 2 0]); G0=feedback(tf(num,den),1); impulse(G0,0:0.02:8) 得到的曲线如下:
(2).校正前单位阶跃响应曲线: 程序如下: >> num=20;
den=conv([1 1],[1 2 0]); G0=feedback(tf(num,den),1); step(G0,0:0.1:15) 得到的曲线如下:
(3).校正前单位斜坡响应曲线: 程序如下: >> t=0:0.02:10; u=t; n=[20];
den=conv([1 1],[1 2 0]); sys=tf(n,u); lsim(sys,u,t); >> t=0:0.01:10; 得到的曲线如下:
5.2 校正后
(1).校正后的单位脉冲响应曲线: 程序如下: k=10;
num=conv([1 0.89],[1 0.89]);
den=conv([1 0],conv([1 1],conv([0.5 1],conv([1 6.7],[1 0.01])))); sys=tf(k*num,den); Lsys=feedback(sys,1,-1); [y,t,x]=impulse(Lsys); >> plot(t,y); 得到的曲线如下:
(2).校正后的单位阶跃响应曲线: 程序如下: k=10;
num=conv([1 0.89],[1 0.89]);
den=conv([1 0],conv([1 1],conv([0.5 1],conv([1 6.7],[1 0.01])))); sys=tf(k*num,den); Lsys=feedback(sys,1,-1); [y,t,x]=step(Lsys); plot(t,y); 得到的曲线如下: