如何检索 Modelica 中实际值的时间步长?

How can i retrieve the time step size for real value in the Modelica?

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

其实我是想按体积对压力进行积分,但是Modelica中的积分器只支持时间积分。所以我决定将 (delta_volume/delta_time) 乘以压力的积分。这就是我这样做的原因。

伪代码如下

  Work=Integral(pressure);

但是我想要的是按体积对压力进行积分,而不是按时间。所以应该改成这样

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

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

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

如果你不想积分p dt但是p 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")- 它应该是。

不确定我是否正确理解你的问题,但你不能通过

计算功率
Power = pressure * volumeFlowRate = pressure * der(volume);

然后计算

der(Work) = Power;

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