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