编辑: xiaoshou | 2016-03-16 |
21213 图形编辑环境 图形编辑环境的组成如图
2 所示 ,由于图中表示比较清 晰 ,不再进行详细说明.
21214 组态的过程 组态过程包括模块添加、 节点添加和进行连接三个过 ・
6 6 ・ 系统仿真学报2000 年1月图2图形编辑环境的组成 图3锅炉风烟系统组态图 程 ,其中连接过程中系统具备自动布线功能 ,可大大减小用 户的连线工作量.图3所示为锅炉风烟系统的组态图.
213 模型的自动生成
21311 热力系统模型代码的自动生成 将用来描述一个模块数学模型的一段程序代码称为该 模块的模块代码 ;
而在组态图上以图形方式表示的模块图 标 ,只有与模块代码结合起来 ,才具有实际意义 ;
另外 ,一个 完整的模块还应包括模块端口的定义.描述三者之间的一 个对应关系 ,称为一种模块类型. 在程序代码部分 ― ― ― 包括计算表达式、 Fortran 库函数 调用和模块函数调用等部分组成 ,应该以一种虚拟代码方式 表示 ,即代码中与模块名称、 实际工质属性等有关的部分以 某些特定的符号来代表 ,本系统中所使用的特殊字符及其含 义如表
1 所示.在生成一个实例模块的模型表达式时 ,再将 ・
7 6 ・ 第12 卷1期程芳真等 :面向对象的图形化自动建模系统的研究 这些特定的符号替换为实际内容 ,这一过程称为模块代码的 虚实结合.这种虚实结合方式 ,可以使得系统具有很好的开 放性. 表1模块源程序字符串中特殊字符的含义 特殊字符 具体含义&
字符串 SYSTEM ,用在环境常量中 # 模块名称 ,用在与模块相关的变量中 % 工质代码(如 WATER 、 AIR 、 GAS 等) ,主要用在与工质相关参数的计算函数中 $ 工质代码缩写(如 W 、 A 、 G 等) ,用在各种变量中 ,以表示变量所代表的工质 @ 工质是否为可压缩流体(
1 表示是 ,
0 表示不是) ,用在与流体的可压缩性有关的调用函数中 <
X >
X 为端口号 ,它跟在 %、 $ 和 @的后面用于指明所取工质的端口 ,缺省情况下认为端口号为
0 21312 流体网络模型代码的自动生成 由于系统是以热力系统为主进行自动建模的 ,流体网络 的信息要由系统自动识别 ,其核心部分就是模块的分解过 程.所谓模块分解 ,就是将热力模块按照流体通道分解为流 体网络能够识别的对象 ,该过程如图
4 (a) →(b ,c) 所示. 图4模块的分解
21313 其它 另外还包括模块间参数传递代码的自动生成、 变量的自 动生成、 数据文件的自动生成、 可执行程序的生成和调试等 , 限于篇幅 ,就不在此进行详细介绍了.
214 工程管理 对于一个比较复杂的系统 ,如果仅用一个连接文件绘制 出来 ,会感觉到太杂乱 ;
另外 ,一个大的系统可能需要有多个 人一起来完成 ,每个人负责一个子系统 ,也要求系统具有将 多个子系统图组合在一起的功能. 为此 ,系统提供了工程管理的功能 ,可将一个大的系统 分解为多个子系统(子系统的划分由用户决定) ,然后在多个 子连接图上表示出来.各个子系统图采用同名节点的方式 表示相互之间的连接关系.
3 系统的维护和扩充 本系统的一个主要特点就是具有高度的开放性 ,即在不 需修改和编译源程序的情况下可以修改、 添加和删除模块类 型. 前面已经讲到 ,一种模块类型是由模块图标、 端口说明 和模块代码等三部分组成 ,在模块实例化时还需要进行模块 代码的虚实结合.在对模块类型进行维护和扩充时 ,只需要 按照系统的规则对以上几个部分进行维护和扩充.完成这 些工作后 ,就可以使用新的模块类型进行图形组态并生成仿 真源程序了.为了能够生成可执行程序 ,还需要对系统模型 库进行维护和扩充. ・