Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
i.elizarov
Fluid system CP and TD
Commits
f8fe1d8e
Commit
f8fe1d8e
authored
Jan 19, 2022
by
i.elizarov
Browse files
Finished the first working version of the cooling system with the thermal demonstrator
parent
25240687
Changes
24
Hide whitespace changes
Inline
Side-by-side
CoolingSystem/Data/PBMX201E102.mo
0 → 100644
View file @
f8fe1d8e
within CoolingSystem.Data;
record PBMX201E102 "Performance record for the EDUR PBMX 201 E10.2 pump"
extends IBPSA.Fluid.Movers.Data.Generic(
speed_rpm_nominal=2900,
use_powerCharacteristic = true,
power(V_flow={2.777777777777778e-05,0.0009722222222222222}, P={4100, 2300}),
pressure(V_flow={2.777777777777778e-05, 0.0009722222222222222}, dp={1181000, 319000}));
end PBMX201E102;
CoolingSystem/Data/package.mo
0 → 100644
View file @
f8fe1d8e
within
CoolingSystem
;
package
Data
end
Data
;
CoolingSystem/Data/package.order
0 → 100644
View file @
f8fe1d8e
PBMX201E102
CoolingSystem/Devices/CoolingPlant.mo
0 → 100644
View file @
f8fe1d8e
within
CoolingSystem
.
Devices
;
model
CoolingPlant
"Model of the cooling plant"
package
Medium
=
CoolingSystem
.
Media
.
ConstantPropertyLiquidNovec
;
parameter
Modelica
.
SIunits
.
HeatFlowRate
Q_max
=
10.83e3
"Maximum cooling capacity of the plant"
;
IBPSA
.
Fluid
.
Movers
.
SpeedControlled_y
pump
(
redeclare
package
Medium
=
Medium
,
redeclare
CoolingSystem
.
Data
.
PBMX201E102
per
,
energyDynamics
=
Modelica
.
Fluid
.
Types
.
Dynamics
.
FixedInitial
,
p_start
=
3e5
)
annotation
(
Placement
(
visible
=
true
,
transformation
(
origin
=
{
6
,
34
},
extent
=
{{-
10
,
-
10
},
{
10
,
10
}},
rotation
=
180
)));
IBPSA
.
Fluid
.
Sources
.
Boundary_pT
bou
(
redeclare
package
Medium
=
Medium
,
T
=
273.15
+
20
,
nPorts
=
1
,
p
=
3e5
)
annotation
(
Placement
(
visible
=
true
,
transformation
(
origin
=
{-
90
,
50
},
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
)));
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
=
{
16
,
-
34
},
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
=
{
16
,
0
},
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
=
{
46
,
34
},
extent
=
{{-
10
,
-
10
},
{
10
,
10
}},
rotation
=
180
)));
IBPSA
.
Fluid
.
FixedResistances
.
PressureDrop
filter
(
redeclare
package
Medium
=
Medium
,
dp_nominal
=
0.07e5
,
m_flow_nominal
=
1.5854
)
annotation
(
Placement
(
visible
=
true
,
transformation
(
origin
=
{-
28
,
34
},
extent
=
{{-
10
,
-
10
},
{
10
,
10
}},
rotation
=
180
)));
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
=
{-
56
,
-
10
},
extent
=
{{-
10
,
-
10
},
{
10
,
10
}},
rotation
=
-
90
)));
Modelica
.
Blocks
.
Continuous
.
FirstOrder
firstOrder
(
T
=
287.61
,
y_start
=
273.15
+
20
)
annotation
(
Placement
(
visible
=
true
,
transformation
(
origin
=
{-
92
,
8
},
extent
=
{{-
8
,
-
8
},
{
8
,
8
}},
rotation
=
0
)));
equation
connect
(
val
.
port_3
,
volJun
.
port_a
)
annotation
(
Line
(
points
=
{{
16
,
-
24
},
{
16
,
-
10
}},
color
=
{
0
,
127
,
255
}));
connect
(
pump
.
port_a
,
volJun
.
port_b
)
annotation
(
Line
(
points
=
{{
16
,
34
},
{
16
,
10
}},
color
=
{
0
,
127
,
255
}));
connect
(
volDUT
.
port_b
,
pump
.
port_a
)
annotation
(
Line
(
points
=
{{
36
,
34
},
{
16
,
34
}},
color
=
{
0
,
127
,
255
}));
connect
(
pump
.
port_b
,
filter
.
port_a
)
annotation
(
Line
(
points
=
{{-
4
,
34
},
{-
18
,
34
}},
color
=
{
0
,
127
,
255
}));
connect
(
bou
.
ports
[
1
],
filter
.
port_b
)
annotation
(
Line
(
points
=
{{-
80
,
50
},
{-
38
,
50
},
{-
38
,
34
}},
color
=
{
0
,
127
,
255
}));
connect
(
coo
.
port_a
,
filter
.
port_b
)
annotation
(
Line
(
points
=
{{-
56
,
0
},
{-
56
,
34
},
{-
38
,
34
}},
color
=
{
0
,
127
,
255
}));
connect
(
coo
.
port_b
,
val
.
port_1
)
annotation
(
Line
(
points
=
{{-
56
,
-
20
},
{-
56
,
-
34
},
{
6
,
-
34
}},
color
=
{
0
,
127
,
255
}));
connect
(
firstOrder
.
y
,
coo
.
TSet
)
annotation
(
Line
(
points
=
{{-
83.2
,
8
},
{-
48.2
,
8
},
{-
48.2
,
2
}},
color
=
{
0
,
0
,
127
}));
annotation
(
uses
(
Modelica
(
version
=
"3.2.3"
),
IBPSA
(
version
=
"3.0.0"
)),
Diagram
);
end
CoolingPlant
;
CoolingSystem/Devices/Pipelines.mo
0 → 100644
View file @
f8fe1d8e
within
CoolingSystem
.
Devices
;
model
Pipelines
package
Medium
=
CoolingSystem
.
Media
.
ConstantPropertyLiquidNovec
;
Modelica
.
Fluid
.
Pipes
.
StaticPipe
pipe_T1_1
(
redeclare
package
Medium
=
Medium
,
diameter
=
35e-3
,
length
=
0.8
+
0.8
+
9.3
+
3.63
+
0.35
+
0.65
+
1.93
+
0.735
+
0.5
,
roughness
=
1.5e-06
)
annotation
(
Placement
(
visible
=
true
,
transformation
(
origin
=
{-
60
,
20
},
extent
=
{{-
10
,
-
10
},
{
10
,
10
}},
rotation
=
0
)));
Modelica
.
Fluid
.
Pipes
.
StaticPipe
pipe_T1_2
(
redeclare
package
Medium
=
Medium
,
diameter
=
28e-3
,
length
=
0.656
+
0.572
+
0.190
+
0.178
+
1.629
+
0.85
+
0.69
+
0.2
,
roughness
=
1.5e-06
)
annotation
(
Placement
(
visible
=
true
,
transformation
(
origin
=
{-
2
,
20
},
extent
=
{{-
10
,
-
10
},
{
10
,
10
}},
rotation
=
0
)));
Modelica
.
Fluid
.
Pipes
.
StaticPipe
pipe_T1_3
(
redeclare
package
Medium
=
Medium
,
diameter
=
33.7e-3
,
length
=
4
)
annotation
(
Placement
(
visible
=
true
,
transformation
(
origin
=
{
58
,
20
},
extent
=
{{-
10
,
-
10
},
{
10
,
10
}},
rotation
=
0
)));
Modelica
.
Fluid
.
Pipes
.
StaticPipe
pipe_T2_1
(
redeclare
package
Medium
=
Medium
,
diameter
=
35e-3
,
length
=
0.8
+
0.8
+
9.3
+
3.63
+
0.35
+
0.65
+
1.93
+
0.735
+
0.5
,
roughness
=
1.5e-06
)
annotation
(
Placement
(
visible
=
true
,
transformation
(
origin
=
{-
62
,
-
26
},
extent
=
{{-
10
,
-
10
},
{
10
,
10
}},
rotation
=
180
)));
Modelica
.
Fluid
.
Pipes
.
StaticPipe
pipe_T2_2
(
redeclare
package
Medium
=
Medium
,
diameter
=
28e-3
,
length
=
0.656
+
0.572
+
0.190
+
0.178
+
1.629
+
0.85
+
0.69
+
0.2
,
roughness
=
1.5e-06
)
annotation
(
Placement
(
visible
=
true
,
transformation
(
origin
=
{-
2
,
-
26
},
extent
=
{{-
10
,
-
10
},
{
10
,
10
}},
rotation
=
180
)));
Modelica
.
Fluid
.
Pipes
.
StaticPipe
pipe_T2_3
(
redeclare
package
Medium
=
Medium
,
diameter
=
33.7e-3
,
length
=
4
)
annotation
(
Placement
(
visible
=
true
,
transformation
(
origin
=
{
56
,
-
26
},
extent
=
{{-
10
,
-
10
},
{
10
,
10
}},
rotation
=
180
)));
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
=
{-
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
,
-
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
,
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
,
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
}}));
connect
(
pipe_T1_1
.
port_b
,
pipe_T1_2
.
port_a
)
annotation
(
Line
(
points
=
{{-
50
,
20
},
{-
12
,
20
}},
color
=
{
0
,
127
,
255
}));
connect
(
pipe_T1_2
.
port_b
,
pipe_T1_3
.
port_a
)
annotation
(
Line
(
points
=
{{
8
,
20
},
{
48
,
20
}},
color
=
{
0
,
127
,
255
}));
connect
(
pipe_T1_3
.
port_b
,
port_T1_b
)
annotation
(
Line
(
points
=
{{
68
,
20
},
{
86
,
20
},
{
86
,
50
},
{
100
,
50
}},
color
=
{
0
,
127
,
255
}));
connect
(
pipe_T2_1
.
port_a
,
pipe_T2_2
.
port_b
)
annotation
(
Line
(
points
=
{{-
52
,
-
26
},
{-
12
,
-
26
}},
color
=
{
0
,
127
,
255
}));
connect
(
pipe_T2_2
.
port_a
,
pipe_T2_3
.
port_b
)
annotation
(
Line
(
points
=
{{
8
,
-
26
},
{
46
,
-
26
}}));
connect
(
pipe_T2_3
.
port_a
,
port_T2_a
)
annotation
(
Line
(
points
=
{{
66
,
-
26
},
{
80
,
-
26
},
{
80
,
-
50
},
{
100
,
-
50
}},
color
=
{
0
,
127
,
255
}));
connect
(
port_b
,
pipe_T2_1
.
port_b
)
annotation
(
Line
(
points
=
{{-
100
,
-
26
},
{-
72
,
-
26
}}));
annotation
(
uses
(
Modelica
(
version
=
"3.2.3"
)),
Icon
(
graphics
=
{
Rectangle
(
fillColor
=
{
255
,
255
,
255
},
fillPattern
=
FillPattern
.
Solid
,
extent
=
{{-
100
,
100
},
{
100
,
-
100
}}),
Rectangle
(
origin
=
{-
3
,
50
},
extent
=
{{-
45
,
10
},
{
45
,
-
10
}}),
Rectangle
(
origin
=
{-
3
,
-
46
},
extent
=
{{-
45
,
10
},
{
45
,
-
10
}}),
Line
(
origin
=
{
54
,
50
},
points
=
{{-
12
,
0
},
{
12
,
0
}}),
Line
(
origin
=
{-
59
,
50
},
points
=
{{
11
,
0
},
{-
11
,
0
}}),
Line
(
origin
=
{
54
,
-
46
},
points
=
{{-
12
,
0
},
{
12
,
0
}}),
Line
(
origin
=
{-
61
,
-
46
},
points
=
{{
13
,
0
},
{-
13
,
0
}})}),
Diagram
(
graphics
=
{
Text
(
origin
=
{-
60
,
35
},
extent
=
{{-
16
,
5
},
{
16
,
-
5
}},
textString
=
"Copper 35 mm"
),
Text
(
origin
=
{-
2
,
35
},
extent
=
{{-
16
,
5
},
{
16
,
-
5
}},
textString
=
"Copper 28 mm"
),
Text
(
origin
=
{
60
,
36
},
extent
=
{{-
22
,
8
},
{
22
,
-
8
}},
textString
=
"Stainless Steel 33.7 mm"
)}));
end
Pipelines
;
CoolingSystem/Devices/ThermalDemonstrator.mo
0 → 100644
View file @
f8fe1d8e
within CoolingSystem.Devices;
model ThermalDemonstrator "Thermohydraulic model of the thermal demonstrator"
replaceable package Medium = CoolingSystem.Media.ConstantPropertyLiquidNovec 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 = 300 "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 = 180), 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.Blocks.Interfaces.RealInput u1 annotation(
Placement(visible = true, transformation(origin = {120, 80}, extent = {{-20, -20}, {20, 20}}, rotation = 180), iconTransformation(origin = {120, 100}, extent = {{-20, -20}, {20, 20}}, rotation = 180)));
Modelica.Fluid.Fittings.GenericResistances.VolumeFlowRate sidePanel1(redeclare package Medium = Medium, a = 7485597e8, allowFlowReversal = false, b = 1212001e3) annotation(
Placement(visible = true, transformation(origin = {30, -82}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
Modelica.Blocks.Interfaces.RealInput u2 annotation(
Placement(visible = true, transformation(origin = {120, 40}, extent = {{-20, -20}, {20, 20}}, rotation = 180)));
Modelica.Blocks.Interfaces.RealInput u3 annotation(
Placement(visible = true, transformation(origin = {120, 0}, extent = {{-20, -20}, {20, 20}}, rotation = 180)));
Modelica.Blocks.Interfaces.RealInput u4 annotation(
Placement(visible = true, transformation(origin = {120, -40}, extent = {{-20, -20}, {20, 20}}, rotation = 180)));
Modelica.Blocks.Interfaces.RealInput u5 annotation(
Placement(visible = true, transformation(origin = {120, -78}, extent = {{-20, -20}, {20, 20}}, rotation = 180)));
IBPSA.Fluid.Actuators.Valves.TwoWayLinear val1(redeclare package Medium = Medium, CvData = IBPSA.Fluid.Types.CvTypes.Kv, Kv = 6.3, l = 0.009, m_flow_nominal = 0.1, riseTime = 5) annotation(
Placement(visible = true, transformation(origin = {-60, 32}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
IBPSA.Fluid.Actuators.Valves.TwoWayLinear val2(redeclare package Medium = Medium, CvData = IBPSA.Fluid.Types.CvTypes.Kv, Kv = 6.3, l = 0.009, m_flow_nominal = 0.1, riseTime = 5) annotation(
Placement(visible = true, transformation(origin = {-20, 32}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
IBPSA.Fluid.Actuators.Valves.TwoWayLinear val3(redeclare package Medium = Medium, CvData = IBPSA.Fluid.Types.CvTypes.Kv, Kv = 6.3, l = 0.009, m_flow_nominal = 0.1, riseTime = 5) annotation(
Placement(visible = true, transformation(origin = {20, 32}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
IBPSA.Fluid.Actuators.Valves.TwoWayLinear val4(redeclare package Medium = Medium, CvData = IBPSA.Fluid.Types.CvTypes.Kv, Kv = 6.3, l = 0.009, m_flow_nominal = 0.1, riseTime = 5) annotation(
Placement(visible = true, transformation(origin = {60, 32}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
IBPSA.Fluid.Actuators.Valves.TwoWayLinear val5(redeclare package Medium = Medium, CvData = IBPSA.Fluid.Types.CvTypes.Kv, Kv = 6.3, l = 0.009, m_flow_nominal = 0.1, riseTime = 5) annotation(
Placement(visible = true, transformation(origin = {30, -56}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
equation
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(plate1_4.u, u) annotation(
Line(points = {{66, 12}, {66, 60}, {-120, 60}}, color = {0, 0, 127}));
connect(sidePanel1.port_b, port_b) annotation(
Line(points = {{30, -92}, {30, -100}, {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_1.u, u) annotation(
Line(points = {{-54, 12}, {-54, 60}, {-120, 60}}, 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_1.port_a, val1.port_b) annotation(
Line(points = {{-60, 10}, {-60, 22}}, color = {0, 127, 255}));
connect(plate1_2.port_a, val2.port_b) annotation(
Line(points = {{-20, 10}, {-20, 22}}, color = {0, 127, 255}));
connect(plate1_3.port_a, val3.port_b) annotation(
Line(points = {{20, 10}, {20, 22}}, color = {0, 127, 255}));
connect(plate1_4.port_a, val4.port_b) annotation(
Line(points = {{60, 10}, {60, 22}}, color = {0, 127, 255}));
connect(val4.y, u4) annotation(
Line(points = {{72, 32}, {76, 32}, {76, -40}, {120, -40}}, color = {0, 0, 127}));
connect(val3.y, u3) annotation(
Line(points = {{32, 32}, {42, 32}, {42, 46}, {82, 46}, {82, 0}, {120, 0}}, color = {0, 0, 127}));
connect(val2.y, u2) annotation(
Line(points = {{-8, 32}, {2, 32}, {2, 48}, {90, 48}, {90, 40}, {120, 40}}, color = {0, 0, 127}));
connect(val1.y, u1) annotation(
Line(points = {{-48, 32}, {-40, 32}, {-40, 54}, {86, 54}, {86, 80}, {120, 80}}, color = {0, 0, 127}));
connect(val1.port_a, port_a) annotation(
Line(points = {{-60, 42}, {-60, 74}, {0, 74}, {0, 100}}, color = {0, 127, 255}));
connect(val2.port_a, port_a) annotation(
Line(points = {{-20, 42}, {-20, 66}, {0, 66}, {0, 100}}, color = {0, 127, 255}));
connect(val3.port_a, port_a) annotation(
Line(points = {{20, 42}, {20, 66}, {0, 66}, {0, 100}}, color = {0, 127, 255}));
connect(val4.port_a, port_a) annotation(
Line(points = {{60, 42}, {58, 42}, {58, 78}, {0, 78}, {0, 100}}, color = {0, 127, 255}));
connect(sidePanel1.port_a, val5.port_b) annotation(
Line(points = {{30, -72}, {30, -66}}, color = {0, 127, 255}));
connect(val5.port_a, port_a) annotation(
Line(points = {{30, -46}, {30, -40}, {-70, -40}, {-70, 82}, {0, 82}, {0, 100}}, color = {0, 127, 255}));
connect(val5.y, u5) annotation(
Line(points = {{42, -56}, {80, -56}, {80, -82}, {120, -82}, {120, -78}}, color = {0, 0, 127}));
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 = {0, 65}, fillColor = {132, 132, 132}, fillPattern = FillPattern.Solid, extent = {{-34, 15}, {34, -15}}), Rectangle(origin = {0, 23}, fillColor = {132, 132, 132}, fillPattern = FillPattern.Solid, extent = {{-34, 15}, {34, -15}}), Rectangle(origin = {0, -21}, fillColor = {132, 132, 132}, fillPattern = FillPattern.Solid, extent = {{-34, 15}, {34, -15}}), Rectangle(origin = {0, -63}, fillColor = {132, 132, 132}, fillPattern = FillPattern.Solid, extent = {{-34, 15}, {34, -15}}), Line(origin = {49.4832, 74.5866}, points = {{-15, 0}, {15, 0}}), Line(origin = {48.4832, 32.5866}, points = {{-14, 0}, {16, 0}}), Line(origin = {47.4832, -9.41341}, points = {{-13, 0}, {17, 0}}), Line(origin = {47.4832, -53.4134}, points = {{-13, 0}, {17, 0}}), Line(origin = {43.4832, 58.5866}, points = {{-9, 0}, {9, 0}}), Line(origin = {43.4832, 16.5866}, points = {{-9, 0}, {9, 0}}), Line(origin = {42.4832, -29.4134}, points = {{-8, 0}, {10, 0}}), Line(origin = {43.4832, -71.4134}, points = {{-9, 0}, {9, 0}}), Line(origin = {52.4832, -6.41341}, points = {{0, 65}, {0, -65}}), Line(origin = {64.4832, 10.5866}, points = {{0, 64}, {0, -64}}), Rectangle(origin = {-49, 0}, fillColor = {122, 122, 122}, fillPattern = FillPattern.Solid, extent = {{-5, 80}, {5, -80}}), Text(origin = {-82, 60}, extent = {{-10, 10}, {10, -10}}, textString = "Q")}),
Documentation(info = "
<html><head></head><body>
This model does not include thermal performance of the sice panel
</body></html>
"));
end ThermalDemonstrator;
CoolingSystem/Devices/Validation/Pipelines.mo
0 → 100644
View file @
f8fe1d8e
within
CoolingSystem
.
Devices
.
Validation
;
model
Pipelines
package
Medium
=
CoolingSystem
.
Media
.
ConstantPropertyLiquidNovec
;
inner
Modelica
.
Fluid
.
System
system
annotation
(
Placement
(
visible
=
true
,
transformation
(
origin
=
{
90
,
90
},
extent
=
{{-
10
,
-
10
},
{
10
,
10
}},
rotation
=
0
)));
CoolingSystem
.
Devices
.
Pipelines
pipelines1
annotation
(
Placement
(
visible
=
true
,
transformation
(
origin
=
{
8
,
2
},
extent
=
{{-
10
,
-
10
},
{
10
,
10
}},
rotation
=
0
)));
Modelica
.
Fluid
.
Sources
.
Boundary_pT
boundary1
(
redeclare
package
Medium
=
Medium
,
T
=
273.15
-
40
,
p
=
3e5
,
nPorts
=
1
)
annotation
(
Placement
(
visible
=
true
,
transformation
(
origin
=
{-
70
,
46
},
extent
=
{{-
10
,
-
10
},
{
10
,
10
}},
rotation
=
0
)));
Modelica
.
Fluid
.
Sources
.
Boundary_pT
boundary
(
redeclare
package
Medium
=
Medium
,
T
=
273.15
-
40
,
nPorts
=
1
,
p
=
2e5
)
annotation
(
Placement
(
visible
=
true
,
transformation
(
origin
=
{
80
,
40
},
extent
=
{{-
10
,
-
10
},
{
10
,
10
}},
rotation
=
180
)));
Modelica
.
Fluid
.
Sources
.
Boundary_pT
boundary2
(
redeclare
package
Medium
=
Medium
,
T
=
273.15
-
40
,
nPorts
=
1
,
p
=
2e5
)
annotation
(
Placement
(
visible
=
true
,
transformation
(
origin
=
{
76
,
-
26
},
extent
=
{{-
10
,
-
10
},
{
10
,
10
}},
rotation
=
180
)));
Modelica
.
Fluid
.
Sources
.
Boundary_pT
boundary3
(
redeclare
package
Medium
=
Medium
,
T
=
273.15
-
40
,
nPorts
=
1
,
p
=
1e5
)
annotation
(
Placement
(
visible
=
true
,
transformation
(
origin
=
{-
68
,
-
38
},
extent
=
{{-
10
,
-
10
},
{
10
,
10
}},
rotation
=
0
)));
equation
connect
(
boundary1
.
ports
[
1
],
pipelines1
.
port_T1_a
)
annotation
(
Line
(
points
=
{{-
60
,
46
},
{-
24
,
46
},
{-
24
,
8
},
{-
2
,
8
}},
color
=
{
0
,
127
,
255
}));
connect
(
boundary
.
ports
[
1
],
pipelines1
.
port_T1_b
)
annotation
(
Line
(
points
=
{{
70
,
40
},
{
44
,
40
},
{
44
,
6
},
{
18
,
6
},
{
18
,
8
}},
color
=
{
0
,
127
,
255
}));
connect
(
boundary2
.
ports
[
1
],
pipelines1
.
port_T2_a
)
annotation
(
Line
(
points
=
{{
66
,
-
26
},
{
40
,
-
26
},
{
40
,
-
2
},
{
18
,
-
2
}},
color
=
{
0
,
127
,
255
}));
connect
(
boundary3
.
ports
[
1
],
pipelines1
.
port_b
)
annotation
(
Line
(
points
=
{{-
58
,
-
38
},
{-
16
,
-
38
},
{-
16
,
2
},
{-
2
,
2
},
{-
2
,
0
}},
color
=
{
0
,
127
,
255
}));
annotation
(
uses
(
Modelica
(
version
=
"3.2.3"
),
IBPSA
(
version
=
"3.0.0"
)),
Diagram
);
end
Pipelines
;
CoolingSystem/Devices/Validation/ThermalDemonstrator.mo
0 → 100644
View file @
f8fe1d8e
within
CoolingSystem
.
Devices
.
Validation
;
model
ThermalDemonstrator
"Validation model for the thermal demonstrator"
package
Medium
=
CoolingSystem
.
Media
.
ConstantPropertyLiquidNovec
;
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
)));
CoolingSystem
.
Devices
.
ThermalDemonstrator
thermal_demonstrator1
(
redeclare
package
Medium
=
Medium
)
annotation
(
Placement
(
visible
=
true
,
transformation
(
origin
=
{
4
,
-
12
},
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
=
{
38
,
-
50
},
extent
=
{{-
10
,
-
10
},
{
10
,
10
}},
rotation
=
-
90
)));
Modelica
.
Blocks
.
Sources
.
Constant
const1
(
k
=
1
)
annotation
(
Placement
(
visible
=
true
,
transformation
(
origin
=
{
84
,
-
16
},
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
=
{
72
,
40
},
extent
=
{{-
10
,
-
10
},
{
10
,
10
}},
rotation
=
180
)));
Modelica
.
Blocks
.
Sources
.
Ramp
ramp1
(
duration
=
250
,
height
=
-
1
,
offset
=
1
,
startTime
=
50
)
annotation
(
Placement
(
visible
=
true
,
transformation
(
origin
=
{-
66
,
2
},
extent
=
{{-
10
,
-
10
},
{
10
,
10
}},
rotation
=
0
)));
equation
connect
(
senTem2
.
port_b
,
boundary1
.
ports
[
1
])
annotation
(
Line
(
points
=
{{
38
,
-
60
},
{
38
,
-
72
},
{-
38
,
-
72
}},
color
=
{
0
,
127
,
255
}));
connect
(
boundary
.
ports
[
1
],
thermal_demonstrator1
.
port_a
)
annotation
(
Line
(
points
=
{{-
30
,
38
},
{
4
,
38
},
{
4
,
-
2
}},
color
=
{
0
,
127
,
255
}));
connect
(
thermal_demonstrator1
.
port_b
,
senTem2
.
port_a
)
annotation
(
Line
(
points
=
{{
4
,
-
22
},
{
4
,
-
34
},
{
38
,
-
34
},
{
38
,
-
40
}},
color
=
{
0
,
127
,
255
}));
connect
(
thermal_demonstrator1
.
u2
,
const1
.
y
)
annotation
(
Line
(
points
=
{{
16
,
-
8
},
{
49.5
,
-
8
},
{
49.5
,
-
16
},
{
73
,
-
16
}},
color
=
{
0
,
0
,
127
}));
connect
(
thermal_demonstrator1
.
u3
,
const1
.
y
)
annotation
(
Line
(
points
=
{{
16
,
-
12
},
{
49.5
,
-
12
},
{
49.5
,
-
16
},
{
73
,
-
16
}},
color
=
{
0
,
0
,
127
}));
connect
(
thermal_demonstrator1
.
u4
,
const1
.
y
)
annotation
(
Line
(
points
=
{{
16
,
-
16
},
{
73
,
-
16
}},
color
=
{
0
,
0
,
127
}));
connect
(
thermal_demonstrator1
.
u5
,
const1
.
y
)
annotation
(
Line
(
points
=
{{
16
,
-
20
},
{
30
,
-
20
},
{
30
,
-
16
},
{
73
,
-
16
}},
color
=
{
0
,
0
,
127
}));
connect
(
ramp
.
y
,
thermal_demonstrator1
.
u1
)
annotation
(
Line
(
points
=
{{
62
,
40
},
{
42
,
40
},
{
42
,
-
2
},
{
16
,
-
2
}},
color
=
{
0
,
0
,
127
}));
connect
(
ramp1
.
y
,
thermal_demonstrator1
.
u
)
annotation
(
Line
(
points
=
{{-
54
,
2
},
{-
24
,
2
},
{-
24
,
-
4
},
{-
8
,
-
4
},
{-
8
,
-
6
}},
color
=
{
0
,
0
,
127
}));
annotation
(
uses
(
Modelica
(
version
=
"3.2.3"
),
IBPSA
(
version
=
"3.0.0"
)),
Diagram
);
end
ThermalDemonstrator
;
CoolingSystem/Devices/Validation/package.mo
0 → 100644
View file @
f8fe1d8e
within
CoolingSystem
.
Devices
;
package
Validation
end
Validation
;
CoolingSystem/Devices/Validation/package.order
0 → 100644
View file @
f8fe1d8e
Pipelines
ThermalDemonstrator
CoolingSystem/Devices/package.mo
0 → 100644
View file @
f8fe1d8e
within
CoolingSystem
;
package
Devices
end
Devices
;
CoolingSystem/Devices/package.order
0 → 100644
View file @
f8fe1d8e
CoolingPlant
Pipelines
ThermalDemonstrator
Validation
CoolingSystem/Experimental/ControlSystem.mo
0 → 100644
View file @
f8fe1d8e
within
CoolingSystem
.
Experimental
;
model
ControlSystem
extends
CoolingSystem
.
Devices
.
CoolingPlant
;
CoolingSystem
.
Devices
.
Pipelines
pipelines1
annotation
(
Placement
(
visible
=
true
,
transformation
(
origin
=
{
86
,
-
2
},
extent
=
{{-
10
,
-
10
},
{
10
,
10
}},
rotation
=
0
)));
CoolingSystem
.
Devices
.
ThermalDemonstrator
thermal_demonstrator1
annotation
(
Placement
(
visible
=
true
,
transformation
(
origin
=
{
130
,
-
2
},
extent
=
{{-
10
,
-
10
},
{
10
,
10
}},
rotation
=
0
)));
Modelica
.
Blocks
.
Sources
.
Constant
const1
(
k
=
1
)
annotation
(
Placement
(
visible
=
true
,
transformation
(
origin
=
{
218
,
-
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
=
{
178
,
46
},
extent
=
{{-
10
,
-
10
},
{
10
,
10
}},
rotation
=
180
)));
Modelica
.
Blocks
.
Sources
.
Constant
const
(
k
=
1
)
annotation
(
Placement
(
visible
=
true
,
transformation
(
origin
=
{
90
,
50
},
extent
=
{{-
10
,
-
10
},
{
10
,
10
}},
rotation
=
0
)));
Modelica
.
Blocks
.
Sources
.
Constant
const2
(
k
=
273.15
-
40
)
annotation
(
Placement
(
visible
=
true
,
transformation
(
origin
=
{-
130
,
10
},
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
=
{-
28
,
88
},
extent
=
{{-
10
,
-
10
},
{
10
,
10
}},
rotation
=
0
)));
equation
connect
(
const4
.
y
,
pump
.
y
)
annotation
(
Line
(
points
=
{{-
16
,
88
},
{-
4
,
88
},
{-
4
,
48
},
{-
12
,
48
},
{-
12
,
16
},
{
6
,
16
},
{
6
,
22
}},
color
=
{
0
,
0
,
127
}));
connect
(
const3
.
y
,
val
.
y
)
annotation
(
Line
(
points
=
{{-
42
,
-
64
},
{
16
,
-
64
},
{
16
,
-
46
}},
color
=
{
0
,
0
,
127
}));
connect
(
const2
.
y
,
firstOrder
.
u
)
annotation
(
Line
(
points
=
{{-
118
,
10
},
{-
102
,
10
},
{-
102
,
8
}},
color
=
{
0
,
0
,
127
}));
connect
(
pipelines1
.
port_T1_a
,
val
.
port_2
)
annotation
(
Line
(
points
=
{{
76
,
-
7
},
{
40
,
-
7
},
{
40
,
-
34
},
{
26
,
-
34
}},
color
=
{
0
,
127
,
255
}));
connect
(
volDUT
.
port_a
,
pipelines1
.
port_b
)
annotation
(
Line
(
points
=
{{
56
,
34
},
{
64
,
34
},
{
64
,
4
},
{
76
,
4
}},
color
=
{
0
,
127
,
255
}));
connect
(
pipelines1
.
port_T1_b
,
thermal_demonstrator1
.
port_a
)
annotation
(
Line
(
points
=
{{
96
,
-
6
},
{
106
,
-
6
},
{
106
,
14
},
{
132
,
14
},
{
132
,
8
},
{
130
,
8
}},
color
=
{
0
,
127
,
255
}));
connect
(
pipelines1
.
port_T2_a
,
thermal_demonstrator1
.
port_b
)
annotation
(
Line
(
points
=
{{
96
,
4
},
{
102
,
4
},
{
102
,
-
28
},
{
130
,
-
28
},
{
130
,
-
12
}},
color
=
{
0
,
127
,
255
}));
connect
(
ramp
.
y
,
thermal_demonstrator1
.
u1
)
annotation
(
Line
(
points
=
{{
167
,
46
},
{
154
,
46
},
{
154
,
8
},
{
142
,
8
}},
color
=
{
0
,
0
,
127
}));
connect
(
const1
.
y
,
thermal_demonstrator1
.
u2
)
annotation
(
Line
(
points
=
{{
207
,
-
32
},
{
192
,
-
32
},
{
192
,
2
},
{
142
,
2
}},
color
=
{
0
,
0
,
127
}));
connect
(
thermal_demonstrator1
.
u3
,
const1
.
y
)
annotation
(
Line
(
points
=
{{
142
,
-
2
},
{
192
,
-
2
},
{
192
,
-
32
},
{
207
,
-
32
}},
color
=
{
0
,
0
,
127
}));
connect
(
thermal_demonstrator1
.
u4
,
const1
.
y
)
annotation
(
Line
(
points
=
{{
142
,
-
6
},
{
192
,
-
6
},
{
192
,
-
32
},
{
207
,
-
32
}},
color
=
{
0
,
0
,
127
}));
connect
(
thermal_demonstrator1
.
u5
,
const1
.
y
)
annotation
(
Line
(
points
=
{{
142
,
-
10
},
{
192
,
-
10
},
{
192
,
-
32
},
{
207
,
-
32
}},
color
=
{
0
,
0
,
127
}));
connect
(
const
.
y
,
thermal_demonstrator1
.
u
)
annotation
(
Line
(
points
=
{{
102
,
50
},
{
112
,
50
},
{
112
,
4
},
{
118
,
4
}},
color
=
{
0
,
0
,
127
}));
end
ControlSystem
;
CoolingSystem/Experimental/package.mo
0 → 100644
View file @
f8fe1d8e
within
CoolingSystem
;
package
Experimental
end
Experimental
;
CoolingSystem/Experimental/package.order
0 → 100644
View file @
f8fe1d8e
ControlSystem
CoolingSystem/Media/ConstantPropertyLiquidNovec.mo
0 → 100644
View file @
f8fe1d8e
within
CoolingSystem
.
Media
;
package
ConstantPropertyLiquidNovec
"Novec649: Simple liquid Novec 649 medium (incompressible, constant data)"
extends
Modelica
.
Icons
.
VariantsPackage
;
//
redeclare
record
extends
FluidConstants
//
end
FluidConstants
;
constant
Modelica
.
Media
.
Interfaces
.
Types
.
Basic
.
FluidConstants
[
1
]
simpleNovecConstants
(
each
chemicalFormula
=
"C6F12O"
,
each
structureFormula
=
"C6F12O"
,
each
casRegistryNumber
=
"756-13-8"
,
each
iupacName
=
"Novec649"
,
each
molarMass
=
0.31601
);
extends
Modelica
.
Media
.
Interfaces
.
PartialSimpleMedium
(
mediumName
=
"SimpleLiquidNovec649"
,
cp_const
=
1093
,
cv_const
=
1093
,
d_const
=
1786
,
eta_const
=
1.970e-3
,
lambda_const
=
0.07102
,
a_const
=
715.87
,
T_min
=
Modelica
.
SIunits
.
Conversions
.
from_degC
(-
41
),
T_max
=
Modelica
.
SIunits
.
Conversions
.
from_degC
(
49
),
T0
=
273.15
,
MM_const
=
0.31601
,
fluidConstants
=
simpleNovecConstants
,
p_default
=
300000
,
reference_p
=
300000
,
reference_T
=
273.15
,
reference_X
={
1
},
AbsolutePressure
(
start
=
p_default
),
Temperature
(
start
=
T_default
),
Density
(
start
=
d_const
)
//
final
cv_const
=
cp_const
);
redeclare
replaceable
model
BaseProperties
"Base properties (p, d, T, h, u, R, MM and X and Xi) of a medium"
parameter
Boolean
preferredMediumStates
=
false
"= true if StateSelect.prefer shall be used for the independent property variables of the medium"
annotation
(
Evaluate
=
true
,
Dialog
(
tab
=
"Advanced"
));
final
parameter
Boolean
standardOrderComponents
=
true
"If true, and reducedX = true, the last element of X will be computed from the other ones"
;
Modelica
.
SIunits
.
Density
d
=
d_const
"Density of medium"
;
Temperature
T
(
stateSelect
=
if
preferredMediumStates
then
StateSelect
.
prefer
else
StateSelect
.
default
)
"Temperature of medium"
;
InputAbsolutePressure
p
"Absolute pressure of medium"
;
InputMassFraction
[
nXi
]
Xi
=
fill
(
0
,
0
)
"Structurally independent mass fractions"
;
InputSpecificEnthalpy
h
"Specific enthalpy of medium"
;
Modelica
.
SIunits
.
SpecificInternalEnergy
u
"Specific internal energy of medium"
;
Modelica
.
SIunits
.
MassFraction
[
nX
]
X
={
1
}
"Mass fractions (= (component mass)/total mass m_i/m)"
;
final
Modelica
.
SIunits
.
SpecificHeatCapacity
R
=
0
"Gas constant (of mixture if applicable)"
;
final
Modelica
.
SIunits
.
MolarMass
MM
=
MM_const
"Molar mass (of mixture or single fluid)"
;
ThermodynamicState
state
"Thermodynamic state record for optional functions"
;
Modelica
.
SIunits
.
Conversions
.
NonSIunits
.
Temperature_degC
T_degC
=
Modelica
.
SIunits
.
Conversions
.
to_degC
(
T
)
"Temperature of medium in [degC]"
;
Modelica
.
SIunits
.
Conversions
.
NonSIunits
.
Pressure_bar
p_bar
=
Modelica
.
SIunits
.
Conversions
.
to_bar
(
p
)
"Absolute pressure of medium in [bar]"
;
//
Local
connector
definition
,
used
for
equation
balancing
check
connector
InputAbsolutePressure
=
input
Modelica
.
SIunits
.
AbsolutePressure
"Pressure as input signal connector"
;
connector
InputSpecificEnthalpy
=
input
Modelica
.
SIunits
.
SpecificEnthalpy
"Specific enthalpy as input signal connector"
;
connector
InputMassFraction
=
input
Modelica
.
SIunits
.
MassFraction
"Mass fraction as input signal connector"
;
equation
h
=
cp_const
*(
T
-
reference_T
);
u
=
h
;
state
.
T
=
T
;
state
.
p
=
p
;
//
Assertions
to
test
for
bounds
assert
(
noEvent
(
T
>=
T_min
),
"In "
+
getInstanceName
()
+
": Temperature T = "
+
String
(
T
)
+
" K exceeded its minimum allowed value of "
+
String
(
T_min
-
273.15
)
+
" degC ("
+
String
(
T_min
)
+
" Kelvin) as required from medium model"
);
assert
(
noEvent
(
T
<=
T_max
),
"In "
+
getInstanceName
()
+
": Temperature T = "
+
String
(
T
)
+
" K exceeded its maximum allowed value of "
+
String
(
T_max
-
273.15
)
+
" degC ("
+
String
(
T_max
)
+
" Kelvin) as required from medium model"
);
assert
(
noEvent
(
p
>=
0.0
),
"Pressure (= "
+
String
(
p
)
+
" Pa) of medium is negative
\n
(Temperature = "
+
String
(
T
)
+
" K)"
);
end
BaseProperties
;
function
enthalpyOfLiquid
"Return the specific enthalpy of liquid"
extends
Modelica
.
Icons
.
Function
;
input
Modelica
.
SIunits
.
Temperature
T
"Temperature"
;
output
Modelica
.
SIunits
.
SpecificEnthalpy
h
"Specific enthalpy"
;
algorithm
h
:=
cp_const
*(
T
-
reference_T
);
annotation
(
smoothOrder
=
5
,
Inline
=
true
);
end
enthalpyOfLiquid
;
end
ConstantPropertyLiquidNovec
;
CoolingSystem/Media/Validation/BaseClasses.mo
0 → 100644
View file @
f8fe1d8e
within
CoolingSystem
.
Media
.
Validation
;
package
BaseClasses
partial
model
PartialProperties
"Partial model that contains common parameters of the fluid properties"
replaceable
package
Medium
=
Modelica
.
Media
.
Interfaces
.
PartialMedium
;
parameter
Modelica
.
SIunits
.
Temperature
TMin
"Minimum temperature for the simulation"
;
parameter
Modelica
.
SIunits
.
Temperature
TMax
"Maximum temperature for the simulation"
;
parameter
Modelica
.
SIunits
.
Pressure
p
=
Medium
.
p_default
"Pressure"
;
parameter
Modelica
.
SIunits
.
MassFraction
X
[
Medium
.
nX
]
=
Medium
.
X_default
"Mass fraction"
;
parameter
Real
errAbs
=
1E-8
"Absolute error used in the check of the state calculations"
;
Medium
.
Temperature
T
"Temperature"
;
Modelica
.
SIunits
.
Conversions
.
NonSIunits
.
Temperature_degC
T_degC
"Celsius temperature"
;
Medium
.
ThermodynamicState
state_pTX
"Medium state"
;