首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为Wolfram SystemModeler编写一个脚本来运行多个模拟?

如何为Wolfram SystemModeler编写一个脚本来运行多个模拟?
EN

Stack Overflow用户
提问于 2019-09-20 10:07:14
回答 1查看 160关注 0票数 1

我想运行大约100个模拟,我的模型改变了两个参数fTLoad,并跟踪相位电流的变化,currentSensor.i[1]等。

现在,我仍然停留在Wolfram网站上的文档中,因为对于如何在SystemModeler中使用脚本没有明确的解释。例如,我在Wolfram站点上找到了这个带有一些代码的链接,但没有解释我应该在哪个命令行中使用它。

我下载了WolframScript程序,并试图用wolframscript -file SMPM_VoltageSource_Inverter.mo打开我的模型,但它说,尽管我的模型完全模拟得很好,并且在SimulationCenter中没有任何错误,但ToExpression::sntx: Invalid syntax in or before ...还是这样说的。

谁能跟我解释一下:

  • 可以写脚本吗?

如果是的话:

  • 我怎样才能模拟我的模型?
  • 如何对fTLoad进行参数扫描?是否如链接中所描述的那样?
  • 是否可以将currentSensor.i[1]的数据导出为csv-文件?怎么做呢?

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2019-09-24 12:06:39

我不知道wolfram的遗憾,但是对于OpenModelica,我做了以下工作:

代码语言:javascript
复制
// 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即可。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58026226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档