《离散连续详解.docx》由会员分享,可在线阅读,更多相关《离散连续详解.docx(11页珍藏版)》请在优知文库上搜索。
1、matlab/simulink/simpowersystem中连续VS离散!1,连续系统VS离散系统连续系统是指系统状态的改变在时间上是连续的,从数学建模的角度来看,可以分为连续时间模型、离散时间模型、混合时间模型。其实在Simpowersystem的库中基本所有模型都属于连续系统,因为其对应的物理世界一般是电机、电遨、电力电子器件等等。离散系统是指系统状态的改变只发生在某些时间点上,而且往往是随机的,比如说某一路口一天的人流量,对离散模型的计算机也臭没有实际意义,只有统计学上的意义,所以在SimPOWerSyStem中是没有模型属于离散系统的。但是在选取模型,以及仿真算法的选择时,常常提到的
2、discretemodeI、discretesolverdiscretesimuIatetype等等中的离散到底是指什么呢?其实它是指时间上的离散,也就是指离散时间模型。下文中提到的连续就是指时间上的连续,连续模型就是指连续时间模型。离散就是指时间上的离散,离散模型就是指离散时间模型,而在物理世界中他们都同属于连续系统。为什么要将一个连续模型离散化呢?主要是是从系统的数学模型来考虑的,前者是用微分方程来建模的,而后者是用差分方程来建模的,并且差分方程更适合计算机计算,并且前者的仿真算法(simulationsolver)用的是数值积分的方法,而后者则是采用差分方程的状态更新离散算法。在Si叩O
3、VVerSyStenl库中,对某些物理器件,既给出的它的连续模型,也给出了它的离散模型,例如:离散模型一个很重要的参数就是采样时间sampletime,如何从数学建模的角度将一个连续模型离散化,后面会有介绍。在Simpowersystem中常用powergui这个工具来将系统中的连续模型离散以便采用discrete算法便于计算机计算。8- ExtraLibraryhControlBlocksLDiscreteControlBlocksRMS1l方AlTk*ll5gl(MeasurementsPhasorLibrarysignalrm )ZnRMS DiscreteRMS value2,连续模型
4、的数学建模vs离散模型的数学建模Note:这里的连续和离散都是指时间上的连续和离散,无关乎现实世界的连续系统和离散系统。所谓教学建模就是用什么样的数学语言来描述模型,连续系统的数学模型通常可以用以下几种形式表示:微分方程、传递函数、状态空间表达式,这三中再式是可以相互转换的,其中又以状态空间表达式最有利于计算机计算。微分方程:一个连续系统可以表示成高阶微分方程,即d1tyd1t1yd1t2ydy以fl1-1+T-*+3.1ay=dtn1dt-12d产Zdf了dn-xud%C1r+C)7-H-Ci1-12dtn2X传递函数上式两边取拉普拉斯变换,假设y及U的各阶导数(包括零阶)的初值均为零,则有
5、sn(s)+a1sx1(s)dF白“ISy(S)+以Xy(S)=CISl-(S)+.siU(s)+qW(s)+%U(s)于是便得微分方程的传递函数描述形式如下:G(S)- y(s)_G一画一CS+CR?+q_S+cnS1t+s+以15+即状态空间表达式线性定常系统的状态空间表达式包括下列两个矩阵方程:Q)=AV(E)+&(E)(77)(7-2)y(z)=Cxt+Dut式(7-1)由n个一阶微分方程组成,称为状态方程;式(7-2)由I个线性代方程组称为输出方程因此获得如下的状态方程与输出方程(令a=1):离散模型假定一个系统的输入量、输出量及其内部状态量是时间的离散的数,即为一个时间序列:u(k
6、T),(y(kT),MkT),其中T为离散时间间隔,其实T也就是上文中的SamPIetime。NOte:再强调一次,这里的离散模型是指离散时间模型,与现实世界中的离散事件模型没有任何关系,在Simpowersystem中所讲的离散都是指时间上的离散,与我们在信号中学的那个离散概念没有关系。离散时间模型有差分方程、离散传递函数、权序列、离散状态空间模型等形式。差分方程差分方程的一般表达式为:y(n+)+aly(+-1)+axy(k)=1u(+-1)+bxu(k)同样差分方程可以转换成后面那些表达形式。3.连续模型的离散化正如7.1.连续系统VS离散系统中截图所示的那样,如何由一个连续模型得到它的
7、离散模型,(RMSWiSCreteRMSvalue),以及PoWergUi是通过什么方法将连续模型离散化的,即SimUlator是如何将微分方程转换成差分方程的。假设连续系统的状态方程为X=Ax-3TBu/现在人为地在系统的输入及输出端加上采样开关,同时为了使输入信号复员为原来的信号,在输入端还要加一个保持器,如图所示。现假定它为零阶保持器,即假定输入向量的所有分量在任意两个依次相连的采样瞬时为常值,比如,对第个采样周期U(t)F(nt),其中T为采样间隔。由采样定理可知,当采样频率WS和信号最大频率WmaX满足Ws2Wrax的条件时,可由采样后的信号唯一地确定原始信号。把采样后的离散信号通过
8、一个低通滤波器,即可实现信号的重构。值得注意的是,图所示的采样器和保持器实际上是不存在的,而是为了将式离散化而虚构的。下面对上式进行求解,对方程式两边进行拉普拉斯变换,得即4(S)-Ar(O)=AX(s)+BU(S)(Sl-4)X(S)=Ar(O)+BU(s)通过一系列的拉斯反变换和卷积,最终得到其差分方程(具体过程不用关心)x+r=1+J;D即少+j;%为小上公=OlTlxnTi+利(73因T+(tT)。仇7)猴、图7),向统称为系统的离散系数矩阵。在转换过程中引入了一个重要参数T,即采样间隔,也就是采样时间,不管是POWergUi还是其他离散模型,只要涉及到离散,都必然会涉及到SamPIe
9、time,如下图DtxrC.-R68a=,(W上式右端的积分,计算机是无法求出的,其几何意义为曲线f(t,y)在区间(七i,ti+1)上的面积。当(有,ti+1)充分小时,可用矩形面积来近似代替:“我JW=舒&,儿i其中h即为积分步长。NOte:在SimUIatOr仿真计算时,h实际为仿真时间间隔。因此可得下式:MG=M4)因此只要知道当前状态和步长,便可得到下一状态。其几何意义如下:分析其误差特性:由泰勒展式可得:M)=M+A)=x+hf(ti.y(ti)+j-(y),+“方2可知其截断误差5r9)lti+;是和步长h2成正比的,因此计算机在计算时,若要使近似积分精度更高,就要减小步长,但会
10、增加截断误差。改进的欧拉法(预测一校正法)对积分公式(3.1.2)式利用梯形面积公式计算其右端积分,得到x)=Ja)+勺/sJ+/(%“将上式写成递推差分格式为:yz=+g(+AJ从上式可以看出,在计算/+I中,需要知道fn+l,而fn+l=f(tn+l,fn+l)又依赖于y+l本身。因此要首先利用欧拉法计算每一个预估的yh,以此值代入原方程式计算fPn+l,最后利用下式求修正后的yPn+。所以改进的欧拉法可描述为预测v3=Mi+%,V校正X=+汐4JX)+/+1M+Jn-0.1.2.龙格一库塔法(rung-kuta)欧拉法是将./=Jr(E,y),Mf)=Mo)在4点附近的WJ+,经泰勒级数
11、展开并截去h2以后各项得到的一阶一步法,所以精度较低。如果将展开式多取几项以后截断,就得到精度较高的高阶数值解,但直接使用泰勒级数展开式要计算函数的高阶导数较难。龙格一库塔法是采用间接利用泰勒级数展开式的思路,即用在个点上的函数值尸的线性组合来代替尸的导数,然后按泰勒级数展开式确定其中的系数,以提高算法的阶数。这样既能避免计算函数的导数,同时又保证了计算精度。由于龙格一库塔法具有许多优点,故在许多仿真程序包中,它是一个最基本的算法之一。线性多步法以上所述的数值解法均为单步法。在计算中只要知道LrM,曲值可递推算出丁川。也就是说,根据初始条件可以递推计算出相继各时刻的y值,所以这种方法都可以自启
12、动。下面要介绍的是另一类算法,即多步法。用这类算法求解时,可能需要法及丁亿M在4,各时刻的值。显然多步法计算公式不能自启动,并且在计算过程中占用的内存较大,但可以提高计算精度和速度。例如:亚当斯一贝希霍斯显式多步法刚性(Stiff)系统解法所谓刚性系统,就是用来描叙这类系统的微分方程的解,往往是由多个时间常数共同作用的,其中某些小时间常数对解的影响往往是微乎其微但的确不可或缺的。例如下式是一个简单刚性系统微分方程的解:-r-IOOOr.Le-e*jty(t)=2e0120.0011.631.9980.011.980051.98009960.11.8096751.809675当时间较大时特征解-
13、IoOo几乎对方程不起任何作用,但开始时有不能忽略eT的影响,因此若前面介绍的计算机数值解法,为了保证解的稳定性在选取步长h时,必须保证IOOoh较小,也就是说步长h必须十分的小,这必然会增大计第次数,增大计算时间,而又因为在t一定大时,e00Ot几乎不起作用,因此这种增大次数又不会对计算精度有多大改善,就是说常规解法计算刚性系统是在做无用功。到目前为止,己提出不少解刚性方程的数值方法,基本上分为:显式公式,隐式公式和预测校正型。显示公式常用雷纳尔法隐式方程都是稳定的,故都适合于解描述刚性系统的方程组,如隐式的龙格一库塔法。但这种方法每计第一步都需要进行迭代,故计算量大,在工程上使用有一定困难。因此在解刚性方程时,常采用Rosenbrock提出的半隐式龙格一库塔法预测一校正型中常用的解刚性方程的方法是Gear算法5. SimUIator离散模型的仿真算法和步长的概念。离散模型的数学建模一般采用差分方程的方式,在madab中其仿真算法是采用discrete算法,就是根据SimUIatiOnSteP定时对离散模块进行更新(就是定时计算差分方程的意思)SolvrOptiOQBTyp:Vaxibl*tpSolvr:Diftcrt(nocontinuousstates