modelSimInfoManager
Extends from BoundaryConditions.Interfaces.PartialSimInfoManager (Partial providing structure for SimInfoManager).
Information
The SimInfoManager manages all simulation information. It loads TMY3 weather data files and applies transformations for computing the solar irradiance on the zone surfaces.
Typical use and important parameters
ParametersfilNam and filDir can be used to set the path to the TMY3 weather file.
This file should include the latitude, longitude and time zone corresponding to the weather file.
See the included weather files for the correct format.
Options
-
IDEAS contains an efficient implementation for computing the solar
incidence angles on surfaces that are part of large building models.
When a model has many parallel surfaces the default implementation computes
the solar irradiance separately for each of these surfaces,
while the result for all of them should be the same.
The SimInfoManager computes five default orientations (azimuth angels):
south, west, east, north and horizontal.
Whenever a surface needs the solar incidence angels for one of these orientations
these precomputed values will be used.
The default orientations can be changed using parameters
incAndAziInBus.incAndAziInBusdetermines for which inclination and azimuth the solar radiation is pre-computed. -
Conservation of energy within the building can be checked by setting
computeConservationOfEnergy=true. Conservation of energy is checked by computing the internal energy for all components that are within "the system" and by adding to this the integral of all heat flows entering/leaving the system. There are two options for choosing the extent of the system based on parameteropenSystemConservationOfEnergy. Either conservation of energy for a closed system is computed, or it is computed for an open system.
When choosing the closed system the conservation of energy check should always work when using IDEAS as intended. In this case conservation of energy is only checked for all components in theBuildingspackage. I.e. all heat flows at embedded portsport_embof walls, fluid ports of the zones,zone.gainConandzone.gainRadare considered to be a heat gain to the system and every other component is considered to be outside of the system for which conservation of energy is checked.
When computing an open system by settingopenSystemConservationOfEnergy=truethese heat flow rates are not taken into account because they are assumed to flow between components that are both within the bounds of the system. The user then needs to choose how large the system is and he should make sure that all heat flow rates entering the system are added tosim.Qgai.Q_flowand that all internal energy of the system is added tosim.E.E. - The default latitude and longitude, which are read by the TMY3 reader, can be overwritten. This should only be done if a custom weather data reader instead of the TMY3 weather data reader is used.
TMY3 weather data files
IDEAS uses TMY3 input files. The default weather file 'BEL_VLG_Uccle.064470_TMYx.2007-2021.mos' contains weather information from https://climate.onebuilding.org for the weather station in Uccle, near the Brussels region in Belgium. For detailed documentation see IDEAS.BoundaryConditions.WeatherData.ReaderTMY3.Interzonal airflow
IDEAS supports several levels of detail for simulating interzonal airflow and air infiltration,
which can be selected by setting the value of the parameter interzonalAirFlowType.
By default, interzonalAirFlowType=None and a fixed n50 value is assumed for each zone.
The n50 value represents the airtightness of a building or building zone.
It is equal to the number of air changes per hour (due to air leakage) at a pressure difference of 50 Pa,
and is expressed in h-1.
The corresponding fixed mass flow rate is divided by a fixed factor n50toAch and is pushed
into (with ambient properties) and extracted from each zone model.
In practice, however, air infiltration depends on the wind pressure and temperature differences,
and occurs only in zones that have an exterior/outer wall or windows.
The other interzonalAirFlowType options model this effect in more detail.
When setting unify_n50=true while interzonalAirFlowType=None,
the n50 values are automatically redistributed across the zones as described below
and a corrected fixed infiltration flow rate is assumed.
While this implementation is more detailed and comes at no added computational cost,
it is disabled by default for backward compatibility reasons.
When interzonalAirFlowType=OnePort or interzonalAirFlowType=TwoPort,
by default, the OuterWall and Window leakage coefficients
are computed using the building's n50 value set in the SimInfoManager.
The zone volumes are added together to compute the total nominal air infiltration
at a 50 Pa pressure difference based on the building's n50 value set by the user.
Then, the total exterior building area,
which is the sum of the area of all OuterWall and Window components,
is used to compute an average q50 value.
The q50 value represents the airtightness of a surface.
It is equal to the average air leakage flow per hour at a pressure difference of 50 Pa per surface area,
and is expressed in m3/h/m2.
Each airflow path is represented by an IDEAS.Airflow.Multizone.Point_m_flow class
which will compute the real air flow rates at lower pressure differences.
When a custom q50 value for a wall or window is known, it can be
assigned by the user using the parameters use_custom_q50 and custom_q50.
The algorithm considers these q50 values as known and recomputes all remaining q50 values
such that the imposed n50 value at the building level is reached.
In a similar way, the total n50 value for one zone can be forced by using
the zone parameters use_custom_n50 and n50.
In this case, the q50 parameter values of the outer surfaces
connected to that zone will correspond to the custom n50 parameter value of the zone.
Subsequently, all other zones and surfaces will be adjusted such that
the building's total air leakage still corresponds to the building's n50 value.
One-port implementation
In case interzonalAirFlowType=OnePort, then one flow path is
used to model the air exchange through each surface
and through cavities in internal walls (open doors).
No buoyancy driven airflow (stack-effect) is modelled in this case.
This implementation is recommended when naturally driven airflows
are expected to be negligble (e.g. limited building height, good airtightness)
or when the HVAC system pressure differences and
corresponding air flow rates are of higher orders of magnitude.
More information regarding the one-port implementation can be found in [DeJonge2021].
Two-port implementation
When interzonalAirFlowType=TwoPorts, then two flow paths are
used for each external surface and
buoyancy/temperature driven airflow (stack-effect) is added by consistent implementation
of the IDEAS.Airflow.Multizone.MediumColumnReversible class.
This increases the level of detail at the cost of having to solve a more complex flow network,
thereby allowing the more detailed modelling of multi-zone air flow.
In this implementation, larger openings (e.g. open doors in internal walls or open windows)
are represented by the IDEAS.Airflow.Multizone.DoorDiscretizedOperable class.
It is important to set the parameters hFloor and hZone correctly at zone level.
Wind speed
The wind pressure depends on the wind speed, but this one is typically measured at a meteorological station. The wind speed at the building is different from this measured one due to the local terrain and elevation effects. This is taken into account by the wind speed modifier coefficient Cs, which is calculated as [CONTAM2020]:
Cs = A02 · (H/Href)2a
where H is the building height, Href is the height at which the wind speed is measured, A0 is the local terrain constant, and a is the velocity profile exponent.
The AHRAE Fundamentals handbook of 1993 provided values for A0 and a for different terrain types (e.g. urban and suburban). Since the 2005 version of the ASHRAE Fundamentals handbook [ASHRAE2005], the wind boundary layer thickness δ is reported instead of the coefficient A0. However, the latter can be calculated from the former as [CONTAM2020]:
A0 = (δref/Href)aref · (Href/δ)aref
where δref, Href, and aref are the wind boundary layer thickness, wind measurement height, and velocity profile exponent at the meteorological station, respectively.
The model allows to set the terrain type parameter locTer to
Urban, Suburban, Unshielded, or Custom.
For the former three, coefficients a and δ are taken from [ASHRAE2005]
and A0 is calculated using the equation above, assuming
a meteorological station in an unshielded area.
The height at which the wind is measured (Href) is set by the parameter Hwind.
If Custom is selected, the user needs to provide values for a and A0.
| Terrain type | a | δ [m] | A0 |
|---|---|---|---|
| Urban (large city center) | 0.33 | 460 | (270/Href)0.14 · (Href/460)0.33 |
| Suburban | 0.22 | 370 | (270/Href)0.14 · (Href/370)0.22 |
| Unshielded (default) | 0.14 | 270 | (270/Href)0.14 · (Href/270)0.14 |
| Custom | acustom | / | A0,custom |
References
[ASHRAE2005]
American Society of Heating Refrigerating and Air-Conditioning Engineers.
2005 ASHRAE handbook: Fundamentals, SI Edition.
Atlanta: American Society of Heating, Refrigerating and Air-Conditioning Engineers, 2005.
[CONTAM2020]
W. Stuart Dols and Brian J. Polidoro.
Washington, DC: US Department of Commerce, National Institute of Standards and Technology, 2015.
doi:10.6028/NIST.TN.1887r1.
[DeJonge2021]
Klaas De Jonge, Filip Jorissen, Lieve Helsen and Jelle Laverge.
Wind-Driven Air Flow Modelling in Modelica: Verification and Implementation in the IDEAS Library.
Proceedings of Building Simulation 2021: 17th Conference Of IBPSA. Bruges, Belgium, September, 2021.
doi:10.26868/25222708.2021.30165.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| String | filNam (from PartialSimInfoManager) | Modelica.Utilities.Files.loadResource("modelica://IDEAS/Resources/weatherdata/BEL_VLG_Uccle.064470_TMYx.2007-2021.mos") | File name of TMY3 weather file |
| Modelica.Units.SI.Time | timZon (from PartialSimInfoManager) | weaDat.timZon | Time zone for which the simulation time t=0 corresponds to midnight, january 1st |
| Modelica.Units.SI.Angle[5] | aziOpts (from PartialSimInfoManager) | {incS, incW, incN, incE, incS} | Inclination options, default south |
| Modelica.Units.SI.Angle[4] | incOpts (from PartialSimInfoManager) | {IDEAS.Types.Tilt.Wall, IDEAS.Types.Tilt.Floor, IDEAS.Types.Tilt.Ceiling, IDEAS.Types.Tilt.Wall} | Azimuth options, default wall |
| Boolean | use_port_1 (from PartialSimInfoManager) | interZonalAirFlowType <> IDEAS.BoundaryConditions.Types.InterZonalAirFlow.None | Whether port_1 of the propsbus connector should be used |
| Boolean | use_port_2 (from PartialSimInfoManager) | interZonalAirFlowType == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts | Whether port_2 of the propsbus connector should be used |
| Modelica.Units.SI.Temperature | Tenv_nom (from PartialSimInfoManager) | 280 | Nominal ambient temperature, only used when linearising equations |
| Integer | numIncAndAziInBus (from PartialSimInfoManager) | size(incAndAziInBus, 1) | Number of pre-computed azimuth |
| Modelica.Units.SI.Temperature | Tdes (from PartialSimInfoManager) | -8 + 273.15 | design outdoor temperature |
| Modelica.Units.SI.Temperature | TdesGround (from PartialSimInfoManager) | 10 + 273.15 | design ground temperature |
| Real | V50_def (from PartialSimInfoManager) | V50 - V50_custom | Corrected V50 value, default for surfaces without custom assignment. |
| Real | V50 (from PartialSimInfoManager) | V_tot*n50 | V50 value assuming no custom v50 values. |
| Real | q50_def (from PartialSimInfoManager) | if A_def < Modelica.Constants.small then q50_av else V50_def/A_def | |
| Real | q50_av (from PartialSimInfoManager) | if A_tot < Modelica.Constants.small then 0 else V50/A_tot | average, not corrected q50 |
| Modelica.Units.SI.Volume | V_tot (from PartialSimInfoManager) | Total conditioned building volume | |
| Modelica.Units.SI.Area | A_tot (from PartialSimInfoManager) | Total surface area of OuterWalls and Windows | |
| Real | V50_custom (from PartialSimInfoManager) | Sum of v50 values for components that have a custom assignment | |
| Modelica.Units.SI.Area | A_def (from PartialSimInfoManager) | Total area with default q50, i.e. without custom q50 assignment, or connected to zone with custom n50 assigned | |
| Advanced | |||
| Modelica.Units.SI.Angle | lat (from PartialSimInfoManager) | weaDat.lat | Latitude of the location |
| Modelica.Units.SI.Angle | lon (from PartialSimInfoManager) | weaDat.lon | Longitude of the location |
| Incidence angles | |||
| Modelica.Units.SI.Angle | incS (from PartialSimInfoManager) | IDEAS.Types.Azimuth.S | South inclination |
| Modelica.Units.SI.Angle | incW (from PartialSimInfoManager) | incS + Modelica.Constants.pi/2 | West inclination |
| Modelica.Units.SI.Angle | incN (from PartialSimInfoManager) | incS + Modelica.Constants.pi | North inclination |
| Modelica.Units.SI.Angle | incE (from PartialSimInfoManager) | incS + 3*Modelica.Constants.pi/2 | East inclination |
| Modelica.Units.SI.Angle[:,:] | incAndAziInBus (from PartialSimInfoManager) | {{IDEAS.Types.Tilt.Ceiling, 0}, {IDEAS.Types.Tilt.Wall, incS}, {IDEAS.Types.Tilt.Wall, incW}, {IDEAS.Types.Tilt.Wall, incN}, {IDEAS.Types.Tilt.Wall, incE}, {IDEAS.Types.Tilt.Floor, 0}} | Combination of inclination and azimuth which are pre-computed and added to solBus. |
| Conservation of energy | |||
| Boolean | computeConservationOfEnergy (from PartialSimInfoManager) | false | Add equations for verifying conservation of energy |
| Boolean | strictConservationOfEnergy (from PartialSimInfoManager) | false | This adds an assert statement to make sure that energy is conserved |
| Boolean | openSystemConservationOfEnergy (from PartialSimInfoManager) | false | Compute conservation of energy for open system |
| Modelica.Units.SI.Energy | Emax (from PartialSimInfoManager) | 1 | Error bound for violation of conservation of energy |
| Linearisation | |||
| Boolean | lineariseDymola (from PartialSimInfoManager) | false | Linearises building model equations for Dymola linearisation approach |
| Boolean | lineariseJModelica (from PartialSimInfoManager) | false | Linearises building model equations for optimisations in JModelica |
| Boolean | createOutputs (from PartialSimInfoManager) | false | Creates output connections when linearising windows |
| Boolean | outputAngles (from PartialSimInfoManager) | not lineariseDymola | Output angles in weaBus. Set to false when linearising |
| Integer | nWindow (from PartialSimInfoManager) | 1 | Number of windows in the to be linearised model |
| Integer | nLayWin (from PartialSimInfoManager) | 3 | Number of window layers in the to be linearised model; should be maximum of all windows |
| Boolean | linearise (from PartialSimInfoManager) | lineariseDymola or lineariseJModelica | Linearises building model equations |
| Linearisation › Convection | |||
| Boolean | linIntCon (from PartialSimInfoManager) | false | = true, if interior convective heat transfer should be linearised |
| Boolean | linExtCon (from PartialSimInfoManager) | false | = true, if exterior convective heat transfer should be linearised (uses average wind speed) |
| Linearisation › Radiation | |||
| Boolean | linIntRad (from PartialSimInfoManager) | true | = true, if interior radiative heat transfer should be linearised |
| Boolean | linExtRad (from PartialSimInfoManager) | false | = true, if exterior radiative heat transfer for walls should be linearised |
| Boolean | linExtRadWin (from PartialSimInfoManager) | true | = true, if exterior radiative heat transfer for windows should be linearised |
| Advanced › CO2 | |||
| Real | ppmCO2 (from PartialSimInfoManager) | 400 | Default CO2 concentration in [ppm] when using air medium containing CO2 |
| Interzonal airflow | |||
| IDEAS.BoundaryConditions.Types.InterZonalAirFlow | interZonalAirFlowType (from PartialSimInfoManager) | IDEAS.BoundaryConditions.Types.InterZonalAirFlow.None | Type of interzonal air flow model |
| Boolean | unify_n50 (from PartialSimInfoManager) | false | if true, zone n50 values are merged and then redistributed across al zones even if interZonalAirFlowType==None |
| Real | n50 (from PartialSimInfoManager) | 3 | n50 value of zones |
| Wind | |||
| Boolean | use_sim_Cs (from PartialSimInfoManager) | true | if checked, the default Cs of each surface in the building is sim.Cs |
| IDEAS.BoundaryConditions.Types.LocalTerrain | locTer (from PartialSimInfoManager) | IDEAS.BoundaryConditions.Types.LocalTerrain.Unshielded | Selection of local terrain |
| Real | a_custom (from PartialSimInfoManager) | 0.14 | Custom velocity profile exponent |
| Real | A0_custom (from PartialSimInfoManager) | 1.0 | Custom local terrain coefficient |
| Real | a (from PartialSimInfoManager) | if locTer == IDEAS.BoundaryConditions.Types.LocalTerrain.Unshielded then 0.14 elseif locTer == IDEAS.BoundaryConditions.Types.LocalTerrain.Suburban then 0.22 elseif locTer == IDEAS.BoundaryConditions.Types.LocalTerrain.Urban then 0.33 else a_custom | Velocity profile exponent |
| Modelica.Units.SI.Length | delta (from PartialSimInfoManager) | if locTer == IDEAS.BoundaryConditions.Types.LocalTerrain.Unshielded then 270 elseif locTer == IDEAS.BoundaryConditions.Types.LocalTerrain.Suburban then 370 elseif locTer == IDEAS.BoundaryConditions.Types.LocalTerrain.Urban then 460 else 0 | Wind boundary layer thickness |
| Real | A0 (from PartialSimInfoManager) | if locTer == IDEAS.BoundaryConditions.Types.LocalTerrain.Custom then A0_custom else (270/Hwind)^0.14*(Hwind/delta)^a | Local terrain coefficient |
| Modelica.Units.SI.Length | H (from PartialSimInfoManager) | 10 | Building or roof height |
| Modelica.Units.SI.Length | Hwind (from PartialSimInfoManager) | 10 | Height above ground of meteorological wind speed measurement |
| Modelica.Units.SI.Length | HPres (from PartialSimInfoManager) | 1 | Height above ground of meteorological atmospheric pressure measurement |
| Real | Cs_coeff (from PartialSimInfoManager) | (A0*A0)*((1/Hwind)^(2*a)) | Multiplication factor for wind speed modifier Cs |
| Real | Cs (from PartialSimInfoManager) | Cs_coeff*(H^(2*a)) | Wind speed modifier |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| IDEAS.Buildings.Components.Interfaces.WeaBus | weaBus (from PartialSimInfoManager) | ||
| Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a | Qgai (from PartialSimInfoManager) | Thermal gains in model | |
| IDEAS.Buildings.Components.BaseClasses.ConservationOfEnergy.EnergyPort | E (from PartialSimInfoManager) | Model internal energy | |
| IDEAS.Buildings.Components.Interfaces.WindowBus | winBusOut (from PartialSimInfoManager) | Bus for windows in case of linearisation | |
| IDEAS.BoundaryConditions.WeatherData.Bus | weaDatBus (from PartialSimInfoManager) | Weather data bus connectable to weaBus connector from Buildings Library | |
| Buildings.Components.Interfaces.VolumePort | volumePort (from PartialSimInfoManager) | Port for summing volumes of all zones | |
| Buildings.Components.Interfaces.AreaPort | areaPort (from PartialSimInfoManager) | Port for summing surface areas of all surfaces |
Components
Revisions
-
July 10, 2025, by Klaas De Jonge:
Update the interzonal airflow documentation. See #1347. -
July 9, 2025, by Jelger Jansen:
Update documentation related to wind speed modifier calculation. See #1340. -
April 16, 2021 by Filip Jorissen:
Changed the default weather file to Brussels.mos and revised the documentation accordingly. See #1209 for more details. -
June 30, 2020 by Filip Jorissen:
Overridable assignments of variables of PartialSimInfoManager. See #1148 -
November 28, 2019 by Ian Beausoleil-Morrison:
Make wind direction available on WeaBus. See #1089 -
January 21, 2019 by Filip Jorissen:
Improved documentation by adding weather data reader reference and more TMY3 file examples. This is for #956. -
June 7, 2018 by Filip Jorissen:
Overwriting TSky, Va and Fc from the extends clause such that they can be overwriten again in BESTEST SimInfoManager. This is for #838. -
June 14, 2015, Filip Jorissen:
Added documentation