反演modelica仿真模型:稳态模型

Inversing the modelica simulation model: steady state model

我想知道模型是否可以在 modelica 中反转。 (这里的逆意味着:如果在因果语句中 y= x +a; x 和 a 是输入,y 是输出;但是如果我想找到 'x' 作为输出,而 'y' 和 'a' 作为输入,模型称为 reversed/inversed 模型)例如,如果我有带输入空气端口和输出空气端口的压缩机,并且端口具有与其相关联的变量是 pressure(P)temperature(T) 和质量流速(mdot)。我有一个简单的稳态模型,其中包含如下三个方程:

  1. OutPort.mdot = InPort.mdot
  2. OutPort.P = rc * InPort.P
  3. OutPort.T = InPort.T * (1 + rc[ (gamma-1)/gamma) - 1][/sup] / eta);

这里,rc、gamma和eta分别是压缩比、比热容比和压缩机效率。

我想知道,如果我知道 : gamma、eta、OutPort.mdotOutPort.POutPort.T 以及 InPort.PInPort.T 的值,我能找到 rc 的值吗?

我可以找到 rc 的值吗?在 Modelica 中应该如何使用上面的方程式来计算压缩机的模型。据我所知,有一些变量被指定为参数,在模拟过程中不能改变。 modelica 模型应该如何与上述等式

谢谢

是的,只要您确保 rc 不是 parameter,而是一个普通变量,并且您提供适当数量的已知量以实现平衡系统,这应该不是问题(粗略地说,未知数的数量与方程的数量相匹配)。 例如。在你的情况下,如果你 know/supply OutPort.PInPort.Prc 已经从等式 2 确定。然后,在第三个等式中,没有未知数,所以要么温度值与方程一致,或者您(最好)留下一个未确定的温度值。

此外,如果您只想在稳态初始化期间计算参数 rc,即不随时间变化也是可能的:

 ...
 parameter Real rc(fixed=false);
initial equation
 Inport.mdot=12; // Or something else indirectly determining rc.

fixed=false表示rc由初始化间接确定。但是,如果模型不是完全静止的,它只会在初始化期间找到正确的 rc,然后再使用它。