Collection of models that illustrate model use and test models
Information
This packages contains examples for Reduced Order Model applications.
Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).
Package Content
Name |
Description |
SimpleRoomFourElements
|
Illustrates the use of a thermal zone with four heat conduction elements |
SimpleRoomOneElement
|
Illustrates the use of a thermal zone with one heat conduction element |
SimpleRoomThreeElements
|
Illustrates the use of a thermal zone with three heat conduction elements |
SimpleRoomTwoElements
|
Illustrates the use of a thermal zone with two heat conduction elements |
Illustrates the use of a thermal zone with four heat conduction elements
Information
This example shows the application of
Annex60.ThermalZones.ReducedOrder.RC.FourElements
in combination with
Annex60.ThermalZones.ReducedOrder.EquivalentAirTemperature.VDI6007WithWindow
and
Annex60.ThermalZones.ReducedOrder.SolarGain.CorrectionGDoublePane.
Solar radiation on tilted surface is calculated using models of
Annex60. The thermal zone is a simple room defined in Guideline
VDI 6007 Part 1 (VDI, 2012). All models, parameters and inputs
except sunblinds, separate handling of heat transfer through
windows, an extra wall element for ground floor (with additional
area), an extra wall element for roof (with additional area) and
solar radiation are similar to the ones defined for the
guideline's test room. For solar radiation, the example
relies on the standard weather file in Annex60.
The idea of the example is to show a typical application of
all sub-models and to use the example in unit tests. The results
are reasonable, but not related to any real use case or measurement
data.
References
VDI. German Association of Engineers Guideline VDI
6007-1 March 2012. Calculation of transient thermal response of
rooms and buildings - modelling of rooms.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Connectors
Type | Name | Description |
Bus | weaBus | Weather data bus |
Modelica definition
model SimpleRoomFourElements
extends Modelica.Icons.Example;
BoundaryConditions.WeatherData.ReaderTMY3 weaDat(
calTSky=Annex60.BoundaryConditions.Types.SkyTemperatureCalculation.HorizontalRadiation,
computeWetBulbTemperature=false,
filNam="modelica://Annex60/Resources/weatherdata/USA_CA_San.Francisco.Intl.AP.724940_TMY3.mos")
;
BoundaryConditions.SolarIrradiation.DiffusePerez HDifTil[2](
each outSkyCon=true,
each outGroCon=true,
each til=1.5707963267949,
each lat=0.87266462599716,
azi={3.1415926535898,4.7123889803847})
;
BoundaryConditions.SolarIrradiation.DirectTiltedSurface HDirTil[2](
each til=1.5707963267949,
each lat=0.87266462599716,
azi={3.1415926535898,4.7123889803847})
;
SolarGain.CorrectionGDoublePane corGDouPan(UWin=2.1, n=2)
;
RC.FourElements thermalZoneFourElements(
VAir=52.5,
alphaExt=2.7,
alphaWin=2.7,
gWin=1,
ratioWinConRad=0.09,
nExt=1,
RExt={0.00331421908725},
CExt={5259932.23},
alphaRad=5,
AInt=60.5,
alphaInt=2.12,
nInt=1,
RInt={0.000668895639141},
CInt={12391363.86},
RWin=0.01642857143,
RExtRem=0.1265217391,
AFloor=11.5,
alphaFloor=2.7,
nFloor=1,
RFloor={0.00331421908725},
RFloorRem=0.1265217391,
CFloor={5259932.23},
ARoof=11.5,
alphaRoof=2.7,
nRoof=1,
RRoof={0.00331421908725},
RRoofRem=0.1265217391,
CRoof={5259932.23},
nOrientations=2,
AWin={7,7},
ATransparent={7,7},
AExt={3.5,8},
redeclare package Medium =
Modelica.Media.Air.SimpleAir,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
extWallRC(thermCapExt(
each der_T(fixed=true))),
intWallRC(thermCapInt(
each der_T(fixed=true))),
floorRC(thermCapExt(
each der_T(fixed=true))),
T_start=295.15,
roofRC(thermCapExt(
each der_T(fixed=true)))) ;
EquivalentAirTemperature.VDI6007WithWindow eqAirTemp(
wfGro=0,
withLongwave=true,
aExt=0.7,
alphaWallOut=20,
alphaRad=5,
alphaWinOut=20,
n=2,
wfWall={0.3043478260869566,0.6956521739130435},
wfWin={0.5,0.5},
TGro=285.15) ;
Modelica.Blocks.Math.Add solRad[2]
;
Modelica.Thermal.HeatTransfer.Sources.PrescribedTemperature preTem
;
Modelica.Thermal.HeatTransfer.Sources.PrescribedTemperature preTem1
;
Modelica.Thermal.HeatTransfer.Components.Convection theConWin
;
Modelica.Thermal.HeatTransfer.Components.Convection theConWall
;
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow perRad
;
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow perCon
;
Modelica.Blocks.Sources.CombiTimeTable intGai(
table=[0,0,0,0; 3600,0,0,0; 7200,0,0,0; 10800,0,0,0; 14400,0,0,0; 18000,0,0,
0; 21600,0,0,0; 25200,0,0,0; 25200,80,80,200; 28800,80,80,200; 32400,80,
80,200; 36000,80,80,200; 39600,80,80,200; 43200,80,80,200; 46800,80,80,200;
50400,80,80,200; 54000,80,80,200; 57600,80,80,200; 61200,80,80,200; 61200,
0,0,0; 64800,0,0,0; 72000,0,0,0; 75600,0,0,0; 79200,0,0,0; 82800,0,0,0;
86400,0,0,0],
columns={2,3,4},
extrapolation=Modelica.Blocks.Types.Extrapolation.Periodic) ;
Modelica.Blocks.Sources.Constant const[2](
each k=0)
;
BoundaryConditions.WeatherData.Bus weaBus ;
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow macConv
;
Modelica.Blocks.Sources.Constant alphaWall(k=25*11.5)
;
Modelica.Blocks.Sources.Constant alphaWin(k=20*14)
;
Modelica.Thermal.HeatTransfer.Sources.PrescribedTemperature preTemFloor
;
Modelica.Blocks.Sources.Constant TSoil(k=283.15)
;
EquivalentAirTemperature.VDI6007 eqAirTempVDI(
aExt=0.7,
n=1,
wfWall={1},
wfWin={0},
wfGro=0,
alphaWallOut=20,
alphaRad=5,
TGro=285.15) ;
Modelica.Thermal.HeatTransfer.Sources.PrescribedTemperature preTemRoof
;
Modelica.Thermal.HeatTransfer.Components.Convection theConRoof
;
Modelica.Blocks.Sources.Constant alphaRoof(k=25*11.5)
;
Modelica.Blocks.Sources.Constant const1(k=0)
;
equation
connect(eqAirTemp.TEqAirWin, preTem1.T);
connect(eqAirTemp.TEqAir, preTem.T);
connect(weaDat.weaBus, weaBus);
connect(weaBus.TDryBul, eqAirTemp.TDryBul);
connect(intGai.y[1], perRad.Q_flow);
connect(intGai.y[2], perCon.Q_flow);
connect(intGai.y[3], macConv.Q_flow);
connect(const.y, eqAirTemp.sunblind);
connect(HDifTil.HSkyDifTil, corGDouPan.HSkyDifTil);
connect(HDirTil.H, corGDouPan.HDirTil);
connect(HDirTil.H,solRad. u1);
connect(HDifTil.H,solRad. u2);
connect(HDifTil.HGroDifTil, corGDouPan.HGroDifTil);
connect(solRad.y, eqAirTemp.HSol);
connect(weaDat.weaBus, HDifTil[1].weaBus);
connect(weaDat.weaBus, HDifTil[2].weaBus);
connect(weaDat.weaBus, HDirTil[1].weaBus);
connect(weaDat.weaBus, HDirTil[2].weaBus);
connect(perRad.port, thermalZoneFourElements.intGainsRad);
connect(theConWin.solid, thermalZoneFourElements.window);
connect(preTem1.port, theConWin.fluid);
connect(thermalZoneFourElements.extWall, theConWall.solid);
connect(theConWall.fluid, preTem.port);
connect(alphaWall.y, theConWall.Gc);
connect(alphaWin.y, theConWin.Gc);
connect(weaBus.TBlaSky, eqAirTemp.TBlaSky);
connect(macConv.port, thermalZoneFourElements.intGainsConv);
connect(perCon.port, thermalZoneFourElements.intGainsConv);
connect(preTemFloor.port, thermalZoneFourElements.floor);
connect(TSoil.y, preTemFloor.T);
connect(preTemRoof.port, theConRoof.fluid);
connect(theConRoof.solid, thermalZoneFourElements.roof);
connect(eqAirTempVDI.TEqAir, preTemRoof.T);
connect(theConRoof.Gc, alphaRoof.y);
connect(eqAirTempVDI.TDryBul, eqAirTemp.TDryBul);
connect(eqAirTempVDI.TBlaSky, eqAirTemp.TBlaSky);
connect(eqAirTempVDI.HSol[1], weaBus.HGloHor);
connect(HDirTil.inc, corGDouPan.inc);
connect(const1.y, eqAirTempVDI.sunblind[1]);
connect(corGDouPan.solarRadWinTrans, thermalZoneFourElements.solRad);
end SimpleRoomFourElements;
Illustrates the use of a thermal zone with one heat conduction element
Information
This example shows the application of
Annex60.ThermalZones.ReducedOrder.RC.OneElement
in combination with
Annex60.ThermalZones.ReducedOrder.EquivalentAirTemperature.VDI6007WithWindow
and
Annex60.ThermalZones.ReducedOrder.SolarGain.CorrectionGDoublePane.
Solar radiation on tilted surface is calculated using models of
Annex60. The thermal zone is a simple room defined in Guideline
VDI 6007 Part 1 (VDI, 2012). All models, parameters and inputs
except sunblinds, separate handling of heat transfer through
windows, no wall element for internal walls and solar radiation
are similar to the ones defined for the guideline's test
room. For solar radiation, the example relies on the standard
weather file in Annex60.
The idea of the example is to show a typical application of all
sub-models and to use the example in unit tests. The results are
reasonable, but not related to any real use case or measurement
data.
References
VDI. German Association of Engineers Guideline VDI 6007-1
March 2012. Calculation of transient thermal response of rooms
and buildings - modelling of rooms.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Connectors
Type | Name | Description |
Bus | weaBus | Weather data bus |
Modelica definition
model SimpleRoomOneElement
extends Modelica.Icons.Example;
BoundaryConditions.WeatherData.ReaderTMY3 weaDat(
calTSky=Annex60.BoundaryConditions.Types.SkyTemperatureCalculation.HorizontalRadiation,
computeWetBulbTemperature=false,
filNam="modelica://Annex60/Resources/weatherdata/USA_CA_San.Francisco.Intl.AP.724940_TMY3.mos")
;
BoundaryConditions.SolarIrradiation.DiffusePerez HDifTil[2](
each outSkyCon=true,
each outGroCon=true,
each til=1.5707963267949,
each lat=0.87266462599716,
azi={3.1415926535898,4.7123889803847})
;
BoundaryConditions.SolarIrradiation.DirectTiltedSurface HDirTil[2](
each til=1.5707963267949,
each lat=0.87266462599716,
azi={3.1415926535898,4.7123889803847})
;
SolarGain.CorrectionGDoublePane corGDouPan(n=2, UWin=2.1)
;
RC.OneElement thermalZoneOneElement(
VAir=52.5,
alphaExt=2.7,
alphaWin=2.7,
gWin=1,
ratioWinConRad=0.09,
nExt=1,
RExt={0.00331421908725},
CExt={5259932.23},
alphaRad=5,
RWin=0.01642857143,
RExtRem=0.1265217391,
nOrientations=2,
AWin={7,7},
ATransparent={7,7},
AExt={3.5,8},
redeclare package Medium =
Modelica.Media.Air.SimpleAir,
extWallRC(thermCapExt(
each der_T(fixed=true))),
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
T_start=295.15) ;
EquivalentAirTemperature.VDI6007WithWindow eqAirTemp(
n=2,
wfGro=0,
wfWall={0.3043478260869566,0.6956521739130435},
wfWin={0.5,0.5},
withLongwave=true,
aExt=0.7,
alphaWallOut=20,
alphaRad=5,
alphaWinOut=20,
TGro=285.15) ;
Modelica.Blocks.Math.Add solRad[2]
;
Modelica.Thermal.HeatTransfer.Sources.PrescribedTemperature preTem
;
Modelica.Thermal.HeatTransfer.Sources.PrescribedTemperature preTem1
;
Modelica.Thermal.HeatTransfer.Components.Convection theConWin
;
Modelica.Thermal.HeatTransfer.Components.Convection theConWall
;
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow perRad
;
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow perCon
;
Modelica.Blocks.Sources.CombiTimeTable intGai(
table=[0,0,0,0; 3600,0,0,0; 7200,0,0,0; 10800,0,0,0; 14400,0,0,0; 18000,0,0,
0; 21600,0,0,0; 25200,0,0,0; 25200,80,80,200; 28800,80,80,200; 32400,80,
80,200; 36000,80,80,200; 39600,80,80,200; 43200,80,80,200; 46800,80,80,200;
50400,80,80,200; 54000,80,80,200; 57600,80,80,200; 61200,80,80,200; 61200,
0,0,0; 64800,0,0,0; 72000,0,0,0; 75600,0,0,0; 79200,0,0,0; 82800,0,0,0;
86400,0,0,0],
columns={2,3,4},
extrapolation=Modelica.Blocks.Types.Extrapolation.Periodic) ;
Modelica.Blocks.Sources.Constant const[2](
each k=0)
;
BoundaryConditions.WeatherData.Bus weaBus ;
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow macConv
;
Modelica.Blocks.Sources.Constant alphaWall(k=25*11.5)
;
Modelica.Blocks.Sources.Constant alphaWin(k=20*14)
;
equation
connect(eqAirTemp.TEqAirWin, preTem1.T);
connect(eqAirTemp.TEqAir, preTem.T);
connect(weaDat.weaBus, weaBus);
connect(weaBus.TDryBul, eqAirTemp.TDryBul);
connect(intGai.y[1], perRad.Q_flow);
connect(intGai.y[2], perCon.Q_flow);
connect(intGai.y[3], macConv.Q_flow);
connect(const.y, eqAirTemp.sunblind);
connect(HDifTil.HSkyDifTil, corGDouPan.HSkyDifTil);
connect(HDirTil.H, corGDouPan.HDirTil);
connect(HDirTil.H,solRad. u1);
connect(HDirTil.inc, corGDouPan.inc);
connect(HDifTil.H,solRad. u2);
connect(HDifTil.HGroDifTil, corGDouPan.HGroDifTil);
connect(solRad.y, eqAirTemp.HSol);
connect(weaDat.weaBus, HDifTil[1].weaBus);
connect(weaDat.weaBus, HDifTil[2].weaBus);
connect(weaDat.weaBus, HDirTil[1].weaBus);
connect(weaDat.weaBus, HDirTil[2].weaBus);
connect(perRad.port, thermalZoneOneElement.intGainsRad);
connect(theConWin.solid, thermalZoneOneElement.window);
connect(preTem1.port, theConWin.fluid);
connect(thermalZoneOneElement.extWall, theConWall.solid);
connect(theConWall.fluid, preTem.port);
connect(alphaWall.y, theConWall.Gc);
connect(alphaWin.y, theConWin.Gc);
connect(weaBus.TBlaSky, eqAirTemp.TBlaSky);
connect(macConv.port, thermalZoneOneElement.intGainsConv);
connect(perCon.port, thermalZoneOneElement.intGainsConv);
connect(corGDouPan.solarRadWinTrans, thermalZoneOneElement.solRad);
end SimpleRoomOneElement;
Illustrates the use of a thermal zone with three heat conduction elements
Information
This example shows the application of
Annex60.ThermalZones.ReducedOrder.RC.ThreeElements
in combination with
Annex60.ThermalZones.ReducedOrder.EquivalentAirTemperature.VDI6007WithWindow
and
Annex60.ThermalZones.ReducedOrder.SolarGain.CorrectionGDoublePane.
Solar radiation on tilted surface is calculated using models of
Annex60. The thermal zone is a simple room defined in Guideline
VDI 6007 Part 1 (VDI, 2012). All models, parameters and inputs
except sunblinds, separate handling of heat transfer through
windows, an extra wall element for ground floor (with additional
area) and solar radiation are similar to the ones defined for the
guideline's test room. For solar radiation, the example
relies on the standard weather file in Annex60.
The idea of the example is to show a typical application of
all sub-models and to use the example in unit tests. The results
are reasonable, but not related to any real use case or
measurement data.
References
VDI. German Association of Engineers Guideline VDI 6007-1 March
2012. Calculation of transient thermal response of rooms and
buildings - modelling of rooms.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Connectors
Type | Name | Description |
Bus | weaBus | Weather data bus |
Modelica definition
model SimpleRoomThreeElements
extends Modelica.Icons.Example;
BoundaryConditions.WeatherData.ReaderTMY3 weaDat(
calTSky=Annex60.BoundaryConditions.Types.SkyTemperatureCalculation.HorizontalRadiation,
computeWetBulbTemperature=false,
filNam="modelica://Annex60/Resources/weatherdata/USA_CA_San.Francisco.Intl.AP.724940_TMY3.mos")
;
BoundaryConditions.SolarIrradiation.DiffusePerez HDifTil[2](
each outSkyCon=true,
each outGroCon=true,
each til=1.5707963267949,
each lat=0.87266462599716,
azi={3.1415926535898,4.7123889803847})
;
BoundaryConditions.SolarIrradiation.DirectTiltedSurface HDirTil[2](
each til=1.5707963267949,
each lat=0.87266462599716,
azi={3.1415926535898,4.7123889803847})
;
SolarGain.CorrectionGDoublePane corGDouPan(n=2, UWin=2.1)
;
RC.ThreeElements thermalZoneThreeElements(
VAir=52.5,
alphaExt=2.7,
alphaWin=2.7,
gWin=1,
ratioWinConRad=0.09,
nExt=1,
RExt={0.00331421908725},
CExt={5259932.23},
alphaRad=5,
AInt=60.5,
alphaInt=2.12,
nInt=1,
RInt={0.000668895639141},
CInt={12391363.86},
RWin=0.01642857143,
RExtRem=0.1265217391,
AFloor=11.5,
alphaFloor=2.7,
nFloor=1,
RFloor={0.00331421908725},
RFloorRem=0.1265217391,
CFloor={5259932.23},
AWin={7,7},
ATransparent={7,7},
AExt={3.5,8},
nOrientations=2,
redeclare package Medium =
Modelica.Media.Air.SimpleAir,
extWallRC(thermCapExt(
each der_T(fixed=true))),
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
intWallRC(thermCapInt(
each der_T(fixed=true))),
floorRC(thermCapExt(
each der_T(fixed=true))),
T_start=295.15) ;
EquivalentAirTemperature.VDI6007WithWindow eqAirTemp(
n=2,
wfGro=0,
wfWall={0.3043478260869566,0.6956521739130435},
wfWin={0.5,0.5},
withLongwave=true,
aExt=0.7,
alphaWallOut=20,
alphaRad=5,
alphaWinOut=20,
TGro=285.15) ;
Modelica.Blocks.Math.Add solRad[2]
;
Modelica.Thermal.HeatTransfer.Sources.PrescribedTemperature preTem
;
Modelica.Thermal.HeatTransfer.Sources.PrescribedTemperature preTem1
;
Modelica.Thermal.HeatTransfer.Components.Convection theConWin
;
Modelica.Thermal.HeatTransfer.Components.Convection theConWall
;
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow perRad
;
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow perCon
;
Modelica.Blocks.Sources.CombiTimeTable intGai(
table=[0,0,0,0; 3600,0,0,0; 7200,0,0,0; 10800,0,0,0; 14400,0,0,0; 18000,0,0,
0; 21600,0,0,0; 25200,0,0,0; 25200,80,80,200; 28800,80,80,200; 32400,80,
80,200; 36000,80,80,200; 39600,80,80,200; 43200,80,80,200; 46800,80,80,200;
50400,80,80,200; 54000,80,80,200; 57600,80,80,200; 61200,80,80,200; 61200,
0,0,0; 64800,0,0,0; 72000,0,0,0; 75600,0,0,0; 79200,0,0,0; 82800,0,0,0;
86400,0,0,0],
columns={2,3,4},
extrapolation=Modelica.Blocks.Types.Extrapolation.Periodic) ;
Modelica.Blocks.Sources.Constant const[2](
each k=0)
;
BoundaryConditions.WeatherData.Bus weaBus ;
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow macConv
;
Modelica.Blocks.Sources.Constant alphaWall(k=25*11.5)
;
Modelica.Blocks.Sources.Constant alphaWin(k=20*14)
;
Modelica.Thermal.HeatTransfer.Sources.PrescribedTemperature preTemFloor
;
Modelica.Blocks.Sources.Constant TSoil(k=283.15)
;
equation
connect(eqAirTemp.TEqAirWin, preTem1.T);
connect(eqAirTemp.TEqAir, preTem.T);
connect(weaDat.weaBus, weaBus);
connect(weaBus.TDryBul, eqAirTemp.TDryBul);
connect(intGai.y[1], perRad.Q_flow);
connect(intGai.y[2], perCon.Q_flow);
connect(intGai.y[3], macConv.Q_flow);
connect(const.y, eqAirTemp.sunblind);
connect(HDifTil.HSkyDifTil, corGDouPan.HSkyDifTil);
connect(HDirTil.H, corGDouPan.HDirTil);
connect(HDirTil.H,solRad. u1);
connect(HDirTil.inc, corGDouPan.inc);
connect(HDifTil.H,solRad. u2);
connect(HDifTil.HGroDifTil, corGDouPan.HGroDifTil);
connect(solRad.y, eqAirTemp.HSol);
connect(weaDat.weaBus, HDifTil[1].weaBus);
connect(weaDat.weaBus, HDifTil[2].weaBus);
connect(weaDat.weaBus, HDirTil[1].weaBus);
connect(weaDat.weaBus, HDirTil[2].weaBus);
connect(perRad.port, thermalZoneThreeElements.intGainsRad);
connect(theConWin.solid, thermalZoneThreeElements.window);
connect(preTem1.port, theConWin.fluid);
connect(thermalZoneThreeElements.extWall, theConWall.solid);
connect(theConWall.fluid, preTem.port);
connect(alphaWall.y, theConWall.Gc);
connect(alphaWin.y, theConWin.Gc);
connect(weaBus.TBlaSky, eqAirTemp.TBlaSky);
connect(macConv.port, thermalZoneThreeElements.intGainsConv);
connect(perCon.port, thermalZoneThreeElements.intGainsConv);
connect(preTemFloor.port, thermalZoneThreeElements.floor);
connect(TSoil.y, preTemFloor.T);
connect(corGDouPan.solarRadWinTrans, thermalZoneThreeElements.solRad);
end SimpleRoomThreeElements;
Illustrates the use of a thermal zone with two heat conduction elements
Information
This example shows the application of
Annex60.ThermalZones.ReducedOrder.RC.TwoElements
in combination with
Annex60.ThermalZones.ReducedOrder.EquivalentAirTemperature.VDI6007WithWindow
and
Annex60.ThermalZones.ReducedOrder.SolarGain.CorrectionGDoublePane.
Solar radiation on tilted surface is calculated using models of
Annex60. The thermal zone is a simple room defined in Guideline
VDI 6007 Part 1 (VDI, 2012). All models, parameters and inputs
except sunblinds, separate handling of heat transfer through
windows and solar radiation are similar to the ones defined for
the guideline's test room. For solar radiation, the example
relies on the standard weather file in Annex60.
The idea of the example is to show a typical application of
all sub-models and to use the example in unit tests. The results
are reasonable, but not related to any real use case or
measurement data.
References
VDI. German Association of Engineers Guideline VDI
6007-1 March 2012. Calculation of transient thermal response of
rooms and buildings - modelling of rooms.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Connectors
Type | Name | Description |
Bus | weaBus | Weather data bus |
Modelica definition
model SimpleRoomTwoElements
extends Modelica.Icons.Example;
BoundaryConditions.WeatherData.ReaderTMY3 weaDat(
calTSky=Annex60.BoundaryConditions.Types.SkyTemperatureCalculation.HorizontalRadiation,
computeWetBulbTemperature=false,
filNam="modelica://Annex60/Resources/weatherdata/USA_CA_San.Francisco.Intl.AP.724940_TMY3.mos")
;
BoundaryConditions.SolarIrradiation.DiffusePerez HDifTil[2](
each outSkyCon=true,
each outGroCon=true,
each til=1.5707963267949,
each lat=0.87266462599716,
azi={3.1415926535898,4.7123889803847})
;
BoundaryConditions.SolarIrradiation.DirectTiltedSurface HDirTil[2](
each til(displayUnit="deg") = 1.5707963267949,
each lat=0.87266462599716,
azi={3.1415926535898,4.7123889803847})
;
SolarGain.CorrectionGDoublePane corGDouPan(n=2, UWin=2.1)
;
RC.TwoElements thermalZoneTwoElements(
VAir=52.5,
alphaExt=2.7,
alphaWin=2.7,
gWin=1,
ratioWinConRad=0.09,
nExt=1,
RExt={0.00331421908725},
CExt={5259932.23},
alphaRad=5,
AInt=60.5,
alphaInt=2.12,
nInt=1,
RInt={0.000668895639141},
CInt={12391363.86},
RWin=0.01642857143,
RExtRem=0.1265217391,
nOrientations=2,
AWin={7,7},
ATransparent={7,7},
AExt={3.5,8},
redeclare package Medium =
Modelica.Media.Air.SimpleAir,
extWallRC(thermCapExt(
each der_T(fixed=true))),
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
T_start=295.15,
intWallRC(thermCapInt(
each der_T(fixed=true)))) ;
EquivalentAirTemperature.VDI6007WithWindow eqAirTemp(
n=2,
wfGro=0,
wfWall={0.3043478260869566,0.6956521739130435},
wfWin={0.5,0.5},
withLongwave=true,
aExt=0.7,
alphaWallOut=20,
alphaRad=5,
alphaWinOut=20,
TGro=285.15) ;
Modelica.Blocks.Math.Add solRad[2]
;
Modelica.Thermal.HeatTransfer.Sources.PrescribedTemperature preTem
;
Modelica.Thermal.HeatTransfer.Sources.PrescribedTemperature preTem1
;
Modelica.Thermal.HeatTransfer.Components.Convection theConWin
;
Modelica.Thermal.HeatTransfer.Components.Convection theConWall
;
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow perRad
;
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow perCon
;
Modelica.Blocks.Sources.CombiTimeTable intGai(
table=[0,0,0,0; 3600,0,0,0; 7200,0,0,0; 10800,0,0,0; 14400,0,0,0; 18000,0,0,
0; 21600,0,0,0; 25200,0,0,0; 25200,80,80,200; 28800,80,80,200; 32400,80,
80,200; 36000,80,80,200; 39600,80,80,200; 43200,80,80,200; 46800,80,80,200;
50400,80,80,200; 54000,80,80,200; 57600,80,80,200; 61200,80,80,200; 61200,
0,0,0; 64800,0,0,0; 72000,0,0,0; 75600,0,0,0; 79200,0,0,0; 82800,0,0,0;
86400,0,0,0],
columns={2,3,4},
extrapolation=Modelica.Blocks.Types.Extrapolation.Periodic) ;
Modelica.Blocks.Sources.Constant const[2](
each k=0)
;
BoundaryConditions.WeatherData.Bus weaBus ;
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow macConv
;
Modelica.Blocks.Sources.Constant alphaWall(k=25*11.5)
;
Modelica.Blocks.Sources.Constant alphaWin(k=20*14)
;
equation
connect(eqAirTemp.TEqAirWin, preTem1.T);
connect(eqAirTemp.TEqAir, preTem.T);
connect(weaDat.weaBus, weaBus);
connect(weaBus.TDryBul, eqAirTemp.TDryBul);
connect(intGai.y[1], perRad.Q_flow);
connect(intGai.y[2], perCon.Q_flow);
connect(intGai.y[3], macConv.Q_flow);
connect(const.y, eqAirTemp.sunblind);
connect(HDifTil.HSkyDifTil, corGDouPan.HSkyDifTil);
connect(HDirTil.H, corGDouPan.HDirTil);
connect(HDirTil.H,solRad. u1);
connect(HDirTil.inc, corGDouPan.inc);
connect(HDifTil.H,solRad. u2);
connect(HDifTil.HGroDifTil, corGDouPan.HGroDifTil);
connect(solRad.y, eqAirTemp.HSol);
connect(weaDat.weaBus, HDifTil[1].weaBus);
connect(weaDat.weaBus, HDifTil[2].weaBus);
connect(weaDat.weaBus, HDirTil[1].weaBus);
connect(weaDat.weaBus, HDirTil[2].weaBus);
connect(perRad.port, thermalZoneTwoElements.intGainsRad);
connect(theConWin.solid, thermalZoneTwoElements.window);
connect(preTem1.port, theConWin.fluid);
connect(thermalZoneTwoElements.extWall, theConWall.solid);
connect(theConWall.fluid, preTem.port);
connect(alphaWall.y, theConWall.Gc);
connect(alphaWin.y, theConWin.Gc);
connect(weaBus.TBlaSky, eqAirTemp.TBlaSky);
connect(macConv.port, thermalZoneTwoElements.intGainsConv);
connect(perCon.port, thermalZoneTwoElements.intGainsConv);
connect(corGDouPan.solarRadWinTrans, thermalZoneTwoElements.solRad);
end SimpleRoomTwoElements;
http://iea-annex60.org