是等价的。人们在进行系统分析研究时,往往根据不同的要求选择不同形式的系统 数学模型,因此研究不同形式的数学模型之间的转换具有重要意义。 1.机电系统模型向传递函数或零极点增益形式的转换 1).状态空间方程向传递函数形式的转换 系统的状态空间方程可表示为 X=AX+Bl Y=CX+DU 据此,可以得到等效的系统传递函数模型。 G(s) C(sl-A)"B+D den(s) 显然在进行这种变换过程中,求取(s-A)阵的逆比较困难,然而 MATLAB有 系列的函数可以完成各种变换,其中就包括进行这种变换的s函数,其基本格式 [num, den]=ss2tf(A, B, C, D, iu) 利用该函数即可实现将状态空间方程转换为传递函数的形式,i用于指定变换所使 用的输入量。为了获得传递函数的系统形式,还可以采用下述方式进行,即 Gl=ss(A, B, C, D); G2=tf(G1) 可以证明,由给定的状态方程模型转换为传递函数形式其结果是惟一的 例3-3已知连续系统Σ(A,B,C,D)的系数矩阵是 D=0 求取该系统相应的传递函数模型。 解:应用 MATLAB的stf函数可以方便实现这种转换。 A=[200:041;004 B=[01 [num den]=ss2tf(A, B, C, D, 1) G=tf (num, den)
57 是等价的。人们在进行系统分析研究时,往往根据不同的要求选择不同形式的系统 数学模型,因此研究不同形式的数学模型之间的转换具有重要意义。 1. 机电系统模型向传递函数或零极点增益形式的转换 1).状态空间方程向传递函数形式的转换 系统的状态空间方程可表示为 Y CX DU X AX BU = + = + 据此,可以得到等效的系统传递函数模型。 ( ) ( ) den(s) num s G s = =C(sI-A) -1B+D 显然在进行这种变换过程中,求取(sI-A)阵的逆比较困难,然而 MATLAB 有一 系列的函数可以完成各种变换,其中就包括进行这种变换的 ss2tf 函数,其基本格式 为 [num,den]=ss2tf(A,B,C,D,iu) 利用该函数即可实现将状态空间方程转换为传递函数的形式,iu 用于指定变换所使 用的输入量。为了获得传递函数的系统形式,还可以采用下述方式进行,即 G1=ss(A,B,C,D); G2=tf(G1) 可以证明,由给定的状态方程模型转换为传递函数形式其结果是惟一的。 例 3-3 已知连续系统 Σ(A,B,C,D)的系数矩阵是 A= 0 0 4 0 4 1 2 0 0 ,B= 1 0 1 , C=1 1 0, D= 0 求取该系统相应的传递函数模型。 解: 应用 MATLAB 的 ss2tf 函数可以方便实现这种转换。 A=[2 0 0;0 4 1;0 0 4]; B=[1 0 1]’ : C=[1 1 0]; D=0; [num den]=ss2tf(A,B,C,D,1) G=tf(num,den)
运行上述语句即可实现要求的转换,利用G=tf(num,den)将转换后的传递函数分 子,分母多项式系数向量构造成传递函数系数模型,下面给出了运算结果 Transfer function 2-7s+14 3-10s^2+32s-32 对于多输入系统,应用stf函数可以进行指定要求的模型转换 例3-4已知连续系统软∑(A,B,C,D)的系数矩阵是 2.25-5-125-0.5 2.25-425-125-0.25 0 0.25-0.5-1.25-1 22 1.25-1.75-0.25-0.75 求取系统相应的传递函数模型 解:该系统为一双输入系统,利用sf函数可以进行指定输入的状态方程向传 递函数的转换。stf(A,B,C,D,T)函数中的T,指定了要转换的系统所对应 的输入信号,下面给出了相应于第二输入信号的转换方法 A=[2.25-51.25-0.5;2.25-4.25-1.25-0.25; 0.25-0.5-1.25-1;1.25-1.75-0.250.75 B=[46;24;22;02] C=[0202」 D=001 T=2 [num 2, den2]=ss2tf(A, B, C, D,T G=tf (num2, den2) 运行结果num2= 012.000032.000037.00017.0000 1.00004.00006.25005.25002.2500 Transfer function 12s^3+32s^2+37s+17 s^4+4s^3+6.25s^2+5.25s+2.25
58 运行上述语句即可实现要求的转换,利用 G=tf(num,den)将转换后的传递函数分 子,分母多项式系数向量构造成传递函数系数模型,下面给出了运算结果; num= 0 1.0000 -7.0000 14.0000 den= l -10 32 -32 Transfer function: s ^ 2 – 7 s + 14 s ^ 3 – 10 s ^ 2 + 32 s - 32 对于多输入系统,应用 ss2tf 函数可以进行指定要求的模型转换。 例 3-4 已知连续系统软Σ(A,B,C,D)的系数矩阵是 A= − − − − − − − − − − − − 1 25 1 75 0 25 0 75 0 25 0 5 1 25 1 2 25 4 25 1 25 0 25 2 25 5 1 25 0 5 . . . . . . . . . . . . . . ,B= 0 2 2 2 2 4 4 6 ,C= 0 2 0 2,D= 0 求取系统相应的传递函数模型。 解:该系统为一双输入系统,利用 ss2tf 函数可以进行指定输入的状态方程向传 递函数的转换。ss2tf(A,B,C,D,T)函数中的 T,指定了要转换的系统所对应 的输入信号,下面给出了相应于第二输入信号的转换方法。 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=[4 6;2 4;2 2;0 2]; C=[0 2 0 2」; D=[0 0]; T=2; [num2,den2]=ss2tf(A,B,C,D,T) G=tf(num2,den2) 运行结果 num2= 0 12.0000 32.0000 37.000 17.0000 den2= 1.0000 4.0000 6.2500 5.2500 2.2500 Transfer function: 12 s ^ 3 + 32 s ^ 2 + 37 s + 17 s ^ 4 + 4 s ^ 3 + 6.25 s ^ 2 + 5.25 s + 2.25
当T=1时,将指定第一输入信号所对应的系统转换,下面给出了相应的转换结 果 4.000014000022.0000 150000 1.0000 4.00006.2500 5.2500 Transfer function 4s^3+14s^2+22s+15 s^4+4s^3+6.25s^2+525s+2.25 2).模型向零极点形式的转换 系统的零极点模型实际上是传递函数模型的另一种形式,也是对系统进行分析 的一类常用模型,因此在MA∏LAB中,也提供了实现将各类系统模型转换为零极点 形式模型的函数。其基本格式为 [z, p, k] =ss2zp(A, B, D,IU) [z, p, k]=tf2zp(num, den) 上述第一式是将以状态方程形式给出的模型根据指定研究的输入,转换为零极点模 型形式:第二式是将传递函数形式给出的模型转换为零极点形式;第三式十分简洁 用该函数可将非零极点形式的模型转换为零极点系统模型 例3-5已知系统状态方程的系数阵为 C=15 D=0 10 试将其转换成零极点模型形式 解:利用转换函数 [z, P,k=ss2zp(A, B, C, D) 即可实现所希望的转换,运行结果为 1.3333
59 当 T=1 时,将指定第一输入信号所对应的系统转换,下面给出了相应的转换结 果。 num1= 0 4.0000 14.0000 22.0000 15.0000 denl= 1.0000 4.0000 6.2500 5.2500 2.2500 Transfer function: 4 s ^ 3 + 14 s ^ 2 + 22 s + 15 s ^ 4 + 4 s ^ 3 + 6.25 s ^ 2 + 5.25 s + 2.25 2).模型向零极点形式的转换 系统的零极点模型实际上是传递函数模型的另一种形式,也是对系统进行分析 的一类常用模型,因此在 MATLAB 中,也提供了实现将各类系统模型转换为零极点 形式模型的函数。其基本格式为 [z,p,k]=ss2zp(A, B,D,IU) [z,p,k]=tf2zp(num,den) Gzp=zpk(sys) 上述第一式是将以状态方程形式给出的模型根据指定研究的输入,转换为零极点模 型形式;第二式是将传递函数形式给出的模型转换为零极点形式;第三式十分简洁, 用该函数可将非零极点形式的模型转换为零极点系统模型。 例 3-5 已知系统状态方程的系数阵为 A= − − 1 0 3 2 ,B= 0 1 ,C= 1.5 2,D= 0 试将其转换成零极点模型形式。 解:利用转换函数 [z ,P,k]=ss2zp(A,B,C,D) 即可实现所希望的转换,运行结果为 z= -1.3333 p= -2 -1 k=
1.5000 也可利用G4p=4pk(sys)函数进行转换,即 sy (A, B, C, D) 运行结果 Continuous-time system Zero/pole/gain 2(s+0.5) (s+2)(s+1) 显然,两种方法所得到的结果是相关的 2.系统模型向状态方程形式的转换 前面介绍了系统模型转换为传递函数的方法,同样也可以利用 MATLAB函数实 现所需要的系统模型向状态方程的转换。其基本格式为 [A, B, C, D]=tf2ss(num, den) D]=zp2ss(Z,p, k) 例3-6已知系统传递函数为 18s+36 s3+404s2+391s+150 应用MA∏LAB的模型转换函数将其转换为状态方程形式的模型。 解:应用t2s转换函数很容易实现所要求的转换。但应注意,由于其状态变量 选取的不同,转换结果是不惟一的。下面给出了应用t2s函数的转换程序与结果 num=[18,36; den=[1404391150]: LA, B, C, D]=tf2ss(num, den) 运行结果为 A -40.4000-391.0000-150.0000 1.0000 0
60 1.5000 也可利用 Gzp=zpk(sys)函数进行转换,即 sys=ss(A, B, C, D) Gzp=zpk(sys) 运行结果 Continuous-time system. Zero/pole/gain; 2(s+0.5) (s 十 2) (s+1) 显然,两种方法所得到的结果是相关的。 2. 系统模型向状态方程形式的转换 前面介绍了系统模型转换为传递函数的方法,同样也可以利用 MATLAB 函数实 现所需要的系统模型向状态方程的转换。其基本格式为 [A,B,C,D]=tf2ss(num,den) [A,B,C,D]=zp2ss(Z,p,k) syss=ss(sys) 例 3-6 已知系统传递函数为 ( ) 40 4 391 150 18 36 3 2 + + + + = s s s s G s . 应用 MATLAB 的模型转换函数将其转换为状态方程形式的模型。 解: 应用 tf2ss 转换函数很容易实现所要求的转换。但应注意,由于其状态变量 选取的不同,转换结果是不惟一的。下面给出了应用 tf2ss 函数的转换程序与结果。 num=[18,36]; den=[1 40.4 391 150]; [A,B,C,D]=tf2ss(num,den) 运行结果为 A= -40.4000 -391.0000 -150.0000 1.0000 0 0 0 1.0000 0 B= 1 0 0
利用[A,B,C,D]=p2 ss(z, p, k)可以将零极点形式给出的模型转换为状态方程 对于sys=ss(sys),可以将任意L∏系统模型转换为状态方程 例3-7考虑例3-6,将程序进行修改。 解:修改程序如下 num=[18,36]: den=[1404391150] G=tf (num, den) Sys=ss(g) 运行结果 -40.4000-391.0000-150.0000 1.00000 01.0000 01836 D 3.1.3系统状态方程的变换与实现 1.状态方程的相似变换 在前一节已经述及将系统的状态方程转换为传递函数时,其结果是惟一的:然 而由于状态变量的选取不同,将系统的传递函数转换为状态方程则不能保证结果的 惟一。换言之,对于一个系统的传递函数,可以存在着众多的状态方程实现。这样 对于同一个系统有着不同的状态方程的描述,因此也就存在着它们之间的相互变换, MATLAB中的sss函数可以实现对系统状态方程的相似变换。其基本格式为 GT=sS2ss (G, T) 其中,G为原系统的状态方程模型,T为非奇异变换阵
61 C= 0 18 36 D= 0 利用[A,B,C,D]=zp2ss(z,p,k)可以将零极点形式给出的模型转换为状态方程。 对于 sys=ss(sys),可以将任意 LTI 系统模型转换为状态方程。 例 3-7 考虑例 3-6,将程序进行修改。 解: 修改程序如下。 num=[18,36]; den=[1 40.4 391 150]; G=tf(num, den) Sys= ss(G) 运行结果 A= -40.4000 -391.0000 -150.0000 1.00000 0 0 0 1.0000 0 B= 1 0 0 C= 0 18 36 D= 0 3.1.3 系统状态方程的变换与实现 1.状态方程的相似变换 在前一节已经述及将系统的状态方程转换为传递函数时,其结果是惟一的;然 而由于状态变量的选取不同,将系统的传递函数转换为状态方程则不能保证结果的 惟一。换言之,对于一个系统的传递函数,可以存在着众多的状态方程实现。这样, 对于同一个系统有着不同的状态方程的描述,因此也就存在着它们之间的相互变换, MATLAB 中的 ss2ss 函数可以实现对系统状态方程的相似变换。其基本格式为 GT=ss2ss(G,T) 其中,G 为原系统的状态方程模型,T 为非奇异变换阵