是否可以使用时变变量的先前值
例如:假设我有一个入口温度为298K,具有指定的均匀质量流量(M_flow)的管道,现在假设我用一个100瓦的加热器来加热管道。出口温度将达到更高的温度,假设302K,现在如果我必须使用这个出口温度作为我的入口温度(在某种意义上,我正在重新循环水),我会怎么做呢?
是否可以根据上一个时间步长的出口温度更新入口温度的值?因此,对于下一次迭代,入口温度将与前一次迭代中的出口温度相同(换句话说,流体将循环)。
谢谢
发布于 2013-03-20 20:27:52
您不能访问上一个时间步长中的值。在Modelica中,您能得到的最接近的方法是使用delay(exp,T)来获取单位时间之前的值T。
发布于 2013-03-21 20:44:53
时间步长根本不会进入其中。使用有关时间步的信息的模型是错误的。自然并不知道或关心集成时间步长,模型应该反映这一点。
在我看来,您想要捕获的是传输延迟。传输延迟是指分子、电子等通过系统所花费的时间所引起的延迟。因此,假设你想要模拟的是入口液体到达出口所需的时间。同样,这与积分时间步长无关,而是与流体的速度和它必须移动的距离有关。
发布于 2013-03-20 22:54:18
为了为你描述的系统建立一个合适的模型,我建议你看看下面的例子:
Modelica.Thermal.FluidHeatFlow.Examples.IndirectCooling

modelica标准库版本。3.2。您可以放置环境或控制体积组件,而不是一根管道,以更好地满足您的需求。此外,使用连续和可微方程(延迟函数不是),您将受益于Modelica代码的一些优势,例如,您将能够在更广泛的情况下重用您的模型,解决反问题,解决初值问题,...
我希望这对你有帮助,马可
https://stackoverflow.com/questions/15517892
复制相似问题