MATLAB结课大作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、判断系统稳定性的方法,并举例说明。
方法一:用Nyquist稳定判据判断系统的稳定性
Nyquist稳定判据:若想使得闭环系统稳定,则开环系统G(S)H(S)的Nyquist曲线逆时针绕临界点(-1,j0)点的圈数R必需等于G(S)H(S)(系统的开环传函)位于S的右半平面开环极点数P。
即:Z=P-R Z=0 稳定;
Z≠0 不稳定,Z为闭环正实部根的个数。
方法二:用Bode图判断系统的稳定性
函数调用格式为:margin( )或[Gm Pm wcp wcg]=margin(G)
对于最小相位系统:
当相角裕度P m(γ)>0o 或幅值裕度G m(h) >1时,表示系统稳定
当相角裕度P m(γ)<0o 或幅值裕度G m(h) <1时,表示系统不稳定
幅值裕度G m(h)、相角裕度P m(γ)越大,系统稳定程度越好。在使用时,G m(h)、P m(γ)是成对使用的,有时仅使用一个裕度指标P m(γ)。
方法三:用代数稳定判据法判断系统的稳定性
(1)系统数学模型为传递函数形式G(S)=tf(num,den):
执行语句:roots(G.den{1});
注:“{}”表示维数
(2)系统数学模型为零极点增益形式G(S)=zpk(z,p,k);
执行语句:G.p{1};
(3)系统数学模型为状态空间形式G(S)=ss(A,B,C,D);
执行语句:eig(G.A);
注:eig()表示计算系统的极点
方法四:用根轨迹法判断系统的稳定性
若根轨迹在参数取值过程中,部分在左半平面,部分在右半平面,则系统的稳定性与可变参数的取值有关。函数命令调用格式:[k poles]=rlocfind(G)
方法五:用单位阶跃响应曲线判定系统稳定性
例:已知系统的开环传函为:
5(S+2)
G(S)= ----------------------------
(S+10)(S³+3S²+2S+5)
判断系统的稳定性
解:方法一:用Nyquist稳定判据判断系统的稳定性
>>G=tf(5*[1 2],conv([1 10],[1 3 2 5]));
>>roots(G.den{1})
Ans=
-10.0000
-2.9042
-0.0479+1.3112i
-0.0479-1.3112i
>>nyquist(G)
执行以上程序得到nyquist图可以看出,nyquist曲线包围临界点的圈数R=0。所以Z=P-R=0,系统稳定。
>> roots(G.den{1})
ans =
0.5000 + 2.9580i
0.5000 - 2.9580i
-1.0000
执行以上语句得到的结果可知,开环传递函数在右半S平面极点个数P=2。所以Z=P-R=0,系统稳定。
验证:
>> sys=feedback(G,1);
>> roots(sys.den{1})
ans =
-10.0553
-2.8424
-0.0512+1.4480i
-0.0512-1.4480i
闭环系统特征根均为负实部,故系统稳定
方法二:用Bode图判断系统的稳定性
>>G=tf(5*[1 2],conv([1 10],[1 3 2 5]));
>>[Gm Pm Wcp Wcg]=margin(G)
执行上述指令得
Gm =
10.5949
Pm =
22.6956
Wcp =
2.4490
Wcg =
1.4393
可以看出相角裕度Pm=22.6956>0,所以系统是稳定的>>margin(G)
得到bode图,图中性能指标与上述结果一样
方法三:用代数稳定判据法判断系统的稳定性
(1) 执行语句:roots(G.den{1})
>>G=tf(5*[1 2],conv([1 10],[1 3 2 5])); >>G1=feedback(G,1);
>>roots(G.den{1})
ans =
-10.0000
-2.9042
-0.0479 + 1.3112i
-0.0479 - 1.3112i
因为系统闭环极点全为负实部,故系统稳定
(2) 执行语句:G.p{1}
>>G=tf(5*[1 2],conv([1 10],[1 3 2 5]));
>>G1=feedback(G,1);
>>G2=zpk(G1);
>>G2.P{1}
ans =
-10.0000
-2.9042
-0.0479 + 1.3112i
-0.0479 - 1.3112i
因为系统闭环极点全为负实部,故系统稳定
(2) 执行语句:eig(G.A)
>> G=tf(5*[1 2],conv([1 10],[1 3 2 5])); >> G1=feedback(G,1);
>> G2=ss(G);
>> eig(G2.a)
ans =
-10.0000
-2.9042
-0.0479 + 1.3112i
-0.0479 - 1.3112i
因为系统闭环极点全为负实部,故系统稳定
方法四:用根轨迹法判断系统的稳定性
>> G=tf(5*[1 2],conv([1 10],[1 3 2 5])); >> rlocus(G)
>> [k poles]=rlocfind(G)
Select a point in the graphics window selected_point =
-0.0000 + 1.4286i
k =
0.9239
poles =