MATLAB学习记录-系统的数学模型-(状态空间表达式的建模)-自动控制篇

状态空间表达式的MATLAB建模

设本节中,具有r个输入、m个输出的n阶线性定常系统的状态空间表达式为
X ˙ ( t ) = A X ( t ) + B U ( t ) \dot{X}(t)=AX\left(t\right)+BU\left(t\right) X˙(t)=AX(t)+BU(t)
Y ( t ) = C X ( t ) + D U ( t ) Y(t)=CX(t)+DU(t) Y(t)=CX(t)+DU(t)
其中, X ( t ) = [ x 1 ( t ) ⋮ x n ( t ) ] , U ( t ) = [ u 1 ( t ) ⋮ u r ( t ) ] , Y ( t ) = [ y 1 ( t ) ⋮ y m ( t ) ] X(t)=\left[\begin{matrix}x_1(t)\\\vdots\\x_n(t)\\\end{matrix}\right],U(t)=\left[\begin{matrix}u_1(t)\\\vdots\\u_r(t)\\\end{matrix}\right],Y(t)=\left[\begin{matrix}y_1(t)\\\vdots\\y_m(t)\\\end{matrix}\right] X(t)=x1(t)xn(t),U(t)=u1(t)ur(t),Y(t)=y1(t)ym(t)
A = [ a 11 ⋯ a 1 n ⋮ ⋱ ⋮ a n 1 ⋯ a n n ] , B = [ b 11 ⋯ b 1 r ⋮ ⋱ ⋮ b n 1 ⋯ b n r ] , C = [ c 11 ⋯ c 1 n ⋮ ⋱ ⋮ c m 1 ⋯ c m n ] , D = [ d 11 ⋯ d 1 r ⋮ ⋱ ⋮ d m 1 ⋯ d m r ] A=\left[\begin{matrix}a_{11}&\cdots&a_{1n}\\\vdots&\ddots&\vdots\\a_{n1}&\cdots&a_{nn}\\\end{matrix}\right],B=\left[\begin{matrix}b_{11}&\cdots&b_{1r}\\\vdots&\ddots&\vdots\\b_{n1}&\cdots&b_{nr}\\\end{matrix}\right],C=\left[\begin{matrix}c_{11}&\cdots&c_{1n}\\\vdots&\ddots&\vdots\\c_{m1}&\cdots&c_{mn}\\\end{matrix}\right],D=\left[\begin{matrix}d_{11}&\cdots&d_{1r}\\\vdots&\ddots&\vdots\\d_{m1}&\cdots&d_{mr}\\\end{matrix}\right] A=a11an1a1nann,B=b11bn1b1rbnr,C=c11cm1c1ncmn,D=d11dm1d1rdmr
A——n × \times ×n阶矩阵,反映系统内部状态的联系,称为系统矩阵
B——n × \times ×r阶矩阵,反映输入对系统内部状态的作用,称为输入矩阵(或控制矩阵
C——m × \times ×n阶矩阵,反映系统内部状态对输出的作用,称为输出矩阵
D——m × \times ×r阶矩阵,反映输入对输出的直接传递关系,称为直接传递矩阵。(多数情况下系统存在着惯性,其直接传递矩阵通常为零)

在MATLAB中,将各个矩阵记为

>> X=[x1;x2;...;xn];
>> U=[u1;u2;...;un];		
>> Y=[y1;y2;...;yn];	
>> A=[a1 a2 ... a1n;a21 a22 ... a2n;......;an1 an2 ... ann];	
>> B=[b1 b2 ... b1r;b21 b22 ... b2r;......;bn1 bn2 ... bnr];	
>> C=[c1 c2 ... c1n;c21 c22 ... c2n;......;cm1 cm2 ... cmn];	
>> D=[d1 d2 ... d1r;d21 d22 ... d2r;......;dm1 dm2 ... dmr];	

需要用到的函数:
ss函数:用于建立系统的状态空间模型。

>> g=ss(A,B,C,D);

使用范例:
已知系统的状态空间表达式
X ˙ = [ 3 1 0.5 1 1.2 0.1 6 0 0.1 ] X + [ 1 0 3 ] U \dot{X}=\left[\begin{matrix}\begin{matrix}3&1\\\end{matrix}&0.5\\\begin{matrix}\begin{matrix}1\\1.2\\\end{matrix}&\begin{matrix}0.1\\6\\\end{matrix}\\\end{matrix}&\begin{matrix}0\\0.1\\\end{matrix}\\\end{matrix}\right]X+\left[\begin{matrix}1\\0\\3\\\end{matrix}\right]U X˙=3111.20.160.500.1X+103U
Y = [ 1 1 2 ] X Y=\left[\begin{matrix}1&1&2\\\end{matrix}\right]X Y=[112]X
MATLAB中建立系统的状态空间表达式和传递函数的多项式形式和零-极点形式模型。

>> A=[3 1 0.5; 1 0.1 0; 1.2 6 0.1];
%输入系统矩阵
>> B=[1;0;3];
%输入输入矩阵
>> C=[1 1 2];
%输入输出矩阵
>> D=0;
>%输入直接传递矩阵
>> g=ss(A,B,C,D)
%建立系统状态空间表达式模型
g =
 
  A = 
        x1   x2   x3
   x1    3    1  0.5
   x2    1  0.1    0
   x3  1.2    6  0.1
 
  B = 
       u1
   x1   1
   x2   0
   x3   3
 
  C = 
       x1  x2  x3
   y1   1   1   2
 
  D = 
       u1
   y1   0
 
Continuous-time state-space model.
>> g=tf(g)
%执行此命令得到系统多项式形式的传递函数模型
g =
 
      7 s^2 - 13.9 s + 8.82
  -----------------------------
  s^3 - 3.2 s^2 - 0.99 s - 2.87
 
Continuous-time transfer function.

>> g=zpk(g)
%执行此命令得系统零-极点形式的传递函数模型
g =
 
       7 (s^2 - 1.986s + 1.26)
  ----------------------------------
  (s-3.681) (s^2 + 0.4808s + 0.7797)
 
Continuous-time zero/pole/gain model.

>> [num,den]=ss2tf(A,B,C,D)
%执行此命令得系统传递函数多项式形式的分子、分母多项式系数
num =

         0    7.0000  -13.9000    8.8200


den =

    1.0000   -3.2000   -0.9900   -2.8700

>> [z,p]=ss2zp(A,B,C,D)
%执行此命令得系统得零-极点。z为零点,p为极点。
z =

   0.9929 + 0.5237i
   0.9929 - 0.5237i


p =

   3.6808 + 0.0000i
  -0.2404 + 0.8497i
  -0.2404 - 0.8497i
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Blablabla...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值