当前位置:首页 > 电子/通信 > 综合/其它 > 计算机仿真技术基础8
LabofPEEDBringIdeasTogether电力电子与电力传动实验室LabofPEEDBringIdeasTogether电力电子与电力传动实验室3.2基于Taylor级数匹配原理的仿真算法3.2.1taylor级数匹配原理))(,,()(tuxtftx00)(xtx(1)计算机仿真就是求式(1)的数值解,由于输入u(t)是关于t的函数,在求解微分方程(1)时看成是已知量,将函数f(t,x,u(t))直接记为f(t,x),得到微分方程00)(,),()(xtxxtftx(2)记其解为x(t),如果f(t,x),对其变量t和x具有各阶的连续偏导数,则通过方程(2)可以推导x(t)的各阶导数的公式.例如有),()()(txxxtftx(3))()()2(),(),(),()(),(),()(txxtxxxtfxxtftxtftxxxtftxtftx(4)LabofPEEDBringIdeasTogether电力电子与电力传动实验室LabofPEEDBringIdeasTogether电力电子与电力传动实验室pmmpmmmmmpmpmmmmmhxtfphxtfhxtftxhtxphtxhtxtxhtxtx),(!1),(!21),()()(!1)(!21)()()()()1(2)(2)2(1设已经知道x(t)在tm处的值xm=x(tm),由Taylor级数展开式(5))(),(),()()2(mpmmtxtxtx如果知道导数,的值,则当h比较小时,可以取级数式(5)中的前p+1项之和作为x(tm+1)的近似值,将其记为xm+1。令)1()1(),(!1),(!21),()),(,(pmmpmmmmhxtfphxtfxtfhtxt(6)则hhtxtxhhtxttxxmmm)),(,()),(,()(1(7)LabofPEEDBringIdeasTogether电力电子与电力传动实验室LabofPEEDBringIdeasTogether电力电子与电力传动实验室)2()2()1()1(11)()!2(1)()!1(1)(pmppmpmmhtxphtxpxtx式(7)称为P阶Taylor展开法递推公式。xm+1与x(tm+1)之间的误差为(8)),()()x(txmxtftxhxtfxhtxxxmmmmmm),()(1由式(3)可以计算出取式(5)的前两项作为x(tm+1)的近似值,得到公式(9)2)2(11)(!21)(htxxtxmmm这就是Euler方法。由式(8),xm+1与x(tm+1)之间的误差为(10)LabofPEEDBringIdeasTogether电力电子与电力传动实验室LabofPEEDBringIdeasTogether电力电子与电力传动实验室0h它是由精确值xm=x(tm)应用Euler法计算一步得到所引进的误差,称它为局部截断误差。由式(10),当Euler法的局部截断误差与h2是同阶无穷小量,记为O(h2)。时,显然,Euler法的精度是比较低的。为了提高它的精度,希望xm+1与x(tm+1)的Taylor展开式符合的项数更多,使得局部截断误差x(tm+1)-xm+1是h的更高阶无穷小量。从理论上讲,只要式(1)的x(t)解充分光滑,利用Taylor级数展开式可得到任意有限项的公式。但是,计算x(t)的高阶导数很困难。虽然可以按类似于式(3)和式(4)推导x(t)的各阶导数的公式,可是求复合函数的各阶偏导数往往是很复杂的。即使能得到解析公式,计算量也是很可观的。这表示直接应用展开式(5)构造精度较高的方法是不现实的。LabofPEEDBringIdeasTogether电力电子与电力传动实验室LabofPEEDBringIdeasTogether电力电子与电力传动实验室基本思想:为了克服上述的困难,希望计算点(tm,x(tm))邻域中的若干个点(t,x(t))上的值。利用这些值构造x(tm+1)的近似值xm+1的计算公式,并且要求该公式在(tm,x(tm))处的Taylor展开式与式(5)的前若干项一致。我们称这种构造xm+1的思想为Taylor级数匹配原理。应用这种原理构造的xm+1的计算过程将不需要计算x(t)的高阶导数,或者只需计算一些比较低阶的导数,但与精确值x(tm+1)之间的误差是h的高阶无穷小量。下面应用Taylor级数匹配原理构造两类数字仿真方法。3.2.2Runge-Kutta方法(龙格-库塔算法)由式(6)可见,Taylor展开法用f(t,x(t))在同一点(tm,xm)的高阶导数表示,因此不便于数值计算。)),(,(htxtRunge-Kutta方法是用f(t,x(t))在一些点上的值表示使局部截断误差的阶数和Taylor展开法相等。)),(,(htxtLabofPEEDBringIdeasTogether电力电子与电力传动实验室LabofPEEDBringIdeasTogether电力电子与电力传动实验室httdxftxhtx))(,()()(在区间[t,t+h]上,将式(1)写成下列积分形式(11)httttttm321))(,(iiitxtfkmi,,2,1。若已知则用他们的一次组合去近似f(t,x(t))在区间[t,t+h]上取m个点1))(),(,(iiikctutxtf(12)问题是如何计算ki(因x(ti)未知)。一个直观的想法是:设已知))(.(,),(11111txtftkt,1121111212)()()(.()()()(ktttxtxtftttxtx由Euler法,))()(,(112122ktttxtfkLabofPEEDBringIdeasTogether电力电子与电力传动实验室LabofPEEDBringIdeasTogether电力电子与电力传动实验室),(22kt))()()(,(223112133kttktttxtfk)(tx)(mtxmx)(1mtxEmx1amxtamxEmx1~ahtmhtmmt图1二级Runge-Kutta方法的构造同样利用Euler法又可从算出如此继续下去。节点ti和系数ci可如此选择,使近似式(12)有尽可能高的逼近解。Emx1下面以二阶Runge-Kutta方法的构造来说明Taylor级数匹配原理的应用。首先以步长h的Euler法从(tm,x(tm))处计算一步,记得到的点为,即有mmEmxhtxx)(1(13)LabofPEEDBringIdeasTogether电力电子与电力传动实验室LabofPEEDBringIdeasTogether电力电子与电力传动实验室mx是曲线x(t)在tm处的切线方向,如上图所示。为了改进Emx1Eammxaht,amxhEmx1~的精度,再由Euler法一步长ah得到(tm,x(tm))的邻域中的另一个点。从x(tm)开始沿方向移动时间长度,得到ammEmxhtxx)(~1(14))(,htxhtmmEmmxht1,Emmxht1~,EmEmmxbxbx12111~由图1可见,点在点和点的连线上。可以选取参数b1和b2,构造量(3.46)(15)1mx)(1mtxEmx1使得是的精度比更好的近似值。LabofPEEDBringIdeasTogether电力电子与电力传动实验室LabofPEEDBringIdeasTogether电力电子与电力传动实验室mxk1amxk21mx)()()())(,())(,(2211211121kbkbhtxbbxahktxahtfktxtfkmmmmmm记。由上述的构造可以将成下列步骤:的计算归结(16)为了选取式(16)中待求的参数a,b1,b2,将k2在(tm,xm)处展开成Taylor级数,有(17)Rtahxtxkmm)()()2(2LabofPEEDBringIdeasTogether电力电子与电力传动实验室LabofPEEDBringIdeasTogether电力电子与电力传动实验室(18)xm+1可以展开成hRbtxahbtxhbbtxbbxmmmm2)2(2221211)()()()()((19)将式(19)与x(tm+h)的Taylor级数展开式(5)进行比较,可以看出,若参数a,b1,b2,满足下列关系式121bb212ab(20)(21))()()(2211211kbkbhtxbbxmm由式(16),LabofPEEDBringIdeasTogether电力电子与电力传动实验室LabofPEEDBringIdeasTogether电力电子与电力传动实验室1)(mmxhtx则xm+1的展开式与x(tm+h)的展开式的前三顶一致,局部截断误差有表示式hRbtxhxhtxmmm2)3(31)(61)((22))()(31hOxhtxmm它是h的三阶无穷小量,即有度比Euler法高一阶。式(20)和式(21)含三个未知参数,但只有两个方程。可以得到含一个自由参数的解族。取a为自由参数,将b1,b2用参数a表示,得到,显然精abab2121121(23)参数由式(23)确定的公式(16)是计算xm+1的一个方法类。该方法类中的方法都称为二阶显式Runge-Kutta方法(RK2)。LabofPEEDBringIdeasTogether电力电子与电力传动实验室LabofPEEDBringIdeasTogether电力电子与电力传动实验室1a2/11b)(2)())(,())(,(211121kkhtxxhktxhtfktxtfkmmmmmm下面给出该方法类中方法的两个最常用的方法。,求得,得到下面的公式取2/12b(24)称它为改进的Euler公式。2/1a01b12b取,求得,得到下面的公式21121)()2)(,2())(,(hktxxkhtxhtfktxtfkmmmmmm(25)称这个方法为修正的Euler公式或中点公式。LabofPEEDBringIdeasTogether电力电子与电力传动实验室LabofPEEDBringIdeasTogether电力电子与电力传动实验室从初值(t0,x0)开始,由二级Runge-Kutta方法可计算(t1,x1),类似地再从(t1,x1)开始计算(t2,x2),这样依次递推,可得到任意时刻tm处的解x(tm)的近似值xm的值。这种递推计算的每一步只依赖于上一步的计算结果,即只用上一步的结果作为当前步计算的起始值,称这种方法为单步法。一般的显式Runge-Kutta方法具有形式piiimmijjijmimimmkbhxxpikahxhctfktxtfk11111,,2,1),())(,(称这方法为p阶显式Runge-Kutta方法(RKS方法)。(26)LabofPEEDBringIdeasTogether电力电子与电力传动实验室LabofPEEDBringIdeasTogether电力电子与电力传动实验室公式中的系数ci,aij和bi通过下述方式选取。在(tm,xm)处考虑微分方程初值问题mmxtxxtftx)(),,()((27)并记其解为xm(t)。将ki在(tm,xm)处展开成了的Taylor级数,然后代入的公式中,得到xm+1的展开式。类似地,将xm(tm+h)展开成h的Taylor级数,并与xm+1的展开式进行比较,由要求符合的
本文标题:计算机仿真技术基础8
链接地址:https://www.777doc.com/doc-3176806 .html