麻烦平衡模型中的简单功率流模型
Trouble balancing a simple power flow model in modelica
我尝试建立一个简单的模型,其中包含源和汇之间的电力或热能流动。
尽管我在连接器中只使用了一对流量和潜在变量,但我似乎遇到了与此 topic 中处理的问题相同的问题:
connector PowerPortE
flow SI.Power P;
SI.Voltage v "Dummy potential-variable to balance flow-variable P";
end PowerPortE;
信号响应功率接收器的简单示例如下所示:
model PowerSinkE
SimplePowerSystem.PowerPortE Port;
Modelica.Blocks.Interfaces.RealInput P(unit = "W");
SI.Voltage v(start = 230);
equation
Port.P = P;
Port.v = v;
end PowerSinkE;
model Test
SimplePowerSystem.PowerSinkE Verbraucher ;
Modelica.Blocks.Sources.Sine sine1(freqHz = 50) ;
equation
connect(sine1.y,Verbraucher.P);
end Test;
检查 PowerSinkE
顺利,但在尝试模拟时,出现以下错误:
Internal error pre-optimization module removeSimpleEquations failed.
Internal error Found Equation without time dependent variables Verbraucher.Port.P = const.k
An independent subset of the model has imbalanced number of equations (1) and variables (2).
variables:
Verbraucher.v
Verbraucher.Port.v
equations:
1 : Verbraucher.Port.v = Verbraucher.v
An independent subset of the model has imbalanced number of equations (4) and variables (3).
variables:
sine1.y
Verbraucher.P
Verbraucher.Port.P
equations:
1 : Verbraucher.Port.P = Verbraucher.P
2 : sine1.y = sine1.offset + (if time < sine1.startTime then 0.0 else sine1.amplitude * sin(6.283185307179586 * sine1.freqHz * (time - sine1.startTime) + sine1.phase))
3 : Verbraucher.Port.P = 0.0
4 : Verbraucher.P = sine1.y
最初我想将变量 v
完全排除在模型之外(尽管我不得不将它留在连接器中以进行平衡)但这也没有奏效:
Model is structurally singular, error found sorting equations
1: 0.0 = sine1.offset + (if time < sine1.startTime then 0.0 else sine1.amplitude * sin(6.283185307179586 * sine1.freqHz * (time - sine1.startTime) + sine1.phase));
for variables
Verbraucher.Port.v(1)
问题好像是我需要流量变量power但是没有对应的potential变量。我 运行 不知道如何解决这个问题,所以感谢您的帮助。
我最初的想法是消费者中的端口未连接。这添加了等式 consumer.port.P = 0.0
。但您真正需要的是端口电压的方程式。
您需要在电气连接器上使用电压和 电流,并且需要电气接地。我建议您查看 Modelica by Example 以了解有关电气和热组件建模的更多信息。
为什么在这种情况下尝试使用连接器?如果你不需要"pyhsical meaning"连接器内部的流量和潜在变量,你可以使用真实的输入和输出来处理信号。
package SimplePowerSystem
model PowerSinkE
import SI = Modelica.SIunits;
SI.Power P;
Modelica.Blocks.Interfaces.RealInput P_in(unit="W");
equation
P = P_in;
end PowerSinkE;
model Test
SimplePowerSystem.PowerSinkE Verbraucher;
Modelica.Blocks.Sources.Sine sine1(freqHz = 50);
equation
connect(sine1.y, Verbraucher.P_in);
end Test;
end SimplePowerSystem;
我尝试建立一个简单的模型,其中包含源和汇之间的电力或热能流动。 尽管我在连接器中只使用了一对流量和潜在变量,但我似乎遇到了与此 topic 中处理的问题相同的问题:
connector PowerPortE
flow SI.Power P;
SI.Voltage v "Dummy potential-variable to balance flow-variable P";
end PowerPortE;
信号响应功率接收器的简单示例如下所示:
model PowerSinkE
SimplePowerSystem.PowerPortE Port;
Modelica.Blocks.Interfaces.RealInput P(unit = "W");
SI.Voltage v(start = 230);
equation
Port.P = P;
Port.v = v;
end PowerSinkE;
model Test
SimplePowerSystem.PowerSinkE Verbraucher ;
Modelica.Blocks.Sources.Sine sine1(freqHz = 50) ;
equation
connect(sine1.y,Verbraucher.P);
end Test;
检查 PowerSinkE
顺利,但在尝试模拟时,出现以下错误:
Internal error pre-optimization module removeSimpleEquations failed.
Internal error Found Equation without time dependent variables Verbraucher.Port.P = const.k
An independent subset of the model has imbalanced number of equations (1) and variables (2).
variables:
Verbraucher.v
Verbraucher.Port.v
equations:
1 : Verbraucher.Port.v = Verbraucher.v
An independent subset of the model has imbalanced number of equations (4) and variables (3).
variables:
sine1.y
Verbraucher.P
Verbraucher.Port.P
equations:
1 : Verbraucher.Port.P = Verbraucher.P
2 : sine1.y = sine1.offset + (if time < sine1.startTime then 0.0 else sine1.amplitude * sin(6.283185307179586 * sine1.freqHz * (time - sine1.startTime) + sine1.phase))
3 : Verbraucher.Port.P = 0.0
4 : Verbraucher.P = sine1.y
最初我想将变量 v
完全排除在模型之外(尽管我不得不将它留在连接器中以进行平衡)但这也没有奏效:
Model is structurally singular, error found sorting equations
1: 0.0 = sine1.offset + (if time < sine1.startTime then 0.0 else sine1.amplitude * sin(6.283185307179586 * sine1.freqHz * (time - sine1.startTime) + sine1.phase));
for variables
Verbraucher.Port.v(1)
问题好像是我需要流量变量power但是没有对应的potential变量。我 运行 不知道如何解决这个问题,所以感谢您的帮助。
我最初的想法是消费者中的端口未连接。这添加了等式 consumer.port.P = 0.0
。但您真正需要的是端口电压的方程式。
您需要在电气连接器上使用电压和 电流,并且需要电气接地。我建议您查看 Modelica by Example 以了解有关电气和热组件建模的更多信息。
为什么在这种情况下尝试使用连接器?如果你不需要"pyhsical meaning"连接器内部的流量和潜在变量,你可以使用真实的输入和输出来处理信号。
package SimplePowerSystem
model PowerSinkE
import SI = Modelica.SIunits;
SI.Power P;
Modelica.Blocks.Interfaces.RealInput P_in(unit="W");
equation
P = P_in;
end PowerSinkE;
model Test
SimplePowerSystem.PowerSinkE Verbraucher;
Modelica.Blocks.Sources.Sine sine1(freqHz = 50);
equation
connect(sine1.y, Verbraucher.P_in);
end Test;
end SimplePowerSystem;