第四章-控制系统数字仿真-课件_第1页
第四章-控制系统数字仿真-课件_第2页
第四章-控制系统数字仿真-课件_第3页
第四章-控制系统数字仿真-课件_第4页
第四章-控制系统数字仿真-课件_第5页
已阅读5页,还剩181页未读 继续免费阅读

下载本文档

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

文档简介

1、 返回总目录 第4章控制系统数字仿真 数字仿真是在数字机上建立系统模型并利用模型做实验,所以,进行数字仿真首先要建立描述被仿真系统的数学模型,并将此模型转换成计算机可接受的、与原模型等价的仿真模型,然后编制程序,使模型在计算机上运行。本章主要讲述数字仿真的基本理论与方法。连续系统数值积分方法 连续系统的数学模型,一般都能以微分方程的形式给出,所以,连续系统数学仿真算法问题通常可归结为如何用计算机来求解微分方程的问题。数值积分法是解决该问题的重要方法之一,例如已知(4.1) 求 连续系统数值积分方法解:对式(4.1)两边积分,则当 时 令 则 (4.2)数值积分法是解决在已知初值的情况下,对 进

2、行近似积分,对 进行数值求解的方法,在数学上称为微分方程初值问题的数值方法。连续系统数值积分方法一.欧拉法表示函数 在 和 相邻两次采样时刻之间的积分。若将此定积分中的 近似看成常数,即 则 由式(4.2)得即(4.3) 连续系统数值积分方法式中, 为计算步距。 ,1,2, 式为(4.3)著名的欧拉积分公式。欧拉公式计算简单,但精度较低,其原因是将 看成常数 ,从而用矩形面积代替准确的曲面面积 ,形成了较大的误差面积。为了提高计算精度产生了梯形法。连续系统数值积分方法二. 梯形法梯形法是用梯形的面积近似代替定积分 ,即 式中, ; ,所以 即 (4.4) 连续系统数值积分方法从式(4.4)可以

3、看出,用梯形法进行数值积分,会出现一个问题:在计算 时,先要用去计算式(4.4)右端的 ,而此时 还未求出, 显然,这是不可能实现的。所以,一般采用欧拉公式先预报一个 然后将预报 的代入式(4.4)进行校正,求出 ,即 (4.5) 式中, 一般称式(4.5)为预报校正公式。显然,梯形法比欧拉法精度要高,同时,每前进一个步距,计算工作量也比欧拉法约多一倍。连续系统数值积分方法 三. 龙格-库塔法对于微分方程式(4.1),若在其初值附近展开成泰勒级数,并只取前三项,则有(4.6)设式(4.1)的解可以写成如下形式(4.7)连续系统数值积分方法将用 二元函数泰勒级数展开式展开,并只取前三项,则将 、

4、 代入式(4.7) (4.8)比较式(4.6)与式(4.8),得连续系统数值积分方法 三个方程中有四个未知数,因而解不是唯一的。所以,限定 ,则求出 。代入式(4.7)得写成一般形式(4.9) 连续系统数值积分方法 若在 的假设下, 时的准确解为 , 为用式(4.9)求得的近似解,则它们之差 ,称为此时计算的截断误差。 式(4.6)只取到泰勒级数展开式中 的二阶导数项,略去了三阶以上高阶导数项。为纪念提出该方法的德国数学家C. Runge和M. W .Kutta,称这种计算方法为二阶龙格-库塔法。其截断误差正比于步长 的三次方,同理若在式(4.6)的计算中,取到的 三阶或四阶导数项,则有相应的

5、三阶或四阶龙格-库塔法,相应的截断误差也应正比于 或 。连续系统数值积分方法 一般在计算精度要求较高的情况下,多使用四阶龙格-库塔法。其计算公式为(4.10) 连续系统数值积分方法 将欧拉公式与 的泰勒级数展开式比较可知,欧拉公式即泰勒级数展开式只取前两项。而将预报校正公式与二阶龙格库塔公式比较,发现它们完全是一样的。这样,通过对龙格库塔法的介绍,可将前面讲的几种数值积分方法统一起来,都可看成是 在初值附近展开成泰勒级数所产生的,只是其泰勒级数所取项数的多少不同。欧拉法只取前两项,梯形法与二阶龙格库塔法取了前三项,四阶龙格库塔法取了前五项。从理论上说,取的项数越多,计算精度越高,但相应的计算公

6、式更复杂,计算工作量也更大。连续系统数值积分方法 以上介绍的几种数值积分公式,有一个共同的特点,在计算 时只用到 ,而不直接用 , , 各项的值,即在本次计算中,仅仅用到前一次的计算结果,而不需要利用更前面各步的结果。这类计算方法称为单步法。单步法运算有下列优点:(1) 需要存储的数据量少,占用的存储空间少。(2) 只需要知道初值,就可启动递推公式进行运算,具有这种能力的计算方法称为自启动的计算方法。(3) 容易实现变步长运算。与单步法相对应的还有一类数值积分方法,在它的数值积分公式中,本次计算不仅利用前一次的计算结果,还必须利用更前面各次结果,此类方法称为多步法。如四阶阿达姆斯(Adams)

7、积分公式连续系统数值积分方法 即是多步法计算公式。多步法与单步法相比,欲达到相同精度,计算工作量较小,从式(4.11)和四阶龙格库塔式(4.10)的比较中可明显看出。在计算 时,式(4.11)只需计算 ,而 , , 已由前三次计算求出,而四阶龙格库塔公式每前进一步都要计算 , , , ,相当于四次计算右端函数 ,因此在相同的条件下多步法比单步法要快。(4.11)连续系统数值积分方法 四. 微分方程数值积分的矩阵分析方法前面介绍的数值积分公式,都是以求解单个典型微分方程 进行介绍的。而工程实际系统中大量的仿真对象是以一阶微分方程组或矩阵微分方程的形式给出,如 或 连续系统数值积分方法式中, 在这

8、种情况下,各数值积分公式显然应采用相应的矩阵形式 连续系统数值积分方法(1) 欧拉公式(4.12)(2) 梯形公式(4.13) (3) 二阶龙格-库塔公式(4.14)连续系统数值积分方法(4) 四阶龙格-库塔公式(4.15)连续系统数值积分方法 连续系统数值积分方法对一个 维向量 ,每前进一个步距 ,至少要求 个 之值。对常见的线性定常系统 ,四阶龙格库塔法的四个可表示为 连续系统数值积分方法 连续系统数值积分方法 对 维向量 ,取 是有四个分量的一维矢量,其中 再取 为一零向量,其中 , 。 则四个求的公式可合并为一个公式(4.16) 在以后介绍的程序中,四阶龙格库塔法的计算将建立在上式的基

9、础上。连续系统数值积分方法 五. 数值积分方法的计算稳定性 这里所说的数值积分方法的计算稳定性,在数学上是指微分方程初值问题算法的数值稳定性或计算稳定性。由于在系统仿真运算阶段大量求解微分方程问题时,实际上是用不定数值积分方法求解微分方程的问题。如欧拉法就是在已知 时,用 完成对微分方程 的求解。习惯上将这些方法称为数值方法。从稳定性理论中,可以知道如何从系统的微分方程或传递函数去判断该系统的稳定性。那么,对于一个稳定的连续系统,当用某数值积分方法进行仿真计算时,是否仍然稳定呢?先看下面的例子。连续系统数值积分方法 【例4.1】 已知微分方程其精确解为 取 ,用欧拉法和四阶龙格-库塔法计算 时

10、的 :连续系统数值积分方法 欧拉法 四阶龙格-库塔法 精确解 连续系统数值积分方法 显然,此时数值积分法计算的结果是错误的。为什么会出现这种情况呢?这是因为数值积分方法只是一种近似方法,它在反复的递推运算中将引入误差。若误差的积累越来越大,将使计算出现不稳定,从而得出错误的结果。所以,原系统的稳定性与数值积分法计算的稳定性是不同的两个概念。前者用原系统的微分方程、传递函数来讨论,后者用逼近微分方程的差分方程来讨论。由于选用的数值积分法不同,即使对同一系统,差分方程也各不相同,稳定性也各不一样。如何分析数值积分法的数值计算稳定性呢?一般来讲,对高阶微分方程的数值计算稳定性作全面分析是比较困难的,

11、通常用简单的一阶微分方程来考查其相应差分方程的计算稳定性。连续系统数值积分方法 微分方程 (4.17) 称测试方程。据稳定性理论,当其特征方程的根在平面的左半平面,即根的实部 时,则原系统稳定。此时相应的数值积分法的计算稳定性如何呢? 连续系统数值积分方法 1. 欧拉法的计算稳定性对式(4.17)按欧拉公式计算有(4.18) 用式(4.18)计算的 ,并不是 时的真值,而只是真值包含了各种误差的近似值。随着递推次数的增加,此误差是否会不断扩大,使 完全不能表示此时的真值呢?这决定了此差分方程计算的稳定性。为简化问题的讨论,假设只在 时刻有误差引入,这样 的误差 仅由 的误差引起,所以(4.19

12、) 连续系统数值积分方法 式(4.19)减式(4.18)得误差方程同理 当 ,则 ,表明此算法若在计算中的某步引入了误差,随着计算步数的增加,这个误差将逐渐扩大,以致差分方程的解完全失真。连续系统数值积分方法 反之,当 ,则 随着计算步数的增加,误差 逐渐减小并趋于零或有界,在这种情况下,称此差分方程的算法是计算稳定的。显然,合理的选择步长使其满足 ,是保证欧拉法计算稳定的重要条件。连续系统数值积分方法 2. 梯形法的计算稳定性对测试方程按梯形法计算公式,则 (4.20) 所以 (4.21)连续系统数值积分方法 若原系统稳定,则根据稳定性理论, 应是小于零的实数。对式(4.21), 取任何正数

13、都可以保证下式成立:所以 这就表明,某步计算引入的误差,将随着计算步数的增加而减小。也就是说,梯形法的计算在任何步长下都是稳定的,是一种绝对稳定的计算方法。连续系统数值积分方法 六. 数值方法的计算精度、速度、稳定性与步距的关系从上面的分析可以看出,一般数值积分方法的稳定性与所选用的计算步距有关。各种数值积分方法的差分方程是对原微分方程的近似逼近,存在明显的截断误差。且计算机的字长有限,计算只能限制在有限位,将引入舍入误差。这些误差都和计算步距密切相关,所以计算步距是影响计算精度、速度和稳定性的重要因素。若步距取得较大,截断误差就会相应地增大;反之,若步距取得较小,截断误差就会减小,但在给定时

14、间范围内,计算次数必然增加,使舍入误差积累,相应地增加。 连续系统数值积分方法 这两种误差与步距的关系可用图4.1表示。从图中可知,两种误差对步距的要求是矛盾的,但两者之和有一个最小值,步距最好能选在最小值。然而,实际要做到这一点是很困难的。一般只能根据经验确定一个 附近的合理步长区,如可将 限制在系统的最小时间常数数量级上。图4.1 误差与步距关系控制系统的结构及其描述 一. 控制系统的典型结构形式 1. 单输入-单输出开环控制结构控制系统结构如图4.2所示。其中控制器、控制对象等环节可用第3章所述任何一种数学模型描述, 为参考输入量, 为控制量, 为输出量。图4.2 单输入-单输出开环控制

15、结构图控制系统的结构及其描述 2. 单输入-单输出前馈控制结构控制系统结构如图4.3所示。这种结构形式本身仍为开环控制形式,但为补偿输入引起的误差,在已知误差变化规律的情况下,加入补偿环节,对误差作提前修正。补偿环节同样可用任一种数学模型描述。图4.3 单输入-单输出前馈控制结构图控制系统的结构及其描述 3. 单输入单输出闭环控制结构这是控制系统中应用最广泛的控制结构形式,大多数控制系统为保证其控制精度、性能指标要求,都采用这种闭环负反馈形式,如图4.4所示。该系统控制原理主要是根据偏差(或误差)确定控制量,使输出量按希望的精度变化,减小或消除偏差,即所谓的偏差控制系统。图中 为偏差量(或误差

16、量), 为反馈量。反馈环节可用任一种数学模型描述。当反馈为单位反馈时,有则偏差控制系统的结构及其描述 图4.4 单输入-单输出闭环控制结构图称作误差,而此时的闭环系统称作单位反馈系统。控制系统的结构及其描述 凡是单输入-单输出控制系统结构均能方便地表示为图论中的拓扑结构形式,即使系统环节再增多,反馈和前馈联系再复杂,表述也很清晰,如图4.5所示。图中各环节用序号表示,每个环节都有自己的输入和输出变量 和 (1,2,.,6),对应其相互关系的数学描述,可以是第3章所述形式的任一种。图4.5 控制系统拓扑结构图控制系统的结构及其描述 4. 多输入-多输出控制系统结构若干个单输入-单输出控制系统结构

17、形式通过一定方式组合在一起,构成了多输入-多输出控制系统结构形式,用来描述较复杂的多变量控制系统。根据不同的环节组合形式,也有不同的控制结构。如变量和环节有单向耦合作用关系的结构形式见图4.6(a)、交叉反馈耦合作用关系的结构形式见图4.6(b)等。控制系统的结构及其描述 (a) 单向耦合结构 (b) 交叉反馈耦合结构图4.6 多输入-多输出控制结构图控制系统的结构及其描述 二.控制系统的典型环节描述任何一个复杂的控制系统,都是由一些简单的不同类型的典型环节采用串联、并联、反馈等形式组合而成的。若对常见的一些典型环节能准确地加以定量描述,则复杂系统的描述也只是复杂在各部分的相互连接关系上。采用

18、前述系统关系描述,把这种连接关系用相应的数学关系表达出来,就可以得到在计算机上能方便运行的“仿真模型”。经典控制理论中常见的典型环节如下所述:控制系统的结构及其描述 (1) 比例环节 (2) 惯性环节 控制系统的结构及其描述 (3) 惯性比例环节 (4) 积分环节 控制系统的结构及其描述 (5) 比例积分环节 (6) 二阶振荡环节 式中,为阻尼比,01时,系统为欠阻尼二阶振荡情况; 为无阻尼自然振荡频率。 控制系统的结构及其描述 (7) 纯滞后环节 式中,(8) 高阶线性环节为纯滞后时间。控制系统的结构及其描述 式中, , 为分母多项式系数,亦称特征多项式系数; , ,为分子多项式系数;它们均

19、为反映高阶线性环节动态响应性能的重要参数。以上典型环节,无论其阶次高低,均可应用MATLAB语言方便地求出输入量作用下输出量的响应性能。 和 之间的数学表达关系可以由传递函数 方便地转化为其他各种形式,如状态方程、零极点增益、部分分式等。控制系统的结构及其描述 三. 控制系统的连接矩阵 对图4.7所表示的线性系统,各环节均为线性的,在各自的输入量 作用下,给出各自的输出量 ,这种作用关系是通过各环节的数学描述体现出来的,其数学关系可以是(4.2.2)节所述的任何一种。但各环节之间存在相互作用, 不是孤立的,只要与其他环节有连接关系,就要受到相应 变化的影响。因此,要完整地将系统描述出来,还应该

20、分析各环节输出 对其他环节有无输入作用,才能完整地进行仿真分析。 控制系统的结构及其描述图4.7 控制系统拓扑结构控制系统的结构及其描述 根据图4.7中 、 的连接关系,可逐个写出每个环节输入 受哪些环节输出 的影响,现列写如下:(4.22) 控制系统的结构及其描述 引入向量 则式(4.22)可表示为控制系统的结构及其描述 即 式中, 控制系统的结构及其描述 式中,W为连接矩阵,nn型,矩阵中元素清楚地表示出各环节之间的连接关系,W0为输入连接矩阵,nm型(当参考输入为m维时),阵中元素表示环节与参考输入之间的连接关系。仔细研究连接矩阵W,可从其元素值直接看出各环节之间的连接情况,即wij0,

21、环节j不与环节i相连;wij 0,环节j与环节i有连接关系;wij 0,环节j与环节i直接相连(wij=1)或通过比例系数相连(wij为任意正实数);wij 0,环节j与环节i直接负反馈相连(wij=-1或通过比例系数负反馈相连(wij为任意负实数);wii 0,环节i单位自反馈(wii=l或wii=-1)或通过比例系数自反馈(wii为任意实数)。面向结构图的数字仿真 一. 典型闭环系统的数字仿真 1. 典型闭环系统结构形式控制系统最常见的典型闭环系统结构如图4.8所示。其中面向结构图的数字仿真 图4.8 典型闭环系统结构图面向结构图的数字仿真 2. 系统仿真模型与求解思路所谓仿真模型是指经一

22、定方式把数学模型转化为便于在计算机上运行的表达形式。这种表达形式往往是一些适合于具体编程实现的数学关系式。对图4.8所示系统的开环传递函数,可按照能控标准型写出其开环状态方程(4.23) 式中,面向结构图的数字仿真 其中, , 矩阵中, , ,( 1,2,, 0,1,,, )为式(3.4)首一化后分母、分子各系数,即 , , 且 。由图又知,控制量 ,代入式(4.23)得再由,则(4.24)即得系统闭环状态方程,其中为系统闭环系数矩阵,而输入矩阵B和输出矩阵C不变。这就是图4.8系统的仿真模 面向结构图的数字仿真 仿真模型一旦确立,就可以考虑求解与编程实现。观察式(4.24)可知,该式其实为一

23、个一阶微分方程组的矩阵表达形式,而数值积分法最适宜解一阶微分方程,当采用四阶龙格库塔法求解此闭环状态方程时,其步骤如下:对 知此为对应 个状态变量的一阶导数 的n维向量表达式。其中,r为随时间变化的已知输入函数。于是,当求 解过程进行到 时刻,欲求 时刻各量,需先求面向结构图的数字仿真 以上各系数 、 、 、 可认为是对应维状态变量在时刻的四组斜率,每组为维斜率向量,即每组个龙格库塔系数。面向结构图的数字仿真 最后,再由 求得 时刻状态 ,立即可得输出相应时刻值按以上算式,取k0,1,2,N不断递推,即求得所需时刻各点的状态变量 和输出量 。面向结构图的数字仿真 3仿真程序框图与实现基于以上仿

24、真模型和求解思路,我们可以着手考虑面向这类典型闭环控制系统结构图的仿真程序的编制与实现。作为系统仿真程序,使用时应尽可能方便,使用者只要将开环传递函数 的分母、分子各系数 , 和反馈系数输入计算机,计算机就掌握了有关该系统的基本信息模型参数。然后求取首一化表达形式,以及形成开、闭环状态方程各矩阵等步骤均由仿真程序自动完成,无需人工干预。因此,程序应有输入数据模块和初始化程序模块。面向结构图的数字仿真 在参考输入函数 的作用下,系统输出 开始随时间变化,仿真程序应能按照给定的计算步长,采用已确定的数值算法,对系统中各状态变量和输出逐点变化情况进行求解运算。这部分模块是整个仿真程序的核心部分,计算

25、速度、精度误差均取决于它。通常称为运行程序模块。在使用者规定的时间范围内,将计算数据按照一定要求存储,并在仿真结束时,按使用者指定格式输出仿真结果,以便对系统进行分析研究,这就是所谓的输出程序模块。综上所述,构成一个完整的仿真程序必须至少建立:输入数据块、初始化块、运行计算块、输出结果块四个子程序模块,才能正常地完成仿真任务。面向结构图的数字仿真 1) 程序框图程序框图如图4.9所示。图4.9 典型闭环系统的仿真程序框图面向结构图的数字仿真 2) 程序语句用MATLAB语言编制的程序语句如下: EXP4-1.M % 输入数据 aao,a1,an; %n1维分母系数向量 bb0,b1,.,bm;

26、 %ml维分子系数向量 XOx10,x20,.,xn0; %状态向量初值 VVo ; %反馈系数 nno ; %系统阶次 T0=t0; %起始时间 Tf=tf; %终止时间 h=h0; %计算步长 R=r %阶跃输入函数的幅值 % 形成开、闭环系数矩阵面向结构图的数字仿真B=b/a(1);a=a/a(1);A=a(2:n+1) %首一化处理A=rot90(rot90(eye(n-1,n);-fliplr(A);%形成能控标准形A阵B=zeros(1,n-1),1; %形成输入矩阵B(n维列向量)m1=length(b); %分子系数向量维数m+1C=fliplr(b),zeros(1,n-m1

27、); %形成输出矩阵C(n维行向量)=A-B*C*V; %形成闭换系数矩阵X=X0;y=0;t=T0; %设初值,准备开始递推运算% 运算求解N=round(Tf-T0)/h); %确定输出点数For i=1:N %四阶龙格-库塔法 K1=*X+B*R K2=*(X+h*K1/2)+B*R; K3=*(X+h*K2/2)+B*R; K4=*(X+h*K3)+B*R %求各系数K X=X+h*(K1+2*K2+2*K3+K4)/6 %求状态 y=y,C*X; %求输出并以向量形式保存 t=t,t(i)+h; %输出对应时刻以列向量形式保存end % 输出结果 t,y %输出数据形式结果 plot

28、(t,y) %输出曲线形式结果 面向结构图的数字仿真以上即为采用MATLAB语言实现面向典型闭环系统数字仿真的程序。上面程序中用到了几个MATLAB语言的特殊功能,使得程序较为简练。简要说明如下:eye(m,n) 产生mn型 阵,即主对角元素均为1,其余元素为零的长方阵length() 求取括号内向量的维数zeros(m,n) 产生mn型零阵rot90() 将括号内矩阵左转90fliplr() 将括号内矩阵或向量左右翻转round() 对括号内运算取整plot(t,y) 将打印为横轴,为纵轴的曲线 面向结构图的数字仿真【例4.2】 求图4.10所示系统的阶跃响应 的数值解。 图4.10 控制系

29、统结构图面向结构图的数字仿真 解:该系统结构形式为典型闭环控制系统,用EXP4-1.M求解过程如下:(1) 取开环放大系数k=1,反馈系数v=1,阶跃输入幅值r=1。(2) 利用MATLAB语言中conv()卷积函数功能,先将系统开环传递函数 化为要求的传递函数形式的分母、分子多项式,系数向量为 和 。(3) 设系统状态向量初值 均为零。(4) 系统运行参数 , , , 。面向结构图的数字仿真(5) 按以上步骤和参数,在MATLAB语言环境下,输入以下命令语句: k=1; a=conv(1 0 0,conv(0.25 1,0.25 1); a= 0.0625 0.5000 1.0000 0.0

30、000 0.0000 b=2*k k b= 2 1X0=0 0 0 0v=1;n=4;T0=0;Tf=10;h=0.25;R=1;EXP4-1.M % 运行EXP4-1.M仿真程序Plot(t,y) % 输出曲线形式结果(见图4.11) 面向结构图的数字仿真 图4.11 输出响应 曲线面向结构图的数字仿真 二. 复杂连接的闭环系统数字仿真 实际工程中常常遇到的是复杂结构形式的控制系统,这些控制系统是由若干典型环节按照一定规律连接而成的,可用前述的形式将其描述为复杂连接的闭环系统结构图。要采用上节所述方法仿真,必须先将复杂结构图简化成为图4.8的典型结构式,求出开环传递函数,然后运用上节程序进行

31、仿真分析。但存在如下问题:系统结构复杂,内部存在交叉耦合、局部回环等情况时,化简并非易事,尤其通过手工化简使工作量陡增;有时在分析中,还需要得知结构图中某些环节的输出变量情况,若经过化简消去这些环节,则不便进行观察分析;在分析中常常需要改变某个参数,观察其对输出的影响,但改动一个参数值,就有可能需将所有开环传递函数分子、分母系数统统重新计算再次输入计算机,很不方便;对实际系统中存在的非线性情况,更是无法加以考虑。鉴于以上原因,编制面向复杂连接的闭环系统结构图的系统仿真程序,必须使其能克服上节仿真程序的不足之处且应该具有以下特点:(1) 可按照系统结构图输入各环节参数,对应关系明确,改变参数方便

32、。(2) 可方便地观察各环节输出动态响应。(3) 各环节存在非线性特性时易于处理。面向结构图的数字仿真 1典型环节的二次模型化复杂连接闭环系统数字仿真程序的基本思路是:与实际系统的结构图相对应,在计算机程序中也应能方便地给出表示各实际环节的典型环节,并将环节之间的连接关系输入计算机,由计算机程序自动形成闭环状态方程,运用数值积分方法求解响应。因此,选定典型环节是很重要的,要使其既具有代表性,又不致于造成输入数据复杂烦琐。考虑控制系统典型环节有以下几种情况。比例环节: 积分环节: 面向结构图的数字仿真 比例积分: 惯性环节: 一阶超前滞后环节: 二阶振荡环节: 面向结构图的数字仿真 可见,除二阶

33、振荡环节外,都是一阶环节,完全可用一个通用一阶环节(见图4.12)表示,即图4.12 典型一阶环节(4.25)式中, 为第i个环节的输出; 为第i个环节的输入;n为系统中的环节数(也就是系统的阶次)。而二阶振荡环节可以化为如图4.13方式连接而成的等效结构图。面向结构图的数字仿真 由图可见,二阶振荡环节完全可以用一阶环节等效连接得到。因此,选定式(4.25)作为组成复杂系统仿真模型的典型环节是适合的。图4.13 二阶振荡环节的等效结构图面向结构图的数字仿真 设:输入向量 ,其中各分量表示各环节输入量;输出向量 ,其中各分量表示各环节输出量; 模型参数矩阵为于是系统中所有环节输出、输入关系用矩阵

34、表示如下:面向结构图的数字仿真 2系统的连接矩阵与仿真求解1) 连接矩阵仅把系统中各环节描述出来还不够,要进行数值积分求解,还必须把各环节之间的相互作用关系清楚地表达出来,这种表达是通过建立本章第4.2节所述的连接矩阵实现的。为说明问题,现举例说明如下:图4.14 某闭环系统结构图面向结构图的数字仿真 设系统结构如图4.14所示,图中编号1、2、3表示三个典型环节, 、 为环节间直接作用的比例系数。各环节输入 与输出 的关系为 整理为矩阵形式得 (4.27) 面向结构图的数字仿真 式中,(4.28) 面向结构图的数字仿真 2) 求系统的解将式(4.27)代入式(4.26),则整理,得为避免输入

35、函数为阶跃函数时,初始点导数 , 为阶跃函数)为无穷大,要求使 ,则即 面向结构图的数字仿真 式中,若Q矩阵的逆矩阵 存在,则式(4.29)两边同时左乘 ,得即 式中, (4.30)面向结构图的数字仿真 式(4.30)是典型的一阶微分方程组矩阵形式,利用4.3.1节介绍的求解方法,可方便地求出各环节的输出响应。然而,建立系统仿真模型还应注意以下两点:(1) 存在的条件。为了分析 存在的条件,分析图4.15所示例子。图4.15 系统结构图面向结构图的数字仿真 面向结构图的数字仿真 由于Q阵中有两列全为零,所以 不存在。其原因在于它的第一个环节为纯比例环节,第三个环节为纯微分环节,按典型环节给出的

36、方程分别为显然不是微分方程而是代数方程,因而使 不存在。为避免系统中出现代数方程,必须保证系统中所有环节的 ,从而使环节能用微分方程给出。从数学上说,因为 , 保证了B非奇异,即使此时 ,也可保证Q非奇异。所以当系统中出现纯比例、纯微分这类使 的环节时,则应设法与其他环节合并处理,或设法化为系统可接受的环节。面向结构图的数字仿真 (2) 的条件 当被仿真系统的输入函数有阶跃函数时,阶跃函数在t=0点的 ,此时若 ,将使微分方程中的 为无穷大。使无解。为避免出现这种情况,要求 。由于D为NN对角阵, 为NR矩阵,而 中只有承受输入作用的那些环节的 ,其余都为零。面向结构图的数字仿真 要使 ,只要

37、被输入函数作用的那些环节的 即可。面向结构图的数字仿真 3仿真程序框图与实现根据前面分析,在已建立的仿真模型基础上,用MATLAB语言编程实现系统仿真。具体实现时应注意采取合理的方法。l) 系统参数输入方法为利用MATLAB语言的矩阵处理功能,系统参数输入按各环节 输入参数矩阵P。如然后由程序自动形成式(4.26)中A、B、C、D各矩阵和式(4.30)中闭环状态方程各系数矩阵。面向结构图的数字仿真 2) 连接矩阵输入方法连接矩阵W和 中大量的元素是零元素,而表示连接关系的 非零元素并不多。因此,程序中采用只输入非零元素的方式,可大大加快输入速度,输入后由程序内部自动形成完整的连接矩阵W和 ,具

38、体方法是建立非零元素矩阵 (m3型),将非零元素按照i,j, 次序逐行输入。其中,i为被作用环节号;j为作用环节号; 为作用关系值(连接系数);m为非零元素个数(包括 阵中非零元素)。例如,按照图4.14和式(4.28),相应 的应按如下格式写出:面向结构图的数字仿真 3) 程序框图程序框图如图4.16所示。框图中四阶龙格-库塔法求解部分完全可调用4.2节程序EXP4-1.M中的运行程序模块。面向结构图的数字仿真 面向结构图的数字仿真 4) 程序实现采用MATLAB语言编程实现。 % 输入数据 Pa1,b1,cl,dl; a2,b2,c2,d2; ; an,bn,cn,dn; %各环节参数输入

39、 ; %连接阵非零元素输入nno; %环节个数系统阶次Y0y0 %阶跃输入幅值Yt0y10,y20,yn0 %各环节初值hh0 %计算步长Lll1 %打印间隔点数(每隔点l1输出一次) TO=t0 Tftf noutnput %输出环节编号 % 形成闭环各系数阵面向结构图的数字仿真 Adiag(P(:,1);Bdiag(P(:,2); Cdiag(P(:,3);Ddiag(P(:,4); mlength(Wij(:,1); %求非零元素个数 W0zeros(n,1);Wzeros(n,n);%建立初始W(nn型方阵)、W0阵(n维列向量)For k=l : m if (Wij(k,2)O):

40、WO(Wij(k,1)Wij(k,3); else W(Wij(k,l),(Wij(k,2)Wij(k,3); end; end; %求Wo阵和W阵 ; ; %求和阵 ; ; %求和阵 ; ; %形成闭环系数阵面向结构图的数字仿真 % 数值积分求解YYtO;yY(nout);t=T0; %置初值,做好求解准备Nround(Tf-TO)(h*Ll); %总输出点数for il: N; %每循环一次,输出一点数据for j1: L1; %每输出点之间计算Ll次(调用四阶龙格-库塔法程序块,求解end;yy,Y(nout); %保存输出环节动态响应值tt,t(i)+h*L1; %保存时间向量end

41、;% 输出结果t,y %输出响应数据plot(t,y) %输出响应图形同样,在以上程序语句中用到了以下MATLAB语言提供的特殊功能函数: diag( ); %产生以括号内向量元素作为主对角元素的对角阵 P(:,I); %取P阵中第I列的所有元素作为单独列向量若需要观察其他环节动态响应,可重新输入 值,再次运行程序,即可得到另一环节输出变化曲线、数据。面向结构图的数字仿真 4计算步长的选择程序中采用固定步长计算方法,即计算步长 是固定不变的,这样计算过程简便,误差也在工程设计允许范围之内。通常可按以下经验数据选择四阶龙格-库塔法的步长值。为系统开环频率特性的剪切频率; 为系统阶跃响应的上升时间

42、; 为系统阶跃响应的调节时间(过渡过程时间)。 或面向结构图的数字仿真 若系统中有局部闭环,则以上各值应按响应速度最快的局部闭环考虑。当 、 大致能估计范围时,以上经验数据意味着,为充分反映系统响应开始阶段变化较快的情况,在 内至少应计算10个点;或为全面反映系统响应整个过渡过程变化情况,在 内至少应计算40个点。此外,还应注意到, 的选取应小于系统中最小时间常数 的两倍,即 以保证数值计算的稳定性,得到较可靠的结果。连续系统的离散相似法 差分方程是描述离散(采样)控制系统的数学模型,其主要特点是方程中各变量由各相邻时刻的变化量(差分及高阶差分关系)制约,方程一旦列出,就相当于得到递推方程。从

43、初始时刻开始,可以递推求出各离散时刻的状态变量值。因此,在一定条件下,将连续系统的微分方程形式的状态方程转化为差分方程形式的状态方程组,就可以达到不必采用数值积分求解的目的。连续系统状态方程的离散化方法在控制理论课程中已有详细叙述,这里从数字仿真的角度简要重述如下。连续系统的离散相似法 1连续系统状态方程的离散化设连续系统状态方程为为状态初始值(4.31)则由现代控制理论基础可知,状态变量的解为即(4.32) 连续系统的离散相似法 这就是控制理论中介绍的线性时不变系统的运动方程, 称为状态转移矩阵。若将该系统进行离散化处理,并取相邻两采样时刻为KT和(k+1)T,则其状态变量的值为(4.33)

44、(4.34) 为使此关系式能用递推形式给出,用式(4.34)- *式(4.33)得连续系统的离散相似法 取 进行变量代换,则若采用零阶保持器,在相邻两个采样时刻输入信号保持不变,即 , ,如图4.17所示。则此时(4.35)连续系统的离散相似法 图4.17 两采样时刻之间 的变化若希望递推公式精度更高些,应该考虑到在两次采样时刻kT和(k+1)T之间 一直在变化,用一阶保持器近似更为合理,如图4.17所示。连续系统的离散相似法 a1)if(UxO)Uya1;else Uy-a1;endelse UyUx;end非线性系统的数字仿真 2) 死区非线性图4.22所示死区非线性环节的数学描述为图4.

45、22 死区非线性环节非线性系统的数字仿真 相应仿真框图如图4.23。据此,也可编制MATLAB程序如下:function Uydead(Ux,al) if(abs(Ux)al) if(Ux0) UyUx-a1; else Uy=Uxa1; end else Uy=O; end图4.23 死区非线性环节仿真框图非线性系统的数字仿真 3) 滞环非线性图4.24所示滞环非线性环节的数学描述为图4.24 滞环非线性环节非线性系统的数字仿真 式中, 表示非线性环节前一次的输出值。从式中可知,要正确地给 赋值,需要判断 、 的变化率大小。而这要通过与所存储的 、 的前一点值 、 相比较来实现。即,若有_0

46、则认为 ,再由( - )决定输出是取直线值,还是保持前次值 。而 - Uxb) %输入Ux增大 if(Ux-a1)=Uyb) %输出Uy也增大 Uy=Ux-a1; %输出Uy取直线上值 else Uy=Uyb %输出Uy没有增大,则保持前次值 end else if(UxUxb) %输入Ux减小 if(Ux+a1)h,且T为h的整倍数最便于处理。在每个采样周期kT时刻,离散环节信号的作用经实际采样开关传递到连续部分,并保持一个周期。在这段周期内以步长t=h计算连续部分各环节的变化情况,直到下一采样周期时刻t=(k+1)T,发生变化了的新的离散环节信号再次传递给连续部分,如此循环,直至 仿真过程

47、结束。其仿真框图如图4.35所示。计算机控制系统的数字仿真 图4.35 连续部分采样环节离散化方法的仿真框图 计算机控制系统的数字仿真 3. 控制器设计为连续系统环节D(s)采样系统的控制器有时设计为连续系统环节形式,其传递函数为D(s)(如各类有源、无源校正网络等),但其发生的作用又是每相隔一个采样周期T才经采样开关传递给控制对象连续部分。在T时刻内,D(s)、 同时都在按照自己的规律连续变化,如图4.36所示。图4.36 控制器为D(s)形式的典型结构图计算机控制系统的数字仿真 仿真框图如图4.37所示。图4.37 控制器为D(s)形式的系统仿真框图计算机控制系统的数字仿真 三. 采样控制系统仿真程序实现 1. 高阶差分方程的仿真程序若采样系统直接给出输入/输出闭环Z传递函数形式,即一般总有,则相应差分方程为高阶差分方程。解该方程,立即可得系统的采样时刻输出响应y(k)。计算机控制系统的数字仿真 若分别得到控制器Z传递函数D(z)和控制对象Z传递函数 ,则需求解一组高阶差分方程可见,以上算法最终都归结为求解高阶差分方程问题。在计算机上实现高阶差分方程的求解程序,应当注意以下问题:计算机控制系统的数字仿真 (1) 建立向量存储单元,保存和记忆输入 、输出 前若干时刻的值 , ,和 , 。(2) 每运算一个时刻值后,要及时刷新和摒弃相应的存储单元内容。即只保留 及其前m个时刻

温馨提示

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

评论

0/150

提交评论