Buildings.Occupants.Office.Blinds

Package with models to simulate blinds behaviors in office buildings

Information

This package contains models to simulate blinds behaviors in office buildings.

Extends from Modelica.Icons.VariantsPackage (Icon for package containing variants).

Package Content

Name Description
Buildings.Occupants.Office.Blinds.Haldi2008BlindsTIn Haldi2008BlindsTIn A model to predict occupants' blinds behavior with indoor temperature
Buildings.Occupants.Office.Blinds.Haldi2008BlindsTOut Haldi2008BlindsTOut A model to predict occupants' blinds behavior with outdoor temperature
Buildings.Occupants.Office.Blinds.Inkarojrit2008BlindsSolarIntensity Inkarojrit2008BlindsSolarIntensity A model to predict occupants' blinds behavior with solar intensity (and self-reported brightness sensitivity)
Buildings.Occupants.Office.Blinds.Newsham1994BlindsSolarIntensity Newsham1994BlindsSolarIntensity A model to predict occupants' blinds behavior with solar intensity
Buildings.Occupants.Office.Blinds.Zhang2012BlindsSolarAltitude Zhang2012BlindsSolarAltitude A model to predict occupants' blinds behavior with solar altitude
Buildings.Occupants.Office.Blinds.Zhang2012BlindsSolarIntensity Zhang2012BlindsSolarIntensity A model to predict occupants' blinds behavior with solar intensity
Buildings.Occupants.Office.Blinds.Validation Validation Package with examples to validate models in the Blinds package

Buildings.Occupants.Office.Blinds.Haldi2008BlindsTIn Buildings.Occupants.Office.Blinds.Haldi2008BlindsTIn

A model to predict occupants' blinds behavior with indoor temperature

Buildings.Occupants.Office.Blinds.Haldi2008BlindsTIn

Information

Model predicting the state of the blinds with the indoor temperature.

Dynamics

When the space is unoccupied, the blinds are always down. When the space is occupied, the lower TIn is, the higher the chance that the blind is up.

References

The model is documented in the paper "Haldi, F. and Robinson, D., 2008. On the behaviour and adaptation of office occupants. Building and environment, 43(12), pp.2163-2177."

The model parameters are regressed from the field study in eight Swiss office buildings in 2006.

Extends from Modelica.Blocks.Icons.DiscreteBlock (Graphical layout of discrete block component icon).

Parameters

TypeNameDefaultDescription
RealA0.425Slope of indoor temperature [1/K]
RealB-11.37Intercept [1]
Integerseed20Seed for the random number generator
TimesamplePeriod120Sample period [s]

Connectors

TypeNameDescription
input RealInputTInIndoor air temperature [K]
input BooleanInputoccIndoor occupancy, true for occupied
output RealOutputblindStateState of blinds, 1 being blinds down [1]

Modelica definition

model Haldi2008BlindsTIn "A model to predict occupants' blinds behavior with indoor temperature" extends Modelica.Blocks.Icons.DiscreteBlock; parameter Real A(final unit="1/K") = 0.425 "Slope of indoor temperature"; parameter Real B(final unit="1") = -11.37 "Intercept"; parameter Integer seed = 20 "Seed for the random number generator"; parameter Modelica.Units.SI.Time samplePeriod=120 "Sample period"; Modelica.Blocks.Interfaces.RealInput TIn( final unit="K", displayUnit="degC") "Indoor air temperature"; Modelica.Blocks.Interfaces.BooleanInput occ "Indoor occupancy, true for occupied"; Modelica.Blocks.Interfaces.RealOutput blindState( final min=0, final max=1, final unit="1") "State of blinds, 1 being blinds down"; Real pDown( final unit="1", final min=0, final max=1) "The probability of lowering the blinds"; protected parameter Modelica.Units.SI.Time t0(final fixed=false) "First sample time instant"; output Boolean sampleTrigger "True, if sample time instant"; Real curSeed "Current value for seed as a real-valued variable"; initial equation t0 = time; blindState = 0; pDown = 0; curSeed = t0*seed; equation sampleTrigger = sample(t0,samplePeriod); when sampleTrigger then curSeed = seed*time; if occ then pDown = 1-Modelica.Math.exp(A*(TIn-273.15)+B)/(Modelica.Math.exp(A*(TIn-273.15)+B)+1); if Buildings.Occupants.BaseClasses.binaryVariableGeneration(p=pDown, globalSeed=integer(curSeed)) then blindState = 0; else blindState = 1; end if; else pDown = 0; blindState = 1; end if; end when; end Haldi2008BlindsTIn;

Buildings.Occupants.Office.Blinds.Haldi2008BlindsTOut Buildings.Occupants.Office.Blinds.Haldi2008BlindsTOut

A model to predict occupants' blinds behavior with outdoor temperature

Buildings.Occupants.Office.Blinds.Haldi2008BlindsTOut

Information

Model predicting the state of the blinds with the outdoor temperature.

Dynamics

When the space is unoccupied, the blinds are always down. When the space is occupied, the lower TOut, the higher the chance that the blind is up.

References

The model is documented in the paper "Haldi, F. and Robinson, D., 2008. On the behaviour and adaptation of office occupants. Building and environment, 43(12), pp.2163-2177."

The model parameters are regressed from the field study in eight Swiss office buildings in 2006.

Extends from Modelica.Blocks.Icons.DiscreteBlock (Graphical layout of discrete block component icon).

Parameters

TypeNameDefaultDescription
RealA0.139Slope of outdoor temperature [1/K]
RealB-3.54Intercept [1]
Integerseed20Seed for the random number generator
TimesamplePeriod120Sample period [s]

Connectors

TypeNameDescription
input RealInputTOutOutdoor air temperature [K]
input BooleanInputoccIndoor occupancy, true for occupied
output RealOutputblindStateState of blinds, 1 being blinds down [1]

Modelica definition

model Haldi2008BlindsTOut "A model to predict occupants' blinds behavior with outdoor temperature" extends Modelica.Blocks.Icons.DiscreteBlock; parameter Real A(final unit="1/K") = 0.139 "Slope of outdoor temperature"; parameter Real B(final unit="1") = -3.54 "Intercept"; parameter Integer seed = 20 "Seed for the random number generator"; parameter Modelica.Units.SI.Time samplePeriod=120 "Sample period"; Modelica.Blocks.Interfaces.RealInput TOut( final unit="K", displayUnit="degC") "Outdoor air temperature"; Modelica.Blocks.Interfaces.BooleanInput occ "Indoor occupancy, true for occupied"; Modelica.Blocks.Interfaces.RealOutput blindState( final min=0, final max=1, final unit="1") "State of blinds, 1 being blinds down"; Real pDown( final unit="1", final min=0, final max=1) "The probability of lowering the blinds"; protected parameter Modelica.Units.SI.Time t0(final fixed=false) "First sample time instant"; output Boolean sampleTrigger "True, if sample time instant"; Real curSeed "Current value for seed as a real-valued variable"; initial equation t0 = time; blindState = 0; pDown = 0; curSeed = t0*seed; equation sampleTrigger = sample(t0,samplePeriod); when sampleTrigger then curSeed = time*seed; if occ then pDown = 1-Modelica.Math.exp(A*(TOut-273.15)+B)/(Modelica.Math.exp(A*(TOut-273.15)+B)+1); if Buildings.Occupants.BaseClasses.binaryVariableGeneration(p=pDown, globalSeed=integer(curSeed)) then blindState = 0; else blindState = 1; end if; else pDown = 0; blindState = 1; end if; end when; end Haldi2008BlindsTOut;

Buildings.Occupants.Office.Blinds.Inkarojrit2008BlindsSolarIntensity Buildings.Occupants.Office.Blinds.Inkarojrit2008BlindsSolarIntensity

A model to predict occupants' blinds behavior with solar intensity (and self-reported brightness sensitivity)

Buildings.Occupants.Office.Blinds.Inkarojrit2008BlindsSolarIntensity

Information

Model predicting the state of the blinds with the solar intensity at the window and occupancy.

Dynamics

When the space is unoccupied, the blinds are always down. When the space is occupied, the lower the solar intensity, the higher the chance that the blind is up.

References

The model is documented in the paper "Inkarojrit, V., 2008. Monitoring and modelling of manually-controlled Venetian blinds in private offices: a pilot study. Journal of Building Performance Simulation, 1(2), pp.75-89."

The model parameters are regressed from the field study in California in 2008 from 113 naturally ventilated buildings.

Extends from Modelica.Blocks.Icons.DiscreteBlock (Graphical layout of discrete block component icon).

Parameters

TypeNameDefaultDescription
RealA13.22Slope of solar intensity at window
RealA21.22Slope of Occupants' brightness sensitivity
RealB-8.94Intercept
Integerseed10Seed for the random number generator
TimesamplePeriod120Sample period [s]
Advanced
RealLSen4Self-reported sensitivity to brightness, seven-point scale, 1 for least sensitive, 7 for most sensitive

Connectors

TypeNameDescription
input RealInputHSolar intensity [W/m2]
input BooleanInputoccIndoor occupancy, true for occupied
output RealOutputblindStateState of blinds, 1 being blinds down [1]

Modelica definition

model Inkarojrit2008BlindsSolarIntensity "A model to predict occupants' blinds behavior with solar intensity (and self-reported brightness sensitivity)" extends Modelica.Blocks.Icons.DiscreteBlock; parameter Real A1 = 3.22 "Slope of solar intensity at window"; parameter Real A2 = 1.22 "Slope of Occupants' brightness sensitivity"; parameter Real B = -8.94 "Intercept"; parameter Real LSen = 4 "Self-reported sensitivity to brightness, seven-point scale, 1 for least sensitive, 7 for most sensitive"; parameter Integer seed = 10 "Seed for the random number generator"; parameter Modelica.Units.SI.Time samplePeriod=120 "Sample period"; Modelica.Blocks.Interfaces.RealInput H(unit="W/m2") "Solar intensity"; Modelica.Blocks.Interfaces.BooleanInput occ "Indoor occupancy, true for occupied"; Modelica.Blocks.Interfaces.RealOutput blindState( final min=0, final max=1, final unit="1") "State of blinds, 1 being blinds down"; Real p( final unit="1", final min=0, final max=1) "The probability of keeping the blinds on"; protected parameter Modelica.Units.SI.Time t0(final fixed=false) "First sample time instant"; output Boolean sampleTrigger "True, if sample time instant"; Real curSeed "Current value for seed as a real-valued variable"; initial equation t0 = time; curSeed = t0*seed; blindState = 0; p = 0; equation sampleTrigger = sample(t0,samplePeriod); when sampleTrigger then curSeed = seed*time; if occ then p = 1 - Modelica.Math.exp(A1*Modelica.Math.log10(H) + A2*LSen + B)/( Modelica.Math.exp(A1*Modelica.Math.log10(H) + A2*LSen + B) + 1); if Buildings.Occupants.BaseClasses.binaryVariableGeneration(p, globalSeed=integer(curSeed)) then blindState = 1; else blindState = 0; end if; else p = 0; blindState = 1; end if; end when; end Inkarojrit2008BlindsSolarIntensity;

Buildings.Occupants.Office.Blinds.Newsham1994BlindsSolarIntensity Buildings.Occupants.Office.Blinds.Newsham1994BlindsSolarIntensity

A model to predict occupants' blinds behavior with solar intensity

Buildings.Occupants.Office.Blinds.Newsham1994BlindsSolarIntensity

Information

Model predicting the state of the blinds with the solar intensity at the window and occupancy.

Dynamics

When the space is unoccupied, the blinds are always down. When the space is occupied, if the solar intensity is above the threshold, the blinds are up.

References

The model is documented in the paper "Newsham, G.R., 1994. Manual control of window blinds and electric lighting: implications for comfort and energy consumption. Indoor Environment, 3, pp.135-144."

The solar intensity threshold was first identified by a field study in an office building in Japan, and was utilized by Newsham for a simulation study in an office building in Toronto.

Extends from Modelica.Blocks.Icons.DiscreteBlock (Graphical layout of discrete block component icon).

Parameters

TypeNameDefaultDescription
RealHSet233Threshold for moving blinds up or down
TimesamplePeriod120Sample period [s]

Connectors

TypeNameDescription
input RealInputHSolar intensity at the room-side of the window [W/m2]
input BooleanInputoccIndoor occupancy, true for occupied
output RealOutputblindStateState of blinds, 1 being blinds down [1]

Modelica definition

model Newsham1994BlindsSolarIntensity "A model to predict occupants' blinds behavior with solar intensity" extends Modelica.Blocks.Icons.DiscreteBlock; parameter Real HSet = 233 "Threshold for moving blinds up or down"; parameter Modelica.Units.SI.Time samplePeriod=120 "Sample period"; Modelica.Blocks.Interfaces.RealInput H(unit="W/m2") "Solar intensity at the room-side of the window"; Modelica.Blocks.Interfaces.BooleanInput occ "Indoor occupancy, true for occupied"; Modelica.Blocks.Interfaces.RealOutput blindState( final min=0, final max=1, final unit="1") "State of blinds, 1 being blinds down"; protected parameter Modelica.Units.SI.Time t0(final fixed=false) "First sample time instant"; output Boolean sampleTrigger "True, if sample time instant"; initial equation t0 = time; blindState = 0; equation sampleTrigger = sample(t0,samplePeriod); when sampleTrigger then if occ then if H < HSet then blindState = 1; else blindState = 0; end if; else blindState = 1; end if; end when; end Newsham1994BlindsSolarIntensity;

Buildings.Occupants.Office.Blinds.Zhang2012BlindsSolarAltitude Buildings.Occupants.Office.Blinds.Zhang2012BlindsSolarAltitude

A model to predict occupants' blinds behavior with solar altitude

Buildings.Occupants.Office.Blinds.Zhang2012BlindsSolarAltitude

Information

Model predicting the state of the blinds with the solar altitude and occupancy.

Dynamics

When the space is unoccupied, the blinds are always down. When the space is occupied, the lower the solar altitude is, the higher the chance that the blind state will be changed, either being turned on or turned off.

References

The model is documented in the paper "Zhang, Y. and Barrett, P., 2012. Factors influencing occupants’ blind-control behaviour in a naturally ventilated office building. Building and Environment, 54, pp.137-147."

The model parameters are regressed from the field study in an office building in Sheffield, England.

Extends from Modelica.Blocks.Icons.DiscreteBlock (Graphical layout of discrete block component icon).

Parameters

TypeNameDefaultDescription
RealAUp1.089Slope of solar altitude for blinds up
RealADown1.031Slope of solar altitude for blinds down
RealBUp-3.446Intercept for blinds up
RealBDown-3.424Intercept for blinds down
Integerseed10Seed for the random number generator
TimesamplePeriod120Sample period [s]

Connectors

TypeNameDescription
input RealInputsolarAltitudeSolar Altitude [rad]
input BooleanInputoccIndoor occupancy, true for occupied
output RealOutputblindStateState of blinds, 1 being up, 0 being down [1]

Modelica definition

model Zhang2012BlindsSolarAltitude "A model to predict occupants' blinds behavior with solar altitude" extends Modelica.Blocks.Icons.DiscreteBlock; parameter Real AUp = 1.089 "Slope of solar altitude for blinds up"; parameter Real ADown = 1.031 "Slope of solar altitude for blinds down"; parameter Real BUp = -3.446 "Intercept for blinds up"; parameter Real BDown = -3.424 "Intercept for blinds down"; parameter Integer seed = 10 "Seed for the random number generator"; parameter Modelica.Units.SI.Time samplePeriod=120 "Sample period"; Modelica.Blocks.Interfaces.RealInput solarAltitude( unit="rad") "Solar Altitude"; Modelica.Blocks.Interfaces.BooleanInput occ "Indoor occupancy, true for occupied"; Modelica.Blocks.Interfaces.RealOutput blindState( final min=0, final max=1, final unit="1") "State of blinds, 1 being up, 0 being down"; Real pUp( final unit="1", final min=0, final max=1) "The probability of blinds up"; Real pDown( final unit="1", final min=0, final max=1) "The probability of blinds down"; protected parameter Modelica.Units.SI.Time t0(final fixed=false) "First sample time instant"; output Boolean sampleTrigger "True, if sample time instant"; Boolean isOpen "Blind state as a boolean"; Real curSeed "Current value for seed as a real-valued variable"; initial equation t0 = time; curSeed = t0*seed; isOpen = false "Initial state of blinds is deployed"; blindState = if isOpen then 0.0 else 1.0; pUp = 0; pDown = 0; equation sampleTrigger = sample(t0,samplePeriod); when sampleTrigger then curSeed = seed*time; if occ then if not pre(isOpen) then // blindState is either 0 or 1. pUp = 0; pDown = Modelica.Math.exp(ADown*solarAltitude+BDown)/(Modelica.Math.exp(ADown*solarAltitude+BDown)+1); isOpen = Buildings.Occupants.BaseClasses.binaryVariableGeneration(p=pDown,globalSeed=integer(curSeed)); else pUp = Modelica.Math.exp(AUp*solarAltitude+BUp)/(Modelica.Math.exp(AUp*solarAltitude+BUp)+1); pDown = 0; isOpen = not Buildings.Occupants.BaseClasses.binaryVariableGeneration(p=pUp,globalSeed=integer(curSeed)); end if; else pUp = 0; pDown = 0; isOpen = false; end if; blindState = if isOpen then 0.0 else 1.0; end when; end Zhang2012BlindsSolarAltitude;

Buildings.Occupants.Office.Blinds.Zhang2012BlindsSolarIntensity Buildings.Occupants.Office.Blinds.Zhang2012BlindsSolarIntensity

A model to predict occupants' blinds behavior with solar intensity

Buildings.Occupants.Office.Blinds.Zhang2012BlindsSolarIntensity

Information

Model predicting the state of the blinds with the solar intensity at the window and occupancy.

Dynamics

When the space is unoccupied, the blinds are always down. When the space is occupied, the lower the solar intensity, the higher the chance that the blind is up.

References

The model is documented in the paper "Zhang, Y. and Barrett, P., 2012. Factors influencing occupants’ blind-control behaviour in a naturally ventilated office building. Building and Environment, 54, pp.137-147."

The model parameters are regressed from the field study in an office building in Sheffield, England.

Extends from Modelica.Blocks.Icons.DiscreteBlock (Graphical layout of discrete block component icon).

Parameters

TypeNameDefaultDescription
RealAUp0.003Slope of solar intensity for blinds up
RealADown0.002Slope of solar intensity for blinds down
RealBUp-3.33Intercept for blinds up
RealBDown-3.17Intercept for blinds down
Integerseed10Seed for the random number generator
TimesamplePeriod120Sample period [s]

Connectors

TypeNameDescription
input RealInputHSolar intensity [W/m2]
input BooleanInputoccIndoor occupancy, true for occupied
output RealOutputblindStateState of blinds, 1 being blinds down [1]

Modelica definition

model Zhang2012BlindsSolarIntensity "A model to predict occupants' blinds behavior with solar intensity" extends Modelica.Blocks.Icons.DiscreteBlock; parameter Real AUp = 0.003 "Slope of solar intensity for blinds up"; parameter Real ADown = 0.002 "Slope of solar intensity for blinds down"; parameter Real BUp = -3.33 "Intercept for blinds up"; parameter Real BDown = -3.17 "Intercept for blinds down"; parameter Integer seed = 10 "Seed for the random number generator"; parameter Modelica.Units.SI.Time samplePeriod=120 "Sample period"; Modelica.Blocks.Interfaces.RealInput H( unit="W/m2") "Solar intensity"; Modelica.Blocks.Interfaces.BooleanInput occ "Indoor occupancy, true for occupied"; Modelica.Blocks.Interfaces.RealOutput blindState( final min=0, final max=1, final unit="1") "State of blinds, 1 being blinds down"; Real pUp( final unit="1", final min=0, final max=1) "The probability of blinds up"; Real pDown( final unit="1", final min=0, final max=1) "The probability of blinds down"; protected parameter Modelica.Units.SI.Time t0(final fixed=false) "First sample time instant"; output Boolean sampleTrigger "True, if sample time instant"; Boolean isOpen "Blind state as a boolean"; Real curSeed "Current value for seed as a real-valued variable"; initial equation t0 = time; curSeed = t0*seed; isOpen = false "Initial state of blinds is deployed"; blindState = if isOpen then 0.0 else 1.0; pUp = 0; pDown = 0; equation sampleTrigger = sample(t0,samplePeriod); when sampleTrigger then curSeed = seed*time; if occ then if pre(isOpen) == false then pUp = 0; pDown = Modelica.Math.exp(ADown*H+BDown)/(Modelica.Math.exp(ADown*H+BDown)+1); isOpen = Buildings.Occupants.BaseClasses.binaryVariableGeneration(p=pDown,globalSeed=integer(curSeed)); else pUp = Modelica.Math.exp(AUp*H+BUp)/(Modelica.Math.exp(AUp*H+BUp)+1); pDown = 0; isOpen = not Buildings.Occupants.BaseClasses.binaryVariableGeneration(p=pUp,globalSeed=integer(curSeed)); end if; else pUp = 0; pDown = 0; isOpen = false; end if; blindState = if isOpen then 0.0 else 1.0; end when; end Zhang2012BlindsSolarIntensity;