PyFMI:根据其他参数初始化参数
PyFMI: Initialize parameters depending of others
我在 OpenModelica 中创建了一个模型,并想从中创建一个 FMU。
在 OpenModelica 中,我可以初始化以下参数:
model r_ctrl
parameter Real startTime(start = 0.1);
parameter SI.Resistance u_ref(start = 230);
parameter SI.Power p_ref(start = 1000);
parameter Real r_start(start = u_ref*u_ref/p_ref);
...
这没有任何问题,在模拟过程中,所有参数都具有它们应该具有的值
创建FMU时,终端出现如下错误:
[CodegenUtil.tpl:178:14-178:14:writable] Error: Template Fehler: initial value of unknown type: r_ctrl.u_ref ^ 2.0 / r_ctrl.p_ref.
有没有办法设置相互依赖的参数,但在 FMU 生成过程中不会出错?
下面应该可以工作(我想上面应该也可以,但需要 OpenModelica 自动将其转换成如下所示):
model r_ctrl
parameter Real startTime = 0.1;
parameter SI.Resistance u_ref = 230;
parameter SI.Power p_ref = 1000;
parameter Real r_start(fixed=false);
initial equation
r_start = u_ref*u_ref/p_ref;
我在 OpenModelica 中创建了一个模型,并想从中创建一个 FMU。
在 OpenModelica 中,我可以初始化以下参数:
model r_ctrl
parameter Real startTime(start = 0.1);
parameter SI.Resistance u_ref(start = 230);
parameter SI.Power p_ref(start = 1000);
parameter Real r_start(start = u_ref*u_ref/p_ref);
...
这没有任何问题,在模拟过程中,所有参数都具有它们应该具有的值
创建FMU时,终端出现如下错误:
[CodegenUtil.tpl:178:14-178:14:writable] Error: Template Fehler: initial value of unknown type: r_ctrl.u_ref ^ 2.0 / r_ctrl.p_ref.
有没有办法设置相互依赖的参数,但在 FMU 生成过程中不会出错?
下面应该可以工作(我想上面应该也可以,但需要 OpenModelica 自动将其转换成如下所示):
model r_ctrl
parameter Real startTime = 0.1;
parameter SI.Resistance u_ref = 230;
parameter SI.Power p_ref = 1000;
parameter Real r_start(fixed=false);
initial equation
r_start = u_ref*u_ref/p_ref;