scripting - 关于 setParameterValue 的 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's($Kp) 值传递给它也不起作用的函数。
解决方案
这还不起作用,因为只有模型中的值或参数可以用作第三个参数。setParameterValue 函数并不关心你给出什么表达式,它会将它作为绑定放入模型中。我会看看我们是否可以为此实现一个快速的解决方案,它应该很容易调用诸如 $VariableValue(Kp) 之类的函数,我们可以在将其传递给模型时将其替换为实际值。我会为此开张票。
推荐阅读
- .net - 接口函数应该强制输入吗?
- c++ - 仅在第一次实际写入时覆盖文件
- docker - Docker Build 在控制台输出中缺少中间层
- javascript - 打字稿:异步等待 promise.all 循环所有结果的问题
- java - Spring MVC验证控制器中POST / PUT方法中的所有参数
- python - 使用 Structlog 获取最后一个日志值并将其作为变量传递给函数
- laravel - Laravel 雄辩“用”的简单方法
- powershell - 外壳 | 用随机名称重命名文件
- python - 通过python中的列表理解从字典中获取所有项目数天
- javascript - 将变量插入标签时角度崩溃