,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第三章 连续系统的数字仿真,本章内容,(1)熟悉在数字计算机仿真技术中常用的几种数值积分法,,特别是四阶龙格-库塔法;,(2)典型环节及其系数矩阵的确定;,(3)各连接矩阵的确定;,(4)利用MATLAB在四阶龙格-库塔法的基础上,对以状态,空间表达式和方框图描述的连续系统进行仿真;,第三章 连续系统的数字仿真,用数字计算机来仿真或模拟一个连续控制系统的目的就是求解系统的数学模型。由控制理论知,一个n阶连续系统可以被描述成由n个积分器组成的模拟结构图。因此利用数字计算机来进行连续系统的仿真,从本质上讲就是要在数字计算机上构造出n个数字积分器,也就是让数字计算机进行n次数值积分运算。可见,连续系统数字仿真中的最基本的算法是数值积分算法。,用数字计算机来仿真或模拟一个连续控制系统的目的就是求,3.1 数值积分法,连续系统通常把数学模型化为状态空间表达式,为了对n阶连续系统在数字计算机上仿真及求解,就要采用数值积分法来求解系统数学模型中的n个一阶微分方程。,设n阶连续系统所包含的n个一阶微分方程中的第i个一阶微分方程为,(3-1),所谓数值积分法,就是要逐个求出区间,a,b,内若干个离散点,a,t,0,t,1,t,0,时,,x,(,t,)是未知的,因此式(3-2)右端的积分是求不出的。为了解决这个问题,把积分间隔取得足够小,使得在,t,k,与,t,k,+1,之间的,f,(,t,x,(,t,)可以近似看作常数,f,(,t,k,x,(,t,k,),这样便得到用矩形公式积分的近似公式,或简化为,这就是欧拉公式。,当tt0时,x(t)是未知的,因此式(3-2)右端的,以,x,(,t,0,)=,x,0,作为初始值,应用欧拉公式,就可以一步步求出每一时刻,t,k,的,x,k,值,,即,k,=0,x,1,x,0,+,f,(,t,0,x,0,),h,k,=1,x,2,x,1,+,f(t,1,x,1,),h,k,=,n,-1,x,n,x,n-1,+,f,(,t,n-1,x,n-1,),h,这样式(3-1)的解,x,(,t,)就求出来了。欧拉法的计算虽然比较简单,但精度较低。图3-1为欧拉法的几何解释。,以x(t0)=x0作为初始值,应用欧拉公式,就可以一,3.1.2 梯形法,由上可知欧拉公式中的积分是用矩形面积,f,(,t,k,x,k,),h,来近似的,。,图3-2为梯形法的几何意义。,由图3-2知,用矩形面积,t,k,abt,k,+1,代替积分,其误差就是图中阴影部分。为了提高精度,现用梯形面积,t,k,act,k,+1,来代替积分,即,于是可得梯形法的计算公式为,3.1.2 梯形法 由上可知欧拉公式中的积分是用矩形,由于上式右边包含未知量,x,k,+1,所以每一步都必须通过迭代求解,每一步迭代的初值,x,k,+1,(0),通常采用欧拉公式来计算,因此梯形法每一步迭代公式为,(3-3),式中 迭代次数,R,=0,1,2,由于上式右边包含未知量xk+1,所以每一步都必须通过迭,3.1.3 预估校正法,虽然梯形法比欧拉法精确,但是由于每一步都要进行多次叠代,计算量大,为了简化计算,有时只对式(3-3)进行一次叠代就可以了,因此可得,通常称这类方法为预估校正方法。它首先根据欧拉公式计算出,x,k+,1,的预估值,x,k+,1,(0),,然后再对它进行校正,以得到更准确的近似值,x,k+,1,(1),。,3.1.3 预估校正法,3.1.4 龙格库塔法,根据泰勒级数将式(3-1)在,t,k+,1,=t,k,+h,时刻的解,x,k+,1,=x,(,t,k,+h,),在,t,k,附近展开,有,(3-5),可以看出,提高截断误差的阶次,便可提高其精度,但是由于计算各阶导数相当麻烦,所以直接采用泰勒级数公式是不适用的,为了解决提高精度问题,龙格和库塔两人先后提出了间接使用泰勒级数公式的方法,即用函数值,f,(,t,x,),的线性组合来代替,f,(,t,x,),的导数,然后按泰勒公式确定其中的系数,这样既能避免计算,f,(,t,x,),的导数,又可以提高数值计算精度,其方法如下。,3.1.4 龙格库塔法,因,故式(3-5)可写成,(3-6),为了避免计算式(3-6)中的各阶导数项,可令,x,k+,1,由以下多项式表示。,(3-7),因,式中,a,m,为待定因子,,v,为使用,f,函数值的个数,,k,m,满足下列方程,(3-8),即:,将式(3-7)展开成,h,的幂级数并与微分方程式(3-1)精确解式(3-6)逐项比较,便可求得式(3-7)和式(3-8)中的系数,a,m,b,mj,和,c,m,等。,式中 am为待定因子,v为使用f函数值的个数,km满足下列,现以,v,=2为例,来说明这些参数的确定方法。设,v,=2,则有,(3-9),将,k,1,和,k,2,在同一点(,t,k,x,k,)上用二元函数展开为,现以v=2为例,来说明这些参数的确定方法。设v=2,则有,将,k,1,和,k,2,代入式(3-9)整理后可得,(3-10),将上式与式(3-6)逐项进行比较,可得以下关系式,若取,则,将k1和k2代入式(3-9)整理后可得,于是由式3-9可得,(3-11),由于式(3-11)只取到泰勒级数展开式的,h,2,项,故称这种方法为两阶龙格库塔法,其截断误差为0(,h,3,)。,于是由式3-9可得,同理当,v,=4时,仿照上述方法可得如下四阶龙格-库塔公式,(3-12),同理当v=4时,仿照上述方法可得如下四阶龙格-库塔公,通过上述龙格-库塔法的介绍,可以把以上介绍的几种数值积分法统一起来,它们都是基于在初值附近展开成泰勒级数的原理,所不同的是取泰勒级数多少项。欧拉公式仅取到,h,项,梯形法与二阶龙格库塔法相同,均取到,h,2,项,,四阶龙格库塔法取到,h,4,项。,从理论上讲,取得的项数愈多,计算精度愈高,但计算量愈大,愈复杂,计算误差也将增加,因此要适当的选择。目前在数字仿真中,最常用的是四阶龙格库塔法,其截断误差为(,h,5,),已能满足仿真精度的要求。,通过上述龙格-库塔法的介绍,可以把以上介绍的几种数值,3.1.5 关于仿真数值积分法的几点讨论,1单步法和多步法,解初值问题的数值解法的共同特点是步进式,即从最初一点或几点出发,每一步根据,x,k,一点或前面几点,x,k-,1,x,k-,2,来计算新的,x,k+,1,的值,这样逐步推进。,当从,t,k,推进到,t,k+,1,只需用,t,k,时刻的数据时,称为单步法,例如欧拉法和龙格库塔法。,3.1.5 关于仿真数值积分法的几点讨论,相反,需要用到,t,k,以及过去时刻,t,k-,1,t,k-,2,的数据时称为多步法。线性多步法的一般形式是,(3-13),多步法不能从,t,=0自启动,通常需要选用相同阶次精度的单步法来启动,获得所需前,k,步数据后,方可转入相应多步法,因多步法利用信息量大,因而比单步法更精确。,相反,需要用到tk以及过去时刻tk-1 ,tk-2,2显式和隐式,在计算,x,k+,1,时公式右端所用到的数据均已知时,称为显式算法。例如欧拉法、龙格库塔法和式(3-13)中,-1,=0的情况。相反,在算式右端中隐含有未知量,x,k+,1,时,称为隐式算法。例如梯形法、预估校正法和式(3-13)中,-1,0的情况。,显式算法利用前几步计算结果即可进行递推求解下步结果,因而易于计算。而隐式计算需要迭代法,先用另一同阶次显式公式估计出一个初值,x,k+,1,(0),并求得,f,k+,1,然后再用隐式求得校正值,x,k+,1,(1),若未达到所需精度要求,则再次迭代求解,直到两次迭代值,x,k+,1,(,i,),和,x,k+,1,(,i+,1),之间的误差在要求的范围内为止,故隐式算法精度高,对误差有较强的抑制作用。尽管隐式算法计算过程复杂,计算速度慢,但有时基于对精度、数值稳定性等考虑,仍然经常被使用,如求解病态方程等问题。,3.数值稳定性与仿真误差,数值积分法求解微分方程,实质上是通过差分方程作为递推公式进行的,因此,在将微分方程差分化的变化过程中,应保持原系统稳定的特征,即要求用于计算的差分方程是稳定的。但是,在计算机逐次计算时,初始数据的误差及计算过程的舍入误差等都会使误差不断积累。如果这种仿真误差积累能够抑制,不会随计算时间增加而无限增大,则可以认为相应的计算方法是数值稳定的。反之,则是数值不稳定的。,2显式和隐式,仿真误差与数值计算方法、计算机的精度以及计算步长的选择有关。当计算方程和计算机确定以后,则仅与计算步长有关,所以在仿真中计算步长是一个重要的参数。仿真误差一般有如下两种:,(1)截断误差由于仿真模型仅是原系统模型的一种逼近,以及各种数值积分法的计算都是近似的算法。通常计算步长愈小,截断误差也愈小。,(2)舍入误差由于计算机的精度有限(有限位数)所产生。通常计算步长愈小,计算次数愈多,舍入误差愈大。,仿真误差与数值计算方法、计算机的精度以及计算步长的,对截断误差而言,计算步长愈小愈好,但太小不但会增加计算时间,而且由于舍入误差的增加,不一定能达到提高精度的目的,甚至可能出现数值不稳情况。显然计算步长太大,不但精度不能满足要求,而且计算步长超过该算法的判稳条件时,也会出现不稳定情况。由此可见,计算步长只能在某一范围内选择,图中的,h,0,为最佳计算步长。,一般控制系统的输出动态响应在开始段变化较快,到最后变化将会很缓慢。这时,计算可以采用变步长的方法,即在开始阶段步长取得小一些,在最后阶段取得大一些,这样即可以保证计算的精度,也可以加快计算的速度。,对截断误差而言,计算步长愈小愈好,但太小不但会增加计算,对于一般工程计算,计算精度要求并不太高,故常用定步长的方法。作为经验数据,当采用四阶龙格库塔法作数值积分计算时,取计算步长,h=t,r,/10或,t,s,/40,式中,t,r,系统在阶跃函数作用下的上升时间;,t,s,系统在阶跃函数作用下的过渡过程时间。若系统有多个回路,则应按反应最快的回路考虑。,对于一般工程计算,计算精度要求并不太高,故常用定步长的,3.3 面向系统结构图的仿真,自动控制系统常常是由许多环节组成的。应用上节介绍的数字仿真方法对系统分析和研究 时,首先需要求出总的传递函数,再转化为状态空间表达式的形式,然后对其求解。当改变系统某一环节的参数时,尤其是要改变小闭环中某一环节的参数时,以上整个过程又需重新计算,这对研究对象参数变化对整个控制系统的影响是十分不便的。为了克服这些缺点,同时大多数从事自动化工作的科技人员更习惯于用结构图的形式来分析和研究控制系统,为此产生了面向结构图的仿真方法。该方法只需将各环节的参数及各环节间的连接方式输入计算机,仿真程序就能自动求出闭环系统的状态空间表达式。,本节主要介绍由典型环节参数和连接关系构成闭环系统的状态方程的方法,而动态响应的计算,仍采用四阶龙格-库塔法。,3.3 面向系统结构图的仿真自动控制系统常常是由许多环节组成,这种方法与上节介绍的方法相比,有以下几个主要优点:,)便于研究各环节参数对系统的影响;,)可以得到每个环节的动态响应;,)可对多入多出系统进行仿真。,下面具体介绍面向结构图的仿真方法。,这种方法与上节介绍的方法相比,有以下几个主要优点:,3.3.1 典型环节的确定,一个控制系统可能由各种各样的环节所组成,但比较常见环节有:,1),比例环节:G(s)=k,2),积分环节,:,3),比例积分环节:,4),惯性环节:,5),超前滞后环节:,6),二阶振荡环节:,3.3.1 典型环节的确定,为了编制比较简单而且通用的仿真程序,必须恰当选择仿真环节。在这里选用图3-7所示的典型环节作为仿真环节,即,式中,u,为典型环节的输入,,x,为典型环节的输出。,利用这个典型环节,只要改变,a,b,c,和,d,参数的值,便可分别表示以上所述的各一阶环节,至于二阶振荡环节,则可用,两个一阶环节等效连,接得到,如图3-8所示。,图3-7 典型环节,图3