反演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
)。我有一个简单的稳态模型,其中包含如下三个方程:
OutPort.mdot = InPort.mdot
OutPort.P = rc * InPort.P
OutPort.T = InPort.T * (1 + rc[ (gamma-1)/gamma) - 1][/sup] / eta);
这里,rc、gamma和eta分别是压缩比、比热容比和压缩机效率。
我想知道,如果我知道 : gamma、eta、OutPort.mdot
、OutPort.P
和 OutPort.T
以及 InPort.P
和 InPort.T
的值,我能找到 rc 的值吗?
我可以找到 rc 的值吗?在 Modelica 中应该如何使用上面的方程式来计算压缩机的模型。据我所知,有一些变量被指定为参数,在模拟过程中不能改变。 modelica 模型应该如何与上述等式
谢谢
是的,只要您确保 rc 不是 parameter
,而是一个普通变量,并且您提供适当数量的已知量以实现平衡系统,这应该不是问题(粗略地说,未知数的数量与方程的数量相匹配)。
例如。在你的情况下,如果你 know/supply OutPort.P
和 InPort.P
,rc
已经从等式 2 确定。然后,在第三个等式中,没有未知数,所以要么温度值与方程一致,或者您(最好)留下一个未确定的温度值。
此外,如果您只想在稳态初始化期间计算参数 rc,即不随时间变化也是可能的:
...
parameter Real rc(fixed=false);
initial equation
Inport.mdot=12; // Or something else indirectly determining rc.
fixed=false表示rc由初始化间接确定。但是,如果模型不是完全静止的,它只会在初始化期间找到正确的 rc,然后再使用它。
我想知道模型是否可以在 modelica 中反转。 (这里的逆意味着:如果在因果语句中 y= x +a;
x 和 a 是输入,y 是输出;但是如果我想找到 'x' 作为输出,而 'y' 和 'a' 作为输入,模型称为 reversed/inversed 模型)例如,如果我有带输入空气端口和输出空气端口的压缩机,并且端口具有与其相关联的变量是 pressure(P)
、temperature(T)
和质量流速(mdot
)。我有一个简单的稳态模型,其中包含如下三个方程:
OutPort.mdot = InPort.mdot
OutPort.P = rc * InPort.P
OutPort.T = InPort.T * (1 + rc[ (gamma-1)/gamma) - 1][/sup] / eta);
这里,rc、gamma和eta分别是压缩比、比热容比和压缩机效率。
我想知道,如果我知道 : gamma、eta、OutPort.mdot
、OutPort.P
和 OutPort.T
以及 InPort.P
和 InPort.T
的值,我能找到 rc 的值吗?
我可以找到 rc 的值吗?在 Modelica 中应该如何使用上面的方程式来计算压缩机的模型。据我所知,有一些变量被指定为参数,在模拟过程中不能改变。 modelica 模型应该如何与上述等式
谢谢
是的,只要您确保 rc 不是 parameter
,而是一个普通变量,并且您提供适当数量的已知量以实现平衡系统,这应该不是问题(粗略地说,未知数的数量与方程的数量相匹配)。
例如。在你的情况下,如果你 know/supply OutPort.P
和 InPort.P
,rc
已经从等式 2 确定。然后,在第三个等式中,没有未知数,所以要么温度值与方程一致,或者您(最好)留下一个未确定的温度值。
此外,如果您只想在稳态初始化期间计算参数 rc,即不随时间变化也是可能的:
...
parameter Real rc(fixed=false);
initial equation
Inport.mdot=12; // Or something else indirectly determining rc.
fixed=false表示rc由初始化间接确定。但是,如果模型不是完全静止的,它只会在初始化期间找到正确的 rc,然后再使用它。