0

我正在尝试将几个模型从 OpenModelica 导出为 FMU 2.0 用于模型交换。

为了检查生成的 FMU,我将它们导入 OpenModelica 并在那里进行模拟。一切都适用于简单的连续系统,例如单个积分器或一阶滤波器的串联。然而,带有触发事件的块,例如标准的 modelica 块“Modelica.Blocks.MathInteger.TriggeredAdd”,在 FMU 中不起作用。它们的输出保持为零,不受输入的影响。似乎我做错了什么,但我不知道到底是什么。请帮助我:) 这是导出模型的示例代码:

model trig_int_sum

Modelica.Blocks.MathInteger.TriggeredAdd triggeredAdd1 annotation(...);  
Modelica.Blocks.Interfaces.IntegerInput u annotation(...);
Modelica.Blocks.Interfaces.BooleanInput u1 annotation(...);   
Modelica.Blocks.Interfaces.IntegerOutput y annotation(...);

equation
connect(y, triggeredAdd1.y) annotation(...);
connect(triggeredAdd1.u, u) annotation(...);
annotation(...);

end trig_int_sum;
4

1 回答 1

0

由于 Modelica 语言与数值求解器分离,Modelica 中的 FMU 导入效果不佳(诸如此类的数值问题),因此除非使用 Modelica 扩展(并且 OpenModelica 不添加任何扩展,否则导入不能非常精确)能够导入 FMU)。改为在 OMSimulator 中测试 FMU - 它了解 FMU。

于 2019-02-01T06:51:08.967 回答