Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx

Information

This package contains the validation cases of the 600 series of the BESTEST validation (ANSI/ASHRAE Standard 140-2020).

References

ANSI/ASHRAE. 2020. ANSI/ASHRAE Standard 140-2020, Standard Method of Test for the Evaluation of Building Energy Analysis Computer Programs.

Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).

Package Content

Name Description
Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600 Case600 Case 600FF, but with dual-setpoint for heating and cooling
Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600FF Case600FF Basic test with light-weight construction and free floating temperature
Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case610 Case610 Case 600 with south shading
Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case620 Case620 Case 600, but with windows on east and west side walls
Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case630 Case630 Case 620, but with added overhang and sidefins
Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case640 Case640 Case 600, but with heating schedule
Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case650 Case650  
Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case650FF Case650FF  
Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case660 Case660 Case 600, but with low-emissivity windows with Argon gas
Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case670 Case670 Case 600, but has single pane window with clear glass
Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case680 Case680 Case 600, but with increased exterior wall and roof insulation
Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case680FF Case680FF  
Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case685 Case685  
Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case695 Case695  

Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600 Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600

Case 600FF, but with dual-setpoint for heating and cooling

Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600

Information

This model is used for the basic test case 600 of the BESTEST validation suite. Case 600 is a light-weight building with room temperature control set to 20°C for heating and 27°C for cooling. The room has no shade and a window that faces south.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model Case600 "Case 600FF, but with dual-setpoint for heating and cooling" extends Modelica.Icons.Example; Modelica.Blocks.Math.Sum sumHeaCoo(nin=2) "Sum of heating and cooling heat flow rate"; Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow preHeaCoo "Prescribed heat flow for heating and cooling"; Modelica.Blocks.Math.Gain gaiHea(k=1E6) "Gain for heating"; Buildings.Controls.Continuous.LimPID conHeaPID( Ti=300, k=0.1, reverseActing=true, strict=true) "Controller for heating"; Modelica.Blocks.Sources.CombiTimeTable TSetHea(table=[0.0,273.15 + 20]) "Setpoint for heating"; Modelica.Blocks.Routing.Multiplex2 multiplex2; Modelica.Blocks.Math.Gain gaiCoo(k=-1E6) "Gain for cooling"; Buildings.Controls.Continuous.LimPID conCooPID( Ti=300, k=0.1, reverseActing=false, strict=true) "Controller for cooling"; Modelica.Blocks.Continuous.Integrator ECoo( initType=Modelica.Blocks.Types.Init.InitialState, y_start=0, u(unit="W"), y(unit="J", displayUnit="J")) "Cooling energy in Joules"; Buildings.ThermalZones.ISO13790.Zone5R1C.ZoneHVAC zonHVAC( airRat=0.414, AWin={0,0,12,0}, UWin=3.1, AWal={21.6,16.2,9.6,16.2}, ARoo=48, UWal=0.53, URoo=0.33, UFlo=0.038, b=1, AFlo=48, VRoo=129.6, hInt=2.1, redeclare replaceable Buildings.ThermalZones.ISO13790.Validation.BESTEST.Data.Case600Mass buiMas, nOrientations=4, surTil={1.5707963267949,1.5707963267949,1.5707963267949,1.5707963267949}, surAzi={3.1415926535898,-1.5707963267949,0,1.5707963267949}, gFac=0.769, coeFac={1,-0.189,0.644,-0.596}, redeclare package Medium = Buildings.Media.Air); Modelica.Blocks.Sources.Constant intGai(k=200) "Internal heat gains"; Buildings.BoundaryConditions.WeatherData.ReaderTMY3 weaDat(filNam= Modelica.Utilities.Files.loadResource( "modelica://Buildings/Resources/weatherdata/USA_CO_Denver.Intl.AP.725650_TMY3.mos")) "Weather data"; Modelica.Blocks.Continuous.Integrator EHea( initType=Modelica.Blocks.Types.Init.InitialState, y_start=0, u(unit="W"), y(unit="J", displayUnit="J")) "Cooling energy in Joules"; Buildings.Controls.OBC.CDL.Reals.MovingAverage PHea(delta=3600) "Hourly averaged heating power"; Buildings.Controls.OBC.CDL.Reals.MovingAverage PCoo(delta=3600) "Hourly averaged cooling power"; Modelica.Blocks.Sources.CombiTimeTable TSetCoo(table=[0.0,273.15 + 27]) "Setpoint for cooling"; Modelica.Blocks.Sources.Constant latGai(k=0) "Internal heat gains"; equation connect(sumHeaCoo.y,preHeaCoo. Q_flow); connect(conHeaPID.y,gaiHea. u); connect(multiplex2.y,sumHeaCoo. u); connect(conCooPID.y,gaiCoo. u); connect(gaiHea.y,multiplex2. u1[1]); connect(gaiCoo.y,multiplex2. u2[1]); connect(gaiCoo.u,conCooPID. y); connect(ECoo.u, gaiCoo.y); connect(preHeaCoo.port,zonHVAC. heaPorAir); connect(intGai.y,zonHVAC. intSenGai); connect(weaDat.weaBus,zonHVAC. weaBus); connect(zonHVAC.TAir, conCooPID.u_m); connect(zonHVAC.TAir, conHeaPID.u_m); connect(EHea.u, gaiHea.y); connect(TSetHea.y[1], conHeaPID.u_s); connect(TSetCoo.y[1], conCooPID.u_s); connect(gaiCoo.y, PCoo.u); connect(PHea.u, gaiHea.y); connect(latGai.y, zonHVAC.intLatGai); end Case600;

Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600FF Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600FF

Basic test with light-weight construction and free floating temperature

Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600FF

Information

This model is used for the test case 600FF of the BESTEST validation suite. Case 600FF is a light-weight building. The room temperature is free floating.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model Case600FF "Basic test with light-weight construction and free floating temperature" extends Modelica.Icons.Example; Buildings.ThermalZones.ISO13790.Zone5R1C.ZoneHVAC zonHVAC( airRat=0.414, AWin={0,0,12,0}, UWin=3.1, AWal={21.6,16.2,9.6,16.2}, ARoo=48, UWal=0.534, URoo=0.327, UFlo=0.0377, b=1, AFlo=48, VRoo=129.6, hInt=2.1, redeclare replaceable Buildings.ThermalZones.ISO13790.Validation.BESTEST.Data.Case600Mass buiMas, nOrientations=4, surTil={1.5707963267949,1.5707963267949,1.5707963267949,1.5707963267949}, surAzi={3.1415926535898,-1.5707963267949,0,1.5707963267949}, gFac=0.789, coeFac={1,-0.189,0.644,-0.596}, redeclare package Medium = Buildings.Media.Air) "Thermal zone"; Buildings.BoundaryConditions.WeatherData.ReaderTMY3 weaDat( filNam=Modelica.Utilities.Files.loadResource("modelica://Buildings/Resources/weatherdata/USA_CO_Denver.Intl.AP.725650_TMY3.mos")) "Weather data"; Modelica.Blocks.Sources.Constant intGai(k=200) "Internal heat gains"; Buildings.Controls.OBC.CDL.Reals.MovingAverage TRooHou(delta=3600) "Continuous mean of room air temperature"; Buildings.Controls.OBC.CDL.Reals.MovingAverage TRooAnn(delta=86400*365) "Continuous mean of room air temperature"; Modelica.Blocks.Sources.Constant latGai(k=0) "Internal heat gains"; equation connect(weaDat.weaBus,zonHVAC. weaBus); connect(intGai.y,zonHVAC. intSenGai); connect(zonHVAC.TAir, TRooHou.u); connect(TRooAnn.u,zonHVAC. TAir); connect(latGai.y, zonHVAC.intLatGai); end Case600FF;

Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case610 Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case610

Case 600 with south shading

Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case610

Information

This model is the case 610 of the BESTEST validation suite. Case 610 differs from case 600 in that the south-oriented window has an overhang of 1 meter.

Implementation

The shading reduction factor was set to 0.84. This value was calculated based on Table G.6 of the ISO13790 standard.

Extends from Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600 (Case 600FF, but with dual-setpoint for heating and cooling).

Modelica definition

model Case610 "Case 600 with south shading" extends Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600(zonHVAC( shaRedFac=0.84)); end Case610;

Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case620 Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case620

Case 600, but with windows on east and west side walls

Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case620

Information

This model is the case 620 of the BESTEST validation suite. Case 620 differs from case 600 in that the west and east facing walls have a window, but there is no window in the south facing wall.

Extends from Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600 (Case 600FF, but with dual-setpoint for heating and cooling).

Modelica definition

model Case620 "Case 600, but with windows on east and west side walls" extends Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600(zonHVAC(AWin= {0,6,0,6})); end Case620;

Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case630 Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case630

Case 620, but with added overhang and sidefins

Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case630

Information

This model is the case 630 of the BESTEST validation suite. Case 630 differs from case 620 in that windows on the west and east walls have an overhang and side fins.

Implementation

The shading reduction factor was set to 0.846 for overhang and 0.915 for side fins. These values were calculated based on Table G.6 and Table G.7 of the ISO13790 standard.

Extends from Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600 (Case 600FF, but with dual-setpoint for heating and cooling).

Modelica definition

model Case630 "Case 620, but with added overhang and sidefins" extends Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600(zonHVAC(AWin= {0,6,0,6}, shaRedFac=0.846*0.915)); end Case630;

Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case640 Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case640

Case 600, but with heating schedule

Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case640

Information

This model is used for the basic test case 640 of the BESTEST validation suite. Case640 is the same as Case600, but with the following modifications:

Extends from Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600 (Case 600FF, but with dual-setpoint for heating and cooling).

Modelica definition

model Case640 "Case 600, but with heating schedule" extends Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600(TSetHea( table=[0,273.15 + 10; 7*3600,273.15 + 10; 8*3600,273.15 + 20; 23*3600, 273.15 + 20; 23*3600,273.15 + 10; 24*3600,273.15 + 10], extrapolation=Modelica.Blocks.Types.Extrapolation.Periodic)); end Case640;

Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case650 Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case650


Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case650

Information

This model is used for the test case 650 of the BESTEST validation suite. Case650 is the same as Case600, but with the following modifications:

Extends from Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600 (Case 600FF, but with dual-setpoint for heating and cooling).

Modelica definition

model Case650 extends Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600(zonHVAC( nPorts=3), gaiHea(k=0), TSetHea(table=[0, 273.15 -200]), TSetCoo(table=[0, 273.15+100; 7*3600, 273.15+100; 7*3600, 273.15+27; 18*3600, 273.15+27; 18*3600, 273.15+100; 24*3600, 273.15+100], extrapolation=Modelica.Blocks.Types.Extrapolation.Periodic)); Buildings.Fluid.Sensors.Density senDen(redeclare package Medium = Buildings.Media.Air, warnAboutOnePortConnection=false); Modelica.Blocks.Math.Product product1 "Product to compute infiltration mass flow rate"; Modelica.Blocks.Sources.CombiTimeTable vent(table=[0,-1409/3600; 7*3600,-1409/3600; 7*3600,0; 18*3600,0; 18*3600,-1409/3600; 24*3600,-1409/3600], extrapolation= Modelica.Blocks.Types.Extrapolation.Periodic) "Ventilation air flow rate"; Buildings.Fluid.Sources.MassFlowSource_T sinInf( redeclare package Medium = Buildings.Media.Air, use_m_flow_in=true, nPorts=1) "Sink model for air infiltration"; Buildings.Fluid.Sources.Outside out(redeclare package Medium = Buildings.Media.Air, nPorts=1); equation connect(senDen.d,product1. u1); connect(product1.y,sinInf. m_flow_in); connect(out.weaBus, zonHVAC.weaBus); connect(vent.y[1], product1.u2); connect(zonHVAC.ports[1], senDen.port); connect(zonHVAC.ports[2], out.ports[1]); connect(sinInf.ports[1], zonHVAC.ports[3]); end Case650;

Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case650FF Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case650FF


Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case650FF

Information

This model is used for the test case 650FF of the BESTEST validation suite. Case 650FF is identical to case 650, except that there is no heating and no cooling.

Extends from Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600FF (Basic test with light-weight construction and free floating temperature).

Modelica definition

model Case650FF extends Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600FF( zonHVAC(nPorts=3)); Buildings.Fluid.Sensors.Density senDen(redeclare package Medium = Buildings.Media.Air, warnAboutOnePortConnection=false); Modelica.Blocks.Math.Product product1 "Product to compute infiltration mass flow rate"; Modelica.Blocks.Sources.CombiTimeTable vent(table=[0,-1409/3600; 7*3600,-1409/3600; 7*3600,0; 18*3600,0; 18*3600,-1409/3600; 24*3600,-1409/3600], extrapolation= Modelica.Blocks.Types.Extrapolation.Periodic) "Ventilation air flow rate"; Buildings.Fluid.Sources.MassFlowSource_T sinInf( redeclare package Medium = Buildings.Media.Air, use_m_flow_in=true, nPorts=1) "Sink model for air infiltration"; Buildings.Fluid.Sources.Outside out(redeclare package Medium = Buildings.Media.Air, nPorts=1); equation connect(senDen.d,product1. u1); connect(vent.y[1],product1. u2); connect(product1.y,sinInf. m_flow_in); connect(sinInf.ports[1], zonHVAC.ports[1]); connect(senDen.port, zonHVAC.ports[2]); connect(out.weaBus, zonHVAC.weaBus); connect(out.ports[1], zonHVAC.ports[3]); end Case650FF;

Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case660 Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case660

Case 600, but with low-emissivity windows with Argon gas

Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case660

Information

This model is the case 660 of the BESTEST validation suite. Case 660 differs from case 600 in that it has low-emissivity windows with Argon gas.

Extends from Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600 (Case 600FF, but with dual-setpoint for heating and cooling).

Modelica definition

model Case660 "Case 600, but with low-emissivity windows with Argon gas" extends Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600(zonHVAC( UWin=1.45, gFac=0.44, coeFac={1,-0.152,0.51,-0.526})); end Case660;

Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case670 Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case670

Case 600, but has single pane window with clear glass

Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case670

Information

This model is the case 670 of the BESTEST validation suite. Case 670 differs from case 600 in that it has single pane window with clear glass.

Extends from Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600 (Case 600FF, but with dual-setpoint for heating and cooling).

Modelica definition

model Case670 "Case 600, but has single pane window with clear glass" extends Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600(zonHVAC( UWin=7.8, gFac=0.864, coeFac={0.998,0.137,-0.745,1.21,-0.668})); end Case670;

Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case680 Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case680

Case 600, but with increased exterior wall and roof insulation

Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case680

Information

This model is the case 680 of the BESTEST validation suite. Case 680 differs from case 600 in that it has increased exterior wall and roof insulation.

Extends from Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600 (Case 600FF, but with dual-setpoint for heating and cooling).

Modelica definition

model Case680 "Case 600, but with increased exterior wall and roof insulation" extends Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600(zonHVAC(UWal= 0.15, URoo=0.1)); end Case680;

Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case680FF Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case680FF


Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case680FF

Information

This model is used for the test case 680FF of the BESTEST validation suite. Case 680FF is a light-weight building with increased exterior wall and roof insulation. The room temperature is free floating.

Extends from Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600FF (Basic test with light-weight construction and free floating temperature).

Modelica definition

model Case680FF extends Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600FF(zonHVAC( UWal=0.15, URoo=0.1)); end Case680FF;

Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case685 Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case685


Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case685

Information

This model is the case 685 of the BESTEST validation suite. Case 685 differs from case 600 in that it has single heating and cooling setpoint.

Extends from Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600 (Case 600FF, but with dual-setpoint for heating and cooling).

Modelica definition

model Case685 extends Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600(TSetCoo( table=[0.0,273.15 + 20.1]), TSetHea(table=[0.0,273.15 + 19.9])); end Case685;

Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case695 Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case695


Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case695

Information

This model is the case 695 of the BESTEST validation suite. Case 695 differs from case 600 in that it has increased exterior wall and roof insulation and it has single heating and cooling setpoint.

Extends from Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600 (Case 600FF, but with dual-setpoint for heating and cooling).

Modelica definition

model Case695 extends Buildings.ThermalZones.ISO13790.Validation.BESTEST.Cases6xx.Case600( zonHVAC(UWal=0.15, URoo=0.1), TSetHea(table=[0.0,273.15 + 19.9]), TSetCoo(table=[0.0,273.15 + 20.1])); end Case695;