Skip to content

Commit 248ed9d

Browse files
author
vikrants
committed
- Retire buildingModel.ssc
- Multiple libraries added to help create building models - Utilities to automatically create building models - Building workflow updated - Datacenter model, utilities, and workflow added
1 parent ea79528 commit 248ed9d

File tree

1,425 files changed

+15166
-29542
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,425 files changed

+15166
-29542
lines changed

.gitignore

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,6 @@
55
*.slx.r*
66
*.mdl.r*
77

8-
# Derived content-obscured files
9-
*.p
10-
118
# Compiled MEX files
129
*.mex*
1310

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
%% Air Water Heat Pump
2+
%
3+
% This block is used for abstract representation of an air-water heat pump.
4+
% The parameters on the block are based on EN14511 test data. The block
5+
% outputs the amount of heating or cooling provided under the specified
6+
% operating conditions. The operating conditions are determined from the
7+
% values entered through the input ports of the block.
8+
9+
% Copyright 2025 - 2026 The MathWorks, Inc.
10+
11+
%%
12+
% The ports for this block include:
13+
%
14+
% * Input port *Fw* specifies the flow rate of liquid from the heat pump.
15+
% * Input port *Op* specifies the operation mode of the heat pump. Set
16+
% this input to -1 for heating applications and to +1 for cooling
17+
% applications. You can choose to add no heat to the water by setting this
18+
% port value to 0.
19+
% * Input port *Ep* specifies if an additional electric heater has to be
20+
% used to add heat to water. Set the value of this input to 1 when you want
21+
% to add more heat, using inbuilt electrical heater in the heat pump, or 0
22+
% when you do not wish to add any additional heat. The value of the *Ep*
23+
% port is multiplied by the value of the *Additional electric heater
24+
% rating* parameter to compute the additional heat to be added to water.
25+
% * Input port *Ta* specifies the inlet air dry bulb temperature.
26+
% * Output port *ePow* and *COP* to to output the actual electrical power
27+
% consumed in the heat pump and the real COP value realized during the heat
28+
% pump operation.
29+
% * Input port *Tl* specifies the water inlet temperature.
30+
% * Input port *Tw* specifies the water outlet temperature.
31+
% * Input port *Nd* specified as a sclar value to represent operation
32+
% deviation from the normal.
33+
%
34+
%% Heating and Cooling Data (EN14511)
35+
% You must specify parameters for Air Water Heat Pump based on EN14511 test
36+
% protocol. The convention used for parameter names is:
37+
%
38+
% * *A* for air, followed by its dry bulb temperature in degree centigrade.
39+
% * *W* for water, followed by its outlet temperature in degree centigrade.
40+
%
41+
% For example: A-2W55 is the test case where inlet air dry bulb temperature
42+
% is -2 degree centigrade and the outlet water temperature is 55 degree
43+
% centigrade.
44+
%
45+
% For all test conditions, you must specify heat pump capacity and the
46+
% estimated COP or SCOP, the seasonal COP values.
47+
%
48+
% * *A-2W55, estimated heating capacity*, |nominalCapacityA|, specified as
49+
% a scalar value.
50+
% * *A-2W55, COP (or SCOP)*, |seasonalCOPvalA|, specified as a scalar value.
51+
% * *A-2W65, estimated heating capacity*, |nominalCapacityB|, specified as
52+
% a scalar value.
53+
% * *A-2W65, COP (or SCOP)*, |seasonalCOPvalB|, specified as a scalar value.
54+
% * *A7W35, estimated heating capacity*, |nominalCapacityC|, specified as
55+
% a scalar value.
56+
% * *A7W35, COP (or SCOP)*, |seasonalCOPvalC|, specified as a scalar value.
57+
% * *A7W45, estimated heating capacity*, |nominalCapacityD|, specified as
58+
% a scalar value.
59+
% * *A7W45, COP (or SCOP)*, |seasonalCOPvalD|, specified as a scalar value.
60+
% * *A35W18, estimated cooling capacity*, |nominalCapacityE|, specified as
61+
% a scalar value.
62+
% * *A35W18 COP (or SCOP)*, |seasonalCOPvalE|, specified as a scalar value.
63+
% * *A35W7, estimated cooling capacity*, |nominalCapacityF|, specified as
64+
% a scalar value.
65+
% * *A35W7 COP (or SCOP)*, |seasonalCOPvalF|, specified as a scalar value.
66+
%
67+
%% Heat Pump
68+
% * *Minimum operational water temperature*, |wInletOpRangeUpp|, specified as
69+
% a scalar value.
70+
% * *Maximum operational water temperature*, |wInletOpRangeLow|, specified as
71+
% a scalar value.
72+
% * *Backup electric heater rating*, |backupElecHeater|, specified as a
73+
% scalar value.
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
%% Air Water Heat Pump (TL)
2+
%
3+
% This block is used for representation of an air-water heat pump using
4+
% *Thermal Liquid* domain and the custom library block |Air Water Heat Pump| .
5+
% The parameters on the block are based on EN14511 test data. The operating
6+
% conditions are determined from the values entered through the input ports
7+
% of the block.
8+
9+
% Copyright 2025 - 2026 The MathWorks, Inc.
10+
11+
%%
12+
% The block has ports:
13+
%
14+
% * Input port *Fw* specifies the flow rate of liquid from the heat pump.
15+
% * Input port *Op* specifies the operation mode of the heat pump. Set
16+
% this input to -1 for heating applications and to +1 for cooling
17+
% applications. You can choose to add no heat to the water by setting this
18+
% port value to 0.
19+
% * Input port *Ep* specifies if an additional electric heater has to be
20+
% used to add heat to water. Set the value of this input to 1 when you want
21+
% to add more heat, using inbuilt electrical heater in the heat pump, or 0
22+
% when you do not wish to add any additional heat. The value of the *Ep*
23+
% port is multiplied by the value of the *Additional electric heater
24+
% rating* parameter to compute the additional heat to be added to water.
25+
% * Input port *Ta* specifies the inlet air dry bulb temperature.
26+
% * Simscape Thermal Liquid ports *A* and *B* to connect to the *Building*
27+
% custom component or to the *Operational Data* custom component.
28+
% * Output port *ePow* and *COP* to to output the actual electrical power
29+
% consumed in the heat pump and the real COP value realized during the heat
30+
% pump operation.
31+
%
32+
% |Air Water Heat Pump| is a custom component that evaluates the heat pump
33+
% capacity based on EN14511 test data. This block, |Air Water Heat Pump (TL)|,
34+
% then estimates the capacity of the pump based on inlet air temperature
35+
% and outlet water temperature values and calculates the heat added or
36+
% removed from the fluid. The Simscape Foundation |Pipe| block adds heat to
37+
% the liquid. The pipe is parameterized based on datasheet values for heat
38+
% pump coil lengths and internal storage volumes.
39+
%
40+
% The list of parameters needed to define the heat pump block are:
41+
%
42+
%% EN14511 (Heating) Data
43+
% You must specify parameters for Air Water Heat Pump based on EN14511 test
44+
% protocol. The convention used for parameter names is:
45+
%
46+
% * *A* for air, followed by its dry bulb temperature in degree centigrade.
47+
% * *W* for water, followed by its outlet temperature in degree centigrade.
48+
%
49+
% For example: A-2W55 is the test case where inlet air dry bulb temperature
50+
% is -2 degree centigrade and the outlet water temperature is 55 degree
51+
% centigrade.
52+
%
53+
% For all test conditions, you must specify heat pump capacity and the
54+
% estimated COP or SCOP, the seasonal COP values.
55+
%
56+
% * *A-2W55, estimated heating capacity*, |nominalCapacityA|, specified as
57+
% a scalar value.
58+
% * *A-2W55, COP (or SCOP)*, |seasonalCOPvalA|, specified as a scalar value.
59+
% * *A-2W65, estimated heating capacity*, |nominalCapacityB|, specified as
60+
% a scalar value.
61+
% * *A-2W65, COP (or SCOP)*, |seasonalCOPvalB|, specified as a scalar value.
62+
% * *A7W35, estimated heating capacity*, |nominalCapacityC|, specified as
63+
% a scalar value.
64+
% * *A7W35, COP (or SCOP)*, |seasonalCOPvalC|, specified as a scalar value.
65+
% * *A7W45, estimated heating capacity*, |nominalCapacityD|, specified as
66+
% a scalar value.
67+
%
68+
%% EN14511 (Cooling) Data
69+
% * *A7W45, COP (or SCOP)*, |seasonalCOPvalD|, specified as a scalar value.
70+
% * *A35W18, estimated cooling capacity*, |nominalCapacityE|, specified as
71+
% a scalar value.
72+
% * *A35W18 COP (or SCOP)*, |seasonalCOPvalE|, specified as a scalar value.
73+
% * *A35W7, estimated cooling capacity*, |nominalCapacityF|, specified as
74+
% a scalar value.
75+
% * *A35W7 COP (or SCOP)*, |seasonalCOPvalF|, specified as a scalar value.
76+
%
77+
%% Heat Pump Construction
78+
% * *Additional electric heater rating*, |elecHeaterPower|, specified as a
79+
% scalar value.
80+
% * *Length of coil pipe*, |coilLen|, specified as a scalar value.
81+
% * *Area of coil pipe*, |coilArea|, specified as a scalar value.
82+
% * *Diameter of coil pipe*, |coilDia|, specified as a scalar value.
83+
% * *Heat exchanger internal volume*, |tankVolume|, specified as a scalar
84+
% value.
85+
%
86+
%% Flow and Thermal Specifications
87+
% * *Initial temperature*, |initialT|, specified as a scalar value.
88+
% * *Initial pressure of water in the coils*, |initialP|, specified as a
89+
% scalar value.
90+
% * *Nominal water flowrate during test*, |nomFlowDuringTest|, specified as
91+
% a scalar value.
92+
% * *Minimum water flowrate*, |minWaterFlowRate|, specified as a scalar
93+
% value.
94+
% * *Temperature sensor delay for water flow (s)*, |measTimelagWater|,
95+
% specified as a scalar value.
96+
% * *Minimum operational water temperature*, |waterOpTempMin|, specified as
97+
% a scalar value.
98+
% * *Maximum operational water temperature*, |waterOpTempMax|, specified as
99+
% a scalar value.

Components/Documentation/DocumentationBuildingDefinitionSimscape.m

Lines changed: 41 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
%% Heat Source Control
2+
%
3+
% This documentation describes a control to supply cooling or heating fluid
4+
% energy to a building block. The block has port _S_ which specifies the
5+
% heat provided to, or extracted from, each room inside the building.
6+
7+
% Copyright 2025 - 2026 The MathWorks, Inc.
8+
9+
%%
10+
% The block compares the measured room temperature _Tr_ with the set point
11+
% temperature _Ts_ and provides heating or cooling value required per room
12+
% in the building, through port _S_. _Tr_ is a vector of length equal to
13+
% the number of rooms in the building. _S_ is of same size as the vector at
14+
% input _Tr_. The set point temperature could be specified as same for all
15+
% rooms using a scalar value or as a vector to specify different set point
16+
% in each room. In such a scenario, the size of _Ts_ vector must be equal
17+
% to the number of rooms in the building. Additionally, ports _heating_ and
18+
% _cooling_ specify the heating and cooling requirements for the building.
19+
%
20+
% * *Heat pump capacity*, |capacity|, specified as a scalar value.
21+
% * *Number of source*, |number|, specified as a scalar value.
22+
% * *Change in water temperature*, |delT|, specified as a scalar value.
23+
% This value specifies the difference between heat pump inlet and outlet
24+
% water streams.
25+
% * *Measurement time constant*, |tau|, specified as a scalar value.
26+
% * *Initial water temperature*, |iniT|, specified as a scalar value.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
%% Room with Air Volume
2+
%
3+
% This documentation describes a simple room model, with internal air mass.
4+
5+
% Copyright 2025 - 2026 The MathWorks, Inc.
6+
7+
%%
8+
% The block has 4 thermal nodes labeled as *w1* , *w2* , *w3* , *w4* to represent
9+
% connection on 4 sides of the room. These must be connected to wall
10+
% blocks, either internal wall or external walls. The thermal nodes *top* and
11+
% *bottom* represent connections to roof and floor elements. The port _S_
12+
% is input port for specifying any heat source in the room. The output port
13+
% _T_ provides the room temperature value.
14+
%
15+
%% Room Dimensions
16+
% * *Room length*, |roomLen|, specified as a scalar value.
17+
% * *Room width*, |roomWid|, specified as a scalar value.
18+
% * *Room height*, |roomHgt|, specified as a scalar value.
19+
%
20+
%% Heat Transfer
21+
% * *Heat transfer coefficient*, |htc|, specified as a scalar value.
22+
% * *Initial temperature*, |iniT|, specified as a scalar value.
23+
% * *Heat source vector index*, |indxS|, specified as a scalar value. This
24+
% is the element location in the _S_ input on the building block mask. The
25+
% index number specifies the serial order of data in the input array for
26+
% the given room.
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
%% Room with Radiator
2+
%
3+
% This documentation describes a simple room model, with internal air
4+
% mass and a radiator for thermal comfort.
5+
6+
% Copyright 2025 - 2026 The MathWorks, Inc.
7+
8+
%%
9+
% The block has 4 thermal nodes labeled as *w1* , *w2* , *w3* , *w4* to represent
10+
% connection on 4 sides of the room. These must be connected to wall
11+
% blocks, either internal wall or external walls. The thermal nodes *top* and
12+
% *bottom* represent connections to roof and floor elements. The port _S_
13+
% is input port for specifying any heat source in the room. The output port
14+
% _T_ provides the room temperature value.
15+
% The radiator water flow if tracked through the thermal liquid domain
16+
% nodes, *TL_A* and *TL_B* . The port _V_ is the input port for specifying
17+
% valve state for the radiator.
18+
%
19+
%% Room Dimensions
20+
% * *Room length*, |roomLen|, specified as a scalar value.
21+
% * *Room width*, |roomWid|, specified as a scalar value.
22+
% * *Room height*, |roomHgt|, specified as a scalar value.
23+
%
24+
%% Radiator
25+
% * *Pipe length*, |pipeLenR|, specified as a scalar value.
26+
% * *Pipe cross-sectional area*, |pipeCrossSectionalAreaR|, specified as a scalar value.
27+
% * *Pipe hydraulic diameter*, |pipeHydrDiaR|, specified as a scalar value.
28+
% * *Pipe roughness*, |pipeRoughnessR|, specified as a scalar value.
29+
%
30+
%% Heat Transfer
31+
% * *Heat transfer coefficient*, |htc|, specified as a scalar value.
32+
% * *Initial temperature*, |iniT|, specified as a scalar value.
33+
% * *Heat source vector index*, |indxS|, specified as a scalar value. This
34+
% is the element location in the _S_ input on the building block mask. The
35+
% index number specifies the serial order of data in the input array for
36+
% the given room.
37+
% * *Valve operation vector index*, |indxV|, specified as a scalar value. This
38+
% is the element location in the _V_ input on the building block mask. The
39+
% index number specifies the serial order of data in the input array for
40+
% the given room.
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
%% Room with Radiator and Under Floor Piping (UFP)
2+
%
3+
% This documentation describes a simple room model, with internal air
4+
% mass, a radiator, and UFP for thermal comfort.
5+
6+
% Copyright 2025 - 2026 The MathWorks, Inc.
7+
8+
%%
9+
% The block has 4 thermal nodes labeled as *w1* , *w2* , *w3* , *w4* to represent
10+
% connection on 4 sides of the room. These must be connected to wall
11+
% blocks, either internal wall or external walls. The thermal nodes *top* and
12+
% *bottom* represent connections to roof and floor elements. The port _S_
13+
% is input port for specifying any heat source in the room. The output port
14+
% _T_ provides the room temperature value.
15+
% The radiator water flow if tracked through the thermal liquid domain
16+
% nodes, *TL_A* and *TL_B* . The port _V_ is the input port for specifying
17+
% valve state for the radiator.
18+
%
19+
%% Room Dimensions
20+
% * *Room length*, |roomLen|, specified as a scalar value.
21+
% * *Room width*, |roomWid|, specified as a scalar value.
22+
% * *Room height*, |roomHgt|, specified as a scalar value.
23+
%
24+
%% Under Floor Piping
25+
% * *Pipe length*, |pipeLenUFP|, specified as a scalar value.
26+
% * *Pipe cross-sectional area*, |pipeCrossSectionalAreaUFP|, specified as a scalar value.
27+
% * *Pipe hydraulic diameter*, |pipeHydrDiaUFP|, specified as a scalar value.
28+
% * *Pipe roughness*, |pipeRoughnessUFP|, specified as a scalar value.
29+
%
30+
%% Radiator
31+
% * *Pipe length*, |pipeLenR|, specified as a scalar value.
32+
% * *Pipe cross-sectional area*, |pipeCrossSectionalAreaR|, specified as a scalar value.
33+
% * *Pipe hydraulic diameter*, |pipeHydrDiaR|, specified as a scalar value.
34+
% * *Pipe roughness*, |pipeRoughnessR|, specified as a scalar value.
35+
%
36+
%% Heat Transfer
37+
% * *Heat transfer coefficient*, |htc|, specified as a scalar value.
38+
% * *Initial temperature*, |iniT|, specified as a scalar value.
39+
% * *Heat source vector index*, |indxS|, specified as a scalar value. This
40+
% is the element location in the _S_ input on the building block mask. The
41+
% index number specifies the serial order of data in the input array for
42+
% the given room.
43+
% * *Valve operation vector index*, |indxV|, specified as a scalar value. This
44+
% is the element location in the _V_ input on the building block mask. The
45+
% index number specifies the serial order of data in the input array for
46+
% the given room.
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
%% Room with Under Floor Piping (UFP)
2+
%
3+
% This documentation describes a simple room model, with internal air
4+
% mass and a UFP for thermal comfort.
5+
6+
% Copyright 2025 - 2026 The MathWorks, Inc.
7+
8+
%%
9+
% The block has 4 thermal nodes labeled as *w1* , *w2* , *w3* , *w4* to represent
10+
% connection on 4 sides of the room. These must be connected to wall
11+
% blocks, either internal wall or external walls. The thermal nodes *top* and
12+
% *bottom* represent connections to roof and floor elements. The port _S_
13+
% is input port for specifying any heat source in the room. The output port
14+
% _T_ provides the room temperature value.
15+
% The radiator water flow if tracked through the thermal liquid domain
16+
% nodes, *TL_A* and *TL_B* . The port _V_ is the input port for specifying
17+
% valve state for the radiator.
18+
%
19+
%% Room Dimensions
20+
% * *Room length*, |roomLen|, specified as a scalar value.
21+
% * *Room width*, |roomWid|, specified as a scalar value.
22+
% * *Room height*, |roomHgt|, specified as a scalar value.
23+
%
24+
%% Under Floor Piping
25+
% * *Pipe length*, |pipeLenUFP|, specified as a scalar value.
26+
% * *Pipe cross-sectional area*, |pipeCrossSectionalAreaUFP|, specified as a scalar value.
27+
% * *Pipe hydraulic diameter*, |pipeHydrDiaUFP|, specified as a scalar value.
28+
% * *Pipe roughness*, |pipeRoughnessUFP|, specified as a scalar value.
29+
%
30+
%% Heat Transfer
31+
% * *Heat transfer coefficient*, |htc|, specified as a scalar value.
32+
% * *Initial temperature*, |iniT|, specified as a scalar value.
33+
% * *Heat source vector index*, |indxS|, specified as a scalar value. This
34+
% is the element location in the _S_ input on the building block mask. The
35+
% index number specifies the serial order of data in the input array for
36+
% the given room.
37+
% * *Valve operation vector index*, |indxV|, specified as a scalar value. This
38+
% is the element location in the _V_ input on the building block mask. The
39+
% index number specifies the serial order of data in the input array for
40+
% the given room.

0 commit comments

Comments
 (0)