有没有办法自动更改Modelica / Dymola中的目录?

时间:2014-03-11 13:52:38

标签: modelica dymola

我有以下问题:

我有20多种不同的模型,我想一个接一个地模拟,但我想每次更改模拟目录。

现在我在每次模拟后手动更改目录(从./ModelOne到./ModelTwo),我想知道在初始化时是否有自动更改目录的方法或者翻译新模型。

此致 内华达州

2 个答案:

答案 0 :(得分:2)

最好的方法是编写一个我认为的脚本:

pathOfSave =     {"E:\\work\\modelica\\SimulationResult\\Model1\\","E:\\work\\modelica\\SimulationResult\\Model2\\"};
nbSim = 2;
pathOfMod = {   "MyModel.",
                "MyModel.};

modelsToSimulate = {    ""Model1" ,
                        "Model2"};


//If equdistant=true: ensure that the same number of data points is written in all result files
//store variables at events is disabled.
experimentSetupOutput(equdistant=false, events=false);

//Keep in the plot memory the last nbSim results
experimentSetupOutput(equdistant=false, events=false);

for i in 1:nbSim loop
    //delete the result file if it already exists
    Modelica.Utilities.Files.removeFile(pathOfSave + modelsToSimulate[i]);

    //translate models
    translateModel(pathOfMod[i]+modelsToSimulate[i]);

    // simulate
    simulateModel(
      pathOfMod[i]+modelsToSimulate[i],
      method="dassl",
      stopTime=186350,
      numberOfIntervals=nbOfPoi,
      resultFile=pathOfSave + modelsToSimulate[i]);

end for;

答案 1 :(得分:2)

如果您希望将命令cd("mynewpath")附加到模型,也可以将命令model example Real variable; protected parameter String currDir = Modelica.Utilities.System.getWorkDirectory(); initial algorithm cd("C:\\Users\\xxx\\Documents\\Dymola\\MyModelFolder"); equation variable = time; when terminal() then cd(currDir); end when; end example; 放在初始算法部分中。

{{1}}

在任何情况下,您都可以在“内置命令”部分的手册中找到dymola的所有命令。

我希望这有帮助, 马可