forked from modelica/ModelicaStandardLibrary
-
Notifications
You must be signed in to change notification settings - Fork 1
/
PumpDropOut.mo
89 lines (89 loc) · 3.97 KB
/
PumpDropOut.mo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
within Modelica.Thermal.FluidHeatFlow.Examples;
model PumpDropOut "Cooling circuit with drop out of pump"
extends Modelica.Icons.Example;
parameter FluidHeatFlow.Media.Medium medium=FluidHeatFlow.Media.Medium()
"Cooling medium" annotation (choicesAllMatching=true);
parameter SI.Temperature TAmb(displayUnit="degC")=293.15
"Ambient temperature";
output SI.TemperatureDifference dTSource=
prescribedHeatFlow.port.T-TAmb "Temperature difference between heat source and ambient condition";
output SI.TemperatureDifference dTtoPipe=prescribedHeatFlow.port.T-pipe.T_q
"Temperature difference between heat source and coolant";
output SI.TemperatureDifference dTCoolant=pipe.dT
"Coolant's temperature increase";
FluidHeatFlow.Sources.Ambient ambient1(
constantAmbientTemperature=TAmb,
medium=medium,
constantAmbientPressure=0)
annotation (Placement(transformation(extent={{-60,-10},{-80,10}})));
FluidHeatFlow.Sources.VolumeFlow pump(
medium=medium,
m=0,
T0=TAmb,
useVolumeFlowInput=true,
constantVolumeFlow=1)
annotation (Placement(transformation(extent={{-40,-10},{-20,10}})));
FluidHeatFlow.Components.Pipe pipe(
medium=medium,
T0=TAmb,
m=0.1,
V_flowLaminar=0.1,
dpLaminar(displayUnit="Pa") = 0.1,
V_flowNominal=1,
dpNominal(displayUnit="Pa") = 1,
h_g=0,
T0fixed=true,
useHeatPort=true)
annotation (Placement(transformation(extent={{0,-10},{20,10}})));
FluidHeatFlow.Sources.Ambient ambient2(
constantAmbientTemperature=TAmb,
medium=medium,
constantAmbientPressure=0)
annotation (Placement(transformation(extent={{40,-10},{60,10}})));
Modelica.Thermal.HeatTransfer.Components.HeatCapacitor heatCapacitor(
C=0.1, T(start=TAmb, fixed=true))
annotation (Placement(transformation(
origin={40,-50},
extent={{-10,10},{10,-10}},
rotation=90)));
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow prescribedHeatFlow
annotation (Placement(transformation(extent={{-30,-40},{-10,-60}})));
FluidHeatFlow.Examples.Utilities.DoubleRamp volumeFlow
annotation (Placement(transformation(extent={{-60,10},{-40,30}})));
Modelica.Blocks.Sources.Constant heatFlow(k=10)
annotation (Placement(transformation(extent={{-60,-60},{-40,-40}})));
Modelica.Thermal.HeatTransfer.Components.Convection convection
annotation (Placement(transformation(
origin={10,-30},
extent={{-10,-10},{10,10}},
rotation=90)));
Modelica.Blocks.Sources.Constant thermalConductance(k=1)
annotation (Placement(transformation(extent={{-30,-40},{-10,-20}})));
equation
connect(ambient1.flowPort, pump.flowPort_a)
annotation (Line(points={{-60,0},{-40,0}}, color={255,0,0}));
connect(pump.flowPort_b, pipe.flowPort_a)
annotation (Line(points={{-20,0},{0,0}}, color={255,0,0}));
connect(pipe.flowPort_b, ambient2.flowPort)
annotation (Line(points={{20,0},{40,0}}, color={255,0,0}));
connect(heatFlow.y, prescribedHeatFlow.Q_flow) annotation (Line(points={
{-39,-50},{-30,-50}}, color={0,0,255}));
connect(convection.solid, prescribedHeatFlow.port) annotation (Line(
points={{10,-40},{10,-50},{-10,-50}}, color={191,0,0}));
connect(convection.solid, heatCapacitor.port) annotation (Line(points={
{10,-40},{10,-50},{30,-50}}, color={191,0,0}));
connect(pipe.heatPort, convection.fluid) annotation (Line(points={{10,
-10},{10,-20}}, color={191,0,0}));
connect(thermalConductance.y, convection.Gc)
annotation (Line(points={{-9,-30},{0,-30}}, color={0,0,127}));
connect(volumeFlow.y, pump.volumeFlow) annotation (Line(
points={{-39,20},{-30,20},{-30,10}}, color={0,0,127}));
annotation (Documentation(info="<html>
<p>
5th test example: PumpDropOut
</p>
Same as 1st test example, but with a drop out of the pump:<br>
The pump is running for 0.2 s, then shut down (using a ramp of 0.2 s) for 0.2 s,
then started again (using a ramp of 0.2 s).
</html>"), experiment(StopTime=2.0, Interval=0.001));
end PumpDropOut;