《控制系统数字仿真与cad》第3章连续系统的数字仿真_第1页
《控制系统数字仿真与cad》第3章连续系统的数字仿真_第2页
《控制系统数字仿真与cad》第3章连续系统的数字仿真_第3页
《控制系统数字仿真与cad》第3章连续系统的数字仿真_第4页
《控制系统数字仿真与cad》第3章连续系统的数字仿真_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 本章内容(1) 熟悉在数字计算机仿真技术中常用的几种数值积分法, 特别是四阶龙格-库塔法;(2) 典型环节及其系数矩阵的确定;(3) 各连接矩阵的确定;(4) 利用MATLAB在四阶龙格-库塔法的基础上,对以状态 空间表达式和方框图描述的连续系统进行仿真;l 用数字计算机来仿真或模拟一个连续控制系统的目的就是求解系统的数学模型。由控制理论知,一个n阶连续系统可以被描述成由n个积分器组成的模拟结构图。因此利用数字计算机来进行连续系统的仿真,从本质上讲就是要在数字计算机上构造出n个数字积分器,也就是让数字计算机进行n次数值积分运算。可见,连续系统数字仿真中的最基本的算法是数值积分算法。l 连续系

2、统通常把数学模型化为状态空间表达式,为了对n阶连续系统在数字计算机上仿真及求解,就要采用数值积分法来求解系统数学模型中的n个一阶微分方程。l 设n阶连续系统所包含的n个一阶微分方程中的第i个一阶微分方程为l (3-1)l所谓数值积分法,就是要逐个求出区间a ,b内若干个离散点a t0 t1 t0时,x(t)是未知的,因此式(3-2)右端的积分是求不出的。为了解决这个问题,把积分间隔取得足够小,使得在tk与tk+1之间的f(t,x(t)可以近似看作常数f(tk,x(tk),这样便得到用矩形公式积分的近似公式l或简化为l l这就是欧拉公式。htxtftxtxkkkk)(,()()(1hxtfxxk

3、kkk),(1l即 k =0,x1x0+f(t0,x0)hl k=1, x2x1+f(t1,x1)hl l k=n-1, xnxn-1+f(tn-1,xn-1)hl 这样式(3-1)的解x(t)就求出来了。欧拉法的计算虽然比较简单,但精度较低。图3-1为欧拉法的几何解释。l由图3-2知,用矩形面积tkabtk+1代替积分,其误差就是图中阴影部分。为了提高精度,现用梯形面积tkactk+1来代替积分,即l于是可得梯形法的计算公式为 111(, () ( , )(,)2kktkkkkthf t xt dtf t xf tx111 ( ,)(,)2kkkkkkhxxf txf txl 由于上式右边包

4、含未知量xk+1,所以每一步都必须通过迭代求解,每一步迭代的初值xk+1(0)通常采用欧拉公式来计算,因此梯形法每一步迭代公式为l l (3-3)l式中 迭代次数R=0,1,2,(0)1(1)()111( ,) ( ,)(,)2kkkkRRkkkkkkxxhf txhxxf txf txl3.1.3 3.1.3 预估校正法预估校正法l虽然梯形法比欧拉法精确,但是由于每一步都要进行多次叠代,计算量大,为了简化计算,有时只对式(3-3)进行一次叠代就可以了,因此可得l通常称这类方法为预估校正方法。它首先根据欧拉公式计算出xk+1的预估值xk+1(0),然后再对它进行校正,以得到更准确的近似值xk+

5、1(1)。),(),(2),()0(11)1(1k)0(1kkkkkkkkkxtfxtfhxxxthfxxl3.1.4 3.1.4 龙格库塔法龙格库塔法l 根据泰勒级数将式(3-1)在tk+1=tk+h时刻的解xk+1=x(tk+h) 在tk附近展开,有l l (3-5)l 可以看出,提高截断误差的阶次,便可提高其精度,但是由于计算各阶导数相当麻烦,所以直接采用泰勒级数公式是不适用的,为了解决提高精度问题,龙格和库塔两人先后提出了间接使用泰勒级数公式的方法,即用函数值f (t,x)的线性组合来代替f (t,x)的导数,然后按泰勒公式确定其中的系数, 这样既能避免计算f (t,x)的导数,又可以

6、提高数值计算精度,其方法如下。)( 0! 21 1)(21 ppkpkkkkhxphxhxhxxl因l故式(3-5)可写成l (3-6) l为了避免计算式(3-6)中的各阶导数项,可令xk+1由以下多项式表示。l (3-7)kxkxxttxxttkkkkkfffdtdxxftfdtxtdfxfxtfxkkkkk )(),(),()(0)(! 2121pkxkkkkhfffhhfxxkvmmmkkkahxx11l式中 am为待定因子,v为使用f函数值的个数,km满足下列方程l (3-8)l即:l将式(3-7)展开成h的幂级数并与微分方程式(3-1)精确解式(3-6)逐项比较,便可求得式(3-7)

7、和式(3-8)中的系数am ,bmj和cm等。vmchkbxhctfkmjjmjkmkm, 2 , 1, 0),(111),(),(),(23213133121221hkbhkbxhctfkhkbxhctfkxtfkkkkkkkl现以v=2为例,来说明这些参数的确定方法。设v=2,则有l(3-9)l l将k1和k2在同一点(tk ,xk)上用二元函数展开为),(),()(12122122111hkbxhctfkxtfkkakahxxkkkkkkkkkfxtfk),(1)( 0)( 0),(3212312122hff hbf hcfhxfhkbtfhcxtfkkxkkxxttxxttkkkkkk

8、kl将k1和k2代入式(3-9)整理后可得l l(3-10)l将上式与式(3-6)逐项进行比较,可得以下关系式l若取 l则)( 0)()(3212222211hffbafcahfaahxxkxkkkkk21,21, 12122221bacaaa12c1,212121baal于是由式3-9可得l (3-11)l 由于式(3-11)只取到泰勒级数展开式的h2项,故称这种方法为两阶龙格库塔法,其截断误差为0(h3)。)(2211kkhxxkk),(),(121hkxhtfkxtfkkkkkl 同理当v=4时,仿照上述方法可得如下四阶龙格-库塔公式),()2,2()2,2(),()22(6342312

9、143211hkxhtfkkhxhtfkkhxhtfkxtfkkkkkhxxkkkkkkkkkk(3-12)l 通过上述龙格-库塔法的介绍,可以把以上介绍的几种数值积分法统一起来,它们都是基于在初值附近展开成泰勒级数的原理,所不同的是取泰勒级数多少项。欧拉公式仅取到h项,梯形法与二阶龙格库塔法相同,均取到h2项,四阶龙格库塔法取到h4项。从理论上讲,取得的项数愈多,计算精度愈高,但计算量愈大,愈复杂,计算误差也将增加,因此要适当的选择。目前在数字仿真中,最常用的是四阶龙格库塔法,其截断误差为(h5), 已能满足仿真精度的要求。l3.1.5 3.1.5 关于仿真数值积分法的几点讨论关于仿真数值积

10、分法的几点讨论l1单步法和多步法l 解初值问题的数值解法的共同特点是步进式,即从最初一点或几点出发,每一步根据xk一点或前面几点xk-1 , xk-2 ,来计算新的xk+1的值,这样逐步推进。l当从tk推进到tk+1只需用tk时刻的数据时,称为单步法,例如欧拉法和龙格库塔法。l 相反,需要用到tk以及过去时刻tk-1 ,tk-2 ,的数据时称为多步法。线性多步法的一般形式是l (3-13)l 多步法不能从t=0自启动,通常需要选用相同阶次精度的单步法来启动,获得所需前k步数据后,方可转入相应多步法,因多步法利用信息量大,因而比单步法更精确。)(0111101nknkknknkkkfffhxxx

11、xl2显式和隐式l 在计算xk+1时公式右端所用到的数据均已知时,称为显式算法。例如欧拉法、龙格库塔法和式(3-13)中-1=0的情况。相反,在算式右端中隐含有未知量xk+1时,称为隐式算法。例如梯形法、预估校正法和式(3-13)中-10的情况。l 显式算法利用前几步计算结果即可进行递推求解下步结果,因而易于计算。而隐式计算需要迭代法,先用另一同阶次显式公式估计出一个初值xk+1(0),并求得fk+1,然后再用隐式求得校正值xk+1(1), 若未达到所需精度要求,则再次迭代求解,直到两次迭代值xk+1 (i)和xk+1(i+1) 之间的误差在要求的范围内为止,故隐式算法精度高,对误差有较强的抑

12、制作用。尽管隐式算法计算过程复杂,计算速度慢,但有时基于对精度、数值稳定性等考虑,仍然经常被使用,如求解病态方程等问题。l3.数值稳定性与仿真误差 数值积分法求解微分方程,实质上是通过差分方程作为递推公式进行的,因此,在将微分方程差分化的变化过程中,应保持原系统稳定的特征,即要求用于计算的差分方程是稳定的。但是,在计算机逐次计算时,初始数据的误差及计算过程的舍入误差等都会使误差不断积累。如果这种仿真误差积累能够抑制,不会随计算时间增加而无限增大,则可以认为相应的计算方法是数值稳定的。反之,则是数值不稳定的。l(1)截断误差由于仿真模型仅是原系统模型的一种逼近,以及各种数值积分法的计算都是近似的

13、算法。通常计算步长愈小,截断误差也愈小。l(2)舍入误差由于计算机的精度有限(有限位数)所产生。通常计算步长愈小,计算次数愈多, 舍入误差愈大。l 对截断误差而言,计算步长愈小愈好,但太小不但会增加计算时间,而且由于舍入误差的增加,不一定能达到提高精度的目的,甚至可能出现数值不稳情况。显然计算步长太大,不但精度不能满足要求,而且计算步长超过该算法的判稳条件时,也会出现不稳定情况。由此可见,计算步长只能在某一范围内选择,图中的h0为最佳计算步长。l 一般控制系统的输出动态响应在开始段变化较快,到最后变化将会很缓慢。这时,计算可以采用变步长的方法,即在开始阶段步长取得小一些,在最后阶段取得大一些,

14、这样即可以保证计算的精度,也可以加快计算的速度。l 对于一般工程计算,计算精度要求并不太高,故常用定步长的方法。作为经验数据,当采用四阶龙格库塔法作数值积分计算时,取计算步长l h=tr/10或ts/40l式中 tr系统在阶跃函数作用下的上升时间;ts系统在阶跃函数作用下的过渡过程时间。若系统有多个回路,则应按反应最快的回路考虑。自动控制系统常常是由许多环节组成的。应用上节介绍的数字仿真方法对系统分析和研究 时,首先需要求出总的传递函数,再转化为状态空间表达式的形式,然后对其求解。当改变系统某一环节的参数时,尤其是要改变小闭环中某一环节的参数时,以上整个过程又需重新计算,这对研究对象参数变化对

15、整个控制系统的影响是十分不便的。为了克服这些缺点,同时大多数从事自动化工作的科技人员更习惯于用结构图的形式来分析和研究控制系统,为此产生了面向结构图的仿真方法。该方法只需将各环节的参数及各环节间的连接方式输入计算机,仿真程序就能自动求出闭环系统的状态空间表达式。 本节主要介绍由典型环节参数和连接关系构成闭环系统的状态方程的方法,而动态响应的计算,仍采用四阶龙格-库塔法。l 这种方法与上节介绍的方法相比,有以下几个主要优点:l)便于研究各环节参数对系统的影响;l)可以得到每个环节的动态响应;l)可对多入多出系统进行仿真。l下面具体介绍面向结构图的仿真方法。l3.3.1 3.3.1 典型环节的确定

16、典型环节的确定l 一个控制系统可能由各种各样的环节所组成,但比较常见环节有:(1)比例环节:G(s)=k (2)积分环节: (3)比例积分环节:(4)惯性环节:(5)超前滞后环节:(6)二阶振荡环节: ( )kG ss2121( )kk skG skss( )1kG sTs211( )1T sG skTs22( )21kG sT sTsl 为了编制比较简单而且通用的仿真程序,必须恰当选择仿真环节。在这里选用图3-7所示的典型环节作为仿真环节,即l式中 u为典型环节的输入,x为典型环节的输出。l 利用这个典型环节,只要改变a ,b ,c 和d参数的值,便可分别表示以上所述的各一阶环节,至于二阶振

17、荡环节,则可用l两个一阶环节等效连l接得到,如图3-8所示。bsadscsUsXsG)()()(ux图3-7 典型环节kux图3-8 二阶振荡环节的等效结构图l3.3.2 3.3.2 连接矩阵连接矩阵l一个控制系统用典型环节来描述时,必须用连接矩阵把各个典型环节连接起来。所谓连接矩阵,就是用矩阵的形式表示各个典型环节之间的关系。下面介绍连接矩阵的建立方法, 假设多输入多输出系统的结构图如图3-9所示。同理,三阶及三阶以上的环节也完全可以用若干个一阶环节等效连接得到。由此可见,任何一个复杂的控制系统都可以用若干个典型环节来组成。l 图中带数字的方框表示典型环节, 表示比例系数。235, IIII

18、IIIV235Vl 由图可得各环节的输入与各环节的输出间的关系,以及系统的输出与环节的输出间关系分别为l和 453433323222121551xuxurxxurxxurxu3241xyxyl写成矩阵形式l和32154321325543210000001000100010100000100001000010000rrrxxxxxuuuuu54321210010001000 xxxxxyyl或写成l (3-20)l l定义式中的W ,W0 和 Wc阵为连接矩阵,W反映了各典型环节输入输出间的连接关系,W0反映了系统的参考输入与各环节输入间的连接关系, Wc反映了系统的输出与各环节输出间的关系。x

19、WyrWWxuc0l 一般也将系统中各典型环节的系数写成如下矩阵的形式(假设系统由n个典型环节组成)l (3-21)nnnndcbadcbadcbaP22221111l3.3.3 3.3.3 确定系统的状态方程确定系统的状态方程l 典型环节和连接矩阵确定后,便可求得系统的状态空间表达式,推导过程如下。l 假设系统由n个典型环节组成,则根据典型环节的传递函数有l l ( i=1,2,)l即l l( i=1,2,)sbasdcsUsXsGiiiiiii)()()()()()()(sUsdcsXsbaiiiiii112200000000,0000nnabababAB112200000000,0000

20、nncdcdcdCD() ( ) () ( )ssssA B XC+D Ul 将式(3-20)中的上式进行拉氏变换后代入式(3-22)中可得l对上式两边取拉氏反变换得l(3-23)l 若参考输入向量r=r1 r2 rmT中的r1,r2,rm均为阶跃函数,则上式可简化为l (3-24)000() ( ) ()( )( )()( ) () ( )( )( )sssssssssssA+B XC+D WXWRB-DW XCWA XCWRDW R00(B-DW)x(CW - A)x CW rDW r0()()B - DW xCW - A xCW rl令l则式(3-24)可写成l若H的逆存在,则有l再令l

21、可得 (3-25)l 上式即为闭环系统的状态方程,它是一个典型的状态方程,利用前面介绍的求解方法可方便地求出各典型环节的输出响应,最后根据式(3-20)中的第二式便可求出系统的输出响应。H = B - DW ,Q = CW - A0Hx = Qx+ CW r0-1-1x = H Qx+ H CW r0-1-1A = H Q,B = HCWBrAxx在建立系统的各典型环节时应注意以下两点:(1)为保证H的逆H-1存在,应严格按照的原则,确定每个典型环节。即避免以纯比例、纯微分环节作为典型环节。(2)在输入向量不全为阶跃函数的情况下,只要在确定典型环节时,注意使含有微分项系数(即 )的环节不直接与

22、参考输入连接,也可避免式3-23中出现r的导数。0ib 0id l 面向结构图的数字仿真程序框图如图-10所示,其程序清单通过下例给出。给定典型环节参数和连接矩阵输入仿真时间Tf Tf和计算步长h开始给定输入信号求H, H-1和Q阵值求A,B阵根据龙格-库塔法求状态方程的解计算系统输出yT=TfyN输出结果l例例3-23-2 假设某一系统由四个典型环节组成,如图3-11所示。求输出量y的动态响应。r=10图3-111 . 05 . 0sss122s1010sy+-x1 u2x2 u3x3 u4u1x4l解解 由图可得各环节的输入与输出以及系统的输出与环节的输出间关系为rxxxxuuuu000101000010000110004321432143211000 xxxxyl根据以上两式和各典型环节的系数值,可得如下连接矩阵和系数矩阵1000,000101000010000110000cWWW0101100212011015 . 011 . 04444333322221111dcbadcbadcbadcbaPl仿真程序如下l%

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论