# 同元模型库
介绍同元 Modelica4.0.0.TY.1 标准库常见问题及解决办法。
# 用户模型未升级运行出现报错
# 问题描述
在同元基础库 Modelica4.0.0.TY.1 已加载,用户模型库依赖标准库 Modelica3.2.3,但没有升级该模型库的依赖关系的情况下,VolumetricPump 模型中插值表 combiTable 查找不到,以及变型项 freqHz 查找不到。
# 问题原因
同元基础库 Modelica4.0.0.TY.1 是在标准库 Modelica4.0.0 基础上建立的,所以 Modelica4.0.0.TY.1 与 Modelica3.2.3 存在较大版本差异,如下图所示,数据表格(Tables)做了以下修改:
| 二级子库名称 | Modelica 4.0.0 | Modelica 3.2.3 | 差异类型 |
|---|---|---|---|
| Tables | CombiTable1Ds | CombiTable1Ds | 功能优化 |
| CombiTable1Dv | CombiTable1D | 名称修改 | |
| CombiTable2Ds | CombiTable2D | 名称修改 | |
| 无 | Internal.readTimeTableData | 删除模型 | |
| Internal.getTimeTableValueNoDer2 | 无 | 新增模型 | |
| Internal.getDerTimeTableValueNoDer | 无 | 新增模型 | |
| Internal.getDer2TimeTableValue | 无 | 新增模型 | |
| 无 | Internal.readTable1DData | 删除模型 | |
| Internal.getTable1DValueNoDer2 | 无 | 新增模型 | |
| Internal.getDerTable1DValueNoDer | 无 | 新增模型 | |
| Internal.getDer2Table1DValue | 无 | 新增模型 | |
| 无 | Internal.readTable2DData | 删除模型 | |
| Internal.getTable2DValueNoDer2 | 无 | 新增模型 | |
| Internal.getDerTable2DValueNoDer | 无 | 新增模型 | |
| Internal.getDer2Table2DValue | 无 | 新增模型 |
# 解决方法(一)
用户根据报错信息定位模型问题直接对模型进行修改。
# 解决方法(二)
通过软件提供的“模型库转换”功能进行该模型库的升级,操作步骤如下:
- 在 Sysplorer 中加载该模型库;
- 在软件自动弹出的模型库转换对话框中,单击升级模型即可实现自动化升级;
- 自动升级完成之后,原模型库(依赖 Modelica3.2.3)的备份文件保留在原路径之下。
# 加载模型库未跳转出升级弹窗
# 问题描述
用户模型库加载后,未跳转出“模型库转换”弹窗,无法实现模型库自动化升级。
# 问题原因
同元基础库、标准库在版本间均存在差异,每个版本的映射表都是一一对应,因此模型库升级功能需要识别模型库顶层 annotation 里绑定的标准库依赖版本,如果用户模型未进行绑定,升级功能无法识别,将不会跳转出“模型库转换”弹窗。
# 解决方法
在用户模型库顶层 annotation 里添加绑定的标准库依赖版本,以 SteamPowerSys 模型库为例,原模型依赖标准库 Modelica 3.2.3,想实现自动跳转出“模型库转换”弹窗,需在模型库顶层加入代码:uses(Modelica(version = "3.2.3"))
# 模型库升级后的依赖问题
# 问题描述
用户模型库中存在将标准库 Modelica3.2.3 模型移植到自己模型库的情况,且这些模型在 Modelica4.0.0.TY.1 做了功能升级,用户模型库升级完成后仍会有报错情况出现。
# 问题原因
以 SteamPowerSys 模型库为例,该模型库中的 IF97BaseTwoPhase 介质模型从标准库 Modelica3.2.3 中移植而来,这个模型在 Modelica3.2.3 及 Modelica4.0.0.TY.1 中的“Gas constant”变量名分别如下所示,模型库升级功能无法实现移植后的模型升级,导致出现报错信息。
Modelica3.2.3 版本:
Modelica4.0.0.TY.1 版本:
# 解决方法
手动修改 IF97BaseTwoPhase 介质模型,将变量名 R 修改为 R_s。