Buildings.Occupants.Residential.AirConditioning

Package with models to simulate air conditioning behaviors in resident buildings

Information

This package contains models to simulate air conditioning behaviors in residential buildings.

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

Package Content

Name Description
Buildings.Occupants.Residential.AirConditioning.Ren2014ACBedroom Ren2014ACBedroom A model to predict occupants' AC behavior in bedroom with indoor temperature
Buildings.Occupants.Residential.AirConditioning.Ren2014ACLivingroom Ren2014ACLivingroom A model to predict occupants' AC behavior in Livingroom with indoor temperature
Buildings.Occupants.Residential.AirConditioning.Validation Validation Package with examples to validate models in AC package

Buildings.Occupants.Residential.AirConditioning.Ren2014ACBedroom Buildings.Occupants.Residential.AirConditioning.Ren2014ACBedroom

A model to predict occupants' AC behavior in bedroom with indoor temperature

Buildings.Occupants.Residential.AirConditioning.Ren2014ACBedroom

Information

Model predicting the state of the AC with the indoor temperature and occupancy.

Dynamics

When the space is unoccupied, the AC is always off. When the space is occupied, the lower the indoor temperature is, the lower the chance to turn on the AC and higher the chance to turn off the AC.

References

The model is documented in the paper "Ren, X., Yan, D. and Wang, C., 2014. Air-conditioning usage conditional probability model for residential buildings. Building and Environment, 81, pp.172-182."

The model parameters are regressed from the field study in China in 2014.

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

Parameters

TypeNameDefaultDescription
Realu1304.40Threshold for turning off the AC of the Weibull Distribution
Realu2301.90Threshold for turning on the AC of the Weibull Distribution
RealL113.34Normalization factor for turning off the AC of the Weibull Distribution
RealL242.86Normalization factor for turning on the AC of the Weibull Distribution
Realk11.73Shape factor for turning off the AC of the Weibull Distribution
Realk21.80Shape factor for turning on the AC of the Weibull Distribution
TimesamplePeriod120Sample period [s]
Integerseed10Seed for random number generator

Connectors

TypeNameDescription
input RealInputTInIndoor air temperature [K]
input BooleanInputoccIndoor occupancy, true for occupied
output BooleanOutputonState of AC

Modelica definition

model Ren2014ACBedroom "A model to predict occupants' AC behavior in bedroom with indoor temperature" extends Modelica.Blocks.Icons.DiscreteBlock; parameter Real u1 = 304.40 "Threshold for turning off the AC of the Weibull Distribution"; parameter Real u2 = 301.90 "Threshold for turning on the AC of the Weibull Distribution"; parameter Real L1 = 13.34 "Normalization factor for turning off the AC of the Weibull Distribution"; parameter Real L2 = 42.86 "Normalization factor for turning on the AC of the Weibull Distribution"; parameter Real k1 = 1.73 "Shape factor for turning off the AC of the Weibull Distribution"; parameter Real k2 = 1.80 "Shape factor for turning on the AC of the Weibull Distribution"; parameter Modelica.Units.SI.Time samplePeriod=120 "Sample period"; parameter Integer seed = 10 "Seed for random number generator"; 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.BooleanOutput on "State of AC"; Real pOn( final unit="1", final min=0, final max=1) "Probability of turning on the AC"; Real pOff( final unit="1", final min=0, final max=1) "Probability of turning off the AC"; 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; on = false "The initial state of AC is off"; pOn = 0; pOff = 0; equation sampleTrigger = sample(t0,samplePeriod); when sampleTrigger then curSeed = seed*time; pOff = if TIn <= u1 then 1 - Modelica.Math.exp(-((u1-TIn)/L1)^k1*samplePeriod) else 0; pOn = if TIn >= u2 then 1 - Modelica.Math.exp(-((TIn-u2)/L2)^k2*samplePeriod) else 0; if occ then if pre(on) then on = not Buildings.Occupants.BaseClasses.weibull1DOFF( x=TIn, u=u1, L=L1, k=k1, dt=samplePeriod, globalSeed=integer(curSeed)); else on = Buildings.Occupants.BaseClasses.weibull1DON( x=TIn, u=u2, L=L2, k=k2, dt=samplePeriod, globalSeed=integer(curSeed)); end if; else on = false; end if; end when; end Ren2014ACBedroom;

Buildings.Occupants.Residential.AirConditioning.Ren2014ACLivingroom Buildings.Occupants.Residential.AirConditioning.Ren2014ACLivingroom

A model to predict occupants' AC behavior in Livingroom with indoor temperature

Buildings.Occupants.Residential.AirConditioning.Ren2014ACLivingroom

Information

Model predicting the state of the AC with the indoor temperature and occupancy.

Dynamics

When the space is unoccupied, the AC is always off. When the space is occupied, the lower the indoor temperature is, the lower the chance to turn on the AC and higher the chance to turn off the AC.

References

The model is documented in the paper "Ren, X., Yan, D. and Wang, C., 2014. Air-conditioning usage conditional probability model for residential buildings. Building and Environment, 81, pp.172-182."

The model parameters are regressed from the field study in China in 2014.

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

Parameters

TypeNameDefaultDescription
Realu1303.40Threshold for turning off the AC of the Weibull Distribution
Realu2300.90Threshold for turning on the AC of the Weibull Distribution
RealL1152.88Normalization factor for turning off the AC of the Weibull Distribution
RealL215.87Normalization factor for turning on the AC of the Weibull Distribution
Realk11.30Shape factor for turning off the AC of the Weibull Distribution
Realk22.22Shape factor for turning on the AC of the Weibull Distribution
TimesamplePeriod120Sample period [s]
Integerseed10Seed for random number generator

Connectors

TypeNameDescription
input RealInputTInIndoor air temperature [K]
input BooleanInputoccIndoor occupancy, true for occupied
output BooleanOutputonState of AC

Modelica definition

model Ren2014ACLivingroom "A model to predict occupants' AC behavior in Livingroom with indoor temperature" extends Modelica.Blocks.Icons.DiscreteBlock; parameter Real u1 = 303.40 "Threshold for turning off the AC of the Weibull Distribution"; parameter Real u2 = 300.90 "Threshold for turning on the AC of the Weibull Distribution"; parameter Real L1 = 152.88 "Normalization factor for turning off the AC of the Weibull Distribution"; parameter Real L2 = 15.87 "Normalization factor for turning on the AC of the Weibull Distribution"; parameter Real k1 = 1.30 "Shape factor for turning off the AC of the Weibull Distribution"; parameter Real k2 = 2.22 "Shape factor for turning on the AC of the Weibull Distribution"; parameter Modelica.Units.SI.Time samplePeriod=120 "Sample period"; parameter Integer seed = 10 "Seed for random number generator"; 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.BooleanOutput on "State of AC"; Real pOn( unit="1", min=0, max=1) "Probability of turning on the AC"; Real pOff( unit="1", min=0, max=1) "Probability of turning off the AC"; 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; on = false "The initial state of AC is off"; pOn = 0; pOff = 0; equation sampleTrigger = sample(t0,samplePeriod); when sampleTrigger then curSeed = seed*time; pOff = if TIn <= u1 then 1 - Modelica.Math.exp(-((u1-TIn)/L1)^k1*samplePeriod) else 0; pOn = if TIn >= u2 then 1 - Modelica.Math.exp(-((TIn-u2)/L2)^k2*samplePeriod) else 0; if occ then if pre(on) then on = not Buildings.Occupants.BaseClasses.weibull1DOFF( x=TIn, u=u1, L=L1, k=k1, dt=samplePeriod, globalSeed=integer(curSeed)); else on = Buildings.Occupants.BaseClasses.weibull1DON( x=TIn, u=u2, L=L2, k=k2, dt=samplePeriod, globalSeed=integer(curSeed)); end if; else on = false; end if; end when; end Ren2014ACLivingroom;