在 dymola 的脚本文件中修改模型的参数
modify model's parameters in dymola's script file
我正在尝试在 Dymola 中使用 .mos 文件进行多次模拟,这是来自 claytex's blog 的示例:
openModel("C:/Dymola/Testing/Test1.mo")
translateModel ("Test1");
for i in 1:10 loop
a=i;
simulate();
system("copy dsres.mat results"+String(i) +".mat");
end for;
好像我在脚本文件中翻译模型时,我可以再次修改模型的参数,这与我使用Dymola的GUI不同。在 Dymola 的 GUI 中,如果我在翻译模型后尝试修改参数,我必须重新翻译模型。我的问题是:
在Dymola的脚本文件中,当我修改参数时,Dymola如何处理?
“user2024223”的上述评论是正确的,但我认为“可变浏览器”不够强调,更多解释可能会有所帮助:
在翻译后更改模型参数时,请确保您未使用模型编辑(“图形”或“文本”功能区),因为这会改变模型的代码,因此(通常)强制重新翻译。 “模拟”功能区中的“模型视图”也是如此。
如果您使用“模拟”功能区中的“变量浏览器”,代码将不会更改。另一种方法(实际上作用相同)是在“命令”行中键入参数值。例如。对于 CoupledClutches
示例,这可能是 J1.J=5
。段落中的两个变体的行为应该与脚本相似。
Dymola 通过修改 dsin.txt 文件来处理翻译后的参数变化。
Some/many 参数已经过评估,无法以这种方式更改 - 这些变量在变量浏览器中不可编辑。
如果您尝试更改脚本中不可编辑的变量,您将收到警告。
注意:在大多数情况下,即使修改了该模型的可编辑参数[=19=,您也不必处理重新翻译模型的问题] 在 GUI 中。再次模拟模型 - 希望它不需要重新翻译。
我正在尝试在 Dymola 中使用 .mos 文件进行多次模拟,这是来自 claytex's blog 的示例:
openModel("C:/Dymola/Testing/Test1.mo")
translateModel ("Test1");
for i in 1:10 loop
a=i;
simulate();
system("copy dsres.mat results"+String(i) +".mat");
end for;
好像我在脚本文件中翻译模型时,我可以再次修改模型的参数,这与我使用Dymola的GUI不同。在 Dymola 的 GUI 中,如果我在翻译模型后尝试修改参数,我必须重新翻译模型。我的问题是:
在Dymola的脚本文件中,当我修改参数时,Dymola如何处理?
“user2024223”的上述评论是正确的,但我认为“可变浏览器”不够强调,更多解释可能会有所帮助:
在翻译后更改模型参数时,请确保您未使用模型编辑(“图形”或“文本”功能区),因为这会改变模型的代码,因此(通常)强制重新翻译。 “模拟”功能区中的“模型视图”也是如此。
如果您使用“模拟”功能区中的“变量浏览器”,代码将不会更改。另一种方法(实际上作用相同)是在“命令”行中键入参数值。例如。对于 CoupledClutches
示例,这可能是 J1.J=5
。段落中的两个变体的行为应该与脚本相似。
Dymola 通过修改 dsin.txt 文件来处理翻译后的参数变化。 Some/many 参数已经过评估,无法以这种方式更改 - 这些变量在变量浏览器中不可编辑。
如果您尝试更改脚本中不可编辑的变量,您将收到警告。
注意:在大多数情况下,即使修改了该模型的可编辑参数[=19=,您也不必处理重新翻译模型的问题] 在 GUI 中。再次模拟模型 - 希望它不需要重新翻译。