【问题标题】:Setting Advance Solver settings in Dymola在 Dymola 中设置 Advance Solver 设置
【发布时间】:2016-06-07 17:58:55
【问题描述】:

有没有办法直接在 Dymola 中设置最大求解器步长 (hmax)?

hmax 的值可以在 dsin.txt 中更改,如果使用 dymosim.exe 运行模拟,它可以工作,但如果在 Dymola 中启动模拟,则会被覆盖。

我可以使用一些隐藏的标志吗?

谢谢!

【问题讨论】:

  • 我在 dymola 中启动模拟后被覆盖的最大事件迭代次数 "eviter" 有同样的问题。我希望有人已经弄清楚了。

标签: simulation modelica dymola


【解决方案1】:

编辑dsin.txt后,尝试直接执行dymosim.exe,而不是使用GUI(不带参数,例如,当通过资源管理器双击执行时,这将创建dsres.mat而不是<modelName>.mat)。这应该可以防止 Dymola 重新创建 dsim.txt,因此请考虑您对 hmax 的设置。

不是很方便,但目前我知道使它工作的唯一方法。

您也可以创建dsin.mat 并将其作为dymosim.exe 的参数提供,以便能够使用GUI 重新创建dymosim.exe,而无需每次都修改dsin.txt。此处显示:dymola.readTrajectory - different sample times。你显然需要跳过第二个参数"<DymolaWD>\tgrid.mat"

@Shanga:我认为这也适用于eviter,但我没有模型可以可靠地测试它。所以反馈将不胜感激......

【讨论】:

【解决方案2】:

设置最大步长仅适用于没有步长控制的求解器,例如欧拉或龙格-库塔。在这些情况下,可以在 Simulation setup 中设置 Fixed Integrator Step。

【讨论】:

    【解决方案3】:

    目前没有直接从 Dymola 执行此操作的便捷方法。 dsin.txt 文件必须按照您的描述进行编辑。

    【讨论】:

      【解决方案4】:

      我相信您是通过 Simulation Setup 的 General 部分中的参数 Interval length 或 Number of interval 设置的。系统将至少在这些点上得到解决,我将其理解为最大步长。

      【讨论】:

      • 求解器步长通常不受输出间隔(长度或数量)的“限制”。例如。如果您模拟像Modelica.Mechanics.Translational.Examples.Accelerate 这样的简单模型:对于此模型,将计算 1000 个输出点。求解器日志仍然显示(使用 DASSL)只计算了 20 个步骤 - 因为它很容易集成。要检查求解器采取了哪些步骤,请停用 Dymola 中的“等距时间网格”标志。然而,输出间隔可能会产生影响,因为在估计初始步长时通常会考虑它,这会影响所有后续步骤。
      猜你喜欢
      • 2018-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-09
      • 2023-02-14
      • 1970-01-01
      • 1970-01-01
      • 2011-09-05
      相关资源
      最近更新 更多