modelWindow
Extends from IDEAS.Buildings.Components.Interfaces.PartialSurface (Partial model for building envelope component).
Information
This model should be used to model windows or other transparant surfaces. See IDEAS.Buildings.Components.Interfaces.PartialSurface for equations, options, parameters, validation and dynamics that are common for all surfaces and windows.
Typical use and important parameters
Parameter A is the total window surface area, i.e. the
sum of the frame surface area and the glazing surface area.
Parameter frac may be used to define the surface
area of the frame as a fraction of A.
Parameter glazing must be used to define the glass properties.
It contains information about the number of glass layers,
their thickness, thermal properties and emissivity.
Optional parameter briType may be used to compute additional line losses
along the edges of the glazing.
Optional parameter fraType may be used to define the frame thermal properties.
If fraType = None then the frame is assumed to be perfectly insulating.
Optional parameter shaType may be used to define the window shading properties.
The parameter n may be used to scale the window to n identical windows.
For example, if a wall has 10 identical windows with identical shading, this parameter
can be used to simulate 10 windows by scaling the model of a single window.
The parameter tab Airflow lists optional parameters for adding a self regulating trickle vent.
The RealExpression AExp, which is connected to propsBusInt, outputs the total window area A
instead of only the area of glass A_glass. This partially compensates for the fact that
radiation from/to the frame is not included seperately in the current model implementation.
Validation
To verify the U-value of your glazing system implementation, see IDEAS.Buildings.Components.Validations.WindowEN673
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | incOpt (from PartialSurface) | 4 | Tilt angle option from simInfoManager, or custom using inc |
| Modelica.Units.SI.Angle | inc (from PartialSurface) | sim.incOpts[incOpt] | Custom inclination (tilt) angle of the wall, default wall |
| Integer | aziOpt (from PartialSurface) | 5 | Azimuth angle option from simInfoManager, or custom using azi |
| Modelica.Units.SI.Angle | azi (from PartialSurface) | sim.aziOpts[aziOpt] | Custom azimuth angle of the wall, default south |
| Modelica.Units.SI.Area | A (from PartialSurface) | Component surface area | |
| Real | nWin (from PartialSurface) | 1 | Use this factor to scale the component to nWin identical components |
| Real | q50_internal (from PartialSurface) | Surface air tightness | |
| Modelica.Units.SI.Length | hzone_a (from PartialSurface) | ||
| Modelica.Units.SI.Length | hAbs_floor_a (from PartialSurface) | ||
| Modelica.Units.SI.Length | Habs_surf (from PartialSurface) | hAbs_floor_a + hRelSurfBot_a + (hVertical/2) | Absolute height of the middle of the surface, can be used to check the heights after initialisation |
| Modelica.Units.SI.Length | hWin | max(0.1, sqrt(A)) | Window height, including frame |
| Real | frac | 0.15 | Area fraction of the window frame |
| IDEAS.Buildings.Data.Frames.None | fraType | ||
| IDEAS.Buildings.Data.WindPressureCoeff.Lowrise_Square_Exposed | Cp_table | ||
| Advanced › Design power | |||
| Modelica.Units.SI.Power | QTra_design (from PartialSurface) | Design heat losses at reference temperature of the boundary space | |
| Dynamics › Initial condition | |||
| Modelica.Units.SI.Temperature | T_start (from PartialSurface) | 293.15 | Start temperature for each of the layers |
| Convection | |||
| Boolean | linIntCon_a (from PartialSurface) | sim.linIntCon | = true, if convective heat transfer should be linearised |
| Modelica.Units.SI.TemperatureDifference | dT_nominal_a (from PartialSurface) | 1 | Nominal temperature difference used for linearisation, negative temperatures indicate the solid is colder |
| Boolean | linExtCon | sim.linExtCon | = true, if exterior convective heat transfer should be linearised (uses average wind speed) |
| Dynamics › Equations | |||
| Modelica.Fluid.Types.Dynamics | energyDynamics (from PartialSurface) | Modelica.Fluid.Types.Dynamics.FixedInitial | Static (steady state) or transient (dynamic) thermal conduction model |
| IDEAS.Buildings.Components.Interfaces.WindowDynamicsType | windowDynamicsType | IDEAS.Buildings.Components.Interfaces.WindowDynamicsType.Two | Type of dynamics for glazing and frame: using zero, one combined or two states |
| Real | fraC | frac | Ratio of frame and glazing thermal masses |
| Airflow › Airtightness | |||
| Boolean | use_custom_q50 (from PartialSurface) | false | check to disable the default q50 computation and to assign a custom q50 value |
| Real | custom_q50 (from PartialSurface) | 2 | Surface air tightness |
| Vertical position (important if interZonalAirFlowType is TwoPorts) | |||
| Modelica.Units.SI.Length | hVertical (from PartialSurface) | if IDEAS.Utilities.Math.Functions.isAngle(incInt, IDEAS.Types.Tilt.Floor) or IDEAS.Utilities.Math.Functions.isAngle(incInt, IDEAS.Types.Tilt.Ceiling) then 0 else hzone_a | Vertical surface height, height of the surface projected to the vertical (e.g. 0 for floors and ceilings) |
| Modelica.Units.SI.Length | hRelSurfBot_a (from PartialSurface) | if IDEAS.Utilities.Math.Functions.isAngle(incInt, IDEAS.Types.Tilt.Ceiling) then hzone_a else 0 | Height between the lowest point of the surface (bottom) and the floor level of the zone connected at propsBus_a (e.g. 0 for walls at floor level and floors.) |
| Radiation | |||
| Boolean | linExtRad | sim.linExtRadWin | = true, if exterior radiative heat transfer should be linearised |
| Advanced › Icon | |||
| Boolean | controlled | shaType.controlled | = true if shaType has a control input (see e.g. screen). Can be set to false manually to force removal of input icon. |
| Airflow › Wind Pressure | |||
| Real[:,:] | coeffsCp | if incInt <= Modelica.Constants.pi/18 then Cp_table.Cp_Roof_0_10 elseif incInt <= Modelica.Constants.pi/6 then Cp_table.Cp_Roof_11_30 elseif inc <= Modelica.Constants.pi/4 then Cp_table.Cp_Roof_30_45 elseif IDEAS.Utilities.Math.Functions.isAngle(incInt, Modelica.Constants.pi) then Cp_table.Cp_Floor else Cp_table.Cp_Wall | Cp at different angles of attack, default the correct table will be selected from Cp_table based on the surface tilt |
| Boolean | use_custom_Cs | false | if checked, Cs will be used in stead of the default related to the interzonal airflow type |
| Boolean | use_sim_Cs | sim.use_sim_Cs | if checked, the default Cs of each surface in the building is sim.Cs |
| Real | Cs | sim.Cs | Wind speed modifier |
| Airflow › Wind | |||
| Real | Habs | Absolute height at the middle of the window | |
| Airflow › Operable window | |||
| Boolean | use_operable_window | false | = true, to enable window control input when using sim.interZonalAirFlowType == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts |
| Airflow › Trickle vent | |||
| Boolean | use_trickle_vent | false | = true, to enable trickle vent |
| Modelica.Units.SI.MassFlowRate | m_flow_nominal | 0 | Nominal mass flow rate of trickle vent |
| Modelica.Units.SI.PressureDifference | dp_nominal | 5 | Pressure drop at nominal mass flow rate of trickle vent |
| Boolean | use_trickle_vent_control | false | =true, to enable trickle vent control input |
| Modelica.Units.SI.Length | hTrickleVent | hVertical + hRelSurfBot_a | vertical distance between the floor of the zone (top) and the trickle vent |
| Advanced › Frame | |||
| Modelica.Units.SI.Length | briLen | 2*hWin + 2*A/hWin | Thermal bridge length, if present |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| IDEAS.Buildings.Components.Interfaces.ZoneBus | propsBus_a (from PartialSurface) | If inc = Floor, then propsbus_a should be connected to the zone above this floor. If inc = ceiling, then propsbus_a should be connected to the zone below this ceiling. If component is an outerWall, porpsBus_a should be connect to the zone. | |
| Modelica.Blocks.Interfaces.RealInput | Ctrl | Control signal for screen between 0 and 1, 1 is fully closed | |
| Modelica.Blocks.Interfaces.RealInput | y_trickleVent | Control signal for trickle vent between 0 and 1, 1 is fully opened | |
| Modelica.Blocks.Interfaces.RealInput | y_window | Control signal for window opening between 0 and 1, i.e. 1 is fully opened |
Components
Revisions
-
August 18, 2025, by Klaas De Jonge:
ChangedinctoincIntwhere necessary. -
February 4, 2025, by Jelger Jansen:
AddedModelica.Units.to one or multiple parameter(s) due to the removal ofimportin IDEAS/package.mo. See #1415 . -
November 7, 2024, by Anna Dell'Isola and Jelger Jansen:
Update calculation of transmission design losses. See #1337 -
October 30, 2024, by Klaas De Jonge:
Modifications for stack-effect interzonal airflow heights and wind pressure profiles. -
Februari 18, 2024, by Filip Jorissen:
Modifications for supporting trickle vents and interzonal airflow. -
September 7, 2023, by Filip Jorissen:
Created shading surface temperature dependency on mass flow rate. -
July 17, 2023, by Filip Jorissen:
Using A instead of A_glass to compute air tightness parameters. Added controllable trickle vent and operable window. -
May 22, 2022, by Filip Jorissen:
Fixed Modelica specification compatibility issue. See #1254 -
September 21, 2021 by Filip Jorissen:
Added trickle vent support. #1232. -
August 12, 2020 by Filip Jorissen:
No longer using connector and initial equation forepsSw. #1162. -
July 2020, 2020, by Filip Jorissen:
Added a list of default glazing systems. See #1114 -
April 26, 2020, by Filip Jorissen:
RefactoredSolBusto avoid many instances inPropsBus. See #1131 -
November 28, 2019, by Ian Beausoleil-Morrison:
incandaziof surface now passed as parameters to ExteriorConvection. See #1089 -
December 2, 2019, by Filip Jorissen:
Split heat capacitor to interior and exterior part to avoid non-linear algebraic loops. #1092. -
October 13, 2019, by Filip Jorissen:
Refactored the parameter definition ofincandaziby adding the option to use radio buttons. See #1067 -
September 9, 2019, by Filip Jorissen:
AddedcheckCoatingsfor issue #1038. -
August 10, 2018 by Damien Picard:
Add scaling to propsBus_a to allow simulation of n windows instead of 1 See #888. -
January 21, 2018 by Filip Jorissen:
Changed implementation such that control input is visible. See #761. -
May 26, 2017 by Filip Jorissen:
Revised implementation for renamed portsHDirTiletc. See #735. -
March 6, 2017, by Filip Jorissen:
Added option for using 'normal' dynamics for the window glazing. Removed the option for having a combined state for window and frame this this is non-physical. This is for #678. -
January 10, 2017, by Filip Jorissen:
Removed declaration ofAsince this is now declared in IDEAS.Buildings.Components.Interfaces.PartialSurface. This is for #609. -
January 10, 2017 by Filip Jorissen:
SetlinExtRad = sim.linExtRadWin. See #615. -
December 19, 2016, by Filip Jorissen:
Added solar irradiation on window frame. -
December 19, 2016, by Filip Jorissen:
Removed briType, which had default value LineLoss. briType is now part of the Frame model and has default value None. -
February 10, 2016, by Filip Jorissen and Damien Picard:
Revised implementation: cleaned up connections and partials. -
December 17, 2015, Filip Jorissen:
Added thermal connection between frame and glazing state. This is required for decoupling steady state thermal dynamics without adding a second state for the window. -
July 14, 2015, Filip Jorissen:
Removed second shading device since a new partial was created for handling this. -
June 14, 2015, Filip Jorissen:
Adjusted implementation for computing conservation of energy. -
February 10, 2015 by Filip Jorissen:
Adjusted implementation for grouping of solar calculations.