1 OpenModelica项目架构
文章目录
- 1 OpenModelica项目架构
- 一、 架构总览图
- 二、OpenModelica各部分作用
一、 架构总览图
OpenModelica 环境由几个相互连接的子系统组成,如图 1.1 所示。
其中包括:
- MDT Eclipse 插件
- 图形模型编辑器/浏览器
- 文本模型编辑器/浏览器
- 交互式会话处理器
- OMOptim 优化子系统
- OMNotebook DrModelica
- Modelica 执行子系统
- Modelica 编译器
- Modelica 调试器
在图 1.1中表示OpenModelica 环境的架构。箭头表示数据和控制流。交互式会话处理器接收命令,并显示评估和执行的命令和表达式的结果。几个子系统提供不同形式的 Modelica 代码浏览和文本编辑。调试器目前提供扩展算法子集的 Modelica 调试。
二、OpenModelica各部分作用
目前,OpenModelica 环境集成了以下子系统:
-
交互式会话处理器,它解析和解释命令以及 Modelica 表达式,用于评估、仿真、绘图等。会话处理器还包含简单的历史记录功能,以及命令中文件名和某些标识符的自动完成功能。
-
Modelica 编译子系统,将 Modelica 代码翻译成 C 代码,并包含一个包含类、函数和变量定义的符号表。这些定义可以是预定义的、用户定义的,或从库中获取的。编译器还包括一个 Modelica 解释器,用于交互式使用和常量表达式的评估。该子系统还包括构建与选定的数值 ODE 或 DAE 解算器链接的仿真可执行文件的设施。
-
执行和运行时模块。该模块目前执行从翻译的表达式和函数生成的编译二进制代码,以及与数值解算器链接的基于方程的模型的仿真代码。在不久的将来,将为 Modelica 语言的离散和混合部分包括事件处理设施。
-
Eclipse 插件编辑器/浏览器。名为 MDT(Modelica 开发工具)的 Eclipse 插件提供了文件和类层次结构浏览以及文本编辑功能,与前面描述的 Emacs 编辑器/浏览器类似。还包括一些语法高亮显示功能。Eclipse 框架具有使添加未来扩展(如重构和交叉引用支持)更容易的优势。
-
OMNotebook DrModelica 模型编辑器。这个子系统提供了一个轻量级的笔记本编辑器,与 MathModelica 中可用的更高级的 Mathematica 笔记本相比。这种基本功能仍然允许处理整个 DrModelica 教程。可以表示和编辑具有章节和节的分层文本文档,包括基本格式。单元格可以包含普通文本或 Modelica 模型和表达式,这些可以被评估和仿真。然而,此笔记本编辑器的单元格中尚未提供数学排版设施。
-
图形模型编辑器/浏览器 OMEdit。这是一个图形连接编辑器,用于通过连接 Modelica 类的实例来设计基于组件的模型,并浏览 Modelica 模型库以阅读和选择组件模型。图形模型编辑器还包括一个用于编辑模型类定义的文本编辑器,以及一个用于交互式 Modelica 命令评估的窗口。
-
优化子系统 OMOptim。这是 OpenModelica 的一个优化子系统,目前用于设计优化,为模型选择最优的设计参数集。当前版本具有图形用户界面,提供遗传优化算法和 Pareto 前沿优化,与模拟器集成工作,并自动访问 Modelica 模型中的变量和设计参数。
-
动态优化子系统。这是使用配点方法进行的动态优化,适用于扩展了优化规格、目标函数和附加约束的 Modelica 模型。该子系统与 OpenModelica 编译器集成。
-
Modelica 方程模型调试器。方程模型调试器显示模型方程源代码中错误的位置。它跟踪编译器从方程到生成的低级 C 代码过程中所做的符号转换,并解释已经进行了哪些转换。
-
Modelica 算法代码调试器。算法代码 Modelica 调试器为 Modelica 的扩展算法子集提供调试,不包括基于方程的模型和一些其他特性,但包括一些元编程和 Modelica 的模型转换扩展。这是一个传统的全功能调试器,使用 Eclipse 在步进时显示源代码、设置断点等。提供各种回溯和检查命令。调试器还包括一个数据视图浏览器,用于浏览扩展 Modelica 中的树状或列表结构等层级数据。