A reference model to compare to the floor model for a scalable air flow benchmark.
model TwoFloors
extends Modelica.Icons.Example;
replaceable package Medium =
Annex60.Media.Air ;
parameter Boolean forceErrorControlOnFlow = true
;
Components.ZoneHallway zoneHallway(
forceErrorControlOnFlow=forceErrorControlOnFlow,
redeclare package Medium =
Medium) ;
Components.SimpleZone simpleZone1_4(
forceErrorControlOnFlow=forceErrorControlOnFlow,
TRoom = 298.15,
redeclare package Medium =
Medium) ;
Components.OutsideEnvironment outsideEnvironment(
redeclare package Medium =
Medium) ;
Components.ZoneHallway zoneHallway1(
forceErrorControlOnFlow=forceErrorControlOnFlow,
redeclare package Medium =
Medium) ;
Components.ZoneHallway zoneHallway2(
forceErrorControlOnFlow=forceErrorControlOnFlow,
redeclare package Medium =
Medium) ;
Components.ZoneHallway zoneHallway3(
forceErrorControlOnFlow=forceErrorControlOnFlow,
redeclare package Medium =
Medium) ;
Components.SimpleZone simpleZone1_3(
forceErrorControlOnFlow=forceErrorControlOnFlow,
TRoom = 298.15,
redeclare package Medium =
Medium) ;
Components.SimpleZone simpleZone1_2(
forceErrorControlOnFlow=forceErrorControlOnFlow,
TRoom = 298.15,
redeclare package Medium =
Medium) ;
Components.SimpleZone simpleZone1_1(
forceErrorControlOnFlow=forceErrorControlOnFlow,
TRoom = 298.15,
redeclare package Medium =
Medium) ;
Components.OutsideEnvironment outsideEnvironment1(
redeclare package Medium =
Medium) ;
Components.OutsideEnvironment outsideEnvironment2(
redeclare package Medium =
Medium) ;
Components.OutsideEnvironment outsideEnvironment3(
redeclare package Medium =
Medium) ;
Components.ZoneHallway zoneHallway4(
forceErrorControlOnFlow=forceErrorControlOnFlow,
redeclare package Medium =
Medium) ;
Components.SimpleZone simpleZone2_4(
forceErrorControlOnFlow=forceErrorControlOnFlow,
TRoom = 298.15,
redeclare package Medium =
Medium) ;
Components.OutsideEnvironment outsideEnvironment4(
redeclare package Medium =
Medium) ;
Components.ZoneHallway zoneHallway5(
forceErrorControlOnFlow=forceErrorControlOnFlow,
redeclare package Medium =
Medium) ;
Components.ZoneHallway zoneHallway6(
forceErrorControlOnFlow=forceErrorControlOnFlow,
redeclare package Medium =
Medium) ;
Components.ZoneHallway zoneHallway7(
forceErrorControlOnFlow=forceErrorControlOnFlow,
redeclare package Medium =
Medium) ;
Components.SimpleZone simpleZone2_3(
forceErrorControlOnFlow=forceErrorControlOnFlow,
TRoom = 298.15,
redeclare package Medium =
Medium) ;
Components.SimpleZone simpleZone2_2(
forceErrorControlOnFlow=forceErrorControlOnFlow,
TRoom = 298.15,
redeclare package Medium =
Medium) ;
Components.SimpleZone simpleZone2_1(
forceErrorControlOnFlow=forceErrorControlOnFlow,
TRoom = 298.15,
redeclare package Medium =
Medium) ;
Components.OutsideEnvironment outsideEnvironment5(
redeclare package Medium =
Medium) ;
Components.OutsideEnvironment outsideEnvironment6(
redeclare package Medium =
Medium) ;
Components.OutsideEnvironment outsideEnvironment7(
redeclare package Medium =
Medium) ;
Components.Staircase staircase1(
redeclare package Medium =
Medium)
;
Components.Staircase staircase2(
redeclare package Medium =
Medium)
;
BoundaryConditions.WeatherData.ReaderTMY3 weaDat(filNam=
"modelica://Annex60/Resources/weatherdata/USA_CA_San.Francisco.Intl.AP.724940_TMY3.mos")
;
equation
connect(simpleZone2_4.port_a, zoneHallway4.port_a_toZone);
connect(simpleZone2_4.port_b, zoneHallway4.port_b_toZone);
connect(zoneHallway4.port_a2, zoneHallway5.port_a1);
connect(zoneHallway4.port_b2, zoneHallway5.port_b1);
connect(zoneHallway4.port_a_toOutside, outsideEnvironment4.port_a);
connect(zoneHallway4.port_b_toOutside, outsideEnvironment4.port_b);
connect(zoneHallway5.port_b_toOutside, outsideEnvironment5.port_b);
connect(zoneHallway5.port_a_toOutside, outsideEnvironment5.port_a);
connect(simpleZone2_3.port_b, zoneHallway5.port_b_toZone);
connect(simpleZone2_3.port_a, zoneHallway5.port_a_toZone);
connect(zoneHallway5.port_a2, zoneHallway6.port_a1);
connect(zoneHallway5.port_b2, zoneHallway6.port_b1);
connect(simpleZone2_2.port_b, zoneHallway6.port_b_toZone);
connect(simpleZone2_2.port_a, zoneHallway6.port_a_toZone);
connect(zoneHallway6.port_a2, zoneHallway7.port_a1);
connect(zoneHallway6.port_b2, zoneHallway7.port_b1);
connect(zoneHallway6.port_a_toOutside, outsideEnvironment6.port_a);
connect(zoneHallway6.port_b_toOutside, outsideEnvironment6.port_b);
connect(zoneHallway7.port_b_toOutside, outsideEnvironment7.port_b);
connect(zoneHallway7.port_a_toOutside, outsideEnvironment7.port_a);
connect(simpleZone2_1.port_b, zoneHallway7.port_b_toZone);
connect(simpleZone2_1.port_a, zoneHallway7.port_a_toZone);
connect(zoneHallway7.port_a2,staircase2. port_a_toHallway);
connect(zoneHallway7.port_b2,staircase2. port_b_toHallway);
connect(staircase2.port_a_bot, staircase1.port_a_top);
connect(staircase1.port_a_toHallway, zoneHallway3.port_a2);
connect(staircase1.port_b_toHallway, zoneHallway3.port_b2);
connect(simpleZone1_1.port_a, zoneHallway3.port_a_toZone);
connect(simpleZone1_1.port_b, zoneHallway3.port_b_toZone);
connect(zoneHallway3.port_a_toOutside, outsideEnvironment3.port_a);
connect(zoneHallway3.port_b_toOutside, outsideEnvironment3.port_b);
connect(zoneHallway3.port_a1, zoneHallway2.port_a2);
connect(zoneHallway3.port_b1, zoneHallway2.port_b2);
connect(zoneHallway2.port_a_toOutside, outsideEnvironment2.port_a);
connect(zoneHallway2.port_b_toOutside, outsideEnvironment2.port_b);
connect(zoneHallway2.port_a1, zoneHallway1.port_a2);
connect(zoneHallway2.port_b1, zoneHallway1.port_b2);
connect(simpleZone1_3.port_a, zoneHallway1.port_a_toZone);
connect(simpleZone1_3.port_b, zoneHallway1.port_b_toZone);
connect(zoneHallway1.port_a_toOutside, outsideEnvironment1.port_a);
connect(zoneHallway1.port_b_toOutside, outsideEnvironment1.port_b);
connect(zoneHallway1.port_a1, zoneHallway.port_a2);
connect(zoneHallway1.port_b1, zoneHallway.port_b2);
connect(simpleZone1_4.port_a, zoneHallway.port_a_toZone);
connect(simpleZone1_4.port_b, zoneHallway.port_b_toZone);
connect(zoneHallway.port_a_toOutside, outsideEnvironment.port_a);
connect(zoneHallway.port_b_toOutside, outsideEnvironment.port_b);
connect(simpleZone1_2.port_b, zoneHallway2.port_b_toZone);
connect(simpleZone1_2.port_a, zoneHallway2.port_a_toZone);
connect(weaDat.weaBus, outsideEnvironment7.weaBus1);
connect(weaDat.weaBus, outsideEnvironment6.weaBus1);
connect(weaDat.weaBus, outsideEnvironment5.weaBus1);
connect(weaDat.weaBus, outsideEnvironment4.weaBus1);
connect(weaDat.weaBus, outsideEnvironment3.weaBus1);
connect(weaDat.weaBus, outsideEnvironment2.weaBus1);
connect(weaDat.weaBus, outsideEnvironment1.weaBus1);
connect(weaDat.weaBus, outsideEnvironment.weaBus1);
connect(weaDat.weaBus, simpleZone1_1.weaBus);
connect(weaDat.weaBus, simpleZone1_2.weaBus);
connect(weaDat.weaBus, simpleZone1_3.weaBus);
connect(weaDat.weaBus, simpleZone1_4.weaBus);
connect(weaDat.weaBus, staircase1.weaBus);
connect(weaDat.weaBus, zoneHallway3.weaBus);
connect(weaDat.weaBus, zoneHallway2.weaBus);
connect(weaDat.weaBus, zoneHallway1.weaBus);
connect(weaDat.weaBus, zoneHallway.weaBus);
connect(weaDat.weaBus, simpleZone2_1.weaBus);
connect(weaDat.weaBus, simpleZone2_2.weaBus);
connect(weaDat.weaBus, simpleZone2_3.weaBus);
connect(weaDat.weaBus, simpleZone2_4.weaBus);
connect(weaDat.weaBus, staircase2.weaBus);
connect(weaDat.weaBus, zoneHallway7.weaBus);
connect(weaDat.weaBus, zoneHallway6.weaBus);
connect(weaDat.weaBus, zoneHallway5.weaBus);
connect(weaDat.weaBus, zoneHallway4.weaBus);
end TwoFloors;
This example tests the step response of the SimpleZone model for the airflow benchmark. It uses
the weather file STEP_TMY.mos
, that implements a 5 Kelvin step at t=400 000
seconds. In the Buildings library, the room model of BESTEST 600 FF needs around 4-5 hours in
order to reach 2/3 of the maximum step response to this weather file. This time constant is
approximated with a value of mSenFac = 75
for the mixing volume of the zone.