我正在尝试从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;
答案 0 :(得分:0)
由于Modelica语言与数值求解器分离,因此Modelica中的FMU导入不能很好地工作(诸如此类的数字问题),因此除非使用Modelica扩展名(并且OpenModelica不添加),否则导入不能非常精确。只是为了能够导入FMU的任何扩展)。而是在OMSimulator中测试FMU-它了解FMU。