
计算机仿真第二章.docx
15页第2章控制系统的数学模型及其转换对被控制系统进行计算机仿真,首先应知道对象的数学模型,然 后设计合适的控制器,使被控对象的响应达到预期的性能2.1线性系统数学模型的描述1. 传递函数SISO系统一般表示形式:d n d n-1 d矿 Y (t) + a1 --_- y (t) + …+ a 1 __ y (t) + a1 y (t)dm d m-1 d=b ——u (t) + b u (t) + …+ b .— u (t) + a u (t)两边Laplace变换,传递函数为(零初始条件):G( ) Y(s) b Sm + b Sm-i + • • • + b U(s) Sn + a Sn-i + • • + a传递函数的MATLAB表示方法:num=[ b0 bi ... bm] ; den=[ 1 al a2 ... an]即两个系数降幂排列向量[例2-1]给定系统的传递函数为6 s 3 +12 s 2 + 6 s +10 G (s)= s 4 + 2 s 3 + 3s 2 + s +1解:MATLAB语句表示:>>num=[6 12 6 10];>>den=[1 2 3 11];>>printsys(num , den)对离散时间系统,动态模型以差分方程来描述。
采样时刻k的输入信号为u( kT),输出信号为y( kT), T为采样周期,则相应的差分方程为:y[(k + n)T] + g1 y[(k + n - 1)T] + — + g 1 y[(k + 1)T] + g y(kT)=hu[(k + m)T] + hu[(k + m - 1)T] + .•: + h u[(k + 1)T] + h u(kT)两边Z变换,脉冲传递函数为(零初始条件):G(^) Y(z) h zm + h zm-1 + …+ hU(z) Zn + g zn-1 + + g z + g脉冲传递函数的MATLAB表示方法:num=[ h0 h1 ... hm] ; den=[ 1 g1 g2 ... gn]即两个系数降幂排列向量2. 零极点增益形式SISO系统的零极点增益模型:"' 七)K (s - z )(s - z )…(s - z ) G (S) = K J =1 = K 1 2 mn (s - p) (s-p)(s-p)…(s-p)▲■\L,/ 1 2 ni=1MATLAB表示方法:Z=[z1 ; z2 ; ... ; zm] ; P=[ p1 ; p2 ; ... ; pn] ; K=K 对离散系统,零极点增益模型为:(z — z )(z — z )…(z — z )G ( z ) = K 1 2 n—(z — p )(z — p )…(z — p )1 2 nMATLAB 表示:Z=[z1 ; z2 ; ... ; zn] ; P=[ p1 ; p2 ; ... ; pn] ; K=K3. 状态空间表达式描述MIMO系统,是一种内部模型。
线性定常连续系统的状态空间表达式表示为:J x (t) = Ax(t) + Bu (t)[y (t) = Cx(t) + Du (t)式中,矩阵A,B, C, D具有合适的维数可简记为:Z(A,B, C, D)状态方程可由I (A, B, C, D)来确定[例2-5]系统的状态空间表达式为x (t)= y (t)=0-3/2-3二 1 00 1011-2-1/2x (t) +-10-4-1x(t)1-1 u (t)-3解:MATLAB表示:>>A=[ 0 0 1; -3/2 -2 -1/2 ; -3 0 -4]>>B=[ 1 1 ; -1 -1 ; -1 -3]>>C=[ 1 0 0 ; 0 1 0]>>D=zeros(2,2)对于离散系统,状态空间表达式表示为J x[(# + 1)T ] = Gx(kT) + Hu (kT) [y (kT) = Cx( kT) + Du (kT) 简记为 I (G, H, C, D)2.2系统数学模型间的相互转换仿真研究中,不同的控制算法需要不同形式的模型1. 状态空间表达式到传递函数调用格式:[num , den]=ss2tf(A,B,C,D,iu)iu为输入的代号。
对单变量系统iu=1o2. 状态空间表达式到零极点调用格式:[Z,P,K]=ss2zp(A,B,C,D,iu)iu为输入的代号对单变量系统iu=1o3. 传递函数到状态空间表达式调用格式:[A,B,C,D]=tf2ss(num,den)4. 传递函数到零极点调用格式:[Z,P,K]=tf2zp(num,den)5. 零极点到状态空间表达式调用格式:[A,B,C,D]=zp2ss(Z,P,K)6. 零极点到传递函数调用格式:2.3系统模型的连接控制系统常常由若干个环节通过串联、并联、反馈的连接方式组合而成1. 串联连接y当系统S(A ,B ,C ,D )和X(A ,B ,C ,D )如图2-1连接时1 1 1 1 1 2 2 2 2 2图2-1系统的串联连接这时有u = u , y = y , u = y串联后系统总的状态空间表达式为x1=_ A10 一「x ]1+「B 一1xB CAxB Du22 1+ DDu2y =仿£ c2 一21 2y x1x (t) = Ax(t) + Bu(t)y (t) = Cx(t) + Du(t)串联后系统总的传递函数为G(s) = C(sI - A)-1B + D = G (s)G (s)调用格式:[A, B, C, D]=series( A, B , C , D , A, B , C , D ),,, , , , , , , ,JL JL JL JL 乙 乙 乙 乙[num, den]=series( num「den「num2, den2 )其中,(A , B , C , D )和(A , B , C , D )分别为系统1和系统2的状JL JL JL JL 」 」 」 」态空间形式的系数矩阵,(A, B, C, D)为串联连接后的整体状态空间 形式的系数矩阵。
同样,第二式为传递函数形式[例2-14-1]求下列两系统串联后的系统模型解:MATLAB语句如下>>num1=3; den1=[1 4];>> num2=[2 4]; den2=[1 2 3];>>[num,den]=series(num1,den1,num2,den2)2. 并联连接当系统Z(A ,B , C ,D )和Z(A ,B ,C ,D )如图2-2所示连接时有1 1 1 1 1 2 2 2 2 2x1X2这时并联后系统总的状态空间表达式为「 nx1+-B 一1Lx」LB D 」0A22 2 1u+ D DuG(s) = C(si - A) -1B + D = G (s) + G (s)调用格式:[A,B,C,D]=parallel( A, B , C , D , A, B , C , D ),"" , , , , , , ,JL JL JL JL 乙 乙 乙 乙[num, den]= parallel ( num1, den1, num2, den2 )解:MATLAB语句如下>>num1=3; den1=[1 4];>> num2=[2 4]; den2=[1 2 3];>>[num,den]=series(num1,den1,num2,den2)3. 反馈连接当系统Z(A ,B , C ,O )和Z(A ,B , C ,D )如图2-3所示连接时有1 1 1 1 1 2 2 2 2 2U = U + y 2 , u 2 =七,y =七图2-3系统的反馈连接系统总的传递函数为G(s) = C(sI - A)-1B + D = h G (s)G (s)L G (s)反馈连接处理函数feedback()的调用格式:[A,B,C,D]= feedback ( A, B , C , D , A, B , C , D , sign ) ,,, , , , , , , , ,JL JL JL JL 乙 乙 乙 乙[num, den]= feedback ( num「den「num2, den2, sign )sign=1正反馈,sign=-1负反馈(默认)。
对于单位反馈系统,有专用处理函数:[A,B,C,D]=cloop( A1, B1, C1, sign ) [num, den]=cloop ( num1, den1, sign ) sign=1正反馈,sign=-1负反馈(默认)[例2-16]对于如下两系统2 :G(s) = 2s2+ 5s +1 , Z :H(s) = 41 s 2 + 2 s + 3 2 s + 10求如图2-3所示方式连接时的闭环传递函数解:MATLAB语句如下>>num1=[2 5 1]; den1=[1 2 3];>> num2=[5 10]; den2=[1 10];>>[num,den]=feedback(num1,den1,num2,den2)>>printsys(num,den)2.4典型系统的生成1. 建立二阶系统模型对于二阶系统模型利用函数ord()来建立调用格式:[num,den]=ord2(① n, &)[A,B,C,D]= ord2(皿 &)例,&分别为无阻尼自然频率和阻尼系数[例2-19]已知&=0.4 ,①=2.4rad/s,求二阶系统的传递函数解:MATLAB语句如下>>[num,den]=ord2(2.4,0.4);>>printsys(num,den)2. 具有纯时延系统的pad仓近似两点:(a) 对具有时延T的系统产生n阶Pad仓逼近:函数调用格式:[num, den]=pade(T, n)(b) pade(T,再也是绘图命令:对具有时延T的系统绘制n阶Pad仓逼近 的阶跃响应和频域相位特性并与原时延系统比较。
[例2-20]计算一个具有0.1s时延系统的n阶Pad仓逼近,并比较其阶 跃响应和频域相位特性解:MATLAB语句如下>>[num,den]=pade(0.1, 3) %取 n=3>>printsys(num,den)>> pade(0.1, 3) %绘图3. 建立n阶随机稳定的连续系统模型[A,B,C,D]= rmodel(n) %建立一个单变量n阶稳定连续系统模型[A,B,C,D]= rmodel(n, m, r) %建立一个r输入m输出的随机n阶稳定模型[num,den]= rmodel(n) %建立一个单变量系统的随机n阶稳定模型4. 建立n阶随机稳定的离散系统模型[G, H, C, D]= drmodel(n) %建立一个单变量n阶稳定离散系统模型[G, H, C, D]= drmodel(n, m, r) %建立一个r输入m输出的随机n阶稳定模型[num, den]=。












