9.3一种典型的连续系统仿真语言.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
9.3一种典型的连续系统仿真语言

9.3 一种典型的连续系统仿真语言 ??? DARE-P(Differential Analyzer Replacement Portable)是由美国阿里桑那(Arizona)大学电器工程系计算机科学研究实验室研制成的一种仿真软件。它是按批处理方式设计的,适合在中型及大型计算机上运行。国内已有多家单位将它移植到微型机上。其主要特点如下: 9.3.1 DARE-P的主要功能 ??? DARE-P主要功能如下: ??? (1)?????? 面向方程,其模型采用一阶微分方程和代数方程组描述,其状态变量数≤200。 ??? (2)?????? 具有自动安排各方程运算次序的能力; ??? (3)?????? 共有10种积分方法(见表9.3.1)可供选择,用户还可加入自定义的积分法则; ??? (4)?????? 有多种库函数可供调用,如延迟函数﹑比较器﹑饱和﹑死区﹑脉冲采样﹑滞环等; ??? (5)?????? 具有多种输出方式,包括打印数据和图形,用绘图机输出图形,等等; ??? (6)?????? 在程序运行过程中,可以分阶段给出编程错误诊断信息,便于用户查错。 ??? 表9.3.1 DARE-P仿真语言的10种积分方法 序? 号 方?? 法 1 龙格-库塔-梅森变步长法 2 二阶龙格-库塔 3 吉尔(Gear)变步长法 4 四阶龙格-库塔法 5 二阶亚当斯(Adams)预估法(用二阶龙格-库塔启动) 6 一阶欧拉法 7 欣德马什(Hindmarch)变步长法 8 四阶亚当斯-莫尔顿预估-校正变步长法 9 隐式三阶龙格-库塔法 10 费尔伯格(Felberg)四(五)阶龙格-库塔变步长法 ? 9.3.2 DARE-P语言的基本结构 ??? DARE-P共包括三个模块:翻译系统﹑运行系统和输出系统,共约6000条语句,占内存330KB左右。下面分别说明这三个模块的内容。 ??? 1.? 翻译系统TRNSYS(占内存约90KB) ??? 这部分共有1个主程序﹑1个数据块﹑26个子程序和2个函数子程序。它的主要作用是将用户用仿真语言编写的仿真题目程序翻译成FORTRAN语言,编译完后,自动与运行系统连接,一起运行。 ??? 2.? 运行系统RUNSYS(占内存约170KB) ??? 运行系统中包括1个主程序﹑5个基本子程序,以及其它子程序和函数子程序等,这些子程序可分成三类: ??? (1)?????? 存放控制变量值及生成数据文件子程序; ??? (2)?????? 各种积分法则子程序; ??? (3)?????? 仿真中常用的一些函数子程序。 ??? 运行系统中还分为单次仿真和多次仿真两种执行过程。两种过程的输出结果各有不同要求。 ??? 3.输出系统OUTSYS(占内存约40KB) ??? 输出系统中有1个主程序﹑1个数据块﹑19个子程序和2个函数子程序。它的作用是按输出指令的要求从有关数据文件中抽取所需信息,完成所要求形式的输出结果。 ? 9.3.3 DARE-P的使用方法 ??? DARE-P是一种模块式结构语言,模型描述﹑初始值和参数设置,以及输出指令,都分别写在各个块中。每一种模块都有一定的识别符号(第2列上写有$符号,其后再接1或2个字符)。各模块名称及其内容见表9.3.2。 ????? ???????????????????表9.3.2 模块名称及其内容 名称 识别符 内容 导数块1 $D1 描述导数块1中所有的系统模型方程 导数块2 $D2 描述导数块2中所有的系统模型方程 逻辑块 $L 控制仿真运行中的FORTRAN码 表格块 $T 以表格形式规定的函数 函数块 $F FORTRAN函数或函数子程序 方法块 $Mn 所选用的积分法则号数为n 自编块 $O 用户自己提供的积分法则子程序 打印控制块 $P 控制打印输出 ? 下面分别说明各模块内容及有关子程序。 ??? (1) 导数块($D1和$D2) ??? 本块主要用于写入状态方程和所定义的变量方程。其状态变量导数用变量名加一圆点号(.)表示。例如: 一阶微分方程为? 其书写格式为??? ??? 方程可以按任意顺序写入,翻译程序会自动将方程组整理出运算顺序。但是表达式中必须避免代数环出现,即要求用显式表示,而不能用隐式表示。例如,以下两式就构成了代数环: Q=P-X P=Y+Q 因为上式中的变量Q需从两方程中解出,故构成了代数环。 ??? 导数块中可以包含以下程序及变量: ??? ◆?过程段:它用于定义一组变量,其格式为 ???????? PROCED?? P,Q,…,=X,Y, … ???????? ENDPRO??? 被定义变量 ??? ◆ 控制仿真运行终止语句:其格式为 ??? TERMINATE? 算术表达式 ??

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档