有关setParameterValue的OpenModelica脚本问题

时间:2019-06-12 19:17:04

标签: scripting openmodelica

我正在使用脚本文件进行模拟。我使用omc.exe运行我的mos文件。

我遇到了1个问题

loadModel(Modelica); getErrorString();
loadFile("C:/Users/namcho/Documents/Tez_DAB/Simulation/MachineLearningAlgo/DAB_ideal.mo"); getErrorString();
loadFile("C:/Users/namcho/Documents/Tez_DAB/Simulation/MachineLearningAlgo/uControllerDAB.mo"); getErrorString();
checkModel(DAB_ideal);
Kp := 1.2;
Ti := 5e-5;
Td := 0;
typeOf(v1);

setParameterValue(DAB_ideal, PID_Kp, Kp); getErrorString();
setParameterValue(DAB_ideal, PID_Ti, Ti); getErrorString();
setParameterValue(DAB_ideal, PID_Td, Td); getErrorString();

instantiateModel(DAB_ideal);

在上面的代码中,我想将Kp的值传递给我的DAB_ideal模型。如果我如上所述尝试,它会给出

  

“ [[C:/Users/namcho/Documents/Tez_DAB/Simulation/MachineLearningAlgo/DAB_ideal.mo:3:3-3:20:writable]   错误:在范围DAB_ideal中找不到变量Kp。错误:发生错误   展平模型DAB_ideal“

那个错误。 如果我尝试setParameterValue(DAB_ideal,PID_Kp,1.2);可以。
如何将Kp的值传递给setParameterValue函数?我已经尝试使用PowerShell $符号(以及更多其他符号)将Kp的($ Kp)值传递给它也不起作用的功能。

1 个答案:

答案 0 :(得分:0)

这还行不通,因为只能将模型中找到的值或参数用作第三个参数。 setParameterValue函数不在乎您给出的表达式,它将作为绑定放入模型中。我将看到是否可以为此实现一个快速解决方案,拥有$ VariableValue(Kp)之类的函数调用应该相当容易,当将其传递给模型时,可以用实际值代替它。我将为此开张罚单。