Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
反演modelica仿真模型:稳态模型_Modelica_Inverse_Openmodelica_Steady.js - Fatal编程技术网

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

反演modelica仿真模型:稳态模型,modelica,inverse,openmodelica,steady.js,Modelica,Inverse,Openmodelica,Steady.js,我想知道一个模型是否可以在modelica中反转。(这里的反向是指:如果在因果关系陈述中y=x+a;x和a是输入,y是输出;但是如果我想找到'x'作为输出,而'y'和'a'作为输入,这个模型被称为反向/反向模型)例如,如果我有一个压缩机,有输入空气端口和输出空气端口,端口有与之相关的变量是压力(P),温度(T)和质量流量(mdot)。我有一个简单的稳态模型,包含以下三个方程: OutPort.mdot=InPort.mdot OutPort.P=rc*InPort.P OutPort.T=InP

我想知道一个模型是否可以在modelica中反转。(这里的反向是指:如果在因果关系陈述中
y=x+a;
x和a是输入,y是输出;但是如果我想找到'x'作为输出,而'y'和'a'作为输入,这个模型被称为反向/反向模型)例如,如果我有一个压缩机,有输入空气端口和输出空气端口,端口有与之相关的变量是
压力(P)
温度(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分别是压缩比、比热容比和压缩机效率

    我想知道,如果我知道伽马,埃塔,
    OutPort.mdot
    OutPort.p
    OutPort.T
    InPort.p
    InPort.T
    的值,我能找到rc的值吗

    我可以在Modelica中找到rc的值吗?压缩机模型应该如何使用上述方程。据我所知,有一些变量被指定为参数,在模拟过程中无法更改。modelica模型应如何与上述方程结合


    感谢

    是的,只要您确保rc不是参数,而是正态变量,并且您提供适当数量的已知量以实现平衡系统(大致上,未知数的数量与方程式的数量匹配),这就不应该是问题。
    例如,在您的情况下,如果您知道/提供
    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,然后再使用。

    亲爱的Christoph,非常感谢您的回复。我尝试过创建模型,将rc设置为实变量而不是参数。我不知道在模型创建期间(模拟之前),变量的值是否已知。如果我创建模型,将rc设置为real,而不使用“parameter attribute”。它应该始终是输出。我不能把它设定为已知。可以通过实际输入设置额外的端口来设置该值;然而,它成为因果模型。如果我在不同的情况下使用相同的压缩机,我必须改变模型,以便在这种情况下实现局部平衡。谢谢。亲爱的克里斯托夫,我必须再写一条评论,因为我不能把所有的东西都放在最后一条评论中。。继续形成最后评论。。因此,在创建模型时,我需要看看它在更大的模型中是如何连接的。虽然我已经成功地执行了这个模型,但我必须做上面的更改。我不确定,但这可能是因为在端口的情况下,我不能说一些端口变量是已知的,一些是未知的。再次非常感谢。如果你能给我推荐一些关于这方面的阅读材料,我将不胜感激。谢谢