第五章快速数字仿真法前两章从数值积分和面向结构图的仿真两方面讨论了控制系统数字仿真的基本原理方法、方法和程序。这些方法用于对控制系统进行非实时的仿真研究有很大方便,尤其是在具备一些通用的仿真程序时,这些方法就显得更为方便。但在一般情况下,为了达到一定的计算精度,这些方法的计算量比较大,因此计算的速度受到一定的限制,往往在实际应用中,还不能满足实时仿真的要求。有必要寻找一些能加快仿真速度的方法。能解决这个问题的方法很多,但各有各的特点和局限性。第五章快速数字仿真法本章第一节到第三节介绍了三种常用的方法,以便根据情况选用。这些方法不仅在连续系统仿真时可以使用,也可以用于连续控制器在计算机上的离散实现。本章还在第四节介绍了计算机控制系统的仿真。5.1增广矩阵法5.2替换法5.3零极点匹配法5.4计算机控制系统仿真5.1增广矩阵法一、基本思想假定一个连续系统的状态方程为(5.1.1)这是一个齐次方程,它的解是(5.1.2)已知可以证明:如果取前五项,则计算精度与四阶龙格-库塔法相同。这就是说,如果被仿真的系统是一个齐次方程,在选定计算步距为n以后,若只取的前五项,则有Axtx)()0()(xetxAtnAtAtNtAtAAtIe)(!1!3!23322Ate5.1增广矩阵法(5.1.3)由于都可以在仿真前计算出,所以(5.1.3)式所示的递推计算公式中右端的系数项可以事先求出,而仿真计算就变成每次只做一个十分简单的递推推算。但是,实际的物理系统模型大多是一个非齐次方程,即(5.1.4)其中为系统的控制量,假定它是一个单输入系统。根据控制理论可知,(5.1.4)式的解为t≥0(5.1.5)])1[()2462()(443322TnxtAtAtAAtInTx432,,,AAAABuAxxdBuexetxttAAt)()0()(0)(5.1增广矩阵法显见,求解(5.1.5)式的非齐次方程时,它的解,除了一个自由项之外,还有一个强制项:。由于的任意性,(5.1.5)式一般不容易求解。但是,对于某些特殊的输入函数,如果能将控制量增广到状态变量中去,使(5.1.5)式这样的非齐次方程,变成一个齐次方程(5.1.1)式,就可以避免计算复杂的强制项,而利用类似(5.1.3)式的计算方法。二、典型输入函数时的增广矩阵假定被仿真的系统为(5.1.6)dBuettA)(0)(u)(tuBuAxtx)(0)0(xx)()(tCxty5.1增广矩阵法其中A为维矩阵,即表示有n个状态变量。(1)阶跃输入时设则定义第n+1个状态变量为故可得增广后的状态方程即输出方程为)(1)(0tUtu)(1)()(01tUtutxn0)(1txn01)0(Uxn5.1增广矩阵法(2)斜坡输入设则定义)()(00)()(11txtxBAtxtxnn001)0()(Uxxtxn)()(]0[)(1txtxCtyntUtu0)(tUtutxn01)()(012)()(Utxtxnn0)0(1nx02)0(Uxn5.1增广矩阵法因此,系统增广后的状态方程为初始条件为)()()(0001000)()()(2121txtxtxBAtxtxtxnnnnTnntxtxtxCty)()()(]00[)(2100210)0()0()0(Uxxxxnn5.1增广矩阵法(3)指数输入设定义则有故系统增广后的状态方程为teUtu0)(tneUtx01)()()(101txeUtxntn01)0(Uxn)()(10)()(11txtxBAtxtxnn001)0()(Uxxtxn)()(]0[)(1txtxCtyn5.2替换法一个连续物理系统最常见的数学表现形式就是s域的传递函数。替换法的基本思想就是,设法找到s域(连续域)的某种对应关系,然后将中的变量s转化成变量z,由此得到与系统传递函数相对应的离散系统脉冲传递函数(脉冲传递函数即采样系统输出脉冲序列的Z变换与输入脉冲序列Z变换之比),进而获得进行数字仿真用的递推算式,以便在计算机上求解计算。)(sG)(sG)(sG)(sG5.2替换法5.2.1简单替换法s域与z域的基本关系是,式中T为采样周期,即仿真计算时的计算步长;或者,这是一个超越函数,不可直接用来进行替换。实际上必须要寻找其他近似的表示关系。一种最简单的替换关系可以从一阶差分方程中得到。用传递函数表示系统,在时域内可以用一个微分方程来表示,例如,系统(5.2.1)sTezzTsln1)(sGssGsxsy1)()()(5.2替换法的时域表示为(5.2.2)假若导数计算用下述差分来近似:或间写成(5.2.3)则微分方程(5.2.2)式即等价为下述差分方程:)()(txdttdyTTkykTydttdykTt])1[()()(TkykydttdykTt)1()()(5.2替换法或(5.2.4)当微分方程中导数的计算采用(5.2.3)式差分表达式时,称为向后差分法。当然,导数的近似计算还可以采用向前差分法,此时,导数按下述差分来近似计算:方程(5.2.2)式可等价为下述差分方程:)()1()(kxTkyky)()1()(kTxkykyTkykydttdykTt)()1()()()()1(kxTkyky5.2替换法或(5.2.5)现对差分方程(5.2.4)进行Z变换,则是(5.2.6)比较(5.2.6)与(5.2.1)式,有(5.2.7)或(5.2.8))()()1(kTxkyky1)()()(zTzzGzxzy11zTzsTzzs15.2替换法关系式(5.2.7)或(5.2.8)就是一种最简单的替换方法。它表明,如果将传递函数中的用(5.2.8)式替换,就可以将s域中的传递函数变换为z域中脉冲传递函数,从而可以得到递推算式(5.2.4)式。这种替换相当于向后差分法。从(5.2.4)式可见,这种向后差分法也就是数值积分法中的超前欧拉法。若对(5.2.5)式做z变换,则可得要下述脉冲传递函数:(5.2.9)将(5.2.9)式与(5.2.1)式比较,有)(sG)(zG1)()()(zTzGzxzy)(sG5.2替换法(5.2.10)或(5.2.11)关系式(5.2.10)或(5.2.11)也是一种最简单的替换方式,这种替换式相当于向前差分法,即数值积分中的欧拉法。上述两种替换法比较简单,但局限性很大,实际工程中很少采用。下边对两种变换作简单的讨论。实际上替换式(5.2.8)及(5.2.11)均可以看做是s平面与z平面之间的相互映射。对(5.2.11)式来说,由于,设,所以11zTsTzs11Tszjs5.2替换法对于z平面上的单位圆(及稳定域),,故即等于(5.2.12)因此将z域中的单位圆映射到s域平面上,正好是以为圆心,以为半径的一个圆,如图5.1.1(a)所示。这就是说z平面上的单位圆,按(5.2.11)式变换,它将是s平面上以为半径的一个圆。2222)1(TTz12z1)1(222TT2222)1()1(TT)0,1(TT1T15.2替换法反过来说,s平面上只有部分面积通过(5.2.11)式才能映射到z平面的单位圆内。显然,若一个系统是稳定的,其极点分布如图5.1.1(a)所示,通过(5.2.11)变化后有两个极点能映射到在z平面的单位圆内;而极点则映射到z平面的单位圆外。这样,原来为稳定的系统,通过(5.2.11)式的替换,仿真模型变得不稳定了,因此这种仿真模型失真太大。由(5.2.12)式还可以看出,若要使稳定,就要求增大半径,即减小计算步长T,从而增加了计算工作量,故采用(5.2.11)式不适合快速数字仿真。)(sG21,ss3s)(zGT15.2替换法图5.2.1简单替换法的映射关系j1s2s3sz平面单位圆映射jz平面单位圆映射s平面虚轴的映射(a)(b)5.2替换法由(5.2.8)式的替换关系,可以推得,s平面的左半部将映射到z平面单位圆的局部范围内,如图5.1.1(b)所示。为说明这一点,(5.2.8)可以改写为所以(5.2.13)显然,若,,则;若,则(5.2.13)右端分母大于分子,即;TsTsTsTsz1121212111211122222)()1()()1(4121TTTTz0js21212z021212z5.2替换法若,则(5.2.13)右端分母小于分子,即。这表明,s平面右半部全部映射在该圆之内。由于这个小圆位于z平面的单位圆内,所以原连续系统是稳定的,利用(5.2.8)式的替换关系得到的数学模型也一定是稳定的,并且与计算步长T无关。但是,由于整个s平面的左半部不是映射到z平面的整个单位圆内,而只是映射到其中一个小圆内,显然与准确z变换的结果相差较大,从而使仿真模型失真较为严重。例5.2.1现给定一个二阶系统的传递函数,使用两种替换,求仿真数学模型。计算步长为T=1s。021212z5.2替换法解:(1)利用前差替换公式(5.2.11)式,得对该式做Z反比变换或12.01)()()(2sssxsysG)2.01()2.02(1)1(2.0)1(1)()()()(222221TTzTzTTzTzsGzxzyzGTzs)()()2.01()1()2.02()2(22kxTkyTTkyTky)()(8.1)1(8.1kxkyky)1()1(8.1)(8.1)1(kxkykyky5.2替换法(2)利用后差替换公式(5.2.8)式,得Z反变换后得1)1(2.0)1(1)()()(222TzzzTzzxzyzG)2.01(1)2.01()22.0()2.01(222222TTzTTzzzTTT)()2.01(1)1()2.01()2.02()2(22kyTTkyTTTky)2()2.01(22kxTTT)2(455.0)(455.0)1(kxkyky5.2替换法从上述计算结果可见,同一结果采用不同的计算公式,所得到的数学模型差别是很大的,不仅差分方程系数不同,而且形式也常常是不同的。5.2.2双线性变换上述简单替换法使用起来问题较多,比较适用的替换法是双线性变换法(又称Tustin法)。这种替换关系可以从s到z变量准确的映射关系推得。根据定义,z变量与s变量的关系是或者(5.2.14)sTezzTsln15.2替换法(5.2.14)式可以展成无穷级数如果取该级数的第一项作为它的近似,则(5.2.15)或(5.2.16)数学上称这种变换为双线性变换。利用(5.2.15)就可以把传递函转换为脉冲传递函数。33)1()1(31112lnzzzzz112zzTs2/12/1TsTsz)sG)zG5.2替换法应当指出,这种变换关系相当于数值积分中的梯形法。事实上,积分环节(5.2.1)式对应的微分方程形式,若采用梯形积分法可得(5.2.17)对(5.2.17)式的差分方程进行Z变换得可见,积分环节从梯形积分法所推得的递推公式与从