Modelica连接方程式

时间:2013-12-18 14:19:51

标签: modelica

任何人都可以告诉我,如果我可以建模如下模型Main连接模型A和模型B.它给出错误:6个方程和8个变量,但如何连接这些模型。

model A
Modelica.Blocks.Interfaces.RealInput ain1;
Modelica.Blocks.Interfaces.RealInput ain2;
Modelica.Blocks.Interfaces.RealInput ain3;
Modelica.Blocks.Interfaces.RealInput ain4;
Modelica.Blocks.Interfaces.RealOutput aout1;
Modelica.Blocks.Interfaces.RealOutput aout2;
end A;

model B
Modelica.Blocks.Interfaces.RealInput bin1;
Modelica.Blocks.Interfaces.RealInput bin2;
end B;

model Main
Modelica.Blocks.Interfaces.RealInput min1;
Modelica.Blocks.Interfaces.RealInput min2;
Modelica.Blocks.Interfaces.RealInput min3;
Modelica.Blocks.Interfaces.RealInput min4;
A a;
B b;
equation
connect(a.ain1,min1);
connect(a.ain2,min2);
connect(a.ain3,min3);
connect(a.ain4,min4);
connect(a.aout1,b.bin1);
connect(a.aout2,b.bin2);
end Main;

1 个答案:

答案 0 :(得分:1)

现在,您有6个方程式(每个connect语句一个)。但是,您有8个变量(每个RealInput一个,每个RealOutput)。从数学的角度来看,这意味着您的模型是under-determined,因为您拥有的变量多于方程式。

要解决此问题,您需要添加两个附加公式。从逻辑上讲,缺失的链接似乎是A的两个输出与A的输入相关的方式。例如,以下模型(我在A的输入和输出之间添加了这样的关系)很好:

model Main  
  model A
    Modelica.Blocks.Interfaces.RealInput ain1;
    Modelica.Blocks.Interfaces.RealInput ain2;
    Modelica.Blocks.Interfaces.RealInput ain3;
    Modelica.Blocks.Interfaces.RealInput ain4;
    Modelica.Blocks.Interfaces.RealOutput aout1;
    Modelica.Blocks.Interfaces.RealOutput aout2;
  equation
     aout1 = ain1 + ain2;
     aout2 = ain3 + ain4;
  end A;

  model B
    Modelica.Blocks.Interfaces.RealInput bin1;
    Modelica.Blocks.Interfaces.RealInput bin2;
  end B;  

  Modelica.Blocks.Interfaces.RealInput min1;
  Modelica.Blocks.Interfaces.RealInput min2;
  Modelica.Blocks.Interfaces.RealInput min3;
  Modelica.Blocks.Interfaces.RealInput min4;
  A a;
  B b;
equation
  connect(a.ain1,min1);
  connect(a.ain2,min2);
  connect(a.ain3,min3);
  connect(a.ain4,min4);
  connect(a.aout1,b.bin1);
  connect(a.aout2,b.bin2);
end Main;