Commit 25240687 authored by i.elizarov's avatar i.elizarov
Browse files

Model to demonstrate control strategies for the cooling plant

parent 803fff11
......@@ -4,10 +4,6 @@ model coolingPlant "Model of the cooling plant"
Novec649;
parameter Modelica.SIunits.HeatFlowRate Q_max = 10.83e3 "Maximum cooling capacity of the plant";
Modelica.Fluid.Fittings.GenericResistances.VolumeFlowRate volumeFlowRate(redeclare package Medium = Medium, a = 748559700000000, b = 1212001000) annotation(
Placement(visible = true, transformation(origin = {144, -44}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
IBPSA.Fluid.Movers.SpeedControlled_y pump(
redeclare package Medium = Medium,
......@@ -20,51 +16,35 @@ model coolingPlant "Model of the cooling plant"
Placement(visible = true, transformation(origin = {-72, 54}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
inner Modelica.Fluid.System system annotation(
Placement(visible = true, transformation(origin = {90, 90}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Blocks.Sources.Constant pumpVelocity(k = 0.4) annotation(
Placement(visible = true, transformation(origin = {-72, -88}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
IBPSA.Fluid.Actuators.Valves.ThreeWayEqualPercentageLinear val(redeclare package Medium = Medium, CvData = IBPSA.Fluid.Types.CvTypes.Kv, Kv = 12, energyDynamics = Modelica.Fluid.Types.Dynamics.FixedInitial, l = {0.02e-3, 0.2e-3}, m_flow_nominal = 1.125, p_start = 3e5, portFlowDirection_1 = Modelica.Fluid.Types.PortFlowDirection.Entering, portFlowDirection_2 = Modelica.Fluid.Types.PortFlowDirection.Leaving, portFlowDirection_3 = Modelica.Fluid.Types.PortFlowDirection.Leaving, riseTime = 15, use_inputFilter = true, y_start = 0.5) annotation(
Placement(visible = true, transformation(origin = {6, -26}, extent = {{-10, 10}, {10, -10}}, rotation = 0)));
IBPSA.Fluid.Sensors.VolumeFlowRate volJun(redeclare package Medium = Medium, allowFlowReversal = false, m_flow_nominal = 1.125 * 0.5) annotation(
Placement(visible = true, transformation(origin = {82, -6}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
Placement(visible = true, transformation(origin = {68, 10}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
IBPSA.Fluid.Sensors.VolumeFlowRate volDUT(redeclare package Medium = Medium, allowFlowReversal = false, m_flow_nominal = 1.125 * 0.5) annotation(
Placement(visible = true, transformation(origin = {146, 34}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
Placement(visible = true, transformation(origin = {146, 36}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
IBPSA.Fluid.FixedResistances.PressureDrop filter(redeclare package Medium = Medium, dp_nominal = 0.07e5, m_flow_nominal = 1.5854) annotation(
Placement(visible = true, transformation(origin = {10, 54}, extent = {{-10, -10}, {10, 10}}, rotation = 180)));
Modelica.Blocks.Sources.Constant const(k = 0.5) annotation(
Placement(visible = true, transformation(origin = {-72, -48}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
IBPSA.Fluid.HeatExchangers.SensibleCooler_T coo(redeclare package Medium = Medium, QMin_flow = -Q_max, dp_nominal = 7.94e3, energyDynamics = Modelica.Fluid.Types.Dynamics.FixedInitial, m_flow_nominal = 4050 / 3600, tau = 40) annotation(
Placement(visible = true, transformation(origin = {-36, 10}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
Modelica.Blocks.Sources.Step step(height = -40, offset = 273.15 + 20, startTime = 10) annotation(
Placement(visible = true, transformation(origin = {-104, 28}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Blocks.Continuous.FirstOrder firstOrder(T = 287.61) annotation(
Placement(visible = true, transformation(origin = {-70, 28}, extent = {{-8, -8}, {8, 8}}, rotation = 0)));
equation
connect(pumpVelocity.y, pump.y) annotation(
Line(points = {{-61, -88}, {58, -88}, {58, 42}}, color = {0, 0, 127}));
connect(val.port_2, volumeFlowRate.port_a) annotation(
Line(points = {{16, -26}, {40, -26}, {40, -54}, {144, -54}}, color = {0, 127, 255}));
connect(val.port_3, volJun.port_a) annotation(
Line(points = {{6, -16}, {6, -9}, {82, -9}, {82, -16}}, color = {0, 127, 255}));
connect(volumeFlowRate.port_b, volDUT.port_a) annotation(
Line(points = {{144, -34}, {144, 2}, {146, 2}, {146, 24}}, color = {0, 127, 255}));
Line(points = {{6, -16}, {6, -9}, {68, -9}, {68, 0}}, color = {0, 127, 255}));
connect(pump.port_a, volJun.port_b) annotation(
Line(points = {{68, 54}, {68, 31}, {82, 31}, {82, 4}}, color = {0, 127, 255}));
Line(points = {{68, 54}, {68, 20}}, color = {0, 127, 255}));
connect(volDUT.port_b, pump.port_a) annotation(
Line(points = {{146, 44}, {146, 54}, {68, 54}}, color = {0, 127, 255}));
Line(points = {{146, 46}, {146, 54}, {68, 54}}, color = {0, 127, 255}));
connect(pump.port_b, filter.port_a) annotation(
Line(points = {{48, 54}, {20, 54}}, color = {0, 127, 255}));
connect(bou.ports[1], filter.port_b) annotation(
Line(points = {{-62, 54}, {-46, 54}, {-46, 72}, {0, 72}, {0, 54}}, color = {0, 127, 255}));
connect(const.y, val.y) annotation(
Line(points = {{-60, -48}, {6, -48}, {6, -38}}, color = {0, 0, 127}));
connect(coo.port_a, filter.port_b) annotation(
Line(points = {{-36, 20}, {-36, 54}, {0, 54}}, color = {0, 127, 255}));
connect(coo.port_b, val.port_1) annotation(
Line(points = {{-36, 0}, {-36, -26}, {-4, -26}}, color = {0, 127, 255}));
connect(firstOrder.y, coo.TSet) annotation(
Line(points = {{-62, 28}, {-28, 28}, {-28, 22}}, color = {0, 0, 127}));
connect(step.y, firstOrder.u) annotation(
Line(points = {{-92, 28}, {-80, 28}}, color = {0, 0, 127}));
annotation(
uses(Modelica(version = "3.2.3"), IBPSA(version = "3.0.0")),
Diagram);
......
......@@ -19,13 +19,13 @@ model pipelines "Model of the pipelines between the cooling plant and the inlet
inner Modelica.Fluid.System system(p_start(displayUnit = "Pa") = 3e5) annotation(
Placement(visible = true, transformation(origin = {90, 90}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Fluid.Interfaces.FluidPort_a port_T1_a(redeclare package Medium = Medium) annotation(
Placement(visible = true, transformation(origin = {-100, 50}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-100, 50}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Placement(visible = true, transformation(origin = {-100, 50}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-98, -48}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Fluid.Interfaces.FluidPort_b port_T1_b(redeclare package Medium = Medium) annotation(
Placement(visible = true, transformation(origin = {100, 50}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {100, 50}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Placement(visible = true, transformation(origin = {100, 50}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {100, -46}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Fluid.Interfaces.FluidPort_a port_T2_a(redeclare package Medium = Medium) annotation(
Placement(visible = true, transformation(origin = {100, -50}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {100, -50}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Placement(visible = true, transformation(origin = {100, -50}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {100, 52}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Fluid.Interfaces.FluidPort_b port_b(redeclare package Medium = Medium) annotation(
Placement(visible = true, transformation(origin = {-100, -26}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-100, -26}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Placement(visible = true, transformation(origin = {-100, -26}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-100, 50}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
equation
connect(port_T1_a, pipe_T1_1.port_a) annotation(
Line(points = {{-100, 50}, {-88, 50}, {-88, 20}, {-70, 20}}));
......
model plantControl
extends coolingPlant;
pipelines pipelines1 annotation(
Placement(visible = true, transformation(origin = {130, 10}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
thermal_demonstrator thermal_demonstrator1 annotation(
Placement(visible = true, transformation(origin = {180, 10}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Blocks.Sources.Constant const1(k = 1) annotation(
Placement(visible = true, transformation(origin = {228, -32}, extent = {{-10, -10}, {10, 10}}, rotation = 180)));
Modelica.Blocks.Sources.Ramp ramp(duration = 250, height = -1, offset = 1, startTime = 50) annotation(
Placement(visible = true, transformation(origin = {224, 50}, extent = {{-10, -10}, {10, 10}}, rotation = 180)));
Modelica.Blocks.Sources.Constant const(k = 1) annotation(
Placement(visible = true, transformation(origin = {132, 90}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Blocks.Sources.Constant const2(k = 273.15 - 40) annotation(
Placement(visible = true, transformation(origin = {-128, 28}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Blocks.Sources.Constant const3(k = 0.5) annotation(
Placement(visible = true, transformation(origin = {-54, -64}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Blocks.Sources.Constant const4(k = 0.2) annotation(
Placement(visible = true, transformation(origin = {52, 90}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
equation
connect(const2.y, firstOrder.u) annotation(
Line(points = {{-117, 28}, {-80, 28}}, color = {0, 0, 127}));
connect(const3.y, val.y) annotation(
Line(points = {{-43, -64}, {6, -64}, {6, -38}}, color = {0, 0, 127}));
connect(pipelines1.port_b, volDUT.port_a) annotation(
Line(points = {{120, 8}, {112, 8}, {112, 36}, {120, 36}, {120, 56}, {112, 56}, {112, 54}}, color = {0, 127, 255}));
connect(val.port_2, pipelines1.port_T1_a) annotation(
Line(points = {{16, -26}, {98, -26}, {98, 16}, {120, 16}}, color = {0, 127, 255}));
connect(const4.y, pump.y) annotation(
Line(points = {{63, 90}, {76, 90}, {76, 34}, {58, 34}, {58, 42}}, color = {0, 0, 127}));
connect(pipelines1.port_T1_b, thermal_demonstrator1.port_a) annotation(
Line(points = {{140, 6}, {148, 6}, {148, 34}, {180, 34}, {180, 20}}, color = {0, 127, 255}));
connect(const.y, thermal_demonstrator1.u) annotation(
Line(points = {{144, 90}, {160, 90}, {160, 16}, {168, 16}}, color = {0, 0, 127}));
connect(thermal_demonstrator1.port_b, pipelines1.port_T2_a) annotation(
Line(points = {{180, 0}, {180, -12}, {154, -12}, {154, 16}, {140, 16}}, color = {0, 127, 255}));
connect(const1.y, thermal_demonstrator1.u2) annotation(
Line(points = {{217, -32}, {200, -32}, {200, 14}, {192, 14}}, color = {0, 0, 127}));
connect(thermal_demonstrator1.u3, const1.y) annotation(
Line(points = {{192, 10}, {200, 10}, {200, -32}, {217, -32}}, color = {0, 0, 127}));
connect(thermal_demonstrator1.u4, const1.y) annotation(
Line(points = {{192, 6}, {200, 6}, {200, -32}, {217, -32}}, color = {0, 0, 127}));
connect(thermal_demonstrator1.u5, const1.y) annotation(
Line(points = {{192, 2}, {200, 2}, {200, -32}, {217, -32}}, color = {0, 0, 127}));
connect(ramp.y, thermal_demonstrator1.u1) annotation(
Line(points = {{214, 50}, {206, 50}, {206, 20}, {192, 20}}, color = {0, 0, 127}));
annotation(
uses(Modelica(version = "3.2.3")));
end plantControl;
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