【问题标题】:Access the simulation parameter in Modelica访问 Modelica 中的仿真参数
【发布时间】:2016-09-23 09:20:55
【问题描述】:

我的 Modelica 中有一个模型,我使用 Dymola 来编译这个模型。在我的模型中,我需要模拟信息“输出间隔长度”。我已经搜索过它,但我无法获得有用的信息。有没有其他可能的方式我们可以访问模拟信息。

【问题讨论】:

  • 为什么需要它?可能有更好的方法来完成您想做的事情。
  • 抱歉我的回复晚了。我已经使用正弦块来生成信号。还希望在每个时间步之后信号值的变化。目前我已经使用了延迟时间步长值的延迟函数。我已经硬编码了时间步长值。因此,在阅读了有价值的 cmets 后,我发现我们无法访问时间步长。那么有没有其他方法可以在每个时间步之后找到正弦块输出的变化?
  • 模型中的某些计算需要此值还是可以使用后处理来访问该值?
  • 我在计算中需要它。我必须在每个时间步之后提供幅度差异。
  • 是你想要的信号的时间导数吗?

标签: modelica


【解决方案1】:

如果您只是想获得按特定时间间隔报告的结果,您可以使用sample 运算符来实现。这将强制在特定时间计算解决方案,而无需直接指定诸如时间步长之类的内容。

这里要理解的重要一点是,模型的行为取决于数值积分的模型是高度可疑的,我从未见过在不了解求解方法的情况下无法描述行为的情况。换句话说,“大自然”对“时间步长”一无所知。 :-)

【讨论】:

    【解决方案2】:

    您可以使用带有集成器的时钟系统。 有关示例,请参阅 Dymola 中的文件 --> 库 -->Modelica_Synchronous --> 示例 --> 系统 --> Controlled_mixing_unit 周期(即在这种情况下,显式欧拉方法的时间步长)是周期时钟的参数)

    【讨论】:

      【解决方案3】:

      Modelica 的设计禁止访问任何数值求解器内部,因此您无法访问它。输出间隔长度也无法由模型以任何可靠的方式确定,因为求解器将采取比输出间隔更长的内部步骤,然后为结果文件插入值。

      【讨论】:

        【解决方案4】:

        您可以创建一个函数来读取 dsin.txt 文件并提取该信息。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-06-01
          • 1970-01-01
          • 2018-09-11
          • 1970-01-01
          • 1970-01-01
          • 2016-10-22
          • 2022-01-10
          相关资源
          最近更新 更多