《计算机仿真》PPT课件.ppt_第1页
《计算机仿真》PPT课件.ppt_第2页
《计算机仿真》PPT课件.ppt_第3页
《计算机仿真》PPT课件.ppt_第4页
《计算机仿真》PPT课件.ppt_第5页
已阅读5页,还剩152页未读 继续免费阅读

下载本文档

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

文档简介

第九章仿真应用技术 实际应用计算机仿真技术时 还有许多问题需要考虑 本章将向读者介绍部分仿真应用技术 包括 仿真语言 一体化仿真技术 人工智能和专家系统在仿真技术中的应用 仿真建模方法学 以及仿真实验的计划指定和实施 如果要有效地进行仿真研究 最大限度地避免工作中的盲目性 减少研究费用 缩短研究周期 必须对整个仿真研究工作进行科学而周密的组织与设计 对于从事实际应用的人员来说 仿真应用技术或仿真研究的组织方法是非常必要的知识 组织与设计工作的好坏 直接关系到仿真应用的成效 本章的最后向读者介绍这一方面的基本知识 使读者尤其是初学者重视仿真实验的组织 设计和实验工作 了解有关基本知识 并能应用到实际工作中去 考虑到重点突出 篇幅限制等原因 对有些问题仅仅提出 而不做深入讨论 显然 在实际应用时 所要遇到的问题是极其复杂的 需要读者在今后的工作中不断探索 不断总结 第九章仿真应用技术 9 1仿真语言及其发展9 2仿真语言的基本结构和组织9 3一种典型的连续系统仿真语言9 4一体化仿真技术9 5人工智能与仿真技术9 6数学模型和建模方法学9 7仿真实验的计划指定和实施 9 1仿真语言及其发展9 1 1连续系统的数字仿真 在数字计算机上进行仿真研究时 很重要的一个步骤是将研究对象的数学模型转变为能在计算机上实现的仿真模型 并编制仿真程序 仿真程序的一般组成如图3 5 1所示 传统地编写仿真程序所采用的语言是高级算法语言 如FORTRAN语言 BASIC语言 C语言等 除非有时需要高质量的程序以节省使用机器内存和缩短程序执行时间 才用汇编语言编写 在采用高级语言编写仿真程序时 用户发现 虽然基本语言不难学习 并且便于移植 不受机型限制 但如需要充分利用语言的能力与精微之处 则需要很高的熟练程度 尤其是对一些模型结构复杂 模型状态变量和参数多的系统 用户不得不将许多精力和时间花费在模型参数处理 仿真算法和程序的实现 以及输出数据的分析等辅助性工作上 而不能将精力集中于对系统本身的研究 因而需要一种面向问题的非顺序的计算机语言 这种语言应该是足够简单 而且易于学习和使用 用户只需写入被仿真系统的模型 定义变量和必要的数据和命令 就可以进行仿真 这使得用户能摆脱程序编写中的许多细节问题 将精力集中于研究所要仿真的问题本身 这样的一种用于仿真研究的专用计算机语言 便是仿真语言 9 1 1连续系统的数字仿真 仿真程序 具有一定通用性的仿真程序包和仿真语言是处理不同问题常用的三种仿真工具 表9 1 1对它们进行了比较 读者可以根据问题的需求 以及软 硬件的可能性进行选择使用 表9 1 1 9 1 2仿真语言的功能 数字仿真语言是一种直接面向仿真问题的专用语言 是进行数字仿真的重要工具 其主要功能表现为以下三点 1 有一套完整的规定描述模型的符号 语句 句法及语法 并有检测用该语言所编写的源程序中错误的能力 最后能将文法上正确的源程序翻译成机器可执行码 一般是先翻译成某一种高级语言 比如FORTRAN语言 然后由计算机厂家所提供的编译程序转换成机器代码 2 具有设定模型实验的初始条件 终止条件 以及控制并实现单次 多次或迭代运行的功能 3 具有对仿真结果的分析与显示功能 9 1 2仿真语言的功能 由上面所介绍的仿真语言的三种功能可知 使用者使用这种语言不仅能更多地摆脱掉对程序的熟悉与了解 而且由于它具有更强的仿真功能 因此能用来仿真比较复杂的系统 并且对系统进行更全面的实验 9 1 3仿真语言的分类 仿真语言可以按不同方式进行分类 一 按被仿真系统的特点分类按被仿真系统的特点可将仿真语言分为三类 连续系统仿真语言 离散系统仿真语言 通用仿真语言 连续系统仿真语言所采用的模型通常是微分方程 系统的响应是按一个或几个自变量的变化而连续发生的 而离散系统仿真语言所采用的模型通常不包括微分方程 而包括部分代数方程和逻辑关系 其系统的响应是以在一个自变量的离散点上的事件序列的形式发生的 对于两类系统均适用的是通用仿真语言 本书仅介绍连续系统仿真语言 9 1 3仿真语言的分类 二 按数学模型的形式分类连续系统仿真语言按被仿真系统的数学模型形式 可分为 面向方程的仿真语言 面向框图的仿真语言 面向方程的仿真语言采用的模型描述方式是一阶微分方程组和代数方程 即与现代控制理论中的状态空间相对应 面向框图的仿真语言中模型是通过框图的形式描述的 框图中的内容可以是加 减 乘 除运算 逻辑运算和积分运算等基本算符 也可以是基本传递函数或其它特定函数 9 1 3仿真语言的分类 三 按运行方式分类按仿真语言在计算机上运行方式可分为 交互式仿真语言 或会话式仿真语言 非交互式仿真语言 或批处理式仿真语言 交互式仿真语言在具有分时操作系统的大 中型计算机或小型 微型计算机上运行 通常采用图形显示终端 并以键盘或光笔作为输入设备 该方式由于采用对话形式 故可及时观察分析仿真结果 修改模型结构或参数 非交互式仿真语言在大 中型机上通常采用读卡机来输入问题 在微型机上通常采用宏定义方式来描述问题和实验方法 显见这种方式只有在取得一次运行的结果后 才能分析仿真结果 并修改模型参数和实验方法 9 1 4数字仿真语言的发展概况和性能评价 从60年代开始 国外就已着手研制仿真语言 第一个获得广泛应用的数字仿真语言是MIMIC 它是1965年研制成功的一种面向方程的仿真语言 该语言的主要部分是一个翻译器 它把用MIMIC语言书写的仿真源程序翻译成机器代码 1966年美国又推出了另一个数字仿真语言 DSL 90 它也是面向方程的一种仿真语言 但它的翻译器是将仿真源程序翻译成FORTRAN语言 因此这种仿真语言可以和FORTRAN语言兼容 在这期间 美国相继推出了许多种数字仿真语言 为了促进数字仿真语言规范化 进一步普及推广数字仿真的应用 美国计算机仿真协会 SCS 软件委员会于1967年召集了许多仿真方面的专家进行了讨论 最后发表了一个数字仿真语言的标准文本 CSSL 因为SCS是美国仿真学术界的中心 因此CSSL有相当的权威性 在70年代初一直被广泛应用 与CSSL并列的还有一个被广泛应用的数字仿真语言 CSMP 它是IBM公司推出的 由于IBM公司是美国最大的一家计算机公司 所以CSMP也拥有众多的用户 9 1 4数字仿真语言的发展概况和性能评价 在70年代以后 数字仿真语言在提高功能 提高速度等方面有了一些新的发展 它们的代表是ACSL及DARE系列 我国从70年代后期在引进 移植和研制数字仿真语言方面也做了不少工作 并已取得了可喜的成绩 80年代 我国的仿真工作者在引进与消化国外仿真语言的基础上 逐步形成了自己的语言规范 ICSL就是我国一个功能比较齐全 质量较高的仿真语言 9 2仿真语言的基本结构和组织9 2 1对仿真语言的主要要求 一个好的仿真语言应满足下列要求 1 被仿真的问题可以以自然的形式 方便地用仿真语言的语句描述 所谓自然的形式 是指与工程技术人员用来描述被仿真系统的数学模型相一致的形式 通常 被仿真系统的数学模型具有微分方程与代数方程组合的形式 或框图的形式 因而要求仿真语言也能以相似的形式描述系统 最好兼有两种方式描述的能力 因为有些系统的模型具有组合的形式 2 要求仿真语言具有并行性的特点 在被仿真的实际连续系统中 过程是并行发生的 对模拟计算机来说 它是一种并行的计算装置 即对各个变量的运算是同时进行的 因而真实地体现了所仿真的连续系统中的工作状态 但数字计算机是串行计算装置 为了满足闭合回路的要求 一个变量在先前没有规定就不能出现在语句中 因而仿真语言必须有一种自动分选能力 能将规定数字仿真结构的仿真语言的语句排列成正确的计算顺序 从而使计算机按顺序计算 而从仿真语言的程序看来则如并行运算一样 9 2 1对仿真语言的主要要求 3 仿真语言应备有多种不同的积分方法可供使用者选择 积分算法是数字仿真程序的核心 微分方程的数值解法有许多种 不同的方法具有不同的特点 精度 计算速度和对计算机的要求等 适合于不同的应用场合 多种积分算法的存在为满足用户的具体应用要求提供充分的选择余地 4 仿真语言应包含有预先编制好的输入和输出程序 输入程序可使用户方便地输入问题的模型和参数 并且便于修改模型参数 输出程序使用户可按所研究的问题的需要 选择有关的输出变量与参数 以多种输出方式输出 输出方式包括数据表格 时间响应曲线 相平面轨迹及变量与参数的交叉列表和绘图 输出设备的形式应多样化 包括宽行打印机 数字绘图机 图像终端等 使用者可以方便地用于准备技术报告的规格化文件 9 2 1对仿真语言的主要要求 5 为了面向用户 仿真语言应与现有常用的有序编程语言 通常为FORTRAN C语言等 有兼容性 使仿真语言的语句和有序语言的语句混和 从而有经验的用户可以将有序语言的功能引入到仿真语言中 扩展仿真语言的能力 6 为了面向用户 要求仿真语言要适应不同水平用户的要求 对不太熟悉的用户 可以使用仿真语言的基本组成部分 基本结构语句 或基本算符 和代数语句 内装的程序库 完成基本的仿真研究 对熟练的或内行的用户 则要求仿真语言具有扩展能力 能将用户规定的函数和程序加入到内装程序库中 7 要求仿真语言配有宏函数处理器 用户可将他所研究的问题中多次重复使用的部分编写为宏函数 通过宏函数处理器可被主程序反复引用 仿真语言的宏函数不仅是一种方便的速记手段 而且可成为一种表示分系统或特殊运算的直观的 有意义的语言要素 9 2 1对仿真语言的主要要求 8 仿真语言不仅应便于输入和修改系统参数及初始条件 更进一步应能进行多次运行的仿真研究 对多次运行具有逻辑控制 函数存储 二次运行间的代数运算等能力 这种多次运行研究可用于 模型参数及初始条件的 起始计算 和运行结果的 终结 处理 如求得时间历程采样的函数 按预先编定的程序或按前次运算结果确定的参数及初始条件进行多次仿真运行 做迭代仿真实验 优化或模型匹配等研究 保存多次运行的时间历程 交叉绘制或交叉列表表示参数和初始条件对解的影响 进行随机输入作用下的统计特性计算 蒙特卡罗仿真 9 要求具有多重速率的能力 即被仿真的模型可分成两段或多段 相应于被仿真总系统的分系统或暂存部分 以便 不同时间常数的子系统 如快的分系统和慢的分系统 可采用不同的积分方法或积分步长 不同子系统结构在时间推移过程中的转接 10 具有面向问题的错误的诊断能力 使仿真研究者能在源程序的级别上很快发现和改正错误 上述要求是作为设计仿真语言的指导原则提出的 并不是所有仿真语言都能满足所有这些要求 9 2 2仿真语言的一般结构和组织 一 仿真语言的一般结构仿真语言在结构上一般包括三个区域 初始区 动态区和终止区 如图9 2 1所示 一般将仿真语言的单次运行称为仿真 同一问题的多次运行称为研究 1 初始区 初始区包括了所有在一次仿真之前必须进行的输入 输出操作和初始化步骤 那些具有更永久性特点的初始化操作 如指定具体的积分算法 应在进入这一区域之前进行 图9 2 2说明了初始区的一般结构 初始区在作用上可用三个分区域说明 解释程序 初始分区和积分初始分区 9 2 2仿真语言的一般结构和组织 图9 2 1图9 2 2 9 2 2仿真语言的一般结构和组织 解释程序是一个标准的系统程序 它完成仿真分析人员和程序之间在运行时间的交互作用 仿真分析人员可通过终端或其它输入装置输入参数和系统初始化的指令 这些指令经解释程序的翻译而在运行时执行 有下述类型的指令 调整仿真中变量的值 如参数或初始条件 中间读出任何仿真中变量的值 对积分算法中可调控制参数 包括自变量的间隔 初值和终值及误差控制参数 进行控制 进行简单的算术运算 用以根据前一次的结果计算参数的改变量 对个别的仿真运行进行初始控制和对一组仿真运行 研究 进行终止控制 初始分区是进行初始化计算 输入和仿真研究终止逻辑控制的有序编码 积分初始化程序是运行时间所用数值积分系统的一部分 9 2 2仿真语言的一般结构和组织 2 动态区 动态区是仿真过程中在数字计算机和外界之间起积极的交互作用中的一部分 它表示在使用者规定的自变量的离散值上进行的所有计算和输入 输出操作 自变量的基本间隔用每次经过动态区的穿越来表示 称为仿真通讯间隔 这一间隔只由与外界通讯的准确度要求来决定 计算 积分 间隔可以比通讯间隔短 计算间隔严格按数字计算 特别是积分 的准确度要求来决定 图9 2 3所示说明了动态区的一般结构 它可用两个分区域描述 输入 输出和积分 9 2 2仿真语言的一般结构和组织 图9 2 3 9 2 2仿真语言的一般结构和组织 输入 输出分区包括了在基本自变量回路中进行的积分运算以外的作用 其中有那些不属于导数计算部分的 与时间有关的代数计算和动态回路 以及程序条件实验所必需的所有数字输入 程序条件实验用于确定 是否终止仿真并将控制转移到终止区 是否要计算新的值和重新开始积分 在通信间隔上输出系统变量是在这一分区上控制的 积分分区包括了动态区内对自变量的所有积分运算 积分分区还可以分成不同的数段 以便对几组仿真的状态变量采用不同的积分速率 或算法 某些段落也可能根本不包含积分 而可能是仿真与积分速率有不同速率的并行同步逻辑部分的程序 包括积分的各段都有与它相关的 计算被积分的状态变量导数的子程序 因为每一积分段都有这样一个子程序 故它被称为导数段 9 2 2仿真语言的一般结构和组织 3 终止区 终止区接受动态区的控制 并将控制作用返回到仿真的入口处 终止区包括用以适当地终止一次单一的仿真所需要的计算和输入 输出作用 此外 制备某些仿真报告的操作 如数据表和绘图输出 也在这一阶段完成 二仿真语言的程序组织仿真语言的程序通常由三部分组成 翻译部分 运行部分和输出部分 1 翻译部分 翻译部分的主要作用是将使用者用仿真语言编写的仿真程序翻译为中介语言或机器语言的子程序 以供和运行部分的有关程序一起编译 如果仿真语言的程序用中介语言写成 连接和加载 翻译部分还完成语句的分选和排序作用 对使用者规定的输出指令的解释作用 以及输入数据 初始条件和参数 的处理 9 2 2仿真语言的一般结构和组织 2 运行部分 运行部分主要包括仿真运行的控制程序 各种积分算法的子程序 以及各种仿真语言的内装程序库函数 它们与翻译模块输出的程序一起进行编译 连接 加载执行 3 输出部分 输出部分按使用者规定的输出指令要求将仿真运算结果进行处理 它包括处理输出指令 从有关的数据文件中抽取所需数据的子程序 在指定的输出设备上显示仿真结果的相应的子程序 9 3一种典型的连续系统仿真语言 DARE P DifferentialAnalyzerReplacementPortable 是由美国阿里桑那 Arizona 大学电器工程系计算机科学研究实验室研制成的一种仿真软件 它是按批处理方式设计的 适合在中型及大型计算机上运行 国内已有多家单位将它移植到微型机上 其主要特点如下 9 3 1DARE P的主要功能 DARE P主要功能如下 面向方程 其模型采用一阶微分方程和代数方程组描述 其状态变量数 200 具有自动安排各方程运算次序的能力 共有10种积分方法 见表9 3 1 可供选择 用户还可加入自定义的积分法则 有多种库函数可供调用 如延迟函数 比较器 饱和 死区 脉冲采样 滞环等 具有多种输出方式 包括打印数据和图形 用绘图机输出图形 等等 在程序运行过程中 可以分阶段给出编程错误诊断信息 便于用户查错 9 3 1DARE P的主要功能 表9 3 1DARE P仿真语言的10种积分法 9 3 2DARE P语言的基本结构 翻译系统TRNSYS 占内存约90KB 这部分共有1个主程序 1个数据块 26个子程序和2个函数子程序 它的主要作用是将用户用仿真语言编写的仿真题目程序翻译成FORTRAN语言 编译完后 自动与运行系统连接 一起运行 运行系统RUNSYS 占内存约170KB 运行系统中包括1个主程序 5个基本子程序 以及其它子程序和函数子程序等 这些子程序可分成三类 存放控制变量值及生成数据文件子程序 各种积分法则子程序 仿真中常用的一些函数子程序 运行系统中还分为单次仿真和多次仿真两种执行过程 两种过程的输出结果各有不同要求 9 3 2DARE P语言的基本结构 3 输出系统OUTSYS 占内存约40KB 输出系统中有1个主程序 1个数据块 19个子程序和2个函数子程序 它的作用是按输出指令的要求从有关数据文件中抽取所需信息 完成所要求形式的输出结果 9 3 3DARE P的使用方法 DARE P是一种模块式结构语言 模型描述 初始值和参数设置 以及输出指令 都分别写在各个块中 每一种模块都有一定的识别符号 第2列上写有 符号 其后再接1或2个字符 各模块名称及其内容见表9 3 2 9 3 3DARE P的使用方法 下面分别说明各模块内容及有关子程序 1 导数块 D1和 D2 本块主要用于写入状态方程和所定义的变量方程 其状态变量导数用变量名加一圆点号 表示 例如 一阶微分方程为其书写格式为方程可以按任意顺序写入 翻译程序会自动将方程组整理出运算顺序 但是表达式中必须避免代数环出现 即要求用显式表示 而不能用隐式表示 例如 以下两式就构成了代数环 Q P XP Y Q因为上式中的变量Q需从两方程中解出 故构成了代数环 9 3 3DARE P的使用方法 导数块中可以包含以下程序及变量 过程段 它用于定义一组变量 其格式为PROCEDP Q X Y ENDPRO被定义变量 控制仿真运行终止语句 其格式为TERMINATE算术表达式当表达式小于或等于零时 仿真运行立即停止 例如 TERMINATEX 30 0当X 30 0时 仿真运行停止 存储变量的语句 其格式为STOREA B 其中A B 为要存储的变量名称 9 3 3DARE P的使用方法 重复段 当有些算式需要重复运算时 可用重复段语句 例如 REPEAT3FI V 1 V FLV FI FI 1 CENDREP即实现以下运算 FI1 V V1 FLFI2 V1 V2 FLF3 V2 V3 FLV1 FI1 FI2 CV2 FI2 FI3 CV3 FI3 FI4 C导数块 D1和 D2都是用于书写模型方程及变量表达式的 一般只用一块 D1就够了 如果需要分开两组写 当采用不同的积分方法时 则可再用 D2导数块 9 3 3DARE P的使用方法 2 逻辑块 L 这块主要用于控制多次仿真运行 控制方式是重新设置变量值 并调用仿真运行程序RUN等 若是单次时不需要逻辑块 本块中除调用运行子程序RUN完成从T 0到TMAX的一次仿真运行外 还调用以下子程序 RESET用于将状态变量等设置到初始值 但不对外部定义变量 参数 重新设置 仿真参数如DT DTMAX DTMIN等也不重新设置 CROSS用于将输出变量随时间变化过程写于磁盘文件CROSS中 其作用与STORE 存储 子程序相似 SAVE用于将输出变量随时间变化过程写于磁盘文件SAVE中 如不用SAVE 则输出变量将写在磁盘文件TIME中 但TIME文件只保留多次运行中的最后一次结果 STROF用于阻止TIME文件的数据输出到SAVE文件中 因为有时只对多次运行中的最后一次解感兴趣 故这时可调用这一子程序 STRON用于恢复TIME文件向SAVE文件的输出 9 3 3DARE P的使用方法 3 FORTRAN块 F 和自编块 O 4 表格块 T 用于设置一维和二维任意非线形函数自变量和函数值的数据表格 以及相应的线性内插查表函数 以一维函数为例 其格式如下 TEXAMPLEOFONE DIMENSIONALTABLENAME 43 0 1 04 0 5 08 0 3 09 0 2 0以上表格规定了一个单变量函数NAME X 有4个数据点 自变量值3 0 4 0 8 0 9 0自小到大排列 5 方法块 M 主要用于调用各种积分法则子程序 6 打印控制块 P 用于阻止打印 7 模型结束 END 写于第1 3列上的END字符表示模型结束 另外 73 80列作为识别区 语句内容不能写入 9 3 4应用例子 设二阶系统的微分方程为状态方程为在应用DARE P仿真语言时 用户只需书写以下程序即可 D1 SECONDORDERSYSTEMY YDOTYDOT D YDOT Y 1 0ENDTMAX 50 0 DT 0 1ENDLIST Y YDOTPLOT YPLOTXY Y YDOTEND 9 4一体化仿真技术 50年代最热门的仿真领域是火炮控制和飞行控制系统 60年代是火箭 导弹 控制系统 70年代是航天 能源和经济管理系统 80年代是计算机集成制造系统 CIMS 而90年代最热门的仿真领域是仿真技术本身的革命 即仿真理论的发展和仿真开发系统的革新 这主要是因为各种技术 工程所面临的系统愈来愈庞大和复杂 要对这类系统进行符合相似程度的仿真实验 传统的仿真理论与仿真方法难以适应 只有发展新型的仿真技术才能提高仿真效率 改善仿真环境 9 4一体化仿真技术 一体化仿真技术起源于80年代中期 由于当时仿真应用在广度及深度方面已达到一个相当的地步 已有的各种仿真软件常常不能方便而协调地支持仿真研究的全过程 而且不同的用户或者不同的仿真任务对仿真环境均有不同的要求 此外更重要的是仿真工程师已经意识到 仿真不是单纯的对模型的实验 而是应当包括从建模到实验再到结果分析的全过程 换言之 仿真软件不再只是由仿真程序组成的简单系统 而是定义了一个建模 分析和设计全过程仿真的环境 在这个环境中 嵌入了一个仿真运行系统 特别重要的是 这个环境支持仿真研究的全过程 包括模型描述 实验框架描述 实验运行 统计分析 输出报告 图形显示 以及对与各种仿真关联的资源 如 模型 参数集 实验框架 算法和实验结果 的存储和管理 9 4一体化仿真技术 一体化仿真环境的定义是 一体化仿真环境是一个软件工具的集合 它包括设计 编制及检验模型 编写及证实仿真程序 准备模型输入数据 分析模型输出数据 设计及执行模型实验大纲 由此也可以认为 所谓一体化仿真环境就是将若干个具有不同功能的软件集成为一个包含有多种功能的软件系统 使仿真模型能根据仿真任务的需求进行分解和拼合 并能对仿真资源一体化在集成的程度上可以不同 比如 可以仅仅实现功能上的一体化 或仅仅实现资源管理上的一体化 线集成 也可以实现功能与资源 或功能与模型的一体化 面集成 还可以对功能 模型处理及资源管理全面实现一体化 体集成 如图9 4 1所示 9 4一体化仿真技术 图9 4 1一体化仿真模型 显见 这样的一体化仿软件必须以工程数据库为核心 使操作系统 编译系统 仿真语言 数据库管理系统 统计分析和图形生成软件形成一个整体 基本的一体化仿真环境如图9 4 2所示 各部分的主要功能如下所述 9 4一体化仿真技术 图9 4 2一体化仿真环境 9 4一体化仿真技术 一 一体化语言一体化语言部分的模块主要由一体化语言命令集和一体化语言预编译器所组成 命令集解释系统并接受用户的命令 对该命令进行语法检查 若命令合法 则调用完成该命令的有关模块 将接收到的参数传给相应的模块 并完成命令所要求完成的功能 若命令不合法 则打印错误信息 并能给出正确的语法格式 一体化语言预编译器则是处理用户命令 并将命令翻译成仿真语言的格式写入仿真语言程序 仿真工程师按一体化语言格式写成仿真程序 预编译器的功能就是读取用户仿真程序 区别程序语句和命令语句 并完成命令语句功能 在一体化仿真语言的支持下 用户可以用简练的命令集构成的仿真程序 完成从建模 运行到优化和结果分析一系列复杂的仿真过程 9 4一体化仿真技术 二数据库管理系统数据库管理系统用关系数据库RDB实现 常用的有ORACLE FOXPRO DBASE等关系数据库语言 各种仿真关联资源 模型 参数集 实验框架和实验数据等都存储在这里 数据库管理系统通过对这些资源的存储和管理 以实现不同的仿真目的 数据库管理系统的存在是一体化仿真环境与传统仿真工具之间最大差别的原因之一 也正是由于数据库管理系统能够在仿真全过程中对仿真资源实行同一管理 因此也有学者认为 一体化仿真环境是以仿真数据库为核心的软件系统 9 4一体化仿真技术 三 实验运行系统实验运行系统包括辨识 仿真 优化和分析等支撑服务软件 其主要功能应包括 辨识软件的主要功能是根据用户要求和实验数据完成仿真模型的建立 参数辨识和模型验证 采用的算法有最小二乘法 极大似然法和随机寻优法等 仿真部分应包括各种数值积分算法 如亚当斯多步法 龙格 库塔法 以及解刚性系统的雷纳尔法 半隐式龙格库塔法等 优化包括参数寻优和函数寻优等功能 以实现系统参数优化和控制设计 其算法应包括梯度法 单纯形法 随机搜索寻优等方法 分析软件至少应有数据输出和存放 图形和曲线生成功能 对于较强的软件还应有对仿真结果的统计 分析 列表等功能 甚至能达到将仿真实验阶段的分析结果反馈到建模阶段 以实现闭环仿真 9 4一体化仿真技术 目前一体化仿真软件的实现 公认最好的是由美国学者研制成的TESS TheExtendedSimulationSystem TESS由七部分构成 TESS语言 数据库管理系统 图形产生器 形式处理器 图形网络建立器 FORTRAN子程序库 与仿真语言的接口 9 4一体化仿真技术 整个系统以一个关系数据库为核心 通过TESS语言关系 存储 检查数据库的数据 如图9 4 3所示 关系数据库管理的数据包括 描述模型的数据 仿真模型的输入数据 仿真实验结果 输入 输出显示的参数 用户使用TESS可以做到建模 仿真 分析结果处理的一体化以及数据和参数格式的标准化 图9 4 3 9 5人工智能与仿真技术9 5 1概述 在过去的几十年时间里 作为研究智能本质 并试图建立实用系统的人工智能学科 在知识获取 知识表示 问题解答 定理证明 程序自动设计 自然语言理解 计算机视觉 多媒体技术 机器人学 机器学习和专家系统等方面 已取得了令人鼓舞的成果与广泛的应用 各种用途的专家系统正在不断涌现 相应地理论和关键技术也已取得突破 并日益发展和完善 由于人工智能 AI 不仅在人类探索智能本质方面具有重大的科学价值 而且在帮助人们解决某些专门领域中的问题时具有重大的经济价值 因此 众多的学科和技术正在不断地受着人工智能的影响 将人工智能 专家系统嵌入到仿真环境是减少仿真中的人力消耗 提高仿真自动化程度和仿真精度 拓宽一体化仿真规模的不可缺少的技术 也是仿真技术本身变革的外在动力之一 仿真工程师们普遍关注人工智能 专家系统学科的发展 并期望引入人工智能技术增强系统仿真 建模的能力 其主要表现在 9 5 1概述 引入知识表达及处理技术以扩大仿真模型的知识描述能力 在建模 仿真实验设计和仿真结果分析等阶段中 引入专家知识 自动推理和解释机制 以辅助领域工程师做各种决策 辅助模型的修正和维护 实现友好的人机界面 可视化技术 自然语言理解 多媒体技术 建立智能化数据库以及辅助数据的管理维护 AI技术在仿真中的应用 最近几年已有相当的发展 许多理论问题和技术难点已获得突破 随着计算机软 硬件的发展 具有智能化的仿真环境已成功地应用于许多领域 限于篇幅 在此仅介绍人工智能在仿真技术中的应用 以及讨论某些相关的问题 而不去研究具有智能化仿真环境在具体领域中的应用问题 有兴趣的读者可以参看相关的文献 9 5 2人工智能在仿真技术中的主要应用 图9 5 1是目前经常用来描述人工智能与仿真技术在学科上的交叉图 它涉及仿真领域的各方面 在此仅讨论几个主要方面 图9 5 1 9 5 2人工智能在仿真技术中的主要应用 一知识库用于系统的建模与模型验证人类的科学知识从低级 特殊到高级 一般有层次地积累起来 用脑力来完成这些与科学理论构造有关的知识的组织过程是困难的 这需要付出巨大的代价 对物理系统的建模就属于这样的工作 它不仅需要一定的数学 物理等知识 而且需要相当的实际经验 即领域知识 才能做好工作 但利用计算机适当地组织来自世界系统的信息 不仅对人机紧密结合的发展有所帮助 而且对建立一个能彻底支持建模活动的信息库起了极大的作用 在这样一个建模活动中 知识库扮演着一个重要的角色 知识库用于建模与模型验证的基本课题是 在仿真研究的各个不同阶段上借助专家知识库辅助仿真工程师对仿真模型的建立 验证和综合进行咨询服务和决策 其主要应用项目是建模顾问专家系统 它用在建模过程中应用模型库选择模型元素并合成适当的模型 其中心问题是能够根据人类的经验用规范的形式来综合描述物理过程 9 5 2人工智能在仿真技术中的主要应用 二 仿真技术与人工智能技术的结合在仿真与AI结合方面 一个重要的领域是AI对于大系统的计算机仿真 特别是用于决策系统的仿真 这时 要在一个信息不充分 不确定 甚至不正确的情况下去进行计划 调度和做出各种方案的假设 在这类系统的仿真研究中 AI技术是十分适用的 由于这类系统的某些子过程主要表现为启发式或符号运算式 因此用一个专家系统来建模是很合适的 对于另一些子过程 它们具有确定的和连续的性质 如物理过程 因此可以按照一般动态系统建模方法来建模 另一方面 仿真可用于评估一个知识系统 知识库系统的一个重要应用是控制生产过程 类似人在控制过程中所起的分析和支持作用 为了测试这样一个智能控制系统 有必要建立系统仿真模型 9 5 2人工智能在仿真技术中的主要应用 若将仿真技术与最优化技术有机地结合起来 就可实现自寻最佳的结果 实现这种智能化仿真系统所存在的主要问题是在目标的合适形式 算法及硬件能力等方面 目前的仿真基本上都是属于开环仿真 领域工程师要花大量的时间和代价去面对一大堆表示仿真结果的数据和图表 在仿真环境中引入知识和专家系统可用于仿真实验结果的分析和决策 并将结果反馈到建模型阶段 再根据仿真结果和专家决策对仿真模型做综合分析 9 5 2人工智能在仿真技术中的主要应用 三 仿真模型中知识的表达在经典的建模与仿真方法中 主要存在的问题是 表达式模型结构的灵活性 扩展程序设计的能力 面向批处理的建模等 解决这些问题的方法之一 是采用AI的知识表达系统去表达仿真模型中的知识 知识库仿真 具体而言 首先是要建立面向对象的仿真语言 这里的知识包括下述一些内容 系统中关于每个实体的不同事实 实体与实体之间关系的知识 实体与系统特性之间关系的知识 此外 还包括作用在系统上的外部影响关系的表达 总的特性诸如 模型在建立与改变过程中的交互性 知识表达具有灵活性和扩展性 在建立模型过程中较少的程序设计工作量 相容性和完整性检查 9 5 3仿真专家系统 仿真专家系统是一个基于知识库及推理机制的仿真软件系统 它具有下述与常规仿真系统不同的特点 具有建模专家系统 在AI基础上建立数据库 知识库及控制结构 数据库中除数值数据外 还有大量的符号数据 它们用来描述有关事实 判断 规则及经验的知识 仿真模型包括 数值 符号处理 算法 模式搜索 集成信息和控制 命令结构分离 具有智能化前端 系统仿真的目的 就是用模型来产生用以拟合实际系统的行为数据的数据 在建模方法学中 有演绎建模法 也有归纳建模法 演绎法是人们把建模方法的经验总结出来提供给计算机系统 作为以后建模的依据 归纳法则是借助计算机系统去分析数据 抽取特征 归纳概括成有指导意义的规则 9 5 3仿真专家系统 不管哪种方法 要实现建模过程的自动化 都必须有一个完备的专家系统支持 特别对于非工程系统的研究领域 更需要一个庞大的仿真ES的支持 这是因为 在这些领域里 没有完善的公式 甚至很多问题不能用公式表达而只有对问题的非形式化描述 仿真系统应该能适应这种描述 理解其意义 并根据它来建立模型 例如 对排队系统的仿真 就应该有关于排队系统的基本常识和描述 这些描述很类似于人们日常的会话语言 而不是一串代数方程或FORTRAN代码 因此 计算机如何适应人的这种思维习惯 即模型的非形式化描述 就成了仿真建模的一个重要问题 9 5 3仿真专家系统 计算机的功能应尽可能适应用户描述仿真问题的习惯 尽可能适应系统仿真本质的要求 作为人类认识世界和改造世界的有力工具 为此 必须建立对计算机的高一级控制功能 给计算机赋予一个 被仿真 系统的 世界观 让计算机能理解用户描述的问题 并把这种模型转变为其内部的仿真计算机模型 以用户熟悉和易于理解的形式输出仿真结果 这样一个方便的人机友好的智能化仿真环境 能够让用户以更多的精力去了解客观世界的本身 而不陷于具体的仿真实现上 由此可见 这种达到智能化仿真水平的系统是很有意义的 9 5 3仿真专家系统 目前 从事仿真技术的人们正在把更多的注意力转移到社会 经济 环境 生态等对象和系统上 计算机仿真越来越多地用于这类非工程系统的研究 预测和决策 由于非工程系统多数是复杂的大系统 具有 黑盒 的性质 故人们对系统的结构往往很难了解 只能根据其表现出来的行为实现建模和仿真 人们往往是根据观测的数据和经验来描述这些行为的 因此采用自然语言的交互形式 并且借助专家系统进行辅助分析 这对于建模和仿真是很有利的 所借助的专家系统应具有交互式的人机接口和用户存取知识库 此外 还应具有一定的逻辑推理能力 这样就可使计算机从单纯的数据处理变为有一定智能的推理机 9 5 3仿真专家系统 现在已开发出一些能实际应用的仿真专家系统 仿真研究涉及许多方面的专家知识 一个计算机仿真过程包括 建立模型 分析解的存在性 选择仿真语言 编写仿真程序 实现仿真分析和优化等 在建模和辨识方面 需要统计学知识 在仿真方面 需要数值分析和概率论的知识 在这些方面 可建立相应的知识库和推理系统 从而给仿真研究提供一个决策咨询系统 仿真专家系统 用以实现仿真研究的自动化 9 5 3仿真专家系统 例如 1984年法国INRIA的C 戈梅斯 C Gomez 发表的关于随机控制系统建模 仿真和优化的专家系统就是一种很有意义的探索 系统采用半自然语言对求解问题进行描述 然后自动地实现以下功能 选择和产生数学模型 进行理论分析 选择仿真算法 生成FORTRAN程序 编写和编辑报告 这个用于辅助建模型 仿真和优化的专家系统 采用LISP语言编写程序 并将程序嵌入MACSYMA系统中 另一个例子是由美国NASA开发的仿真专家系统NESS 它能辅助用户对动态系统进行数学仿真 并能对仿真结果进行解释和说明 如果输出不满足性能要求 则NESS可自动加入一个合适的补偿器 NESS由两个子系统构成 专家子系统及数值计算子系统 系统中的知识采用框架结构来描述 9 5 4智能化仿真的研究与探索 随着人工智能技术的发展与完善 人们设想了第五代智能化建模与仿真环境 它将把面向建模与仿真方法学的知识或面向某种应用领域的知识装入环境 构成各种专家系统 将机器学习能力及面向目标的知识处理能力引入环境 将自然语言 图形及视像技术等用于人 机智能接口 从而构成高度智能化的面向用户 面向问题 面向实验的建模与仿真环境 它将使经典的仿真系统转变成新一代的专家仿真系统 自80年代中期以来 人们已在专家系统及智能接口方面做了大量的探索工作 包括 智能前端型 咨询式系统型 紧密结合型等各种建立系统数学模型的专家系统 用以辅助确定模型框架 结构特征化 参数估计 模型评价与检验 原系统实验设计等 仿真模型建立及检验的专家系统 仿真算法选择专家系统 输出分析专家系统 建模 仿真全过程专家系统 智能接口 自然语言交与及动画视觉交与 必须指出 国内学者也在这方面开展了不少工作 限于篇幅 在此不予赘述 9 5 4智能化仿真的研究与探索 新的研究课题有 1 自然语言 语音识别 视像系统 图形技术在环境中的应用 2 新的建模 仿真方法学 3 各种仿真专家系统 4 仿真信息 知识库管理系统 5 将机器学习能力引进环境 6 扩展环境功能以适应智能系统模型的建立与仿真 7 适合环境中各类用户软件的开发环境与工具 8 认识仿真过程中质量的保证问题 可以预见 随着计算机 软件工程 人工智能 控制论 系统论 建模 仿真技术的发展 新一代智能化建模与仿真环境终将成为现实 9 6数学模型和建模方法学 在众多的仿真文献中 对仿真的定义是基于同一观点 为了分析与研究已经存在的或尚未建成的系统 首先应该建立系统的数学模型 并将其安装在计算机上进行实验 这一过程就称为仿真 显见 模型 和 实验 是仿真的两个重点 但传统的仿真着重于 实验 和 实验方法 研究 近年来 随着一体化仿真技术的提出和发展 人们认识到仿真应该是 建模 实验 分析 建模 这样一个循环体系 限于篇幅 在此重点介绍数学模型的作用 性质和建模方法的一般性原理 而关于模型结构辨识和参数估计的具体算法 则是属于系统辨识的范畴 9 6 1数学模型的作用和目标 数学模型 无论是在纯科学领域还是在实际工程领域都有着广泛的应用 首先 数学模型可以帮助人们不断加深对客观世界的认识 并且启发人们去进行可以获得满意结果的实验 另一方面数学模型有助于提高人们的决策和对客观世界的干预能力 针对这两个目标 又提出三级重要的标准 如图9 6 1所示 图9 6 1数学模型的作用 9 6 1数学模型的作用和目标 从提高认识能力这个方面考虑 为了提高对通信 思考 理解三个层次的认识 加强这种影响作用 应做到 首先 一个数学描述应提供一个准确的 易于理解的模式 即在信息传递时 这种描述模式可以减少引起误解的几率 其次 在研究系统的各种不同问题或考虑各种选择时 需要一个相当规模的辅助思考过程 最后 一旦模型被综合成为一组公理和定律时 这样的模型将会使研究者更好地认识客观世界的现象 同样 为了加强决策能力 也分化出三个不同的层次 管理 控制和设计 管理是一种十分有限的干预方式 通过管理这种方式可以确定目标和决定行动的大致过程 但是这些策略无法制定得十分详细 其具体实施必须委托给下一个层次 并在下一个层次被翻译和理解 因此 在意图与实现两者之间的联系就变得模糊不清 在控制这一层 动作与策略之间的关系是确定的 但由于在控制层中动作仅限于在某个固定范围内选择 所以仍然限制了干预的范围 与此相反 在实施决策的设计层 设计者能在较大程度上进行选择 扩大或替换部分真实系统 以满足设计者的要求 相对其他两层而言 实现一种设计所花费的代价更高 而且也不常进行 但是控制和管理这两层是一种连续的 在线 活动 9 6 1数学模型的作用和目标 根据这种目标观点 现实世界的物理系统按两种观点可分别分为两部分 即 按第一种观点 物理系统由能观测和不能观测两部分组成 按第二种观点看 物理系统是由能控制和不能控制两部分组成 能观测部分对应于系统中所有能被辨识 理解 观测的部分 而能控制部分对应于系统中那些可用某种方法加以修改 转换 影响的部分 余下的部分对应不能观测和不能控制的部分 在一个实际的物理系统中它们占的比例往往很大 而一个真实的物理系统这种分解不是唯一的 它依赖于工程师的理解力 对待事物的看法和客观条件 当然 观测和控制相应地限制在系统的能观测和能控制部分 由于不能观测和不能控制部分的存在 因此 对实际系统的观测和控制的结果将是不确定的 而对系统认识得越深入 则对于观测得理解和控制成功的把握性也就越大 9 6 1数学模型的作用和目标 到现在为止 已清楚地看出建模工作有两个目的 一个数学描述具有目标上的二元性这一事实具有特殊的意义 虽然在一个给定的环境中 建模可能是为了加深对系统的认识程度 但同时也必将在同一水平上提供对系统控制的可能 换句话说 为了控制而建立的模型将有助于对系统的认识 而为了提高认识所建立的模型也有助于提高对系统控制的精度 建模的这种关系的主要优点是能将互不关联的关系结合成一个整体 否则这些关系之间的隐含点将难以刻画 这一点对于预测现在已经掌握的数据以外的数据有着特殊的意义和用途 虽然数学建模可为许多目的服务 但是 如果认为一个特殊的描述对所有目标都适用 那将是十分愚蠢和可笑的 对于这一点 过去一直没有很好地加以强调 这种情况在定量分析过于繁琐 数学上的严格性过于精确时可能发生 尤其是对于建模新手 更应注意 在实践中 建模的目的应该用较为准确的和具体的形式描述 而建模目的对于建模过程和建模效果有着很大的影响 随着建模工程师对建模认识的深入 这一点将表现得更为明显 9 6 2数学模型的性质和假设 在第一章中 已从功能的角度研究了系统的概念 这一部分将从建模的角度研究系统及其数学模型 为此还是先研究系统的概念 一 系统目前 人们把真实世界的一部分理解为系统 并将它定义为几个相互作用的分系统的合成体 从这个定义中 可以看出系统的 递归 性 即一个系统将是若干分系统的合成 而分系统中的每一个又依次是另一些系统的合成体 由此而带来下面的系统 可分性 由上述定义的结果看出 一个系统可以是一个大系统的组成部分 因此任何一个系统均需提供一个界面 通过它可以和其他系统相互作用 界面代表了有可能发生在系统边缘的潜在事件 在边缘处发生的事件 一方面取决于处于边缘内部的系统 另一方面则取决于边缘外的环境 系统的这个特点约束了系统对界面的作用 这个约束就是所谓系统内部结构 正是这个内部结构 必须允许在希望停止分解时能停止抽象的描述过程 或者在希望继续分解时能进一步具体化 9 6 2数学模型的性质和假设 为了精确地使内部结构具体化 必须具有将互相分离的约束因素结合起来重新构造的能力 这里所指的约束是指组成系统的所有各部分的内部结构在它们相互界面上的约束 若上述重构对于某个分解是可行的 则系统将服从这个分解 二 抽象模型和真实世界的过程之间最重要的关系之一是抽象 它是建模过程的基础 例如在研究物体的运动轨迹时 经过抽象可以将物体仅仅处理成一定质量的点 在数学上 集合的概念是建立在抽象的基础上的 共同的基础使集合论对于建模过程非常有用 通常 数学模型可看成是由一个集合构造的 9 6 2数学模型的性质和假设 在建立一个数学模型时 需要建立几个抽象概念 即定义几个集合 输入 输出和系统状态变量 进一步 在这些抽象的基础上 可建立复合的集合结构 特别是要定义的函数关系 经常称这个过程为理论建模 在此应特别提醒读者注意的是 基于面向对象的系统分析和设计方法 在现代建模理论中越来越引起工程师们的注意 再从模型到现实世界过程这方面看 这些集合最终要应用到实际物理系统中 因此 抽象必须和真实目标相联系 由此可提出建模中的一个基本公理 存在一个十分复杂的抽象模型 它可以详细而精确地描述真实地物理系统 根据这个公理 可不断地把细节增加到原抽象中去 以达到抽象与真实目标更接近的目的 这个过程成为具体化 也就是使抽象不断地变得具体 9 6 2数学模型的性质和假设 在建模方法学中 还有一个基本假设 对于被研究的物理系统 当它们用于某种特殊目的时 对于研究过程和建模的目标 至少是 部分可理解 的 可分解的系统允许从系统中取出任何一部分 而不影响其他部分 在现代科学中 往往假定每一个特定领域都是高度可分解的 例如 对大多数的航行器运动 均可在一定范围内将三维运动分解为水平和垂直运动 所以 部分可分解 的系统有着明显的工程实际意义 9 6 2数学模型的性质和假设 三 建模的公式化利用一个通用的公式可将一个物理系统定义为下面的集合结构 S t x w q y 式中t 时间集x 输入集w 输入段集q 内

温馨提示

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

评论

0/150

提交评论