系统的稳定性判别

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

%% pzmap( )函数可以绘制连续系统在复平面内的零极点图.其调用格式如下;

% [p,z] = pamap(num,den) 或[p,z] = pzmap(A,B,C,D) 或[p,z] = pzmap(p,z)

% 其中列向量p为系统的极点;列向量z为系统的零点;num,den和A,B,C,D分别为系统的传递函数和状态方程参数.

% 一:如下式闭环传递函数系统是有输出的情况下,通过pzmap( )函数可以得到系统的零极点图.

% 3 s^4 + 2 s^3 + s^2 + 4 s + 2

% G(s)= -----------------------------------------------

% 3 s^5 + 5 s^4 + s^3 + 2 s^2 + 2 s + 1

% 判断系统的稳定性,并给出系统的闭环极点.

num = [3 2 1 4 2];

den = [3 5 1 2 2 1];

r = roots(den) % 得到闭环极点.

subplot(2,1,1)

pzmap(num,den) % 得到零极点图.(零点用“o”表示,极点用小叉表示)

[A,B,C,D] = tf2ss(num,den);

subplot(2,1,2)

pzmap(A,B,C,D)

% r = % 闭环极点如下;

% -1.6067

% 0.4103 + 0.6801i

% 0.4103 - 0.6801i

% -0.4403 + 0.3673i

% -0.4403 - 0.3673i % 由以上结果可知,连续系统在s右半平面有两个极点,故系统不稳定(这是用极点判断系统的稳定性).

%% 对于离散系统的零极点绘制可以用函数zplane( ),其调用格式同pzmap( )相同,zplane( )在绘制离散系统的零极点图的同时还绘制出单位圆.

% 二:已知单位负反馈离散系统的开环脉冲传递函数为:

% 5 z^5 + 4 z^4 + z^3 + 0.6 z^2 - 3 z + 0.5

% G(s)=-----------------------------------------------------

% z^5

% 判断该系统等稳定性.

num = [5 4 1 0.6 -3 0.5];

den = [1 0 0 0 0 0];

sys = feedback(num0,den0,+1);

r = roots(den0); % 得到系统的闭环极点.

zplane(num0,den0) % 得到系统的零极点图.

%% 已知系统的状态方程(用特征值判断系统的稳定性)

clear;clc;

A = [2.25 -5 -1.25 -0.5;2.25 -4.25 -1.25 -0.25;

0.25 -0.5 -1.25 -1;1.25 -1.75 -0.25 -0.75];

B = [46 24 22 2]';

P = poly(A); % 得到的是系统的特征多项式(返回矩阵P,是按照降幂排列的,A的特征多项式的行向量).

r = roots(P); % 得到的是特征多项式的根亦即特征值!注意:利用命令r = eig(A)可以直接得到系统的闭环极点

ii = find((real(r)>0));

n = length(ii);

if (n>0)

disp('System is Unstable')

else

disp('System is Stable')

end

% 执行结果如下:

% r =

% -1.5000

% -1.5000

% -0.5000 + 0.8660i

% -0.5000 - 0.8660i

% System is Stable % 系统是稳定的

%% 利用李雅普诺夫第二法来判断系统的稳定性.

% 已知系统的状态方程为:x' = Ax;其中A = [0 1;-1 -1]

% AP + PA' = -Q,已知A,Q利用函数lyap( )可以求得P!

A = [0 1;-1 -1];

Q = eye(size(A));

P = lyap(A,Q);

i1 = find(P(1,1)>0);

n1 = length(i1);

i2 = find(det(P)>0);

n2 = length(i2);

if (n1>0&n2>0);

disp('P>0,正定,系统在原点处的平衡状态是渐进稳定的')

else

disp('系统不稳定');

end

% 执行结果显示为:

% P>0,正定,系统在原点处的平衡状态是渐进稳定的

相关文档
最新文档