计算机仿真教案.pdf
计算机仿真第一章绪论1.1 仿真技术概述1.2 仿真研究的步骤L3系统仿真的特点1.1 仿真技术概述1.1.1 仿真的定义仿真是指用模型(物理模型或数学模型)代替实际系统进行实验和研究。1 .L 2仿真遵循的原则为使仿真的结果被证实是真实可靠的,也就是结果是可信的,仿真所遵循的基本原则是相似原理:几何相似、环境相似和性能相似。1 .1.3仿真的分类1按模型的性质分:物理仿真、数学仿真、数字物理混合仿真。物理仿真是以物理过程相似、几何尺寸相似以及环境条件相似为基础的仿真。优点是最大限度地反映系统的物理本质,具有直观性强和形象化的特点;缺点是构造物理模型费用高、周期长、技术复杂、实验条件限制多并易受环境影响、修改结构和参数困难。数字仿真是应用性能相似、环境相似的原理,按照真实系统的数学关系,构造系统的数学模型,并在数学模型基础上进行试验。其特点是经济、参数修改方便、周期短,但形式抽象、直观性差。数学物理混合仿真是在某些系统的研究中,把数学模型与物理模型或实物联接在一起进行实验的形式,称为数学物理混合仿真或半实物仿真。2实时仿真与非实时仿真按照仿真实验时间标尺T与实际系统的时间标尺t比例来分类,将T/t=l的仿真称为实时仿真,而T /t#l的仿真为非实时仿真。一般有实物介入的半实物仿真属于实时仿真,而无实物介入的纯计算机仿真为非实时仿真。3按计算机仿真采用的计算机分类用于计算机仿真的一套软硬件设备构成了仿真系统。根据仿真系统采用的计算机种类,可分为:模拟计算机仿真、数字计算机仿真和数字模拟混合仿真。1.2仿真研究的步骤仿真是研究系统普遍采用的方法。仿真步骤主要有:1建立系统的数学模型数学模型是系统仿真的研究依据,所以数学模型的准确性是十分重要的。2建立仿真模型一般的数学模型都不能直接编制程序并用计算机求解,通常必须把数学模型转换成适宜编程并能在计算机上运行的模型。也就是需要通过一定的算法对原系统的数学模型进行离散化处理,就连续系统而言,就是建立相应的差分方程再由计算机进行求解。3编制仿真程序对于非实时仿真,可用一般高级语言依据相应的算法编程。而对于实时仿真往往采用汇编语言与高级语言共用的方式进行编程。4程序调试、验证模型、实验结果分析并确定实验方案L3系统仿真的特点1仿真的实验性质仿真基本上是一种通过实验来研究系统的综合实验技术,具有一般实验的性质。不论是利用仿真技术进行系统分析还是设计,都必须通过一系统实验来完成。所建立的仿真模型应具有实验的性质,即模型与原型的功能及参数之间应有相似性和对应性2数字仿真与解析法解析法是应用数学推导、演绎去求解数学模型的方法,而数字仿真是通过计算机在数学模型上进行一系列实验来研究问题的方法。1解析法求解问题得出对问题的通解,而数字仿真的每一次运行只能给出在特定条件的数值解(犍星)。2用解析法所能求解的问题是有限的,而仿真适应范围广。3数字仿真与数值求解数字仿真是指建立系统的数学模型并在计算机上运行和分析的整个过程;数值求解则是仿真所采用的在计算机上求解数学模型的方法。第二章连续系统数值积分法的时域数字仿真2.1连续系统的数学模型2.2模型转化一实现问题2.3数值积分法2.4数值积分法的计算稳定性2.5数值积分法的选择原则2.6 一般数字仿真程序的主要功能和结构建立描述系统运动的数学模型是数字仿真的先决条件。模型的形式不止一种,它们各有特长和最适用的场合,彼此之间也有紧密的联系,要能灵活地运用数学模型分析具体问题,就要掌握这些数学工具的使用和彼此间的相互转换。2.1 连续系统的数学模型1连续系统的定义:凡是系统的输入量是时间t的连续函数,无论其输出量是连续单调函数或是单值或是多值的函数,均称这个系统是连续系统。我们所研究的系统是线性、定常的连续系统。2线性定常连续系统的数学模型一个连续系统的数学模型可以用微分方程、传递函数和状态空间表达式等形式表示。数学模型的形式(1)微分方程设连续系统的输出量)C),输出量为(D则系统用微分方程表示为也+%。+%*+.+*生+“dtn 1 dtn-dtn-2 I dt d-h d-2uc dt-+C1 dt-2(2)传递函数对微分方程等号两边逐项进行拉氏变换,并考虑初值为零时,可得到sYG)+6sTy G)+q 2 s ly +J。)=cas-U G)+c U(s)+C2S-3U(S)+-+C,IU(S)式 中 丫(5)一系统输出的拉氏变换U(s)一系统输入的拉氏变换系统的传递函数G(s)=8 2 =。.产+%严2+7+.+,:U(s)sn+atsl+a 2sli +-+an微分方程或传递函数是用系统的输入、输出之间的关系来描述系统的,表示了系统的外部特征,所以称其为外部模型。用微分方程表示的系统可以是非线性或线性系统,而对于传递函数表示的系统,只适用于单输入一单输出的线性定常系统,所以传递函数的模型表示有一定的局限性。(3)状态空间表达式状态空间表达式可以由两个途径获得,由微分方程、系统模拟图导出,本节将仅对微分方程推导作简单说明。设系统由不含输入量导数项的n阶微分方程表示。dy d-ly dn-2y dy-F C l.-+u?-+I F ci y=udt dt-2 d Q d t定义为n个状态变量为令X=y_._dy_x2-x1-dt.d2y.dy写出各个状态变量的一阶微分方程形式:x2X i=%=一囚乙 x.-i-anx+M将上述n 个一阶微分方程写成矩阵向量形式N=Ax+B”(状态方程)y=Cx(输出方程)(合称状态空间表达式)式中A,B,C 为系数矩阵,x 为状态变量向量。状态空间表达式也可由传递函数求得。由于状态空间表达式反映系统内部特性,又称为内部模型。实际上内外部模型可以互相转化,对于一个外部模型所对应的状态空间表达式,由于状态变量有不同的取法,因而可得到多种形式的状态空间表达式,这时多种状态空间表达式将对应同一个外部模型。也就是说对于一个确定的外部模型只对应一个确定的系统。2.2 模型转化一实现问题因为状态方程是一阶微分方程组,非常适宜用数字计算机求解,如果一个系统是用状态空间表达式描述的,便可直接编程求解。然后对于一些复杂的控制系统,其数学模型往往是通过实验得到的数据,经过辨识确定的,一般是用传递函数表示,为了便于数字仿真,必须把它们转换为状态空间表达式。把从已知系统传递函数去求相应的状态空间表达式的模型转化问题称为实现问题。1传递函数转换成状态空间表达式转换采用的方法是状态变量图法,这个方法是从系统模拟方法中出来的,所谓系统模拟方法是指用一些基本模拟单元,如加法器、积分器、放大器等去模拟用传递函数表示的复杂系统。用基本模拟单元模拟系统的传递函数得到的图形是系统模拟图,在系统模拟图上标上状态变量的图形是状态变量图,然后再求出状态空间表达式。举例说明,如何状态变量图法得到传递函数转换成的空间表达式。如初始条件为零的积分器,代表一个简单的系统。系统的传递函数为G(s)=l/s。该系统的模拟图如图1-a所示,设系统的状态变量为x,在积分器的输入标上状态变量微分比,在积分器的输出标上状态变量x,得到系统的状态变量图如1-b所示。”(s)1-.X V X1-a 1-b积分器的系统模拟图和状态变量图由 状 态 变 量 图 根 据 积 分 器 的 输 入、输 出 关 系 写 出:状 态 方 程*=和输出方程y=x,这两个方程表示了传递函数转换的状态空间表达式。对于带反馈的积分器,其传递函数为 G(s)=一s+a其 中。是反馈系数,它的状态变量图如下图2所示,其中 是放大器,Z是加法器。可见系统由积分器、加法器和放大器组成。由积分器输入、输出关系得到 fx=-ax+u1y=x由以上得到由系统模拟图到状态变量图并导出状态空间表达式的步骤如下:1根据系统的传递函数,画出系统模拟图,阶系统有 个积分器;2把积分器输出定为状态变量x,积分器输入处定为支,并分别标在积分器输入和输出处,得到状态变量图。3根据积分器输入、输出方程写出系统的状态方程及输出方程。对于高阶、复杂系统采用级联法、串联法和并联法得到代表实际系统传递函数的系统模拟图及相应的状态变量图,依据同样的方法求得状态空间表达式。通过下面的例子来说明这三种方法并推广到一般情况的分析。一个三阶系统的传递函数有以下三种形式:a)分子、分母为微分方程的多项式;b)将分子分母为微分方程的多项式化成几个一阶环节传递函数串联的乘积;c)将分子分母为微分方程的多项式化成几个一阶环节传递函数并联之和相应的三种形式的多项式为:分子、分母为微分方程的多项式G(s)=s+3s+2?+752+12.V多项式化成几个一阶环节传递函数串联的乘积G(s)s(s+3)(s+4)多项式化成几个一阶环节传递函数并联之和G(s)1/62/3 3/2-1-s+3 s+42状态空间表达式转换为传递函数已知系统状态空间表达式 候=_4+8“y =C x1)对上式两边取拉氏变换s X(s)-x(0)=A X(s)+8 U(s)1Y(s)=C X(s).22)在零初始条件下整理式1,并在等式两边乘以单位矩阵(s/-A)X(s)=B U(s)X(s)=(s/3将X(s)代入式2中,得到 G(s)=幺2=C(sl-4尸 BU(s)Y(s)=C(sI-A)-BU(s)系数矩阵A、B、C已知的情况下,根据上式就可求出状态空间表达式所对应的外部模型的传递函数。2.3数值积分法1数值积分的基本概念:已知一个一阶微分方程 才=/(r,x)应用数值积分法求解的思路是。从初值与开始,在一系列时刻tt-t0+h,t2=t1+h,.tn=tn_x+h,各点求未知解x”为,七,的近似解,h是计算步长,若X )对的各阶导数都存在。则x 在“f +人 时 的 解x(r 0+)用台劳级数表示为x(t0+/?)=尤 o)+hx(t0)+h2 X +.+hk x,)+.2!k2欧拉法一般形式为:x,=X,-1 +hf(tn_xxn_,)欧拉计算公式是一个递推差分方程欧拉数值积分方程的几何意义:折线法;矩形法。截断误差力2 力3 nkR=不/(,0,%)+,/(无,%)+./xo)3梯 形 法(二阶龙格一库塔法)台劳公式的前三项:x o +%)=x o)+/z x(%)+%2 X 2(;)推导出二阶龙格库塔计算公式:X|=x0+g(M+K2)-校正公式K =/Q o,Xo);K-,=/&+九 Xo +K-)预报公式如果对一个点的计算反复预报、校正数次,得到梯形法的计算公式预报 燔=七,+/矿仇,/)校正 2f2 fnn_mn _4P“2,P.“_式中一仿真系统的环节数;=%,”2,”了-各环节的输入信号;m 叫,加2,,血-外输入信号;y=S,2,,以7-各环节的输出信号,尸为外输入连接矩阵,P为环节连接矩阵。3.4非线性环节特性分析按环节离散化的仿真方法,很容易推广到具有典型非线性环节的非线性系统的数字仿真,这是因为按环节离散化的数字仿真中,每增加一个步长都要计算出所有环节的输出I和输入M,这样就可以在两个线性环节之间插入非线性环节的仿真程序,即 前-个 环 节 的 输 出x不是直接作为下一个环节的输入,而 是 先 将 送入非线性环节,非线性环节的输出再作为下一个与其相连接环节的输入/T,下页图就表示了两个线性环节中间加入了非线性环节。在实际系统中,非线性环节可能在线性环节的前面或后面,非线性环节的位置不同,其相应的计算方法也随之不同,但总的结果不变。在仿真程序中安排下列几种非线性环节。饱和非线性分段线性的非线性的特性。死区非线性这类特性在控制系统中是较多见的,如放大器的饱和、死区等。齿隙(间隙)非线性在有机械传动的系统中都存在着齿轮间隙(传动间隙)特性,这类特性同系统精度要求相比不能忽略时,就必须分析它对系统性能的影响。同样在电器产品中使用了磁性材料,由于磁性材料磁滞环也是同属于间隙类的非线性。继电及具有死区的继电非线性具有滞环的继电非线性具有死区和滞环的继电非线性第三章小结按环节离散化的数字仿真方法是将连续系统进行虚拟的离散化处理后,借助于离散系统的理论和方法,建立与连续系统模型等价的离散模型进行仿真计算的方法。该方法的物理意义明确,概念清晰直观,提示了数学仿真的本质,在时域用离散化状态方法求解差分方程。对于每一系统在计算步长确定后,离散系数矩阵(7),“(T),&(T),只要求出就不再改变,使求解计算特别简单,加快了仿真速度,在工程应用中,当系统环节数小于20时-,计算步长取力=1,即可满足精度要求。(1O5O)W,第 四 章 快 速 数 字 仿 真前面介绍了应用数值积分法和按环节离散化方法进行控制系统时域数字仿真的基本原理、方法和程序,对于控制系统的数字仿真是比较方便的。但是这些数字仿真程序的一个共同的特点是:为使仿真达到一定的精度,计算步长不能太大,因此使计算量加大,计算时间加长,仿真运行过程增加,不能适应缩短仿真时间的要求,这就提出快速性要求与精度之间的矛盾,对于实时仿真(在线仿真)的场合更加无法满足要求。在对高阶或复杂系统进行数字仿真,往往仿真实际运行时间需要数小时甚至几十小时 一,将使仿真无法进行或失去实际意义。而在有些控制仿真时;由于参数的限制,计算步长要取得极小,这将使数字仿真时间很长,尤其是如果系统中的两个环节的时间常数相差达几十倍或者上百倍时,如按小的时间常数来确定.计算步长,将会引起计算不稳定以致整个系统不稳定,仿真无法进行。在实时仿真中为达到快速性的要求,会不惜牺牲一定精度条件下进行。为了解决数字仿真速度的措施是:硬件措施一采用调整计算机。软件措施一采用执行速度快的语言,如汇编语言。算法措施一研究并采用适合于快速仿真的仿真算法。本章讲解快速仿真算法。一般情况下,在解决计算速度与精度这一对矛盾时,以计算速度为矛盾的主要方面,在满足计算稳定性及工程要求精度条件下,尽可能提高仿真计算速度,降低不必要的精度要求以满足速度要求。一般对快速仿真算法有两点基本要求减小每一步的计算量;算法具有良好的计算稳定性,在保证一定的仿真精度的情况下,允许采用较大的计算步长。4.1 替换法替换法是建立在相匹配原理基础上的快速仿真方法之一。1 相匹配原理相匹配的含意是指原系统的数学模型的动态的和静态特性是一致的。其定义是:若被仿真系统的数学模型是稳定的,且动态、静态特性一致。即若G(s)是稳定的,而仿真模型G(z)也应是稳定的,对于同一输入信号,由 G(z)求 得 的 输 出 y/T)与由G G)求 得 的 y 应具有相一致的时域特性或具有相一致的频率特性。一般快速仿真提高了对速度的要求,合理地降低了对精度的要求,因此如果能根据相匹配原理,直接对一个高阶连续系统的数学模型G(s)转换成与之匹配、每步计算量较小。允许采用较大步长且具有合理精度的仿真模型G(z),那么可利用求得差分方程进行数字仿真,以达到快速仿真的效果。本节介绍的替换法及下节的根匹配法都是根据相匹配原理由G(z)直接导出G G)的变换方法。2替换法原理一般情况下,由 G(s)转换成G(z)采用下面两种方法00由G(s)求 g(f),然后 按 公 式 G(z)=Z g(T)/求 出 G(z);”=0将G(s)展开成部分形式,然后通过查变换表得到G(z)。对于高阶系统,采用这两种变换方法都是困难和繁杂的,所以应该寻找一个由G G)直接转换成G(z)的简便方法。3替换法步骤采用双线性变换法求仿真模型的具体步骤如下:设已知一线性系统的传递函数为G(s)as+bs(s +c)(1)将 G(浒 s 按s =2(上H)T 1+/代入上式,可得GT 1+z-i,2I、2/2T(-r)+(-r)cT+z T +z整理化简得G(z)2aT+bT2-2bT2z-+(-aT+bT2)z24 +2 cT 8 茶;(4 2c T*(2)将丫(外=6(7 仁)转换成差分方程y()-(2aT+bT2)u(n)-2bT2+w(n-l)+(bT2-2aT)u(n-2)+8 y(-1)-(4-2cT)y(n-2)4.2根匹配法根匹配快速数字仿真是根据相匹配原理提出的又一种常用的快速数字仿真方法。1 根匹配法原理根匹配法快速数字仿真的原理与替换法有相似之处,但也有不同之处。相似之处是它也是将系统的传递函数G(s)转换成相似z域传递函%仁),再转换成差分方程进行快速数字仿真,不同之处是它不采用近似公式使 转换成,而是根据连续系统的动态、静态特性由传递函数的零、极点分布及增益所确定,采样系统的动态、静态特性由传递函数的零、极点分布及增益所确定。如果根据匹配原理,找到一种由G(s招零、极 点 到G(z油零、极点的简单映射关系z =/G),然后根据其特性确定其增益,则可方便地由G(s)求得与之等价的G(z)。这就是根匹配的思想,也就是说根匹配的思想就是使G(z)的根轨迹与G(s)的根轨迹相匹配,从而使它们的动、静态特性相同。4.3增广矩阵法1增广矩阵的基本思想增广矩阵法是按环节离散化数字仿真方法的改进。按环节离散化的方法是非常实用的仿真方法,但仿真精度不高,产生误差的原因有两条:在离散化过程中,采用了虚拟采样开关和保持器,引起输入信号的失真;对于高阶系统的系数矩阵,用解析法计算比较繁琐,需要用数值计算方法,从而引起截断误差,若为方便计算这些阶系统的系数矩阵,按一阶环节计算,但又会产生增加环节数使误差增大。上述原因影响到采样周期T的选取,不能取太大。如何使采样周期适当加大又不引起误差加大这个问题?齐次矩阵方程的离散化,不需要加入虚拟的采样开关和保持器,由此引入的误差自然就不存在了,同时也消除了采用数值计算方法计算产生的计算误差。误差的来源仅是采用数值方法计算产生的截断误差及计算机产生的舍入误差。这时T取得较大精度也可以得到保证。然而一般系统的状态方程都是非齐次的,应设法将非齐次项,即输入变量“增广”成为新的状态向量(即增广状态变量),使原方程变成增广形式的齐次状态方程。2典型输入信号的增广矩阵阶跃输入信号设“(,)=M()x l(f),I%为阶跃幅值,定义“(f)为n+1个状态变量则:X +l(f)=)=M o X l(f),%(f)=0 ,%(0)=劭根据上式得到增广后的状态方程和输出方程为BTX,(/)0|_ 瑞+)初始条件斜波输入指数函数信号输入设 。)=与 ,定义第n+1 个状态变量为:七,+1)=(。=0 0-且弓+1 )=-(=一%“+1),初值为 Z*i(O)=o根据上式得到增广后的状态方程和输出方程为初始条件3增广矩阵法步骤对于如上所述的单输入、单输出的线性定常系统,采用增广矩阵法求取仿真模型的步骤如下:1)将非齐次线性方程式转化成齐次线性方程2)e 打矩阵的数值计算3)将由上步得到的指数矩阵工一e x ,即可得到与增广状态An+1 匕人 方程对应的离散化状态方程。4 增广矩阵法步长的选择一般来说,步长选择时,步长取得小一些精度可提高,对状态转移矩阵e具有这样的性质:产 丁”丁小e4AT=e2AT9e2AT对于一般情况 屋 =四 eT K=i+j如果有一系统的瞬态响应曲线,过渡过程曲线有两部分组成:即大特征值的快变部分和小特征值的慢变部分。在过渡过程的起始段,要求有较多的采样点以保证快变的准确,而在经过一段时间之后,快变部分结束,主要是慢变部分影响过渡过程,采样点可取得少些,以减少仿真计算时一间,提高仿真速度。对于这种问题,取其步长变化规律为h=2T、m 0,1,2,-*这样,计算步长沿着时间轴加倍变化,称 为“蛙 跳”式,步长按h,2 h,4 h,变化。第五章采样控制系统的数字仿真5.1采样控制系统的数字仿真由于数字计算机的飞跃发展和不断完善,在很多系统中,都采用计算机来完成控制器的功能,此外有些系统为了提高控制精度通常采用数字式控制装置,因此系统中信号传递过程同连续系统在本质上有很大不同,典型的采样控制系统如图:r(t)y(t)采样控制系统图当要求数字控制器或计算机来控制被控制对象的,加到控制器或计算机上的偏差信号et以及控制器或计算机输出的控制信号都经过采样开关变成了离散信号e*(f)及“*。),即对时间来说控制器的输入输出信号都不是连续的而是断续的。通常采样控制系统的控制对象的特性是连续的,而输入和输出数字控制器的信号是离散的一类系统称采样控制系统,而用计算机或数字控制器来进行控制的系统就属于这类系统。1、采样控制系统工作的特点在信号传递过程中,既有时间连续信号(对象部分)又有离散信号(数字控制器或计算机的输入和输出)。系统工作在真实的离散状态下,系统有自己的工作节拍,按规定的采样周期进行采样,只有在采样时.刻,数字控制器。Z 才有输出,完成一次控制作用。2、采样控制系统仿真前应处理的问题以上两点是采样系统区别硒犊系统的重要特点,从而形成了采样控制系统数字仿真不同于连续系统的特殊问题。要对采样控制系统进行数字仿真,首先必须要处理好这两个特殊问题。对 于 与(5),G o(s)和 O(z)两部分分别加以处理对于连续部分,因为系统实际已处于离散状态,所以可用第三章介绍的按环节离散相似的方法。根据给出保持器G J s 的特性,建立连续部分的离散化状态或脉冲传递函数及其相应的差分方程。对于离散部分,设-I 一 +.一记后n in由它可直接求得相应的差分方程。两部分的仿真模型都能以差分方程的形式给出。由于任何一种连续系统的仿真算法,都必须按选取的计算步长T进行计算,而采样控制系统又有自己固定的采样周期T,T与 T之间应S S保持什么关系才能协调离散部分5z 与连续部分G(5),G o 的计算。对于采样控制系统仿真时的计算步长选取可发下面两种方法:1 如果系统的连续部分整体传递Z G(5),GO(5)比较容易求出,月.仿真只需观察量)团,不需观察中间状态变量,那末可直接由Z G (s),G o(s)求出传递函数及其相应的差分方程。因为此时系统还未引入新而误差,计算步长可取得较大一些,一般取T,与 T相等,并按r,=T分别进行两部分的仿真计算。如果Z G 7,G),G o(s)不太容易求得或者不仅要求出输出量)团,还要,求计算中间向其它变量,或者不仅要求出在采样时刻的输出量,还要求出相邻两个采样点之间的输出响应,或被控对象中有非线性特性时则在数字仿真前必须将连续部分分成几个部分,在每个分出的连续部分前加上虚拟的采样器及保持器,为了保证计算有定精度,这些虚拟的采样器的采样周期T (计算步长)不能选得过大,一般取 此时就应该对连续部分与离散部分分别计算,不能用同一采样周期,通常取T使,其中N为一个正整数,在对整个采样控制系统作仿真计算时,仿真程序将分成两个循环,内层针对连续部分,外层针对离散部分。5.2采样控制系统的数字控制设计采样控制系统的数字控制器G(z)的设计方法,一般有两种,一种是模拟化设计方法,该法是根据连续系统控制理论得出的控制规律,先进行离散化获取计算机能实现的控制算式,然后在计算机上编程运行。我们将采用比例、积分、微分控制即PI D调节器控制规律的数字化方法。另一种是离散化设计方法,又称直接设计法,该法是根据系统的性能要求,运用离散系统控制理论,直接进行数字控制器的设计。1模拟控制器数字化设计1)PI D控制器控制规律数字化设计连续系统PI D控制器的控制规律为必)=Kp 卬)+,()+Td 与式中“、e(f分别为控制器的输入、输出信号。为了用计算机实现PI D控制规律,要将上式转换成离散化形式,若计算时采样周期为T,初始时刻从零开始,第n次采样输入e“,控制器输出 乐 则离散化PI D控制规律公式为:4 A=0 /2)PI D控制器控制规律的脉冲传递函数。仁 的表达式对采样控制系统进行分析通常采用z变换法,因此需要推导PI D控制规律的脉冲传递函数,也即要求出PI D控制规律的Z)z 表达式。2、离散化设计数字控制器无稳态误差最少拍系统数字控制器的设计最少波无纹波数字控制器设计5.3采样控制系统的数字仿真(一)根据所要求获得数据的不同,采样控制系统可以有不同的仿真方法。本节讨论只需求采样时刻响应的情况。对于本节所讨论的情况,计算比较简单。例如对于只要求得到采样时刻的输出,则根据系统的闭环脉冲传递函数,求出系统的差分方程,并用计算机求解。采样控制系统中的(z)l+dZ-+-+dnZ-n或)=y=即+“/+%厂”R(z)1 +向z 1H-这两种形式可写成差分方程,对于上式有y(n)=-h y(n-l)-b2y(n-2)-bk y(n-仁)+ar(n)+ar(n-1)H-F t zwlr(n-wl)其中r是输入量,y为输出量。求解上式就得到采样时刻的输出。当需要求出数字控制器的输入和输出信号时,可分别求出。(z)及连续部分G(z)的差分方程。对于每一个响应点,这两部分各计算一次,然后对控制器的输入信号进行综合,以便得到下一次计算控制器的输入。如此循环迭代下去,便可逐步求出各采样时刻的响应。以上两种算法所得的结果是相同的,但后一算法的运算时间要长一些。并且这两种算法都归结为求解高阶差分方程。由上页的第二个公式可见,在解此差分方程时,要用到计算时刻”以前的若干个采样时刻的输出值V(-1),尸(-2),少(-占),和输入值r(),-1),*-2),.,r(/-nl)o为此可在内存中设置若干个存贮单元,将这些数据存贮起来,以便在计算时使用。5.4采样控制系统的数字仿真(二)本节讨论控制器与连续部分分别计算的仿真方法,连续部分的计算采用第三章介绍的按环节离散化的算法。这种仿真系统的通用性较强,它不仅可得到控制器的信息,而且还可以得到对象中状态变量的响应,并能用于对象中具有典型非线性环节的非线性系统的仿真。采样控制系统的控制对象是一个连续系统,由于保持器是零阶的,所以在采样时刻之间的输入(即保持器的输出)为常数。因此采样时刻之间系统的输出,可以将对象视作输入为阶跃的连续系统来计算。这样连续部分的计算就可以应用前面的离散相似法,但注意到连续部分的步长选择应满足采样周期是计算步长整数倍这一条件。因为只有这样才能在该周期的最后一步达到下一周期的起点,最后一步的输出和系统的输入比较,便得到了下一周期计算控制器的输入。另外需要指出的是:当连续部分的仿真模型只有一个线性环节时,因为输入为阶跃,而环节的离散化又是用零阶保持器,故仿真模型是无截断误差的,其计算步长在保证能描绘系统响应的前提下可以选大一些。而当连续部分的仿真模型是由几个线性环节构成时,其离散模型是有截断误差的,故步长的选择需考虑精度的要求。由此可见,在我们构成连续部分的仿真模型时,只要有典型环节可以选用,应尽可能构成一个环节。连续系统频率特性及根轨迹分析法的数字仿真概述在经典控制理论中,频率特性及根轨迹分析法是分析和设计连续系统的基本方法。众所周知,分析自动控制系统的工作性能,最直观的方法是求出它的时域响应特性。但是高阶控制系统的时域特性是很难用分析方法确定的,而频域中的一些图解法可以比较方便地用于控制系统的分析和设计。用频率特性方法作出了分析和设计之后,再根据时域和频域之间的关系就能确定系统的时域响应特性。用频率特性的方法分析和设计有以卜优点不需要求解闭环系统的特征方程,只要用一些较为简单的图解法就可以研究它的绝对稳定性和相对稳定性系统的频率特性可以用实验方法测出,这对于某些难以确定动态方程的系统或环节是非常有用的;用频率法设计系统可忽略去噪音的影响,在规定的程度之内,频率法还可以用于某些非线性系统。要得到高阶控制系统时域响应特性,就需要直接求解高阶系统的特征方程的根,也就是闭环系统传递函数的极点。当闭环系统传递函数分母的阶次大于三次时,求解特征方程的根是非常困难的。为了避免直接求解高阶特征方程的根的困难,通过实践提出了一种图解求根法,即根轨迹法。根轨迹是指当系统的某一个(或几个)参数从 变化到 时,闭环特征方程的根在根平面上描绘的一些曲线,应用这些曲线,可以根据某个参数确定相应的特征根。要根轨迹法中,通常取系统的开环增益K (又称开环系统的放大倍数)作为可变参数。由于根轨迹法是以K为可变参数,根据开环系统的零、极点画出来的,因而它能指出开环系统零、极点与闭环系统的极点(特征根)之间的关系。利用根轨迹可以分析系统参数和结构已定的闭环系统的时域响应特性,以及参数变化对时域响应特性的影响,而且可以根据对时域响应特性的要求确定可变参数和调整开环系统的零、极点的位置,并改变它们的个数。因此根轨迹法可用于解决线性系统的分析和综合问题。第 六 章 面 向 对 象 技 术、图像技术第一节面向对象技术的基本原理1面向对象技术的基本原则对一个系统的认识是一个渐近过程,是在继承了以往有关知识的基础上,多次迭代往复而逐步深化的。传统的用于分析、设计和实现一个系统的过程和方法要先确定前一步,才能进行后一步。因此,当越接近完成系统的后期时,若要对系统前期的工作作修改就越困难。事实上,在某些系统中,有些需求只有在实现后期才能确定,有些差错也只有在后期才能发现。因而,当系统越大,问题越复杂时,由于这种对系统的认识过程和对系统的设计(或实现)过程不一致所引起的困扰就越大。面向对象技术在方法学上的出发点和追求的基本原则是:使描述问题的空间和解决问题空间在结构上尽可能保持一致。计算机解决问题时需要用程序设计语言对问题的求解加以描述,软件是问题求解的一种形式,易于被人理解、维护和修改;此外,如果能按人们通常的思维形式来建立问题域的模型则可以提高公共问题域中的软件模块化和重用的可能性。因此,按人们通常的思维方式建立问题域的模型,设计尽可能自然地体现求解方法的软件,就是面向对象技术基本原则的具体表述。2面向对象技术的基本特征面向对象的基本方法学认为:客观世界是由各种各样的对象组成的,每种对象都有各自的内部状态和运动规律,不同对象间的相互作用和联系就构成了各种不同的系统,构成了我们所面对的客观世界。在面向对象技术中,有如下一些主要特征:从问题域中客观存在的事物出发来构造系统,并作为系统的基本构成单位。事物的内部状态(数据来表达的特征)用对象的属性来表示,事物的运动规律(事物行为)用对象的方法来表示。对象的属性与方法紧密结合为一体,成为一个独立的实体,对外屏蔽其内部细节(称作封装)事物能归类,与此对应,把具有相同属性和相同方法的对象归为一类,类是这些对象的抽象描述,每个对象是它的类的一个实例。通过在不同程度上运用抽象的原则,可以得到较一般 的 类(基类)和较特殊的类(派生类)。派生类继承基类的属性和方法,面向对象技术支持对这种继承关系的描述与实现,从而简化系统的构造过程及其文档。复杂的对象可以用简单的对象作为其构成部分(聚合)通过关联表达对象之间的静态关系。通过以上特征可以看出,在以面向对象技术开发的系统中,系统的基本构成单位是类的实例对象。这些对象对应着问题域中的各个事物,它们的内部属性与方法描述了事物的内部状态和运动规律。对象类之间的继承关系,聚合关系,消息和关联表达了问题域中事物之间实际存在的各种关系。因此,无论是系统的构成成分,还是通过这些成分之间的关系而体现的系统结构,都可直接地映射问题域。3面向对象技术(O b j e c t-o r i e c t e d)的定义:用来描述一些基于下述概念的东西:封装、对象、消息传送、类、继承、多态、动态聚束;用来描述一种把软件组织成对象集合的软件开发策略,对象中包括数据和操作。4面向对象技术的组成部分面向对象技术作为一种软件开发方法,应该包含以下几个方面:第一,面向对象技术应首先明确给出面向对象的基本概念。这些概念是整个面向对象技术的基础,面向对象技术的其他部分是建立在这些概念基础之上的。第二,面向对象技术要给出一套建立模型的技术。建模技术本身有两部分组成。一部分是表示方法,它能使分析人员、设计人员、编程人员、管理人员以及用户彼此沟通。另一部分是这种技术的语义学。语义学可用自然语言来描述,也可用形式语言来描述。第三,面向对象技术还应给出具体的处理过程。包括对软件生命周期各阶段的描述,对各个阶段的进一步细化,以及在生命周期各阶段如何运用建模技术和面向对象语言来完成各阶段的任务。第二节 面向对象的基本概念1对象:客观世界的问题都是由客观世界的实体及实体间的相互关系构成的,我们把客观世界的实体称之为问题空间(问题域)的对象。对象是客观世界中的一个实体,它具有以下特性:有一个名字以区别于其它对象;有一个状态用来描述它的某些特征;有一组操作,每一个操作决定对象的一种功能或行为;对象的操作可分为两类:一类是自身所承受的操作,一类是施加于其它对象的操作。2消息对象之间并不是彼此孤立的,它们之间存在着联系,在面向对象系统中,对象之间的联系是通过消息来传递的。消息是对象之间相互请求或相互协作的途径,是要求某个对象执行其中某个功能操作的规格的说明。消息具有以下性质:同一对象可接收不同形式、不同内容的多个消息,产生不同响应;相同形式的消息可以送往不同的对象,不 同 的 对 象 可 有 不 同 解释,并做出不同的响应;相同形式的消息可以不考虑具体的接收者,对象可以响应消息,也可以对消息不予理会,对消息的响应并不是必须的。消息的分类:可以返回对象的内部状态的消息;可以改变对象的内部状态的消息;可以做一些特定的操作,改变系统状态的消息。3类在面向对象技术中,类的定义是:类是具有相同属性和方法的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和方法两个主要部分。一个类实质上定义的是一种对象类型,它描述了属于该类型的所有对象的性质。4.抽象抽象是从事物中舍弃个别的、非本质的特征,抽取共同的、本质的特征的过程,它是形成概念的必要手段。抽象除去了客观世界对象中不重要的环节,使得只有描述对象的合适的特征才保留下来。抽象的目的是强调相对某种目的而言的重要的性质而忽略那些无关紧要的性质。抽象是面向对象技术中使用最广泛的原则,例如,系统中的对象是客观世界中事物的抽象;类是对象的抽象,从编程的角度看也是一种抽象数据类型;属性是事物内部状态的抽象,方 法(操作)是事物行为的抽象。5 封装封装是把对象的属性和方法结合为一个不可分的部分,并尽可能隐蔽对象的内部细节。封装是一种信息隐蔽技术,它必须满足以下条件:一个清楚的边界,所有对象内部的组件的范围被限定在这个边界内;一个接口中,这个接口描述这个对象和其它对象之间的相互作用;受保护的内部,这个实现给出了由软件对象提供的功能的细节,实现细节不能在定义这个对象的类的外面访问。与封装密切相差的一个术语是可见性。它是指对象的属性和方法允许对象外部存取引用的程度。可见性的代价是放弃封装所带来的好处。6 继承继承所表达的就是一种对象类之间的相互关系,它使得某类对象可以继承另外一类对象的特征和能力。若类间具有继承关系,则它们之间应具有下列几个特征:类间具有共享特征(包括属性和具体实现的共享);类间具有不同部分或新增部分(包括非共享的属性和具体实现);类间具有层次结构。7 多态所谓多态是指一个名字可具有多种语义。对象的多态性是指在基类中定义的属性或方法被派生类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或方法名在基类及其各个派生类中具有不同的词义。8永久对象永久对象是当前面向对象领域的一个技术热点。所谓永久对象,就是生存期可以超越程序的执行时间而长期存在的对象。目前大多数商品化的面向对象编程语言是不支持永久对象的。程序中定义的对象,其生存期都不超过程序的运行时间。即当程序运行结束时.,它所定义的对象也都消失T o如果一个应用要求把某对象的属性信息长期保存,并能在下一次程序运行时加以恢复,就只好借助文件系统或数据库存管理系统来实现。9主动对象主动对象的概念以及它的作用与意义最近几年开始受到重视。随着面向对象技术应用领域的扩大,当人们用面向对象技术所开发的系统中具有多个并发执行的任务时,便会感到,如不确立主动对象的概念及其表示方法,则面向对象技术的表达能力具有明显的缺陷。用面向对象技术开发一个有多任务并发执行的系统时,如果仅有被动概念,则很难描述系统中的多个任务。为此,引入了主动对象的概念一一主动对象是一组属性和一组方法的封装体,其中至少有一个方法不需要接收消息就能主动执行(称作主动方法)。第三节面向对象的建模技术1概述完整的面向对象技术包含了面向对象分析、设计、实现、测试、维护等多个