第三章,数值积分法在系统仿真中的应用,第三章,数值积分法在系统仿真中的应用,3.1,连续系统仿真中常用的数值积分法,.,3.2,刚性系统的特点及算法,.,3.3,实时仿真法,.,3.4,分布参数系统的数字仿真,.,3.5,面向微分方程的仿真程序设计,.,本章小结,.,第三章 数值积分法在系统仿真中的应用,3.1,连续系统仿真中常用的数值积分法,1.,数值积分法,如果已知某一系统的一阶向量微分方程为,对式子,(3.1),数值积分可写成统一的公式,(,3-1,),(,3-2,),几种常用的积分法,欧拉法,欧拉法的几何意义,改进的欧拉法,亚当斯法,(,隐式,),龙格,-,库塔法,亚当斯法,(,显式,),误差,t,欧拉法,虽然计算精度较低,实际中很少采用,,但器推倒简单,能说明旧够数值解法一般计算公,式的基本思想。,(,3-3,),图,3.1,矩形近似及其误差,0,欧拉法,t,图,3.2,欧拉折线,欧拉法的几何意义 十分清楚。,称为欧拉折线法,。,欧拉法的几何意义,图,3.3,梯形近似及其误差,在推导时用图中的阴影面积来近似,式,(3.3),时,由于梯形公式中隐含有待求,量,通常可用欧拉法启动初值,算出近,似值,然后带如微分方程,最后利用梯,形公式求出修正。为提高精度,简化计,算,只迭代一次。这样可得,改进的欧拉,公式:,t,0,(,3-8,),第一式称为预估公式,,第二式称为校正公式。,改进的欧拉法,龙格,-,库塔,(,RK,)法的一般形式为,(,3-10,),(,3-9,),式中,泰勒级数,龙格,-,库塔法,(,3-11,),而,4,阶龙格,-,库塔,法式使用较多的一种方法,其公式如下,在解决积分问题时,采用亚当斯,-,贝喜霍斯显示多步法,简称,亚当斯法,。,根据,牛顿后插公式,(,3-25,),(,3-26,),亚当斯法,(,显式,),亚当斯多步法,的计算公式是,(,3-27,),(,3-28,),其中,(,k=1,时可得欧拉公式),当,k=2,时,得到,亚当斯多步法,的计算公式,,(3-28),式各系数为,(,3-29,),故可得,三阶亚当斯公式,整理上式得,(,3-30,),牛顿前插,公式为,(,3-32,),(,3-31,),亚当斯法,(,隐式,),(,3-35,),(,3-34,),常用的,四阶亚当斯预测,-,校正法,的计算公式为,仿照显式多法的推倒过程,,得亚当斯,-,摩尔顿隐式多步法,的计算公式,(,3-33,),3.2,刚性系统的特点及算法,一个,刚性系统,可以这样描述,对于,n,阶微分方程组,作为系统刚性程序的度量,。,(,3-36,),当 时,系统为刚性系统,或称为,stiff,系统。对与这样的系统作做,数字仿真,其最大的困惑是:,积分步长由最大的特征值来确定,最小的,特征值决定数值求解总的时间,。,刚性系统在时间中的普遍性和重要性已得到广泛的重视,这种方程的数,值解已成为常微分方程的数值研究的重点。,目前解刚性方程的数值方法基本分为:,显式公式,隐式公式,预测校正,显式公式常用,雷纳尔法,。其中着眼点是,在保证稳定的前提下,尽,可能地扩大稳定区域。这一方法的优点是,它是显式的,所以便于程序,设计。对一般好的方程设计。对一般条件好的方程,它就还原为四阶龙,格,-,库塔方法,而对刚性方程它又有增加稳定性的好处。,众所周知,,隐式公式,都是稳定的,故都大于解描述刚性系统的方程,组,如隐式的龙格,-,库塔法。但这种方法每计算一步都要进行迭代,故计,算量大。在工程上使用又一定捆年。因此在解刚性方程时,常,Rosenbrock,提出的半隐式龙格,-,库塔法。,预测,-,校正,型中常用的解刚性方程的方法式,Gear,算法。,Gear,首先应,引进刚性稳定性的概念,它可以满足稳定型,而减低对,h,的要求。,Gear,方法是一格通用的方法,它不但使用于解刚性方程组,而且也适用于解,非刚性方程组。,3.3,实时仿真法,假设仿真的连续动力学由非线形常微分方程描述为:,(,3-37,),(,3-38,),对,(3-37),式采用,二阶龙格,-,库塔,公式求解,其递推方程可写为,F,为函数,外部输入为,u(t),。,图,3.6 RK-2,的计算流程,(,1,)选择,Adams,多步法。,(,2,)合理地选择,龙格,-,库塔法,计算公式中的系数,使之适用于,实时仿真。,为了适用于实时仿真计算,一般经常采用以下方法:,(,3-39,),1,图,3.6,实时,RK-2,的计算流程,其流程图如图,3-7,:,(,3-40,),下面为一个高阶的,龙格,-,库塔法,计算公式,(,3,)利用已经取得的值进行外推。,(,3-41,),采用外推算法不仅会带来附加的误差,还要增加计算量,所以,比较下来还是选择实时算法为佳。,本章小结,(2),在系统仿真中,常用的微分方程的数值积分发有欧拉法、龙格,-,库塔法和线性等分法等。数值积分法的分类方式很多,常见的有:单步法和多步法,显式和隐式的分法。使用这些解法时,要注意其特点。,(1),系统的动态特性通常是用高阶微分方程或一阶微分方程组来,描述的。一般讲只有极少微分方程能用初等方法求得其解析解,多,数只能用近似数值求解。利用计算机求解微分方程主要使用数值积,分法,它是系统仿真的最基本解法。本章重点讨论了数值积分发在,系统仿真中的应用问题。,(3),实时仿真解法是半实物仿真所必须满足的条件,但并非所有的解法都适用于实时解法。应用时,必须仔细选择能满足实时要求的解法和公式。,(4),有相应一类动力学系统无法用常微分法来描述,而要用偏微分方程法来描述。例如,热传导问题、振动问题等,这类系统被称为分布参数系统。这类系统的数值求解更难,主要的解法有差分解法和线上求解法。,本章小结,