《仿真应用技术》PPT课件.ppt
《《仿真应用技术》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《仿真应用技术》PPT课件.ppt(157页珍藏版)》请在三一办公上搜索。
1、第九章 仿真应用技术,实际应用计算机仿真技术时,还有许多问题需要考虑,本章将向读者介绍部分仿真应用技术,包括:仿真语言、一体化仿真技术、人工智能和专家系统在仿真技术中的应用、仿真建模方法学,以及仿真实验的计划指定和实施。如果要有效地进行仿真研究,最大限度地避免工作中的盲目性,减少研究费用,缩短研究周期,必须对整个仿真研究工作进行科学而周密的组织与设计。对于从事实际应用的人员来说,仿真应用技术或仿真研究的组织方法是非常必要的知识。组织与设计工作的好坏,直接关系到仿真应用的成效。本章的最后向读者介绍这一方面的基本知识,使读者尤其是初学者重视仿真实验的组织设计和实验工作,了解有关基本知识,并能应用到
2、实际工作中去。考虑到重点突出篇幅限制等原因,对有些问题仅仅提出,而不做深入讨论。显然,在实际应用时,所要遇到的问题是极其复杂的,需要读者在今后的工作中不断探索,不断总结。,第九章 仿真应用技术,9.1 仿真语言及其发展9.2 仿真语言的基本结构和组织9.3 一种典型的连续系统仿真语言9.4 一体化仿真技术9.5 人工智能与仿真技术9.6 数学模型和建模方法学9.7 仿真实验的计划指定和实施,9.1 仿真语言及其发展 9.1.1 连续系统的数字仿真,在数字计算机上进行仿真研究时,很重要的一个步骤是将研究对象的数学模型转变为能在计算机上实现的仿真模型,并编制仿真程序。仿真程序的一般组成如图所示。传
3、统地编写仿真程序所采用的语言是高级算法语言,如FORTRAN语言,BASIC语言,C语言等。除非有时需要高质量的程序以节省使用机器内存和缩短程序执行时间,才用汇编语言编写。在采用高级语言编写仿真程序时,用户发现,虽然基本语言不难学习,并且便于移植,不受机型限制,但如需要充分利用语言的能力与精微之处,则需要很高的熟练程度。尤其是对一些模型结构复杂模型状态变量和参数多的系统,用户不得不将许多精力和时间花费在模型参数处理仿真算法和程序的实现,以及输出数据的分析等辅助性工作上,而不能将精力集中于对系统本身的研究。因而需要一种面向问题的非顺序的计算机语言。这种语言应该是足够简单,而且易于学习和使用。用户
4、只需写入被仿真系统的模型,定义变量和必要的数据和命令,就可以进行仿真。这使得用户能摆脱程序编写中的许多细节问题,将精力集中于研究所要仿真的问题本身。这样的一种用于仿真研究的专用计算机语言,便是仿真语言。,9.1.1 连续系统的数字仿真,仿真程序具有一定通用性的仿真程序包和仿真语言是处理不同问题常用的三种仿真工具。表对它们进行了比较。读者可以根据问题的需求,以及软硬件的可能性进行选择使用。表,9.1.2 仿真语言的功能,数字仿真语言是一种直接面向仿真问题的专用语言,是进行数字仿真的重要工具。其主要功能表现为以下三点:(1)有一套完整的规定描述模型的符号语句句法及语法,并有检测用该语言所编写的源程
5、序中错误的能力,最后能将文法上正确的源程序翻译成机器可执行码(一般是先翻译成某一种高级语言,比如FORTRAN语言,然后由计算机厂家所提供的编译程序转换成机器代码)。(2)具有设定模型实验的初始条件终止条件,以及控制并实现单次多次或迭代运行的功能。(3)具有对仿真结果的分析与显示功能。,9.1.2 仿真语言的功能,由上面所介绍的仿真语言的三种功能可知:使用者使用这种语言不仅能更多地摆脱掉对程序的熟悉与了解,而且由于它具有更强的仿真功能,因此能用来仿真比较复杂的系统,并且对系统进行更全面的实验。,9.1.3 仿真语言的分类,仿真语言可以按不同方式进行分类。一、按被仿真系统的特点分类 按被仿真系统
6、的特点可将仿真语言分为三类:连续系统仿真语言;离散系统仿真语言;通用仿真语言。连续系统仿真语言所采用的模型通常是微分方程,系统的响应是按一个或几个自变量的 变化而连续发生的。而离散系统仿真语言所采用的模型通常不包括微分方程,而包括部分代数方程和逻辑关系,其系统的响应是以在一个自变量的离散点上的事件序列的形式发生的。对于两类系统均适用的是通用仿真语言。本书仅介绍连续系统仿真语言。,9.1.3 仿真语言的分类,二、按数学模型的形式分类 连续系统仿真语言按被仿真系统的数学模型形式,可分为:面向方程的仿真语言;面向框图的仿真语言。面向方程的仿真语言采用的模型描述方式是一阶微分方程组和代数方程,即与现代
7、控制理论中的状态空间相对应。面向框图的仿真语言中模型是通过框图的形式描述的,框图中的内容可以是加减乘除运算,逻辑运算和积分运算等基本算符,也可以是基本传递函数或其它特定函数。,9.1.3 仿真语言的分类,三、按运行方式分类按仿真语言在计算机上运行方式可分为:交互式仿真语言,或会话式仿真语言;非交互式仿真语言,或批处理式仿真语言。交互式仿真语言在具有分时操作系统的大中型计算机或小型微型计算机上运行,通常采用图形显示终端,并以键盘或光笔作为输入设备。该方式由于采用对话形式,故可及时观察分析仿真结果,修改模型结构或参数。非交互式仿真语言在大中型机上通常采用读卡机来输入问题,在微型机上通常采用宏定义方
8、式来描述问题和实验方法。显见这种方式只有在取得一次运行的结果后,才能分析仿真结果,并修改模型参数和实验方法。,9.1.4 数字仿真语言的发展概况和性能评价,从60年代开始,国外就已着手研制仿真语言。第一个获得广泛应用的数字仿真语言是MIMIC,它是1965年研制成功的一种面向方程的仿真语言。该语言的主要部分是一个翻译器,它把用MIMIC语言书写的仿真源程序翻译成机器代码。1966年美国又推出了另一个数字仿真语言DSL/90,它也是面向方程的一种仿真语言。但它的翻译器是将仿真源程序翻译成FORTRAN语言,因此这种仿真语言可以和FORTRAN语言兼容。在这期间,美国相继推出了许多种数字仿真语言,
9、为了促进数字仿真语言规范化,进一步普及推广数字仿真的应用,美国计算机仿真协会(SCS)软件委员会于1967年召集了许多仿真方面的专家进行了讨论,最后发表了一个数字仿真语言的标准文本CSSL。因为SCS是美国仿真学术界的中心,因此CSSL有相当的权威性,在70年代初一直被广泛应用。与CSSL并列的还有一个被广泛应用的数字仿真语言CSMP,它是IBM公司推出的。由于IBM公司是美国最大的一家计算机公司,所以CSMP也拥有众多的用户。,9.1.4 数字仿真语言的发展概况和性能评价,在70年代以后,数字仿真语言在提高功能提高速度等方面有了一些新的发展。它们的代表是ACSL及DARE系列。我国从70年代
10、后期在引进移植和研制数字仿真语言方面也做了不少工作,并已取得了可喜的成绩。80年代,我国的仿真工作者在引进与消化国外仿真语言的基础上,逐步形成了自己的语言规范。ICSL就是我国一个功能比较齐全质量较高的仿真语言。,9.2 仿真语言的基本结构和组织 9.2.1 对仿真语言的主要要求,一个好的仿真语言应满足下列要求:(1)被仿真的问题可以以自然的形式,方便地用仿真语言的语句描述。所谓自然的形式,是指与工程技术人员用来描述被仿真系统的数学模型相一致的形式。通常,被仿真系统的数学模型具有微分方程与代数方程组合的形式,或框图的形式,因而要求仿真语言也能以相似的形式描述系统,最好兼有两种方式描述的能力,因
11、为有些系统的模型具有组合的形式。(2)要求仿真语言具有并行性的特点。在被仿真的实际连续系统中,过程是并行发生的,对模拟计算机来说,它是一种并行的计算装置,即对各个变量的运算是同时进行的,因而真实地体现了所仿真的连续系统中的工作状态。但数字计算机是串行计算装置,为了满足闭合回路的要求,一个变量在先前没有规定就不能出现在语句中,因而仿真语言必须有一种自动分选能力,能将规定数字仿真结构的仿真语言的语句排列成正确的计算顺序,从而使计算机按顺序计算,而从仿真语言的程序看来则如并行运算一样。,9.2.1 对仿真语言的主要要求,(3)仿真语言应备有多种不同的积分方法可供使用者选择。积分算法是数字仿真程序的核
12、心。微分方程的数值解法有许多种;不同的方法具有不同的特点(精度计算速度和对计算机的要求等),适合于不同的应用场合。多种积分算法的存在为满足用户的具体应用要求提供充分的选择余地。(4)仿真语言应包含有预先编制好的输入和输出程序。输入程序可使用户方便地输入问题的模型和参数,并且便于修改模型参数。输出程序使用户可按所研究的问题的需要,选择有关的输出变量与参数,以多种输出方式输出。输出方式包括数据表格,时间响应曲线,相平面轨迹及变量与参数的交叉列表和绘图。输出设备的形式应多样化,包括宽行打印机数字绘图机图像终端等。使用者可以方便地用于准备技术报告的规格化文件。,9.2.1 对仿真语言的主要要求,(5)
13、为了面向用户,仿真语言应与现有常用的有序编程语言(通常为FORTRAN,C语言等)有兼容性,使仿真语言的语句和有序语言的语句混和,从而有经验的用户可以将有序语言的功能引入到仿真语言中,扩展仿真语言的能力。(6)为了面向用户,要求仿真语言要适应不同水平用户的要求。对不太熟悉的用户,可以使用仿真语言的基本组成部分,基本结构语句(或基本算符)和代数语句,内装的程序库,完成基本的仿真研究。对熟练的或内行的用户,则要求仿真语言具有扩展能力,能将用户规定的函数和程序加入到内装程序库中。(7)要求仿真语言配有宏函数处理器。用户可将他所研究的问题中多次重复使用的部分编写为宏函数,通过宏函数处理器可被主程序反复
14、引用。仿真语言的宏函数不仅是一种方便的速记手段,而且可成为一种表示分系统或特殊运算的直观的有意义的语言要素。,9.2.1 对仿真语言的主要要求,(8)仿真语言不仅应便于输入和修改系统参数及初始条件,更进一步应能进行多次运行的仿真研究,对多次运行具有逻辑控制函数存储二次运行间的代数运算等能力。这种多次运行研究可用于模型参数及初始条件的“起始计算”和运行结果的“终结”处理,如求得时间历程采样的函数;按预先编定的程序或按前次运算结果确定的参数及初始条件进行多次仿真运行,做迭代仿真实验,优化或模型匹配等研究;保存多次运行的时间历程;交叉绘制或交叉列表表示参数和初始条件对解的影响;进行随机输入作用下的统
15、计特性计算(蒙特卡罗仿真)。(9)要求具有多重速率的能力,即被仿真的模型可分成两段或多段(相应于被仿真总系统的分系统或暂存部分),以便不同时间常数的子系统(如快的分系统和慢的分系统)可采用不同的积分方法或积分步长;不同子系统结构在时间推移过程中的转接。(10)具有面向问题的错误的诊断能力,使仿真研究者能在源程序的级别上很快发现和改正错误。上述要求是作为设计仿真语言的指导原则提出的,并不是所有仿真语言都能满足所有这些要求。,9.2.2 仿真语言的一般结构和组织,一、仿真语言的一般结构仿真语言在结构上一般包括三个区域:初始区动态区和终止区,如图所示。一般将仿真语言的单次运行称为仿真,同一问题的多次
16、运行称为研究。(1)初始区:初始区包括了所有在一次仿真之前必须进行的输入/输出操作和初始化步骤。那些具有更永久性特点的初始化操作(如指定具体的积分算法)应在进入这一区域之前进行。图说明了初始区的一般结构。初始区在作用上可用三个分区域说明:解释程序初始分区和积分初始分区。,9.2.2 仿真语言的一般结构和组织,图9.2.1 图,9.2.2 仿真语言的一般结构和组织,解释程序是一个标准的系统程序,它完成仿真分析人员和程序之间在运行时间的交互作用。仿真分析人员可通过终端或其它输入装置输入参数和系统初始化的指令,这些指令经解释程序的翻译而在运行时执行。有下述类型的指令:调整仿真中变量的值(如参数或初始
17、条件);中间读出任何仿真中变量的值;对积分算法中可调控制参数,包括自变量的间隔初值和终值及误差控制参数,进行控制;进行简单的算术运算,用以根据前一次的结果计算参数的改变量;对个别的仿真运行进行初始控制和对一组仿真运行(研究)进行终止控制。初始分区是进行初始化计算输入和仿真研究终止逻辑控制的有序编码。积分初始化程序是运行时间所用数值积分系统的一部分。,9.2.2 仿真语言的一般结构和组织,(2)动态区:动态区是仿真过程中在数字计算机和外界之间起积极的交互作用中的一部 分,它表示在使用者规定的自变量的离散值上进行的所有计算和输入/输出操作。自变量的基本间隔用每次经过动态区的穿越来表示,称为仿真通讯
18、间隔。这一间隔只由 与外界通讯的准确度要求来决定。计算(积分)间隔可以比通讯间隔短。计算间隔严格按数字计算(特别是积分)的准确度要求来决定。图所示说明了动态区的一般结构,它可用两个分区域描述:输入/输出和积分。,9.2.2 仿真语言的一般结构和组织,图,9.2.2 仿真语言的一般结构和组织,输入/输出分区包括了在基本自变量回路中进行的积分运算以外的作用,其中有那些不属于导数计算部分的与时间有关的代数计算和动态回路,以及程序条件实验所必需的所有数字输入。程序条件实验用于确定:是否终止仿真并将控制转移到终止区;是否要计算新的值和重新开始积分。在通信间隔上输出系统变量是在这一分区上控制的。积分分区包
19、括了动态区内对自变量的所有积分运算。积分分区还可以分成不同的数段,以便对几组仿真的状态变量采用不同的积分速率(或算法)。某些段落也可能根本不包含积分,而可能是仿真与积分速率有不同速率的并行同步逻辑部分的程序。包括积分的各段都有与它相关的计算被积分的状态变量导数的子程序,因为每一积分段都有这样一个子程序,故它被称为导数段。,9.2.2 仿真语言的一般结构和组织,(3)终止区:终止区接受动态区的控制,并将控制作用返回到仿真的入口处。终止区包括用以适当地终止一次单一的仿真所需要的计算和输入/输出作用。此外,制备某些仿真报告的操作,如数据表和绘图输出,也在这一阶段完成。二 仿真语言的程序组织 仿真语言
20、的程序通常由三部分组成:翻译部分运行部分和输出部分。(1)翻译部分:翻译部分的主要作用是将使用者用仿真语言编写的仿真程序翻译为中介语言或机器语言的子程序,以供和运行部分的有关程序一起编译(如果仿真语言的程序用中介语言写成)连接和加载。翻译部分还完成语句的分选和排序作用对使用者规定的输出指令的解释作用,以及输入数据(初始条件和参数)的处理。,9.2.2 仿真语言的一般结构和组织,(2)运行部分:运行部分主要包括仿真运行的控制程序各种积分算法的子程序,以及各种仿真语言的内装程序库函数。它们与翻译模块输出的程序一起进行编译连接加载执行。(3)输出部分:输出部分按使用者规定的输出指令要求将仿真运算结果
21、进行处理。它包括处理输出指令,从有关的数据文件中抽取所需数据的子程序,在指定的输出设备上显示仿真结果的相应的子程序。,9.3 一种典型的连续系统仿真语言,DARE-P(Differential Analyzer Replacement Portable)是由美国阿里桑那(Arizona)大学电器工程系计算机科学研究实验室研制成的一种仿真软件。它是按批处理方式设计的,适合在中型及大型计算机上运行。国内已有多家单位将它移植到微型机上。其主要特点如下:,9.3.1 DARE-P的主要功能,DARE-P主要功能如下:面向方程,其模型采用一阶微分方程和代数方程组描述,其状态变量数200。具有自动安排各方
22、程运算次序的能力;共有10种积分方法(见表)可供选择,用户还可加入自定义的积分法则;有多种库函数可供调用,如延迟函数比较器饱和死区脉冲采样滞环等;具有多种输出方式,包括打印数据和图形,用绘图机输出图形,等等;在程序运行过程中,可以分阶段给出编程错误诊断信息,便于用户查错。,9.3.1 DARE-P的主要功能,表9.3.1 DARE-P仿真语言的10种积分法,9.3.2 DARE-P语言的基本结构,翻译系统TRNSYS(占内存约90KB)这部分共有1个主程序1个数据块26个子程序和2个函数子程序。它的主要作用是将用户用仿真语言编写的仿真题目程序翻译成FORTRAN语言,编译完后,自动与运行系统连
23、接,一起运行。运行系统RUNSYS(占内存约170KB)运行系统中包括1个主程序5个基本子程序,以及其它子程序和函数子程序等,这些子程序可分成三类:存放控制变量值及生成数据文件子程序;各种积分法则子程序;仿真中常用的一些函数子程序。运行系统中还分为单次仿真和多次仿真两种执行过程。两种过程的输出结果各有不同要求。,9.3.2 DARE-P语言的基本结构,3输出系统OUTSYS(占内存约40KB)输出系统中有1个主程序1个数据块19个子程序和2个函数子程序。它的作用是按输出指令的要求从有关数据文件中抽取所需信息,完成所要求形式的输出结果。,9.3.3 DARE-P的使用方法,DARE-P是一种模块
24、式结构语言,模型描述初始值和参数设置,以及输出指令,都分别写在各个块中。每一种模块都有一定的识别符号(第2列上写有$符号,其后再接1或2个字符)。各模块名称及其内容见表。,9.3.3 DARE-P的使用方法,下面分别说明各模块内容及有关子程序。(1)导数块($D1和$D2)本块主要用于写入状态方程和所定义的变量方程。其状态变量导数用变量名加一圆点号(.)表示。例如:一阶微分方程为 其书写格式为 方程可以按任意顺序写入,翻译程序会自动将方程组整理出运算顺序。但是表达式中必须避免代数环出现,即要求用显式表示,而不能用隐式表示。例如,以下两式就构成了代数环:Q=P-X P=Y+Q因为上式中的变量Q需
25、从两方程中解出,故构成了代数环。,9.3.3 DARE-P的使用方法,导数块中可以包含以下程序及变量:过程段:它用于定义一组变量,其格式为 PROCED P,Q,=X,Y,ENDPRO 被定义变量 控制仿真运行终止语句:其格式为 TERMINATE 算术表达式 当表达式小于或等于零时,仿真运行立即停止。例如:TERMINATE X+30.0 当X-30.0时,仿真运行停止。存储变量的语句:其格式为 STORE A,B,其中 A,B,为要存储的变量名称。,9.3.3 DARE-P的使用方法,重复段:当有些算式需要重复运算时,可用重复段语句,例如:REPEAT 3 FI$.=(V$(-1)-V$)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 仿真应用技术 仿真 应用技术 PPT 课件
链接地址:https://www.31ppt.com/p-5578207.html