matlab Dymola:避免大型输出文件

a7qyws3x  于 2022-11-15  发布在  Matlab
关注(0)|答案(2)|浏览(185)

我工作的一个团队与Dymola合作,并在相当长的时间内使用它来模拟一个相当复杂的模型。
它们最终得到大约150 GB的大输出文件(.mat),因此在后期处理时会遇到问题。
我是IT专业的,毕业时是一名工程师,所以我对典型软件有足够的经验,知道它们可以降低输出频率或存储的数据量(例如,选择更少的变量进行输出)。但出于某种原因,他们不能或不想要。
现在我对Dymola的了解还不够多,无法确定另一种可能性,这就是为什么我要问社区:有没有其他方法可以在输出文件较小的情况下具有相同的准确性、复杂性和数据量?
例如,在Dymola中有没有一种方法可以将模拟分成多个时间域?那么,一个文件用于0-500,另一个文件用于500-1000,以此类推?他们告诉我这是可能的,但很复杂。这是真的吗?在迪莫拉没有办法做到这一点吗?
提前谢谢你

lyfkaqu1

lyfkaqu11#

请参考Claytex博客https://www.claytex.com/blog/how-to-restart-a-simulation/。该博客解释了两种方法:一种是使用Dymola中的continue功能,另一种是手动使用批处理脚本自动执行reinitialization
在您的例子中,可以使用第二种方法,因为您需要使用重新初始化的states重新启动模拟,并创建单独的结果文件块。
注:dsin.txt文件具有包括状态变量在内的所有变量的初始值,dsfinal.txt文件具有单个完整模拟的所有变量的终值。在第一次模拟后,您可以在工作目录中找到这些文件,最好使用较小的stopTime

9jyewag0

9jyewag02#

您还可以重新考虑在整个模拟过程中是否需要相同数量的数据。
由于Dymola 2021可以在模拟过程中更改输出间隔,因此在发布说明中将其描述为“输出点的可变频率”:
通过设置标志:

Advanced.Simulation.VariableInterval=true;

并在模型中使用

when time>=… then
 Dymola.Simulation.SetOutputInterval(…);
end when;

频率可以从模型中控制。

相关问题