【问题标题】:How can i retrieve the time step size for real value in the Modelica?如何在 Modelica 中检索实际值的时间步长?
【发布时间】:2020-05-06 06:40:29
【问题描述】:

我想知道如何获得实际值的每个时间步长以将其用于方程。 我试图找到函数或其他东西,但我找不到。

实际上,我正在尝试按体积积分压力,但 Modelica 中的积分器仅支持时间积分。所以我决定将(delta_volume/delta_time)乘以压力的积分。这就是我这样做的原因。

伪代码如下。

  Work=Integral(pressure);

但我想要的是按音量整合压力,而不是按时间。所以应该这样改

  Work=(Integral(pressure)) * (delta Volume/delta time);

我无法使用增量时间的常量值,因为求解器无法处理我的模型进行固定时间步长。

请回复我如何获取每个时间步长的值以获得实际值。

【问题讨论】:

  • 你能改写它以使用der() 运算符吗?

标签: modelica dymola


【解决方案1】:

不确定我是否正确理解了您的问题,但您不能通过计算能力

Power = pressure * volumeFlowRate = pressure * der(volume);

然后计算

der(Work) = Power;

除此之外,关于您的实际问题:无法从模型的 Modelica 代码中检索求解器的步长。

【讨论】:

  • 是的。这是一个简单的数学哈哈......非常感谢!
【解决方案2】:

如果你不想积分p dtp dV=p dV/dt dt那么你必须将p乘以der(V),有乘法Modelica.Blocks.Math.Product和微分Modelica.Blocks.Continuous.Der的块;或者使用Modelica.Blocks.Continuous.Derivative 作为近似导数。

请注意,Dymola 会自动检查单位,在这种情况下,会检查整数 p*der(V) 是否与工作(即“J”)兼容 - 应该是。

【讨论】:

  • 哇,这是一个简单的数学和解决问题。我太傻了..非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-26
  • 1970-01-01
  • 1970-01-01
  • 2014-05-10
  • 2017-10-17
相关资源
最近更新 更多