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

标签 modelica dymola

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

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

伪代码如下。

  Work=Integral(pressure);

enter image description here

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

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

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

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

最佳答案

如果您不想积分 p dtp 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/

相关文章:

Modelica 可扩展连接器最佳实践

dll - 来自 MapleSim/Modelica 的 FORTRAN DLL 调用约定

stream - 如何理解Modelica模型中的Instream算子?

arrays - 在 Dymola 中编译大型数组

python - FMUException : Error loading the binary. 无法加载 DLL:动态链接库 (DLL) 初始化例程失败

c++ - 由于已达到数组的最大内存分配,因此无法编译Modelica程序(编译器的堆空间不足)

modelica - 调试 Modelica 代码

modelica - 动态模型能否在 Dymola 中达到真正的稳定状态?

modelica - 如何理解 Modelica 模型中的病态雅可比问题?

modelica - 是否可以通过 Modelica 中的参数设置变量类型?