Commit 3a895505 authored by i.elizarov's avatar i.elizarov
Browse files

Made the first thermohydraulic thermal demonstrator model

parent 7be1703c
model thermal_demonstrator "Thermohydraulic model of the thermal demonstrator"
replaceable package Medium = Novec649 annotation(
Documentation(info = "<html><head></head><body>This model does not include thermal performance of the side panel</body></html>"));
parameter Modelica.SIunits.MassFlowRate m_flow_plate = 0.0893455 "Nominal flow rate for the cooling plate";
parameter Modelica.SIunits.PressureDifference dp_plate = 1.32e5 "Pressure loss at the cooling plate";
parameter Modelica.SIunits.Volume V_plate = 0.0582e-3 "Volume of the liquid in the cooling plate";
parameter Modelica.SIunits.HeatFlowRate Q_flow_plate = 800 "Nominal cooling capacity of the cooling plate";
IBPSA.Fluid.HeatExchangers.HeaterCooler_u plate1_1(redeclare package Medium = Medium, Q_flow_nominal = Q_flow_plate, allowFlowReversal = true, dp_nominal = dp_plate, energyDynamics = Modelica.Fluid.Types.Dynamics.FixedInitial, m_flow_nominal = m_flow_plate, tau = V_plate * 1785.9 / m_flow_plate) annotation(
Placement(visible = true, transformation(origin = {-60, 0}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
IBPSA.Fluid.HeatExchangers.HeaterCooler_u plate1_2(redeclare package Medium = Medium, Q_flow_nominal = Q_flow_plate, allowFlowReversal = true, dp_nominal = dp_plate, energyDynamics = Modelica.Fluid.Types.Dynamics.FixedInitial, m_flow_nominal = m_flow_plate, tau = V_plate * 1785.9 / m_flow_plate) annotation(
Placement(visible = true, transformation(origin = {-20, 0}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
IBPSA.Fluid.HeatExchangers.HeaterCooler_u plate1_3(redeclare package Medium = Medium, Q_flow_nominal = Q_flow_plate, allowFlowReversal = true, dp_nominal = dp_plate, energyDynamics = Modelica.Fluid.Types.Dynamics.FixedInitial, m_flow_nominal = m_flow_plate, tau = V_plate * 1785.9 / m_flow_plate) annotation(
Placement(visible = true, transformation(origin = {20, 0}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
IBPSA.Fluid.HeatExchangers.HeaterCooler_u plate1_4(redeclare package Medium = Medium, Q_flow_nominal = Q_flow_plate, allowFlowReversal = true, dp_nominal = dp_plate, energyDynamics = Modelica.Fluid.Types.Dynamics.FixedInitial, m_flow_nominal = m_flow_plate, tau = V_plate * 1785.9 / m_flow_plate) annotation(
Placement(visible = true, transformation(origin = {60, 0}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
Modelica.Fluid.Interfaces.FluidPort_a port_a(redeclare package Medium = Medium) annotation(
Placement(visible = true, transformation(origin = {0, 100}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {0, 100}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Fluid.Interfaces.FluidPort_b port_b(redeclare package Medium = Medium) annotation(
Placement(visible = true, transformation(origin = {0, -100}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {0, -98}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Blocks.Interfaces.RealInput u(min = 0, max = 1) "Control input for cooling plates" annotation(
Placement(visible = true, transformation(origin = {-120, 60}, extent = {{-20, -20}, {20, 20}}, rotation = 0), iconTransformation(origin = {-120, 60}, extent = {{-20, -20}, {20, 20}}, rotation = 0)));
Modelica.Fluid.Fittings.GenericResistances.VolumeFlowRate sidePanel1(redeclare package Medium = Medium, a = 7485597e8, allowFlowReversal = false, b = 1212001e3) annotation(
Placement(visible = true, transformation(origin = {90, -2}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
equation
connect(port_a, plate1_1.port_a) annotation(
Line(points = {{0, 100}, {0, 32}, {-60, 32}, {-60, 10}}));
connect(plate1_2.port_a, port_a) annotation(
Line(points = {{-20, 10}, {-20, 32}, {0, 32}, {0, 100}}, color = {0, 127, 255}));
connect(plate1_3.port_a, port_a) annotation(
Line(points = {{20, 10}, {20, 32}, {0, 32}, {0, 100}}, color = {0, 127, 255}));
connect(plate1_4.port_a, port_a) annotation(
Line(points = {{60, 10}, {60, 32}, {0, 32}, {0, 100}}, color = {0, 127, 255}));
connect(plate1_1.port_b, port_b) annotation(
Line(points = {{-60, -10}, {-60, -32}, {0, -32}, {0, -100}}, color = {0, 127, 255}));
connect(plate1_2.port_b, port_b) annotation(
Line(points = {{-20, -10}, {-20, -32}, {0, -32}, {0, -100}}, color = {0, 127, 255}));
connect(plate1_3.port_b, port_b) annotation(
Line(points = {{20, -10}, {20, -32}, {0, -32}, {0, -100}}, color = {0, 127, 255}));
connect(plate1_4.port_b, port_b) annotation(
Line(points = {{60, -10}, {60, -32}, {0, -32}, {0, -100}}, color = {0, 127, 255}));
connect(u, plate1_1.u) annotation(
Line(points = {{-120, 60}, {-54, 60}, {-54, 12}}, color = {0, 0, 127}));
connect(plate1_2.u, u) annotation(
Line(points = {{-14, 12}, {-14, 60}, {-120, 60}}, color = {0, 0, 127}));
connect(plate1_3.u, u) annotation(
Line(points = {{26, 12}, {26, 60}, {-120, 60}}, color = {0, 0, 127}));
connect(plate1_4.u, u) annotation(
Line(points = {{66, 12}, {66, 60}, {-120, 60}}, color = {0, 0, 127}));
connect(sidePanel1.port_a, port_a) annotation(
Line(points = {{90, 8}, {88, 8}, {88, 100}, {0, 100}}, color = {0, 127, 255}));
connect(sidePanel1.port_b, port_b) annotation(
Line(points = {{90, -12}, {90, -100}, {0, -100}}, color = {0, 127, 255}));
annotation(
uses(IBPSA(version = "3.0.0"), Modelica(version = "3.2.3")),
Icon(graphics = {Rectangle(fillColor = {255, 255, 255}, fillPattern = FillPattern.Solid, extent = {{-100, 100}, {100, -100}}), Rectangle(origin = {26, 65}, fillColor = {132, 132, 132}, fillPattern = FillPattern.Solid, extent = {{-34, 15}, {34, -15}}), Rectangle(origin = {26, 23}, fillColor = {132, 132, 132}, fillPattern = FillPattern.Solid, extent = {{-34, 15}, {34, -15}}), Rectangle(origin = {26, -21}, fillColor = {132, 132, 132}, fillPattern = FillPattern.Solid, extent = {{-34, 15}, {34, -15}}), Rectangle(origin = {26, -63}, fillColor = {132, 132, 132}, fillPattern = FillPattern.Solid, extent = {{-34, 15}, {34, -15}}), Line(origin = {75, 74}, points = {{-15, 0}, {15, 0}}), Line(origin = {74, 32}, points = {{-14, 0}, {16, 0}}), Line(origin = {73, -10}, points = {{-13, 0}, {17, 0}}), Line(origin = {73, -54}, points = {{-13, 0}, {17, 0}}), Line(origin = {69, 58}, points = {{-9, 0}, {9, 0}}), Line(origin = {69, 16}, points = {{-9, 0}, {9, 0}}), Line(origin = {68, -30}, points = {{-8, 0}, {10, 0}}), Line(origin = {69, -72}, points = {{-9, 0}, {9, 0}}), Line(origin = {78, -7}, points = {{0, 65}, {0, -65}}), Line(origin = {90, 10}, points = {{0, 64}, {0, -64}}), Rectangle(origin = {-69, 2}, fillColor = {122, 122, 122}, fillPattern = FillPattern.Solid, extent = {{-5, 80}, {5, -80}})}),
Documentation(info = "<html><head></head><body>This model does not include thermal performance of the sice panel</body></html>"));
end thermal_demonstrator;
model thermal_demonstrator_validation
package Medium =
Novec649;
inner Modelica.Fluid.System system annotation(
Placement(visible = true, transformation(origin = {90, 90}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Fluid.Sources.FixedBoundary boundary1(redeclare package Medium = Medium, nPorts = 1, p = 1e5) annotation(
Placement(visible = true, transformation(origin = {-48, -72}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Fluid.Sources.FixedBoundary boundary(redeclare package Medium = Medium, nPorts = 1, p = boundary1.p + 1.32e5) annotation(
Placement(visible = true, transformation(origin = {-40, 38}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
thermal_demonstrator thermal_demonstrator1(redeclare package Medium = Medium) annotation(
Placement(visible = true, transformation(origin = {0, -8}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Blocks.Sources.Constant const(k = 1) annotation(
Placement(visible = true, transformation(origin = {-70, 10}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
IBPSA.Fluid.Sensors.TemperatureTwoPort senTem2(redeclare package Medium = Medium, m_flow_nominal = 0.0893455 * 4) annotation(
Placement(visible = true, transformation(origin = {0, -40}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
equation
connect(boundary.ports[1], thermal_demonstrator1.port_a) annotation(
Line(points = {{-30, 38}, {0, 38}, {0, 2}}, color = {0, 127, 255}));
connect(const.y, thermal_demonstrator1.u) annotation(
Line(points = {{-58, 10}, {-34, 10}, {-34, -2}, {-12, -2}}, color = {0, 0, 127}));
connect(thermal_demonstrator1.port_b, senTem2.port_a) annotation(
Line(points = {{0, -18}, {0, -30}}, color = {0, 127, 255}));
connect(senTem2.port_b, boundary1.ports[1]) annotation(
Line(points = {{0, -50}, {0, -72}, {-38, -72}}, color = {0, 127, 255}));
annotation(
uses(Modelica(version = "3.2.3"), IBPSA(version = "3.0.0")),
Diagram);
end thermal_demonstrator_validation;
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment