第8章通用数字仿真程序设计_第1页
第8章通用数字仿真程序设计_第2页
第8章通用数字仿真程序设计_第3页
第8章通用数字仿真程序设计_第4页
第8章通用数字仿真程序设计_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

1、第8章 通用数字仿真程序设计v81 概述v 对于一个简单系统,可以使用前几章讲述的方法,自己编制专用的仿真程序。如果对每个系统都求状态方程、差分方程及编制程序等,对于工程和科研来说是很不方便的,既浪费时间,又容易出错。由于一般控制系统都是用微分方程或框图来描述,可以编制一些通用的仿真程序,只要送入不同的参数即可进行不同系统的仿真。这样,可减少辅助工作量,增加仿真结果的可靠性,大大提高了仿真的工作效率。 v 通用仿真程序一般应该达到以下几点要求:v 1使用方便v (1)容易操作,输入参数、修改参数方便;v (2)对原控制系统的预加工越少越好;v (3)输出结果形式直观,并应尽可能减少用户对输出结

2、果的预测(如输出可能的最大值等);v (4)通用仿真程序应有操作提示、出错提示,从事专业的使用者不需要经过培训就可以使用;v (5)程序中的各种功能可以重复选择等等。v 要达到上述要求,主要取决于所采用的人机交互技术,即人机会话方式。 v 2通用性强v 通用性指的是程序的适应性。一般来说,仿真软件的通用性强,则使用比较麻烦;针对性强,则在规定的领域内,可给用户带来更多方便。因此,在保证用户使用方便的前提下,程序的适用面越广越好。实际上,设计通用仿真程序时,总是有一定的针对性的。v 根据系统类型设计的通用仿真程序有:连续系统仿真程序、采样系统仿真程序、连续-采样系统仿真程序、离散事件系统仿真程序

3、、偏微分方程描述的系统仿真程序等。也可根据行业特点设计通用仿真程序,例如导弹系统仿真程序、宇航系统仿真程序、热工系统仿真程序等。 v 3仿真精度高v 由前面分析已经知道,仿真精度取决于仿真算法及所选用的计算步长。因此,为了保证仿真精度,在通用的仿真程序里要选用具有较高精度的仿真算法,比如,四阶龙格-库塔法、四阶阿达姆斯法等。但这也带来另外一个问题,有些系统仿真时,并不要求精度很高,而要求仿真速度较快,这样所选择的高阶算法就不适用了。为了克服这种缺点,在通用程序里可以设置多种仿真算法,仿真时由用户自己选定。 v82 面向微分方程的通用仿真程序v 在工程实际中,有些系统直接用状态方程或微分方程描述

4、,多入多出线性定常系统都可以描述成形如式(8-1)的状态方程或一阶微分方程组的形式。v (8-1)v式中:X为n维状态向量;Y为m维输出向量;U为r维输入向量;A为nn维状态常系数矩阵;B为nr维输入常系数矩阵;C为mn维输出常系数矩阵;D为mr维传递常系数矩阵。v 对于其他形式描述的线性定常系统 (如传递函数或高阶微分方程等 ),可以采用本书第二章中的方法转换成如式(8-1)的标准形式。v 为了使这类系统能直接进行仿真,应设计面向微分方程或面向状态方程的通用仿真程序。DUCXYBUAXXv821 程序设计思想v 通用程序结构与专用程序结构形式类似,都是由初始化、输入参数、仿真运行、输出结果这

5、四部分组成。与专用程序不同的是,通用程序不是用来仿真某个特定的系统,而是对在一定范围内各种不同的系统都能进行仿真。这样,程序设计存在下列特殊性:v 1通用程序的参数描述v 通用程序中应该设置可变的内存区,来适应不同系统的描述。包括状态变量和中间变量的向量、系数的矩阵等,都要以程序变量的形式描述。还要定义相应的维数变量,根据这些维数来为状态变量、中间变量以及系数矩阵分配内存区。实际上,在通用程序中,应该尽可能不直接使用常数,而都使用程序变量描述,这样可以让用户通过人机交互界面部分的程序来设置或修改这些程序变量。对内存区的控制应该考虑初始化、赋值、更新、释放等问题。 v 2人机交互界面部分v 通用

6、程序中应该有友好的人机交互界面,一方面便于用户可以设置各项参数和维数等;另一方面要能够较好显示仿真结果,以及对仿真结果进行分析。人机交互界面中应该尽可能提供输入或输出的提示信息、用户操作失误的防错措施等。 v 3程序运行控制 v 通用程序设计应该考虑运行控制问题。首先,从结构上看,程序应该是可以重复使用的,因此一次仿真结束后,用户应该能够选择是终止程序运行,还是返回修改参数再次仿真。其次,在仿真过程中,特别是实时仿真过程中,用户应该能够随时终止仿真过程。此外,在运行过程中需要避免非法的运算,如被零除、超出计算机最大值或陷入死循环等问题。v822 程序设计举例v 这里为了突出程序的通用性设计,我

7、们选择简单的欧拉法作为本例中的仿真算法,程序设计框图如图81所示。其他仿真算法的设计与此类似。程序中主要的变量记号与式(8-1)中一致。由于篇幅所限,程序中省略了人机交互部分。 v83 面向控制系统方框图的通用仿真程序v 当控制系统较为复杂、庞大时,求解状态方程形式会变得相当复杂,而且由于系数矩阵是间接计算所得,因此每次系统参数的修改都需要进行大量手工计算,这些都极大地限制了面向微分方程的通用仿真程序的应用。实际上,在控制系统的分析、设计与综合过程中,方框图的描述形式是一种更常用的形式。如果能够把系统看作是由许多典型算法模块构成的,在程序中事先编好这些典型算法模块的程序,用户使用时,根据一定的

8、界面调用这些典型模块,组织成控制系统,并设置参数,则仿真过程就可以大大简化。这样的通用仿真程序称之为面向控制系统方框图的通用仿真程序。v831 典型模块的选取v 通常,在控制系统中比较常见的线性模块有以下几种,可以选择一个或几个作为典型模块: v832 模块之间的连接v 当选择好典型模块后,就可以编制通用仿真程序了。在程序中各模块之间的连接有两种典型方法:v 1连接矩阵法v 下面举一个例子说明这种方法。假定选择积分模块k/s作为典型模块,先将被仿真的系统化成仅用积分和比例模块描述的形式,例如,对于图82所描述的系统,必须化成图83的形式。 v 在每个积分模块输出处设一状态变量xi(i15),每

9、个积分器的输入为ui(i15),见图83。由此,可以写出系统的状态方程为v 2关联矩阵法 v 用连接矩阵表示系统的连接情况对机器内存是很不经济的。对于上述的5阶系统,有一个输入,就需要有一个65的矩阵存储连接系数。如果系统阶次很高时,占用内存空间太多。所以现在的一些通用仿真程序不采用这种形式描述系统的连接情况,而是假想所选择的典型模块有固定的输入个数(实际系统中也正是这样),用一个关联矩阵存储模块输入端所关联的模块序号即可。v 某系统有50个典型模块,1个输入。如采用连接矩阵的方式,则需要50512550个内存单元存储系统的连接。如果假想每个模块都有3个输入端,采用第二种连接方式,则仅需要35

10、0150个内存单元来存储系统的连接。但是,后者也有一个缺点,由于关联矩阵中的元素描述的是与该模块关联着的其他模块的序号,因此与该模块关联的系数就无法表示了,只好把这些系数放在典型模块里。 v84 基于结构化方法设计的通用仿真程序v 虽然现在我们已经有了面向对象的方法,但是在工业控制领域的很多场合所使用的控制器,一般采用特殊的嵌入式实时操作系统,这些操作系统大多数不支持面向对象的方法。有些控制器中甚至没有操作系统。与其对应的仿真系统也往往采用相同的配置条件。这些原因制约了面向对象方法的使用,因此,结构化设计方法依然是广泛使用的设计方法。v 在实际应用中,常见的设计方法是,在专门用于组态设计的计算

11、机(工程师站)中,基于普通操作系统(如Windows 2000等),采用面向对象的方法设计人机交互界面,让用户组态控制系统方框图,形成组态文件。再把组态文件载入另一台专门用于控制运算的计算机(控制站)中,基于特殊的、高性能的嵌入式实时操作系统(如VxWorks、QNX等),采用结构化方法实现实时控制运算或者仿真运算。 v 本节讨论采用结构化方法实现实时控制运算或者仿真运算的方法,而采用面向对象的方法实现仿真运算和人机交互界面的问题在第85节和第86节中再讨论。v841 标准算法模块函数v 正如第83节所述,方框图的描述形式是一种常用的控制系统描述形式。该方法把系统看作由许多典型算法模块构成,这

12、样就需要在程序中事先编好这些典型算法模块,用户使用时,根据一定的界面调用这些典型模块,组织成控制系统,并设置参数。v 这些典型算法模块可以看作是一个个独立的函数,每个算法模块都具有输入值、输出值、参数值、中间计算值和算法逻辑等要素。由于在一个系统中,可能有多个相同类型的算法模块,因此每个典型算法模块函数都可能被多次使用。这样,典型算法模块函数中就无法保存对应的各个算法模块的输入值、输出值、参数值、中间计算值等每个模块特定的变量。为此,一般在程序中建立下列变量表,用来对系统进行管理,这些变量表并不在标准算法函数内部定义,而是定义在这些函数之外的程序中,比如最简单的做法是定义为全局变量表。v 1模

13、块序号 v 在控制系统组态时,每个新加上的算法模块都有一个编号,称为模块序号。在有些系统中,序号是单独编排的,而在另外一些系统中,序号就用该模块第一个输出信号的地址表示。大多数系统中,模块序号还用来决定运算调度时的顺序,这样,在组态时要合理地编排块号,以减少系统中不必要的延迟。如果块号的编排不合理,会产生所谓的“绕圈”(Loopbacks)现象。为了说明这一情况,举例如下。v 2模块类型编号v 在控制运算调度时,依据模块类型编号来调用不同的标准算法模块函数,来完成具体的模块计算。标准算法模块的分类方法参见第831节和第863节。该编号不是定义在标准算法模块函数的内部,而是一个具有全局性质的查询

14、表,表中每一个值对应于一个标准算法模块函数。这种查询表一般可以用枚举量构成,或者采用宏定义的方式描述。 v 3输入变量表v 每个算法模块都有一些输入变量,没有输入的情况可以看作“0”个输入,以便统一处理。这些输入变量的值来源于其他模块的输出变量,这反映了控制系统图中信号线的连接关系。输入变量表用来记录这些输入变量的来源。在控制运算调度时,依据输入变量表来搜索其他算法模块的输出变量的值,作为本模块本次运算的输入值。 v 4输出变量表v 每个算法模块都有一些输出变量,没有输出的情况可以看作“0”个输出,以便统一处理。这些输出变量的值用来记录本模块本次运算的计算结果。在控制运算调度时,输出变量表被用

15、来为其他与之相连的算法模块提供本次运算的输入值。v 5参数表v 每个算法模块都有一些参数,比如PID算法中的比例系数、积分时间和微分时间等参数。在控制运算调度时,查询这个参数表,来获得具体模块的参数值,以便完成运算。v 6中间量表v 也就是状态变量表。凡是具有储时性的算法模块,比如PID、积分、惯性环节等以及定时、延迟等算法,每次计算时都要用到上一次或上几次运算的中间量,这些中间量必须保存在一个临时中间量表中,以便下次计算时查询使用。 v842 控制运算调度v 控制运算调度函数实现对整个系统的运算,在开始运算之前,一般要检查系统的连接情况,比如连接数据类型错误、端口悬空等问题。然后还有一个重要

16、步骤,就是初始化各个计算的输入值表、输出值表、中间变量表。初始化成功后开始进入循环运算,直到控制步数满了后退出循环。v 在循环体内,运算调度程序根据模块序号轮流计算各个算法模块,首先根据模块序号查询该模块相应的模块类型表获得模块类型;然后根据模块类型调用相应的算法函数;同时把该模块所用的输入变量表、参数表、中间量表传递给该算法函数;算法函数完成计算后,把计算结果存入输出变量表。循环体内的程序设计框图如图86所示。v85 人-机交互界面v 人-机交互界面也称计算机用户界面,是指计算机与其使用者之间的对话接口,这种对话接口规定了用户与计算机之间的信息交互的方式,是计算机系统的重要组成部分。用户界面

17、的重要性在于它极大地影响了最终用户的使用,影响了计算机的推广应用,甚至影响了人们的工作和生活。对于用户来说,易于学习,易于记忆,易于使用,以及能够直观、快速、有效地进行与计算机之间的信息交互是非常重要的。尽管人们对人-机交互界面的重要性早已认识到了,但多年来在这方面的进展一直十分缓慢,这主要是由于它所涉及的问题,除了需要发展某些高性能的软、硬件外,它还涉及到大量有关“人”的因素问题,同时开发用户界面的工作量极大,加上不同用户对界面的要求也不尽相同,因此,用户界面已成为计算机软件研制中最困难的部分之一。v851 交互方式v 在传统的基于文本方式的软件设计中,常用的人-机交互方式有:问答式、菜单选

18、择式、填表式、指令语言式。此外,配合一些简单的曲线输出。众所周知,文本所提供的信息量是十分有限的,如果一个软件系统非常复杂,包含了大量需要与用户交互的信息,这样就使得基于文本方式的界面变的十分繁琐、而且不直接、不连续。相反,图形所能够提供的信息量是非常大的,一幅图所提供的信息量往往相当于几倍甚至十几倍同样篇幅的文本所能够提供的信息量。现在由于计算机软硬件技术的发展,大量的软件设计采用了基于图形化的方式,特别是在Windows这样的多任务操作平台得到广泛使用以后,人-机交互界面也全面采用了图形化的方式,这就是图形用户界面(GUl)。图形用户界面的广泛流行是当今计算机技术的重大成就之一,它极大地方

19、便了非专业用户的使用,人们不再需要死记硬背大量的命令,而可以通过窗口、菜单方便地进行操作。v图形用户界面GUI的主要特征是:v (1)WIMP。其中:v W (Windows)指窗口,是用户或系统的一个工作区域。一个屏幕上可以有多个窗口。v I (Icons)指图符,系统形象化的图形标志,易于人们隐喻和理解。v M (Menu)指菜单,可供用户选择的功能提示。v P (Pointing Devices)指鼠标器等,便于用户直接对屏幕对象进行操作。v (2)用户模型。GUI采用了不少Desktop桌面办公的隐喻,使应用者共享一个直观的界面框架。由于人们熟悉办公桌的情况,因而对计算机显示的图符的含

20、义容易理解,诸如文件夹、收件箱、画笔、工作簿、钥匙及时钟等。v (3)过去的界面不仅需要记忆大量的命令,而且需要指定对象的位置,如行号、空格数、X及Y的坐标等。采用GUI后,用户可直接对屏幕上的对象进行操作,如拖动、删除、插入以至放大和旋转等。用户执行操作后,屏幕能立即给出反馈信息或结果,因而称为“所见即所得”(What You See Is What You Get)。用视、点(鼠标)代替了记、击(键盘),由于鼠标只有两到三个键,相比较键盘的上百个键来说,不需要复杂的操作和记忆,也不需要较长的熟练过程,因此给用户带来了方便。v 图形化界面的新发展还使得用户可以直接看见自己所进行的每一步操作的

21、结果,甚至包括复杂的科学计算或工程图纸的建立都可以通过鼠标的拖动、点击等操作来建立,这样就使得计算机屏幕像一个工作桌面一样,而屏幕上的每一个文档窗口就像桌面上的图纸或者图表一样。这就是现在广为流行的可视化(Visual)技术。v 可视化技术使得用户的参与感极大增强,交互方式从语义上更为接近特殊的应用对象。这种交互方式具有明显的面向对象的特征。v852 人-机交互界面的功能v 一般情况下,一个软件系统的人-机交互界面应具有以下四个方面的主要功能:程序控制功能、数据库控制功能、防错功能以及在线帮助功能。 v 1运行控制v 用户对程序运行的控制,就是指在程序运行的任何时刻,无论程序处于任何一种功能运

22、行状态,用户均具有选择另外一个功能运行的能力。因为只有这样,才能使用户具有调用程序的最大自由,使得用户能充分发挥软件包的各种功能,充分发挥人的创造能力和灵活性。否则,只能使用户陷入一种死板的、预先固定的程序运行次序。用户对程序运行的这种控制能力,可具体分为以下几点:v (1)停止程序的运行,并在稍后的某个时刻重新启动,不会丢失任何数据。v (2)对整个程序系统的各个组成部分,可根据需要任意组合,以适应用户的不同要求。v (3)非正常地结束一个命令时,不会造成整个程序运行的停止。v (4)可以完全自由地、方便地控制程序的运行,可以从某个功能转向另一个功能。v (5)如果想终止某个输出,并不会停止

23、整个程序的运行。v 2数据库控制v 人-机界面仅仅具有对程序的控制功能还是不够的,对用户还应提供对数据库的控制,以适应整个程序运行过程的需要。v 控制系统CAD所用的数据库目前多为文件系统(fi1e system)。这种文件系统的建立、修改和补充均来自用户的输入和计算机运算的结果。为了有效地运用数据库,用户对数据库应具有以下一些控制能力:v (1)可以在任意时刻,有选择地显示、打印任意程序变量的数值。v (2)可以在任意时刻,有选择地修改任意程序变量的数值。v (3)无需在此键入,即可将任意变量内容转移给另一变量。v (4)无需重新键入,即可把某个程序块的输出作为另一程序块的输入。v (5)可

24、随时列出数据库定义过的全部变量。v (6)可以把当前工作的结果存储起来,以备将来使用。v 对数据库控制的关键在于使用户能对数据库内容进行方便地控制,以适应系统分析和设计的需要。其重要性在于用户可以充分利用已存入计算机的数据,或者稍加变化其形式和内容或地址,即可满足不同程序的某些需要。如果用户缺乏对数据库的控制能力,就会使用户进行更多重复性的键入,给用户带来很多的不便,这显然不符合“易于使用”的原则。v 3防错v 一般情况下,计算机按照用户输入来执行任务,但由于用户的输入经常会出现错误,因此,系统应有一定的防错和纠错能力。也就是说,应让用户有机会来认识输入错误和改正输入错误,或者最好在提示错误信息的同时自动改正错误。否则,如果一旦输入了一个错误信息,计算机就突然停止,或若无其事地继续有限下去,结果都会使用户心理上感到惶恐。v 一般,键入错误可以分成三类:v (1)非法字符的键入;v (2)所键入的数值超出了该变量可接受数值的范围;v (3)所键入的数值,导致运算不能进行。v 此外还有鼠标操作的错误,这类错误更加复杂,常常有一些难以预料的情况,比如模块被鼠标拖动到界外造成模块丢失情况。v 上述几种类型的错误,如不设法子以制止,均可能引起程序的突然停止,甚至失去大量数据。因此,如果能避免这些错误所造成的后果,就可大大提高程序运行的效率。v 4

温馨提示

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

最新文档

评论

0/150

提交评论