是否可以使用时变变量
的先前值例如: 假设我的管道入口温度为298K,具有指定的均匀质量流量(m_flow),现在假设我使用100瓦的加热器加热管道。 出口温度将达到302K的更高温度,现在如果我必须使用这个出口温度作为我的入口温度(在某种意义上我重新循环水),我将如何做?
是否可以根据前一时间步的出口温度更新入口温度值?因此,对于下一次迭代,入口温度将与前一次迭代中的oulet温度相同(换句话说,流体将再循环)。
由于
答案 0 :(得分:3)
您无法访问上一时间步骤中的值。您可以在Modelica中获得的最接近的是使用delay(exp,T)
来获取T个时间段前的值。
答案 1 :(得分:3)
时间步长根本不会进入。使用有关时间步长信息的模型是错误的。大自然不知道或不关心整合时间步骤,模型应该反映出来。
在我看来,您想要捕获的是传输延迟。传输延迟是分子,电子等通过系统所花费的时间所引起的延迟。因此,您希望建模的是入口流体到达出口所需的时间。同样,这与积分时间步长无关,而是与流体的速度和必须行进的距离无关。一旦你知道需要多长时间(通过查看模拟结果本身的系统的先验知识),你可以遵循Marco关于使用延迟算子的建议。
答案 2 :(得分:2)
为了为您描述的系统设置合适的模型,我建议您查看示例:
Modelica.Thermal.FluidHeatFlow.Examples.IndirectCooling
of modelica标准库ver。 3.2。您可以放置环境或控制体积组件来代替一个管道,以更好地满足您的需求。此外,使用连续和可微的方程(延迟函数不是),您将受益于Modelica代码的一些优点,例如:您将能够在更广泛的情况下重用您的模型,解决反问题,解决初始值问题,......
我希望这有帮助, 马可