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

时间:2016-01-07 17:27:10

标签: modelica dymola openmodelica

再次没有想法我转向你。

我确定之前必须得到回答,但就我而言,我无法找到明确的描述。

情景:

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

要从SS分析中执行此偏差,可以简单地加载SS解决方案.mat文件,其中包含已由 Dymola 生成的所有模型参数。加载此解决方案无需首先模拟模型以实现SS解决方案,然后再执行SS调查的偏差。我可以设想,发生这种情况的可能步骤是在模拟的初始化' 阶段。

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

问题:

  1. 是否可以解决模型的状态(.mat文件)和 然后将该模拟加载为“' initial'所有变量的值? (这将覆盖/替换之前的初步猜测 系统)
  2. 如果有可能,这是如何实现的? (运行一些脚本,一些 隐藏菜单选项,在模型/模拟中添加某种导入命令?)
  3. 非常感谢你的帮助。 我正在使用 Dymola 2016。

1 个答案:

答案 0 :(得分:3)

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

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

这些是 Dymola 的说明。我无法验证它们是否适用于其他基于Modelica的程序。我还在Dymola用户手册第1卷第5.3.3节“模拟”中找到了一些文档。继续>导入初始/继续。

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

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

  • 备份' YOUR_MODEL.mat'文件(例如YOUR_MODEL_orig.txt)。运行模拟后,将创建一个新的.mat文件,您可能不想意外覆盖它。
  • 翻译您的模型。
  • 在功能区中,转到Simulation>继续>导入初始。选择要继续模拟的.mat文件。
  • 将生成一个提示,要求输入指定范围的时间。这使您可以在.mat模拟结果中的任何时间点继续模拟。
  • 转到Simulation Setup并选择新的模拟参数。如果您希望解决方案注册开始时间为0而不是与初始SS模拟相关联的某个大数字,而不是更新“开始时间”和“开始时间”。这不会影响Model_Sim.mat文件中参数数据的初始时间。
  • 现在模拟模型。将从您指定的点开始生成一个新的.mat文件。

替代方法:(虽然这个方法很奇怪,但似乎没有生成或更新.mat文件。)

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