Как написать скрипт для Wolfram SystemModeler для запуска нескольких симуляций? - PullRequest
1 голос
/ 20 сентября 2019

Я хочу запустить около 100 симуляций с моей моделью, меняющей два параметра f и TLoad и отслеживать изменения фазных токов currentSensor.i[1] и т. Д.

Теперь я застрял с документациейна веб-сайте Wolfram, потому что нет определенного объяснения того, как использовать сценарии с SystemModeler.Например, я нашел эту ссылку на сайте Wolfram с некоторым кодом, но без объяснения, в какой командной строке мне следует его использовать.

Я скачал программу WolframScript и попытался открыть свою модель с помощью wolframscript -file SMPM_VoltageSource_Inverter.mo но там написано ToExpression::sntx: Invalid syntax in or before ... даже если моя модель имитируется полностью и без ошибок в SimulationCenter.

Может кто-нибудь объяснить мне:

  • Можно ли писать сценарии?

Если да:

  • Как я могу смоделировать мою модель?
  • Как я могу выполнить развертку параметров f и TLoad?Это как описано в ссылке?
  • Можно ли экспортировать данные currentSensor.i[1] в виде csv-файла?А как?

Спасибо за любую помощь!

1 Ответ

0 голосов
/ 24 сентября 2019

Я не знаю насчет Вольфрама, извините, но для 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 и вызовите его из терминала или командной строки, в зависимости отВаш ОС, с omc model.mos, если у вас установлен OpenModelica.это должно сгенерировать CSV.

РЕДАКТИРОВАТЬ: я понял, что оригинал просто сохраняет последнее значение х, вы можете получить полный вывод.Поэтому я изменил .mos -файл.Каждый отдельный результат будет сохранен в другом файле, если вы хотите изменить его на CSV, вам просто нужно изменить сгенерированный XML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...