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

如何在Modelica中检索实际值的时间步长?,modelica,dymola,Modelica,Dymola,我想知道我是如何得到实际值的每一个时间步长的,以便将其用于方程。 我试图找到函数或其他东西,但我找不到 实际上,我想用体积积分压力,但是Modelica中的积分器只支持时间积分。所以我决定把δu体积/δu时间乘以压强的积分。这就是我这么做的原因 伪代码如下所示 Work=Integral(pressure); 但我想要的是通过体积来积分压力,而不是时间。所以应该这样改变 Work=(Integral(pressure)) * (delta Volume/delta time); 我无

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

实际上,我想用体积积分压力,但是Modelica中的积分器只支持时间积分。所以我决定把δu体积/δu时间乘以压强的积分。这就是我这么做的原因

伪代码如下所示

  Work=Integral(pressure);
但我想要的是通过体积来积分压力,而不是时间。所以应该这样改变

  Work=(Integral(pressure)) * (delta Volume/delta time);
我无法使用增量时间的常量值,因为解算器无法处理固定时间步长的模型


请回答我如何得到每个时间步长的实际值。

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


请注意,Dymola会自动检查单位,在这种情况下,会检查积分p*derV是否与功兼容,即J-应该是什么。

如果不想积分p dt,但p dV=p dV/dt,则必须将p乘以derV,有用于乘法Modelica.blocks.Math.Product和微分Modelica.blocks.Continuous.Der的块;或者使用Modelica.Blocks.Continuous.Derivative作为近似导数


请注意,Dymola会自动检查单位,在这种情况下,会检查积分p*derV是否与功兼容,即J-应该是什么。

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

Power = pressure * volumeFlowRate = pressure * der(volume);
然后计算

der(Work) = Power;

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

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

Power = pressure * volumeFlowRate = pressure * der(volume);
然后计算

der(Work) = Power;

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

您可以将其重写为使用der运算符吗?您可以将其重写为使用der运算符吗?哇,这是一个简单的数学问题,已解决。我太蠢了。。非常感谢你!哇,这是一个简单的数学和问题解决了。我太蠢了。。非常感谢你!对这是一个简单的数学哈哈。。。非常感谢你!对这是一个简单的数学哈哈。。。非常感谢你!