1 year ago
#363773
maxime3359
Hydraulic network results in an under-determined linear system when second heat capacitor is added
I'm trying to model an hydraulic network which exchange heat with two mass of fluid in OpenModelica. I have two models:
the first one: and the second one:
The difference between the two is that in the first model the heat exchange is modeled with only one heatcapacitor (representing the mass of fluid) and in the second model a part of the network is exchanging with a mass of fluid and the second part of the network is exchanging with another mass of fluid.
The first model is running perfectly but when I try to simulate the second one (the checking and compilation is ok) I get the following error message:
I don't understand what can cause an issue here and I need to use two mass of fluid for my heat transfer.
Here is the code of simplified example of what I would like to do. This model is not running :
model Circuit_hydraulique01_04
replaceable package Medium=Modelica.Media.Water.StandardWater constrainedby
Modelica.Media.Interfaces.PartialMedium;
replaceable model HeatTransfer_1 = Modelica.Fluid.Pipes.BaseClasses.HeatTransfer.LocalPipeFlowHeatTransfer;
Modelica.Fluid.Pipes.StaticPipe pipe(redeclare package Medium = Medium, diameter = 32e-3, length = 1, p_a_start = 4.4e5) annotation(
Placement(visible = true, transformation(origin = {-50, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Fluid.Sources.Boundary_pT boundary(redeclare package Medium = Medium,T = 311.15, nPorts = 1, p = 4.4e5) annotation(
Placement(visible = true, transformation(origin = {-84, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Fluid.Pipes.DynamicPipe pipe1(redeclare package Medium = Medium, redeclare final model HeatTransfer = HeatTransfer_1, T_start = 311.15,diameter = 12.8e-3, energyDynamics = Modelica.Fluid.Types.Dynamics.SteadyState, length = 15, massDynamics = Modelica.Fluid.Types.Dynamics.SteadyState, momentumDynamics = Modelica.Fluid.Types.Dynamics.SteadyState, nNodes = 10, use_HeatTransfer = true) annotation(
Placement(visible = true, transformation(origin = {2, 102}, extent = {{-10, 10}, {10, -10}}, rotation = 0)));
Modelica.Fluid.Pipes.DynamicPipe pipe2(redeclare package Medium = Medium, redeclare final model HeatTransfer = HeatTransfer_1, T_start = 311.15,diameter = 12.8e-3, energyDynamics = Modelica.Fluid.Types.Dynamics.SteadyState, length = 15, massDynamics = Modelica.Fluid.Types.Dynamics.SteadyState, momentumDynamics = Modelica.Fluid.Types.Dynamics.SteadyState, nNodes = 10, use_HeatTransfer = true) annotation(
Placement(visible = true, transformation(origin = {2, -96}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
inner Modelica.Fluid.System system annotation(
Placement(visible = true, transformation(origin = {-78, 110}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Fluid.Pipes.StaticPipe pipe3(redeclare package Medium = Medium, diameter = 32e-3, length = 1) annotation(
Placement(visible = true, transformation(origin = {52, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Fluid.Examples.HeatExchanger.BaseClasses.WallConstProps wallConstProps(area_h = 0.895, c_wall = 510, energyDynamics = Modelica.Fluid.Types.Dynamics.SteadyStateInitial, k_wall = 60.5, n = 10, rho_wall = 7850, s = 3e-3) annotation(
Placement(visible = true, transformation(origin = {2, -72}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Fluid.Examples.HeatExchanger.BaseClasses.WallConstProps wallConstProps1(area_h = 0.895, c_wall = 510, energyDynamics = Modelica.Fluid.Types.Dynamics.SteadyStateInitial, k_wall = 60.5, n = 10, rho_wall = 7850, s = 3e-3) annotation(
Placement(visible = true, transformation(origin = {2, 80}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Thermal.HeatTransfer.Components.Convection convection[10] annotation(
Placement(visible = true, transformation(origin = {2, 60}, extent = {{-10, 10}, {10, -10}}, rotation = -90)));
Modelica.Thermal.HeatTransfer.Components.Convection convection1[10] annotation(
Placement(visible = true, transformation(origin = {2, -48}, extent = {{10, 10}, {-10, -10}}, rotation = -90)));
Modelica.Thermal.HeatTransfer.Components.ThermalCollector thermalCollector(m = 10) annotation(
Placement(visible = true, transformation(origin = {2, 38}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Thermal.HeatTransfer.Components.ThermalCollector thermalCollector1(m = 10) annotation(
Placement(visible = true, transformation(origin = {2, -22}, extent = {{-10, 10}, {10, -10}}, rotation = 0)));
Modelica.Blocks.Sources.Constant const[10](each k = 179) annotation(
Placement(visible = true, transformation(origin = {-78, -48}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Blocks.Sources.Constant const1[10](each k = 179) annotation(
Placement(visible = true, transformation(origin = {-74, 60}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Fluid.Sources.MassFlowSource_T boundary1(redeclare package Medium = Medium,T = 311.15, m_flow = -2.5, nPorts = 1) annotation(
Placement(visible = true, transformation(origin = {88, 0}, extent = {{10, -10}, {-10, 10}}, rotation = 0)));
Modelica.Thermal.HeatTransfer.Components.HeatCapacitor heatCapacitor1(C = 4180, T(start = 328.15)) annotation(
Placement(visible = true, transformation(origin = {24, 24}, extent = {{-10, 10}, {10, -10}}, rotation = 90)));
Modelica.Thermal.HeatTransfer.Components.HeatCapacitor heatCapacitor(C = 4180, T(start = 328.15)) annotation(
Placement(visible = true, transformation(origin = {24, -2}, extent = {{-10, 10}, {10, -10}}, rotation = 90)));
equation
connect(boundary.ports[1], pipe.port_a) annotation(
Line(points = {{-74, 0}, {-60, 0}}, color = {0, 127, 255}));
connect(pipe.port_b, pipe2.port_a) annotation(
Line(points = {{-40, 0}, {-40, -96}, {-8, -96}}, color = {0, 127, 255}));
connect(pipe2.port_b, pipe3.port_a) annotation(
Line(points = {{12, -96}, {42, -96}, {42, 0}}, color = {0, 127, 255}));
connect(convection1.solid, wallConstProps.heatPort_a) annotation(
Line(points = {{2, -58}, {2, -67}}, color = {191, 0, 0}, thickness = 0.5));
connect(thermalCollector1.port_a, convection1.fluid) annotation(
Line(points = {{2, -32}, {2, -38}}, color = {191, 0, 0}, thickness = 0.5));
connect(convection.fluid, thermalCollector.port_a) annotation(
Line(points = {{2, 50}, {2, 48}}, color = {191, 0, 0}, thickness = 0.5));
connect(wallConstProps1.heatPort_b, convection.solid) annotation(
Line(points = {{2, 75}, {2, 70}}, color = {191, 0, 0}, thickness = 0.5));
connect(const1.y, convection.Gc) annotation(
Line(points = {{-63, 60}, {-8, 60}}, color = {0, 0, 127}, thickness = 0.5));
connect(const.y, convection1.Gc) annotation(
Line(points = {{-67, -48}, {-8, -48}}, color = {0, 0, 127}, thickness = 0.5));
connect(pipe.port_b, pipe1.port_a) annotation(
Line(points = {{-40, 0}, {-40, 102}, {-8, 102}}, color = {0, 127, 255}));
connect(pipe1.port_b, pipe3.port_a) annotation(
Line(points = {{12, 102}, {42, 102}, {42, 0}}, color = {0, 127, 255}));
connect(wallConstProps.heatPort_b, pipe2.heatPorts) annotation(
Line(points = {{2, -77}, {2, -92}}, color = {191, 0, 0}, thickness = 0.5));
connect(pipe1.heatPorts, wallConstProps1.heatPort_a) annotation(
Line(points = {{2, 98}, {2, 85}}, color = {127, 0, 0}, thickness = 0.5));
connect(pipe3.port_b, boundary1.ports[1]) annotation(
Line(points = {{62, 0}, {78, 0}, {78, 0}, {78, 0}}, color = {0, 127, 255}));
connect(thermalCollector1.port_b, heatCapacitor.port) annotation(
Line(points = {{2, -12}, {2, -12}, {2, -2}, {14, -2}, {14, -2}}, color = {191, 0, 0}));
connect(thermalCollector.port_b, heatCapacitor1.port) annotation(
Line(points = {{2, 28}, {2, 28}, {2, 24}, {14, 24}, {14, 24}}, color = {191, 0, 0}));
annotation(
uses(Modelica(version = "3.2.3")),
Diagram(coordinateSystem(extent = {{-100, -125}, {100, 125}})),
Icon(coordinateSystem(extent = {{-100, -125}, {100, 125}})),
version = "");
end Circuit_hydraulique01_04;
And I get the following error message which is different :
Does anyone know what's the issue in the example, that might solve the issue for the more complex model ?
fluid
modelica
dymola
openmodelica
0 Answers
Your Answer