热度 15
2012-2-25 21:19
2163 次阅读|
5 个评论
连续系统的数字仿真方法比较 唐爱明 (深圳大学机电与控制工程学院 广东 深圳 518060) 摘要:数字仿真,即为在计算机上求解系统数学模型。连续系统要想实现数字仿真,必须对其数学模型离散化。数值积分法常用于系统数学模型的求解,也即是对连续系统的离散化。欧拉法和龙格-库塔法是最基本、最常用的数值积分法。增广矩阵法是连续系统的另一种数字仿真方法,它的特点在于快速求解数学模型。 关键字:数字仿真;数值积分;欧拉法;龙格-库塔法;增广矩阵法 用计算机来仿真或模拟一个连续控制系统的目的是求解系统的数学模型。连续控制系统的数学模型可以用传递函数来描述,也可以用状态空间来描述。传递函数描述只能对系统不完全描述,描述的是系统输入与输出之间的关系,而状态空间描述则是对系统的完全描述,描述了系统的输入、输出与内部状态变量之间的关系。①式即为一个典型的系统状态空间描述,由系统状态方程和系统输出方程构成。 ① 系统的状态空间描述,最基本的问题是求解系统状态方程,即求解一阶微分方程。求解一阶微分方程的方法有差商法、泰勒法、数值积分法、增广矩阵法等。相对于数值积分法,差商法误差较大,而泰勒法计算复杂。增广矩阵法则主要体现在速度上。 数值积分法,就是逐个求出区间【a,b】内若干个离散点 a ≤ t 0 1 … n ≤ b 处的近似值x(t 1 ), x(t 2 ), … , x(t n )。它的意义在于将连续系统离散化,便于计算机处理。 常用的数值积分法有欧拉法、梯形法、预估-校正法和龙格-库塔法。 ⒈ 欧拉法 欧拉法又称为折线法或矩形法,是最简单也是最早的一种数值积分方法。将①式中的系统状态方程的等式两边同时从 t k 到 t k+1 积分得 ② ②式左边可以积出来,再将积出来的 x(t k ) 移到等式右边得 ③ 设离散点 t 0 , t 1 , … , t n 是等距的,即 t k+1 -t k =h,称h为计算步长。 如果把积分间隔取得足够小(即 h 足够小),使得在 t k 与 t k+1 之间的 f( t, x(t) ) 可以近似看作常数 f ( t k , x (t k ) ) ,这样 得到用矩形公式积分的近似公式 x(t k+1 )≈x(t k )+f ( t k , x(t k ) )h 简写为 x k+1 ≈x k +f( t k , x(t k ) )h ④ ④式就是欧拉公式。 欧拉法的计算虽然比较简单,但是精度较低。 ⒉ 梯形法 如图1所示,梯形法与欧拉法的区别在于,欧拉法是用矩形 t k act k+1 的面积代替 t k 到 t k+1 时刻之间面积的值,梯形法是用一个梯形 t k abt k+1 代替,面积上更接近真实值,因此提高了精度。但是梯形法每一步都要往回迭代,计算相对复杂些。 图1 梯形法与欧拉法的区别 梯形法的迭代公式 ⒊ 预估-校正法 梯形法比欧拉法精确,但是每一步都要进行多次迭代,计算量大。为了简化计算,有时只对④式进行一次迭代就可以了。因此可得 称这类方法为预估-校正法。它首先根据欧拉公式计算出 x k+1 的预估值 x k+1 (0) ,然后再对它进行校正,以得到更准确的近似值 x k+1 (1) 。 ⒋ 龙格—库塔法 龙格—库塔法的思路是把①式微分方程在 t k+1 = t k +h 时刻的解 x k+1 = x(t k +h) 在 t k 附近按泰勒级数展开,有 用函数值 f (t , x) 的线性组合来代替 f (t , x) 的导数,然后按照泰勒级数公式来确定其中的系数。这样能避免计算 f (t , x) 的导数又可以提高数值计算精度。提高截断误差的阶次,可以提高其精度。 常用的有二阶龙格-库塔公式(⑤式)和四阶龙格-库塔公式(⑥式)。 ⒌ 增广矩阵法 ⒌ ⒈ 状态方程为齐次方程 如果将①式中的状态方程分成齐次和非齐次两种情况来讨论分析。当为齐次时,状态方程如⑦式所示。 ⑧式只有乘法和加法运算,加快了计算机仿真的速度。在精度上,对 适当取值可以达到四阶龙格-库塔的精度。 ⒌ ⒉ 状态方程为非齐次方程 状态方程为⑨式所示非齐次方程时,需要将 增广到状态变量中去,将其转换为齐次方程,再用齐次方程的解法迎刃而解。 ⑨ 最后,表1对上述各种连续系统的数字仿真方法做一个总结。 表 1 各种数字仿真方法的比较 参考文献: 李国勇,谢克明,杨丽娟.计算机仿真技术与CAD第2版 .北京:电子工业出版社,2010年. 张晓华.控制系统数字仿真与CAD第2版 .北京:机械工业出版社,2005. 邢诚,王建强,贾志强.多种数值积分方法比较分析 .城市勘测,2010年第1期.