谁能告诉我是否可以像下面这样建模,模型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;发布于 2013-12-18 22:35:48
现在,您有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;https://stackoverflow.com/questions/20660622
复制相似问题