第 3 章 控制系统特性分析的 MATLAB 的实现 3.1 控制系统稳定性分析的 MATLAB...

51
第 3 第 第第第 第第第第第 MATLAB 第第第 3.1 第第第 第第第第第第 MATLAB 第第 . 第第第第第第第 第第第 求求求求求 求求求求求求求求求求求求求求求求求求求求求求 MATLAB 求求求求求求求求求 ro ots( ) 求求求3.1 求求求求 求求求 求求求求求 统传 求求求求求 求求求求求 ,。 ) 20 )( 1 ( ) 2 ( 100 ) ( S S S S S G 求求求求求求求 求求 【】 roots( ) 求求求求求求 MATLAB 求求求k=100;z=[-2];p=[0,-1,-20]; [n1,d1]=zp2tf(z,p,k) G=tf(n1,d1) p=n1+d1 roots(p) % 运运运运n1 =[ 0 0 100 200] d1 =[ 1 21 20 0] % 运运运运 Transfer function: 100 s + 200 ------------------- s^3 + 21 s^2 + 20 s % 运运运运p =[ 1 21 120 200] ans = -12.899 0 -5.000 0 -3.101

description

第 3 章 控制系统特性分析的 MATLAB 的实现 3.1 控制系统稳定性分析的 MATLAB 实现. 【 例 3.1】 已知系统开环传递函数为: ,试判别系统的稳定性。. 一 . 直接求根判定系统稳定性. 求解控制系统闭环特征方程的根并判断所有根的实部是否小于零,在 MATLAB 里这是很容易用函数 roots( ) 实现的。. 【 解 】 根据题意,利用 roots( ) 函数给出以下 MATLAB 程序段: k=100;z=[-2];p=[0,-1,-20]; - PowerPoint PPT Presentation

Transcript of 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1 控制系统稳定性分析的 MATLAB...

Page 1: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

第 3 章 控制系统特性分析的 MATLAB 的实现3.1 控制系统稳定性分析的 MATLAB 实现

一 . 直接求根判定系统稳定性

求解控制系统闭环特征方程的根并判断所有根的实部是否小于零,在 MATLAB 里这是很容易用函数 roots( ) 实现的。

【例 3.1 】已知系统开环传递函数为: ,试判别系统的稳定性。 )20)(1(

)2(100)(

SSS

SSG

【解】根据题意,利用 roots( ) 函数给出以下 MATLAB 程序段:  k=100;z=[-2];p=[0,-1,-20];[n1,d1]=zp2tf(z,p,k) ; G=tf(n1,d1) ;

p=n1+d1 ; roots(p)

% 运行结果: n1 =[ 0 0 100 200] , d1 =[ 1 21 20 0] ; % 运行结果: Transfer function: 100 s + 200-------------------s^3 + 21 s^2 + 20 s

% 运行结果: p =[ 1 21 120 200]

ans =  -12.8990 -5.0000 -3.1010

Page 2: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

【解】根据题意,利用 roots( ) 函数给出以下 MATLAB 程序段:

【例 3.2 】已知系统的动态结构图如图 3.1-1 所示,试对系统闭环判别其稳定性。

图 3.1-1

n1=[ 10];d1=[1 1 0];s1=tf(n1,d1) ;

n1=[2 0];d1=[ 0 1];s2=tf(n1,d1) ;

s12=feedback(s1,s2) ;

% 运行结果: Transfer function: 10 ------ s^2 + s % 运行结果: Transfer function:2 s

% 运行结果: Transfer function: 10----------s^2 + 21 s

Page 3: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

n3=[ 1 1];d3=[1 0];s3=tf(n3,d3) ;

sys1=s12*s3 ;

sys=feedback(sys1,1)

roots(sys.den{1})

% 运行结果: Transfer function:s + 1----- s

% 运行结果: Transfer function: 10 s + 10------------s^3 + 21 s^2

% 运行结果: Transfer function: 10 s + 10 ------------------------s^3 + 21 s^2 + 10 s + 10

ans =  -20.5368 -0.2316 + 0.6582i -0.2316 - 0.6582i

Page 4: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

补充知识: MATLAB 基础Ⅱ 一 .M 文件

所谓 M 文件,就是用户把要实现的命令写在一个以 .m 为扩展名的文件中。与在命令窗口中输入命令行方式比, M 文件的有的是可调试、可重复使用。 M 文件分为程序文件与函数 (function)文件两大类。

1.M 程序文件

在 MATLAB 桌面建立新的 M 文件或打开已经建立好的 M文件(点击桌面操作环境画面中 File→New→m File 或 File→Open→ 所需文件)等操作,或直接在命令窗口键入“ edit” ,或直接点击图标 ,都能进入图 3.1-2 所示的 MATLAB 编辑和调试操作环境的窗口画面。

Page 5: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

图 3.1-2 MATLAB 编辑和调试操作环境的窗口画面

如【例 3.2 】可以用 M 文件方式建立,文件名为: zhang3L2.m

Page 6: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

2. 函数式 M 文件

在函数文件的第一行必须是以关键字“ function” 开始的函数说明语句。下面是一个只有两行的函数文件的例子。

Function c=myfile(a,b)

C=sqrt((a^2)+(b^2));

>>a=3;

>>b=4;

>>c=myfile(a,b);

c=

5

>>

Page 7: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

二 .MATLAB 控制系统工具箱函数 1. 主要模型建立函数表

Page 8: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

举例:

feedback 函数功能:两个系统的反馈连接格式:[A,B,C,D]=feedback(A1,B1,C1,D1,A2,B2,C2,D2) ;[A,B,C,D]=feedback(A1,B1,C1,D1,A2,B2,C2,D2,sign) ;[A,B,C,D]=feedback(A1,B1,C1,D1,A2,B2,C2,D2,inp1,out1) ; [num , den]=feedback(num1 , den1 , num2 , den2) ; [num , den]=feedback(num1 , den1 , num2 , den2 , sign)

;[A , B , C , D]=feedback(A1 , B1 , C1 , D1 , A2 , B2 ,

C2 , D2 , sign) 可将两个系统按反馈方式连接,系统 1 的所有输出连接到系统 2 的输入,系统 2 的所有输出连接到系统 1 的输入; sign 是用于反馈连接的符号,默认为负号。

[num , den]=feedback(num1 , den1 , num2 , den2 , sign);用于传递函数形式所表示的系统, sign 是用于反馈连接的符号,默认为负号。

Page 9: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

[A , B , C , D]=feedback(A1 , B1 , C1 , D1 , A2 , B2 ,C2 , D2 , inp1 , out1) 将系统 1 的指定输出( out1 )连接到系统 2 的输入,系统 2 的输出连接到系统 1 的指定输入( inp1 ),以次构成闭环系统,如图所示。

Page 10: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

在【例 3.2 】就用到了该函数。

Page 11: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

2. 主要模型变换函数表

Page 12: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

3. 主要模型特性函数表

Page 13: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

4. 主要时域响应函数表

Page 14: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

《线控》例 2-11 已知系统矩阵 ,输入矩阵 , ,

且 ,单输入 u(t) 为单位阶跃函数,试求系统的状态响应和输出响应。

32

10A

1

0B 01C

5.0

0)0(x

解:直接用 MATLAB 的 lsim 命令求解A=[0 1;-2 -3];B=[0 1]';C=[1 0];D=0;x0=[0 0.5];[y,x]=lsim(A,B,C,D,1+t*0,t,x0);plot(x);

Page 15: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

5. 主要频域响应函数表

Page 16: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

6. 主要的根轨迹函数表

Page 17: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

二.用根轨迹法判断系统稳定性及其举例【例 3.3 】已知一个单位负反馈系统开环传递函数为 G(s) ,试在系统闭环的根轨迹图上选择一点,求出该点的增益 k 及其系统的闭环极点位置,并判断在该点系统闭环的稳定性。

)22)(6)(5(

)3()(

2

sssss

sksG

【解】根据题目要求,调用函数命令 rlocfind( ) 的程序如下:

num=[1 3];den=conv(conv(conv([1 0],[1 5]),[1 6]),[1 2 2]) ;

sys=tf(num,den) ;

rlocus(sys)

% 运行结果:den = 1 13 54 82 60 0

% 运行结果: Transfer function: s + 3--------------------------------------------------s^5 + 13 s^4 + 54 s^3 + 82 s^2 + 60 s

图 3.1-2

Page 18: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

[k,poles]=rlocfind(sys)

selected_point = -0.6498 - 0.0585ik = 7.2349poles = -5.8248 -5.2067 -0.6585 + 0.8155i -0.6585 - 0.8155i -0.6514

Select a point in the graphics window

求给定一组根的系统根轨迹增益函数 rlocfind( ) 函数命令调用格式:[k,poles]=rlocfind(sys)

函数命令使用说明:

Page 19: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

【例 3.4 】续【例 3.3 】,试计算当 k 在 33—37 范围内时系统的闭环极点位置,并判断系统闭环的稳定性。【解】根据题目要求,用函数命令编写 MATLAB 程序如下:num=[1 3];den=conv(conv(conv([1 0],[1 5]),[1 6]),[1 2 2]);cpole=rlocus(num,den,[33:1:37]) ; % 运行结果:cpole = Columns 1 through 4   -5.5745 + 0.6697i -5.5745 - 0.6697i -1.7990 -0.0260 + 1.3210i -5.5768 + 0.6850i -5.5768 - 0.6850i -1.8154 -0.0155 + 1.3340i -5.5791 + 0.7001i -5.5791 - 0.7001i -1.8313 -0.0052 + 1.3467i -5.5815 + 0.7147i -5.5815 - 0.7147i -1.8466 0.0048 + 1.3591i -5.5838 + 0.7291i -5.5838 - 0.7291i -1.8615 0.0146 + 1.3712i  Column 5   -0.0260 - 1.3210i -0.0155 - 1.3340i -0.0052 - 1.3467i 0.0048 - 1.3591i 0.0146 - 1.3712i

Page 20: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

range=[33:1:37]' ;[range,cpole]

ans =  Columns 1 through 4   33.0000 -5.5745 + 0.6697i -5.5745 - 0.6697i -1.7990 34.0000 -5.5768 + 0.6850i -5.5768 - 0.6850i -1.8154 35.0000 -5.5791 + 0.7001i -5.5791 - 0.7001i -1.8313 36.0000 -5.5815 + 0.7147i -5.5815 - 0.7147i -1.8466 37.0000 -5.5838 + 0.7291i -5.5838 - 0.7291i -1.8615   Columns 5 through 6   -0.0260 + 1.3210i -0.0260 - 1.3210i -0.0155 + 1.3340i -0.0155 - 1.3340i -0.0052 + 1.3467i -0.0052 - 1.3467i 0.0048 + 1.3591i 0.0048 - 1.3591i 0.0146 + 1.3712i 0.0146 - 1.3712i

Page 21: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

求系统根轨迹的函数 rlocus( )

函数命令调用格式:[r,k]=rlocus(a,b,c,d)[r,k]=rlocus(sys)

函数命令使用说明:rlocus( ) 函数命令用来绘制 SISO 系统的

根轨迹图。给定前向通道传递函数 G(s) ,反馈补偿为 k*F(s) 的受控对象,其闭环传递函数为:

)(

)(

)()(1

)()(

sQ

sG

sFskG

sGs

可以用以下程序来校核当 k=35 与 k=36 时闭环系统的阶跃给定响应曲线:n1=[1 3];d1=conv(conv(conv([1 0],[1 5]),[1 6]),[1 2 2]);for k=35:36n=k*n1;s1=tf(n,d1);G=feedback(s1,1);step(G);hold onendgtext('k=35'),gtext('k=36')

图 3.1-.3

Page 22: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

求连续系统单位阶跃响应的函数 step( )

函数命令调用格式如下:step(sys)

三 . 用 Bode 图法判断系统稳定性及其举例【例 3.5 】已知两个单位负反馈系统开环传递函数分别为:

用 Bode 图法判断系统闭环的稳定性。sss

sGsss

sG45

7.2)(;

45

7.2)(

23223

1

【解】根据要求,对第一个系统用 margin( ) 函数命令给出如下程序:num=[0 0 0 2.7];den=[1 5 4 0];s1=tf(num,den);[Gm,Pm,Wcp,Wcg]=margin(s1)

Gm = 7.4074Pm = 51.7320Wcp = 2Wcg = 0.5783margin(s1)

图 3.1-4

Page 23: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

求系统幅值裕度与相位裕度的函数 margin( )

函数命令调用格式:[Gm,Pm,Wcp,Wcg]=margin(sys)margin(sys)

同样对第二个系统给出程序如下:n2=[0 0 0 2.7];d2=[1 5 -4 0];s2=tf(n2,d2);

margin(s2)

[Gm,Pm,Wcp,Wcg]=margin(s2)

Gm = 1Pm = 0

图 3.1-5

Page 24: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

四 . 李雅普诺夫 (Lyapunov) 稳定性判据

[ 定理 4.8] 线性系统渐进稳定的判别方法 设线性定常连续系统为 则平衡状态 为大范围渐进稳定的充要条件是:对任意给定的一个正定实对称矩阵 Q ,比必存在一个正定的实对称矩阵 P ,且满足李雅普诺夫方程

)11.3( uBAxx

0ex

复习:《现代控制理论》

)21.3( QPAPAT

并且 是系统的李雅普诺夫函数。)31.3( PxxV(x) T

)41.3( IPAPAT

Page 25: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

在《线代控制理论》的理论计算中,要判系统( 3.1-1 )是否稳定 , 需要做以下工作 :① 由式 (3.1-4) 求 P ,并验证 P 是正定的;② 由式 (3.1-3) 求 V(x) ,并判验证 V(x) 是正定的;③ 结论:系统是稳定的。

在 MATLAB 中, Lyapunov 方程( 3.1-2 )可以由控制系统工具箱中提供的 lyap( ) 函数求解,该函数的调用格式: V=lyap(A,W) 。

[ 例 3.6] 已知系统的状态方程为:

uxx

2

0

1

0

75.025.075.125.1

125.15.025.0.

25.025.125.425.2

5.025.1525.2

试分析系统的稳定性。

Page 26: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现
Page 27: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现
Page 28: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

3.2 控制系统稳态误差分析的 MATLAB 实现 一 . 控制系统稳态误差分析的有关概念

2. 自动控制系统的型别

3. 控制系统的稳态误差系数

1. 稳态误差 ess )12.3()(lim

teet

ss

)22.3()(1 hess

)32.3()()(lim0

sHsGKs

p

(2) 稳态速度误差系数 kv)42.3()()(lim

0

sHssGKs

v

(3) 稳态加速度误差系数 ka)52.3()()(2

0lim

sHsGsKas

(1) 稳态位置误差系数 kp

Page 29: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

二 . 控制系统稳态误差计算举例

)1)(2(

)12(3)(

sss

ssG

【例 3.7 】已知一个单位负反馈系统开环零极点增益模型为:

试绘制出该系统的单位斜坡响应曲线并求单位斜坡响应稳态误差。【解】( 1 )对系统判稳程序:k=6;z=-0.5;p=[-2 1 0];[n1,d1]=zp2tf(z,p,k) ;

s=tf(n1,d1) ;

sys=feedback(s,1) ;

roots(sys.den{1})

% 运行结果: n1 = 0 0 6 3 d1 = 1 1 -2 0

% 运行结果: Transfer function: 6 s + 3---------------s^3 + s^2 - 2 s

% Transfer function: 6 s + 3 ------------------- s^3 + s^2 + 4 s + 3

ans =  -0.1084 + 1.9541i -0.1084 - 1.9541i -0.7832

Page 30: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

( 2 )求系统单位阶跃给定响应与稳态误差程序:k=6;z=-0.5;p=[-2 1 0];[n1,d1]=zp2tf(z,p,k);s=tf(n1,d1);sys=feedback(s,1);step(sys) ;

t=[0:0.1:30]';y=step(sys,t);

subplot(121),plot(t,y),grid;

subplot(122),ess=1-y ;

plot(t,ess),grid

图 4.6 系统阶跃响应与阶跃误差响应曲线

ess(length(ess)) ans = -0.0322

% 运行结果: y = 0 0.0294

: 1.0224 1.0322

Page 31: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

求单位阶跃响应的稳态误差函数 esst( )

esst( ) 函数的调用格式为:[ess]=esst(sys,t)

% MATLAB PROGRAM esst.m function [ess]=esst(sys,t) y=step(sys,t); subplot(121),plot(t,y),gr

id subplot(122),es=1-y; plot(t,es),grid ess=es(length(es))

Page 32: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

如果运行以下调用 esst.m 函数的程序,会得到同样的结果。k=6;z=-0.5;p=[-2 1 0];[n1,d1]=zp2tf(z,p,k);s=tf(n1,d1);sys=feedback(s,1);t=[0:0.1:30]'[ess]=esst(sys,t);

ans = -0.0322

Page 33: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

3.3 用 MATLAB 分析系统能控能观测性的方法一 .能控能观性判别

u

u

DCxy

BAxx

BABAABBM nc

12 nMrank c )(

Tno CACACACM 12

系统能控

nMrank O )(

系统能观测),( BActrbMc

),( CAobsvMo

利用这两个函数很容易判定系统的能控性和能观测性。

Page 34: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

[ 例 3.9] 选自《现代控制理论》

已知系统的状态空间表达式为:

xy

uxx

120

11

00

10

960

324

211

用 MATLAB 函数分析系统能控性与能观测性。

Page 35: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现
Page 36: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现
Page 37: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

MATLAB 中,提供了可将连续或离散系统状态空间表达式化为对角线或约旦标准型的 jordan() 函数,该函数的格式为: [v , j] = jordan(A) 。

[ 例 3.10] 已知系统的状态空间表达式为:

xy

uxx

001

1

0

0

5116

6116

110

用 MATLAB 函数将系统化为对角线或约旦标准型,并分析系统能控性与能观测性。

Page 38: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现
Page 39: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现
Page 40: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

[ 例 3.11] 已知系统的状态空间表达式为:

xy

uxx

001

1

0

0

032

100

010

用 MATLAB 函数将系统化为对角线或约旦标准型,并分析系统能控性与能观测性。

Page 41: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现
Page 42: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现
Page 43: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

二 . 系统的结构分解 复习:

定理 [3.15] 设一个不能控系统的状态方程为 :

Cxy

BuAxx

c

cc x

xPx

xCy

uBxAx

ˆˆ

ˆˆˆ̂

211

22

1211 ˆˆˆ0

ˆˆ

ˆ0

ˆˆˆ CCC

BB

A

AAA

uBxAxAx 11

c12c11cˆˆˆ

cc xAx 22ˆ

能控子空间

不能控子空间

Page 44: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

MATLAB 中,提供了将系统进行能控与不能控分解的函数 ctrbf ( ),该函数的调研格式为:

[AB , BB , CB , T , K]=ctrbf(A,B,C)

同样,设一个不能观测系统的状态方程为 :

Cxy

BuAxx

xCy

uBxAx~~

~~~~

0~~

~

~~

~~0

~~

1

2

1

2221

11 CCB

BB

AA

AA

011

00

~

~~

xCy

uBxAx 111

uBxAxAx 20220210

~~~

能观测子空间

不能观测子空间

Page 45: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

MATLAB 中,提供了将系统进行能观测与不能观测分解的函数 obsvf ( ),该函数的调研格式为:

[AB , BB , CB , T , K]=obsvf(A,B,C)

[ 例 3.12] 已知系统的状态空间表达式为:

xy

uxx

111

1

1

0

340

010

121

对系统进行能控与不能控分解和能观测与不能观测分解。

Page 46: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现
Page 47: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

程序运行结果:>> n = 2AB = 1.0000 -0.0000 -0.0000 2.1213 4.0000 -1.2247 1.7321 2.4495 0BB = 0.0000 -0.0000 -1.4142CB = -1.6330 -0.5774 0 T = -0.8165 0.4082 -0.4082 0.5774 0.5774 -0.5774 0 -0.7071 -0.7071 K =  1 1 0

m = 2AB1 = 1.0000 -2.8868 -3.5355 -0.0000 2.0000 1.2247 -0.0000 0.8165 2.0000 BB1 = 1.2247 0.7071 0 CB1 = 0 0 -1.7321 T1 = -0.4082 0.4082 0.8165 0.7071 0.7071 0.0000 -0.5774 0.5774 -0.5774 K1 = 1 1 0>>

Page 48: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

系统按能控与不能控分解为新的状态空间表达式:

x

xx

ˆ05774.0633.1

4142.1

0

0

ˆ

04495.27321.1

2247.141213.2

001

ˆ

y

u

系统按能观测与不能观测分解为新的状态空间表达式:

x

xx

~7321.100

0

7071.0

2247.1~

28165.00

2247.120

5355.38868.21~

y

u

Page 49: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

P=floplr(eye(size(sys,’order’))) 。

0001

0010

0100

1000

P

则 : DDPCCBPBPAPA ˆ,ˆ,,ˆ 11

xPx ˆ令:

Page 50: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现
Page 51: 第 3 章 控制系统特性分析的 MATLAB 的实现 3.1  控制系统稳定性分析的 MATLAB 实现

结果:AB2 = 0 2.4495 1.7321 -1.2247 4.0000 2.1213 -0.0000 -0.0000 1.0000 BB2 = -1.4142 -0.0000 0.0000 CB2 = 0 -0.5774 -1.6330