我想知道我如何获得实际值的每个时间步长以将其用于等式。 我试图找到函数或其他东西,但找不到。
实际上,我正在尝试按体积对压力进行积分,但 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
的 block ;或者使用 Modelica.Blocks.Continuous.Derivative
进行近似导数。
请注意,Dymola 会自动检查单位,在这种情况下,会检查积分 p*der(V)
是否与工作(即“J”)兼容 - 它应该是。
关于modelica - 如何检索 Modelica 中实际值的时间步长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61628909/