如何用以前的模拟解决方案初始化模型?

How to initialize model with previous simulation solution?

又运行没主意了,求助于你。

我确定这个问题以前肯定有人回答过,尽管我这辈子都找不到明确的描述。

场景:

你努力得到一个模型,所有模型都设置了初始猜测等,然后求解模型中所有参数的 'real' 稳态 (SS) 条件。从这个解决方案中,我想调查事件对系统的影响。

要执行与 SS 分析的这种偏差,能够简单地加载 SS 解决方案 .mat 文件以及 Dymola 已经生成的所有模型参数会很方便.加载此解决方案无需在执行与 SS 调查的偏差之前首先模拟模型以实现 SS 解决方案。我可以设想发生这种情况的可能步骤是在模拟的 'Initialization' 阶段。

鉴于这似乎是一个重要的概念,我想这个想法会在 Modelica/Dymola 开发的早期阶段就被考虑到。鉴于这些模型的大小很快变得非常大,手动提取每个单独的参数似乎并不合适。

问题:

  1. 是否可以解决模型(.mat 文件)的状态以及 然后将该模拟加载为所有变量的 'initial' 值? (这将 override/replace 之前的初始猜测 系统)
  2. 如果可能的话,这是如何实现的? (运行 一些脚本,一些 隐藏菜单选项,在 model/simulation?)
  3. 中添加某种导入命令

非常感谢您的帮助。 我正在使用 Dymola 2016。

我找到了上面发布的我自己的问题的以下答案。

编辑:matth 还指出了以下关于该主题的有用参考资料: http://claytex.com/blog/how-to-restart-a-simulation

这些是 Dymola 的说明。我无法验证它们是否适用于其他基于 Modelica 的程序。我还在 Dymola 用户手册第 1 卷第 5.3.3 节模拟 > 继续 > 导入 Initial/Continue.

中找到了一些文档

1) 是的,可以从生成的 .mat 文件启动模型。您也可以从 dsfinal.txt 文件继续。

2) 以下是使用 GUI 的步骤:

  • 备份 'YOUR_MODEL.mat' 文件(例如 YOUR_MODEL_orig.txt)。一旦你有了 运行 模拟,就会创建一个新的 .mat 文件,你可能不想意外地覆盖它。
  • 翻译您的模型。
  • 在功能区中,转到“模拟”>“继续”>“导入初始值”。 Select 要从中继续模拟的 .mat 文件。
  • 将生成提示,要求输入指定范围的时间。这允许您在 .mat 模拟结果中的任何时间点继续模拟。
  • 转到模拟设置并select 新的模拟参数。如果您希望解决方案注册 0 的开始时间而不是与初始 SS 模拟关联的一些大数字,而不是将 'Start time' 更新为 0。这不会影响用于 [=59 中的参数数据的初始时间=] 文件.
  • 现在模拟模型。将从您指定的点开始生成一个新的 .mat 文件。

替代方法:(奇怪的是,使用此方法似乎没有生成或更新 .mat 文件。)

  • 备份 'dsfinal.txt' 文件(例如 dsfinal_orig.txt)。一旦你有了 运行 模拟,一个新的 dsfinal.txt 文件将被创建,你可能不希望意外覆盖它。
  • 翻译您的模型。
  • 在功能区中,转到“模拟”>“继续”>“继续”。按下此选项后,模拟将开始使用路径上的任何 dsfinal.txt 文件。
  • 模拟现在将从生成 dsfinal.txt 文件的模拟的最终条件开始继续。
  • 如果希望在时间 0 开始,那么可以修改 dsfinal.txt 文件(我的第 9、10 和 12 行)对应于模拟开始 (9)、停止 (10)、和时间步数 (12)。这似乎可以解决问题。