连续系统仿真的基础算法.pptx
《连续系统仿真的基础算法.pptx》由会员分享,可在线阅读,更多相关《连续系统仿真的基础算法.pptx(177页珍藏版)》请在一课资料网上搜索。
1、2.1 2.1 数值积分算法数值积分算法 2.2 2.2 数值积分算法的基本分析数值积分算法的基本分析 2.3 2.3 连续系统仿真的离散相似算法连续系统仿真的离散相似算法2.4 2.4 常用快速数字仿真算法常用快速数字仿真算法2.5 2.5 实时数字仿真算法实时数字仿真算法 小结小结3.1.1 数值积分算法的基本原理3.1.2 欧拉法3.1.3 龙格-库塔法3.1.4 微分方程数值积分的矩阵分析 上一页下一页返回连续系统仿真的数值积分算法就是利用数值积分法将常微分方程(组)描述的连续系统变换成离散形式的仿真模型差分方程(组)。为了能在计算机上进行求解,首先要把被仿真系统的数学模型表示为一阶微
2、分方程组或状态空间模型。上一页下一页返回 假设一阶向量微分方程及初值问题为00)(),(yyyfytt可以写成一阶微分方程组和初值问题形式00200210012121222111)()()(),(),(),(nnnnnnnytyytyytyyyytfyyyytfyyyytfy上一页下一页返回 (2.1)(2.2)110,kkttttt110d),()(d),()()(01kkkttkttktttttttyfyyfyy在上的解析解为希望用公式 kkkqyy11kykykq)(1kty)(kty1d),(kktttt yf来代替解析解,其中 , , 分别是 , , 的近似解。 上一页下一页返回 (
3、2.3)(2.4) 所谓数值解法就是寻求初值问题的解在一系列离散时间点 121,kktttt,21yy1,kkyy上的近似解。相邻两个离散时间点的间距 kktth1称为步长或步距 。数值积分法的主要问题归结为如何对向量函数 ),(yf t进行数值积分,求出 ),(yf t在区间 ),(1kktt上定积分的近似解 kq ,并且数值方法的共同特点是步进式的(即所谓递推式的)。 上一页下一页返回 常用的基本算法可以分为单步法、多步法和预估-校正法三大类,而每一类算法又可以分为显式算法和隐式算法两种类型。 先从标量形式开始讨论。考虑一阶微分方程及初值问题 00)(),(ytyytfy 解析解为 11d
4、),()(d),()()(001kkkttkttktytftytytftyty希望用公式 kkkqyy1来代替解析解,其中 分别是 , , 的近似值。kkkqyy,1)(1kty)(kty1d),(kktttytf 上一页下一页返回 (2.5) (2.6) (2.7)00)(),(ytyytfy ),(1kktt 欧拉(Euler)法是一种最简单的数值积分算法,对于 在区间 上求积分,有 1d),()()(1kkttkktytftyty若区间 ),(1kktt足够小,则 ),(1kktt上的 ),( ytf可以近似地看成是常数),(kkytf上一页下一页返回 (2.8)11),()(kkkkk
5、yythfyty即有),(kkkythfq 欧拉法为 kkkhfyy1式中),(kkkytff 上一页下一页返回 (2.9) (2.10) 欧拉法的图形表示: 为图2.1中的非曲面面积actk+1tk,欧拉法用矩形面积abtk+1tk代替。1d),(kktttytf显然,欧拉法仅适用于步长h很小的场合。 上一页下一页返回图2.1龙格-库塔(Runge-Kutta)法是求解常微分方程初值问题(2.5)式的各种数值积分算法中应用得最广泛的一种,包括许多不同的公式。思路:用若干个时间点上 f 的函数值的线性组合来代替 f 的各阶导数项,然后按泰勒公式展开确定其中的系数。 上一页下一页返回 RK法包含
6、有显式、隐式和半隐式等算法。仅介绍显式RK法。 一般形式: rickahyhctfkkWhyyijjijkikiriiikk, 2 , 10),(11111 式中, Wi为待定的权因子;r为使用的k值的个数;ki为不同时间点上导数 f 的值;ci,aij为待定系数。上一页下一页返回 (2.13)当r =1时,只有一个k1,就得到了欧拉法 kkkhfyy1当r =2时,),(),()(12122122111khayhctfkytfkkWkWhyykkkkkk将 kfk 1代入 2k中,并将 2k在 ),(kkyt 附近用泰勒级数展开,可得)()(),(),(),(221222122122hOff
7、 haf hcfhOyfytfatfchytffhayhctfkkykkkttyykkkkkkkkk上一页下一页返回 (2.15)(2.14)于是,有22111khWkhWyykk)()(3212222221hOffaWhfcWhfWWhykykkkk 将其与泰勒级数式逐项进行比较,令h,h2项的对应系数相等,得到以下关系 212112122221aWcWWW取c2=1,有 2121WW121a上一页下一页返回 (2.16)(2.17)从而,有RK2法 ),(),()(2121211hkyhtfkytfkkkhyykkkkkk当r=3时,可得RK3 法)32,32()3,3(),()3(423
8、121311hkyhtfkkhyhtfkytfkkkhyykkkkkkkk上一页下一页返回(2.18) (2.19) 当r=4时,可得到如下著名的四阶RK法(亦称为经典RK法,简记为RK4法)。 ),()2,2()2,2(),()22(6342312143211hkyhtfkkhyhtfkkhyhtfkytfkkkkkhyykkkkkkkkkk 该算法是数字仿真中最常用的一种算法。计算量较大,但计算精度较高。在实际仿真中得到了广泛的应用。 上一页下一页返回 (2.20)几种数值积分法都可以看成是 在 附近用泰勒级数展开而产生的,只不过是泰勒级数所取项数的多少不同而已。欧拉法只取前两项, RK2
9、法取了前三项,RK4法取了前五项。从理论上讲,可以构造任意高阶的计算方法。但是,精度的阶数与计算函数f值的次数之间的关系并非等量增加的。 )(tyktt 上一页下一页返回每步计算f 的次数234567r8算法精度阶数234456r-2由此可见,RK4法有其优越性。 表2.1 f 的计算次数与算法精度阶数的关系 上一页下一页返回 对于一阶向量微分方程及初值问题 00)(),(yyyfyttRK4法的向量形式为),()2,2()2,2(),()22(6342312143211KyfKKyfKKyfKyfKKKKKyyhhthhthhtthkkkkkkkkkk上一页下一页返回 (2.21) (2.2
10、2)具体写出来就是上一页下一页返回),()2,2,2,2()2,2,2,2(),()22(63,23, 213, 142,22, 212, 131,21, 211, 12, 2, 114321,1,nknkkkiinknkkkiinknkkkiiknkkkiiiiiikikihkyhkyhkyhtfkkhykhykhyhtfkkhykhykhyhtfkyyytfkkkkkhyy(2.23) 在控制系统的仿真中,最常见的向量微分方程是线性定常系统的状态方程 uBAxx即有ubbbxxxaaaaaaaaaxxxnnnnnnnnn212121222211121121RK4法的4个iK可表示为)()2
11、(2)2(2)(3423121htuhhtuhhtuhtukkkkkkkkBKxAKBKxAKBKxAKBAxK上一页下一页返回 (2.24)(2.25) (2.26)3.2.1 单步法和多步法3.2.2 显式算法和隐式算法3.2.3 截断误差和舍入误差3.2.4 数值积分算法的计算稳定性3.2.5 数值积分算法的计算精度、速度、稳定性与步长的关系3.2.6 数值积分算法的选择原则3.2.7 误差估计与步长控制3.2.8 数值积分算法仿真实例上一页下一页返回上节中介绍的几种数值积分算法都有一个共同特点:在计算yk+1时只用到了yk ,而不直接用yk-1, yk-2 , 等项的值,即在本次计算中
12、仅仅用到了前一次的计算结果。这类算法称为单步法。单步法运算有如下优点:需要存储的数据量少,占用的存储空间少;只需要知道初值,就可以启动递推公式进行运算,即可以自启动;容易实现变步长运算。 上一页下一页返回与单步法相对应的还有一类数值积分算法,称为多步法。在它的计算公式中,本次计算不仅要用到前一次的计算结果,还要用到更前面的若干次结果。例如AB4法:)9375955(243211kkkkkkffffhyy式中 3 , 2 , 1 , 0),(iyihtffikkikl 多步法与单步法相比,欲达到相同的精度,计算工作量要少得多。因此,在相同条件下多步法比单步法要快。多步法的主要缺点是,它不是自启动
13、方法,必须用其它方法求初始几步的值。另外,多步法不容易实现变步长运算。 上一页下一页返回 (2.28)如果数值积分算法在计算yk+1时所用到数据均已求出,则称其为显式算法。 如果数值积分算法的计算公式右端中隐含有未知量 yk+1,则称其为隐式算法。例如AM4法就是隐式算法 : )5199(242111kkkkkkffffhyy上一页下一页返回(2.29)隐式算法也不是自启动的算法,需要用另一个显式算法估计一个初值,然后再用隐式算法进行迭代运算,这就构成了预估-校正算法。 四阶Adams预估-校正算法: )5199(24)9375955(2421)0(11321)0(1kkkkkkkkkkkkf
14、fffhyyffffhyy上一页下一页返回 (2.30) 在分析数值积分算法的精度时,通常用泰勒级数作为工具。假设前一步求得结果是准确的,即有 )(kktyy 则用泰勒级数求得在1kt处的解析解为 )()(!1)(! 21)()()(1)(2rkrrkkkkhOtyhrtyhtyhtyhty 不同的数值积分算法相当于在上式中取了不同项数之和而得到的近似解。 上一页下一页返回 (2.31)(2.32)这种由数值积分算法单独一步引进的附加误差称为局部截断误差。它是数值积分算法给出的解与微分方程的解析解之间的差,故又称为局部离散误差。步长h越小,局部截断误差就越小。 若数值积分算法的局部截断误差为
15、,则方法为r阶的。)(1rhO 算法的阶数可以作为衡量算法精确度的一个重要标志。上一页下一页返回 以上的分析是在假设前一步所得结果是准确的前提下得出的,即 )(kktyy 成立时,有 )()(111rkkhOyty 但在求解过程中,实际上只有当k=0 时, 才成立。而当k=1,2,3,时, 并不成立。因而r阶算法求得的解的实际误差要大一些的。 )(kktyy 设yk是在无舍入误差情况下由r阶方法算出的微分方程式的近似解, y(t)为微分方程的解析解, 为算法的整体截断误差,则可以证明, 。即整体截断误差比局部截断误差低一阶。 kkkyty)()(rkhO上一页下一页返回(2.33)1. 计算稳
16、定性的概念 2. 欧拉法的计算稳定性 3. 龙格-库塔法的计算稳定性 4. 多步法的计算稳定性 上一页下一页返回连续系统的数字仿真,实质上就是将给定的微分方程(组)变换成差分方程(组),然后从初值开始,逐步进行递推计算。 【例2.1】 已知微分方程及初值 5 . 1031)0(30tyyy 试比较在取不同步长时,其精确解与数值积分算法解之间的差异。 上一页下一页返回 【解】该初值问题的解析解为 tety3031)(上一页下一页返回对应的结果曲线如图2.2(a)所示。图2.2 (a) 解析解5 . 0 ,075. 0 , 1 . 0h5 . 1t)(ty取,分别用欧拉法和RK4法计算处的,所得结
17、果曲线如图2.2 (b)(g)所示。 图2.2 (b) 欧拉法(h=0.1) 图2.2 (c) RK4法(h=0.1) 上一页下一页返回图2.2 (d) 欧拉法(h=0.075) 图2.2 (e) RK4法(h=0.075) 图2.2 (f) 欧拉法(h=0.05) 图2.2 (g) RK4法(h=0.05) 上一页下一页返回 从图中可以看出,解析解单调下降并迅速收敛到0。 当 时,欧拉法和RK4法的解曲线均发散,数值积分算法的解是错误的。 1 . 0h 当 时,欧拉法的解曲线仍然发散,对应的解是错误的;RK4法的解曲线单调下降并收敛到0,对应的解是正确的。 075. 0h 当 时,欧拉法和R
18、K4法的解均收敛到0(虽然欧拉法的解曲线是振荡收敛的)。如果只要求得到 处的 的解,则两种数值积分算法的解都可以认为是正确的。事实上,此时有 05. 0h5 . 1t)(ty 上一页下一页返回欧拉法 RK4法 10101044085. 3)5 . 1 (y18102522715. 4)5 . 1 (y解析解 21105417286. 9)5 . 1 (y为什么会出现上述情况呢?这是因为数值积分算法只是一种近似积分方法,在反复的递推计算中会引进误差(这种误差通常是由初始数据的误差及计算过程中的舍入误差产生)。如果误差的累积越来越大(见【例2.1】),将使计算出现不稳定,从而得到错误的结果。系统的
19、稳定性与计算稳定性是两个不同的概念。由于选用的数值积分算法不同,即使对于同一系统,差分方程也各不相同,计算稳定性也就各不一样。上一页下一页返回通常用一个简单的一阶微分方程来考查数值积分算法的计算稳定性。 微分方程及初值问题0)0(yyyy称为测试方程(Test Equation),其中, 为方程的特征根。根据稳定性理论,当特征根位于左半s平面,即 时,原系统稳定。 j0Re上一页下一页返回 (2.34) 用欧拉法对测试方程进行计算,有 , 1 , 0)1 (1kyhhyyykkkk 假定仅仅在初始值y0处引进了初始误差 ,而在递推计算过程没有引进任何其它误差。显然,此时 的误差01ky 1k仅
20、由 ky的误差 k引起的,所以有 )(1 ()(11kkkkkkkkyhyhyy用(2.36)式减去(2.35)式,得到误差方程 (2.35)(2.36)上一页下一页返回kkh)1 (1以此类推,有 0121)1 ()1 ()1 (kkkkhhh 当 时, 。表明若在递推计算过程中的某步引入了误差,则随着递推步数的增加,这个误差将逐渐扩大,最终导致差分方程的解完全失真。 11 hkk1 反之,当 时, 。表明随着递推步数的增加,引入的误差会被逐渐减小或保持有界。在这种情况下,称差分方程是计算稳定的。 11 hkk1上一页下一页返回 (2.37) (2.38) 显然,对于欧拉法,合理地选择步长h
21、使其满足 是保持其计算稳定性的充要条件。 11 h 令 ,由 ,可知欧拉法在实轴上的稳定区域为(-2,0),即有 hh11 h2hh因此, 越大,步长h就应该取得越小。 Re 为了保证计算稳定性而对步长h有所限制的数值积分算法称为条件稳定算法。在任何步长h0的情况下计算都稳定的数值积分算法称为绝对稳定算法(亦称为无条件稳定算法或恒稳算法)。欧拉法是一种条件稳定的计算方法。 上一页下一页返回 将RK法应用于测试方程,容易得到下列误差方程 )()(!1)(! 211121rkrkhOhrhh令 ,代入上式,可得该式稳定的条件为 hh1!1! 21121rhrhh可得如表2.2所示的各阶RK法在实轴
22、上的稳定区域。 上一页下一页返回 (2.40)(2.39)显式RK法都是条件稳定算法,步长h的大小除了与所选用的算法有关外,还与方程本身的性质有关。对于实际系统,由于其特征值不一定为实数,因此满足(2.40)式的也是复数。一般而言,步长h必须满足不等式 (2.41) 1hh12/12hh 6/2/132hhh24/6/2/1432hhhhr 所在的实负稳定区域1(-2,0)2(-2,0)3(-2.51,0)4(-2.785,0) 表2.2 RK法在实轴上的稳定区域 32h上一页下一页返回将多步法应用于测试方程,可以得到类似的误差方程。结论:在同阶的多步法中,隐式算法的稳定区域比显式算法的大得多
23、;随着阶数的增加,多步法的稳定区域逐渐减小。 上一页下一页返回方法的阶数1234显式(-2,0)(-1,0)(-6/11,0)(-3/10,0)隐式(-,0)(-,0)(-6,0)(-3,0) 表2.3 Adams法在实轴上的稳定区域 除了AM1法和AM2法(隐式Adams法)为绝对稳定算法外,其它算法都是条件稳定算法。这就是说,步长h必须满足不等式 式中,为由积分算法确定的常数。上一页下一页返回|h|plot(tout,yout,k);grid; 上一页下一页返回图2.8 (exam2_4.mdl) 得到如图2.9 (a)所示的阶跃响应曲线。显然,该曲线不是很理想,超调量较大。为此,可以将外
24、环的PI控制器参数调整为 ,并分别选择=0.17,0.5,1,1.5,可以得到如图2.9 (b)所示的仿真结果。可以看出,如果选择PI控制器为 ,就能够得到较为满意的控制效果。sas85. 0) 1(ss85. 015 . 1图2.9 (a)图2.9 (b)上一页下一页返回 【例2.5】考虑著名的Van de Pol方程 0) 1(2yyyy 25. 0)0(, 0)0(yy试绘制其相轨迹( )。【解】选择状态变量 yxyx21则有如下非线性状态方程 1221221) 1(xxxxxx上一页下一页返回200 t 第1个方程可以看成是将x2(t)信号作为一个积分器的输入端,积分器的输出将成为x1
25、(t)信号。同样,x2(t)信号本身也可以看成是一个积分器的输出,而积分器的输入端信号应该为 。于是,利用Simulink提供的各种模块可以得到如图2.10所示的仿真结构。 1212) 1(xxx上一页下一页返回 图2.10(exam2_5.mdl) Simulink模型中有些模块需要将输入端和输出端(通常用于反馈路径)掉换一下方向。为此,可以用鼠标单击需要掉换方向的模块选中它,则选中的模块的四个角出现黑点,表明它处于选中的状态。然后, 打开Simulink的Format菜单(见图2.11),选择其中的翻转子菜单(Flip block)即可。 上一页下一页返回图2.11 启动仿真后,仿真结果将
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 连续 系统 仿真 基础 算法
一课资料网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。



浙江美术馆调研报告.ppt
电热水器控制系统.doc
D6114B型柴油机结构特点.pdf

![MLSPGO8Q0C2L%`J2QI2M]C3.png](https://www.ekdoc.com/FileUpload/ueditor_s/upload/2020-5/8/6372452921073120799898817.png)


