我正在使用脚本文件进行模拟。我使用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)值传递给它也不起作用的功能。
答案 0 :(得分:0)
这还行不通,因为只能将模型中找到的值或参数用作第三个参数。 setParameterValue函数不在乎您给出的表达式,它将作为绑定放入模型中。我将看到是否可以为此实现一个快速解决方案,拥有$ VariableValue(Kp)之类的函数调用应该相当容易,当将其传递给模型时,可以用实际值代替它。我将为此开张罚单。