控制系统的数学模型及其转换
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
K为系统增益,zi为零点,pj为极点 在MATLAB中零极点增益模型用[z,p,K]向量组表示。生成 零极点增益模型的matlab函数为zpk(): z=[z1,z2,…,zm] p=[p1,p2,...,pn] K=[k]
(1)零极点增益模型zpk函数调用格式
sys=zpk(z,p,k) %生成零极点增益模型 sys=zpk(z,p,k,Ts) sys=zpk(M) %生成静态增益s传统函数 sys=zpk(s) %生成拉普拉斯因子s zsys=zpk(sys) %将传递函数、状态空间模型转换为零极点增 益模型
3.3 模型的转换
• 模型转换的函数包括:
[num,den]=ss2tf(A,B,C,D): 状态空间模型转换为传递函数模型 [z,p,k]=ss2zp(A,B,C,D): 状态空间模型转换为零极点增益模型 [A,B,C,D]=tf2ss(num,den): [z,p,k]=tf2zp(num,den): 传递函数模型转换为状态空间模型
例:建立下述传递函数模型的matlab表示 12s 3 24s 2 20 1) G( s ) 2s 4 4s 3 6s 2 2s 2
》num=[12,24,0,20];den=[2 4 6 2 2];sys=tf(num,den)
4( s 2)(s 2 6s 6)2 2) G( s ) s( s 1)3 ( s 3 3s 2 2s 5)
G (s) 6( s 3) ( s 1)( s 2)( s 5)
解:命令如下: z=[-3];p=[-1,-2,-5];k=6; [num,den]=zp2tf(z,p,k) num= 0 0 6 18 den= 1 8 17 10 [a,b,c,d]=zp2ss(z,p,k) 》a= -1.0000 0 0 b=1 2.0000 -7.0000 -3.1623 1 0 3.1623 0 0 c= 0 0 1.8974 d=0 注意:零极点的输入可以写成行向量,也可以写成 列向量。
(3)多输入多输出系统(MIMO)传递函数模型
对多输入多输出系统,分子、分母为元胞类型向量。 元胞数组:元胞数组的基本元素是元胞,元胞可以存放任何 类型数据,而且同一个元胞数组的各元胞(cell)中的内 容可以不同。元胞数组的定义符是{ }, 例:A={[0 1],3;‘this is book’,[2 5]}。元胞数组元素内容的访 问用{ },如:A{1,1},结果得到[0 1],或者使用单下标,如 A{2},结果是“this is book”。
( s 3) s G (s) (s 1)( s 50)( s 10)
4)零极点增益模型: G ( s ) z=[]; p=[-1,-2,-3-4j,-3+4j]; k=5; sys=zpk(z,p,k)
5 ( s 1)( s 2)( s 3 4 j )( s 3 4 j )
例:
1 3 x 4 5 0 y 8
6 12 7 12 0 0
10 4 6 8 2 x 2 9 11 13 14 1 2 1 x 2 2 9
6 4 u 2 0
系统为一个两输入两输出系统 A=[1 6 9 10; 3 12 6 8; 4 7 9 11; 5 12 13 14]; B=[4 6; 2 4; 2 2; 1 0]; C=[0 0 2 1; 8 0 2 2]; D=zeros(2,2);
解: num=[0 0 -2;0 -1 -5;1 2 0];den=[1 6 11 6]; [A,B,C,D]=tf2ss(num,den) 》A= -6 -11 -6 B= 1 C= 0 0 -2 D= 0 1 0 0 0 0 -1 -5 0 0 1 0 0 1 2 0 0
3)系统的零极点增益模型如下,试求其传递函数模型及状态 空间模型:
此外,parallel还有如下调用格式:
[a,b,c,d]=parallel(a1,b1,c1,d1,a2,b2,c2,d2) [a,b,c,d]=parallel(a1,b1,c1,d1,a2,b2,c2,d2,inp1,in p2,out1,out2) [num,den]=parallel(num1,den1,num2,den2)
(4)传递函数模型生成方法(二)
利用拉普拉斯变量因子“s”直接生成传递函数模型。
例:已知传递函数模型如下,利用拉普拉斯变量因子“s”直接 生成传递函数模型。 s 1
sys s ( s 2 s 2)
解:命令如下: s=tf('s'); %定义拉普拉斯变量s sys=(s+1)/(s*(s^2+s+2))
例:给定一个多入多出系统: 试生成其仿真模型
1 s 1 G( s) 2
1 s 2 s 1 s 2
解:命令如下: num ={1 1;2 [1 2]}; den={[1 1],[1 2];1,[1 2]}; sys=tf(num,den)
注意:元素sys(i,j)表示输入j对输出i的传递函数。
(2)传递函数模型命令tf()调用格式
sys=tf(num,den) sys=tf(mum,den,Ts) %用于生成离散传体函数,Ts为采样时间。 sys=tf(M) %用于生成静态增益s传递函数, sys=tf(‘s’) %用于生成拉普拉斯变量s的有理传递函数 tfsys=tf(sys) sys=tf(num,den,’Property1’,Value1,……, ’PropertyN’,Value N) :用于生成传递函数模型,同时定义传递函数的属性 值。传递函数的属性值可用get(sys)命令来查看 例3.1
(三)状态空间模型
状态方程与输出方程的组合称为状态空间表达式,又称 为动态方程,经典控制理论用传递函数将输入—输出关 系表达出来,而现代控制理论则用状态方程和输出方程 来表达输入—输出关系,揭示了系统内部状态对系统性 能的影响。
Ax Bu x y Cx Du
在MATLAB中,系统状态空间用(A,B,C,D)矩阵组表示, 函数为ss()。
传递函数模型转换为零极点增益模型
[A,B,C,D]=zp2ss(z,p,k) : 零极点增益模型转换为状态空间模型
[num,den]=zp2tf(z,p,k): 零极点增益模型转换为传递函数模型
传递函数、状态空间、零极点模型之间转换 示意图
用Leabharlann Baidu举例: 0 1)已知系统状态空间模型为: x 1
第3章:控制系统的数学模型及其转换
在线性系统理论中,一般常用的数学模型形式有: 传递函数模型(系统的外部模型) 状态方程模型(系统的内部模型) 零极点增益模型(传递函数模型的一种)
这些模型之间都有着内在的联系,可以相互进行转换。
3.1 系统的类型
按系统性能分:线性系统和非线性系统;连续系统和离散系 统;定常系统和时变系统;确定系统和不确定系统。 1、线性连续系统:用线性微分方程式来描述,如果微分方程 的系数为常数,则为定常系统;如果系数随时间而变化,则 为时变系统。今后我们所讨论的系统主要以线性定常连续系 统为主。 2、线性定常离散系统:离散系统指系统的某处或多处的信号 为脉冲序列或数码形式。这类系统用差分方程来描述。 3、非线性系统:系统中有一个元部件的输入输出特性为非线 性的系统。 下面来分析各种数学模型的MATLAB表示形式
例题3.5matlab表示 给出零极点增益模型
1 z 0 . 3 H ( z) 2( z 0.5) ( z 0.1 j )(z 0.1 j )
解:命令如下 z={[];-0.5} p={0.3;[0.1-j,0.1+j]} k=[1;2] sys=zpk(z,p,k,[])
二、零极点增益模型
• 零极点模型实际上是传递函数模型的另一种表现形式,其 原理是分别对原系统传递函数的分子、分母进行分解因式 处理,以获得系统的零点和极点的表示形式。
( s z1 )(s z2 )...(s zm ) G( s ) K ( s p1 )(s p2 )...(s pn )
3.2
传递函数描述
一、连续系统的传递函数模型
连续系统的传递函数如下:
C ( s) b1s m b2 s m1 ... bn s bm1 G( s ) R( s) a1s n a2 s n 1 ... an s an 1
• 对线性定常系统,式中s的系数均为常数,且a1不等于零, 这时系统在MATLAB中可以方便地由分子和分母系数构 成的两个向量唯一地确定出来,这两个向量分别用num和 den表示。 num=[b1,b2,…,bm,bm+1] den=[a1,a2,…,an,an+1] 注意:它们都是按s的降幂进行排列的。
(1)状态空间模型函数调用格式(1)
Sys=ss(A,B,C,D) % 生成状态空间模型 Sys=ss(A,B,C,D,Ts) % 生成离散的状态空间模型 Sys_ss=ss(sys) % 将其它模型转换为状态空间模型
例3.7状态空间模型 用matlab表示
1 0 0 0 x 0 x 0 0 1 5 20 1 1 y [1 0 0] x
3.4、系统模型的连接
1、并联:parallel
• 系统模型之间的并联分SISO系统模型的并联和MIMO系统 模型的并联
MALTAB提供了求取子系统模型并联的函数parallel() 其调用格式如下:
• sys=parallel(sys1,sys2):两个SISO系统模型的并联
• sys=parallel(sys1,sys2,in1,in2,out1,out2):生成两个 MIMO系统的并联模型,并联输入端口由向量in1 和in2定义,并联的输出端口由向量out1和out2定 义。in1和out1对应sys1用于并联的输入、输出端 口向量,in2和out2对应sys2用于并联的输入、输 出端口向量。
(1)递函数的Maltab模型
C ( s) b1s b2 s ... bn s bm1 G( s ) n n 1 R( s) a1s a2 s ... an s an 1
m
m 1
num=[b1,b2,…,bm,bm+1] den=[a1,a2,…,an,an+1] 可用命令tf()建立一个传递函数模型,或将 零极点增益模型或状态空间 模型转变为传 递函数模型。
借助多项式乘法函数conv来处理: num=4*conv([1,2],conv([1,6,6],[1,6,6])); den=conv([1,0],conv([1,1],conv([1,1],conv([1,1],[1,3 ,2,5])))); sys=tf(num,den)
3)零极点增益模型:
z=[-3,0]; p=[-1,50,-10]; k=1; sys=zpk(z,p,k)
y 1 3x u
1 0 x u 2 1
2)已知一个单输入三输出系统的传递函数模型如下,求其 状态空间模型
y1 (s) 2 s 5 G11(s) G21(s) 3 2 u(s) s 6s 11s 6 s 3 6s 2 11s 6 G31(s) s 2 2s s 3 6s 2 11s 6
A=[0 1; -1 -2]; B=[0;1]; C=[1,3]; D=[1]; [num,den]=ss2tf(A,B,C,D,iu) [z,p,k]=ss2zp(A,B,C,D,iu) %iu用来指定第n个输入,当只有一个输入时可忽略。 [num,den]=ss2tf(A,B,C,D) 》num = 1.0000 5.0000 2.0000 den = 1 2 1 [z,p,k]=ss2zp(A,B,C,D) 》z= -4.5616 p= -1 k=1 -0.4384 -1