我想运行大约100个模拟,我的模型改变了两个参数f和TLoad,并跟踪相位电流的变化,currentSensor.i[1]等。
现在,我仍然停留在Wolfram网站上的文档中,因为对于如何在SystemModeler中使用脚本没有明确的解释。例如,我在Wolfram站点上找到了这个带有一些代码的链接,但没有解释我应该在哪个命令行中使用它。
我下载了WolframScript程序,并试图用wolframscript -file SMPM_VoltageSource_Inverter.mo打开我的模型,但它说,尽管我的模型完全模拟得很好,并且在SimulationCenter中没有任何错误,但ToExpression::sntx: Invalid syntax in or before ...还是这样说的。
谁能跟我解释一下:
如果是的话:
f和TLoad进行参数扫描?是否如链接中所描述的那样?currentSensor.i[1]的数据导出为csv-文件?怎么做呢?谢谢你的帮助!
发布于 2019-09-24 12:06:39
我不知道wolfram的遗憾,但是对于OpenModelica,我做了以下工作:
// to load Model from file use
// loadFile("fileName.mo");
loadString("
model M
parameter Real a = 1;
Real x;
equation
x = a * sin(time);
end M;
"); getErrorString();
buildModel(M); getErrorString();
for a in {1,2,3,4} loop
str_a := String(a); getErrorString();
system("./M -override a=" + str_a); getErrorString();
// for windows use
//system("M.exe -override a=" + str_a); getErrorString();
system("mv M_res.mat " + "M_" + str_a + ".mat");
end for;将其放入一个名为model.mos的文件中,并根据您的操作系统从终端或命令行调用它,如果安装了OpenModelica,则使用omc model.mos。这应该会产生一个csv。
编辑:我意识到原来的只保存了x的最后一个值,您可能需要完整的输出。因此,我更改了.mos-file。每个不同的结果都将保存在不同的文件中,如果要将其更改为csv,只需更改生成的xml即可。
https://stackoverflow.com/questions/58026226
复制相似问题