武科大Matlab仿真第七章系统时间响应及其仿真

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第七章系统时间响应及其仿真仿真技术第七章系统时间响应及其仿真本章主要内容如下:7.1仿真算法7.2系统仿真的MATLAB函数系统的时间响应是指系统在输入信号或初始状态作用下,系统输出随时间变化的情况。系统的时间响应反映了系统的特征和性能,如快速性、稳定性等。对系统时间响应的分析是我们设计、校正系统的基础。第七章系统时间响应及其仿真仿真技术第七章系统时间响应及其仿真7.1仿真算法对系统的时间响应进行动态仿真,采用什么样的仿真算法是一个至关重要的问题。对连续时间系统进行数字动态仿真,主要是两种方法:①基于数值积分的仿真方法;②基于离散相似法的仿真方法。由于后者涉及到离散控制系统理论,因此本节重点介绍基于数字积分的连续系统仿真方法。第七章系统时间响应及其仿真仿真技术7.1仿真算法7.1.1数值求解的基本概念设微分方程为则求解方程中函数y(t)问题,就是已知初值的常微分方程求解问题。所谓数值求解就是要在时间区间[a,b]中取若干离散点求出微分方程在这些时刻的近似值常微分方程数值求解的基本方法是数值积分法。00(,)()dyftydtyty01Natttb012Nyyyy()0,1,2kkyytkN第七章系统时间响应及其仿真仿真技术7.1仿真算法7.1.2数值积分的基本原理积分区间的划分)1()()),(,(0ytybtatytfdtdyo将区间[a,b]分成N个小区间,时间间隔h()也称为积分步长,在第k个间隔t=[tk,tk+1]内积分:Nabh)2(),(11kkttkkdtytfyy则可用yk(k=0,1,…N)作为解y(t)的近似值,如图所示。abtky0ykyt数值积分图解tk+1第七章系统时间响应及其仿真仿真技术7.1仿真算法7.1.2数值积分的基本原理数值积分的展开式为避免(2)式中的积分项,将y在tk,以h为增量展开成Taylor级数:式(3)是一个递推公式。积分值与实际微分方程解的误差取决于步长h和计算所用的阶数,它是数值积分的基础。),,2,1,0()3('3)3(!312)2(!211Nkhyhyhyyykkkkk)2(),(11kkttkkdtytfyy第七章系统时间响应及其仿真仿真技术7.1仿真算法7.1.2数值积分的基本原理有关概念单步法和多步法单步法指计算yk+1值只需利用tk时刻的信息,也称为自启动算法;多步法在计算yk+1值时,则需利用tk,tk-1,…时刻的信息。显示法和隐式法显示法在计算yk+1时所需数据均已算出;隐式法在计算yk+1时需用到tk+1时刻的数据,该算法必须借助予估公式。定步长和变步长定步长为积分步长在仿真运行过程中始终不变;变步长指在仿真运行过程中自动修改步长。第七章系统时间响应及其仿真仿真技术7.1仿真算法7.1.3数值积分的几个算法欧拉算法在(3)式中取前两项:可得欧拉算法:t0t1t2t3hy(t)y0y1yt欧拉近似解欧拉法【说明】欧拉法是用一条过各点的切线取代曲线来逼近精确解。该算法简单,计算量小,但精度较低。)4('1mmmhyyy)5(),(),(),(111120000100hytfyyhytfyyhytfyhyyymmmmty)3('3)3(!312)2(!211kkkkkhyhyhyyy第七章系统时间响应及其仿真仿真技术7.1仿真算法7.1.3数值积分的几个算法梯度法梯度法是欧拉法的改进。与欧拉法相比,梯度法是用两个点(tm,ym)、(tm+1,ym+1)的斜率的平均值来确定下一点的y值。由于上式计算时需要用到ym+1的值,而ym+1不能预先知道,故梯度法需要和欧拉法结合使用,即用欧拉法对ym+1进行予估,再由梯度法计算ym+1)3('3)3(!312)2(!211kkkkkhyhyhyyy)),(),((11211mmmmmmytfytfhyy)6()),(),(()(),(112111(校正)予估mmmmmmmmmmytfytfhyyhytfyy第七章系统时间响应及其仿真仿真技术7.1仿真算法7.1.3数值积分的几个算法龙格-库塔法龙格-库塔法的基本思想欧拉算法的精度较低,主要是其微分方程解y的Taylor展开式所取的项数太少。显然为了提高计算精度,应当取泰勒公式(3)更高阶项。虽然增加高阶项可提高计算精度,但也同时带来了需要计算高阶导数的困难。龙格-库塔法的关键是利用低阶导数构成的曲线去拟合含有高阶导数的曲线,从而避免了计算高阶导数的问题。)3('3)3(!312)2(!211kkkkkhyhyhyyy第七章系统时间响应及其仿真仿真技术7.1仿真算法7.1.3数值积分的几个算法龙格-库塔法二阶龙格-库塔(RK)法取(3)式的前三项,则有)3('3)3(!312)2(!211kkkkkhyhyhyyy)7(),(),('2212)2(211hytfythfyhyhyyymyfmmmtfmmmmmmm设原微分方程(1)式解具有以下形式:)8()(),(),(2211112121KaKahyyhKbyhbtfKytfKmmmmmm式中,a1,a2,b1,b2为待定系数。),(),()2(ytfdtdyytfdtdy第七章系统时间响应及其仿真仿真技术)7(),(),(2211hytfythfyymyfmmmtfmmmm)8()(),(),(2211112121KaKahyyhKbyhbtfKytfKmmmmmm将(8)式中K2按二元函数展开成泰勒级数,并取前三项)9(),(),(1211212myfmtfmmmyfmtfmmKbbhytfhKbhbytfK将K1,K2代入(8)式:)10(]),([),()(]),(),([),(21222121211myfmmmtfmmmmyfmmmtfmmmmmmytfbbhaythfaayythfbhbytfhaythfayy比较(6-10)、(6-7)式:)11(2/12/11221221babaaa第七章系统时间响应及其仿真仿真技术显然由(11)式并不能唯一确定a1,a2,b1,b2,因为只有三个方程。因此对于同一种算法可以有不同的表现形式。【说明】由于该算法只取到泰勒展开式的二阶导数项,所以称为二阶龙格-库塔法。但由(8)~(12)式可知,算法并没有用y的二阶导数。若设a1=a2,则12/12121bbaa即二阶RK法公式为)12()(2),(),(211121KKhyyhKyhtfKytfKmmmmmm)11(2/12/11221221babaaa第七章系统时间响应及其仿真仿真技术7.1仿真算法7.1.3数值积分的几个算法龙格-库塔法龙格-库塔(RK)法的一般形式)13(,,2,1),(1111riKbyhatfKKhyyijjijmimiiriimm式中,i为待定权系数,ai,bij为待定系数,r为使用Ki的个数(即级数),Ki为所取各点导数f的值。Ki的个数与yk+1泰勒展开式所取的项数有关(即RK算法的阶数),同时还与计算区间内所取导数值的点数有关。第七章系统时间响应及其仿真仿真技术7.1仿真算法7.1.3数值积分的几个算法龙格-库塔法四阶RK公式四阶RK公式用到了y的泰勒展开式的四阶导数。在RK算法的一般公式(13)中,取r=4可得:)14(),(),(),(),(223422123121221432161hKyhtfKhKytfKhKytfKytfKKKKKyymmmhmmhmmmhmm由于(14)式在同级的RK算法中,计算精度较高,计算量较少,而在系统仿真的数值积分中应用十分广泛。称之为四阶四级RK公式。第七章系统时间响应及其仿真仿真技术7.1仿真算法7.1.3数值积分的几个算法Gear算法“病态”常微分方程(刚性方程)的系数矩阵A的特征值具有如下特征:00()()(),()XtAXtBUtXtX则称为“病态”方程。)17(50]Re[min]Re[max),,2,1(0]Re[iiiini第七章系统时间响应及其仿真仿真技术7.1仿真算法7.1.3数值积分的几个算法Gear算法控制系统仿真中的“病态”问题a)病态系统中绝对值最大的特征值对应于系统动态性能解中瞬态分量衰减最快的部分,它反映了系统的动态响应和系统的反应灵敏度。一般与系统中具有最小时间常数Tmin的环节有关,要求计算步长h取得很小。b)病态系统中绝对值最小的特征值对应于系统动态性能解中瞬态分量衰减最慢的部分,它决定了整个系统的动态过渡过程时间的长短。一般与系统中具有最大时间常数Tmax的环节有关,要求计算步长h取得很大。c)对于病态问题的仿真需要寻求更加合理的算法,以解决病态系统带来的选取计算步长与计算精度、计算时间之间的矛盾。第七章系统时间响应及其仿真仿真技术7.1仿真算法7.1.3数值积分的几个算法Gear算法Gear算法Gear算法适用于病态系统的仿真,该算法类似于四阶RK算法)18(21121,2112121,22,2,324213121KKyhthfKKKyhthfKKyhthfKythfKmmmmmmmm)19(6121131211316143211KKKKyymm第七章系统时间响应及其仿真仿真技术7.1仿真算法7.1.4数值积分方法的选择在选择积分方法时应考虑以下几个问题。a)计算精度数值积分方法所得到的离散数值解只是精确解的近似,其误差来自两个方面,即舍入误差和局部截断误差。舍入误差:由计算机字长有限而造成的计算时的舍入误差,它随计算次数的增加而增加。因此舍入误差与计算步长h成反比。局部截断误差:由积分方法和阶次的限制而引起的误差。这种误差与h成正比。截断误差舍入误差总误差eh误差与积分步长显然选择一个合适的积分步长可使总误差达到最小。第七章系统时间响应及其仿真仿真技术7.1.4数值积分方法的选择b)积分步长的选择和控制积分步长的选择原则在保证数值积分稳定性和精度的前提下,尽可能选则较大的积分步长,以减少仿真计算次数和仿真时间。固定步长与变步长固定步长:在整个仿真计算过程中,积分步长h始终不变。其算法简单,但很难保证步长最优。此外,h还应与模型的信号响应情况有关,例如在稳态时,可取较大的步长,见上图。6.283212.566418.84960.9511.051.2843y=1-e-tcost=0.3=0.7镇定时间ts=9.6133ty?变步长:在仿真计算过程中根据计算误差的大小来改变步长。其目的是在保证一定计算精度的前提下,尽可能选择较大步长。第七章系统时间响应及其仿真仿真技术7.2系统仿真的MATLAB函数7.2.1数值积分方法的MATLAB函数对于用数值方法求解常系数微分方程(OrdinaryDifferentialEquation,简写为ODE)或微分方程组,MATLAB提供了七种解函数,最常用的是ODE45(四阶RK算法,单步、变步长,用五阶RK算法估算局部截断误差),其调用格式为:[T,Y]=ode45(‘f’,tspan,y0)【说明1】‘f’为常微分方程(组)或系统模型的文件名;tspan=[t0,tf

1 / 31
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功