Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone

Collection of validation models for EnergyPlus thermal zones

Information

This package contains validation models for EnergyPlus thermal zones.

Extends from Modelica.Icons.Package (Icon for standard packages).

Package Content

Name Description
Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.Infiltration Infiltration Validation model for outside air infiltration in zones not modeled in Modelica
Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.InternalGain InternalGain Validation model for one zone with and without internal heat gain
Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.OneZoneCompareZoneTemperatureOutput OneZoneCompareZoneTemperatureOutput This example tests whether the zone mean air temperature is reported correctly as an EnergyPlus output
Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.OneZoneOneYear OneZoneOneYear Validation model for one zone
Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.RefBldgSmallOffice RefBldgSmallOffice Validation model for six zones small office building
Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.TwoIdenticalZones TwoIdenticalZones Validation model with two identical zones
Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.ZoneTemperatureInitialization ZoneTemperatureInitialization This example tests whether the zone mean air temperature is initialized correctly in EnergyPlus

Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.Infiltration Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.Infiltration

Validation model for outside air infiltration in zones not modeled in Modelica

Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.Infiltration

Information

This validation case simulates two instances of Buildings.ThermalZones.EnergyPlus.Examples.SingleFamilyHouse.RadiantHeatingCooling. In the instance higInf, the infiltration rate of the unconditioned attic has been significantly increased. This leads to a different surface temperature of the attic floor, which can be shown by comparing the variables defInf.attFlo.heaPorFro.T and higInf.attFlo.heaPorFro.T.

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

Modelica definition

model Infiltration "Validation model for outside air infiltration in zones not modeled in Modelica" extends Modelica.Icons.Example; package Medium=Buildings.Media.Air "Medium model"; Buildings.ThermalZones.EnergyPlus.Examples.SingleFamilyHouse.RadiantHeatingCooling defInf( building( idfName = Modelica.Utilities.Files.loadResource( "modelica://Buildings/Resources/Data/ThermalZones/EnergyPlus/Examples/SingleFamilyHouse_TwoSpeed_ZoneAirBalance/SingleFamilyHouse_TwoSpeed_ZoneAirBalance_aboveSoil.idf"))) "Model with default infiltration in attic"; Buildings.ThermalZones.EnergyPlus.Examples.SingleFamilyHouse.RadiantHeatingCooling higInf( building( idfName = Modelica.Utilities.Files.loadResource( "modelica://Buildings/Resources/Data/ThermalZones/EnergyPlus/Examples/SingleFamilyHouse_TwoSpeed_ZoneAirBalance/SingleFamilyHouse_TwoSpeed_ZoneAirBalance_aboveSoilHighInfiltration.idf"))) "Model with high infiltration in attic"; end Infiltration;

Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.InternalGain Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.InternalGain

Validation model for one zone with and without internal heat gain

Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.InternalGain

Information

Simple test case for one building with one thermal zone with different inputs for the internal heat gains.

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

Modelica definition

model InternalGain "Validation model for one zone with and without internal heat gain" extends Modelica.Icons.Example; package Medium=Buildings.Media.Air "Medium model"; OneZoneWithGainExposed noGai( qRad_flow=0, qSen_flow=0, qLat_flow=0) "Zone with no internal heat gains from Modelica"; OneZoneWithGainExposed radOnl( qRad_flow=5, qSen_flow=0, qLat_flow=0) "Zone with only radiative heat gains from Modelica"; OneZoneWithGainExposed conOnl( qRad_flow=0, qSen_flow=5, qLat_flow=0) "Zone with only convective heat gains from Modelica"; OneZoneWithGainExposed latOnl( qRad_flow=0, qSen_flow=0, qLat_flow=5) "Zone with only latent heat gains from Modelica"; protected model OneZoneWithGainExposed "Internal model for building with one thermal zone" extends Modelica.Blocks.Icons.Block; parameter Modelica.SIunits.HeatFlux qRad_flow "Radiative internal heat gain"; parameter Modelica.SIunits.HeatFlux qSen_flow "Convective sensible internal heat gain"; parameter Modelica.SIunits.HeatFlux qLat_flow "Latent internal heat gain"; Examples.SingleFamilyHouse.Unconditioned bui( m_flow_nominal=bui.VRoo*10*0.3/3600, qIntGai( final k={qRad_flow,qSen_flow,qLat_flow}), bou( m_flow=bui.zon.V*1.2*10/3600)) "Building model"; end OneZoneWithGainExposed; end InternalGain;

Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.OneZoneCompareZoneTemperatureOutput Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.OneZoneCompareZoneTemperatureOutput

This example tests whether the zone mean air temperature is reported correctly as an EnergyPlus output

Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.OneZoneCompareZoneTemperatureOutput

Information

Simple test case that verifies whether the zone mean air temperature is reported correctly by EnergyPlus. Note that Modelica solves the differential equation for this variable, but this test case obtains its value from EnergyPlus.

Extends from Buildings.ThermalZones.EnergyPlus.Examples.SingleFamilyHouse.Unconditioned (Example model with one unconditoned zone simulated in Modelica, and the other two unconditioned zones simulated in EnergyPlus).

Parameters

TypeNameDefaultDescription
VolumeVRoo453.1Room volume [m3]
MassFlowRatem_flow_nominalVRoo*1.2*0.3/3600Nominal mass flow rate [kg/s]

Modelica definition

model OneZoneCompareZoneTemperatureOutput "This example tests whether the zone mean air temperature is reported correctly as an EnergyPlus output" extends Buildings.ThermalZones.EnergyPlus.Examples.SingleFamilyHouse.Unconditioned; Buildings.ThermalZones.EnergyPlus.OutputVariable zonMeaAirTem( name="Zone Mean Air Temperature", key="LIVING ZONE", y(final unit="K", displayUnit="degC")) "Block that reads output from EnergyPlus"; end OneZoneCompareZoneTemperatureOutput;

Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.OneZoneOneYear Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.OneZoneOneYear

Validation model for one zone

Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.OneZoneOneYear

Information

Simple test case that simulates a building with one thermal zone for one year.

Extends from Buildings.ThermalZones.EnergyPlus.Examples.SingleFamilyHouse.Unconditioned (Example model with one unconditoned zone simulated in Modelica, and the other two unconditioned zones simulated in EnergyPlus).

Parameters

TypeNameDefaultDescription
VolumeVRoo453.1Room volume [m3]
MassFlowRatem_flow_nominalVRoo*1.2*0.3/3600Nominal mass flow rate [kg/s]

Modelica definition

model OneZoneOneYear "Validation model for one zone" extends Buildings.ThermalZones.EnergyPlus.Examples.SingleFamilyHouse.Unconditioned; Controls.OBC.CDL.Continuous.MovingMean TAirMea( delta( displayUnit="d")=86400, y(final unit="K", displayUnit="degC")) "Moving mean of air temperature"; equation connect(TAirMea.u,zon.TAir); end OneZoneOneYear;

Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.RefBldgSmallOffice Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.RefBldgSmallOffice

Validation model for six zones small office building

Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.RefBldgSmallOffice

Information

Validation of free floating temperatures. The model uses the small office building of the DOE Reference Buildings. The Modelica model is in free floating mode, and the data reader datRea outputs, for comparison, the free floating room temperatures that were obtained from an EnergyPlus simulation.

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

Modelica definition

model RefBldgSmallOffice "Validation model for six zones small office building" extends Modelica.Icons.Example; package Medium=Buildings.Media.Air "Medium model"; inner Building building( idfName=Modelica.Utilities.Files.loadResource( "modelica://Buildings/Resources/Data/ThermalZones/EnergyPlus/Examples/RefBldgSmallOffice/RefBldgSmallOfficeNew2004_Chicago.idf"), weaName=Modelica.Utilities.Files.loadResource( "modelica://Buildings/Resources/weatherdata/USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.mos")) "Building model"; Modelica.Blocks.Sources.Constant qConGai_flow( k=0) "Convective heat gain"; Modelica.Blocks.Sources.Constant qRadGai_flow( k=0) "Radiative heat gain"; Modelica.Blocks.Routing.Multiplex3 mul "Multiplex for gains"; Modelica.Blocks.Sources.Constant qLatGai_flow( k=0) "Latent heat gain"; Buildings.ThermalZones.EnergyPlus.ThermalZone att( redeclare package Medium=Medium, zoneName="Attic") "Thermal zone"; Buildings.ThermalZones.EnergyPlus.ThermalZone cor( redeclare package Medium=Medium, zoneName="Core_ZN") "Thermal zone"; Buildings.ThermalZones.EnergyPlus.ThermalZone sou( redeclare package Medium=Medium, zoneName="Perimeter_ZN_1") "Thermal zone"; Buildings.ThermalZones.EnergyPlus.ThermalZone eas( redeclare package Medium=Medium, zoneName="Perimeter_ZN_2") "Thermal zone"; Buildings.ThermalZones.EnergyPlus.ThermalZone nor( redeclare package Medium=Medium, zoneName="Perimeter_ZN_3") "Thermal zone"; Buildings.ThermalZones.EnergyPlus.ThermalZone wes( redeclare package Medium=Medium, zoneName="Perimeter_ZN_4") "Thermal zone"; Modelica.Blocks.Sources.CombiTimeTable datRea( tableOnFile=true, fileName=Modelica.Utilities.Files.loadResource( "modelica://Buildings/Resources/Data/ThermalZones/EnergyPlus/Examples/RefBldgSmallOffice/RefBldgSmallOfficeNew2004_Chicago.dat"), smoothness=Modelica.Blocks.Types.Smoothness.ConstantSegments, tableName="EnergyPlus", columns=2:9, extrapolation=Modelica.Blocks.Types.Extrapolation.HoldLastPoint) "Data reader with results from EnergyPlus"; Modelica.SIunits.Temperature TOutEP=datRea.y[1]+273.15 "Outside air temperature of EnergyPlus simulation"; Real relHumEP( unit="1")=datRea.y[2]/100 "Outside air relative humidity of EnergyPlus simulation"; Modelica.SIunits.Temperature TAttEP=datRea.y[3]+273.15 "Attic air temperature of EnergyPlus simulation"; Modelica.SIunits.Temperature TCorEP=datRea.y[4]+273.15 "Core zone air temperature of EnergyPlus simulation"; Modelica.SIunits.Temperature TSouEP=datRea.y[5]+273.15 "South zone air temperature of EnergyPlus simulation"; Modelica.SIunits.Temperature TEasEP=datRea.y[6]+273.15 "East zone air temperature of EnergyPlus simulation"; Modelica.SIunits.Temperature TNorEP=datRea.y[7]+273.15 "North zone air temperature of EnergyPlus simulation"; Modelica.SIunits.Temperature TWesEP=datRea.y[8]+273.15 "West zone air temperature of EnergyPlus simulation"; equation connect(qRadGai_flow.y,mul.u1[1]); connect(qConGai_flow.y,mul.u2[1]); connect(mul.u3[1],qLatGai_flow.y); connect(att.qGai_flow,mul.y); connect(cor.qGai_flow,mul.y); connect(mul.y,sou.qGai_flow); connect(eas.qGai_flow,mul.y); connect(nor.qGai_flow,mul.y); connect(mul.y,wes.qGai_flow); end RefBldgSmallOffice;

Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.TwoIdenticalZones Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.TwoIdenticalZones

Validation model with two identical zones

Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.TwoIdenticalZones

Information

Model with two identical thermal zones that validates that they yield the same indoor air temperatures and humidity, and that these results are close to the values computed by EnergyPlus.

Each zone has a floor area of 900 m2, the same door and two windows on the south side. The internal gains for lighting, people and equipment are identical. The zones are detached and do not shade each other. The zones have an outside air exchange rate of 0.3 air changes per hour.

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

Modelica definition

model TwoIdenticalZones "Validation model with two identical zones" extends Modelica.Icons.Example; inner Building building( idfName=Modelica.Utilities.Files.loadResource( "modelica://Buildings/Resources/Data/ThermalZones/EnergyPlus/Validation/TwoIdenticalZones/TwoIdenticalZones.idf"), weaName=Modelica.Utilities.Files.loadResource( "modelica://Buildings/Resources/weatherdata/USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.mos")) "Building level declarations"; Zone zon1( zoneName="Thermal Zone 1") "Thermal zone 1 (core zone of the office building with 5 zones)"; Zone zon2( zoneName="Thermal Zone 2") "Thermal zone 2 (core zone of the office building with 5 zones)"; // Models for cross validation Modelica.Blocks.Sources.CombiTimeTable datRea( tableOnFile=true, fileName=Modelica.Utilities.Files.loadResource( "modelica://Buildings/Resources/Data/ThermalZones/EnergyPlus/Validation/TwoIdenticalZones/TwoIdenticalZones.dat"), smoothness=Modelica.Blocks.Types.Smoothness.ConstantSegments, tableName="EnergyPlus", columns=2:5, y(each unit="K", each displayUnit="degC"), extrapolation=Modelica.Blocks.Types.Extrapolation.HoldLastPoint) "Data reader with results from EnergyPlus"; Controls.OBC.UnitConversions.From_degC TAirEnePlu "Room air temperature computed by EnergyPlus"; Controls.OBC.CDL.Continuous.Gain relHumEnePlu( k=0.01) "Relative humidity in the room computed by EnergyPlus"; Buildings.ThermalZones.EnergyPlus.OutputVariable inf1( name="Zone Infiltration Current Density Volume Flow Rate", key="Thermal Zone 1"); model Zone "Model of a thermal zone" extends Modelica.Blocks.Icons.Block; package Medium=Buildings.Media.Air "Medium model"; parameter String zoneName="" "Name of the thermal zone"; parameter Modelica.SIunits.MassFlowRate mOut_flow=0.3/3600*zon.V*Buildings.Media.Air.dStp "Outside air mass flow rate with 0.3 ACH"; Modelica.Blocks.Sources.Constant qConGai_flow( k=0) "Convective heat gain"; Modelica.Blocks.Sources.Constant qRadGai_flow( k=0) "Radiative heat gain"; Modelica.Blocks.Routing.Multiplex3 multiplex3_1 "Multiplex to combine signals into a vector"; Buildings.ThermalZones.EnergyPlus.ThermalZone zon( redeclare package Medium=Medium, zoneName=zoneName, nPorts=3) "Thermal zone (core zone of the office building with 5 zones)"; Fluid.FixedResistances.PressureDrop duc( redeclare package Medium=Medium, allowFlowReversal=false, linearized=true, from_dp=false, dp_nominal=100, m_flow_nominal=47*6/3600*1.2) "Duct resistance (to decouple room and outside pressure)"; Fluid.Sources.MassFlowSource_WeatherData bou( redeclare package Medium=Medium, m_flow=mOut_flow, nPorts=1) "Mass flow rate boundary condition"; Fluid.Sources.Boundary_pT freshAir( redeclare package Medium=Medium, nPorts=1) "Pressure boundary condition"; Modelica.Blocks.Sources.Constant qLatGai_flow( k=0) "Latent heat gain"; Fluid.Sensors.RelativeHumidity senRelHum( redeclare package Medium=Medium, warnAboutOnePortConnection=false) "Relative humidity in the room as computed by Modelica"; Modelica.Blocks.Interfaces.RealOutput TAir( final unit="K", displayUnit="degC") "Air temperature of the zone"; Modelica.Blocks.Interfaces.RealOutput TRad( final unit="K", displayUnit="degC") "Radiative temperature of the zone"; Modelica.Blocks.Interfaces.RealOutput phi( final unit="1") "Relative humidity of zone air"; BoundaryConditions.WeatherData.Bus weaBus "Bus with weather data"; equation connect(qRadGai_flow.y,multiplex3_1.u1[1]); connect(qConGai_flow.y,multiplex3_1.u2[1]); connect(zon.qGai_flow,multiplex3_1.y); connect(multiplex3_1.u3[1],qLatGai_flow.y); connect(freshAir.ports[1],duc.port_b); connect(zon.TAir,TAir); connect(zon.TRad,TRad); connect(senRelHum.phi,phi); connect(duc.port_a,zon.ports[1]); connect(bou.ports[1],zon.ports[2]); connect(senRelHum.port,zon.ports[3]); connect(bou.weaBus,weaBus); end Zone; equation connect(TAirEnePlu.u,datRea.y[3]); connect(relHumEnePlu.u,datRea.y[4]); connect(building.weaBus,zon1.weaBus); connect(building.weaBus,zon2.weaBus); end TwoIdenticalZones;

Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.ZoneTemperatureInitialization Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.ZoneTemperatureInitialization

This example tests whether the zone mean air temperature is initialized correctly in EnergyPlus

Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.ZoneTemperatureInitialization

Information

Simple test case that verifies whether the zone mean air temperature is initialized correctly by EnergyPlus.

Extends from Buildings.ThermalZones.EnergyPlus.Examples.SingleFamilyHouse.Unconditioned (Example model with one unconditoned zone simulated in Modelica, and the other two unconditioned zones simulated in EnergyPlus).

Parameters

TypeNameDefaultDescription
VolumeVRoo453.1Room volume [m3]
MassFlowRatem_flow_nominalVRoo*1.2*0.3/3600Nominal mass flow rate [kg/s]

Modelica definition

model ZoneTemperatureInitialization "This example tests whether the zone mean air temperature is initialized correctly in EnergyPlus" extends Buildings.ThermalZones.EnergyPlus.Examples.SingleFamilyHouse.Unconditioned ( zon( T_start=303.15)); Buildings.ThermalZones.EnergyPlus.OutputVariable TRad( key="LIVING ZONE", name="Zone Mean Radiant Temperature", y(final unit="K")) "Block that reads output from EnergyPlus"; end ZoneTemperatureInitialization;

Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.InternalGain.OneZoneWithGainExposed Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.InternalGain.OneZoneWithGainExposed

Internal model for building with one thermal zone

Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.InternalGain.OneZoneWithGainExposed

Information

Extends from Modelica.Blocks.Icons.Block (Basic graphical layout of input/output block).

Parameters

TypeNameDefaultDescription
HeatFluxqRad_flow Radiative internal heat gain [W/m2]
HeatFluxqSen_flow Convective sensible internal heat gain [W/m2]
HeatFluxqLat_flow Latent internal heat gain [W/m2]

Modelica definition

model OneZoneWithGainExposed "Internal model for building with one thermal zone" extends Modelica.Blocks.Icons.Block; parameter Modelica.SIunits.HeatFlux qRad_flow "Radiative internal heat gain"; parameter Modelica.SIunits.HeatFlux qSen_flow "Convective sensible internal heat gain"; parameter Modelica.SIunits.HeatFlux qLat_flow "Latent internal heat gain"; Examples.SingleFamilyHouse.Unconditioned bui( m_flow_nominal=bui.VRoo*10*0.3/3600, qIntGai( final k={qRad_flow,qSen_flow,qLat_flow}), bou( m_flow=bui.zon.V*1.2*10/3600)) "Building model"; end OneZoneWithGainExposed;

Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.TwoIdenticalZones.Zone Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.TwoIdenticalZones.Zone

Model of a thermal zone

Buildings.ThermalZones.EnergyPlus.Validation.ThermalZone.TwoIdenticalZones.Zone

Information

Extends from Modelica.Blocks.Icons.Block (Basic graphical layout of input/output block).

Parameters

TypeNameDefaultDescription
StringzoneName""Name of the thermal zone
MassFlowRatemOut_flow0.3/3600*zon.V*Buildings.Med...Outside air mass flow rate with 0.3 ACH [kg/s]

Connectors

TypeNameDescription
output RealOutputTAirAir temperature of the zone [K]
output RealOutputTRadRadiative temperature of the zone [K]
output RealOutputphiRelative humidity of zone air [1]
BusweaBusBus with weather data

Modelica definition

model Zone "Model of a thermal zone" extends Modelica.Blocks.Icons.Block; package Medium=Buildings.Media.Air "Medium model"; parameter String zoneName="" "Name of the thermal zone"; parameter Modelica.SIunits.MassFlowRate mOut_flow=0.3/3600*zon.V*Buildings.Media.Air.dStp "Outside air mass flow rate with 0.3 ACH"; Modelica.Blocks.Sources.Constant qConGai_flow( k=0) "Convective heat gain"; Modelica.Blocks.Sources.Constant qRadGai_flow( k=0) "Radiative heat gain"; Modelica.Blocks.Routing.Multiplex3 multiplex3_1 "Multiplex to combine signals into a vector"; Buildings.ThermalZones.EnergyPlus.ThermalZone zon( redeclare package Medium=Medium, zoneName=zoneName, nPorts=3) "Thermal zone (core zone of the office building with 5 zones)"; Fluid.FixedResistances.PressureDrop duc( redeclare package Medium=Medium, allowFlowReversal=false, linearized=true, from_dp=false, dp_nominal=100, m_flow_nominal=47*6/3600*1.2) "Duct resistance (to decouple room and outside pressure)"; Fluid.Sources.MassFlowSource_WeatherData bou( redeclare package Medium=Medium, m_flow=mOut_flow, nPorts=1) "Mass flow rate boundary condition"; Fluid.Sources.Boundary_pT freshAir( redeclare package Medium=Medium, nPorts=1) "Pressure boundary condition"; Modelica.Blocks.Sources.Constant qLatGai_flow( k=0) "Latent heat gain"; Fluid.Sensors.RelativeHumidity senRelHum( redeclare package Medium=Medium, warnAboutOnePortConnection=false) "Relative humidity in the room as computed by Modelica"; Modelica.Blocks.Interfaces.RealOutput TAir( final unit="K", displayUnit="degC") "Air temperature of the zone"; Modelica.Blocks.Interfaces.RealOutput TRad( final unit="K", displayUnit="degC") "Radiative temperature of the zone"; Modelica.Blocks.Interfaces.RealOutput phi( final unit="1") "Relative humidity of zone air"; BoundaryConditions.WeatherData.Bus weaBus "Bus with weather data"; equation connect(qRadGai_flow.y,multiplex3_1.u1[1]); connect(qConGai_flow.y,multiplex3_1.u2[1]); connect(zon.qGai_flow,multiplex3_1.y); connect(multiplex3_1.u3[1],qLatGai_flow.y); connect(freshAir.ports[1],duc.port_b); connect(zon.TAir,TAir); connect(zon.TRad,TRad); connect(senRelHum.phi,phi); connect(duc.port_a,zon.ports[1]); connect(bou.ports[1],zon.ports[2]); connect(senRelHum.port,zon.ports[3]); connect(bou.weaBus,weaBus); end Zone;