我遇到的问题可以在像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*
的功能吗?或者如何编程模型才能做到这一点?我尝试了多种方法,但是模型从未关闭过。欢迎思想和赞赏!
节日快乐/新年快乐!
穆罕默德
答案 0 :(得分:4)
您可能会发现我的书中的sample and hold example很有用。它使用基于时间的采样,而您可能希望基于压力值进行采样。但是原理是一样的。这样您就可以记录事件发生的时间。
针对您的特定情况,以下(未经测试的)代码可能非常接近您想要的代码:
LIMIT