- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)