Sysplorer将一个模型导出成FMU,之后再将FMU导出FMU,重复多次后模型文本为空
技术分享
发布于 2025-08-06 16:55:38
查看 1过去300天
原因说明:
导入 FMU 时 Sysplorer 生成的模型文本中变量名的一些潜在规则导致了变量名重复,无法通过模型检查,此时模型文本就被清空了。
针对导出后导入再导出再导入失败的情况,详细说明如下:
一、问题复现
以如下模型为例
Modelica.Blocks.Interfaces.BooleanInput u;
Boolean y;
equation
y = u;
该模型在Sysplorer导出FMU后,其模型描述xml文件如下,可以看到此时仅有变量u和y;

2)将上述FMU导入到Sysplorer中,可以通过文本看到额外生成了辅助变量 ‘u.’ ;
该辅助变量会在模型拥有离散输入变量时出现,用以传递离散输入变量的pre值,使得FMU内部可以获取到外部传给输入变量的值;

3)将上述导入后的FMU再次导出FMU后,其模型描述xml文件如下,可以看到相比第一次导出FMU,多了变量 ‘u.’;

将上述包含变量 ‘u.’ 的FMU导入到Sysplorer中后,会发现导入后的文本为空;这是因为由于变量u的存在,导致每次导入时,会生成一个辅助变量 ‘u.’,而由于进行2)时就已经生成了 ‘u.’;这就会导致 ‘u.’ 重定义。通过FMU导入接口拿到生成的文本也可以看到,的确是因为多次导入FMU导致 ‘u.’ 重定义导致生成的mo文本无法通过检查,导致出现了空文本的现象:

所属专栏:Sysplorer基础平台
产品信息:Sysplorer系统建模仿真环境