Modelica-在仿真过程中冻结特定时间值

时间:2018-12-23 01:56:48

标签: modelica openmodelica

我遇到的问题可以在像Fortran这样的因果环境中轻松解决,但是考虑到我有限的知识,事实证明在Modelica中很难解决问题

考虑带有入口和出口的容积。指定了入口质量流量,而出口质量流量是根据体积中的压力计算的。当体积中的压力超过设定点时,出口面积开始从其初始值线性增加到最大值,此后保持不变。换句话说:

A = min( const * (t - t*) + A_0, A_max)
if p > p_set
where t* = the time at which pressure in the volume exceeds the set pressure.

问题是:在仿真过程中有捕获t*的功能吗?或者如何编程模型才能做到这一点?我尝试了多种方法,但是模型从未关闭过。欢迎思想和赞赏!

节日快乐/新年快乐!

穆罕默德

1 个答案:

答案 0 :(得分:4)

您可能会发现我的书中的sample and hold example很有用。它使用基于时间的采样,而您可能希望基于压力值进行采样。但是原理是一样的。这样您就可以记录事件发生的时间。

针对您的特定情况,以下(未经测试的)代码可能非常接近您想要的代码:

LIMIT