Buildings.ThermalZones.ISO13790.Validation.BESTEST

Package with models for the BESTEST validation

Information

This package contains the models that were used for the BESTEST validation (ANSI/ASHRAE 2007).

References

Maccarini A, Prataviera E, Zarrella A, Afshari A. 2021. Development of a Modelica-based simplified building model for district energy simulations . In: Journal of Physics: Conference Series. 2042, 1, 012078.

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

Package Content

Name Description
Buildings.ThermalZones.ISO13790.Validation.BESTEST.Case600 Case600 Case 600FF, but with dual-setpoint for heating and cooling
Buildings.ThermalZones.ISO13790.Validation.BESTEST.Case600FF Case600FF Basic test with light-weight construction and free floating temperature
Buildings.ThermalZones.ISO13790.Validation.BESTEST.Case900 Case900  
Buildings.ThermalZones.ISO13790.Validation.BESTEST.Case900FF Case900FF Test with heavy-weight construction and free floating temperature
Buildings.ThermalZones.ISO13790.Validation.BESTEST.Data Data Data records for BESTEST validation

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

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

Buildings.ThermalZones.ISO13790.Validation.BESTEST.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.Constant TSetHea(k=273.15 + 20) "Set-point for heating"; Modelica.Blocks.Sources.Constant TSetCoo(k=273.15 + 27) "Set-point for cooling"; 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( k=1, initType=Modelica.Blocks.Types.Init.InitialState, y_start=0, u(unit="W"), y(unit="J")) "Cooling energy in Joules"; Modelica.Blocks.Continuous.Integrator EHea( k=1, initType=Modelica.Blocks.Types.Init.InitialState, y_start=0, u(unit="W"), y(unit="J")) "Heating energy in Joules"; Modelica.Blocks.Sources.CombiTimeTable daiComBESTEST(table=[0,0,0,0,0,0,0,0; 259200,0,0,0,0,0,0,0; 262800,3250,3800,3930,4130,3930,3770,4230; 266400, 3410,3910,4040,4260,4040,3870,4350; 270000,3390,3870,4010,4230,4000, 3900,4320; 273600,3380,3920,4040,4220,4000,3890,4310; 277200,3420,3940, 4050,4220,4000,3920,4300; 280800,3430,3930,4040,4220,4000,3930,4310; 284400,3420,3940,4050,4220,4000,3930,4310; 288000,3340,3700,3860,4090, 3900,3750,4170; 291600,2770,2680,2560,2900,2710,2420,2910; 295200,1500, 1380,840,1280,1150,800,1470; 298800,150,0,0,0,0,-30,0; 302400,-770,-1230, -1550,-1070,-1040,-1440,-420; 306000,-2660,-2490,-2850,-2590,-2500,-2720, -2360; 309600,-3580,-2960,-3400,-3230,-3090,-3160,-2760; 313200,-3530,-2630, -3120,-2830,-2640,-2840,-2430; 316800,-2440,-1350,-1820,-1550,-1350,-1720, -1140; 320400,-360,0,0,0,0,0,0; 324000,240,950,780,800,880,770,1290; 327600,1530,2380,2230,2340,2330,2300,2450; 331200,2320,2870,2930,2990, 2950,2970,2940; 334800,2640,3210,3320,3370,3310,3280,3410; 338400,2900, 3280,3490,3530,3350,3460,3590; 342000,3020,3330,3510,3610,3490,3500, 3700; 345600,3010,3390,3560,3660,3530,3470,3770; 345600,0,0,0,0,0,0,0; 3153600,0,0,0,0,0,0,0]) "Daily comparison BESTEST"; Zone5R1C.Zone zon5R1C( airRat=0.5, AWin={0,0,12,0}, UWin=2.984, AWal={21.6,16.2,9.6,16.2}, ARoo=48, UWal=0.56, URoo=0.33, UFlo=1, b=0, AFlo=48, VRoo=129.6, hInt=2.74, 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); Modelica.Blocks.Sources.Constant intGai(k=200) "Internal heat gains"; BoundaryConditions.WeatherData.ReaderTMY3 weaDat(filNam= Modelica.Utilities.Files.loadResource( "modelica://Buildings/Resources/weatherdata/DRYCOLD.mos")) "Weather data"; Buildings.ThermalZones.ISO13790.Validation.BESTEST.Data.Case600Results annComBESTEST "Annual comparison BESTEST "; equation connect(sumHeaCoo.y,preHeaCoo. Q_flow); connect(conHeaPID.y,gaiHea. u); connect(TSetHea.y,conHeaPID. u_s); connect(multiplex2.y,sumHeaCoo. u); connect(conCooPID.u_s,TSetCoo. y); connect(conCooPID.y,gaiCoo. u); connect(gaiHea.y,multiplex2. u1[1]); connect(gaiCoo.y,multiplex2. u2[1]); connect(gaiCoo.u,conCooPID. y); connect(EHea.u, gaiHea.y); connect(ECoo.u, gaiCoo.y); connect(preHeaCoo.port, zon5R1C.heaPorAir); connect(intGai.y, zon5R1C.intSenGai); connect(weaDat.weaBus, zon5R1C.weaBus); connect(zon5R1C.TAir, conCooPID.u_m); connect(zon5R1C.TAir, conHeaPID.u_m); end Case600;

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

Basic test with light-weight construction and free floating temperature

Buildings.ThermalZones.ISO13790.Validation.BESTEST.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; Zone5R1C.Zone zon5R1C( airRat=0.5, AWin={0,0,12,0}, UWin=2.984, AWal={21.6,16.2,9.6,16.2}, ARoo=48, UWal=0.56, URoo=0.33, UFlo=1, b=0, AFlo=48, VRoo=129.6, hInt=2.74, 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) "Thermal zone"; Buildings.BoundaryConditions.WeatherData.ReaderTMY3 weaDat( filNam=Modelica.Utilities.Files.loadResource("modelica://Buildings/Resources/weatherdata/DRYCOLD.mos")) "Weather data"; Modelica.Blocks.Sources.Constant intGai(k=200) "Internal heat gains"; Modelica.Blocks.Math.ContinuousMean conMea "Continuous mean of room air temperature"; Modelica.Blocks.Sources.CombiTimeTable daiComBESTESTFF(table=[0,0,0,0,0,0,0,0; 259200,0,0,0,0,0,0,0; 262800,-8.88,-12.04,-12.3,-12.21,-12.1,-12.02,-13.04; 266400,-10.48,-13.52,-14.1,-13.8,-13.7,-13.5,-14.59; 270000,-11.76,-14.4, -15.4,-14.9,-14.7,-14.7,-15.65; 273600,-12.75,-15.26,-16.3,-15.79,-15.6, -15.65,-16.46; 277200,-13.69,-16,-17.1,-16.55,-16.4,-16.47,-17.16; 280800,-14.49,-16.4,-17.9,-17.2,-17,-17.14,-17.79; 284400,-15.15,-17.01, -18.5,-17.74,-17.6,-17.7,-18.32; 288000,-15.63,-17.05,-18.8,-17.85,-17.8, -17.59,-18.47; 291600,-14.63,-13.74,-14.7,-14.88,-14.6,-13.46,-15.47; 295200,-10.03,-7.99,-7.8,-9.07,-8.9,-7.1,-9.56; 298800,-2.2,2.6,3.2, 1.01,1,3.66,0.49; 302400,8.84,12.22,13.4,11.21,10.7,13.49,10.39; 306000, 18.96,20.86,22.3,20.03,19.2,21.77,18.75; 309600,27.19,27.53,29.5,27.27, 26.1,28.26,25.48; 313200,33.22,31.33,33.8,31.34,29.8,32.09,29.21; 316800,35.51,31.06,33.5,31.47,29.7,32.16,28.97; 320400,31.46,24.28,27, 25.96,23.9,25.71,22.58; 324000,23.99,17.46,19.7,18.96,17.6,18.84,15.59; 327600,18.08,12.05,13.7,13.04,12.2,13.1,10.2; 331200,13.02,7.57,8.7, 8.31,7.8,8.41,6.02; 334800,8.87,3.6,4.4,4.27,4,4.39,2.39; 338400,5.12, 0.52,1,0.99,0.9,0.97,-0.59; 342000,2.03,-1.94,-1.9,-1.66,-1.7,-1.78,-3.04; 345600,-1.03,-4.07,-4.4,-3.92,-3.9,-4.03,-5.14; 345600,0,0,0,0,0,0,0; 3153600,0,0,0,0,0,0,0]) "Daily comparison BESTEST FF"; Buildings.ThermalZones.ISO13790.Validation.BESTEST.Data.Case600FFResults annComBESTESTFF "Annual comparison BESTEST FF"; equation connect(weaDat.weaBus, zon5R1C.weaBus); connect(intGai.y, zon5R1C.intSenGai); connect(zon5R1C.TAir, conMea.u); end Case600FF;

Buildings.ThermalZones.ISO13790.Validation.BESTEST.Case900 Buildings.ThermalZones.ISO13790.Validation.BESTEST.Case900


Buildings.ThermalZones.ISO13790.Validation.BESTEST.Case900

Information

This model is used for the basic test case 900 of the BESTEST validation suite. Case 900 is a heavy-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 Buildings.ThermalZones.ISO13790.Validation.BESTEST.Case600 (Case 600FF, but with dual-setpoint for heating and cooling).

Modelica definition

model Case900 extends Buildings.ThermalZones.ISO13790.Validation.BESTEST.Case600( zon5R1C(hInt=2.74, redeclare replaceable Buildings.ThermalZones.ISO13790.Validation.BESTEST.Data.Case900Mass buiMas), annComBESTEST( EHeaMax=7347600000, EHeaMin=4212000000, ECooMax=-11394000000, ECooMin=-7686000000, PHeaMax=3797, PHeaMin=2850, PCooMax=-3871, PCooMin=-2888), daiComBESTEST(table=[0,0,0,0,0,0,0,0; 259200,0,0,0,0,0,0,0; 262800,2440,3100, 3100,3390,3210,3080,3400; 266400,2610,3200,3240,3540,3350,3200,3550; 270000, 2620,3200,3280,3560,3380,3280,3570; 273600,2670,3310,3380,3610,3450,3330, 3630; 277200,2740,3370,3450,3670,3510,3420,3690; 280800,2800,3400,3500, 3720,3560,3470,3750; 284400,2830,3450,3560,3760,3610,3520,3800; 288000, 2840,3380,3520,3750,3610,3460,3790; 291600,2640,2900,2970,3170,3080,2830, 3170; 295200,2120,2350,2200,2320,2350,2060,2450; 298800,1500,1400,1030, 950,1120,790,1290; 302400,680,380,230,100,300,40,620; 306000,70,0,0,0, 0,0,140; 309600,0,0,0,0,0,0,0; 313200,0,0,0,0,0,0,0; 316800,0,0,0,0,0, 0,90; 320400,30,120,0,280,140,130,1200; 324000,410,770,740,1220,910,760, 1600; 327600,800,1310,1140,1610,1280,1200,1810; 331200,1070,1610,1430, 1820,1540,1460,1940; 334800,1270,1930,1700,2040,1810,1700,2120; 338400, 1500,2140,1890,2170,2000,1930,2230; 342000,1660,2220,2030,2290,2150,2090, 2340; 345600,1750,2310,2190,2420,2310,2230,2460; 345600,0,0,0,0,0,0,0; 3153600,0,0,0,0,0,0,0])); end Case900;

Buildings.ThermalZones.ISO13790.Validation.BESTEST.Case900FF Buildings.ThermalZones.ISO13790.Validation.BESTEST.Case900FF

Test with heavy-weight construction and free floating temperature

Buildings.ThermalZones.ISO13790.Validation.BESTEST.Case900FF

Information

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

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

Modelica definition

model Case900FF "Test with heavy-weight construction and free floating temperature" extends Buildings.ThermalZones.ISO13790.Validation.BESTEST.Case600FF( zon5R1C( redeclare replaceable Buildings.ThermalZones.ISO13790.Validation.BESTEST.Data.Case900Mass buiMas), daiComBESTESTFF(table=[0,0,0,0,0,0,0,0; 259200,0,0,0,0,0,0,0; 262800,1.61,-0.17, -0.9,-1.31,-0.7,-3.46,-2.68; 266400,0.93,-0.79,-1.6,-1.97,-1.4,-3.99,-3.33; 270000,0.49,-1.09,-2,-2.37,-1.8,-4.4,-3.72; 273600,0.07,-1.67,-2.5,-2.81, -2.3,-4.8,-4.1; 277200,-0.41,-2.04,-2.9,-3.25,-2.7,-5.22,-4.51; 280800, -0.87,-2.43,-3.4,-3.68,-3.2,-5.6,-4.93; 284400,-1.27,-2.97,-3.9,-4.1,-3.6, -5.98,-5.34; 288000,-1.64,-3.15,-4.3,-4.4,-4,-6.08,-5.64; 291600,-1.54, -2.39,-3.3,-3.45,-3.2,-4.72,-4.59; 295200,-0.4,-1.09,-1.6,-1.6,-1.7,-2.98, -2.64; 298800,1.59,1.6,1.2,1.66,0.9,0.25,0.75; 302400,4.4,3.62,3.5,4.4, 3.1,2.54,3.26; 306000,6.72,5.62,5.5,6.56,5.1,4.38,4.99; 309600,8.66,7.32, 7.2,8.39,6.8,5.85,6.51; 313200,10.02,8.27,8,9.04,7.6,6.61,7.11; 316800, 10.4,8.15,7.9,8.58,7.4,6.33,6.68; 320400,9.41,6.53,6.2,6.44,5.8,4.2,4.24; 324000,7.66,5.25,4.7,4.43,4.4,2.87,2.45; 327600,6.74,4.52,3.8,3.37,3.6, 2.11,1.71; 331200,6,3.88,3.2,2.73,3,1.58,1.32; 334800,5.41,3.22,2.7,2.11, 2.4,1.05,0.82; 338400,4.74,2.85,2.2,1.66,1.9,0.55,0.42; 342000,4.2,2.47, 1.7,1.26,1.5,0.15,0.05; 345600,3.66,1.9,1.2,0.83,1,-0.24,-0.34; 345600, 0,0,0,0,0,0,0; 3153600,0,0,0,0,0,0,0]), annComBESTESTFF(TavgMin=297.65)); end Case900FF;