ladybug_comfort.adaptive module

Utility functions for calculating Adaptive Thermal Comfort.

The Adaptive thermal comfort model is for use on the interior of buildings where a heating or cooling system is not operational and occupants have the option to open windows for natural ventilation.

Note that, for fully conditioned buildings, the PMV thermal comfort model is recommended.

ladybug_comfort.adaptive.adaptive_comfort_ashrae55(t_prevail, to)[source]

Get adaptive comfort criteria according to ASHRAE-55.

Note

[1] ASHRAE Standard 55 (2017). “Thermal Environmental Conditions for Human Occupancy.” Atlanta Georgia: American Society of Heating, Refrigerating and Air Conditioning Engineers.

Parameters:
  • t_prevail – The prevailing outdoor temperature [C]. For the ASHRAE-55 adaptive comfort model, this is typically the average monthly outdoor temperature.

  • to – Operative temperature [C]

Returns:

A dictionary containing results with the following keys

  • to : Operative Temperature [C].

  • t_comf : Adaptive comfort neutral temperature (desired by occupants) [C].

  • deg_comf: The difference between the operative temperature (to) and the adaptive comfort neutral temperature (t_comf) [C]. Negative values indicate cool conditions and positive values indicate warm conditions.

ladybug_comfort.adaptive.adaptive_comfort_conditioned(t_prevail, to, conditioning, model)[source]

Get adaptive comfort using SCATs neutral temp function for heated/cooled operation.

Note that the use of adaptive comfort methods in conditioned buildings is not an official part of either ASHRAE-55 or the EN standard. For more information on how adaptive comfort methods can be applied to conditioned buildings, see the neutral_temperature_conditioned function.

Parameters:
  • t_prevail – The prevailing outdoor temperature [C]. For the EN adaptive comfort model, this is typically the exponentially weighted running mean of the outdoor temperature over the past week. Use the weighted_running_mean functions to compute this value.

  • to – Operative temperature [C]

  • conditioning

    A number between 0 and 1 that represents how “conditioned” vs. “free-running” the building is.

    • 0 = free-running (completely passive with no air conditioning)

    • 1 = conditioned (no operable windows and fully air conditioned)

  • model – The comfort standard, which will be used to represent the “free-running” function. Chose from: ‘EN-16798’, ‘ASHRAE-55’.

Returns:

A dictionary containing results with the following keys

  • to : Operative Temperature [C].

  • t_comf : Adaptive comfort neutral temperature (desired by occupants) [C].

  • deg_comf: The difference between the operative temperature (to) and the adaptive comfort neutral temperature (t_comf) [C]. Negative values indicate cool conditions and positive values indicate warm conditions.

ladybug_comfort.adaptive.adaptive_comfort_conditioned_function(conditioning, model)[source]

Get an adaptive_comfort_conditioned function with pre-set conditioning/model.

Parameters:
  • conditioning

    A number between 0 and 1 that represents how “conditioned” vs. “free-running” the building is.

    • 0 = free-running (completely passive with no air conditioning)

    • 1 = conditioned (no operable windows and fully air conditioned)

  • model – The comfort standard, which will be used to represent the “free-running” function. Chose from: ‘EN-16798’, ‘ASHRAE-55’.

ladybug_comfort.adaptive.adaptive_comfort_en15251(t_prevail, to)[source]

Get adaptive comfort criteria according to EN-15251 and EN-16798.

Note

[1] CEN (2007) Standard EN15251. Indoor Environmental Input Parameters for Design and Assessment of Energy Performance of Buildings: Addressing indoor air quality, thermal environment, lighting and acoustics, Brussels: Comite Europeen de Normalisation.

Parameters:
  • t_prevail – The prevailing outdoor temperature [C]. For the EN-15251 adaptive comfort model, this is typically the exponentially weighted running mean of the outdoor temperature over the past week. Use the weighted_running_mean functions to compute this value.

  • to – Operative temperature [C]

Returns:

A dictionary containing results with the following keys

  • to : Operative Temperature [C].

  • t_comf : Adaptive comfort neutral temperature (desired by occupants) [C].

  • deg_comf: The difference between the operative temperature (to) and the adaptive comfort neutral temperature (t_comf) [C]. Negative values indicate cool conditions and positive values indicate warm conditions.

ladybug_comfort.adaptive.ashrae55_neutral_offset_from_ppd(ppd=90)[source]

Get acceptable offset from neutral temperature given the ASHRAE-55 PPD limit.

Parameters:

ppd – The acceptable limit of Percentage of People Dissatisfied (PPD). Usually, this is 90% but it can be 80% in some cases.

Returns:

offset – Acceptable temperature offset from neutral temperature [C]

ladybug_comfort.adaptive.check_prevailing_temperatures_ashrae55(t_prevail)[source]

Check whether prevailing temperatures are outside permissable ranges for ASHRAE-55.

Parameters:

t_prevail – A list of prevailing outdoor temperature [C].

Returns:

A tuple with two elements

  • all_in_range: A boolean to note whether all of the input t_prevail values are in acceptable ranges.

  • message: Text indicating the number of values that are above and below acceptable ranges.

ladybug_comfort.adaptive.check_prevailing_temperatures_en15251(t_prevail)[source]

Check whether prevailing temperatures are outside permissable ranges for EN.

Parameters:

t_prevail – A list of prevailing outdoor temperature [C].

Returns:

A tuple with two elements

  • all_in_range: A boolean to note whether all of the input t_prevail values are in acceptable ranges.

  • message: Text indicating the number of values that are above and below acceptable ranges.

ladybug_comfort.adaptive.check_prevailing_temperatures_range(t_prevail, lower, upper, standard='')[source]

Check prevailing temperatures to see how many are outside a certain range.

Parameters:
  • t_prevail – A list of prevailing outdoor temperature [C].

  • lower – A lower limit for the temperatures [C].

  • upper – An upper limit for the temperatures [C].

  • standard – Optional text for a standard name that will be used in the output message (eg. ASHRAE-55).

Returns:

A tuple with two elements

  • all_in_range: A boolean to note whether all of the input t_prevail values are in acceptable ranges.

  • message: Text indicating the number of values that are above and below acceptable ranges.

ladybug_comfort.adaptive.cooling_effect_ashrae55(vel, to, tp=None)[source]

Get ASHRAE-55 cooling effect as a result of elevated air speed.

Parameters:
  • vel – Relative air velocity [m/s]

  • to – Operative Temperature [C]

  • tp – Prevailing Outdoor Temperature [C]. Currently not used in calculations.

Returns:

ce – Cooling effect as a result of elevated air speed [C]

ladybug_comfort.adaptive.cooling_effect_en15251(vel, to, trm=None)[source]

Get EN-15251 cooling effect as a result of elevated air speed.

Parameters:
  • vel – Relative air velocity [m/s].

  • to – Operative Temperature [C].

  • trm – Running Mean Outdoor Air Temperature [C]. Currently not used in calculations.

Returns:

ce – Cooling effect as a result of elevated air speed [C]

ladybug_comfort.adaptive.cooling_effect_en16798(vel, to, trm)[source]

Get EN-16798 cooling effect as a result of elevated air speed.

Parameters:
  • vel – Relative air velocity [m/s]

  • to – Operative Temperature [C]

  • trm – Running Mean Outdoor Air Temperature [C]

Returns:

ce – Cooling effect as a result of elevated air speed [C]

ladybug_comfort.adaptive.en15251_neutral_offset_from_comfort_class(comf_class)[source]

Get acceptable offset from neutral temperature given the EN comfort class.

Parameters:

comf_class – An integer representing the EN comfort class. Choose from: 1, 2, 3 (the higher the class, the greater the offset)

Returns:

offset – Acceptable temperature offset from neutral temperature [C]

ladybug_comfort.adaptive.neutral_temperature_ashrae55(t_prevail)[source]

Get the neutral temperature (desired by occupants) according to ASHRAE-55.

Note

[1] de Dear, R.J. and Brager, G.S. (2002) Thermal comfort in naturally ventilated buildings: Revisions to ASHRAE Standard 55. Energy and Buildings 34(6), 549-61.

[2] de Dear, R.J. (1998) A global database of thermal comfort experiments. ASHRAE Technical data bulletin 14(1), 15-26.

Parameters:

t_prevail – The prevailing outdoor temperature [C]. For the ASHRAE-55 adaptive comfort model, this is typically the average monthly outdoor temperature.

Returns:

The desired neutral temperature for the input prevailing outdoor temperature.

ladybug_comfort.adaptive.neutral_temperature_conditioned(t_prevail, conditioning, model='EN-16798')[source]

Get the neutral temperature for a conditioned or partly conditioned building.

Note that the use of adaptive comfort methods in conditioned buildings is not an official part of any standard. Both the American ASHRAE-55 standard and the European EN standard state that the adaptive model should only be used when the following criteria are met:

  1. There is no mechanical cooling or heating system in operation (in the case of ASHRAE-55, no mechanical cooling system is installed and no heating system is in operation)

  2. Metabolic rates of occupants range from 1.0 to 1.3 met

  3. Occupants are allowed to freely adapt their clothing insulation (in the case of ASHRAE-55, occupants must specifically be allowed to adapt clothing within a range at least as wide as 0.5 - 1.0 clo)

However, the SCATs project[1], from which the EN standard is derived, involved the survey of conditioned buildings and a neutral temperature function was obtained for heated and cooled modes of operation. While the coefficient of determination (aka. R squared) of this function was not as strong as that for free-running buildings, it appears to be stronger than PMV calculated from the observed conditions in the SCATs data set[2]. Accordingly, it has been published in CIBSE guide[3] and has been included here along with methods to calculate neutral temperature functions in between free-running and heated/cooled conditions.

Note

[1] Nicol, F. and McCartney, K. (2001) Final Report (Public) Smart Controls and Thermal Comfort (SCATs). Report to the European Commission of the Smart Controls and Thermal Comfort project. Oxford: Oxford Brokes University.

[2] Humphreys, M., Nicol, F. and Roaf, S. (2016) Adaptive Thermal Comfort: Foundations and Analysis. Routledge. Chapter 14: PMV and the results of field studies.

[3] CIBSE (2006) Environmental Criteria for Design, Chapter 1: Environmental Design: CIBSE Guide A. London: Chartered Institution of Building Services Engineers.

Parameters:
  • t_prevail – The prevailing outdoor temperature [C].

  • conditioning

    A number between 0 and 1 that represents how “conditioned” vs. “free-running” the building is.

    • 0 = free-running (completely passive with no air conditioning)

    • 1 = conditioned (no operable windows and fully air conditioned)

  • model – The comfort standard, which will be used to represent the “free-running” function. Chose from: ‘EN-16798’, ‘ASHRAE-55’.

Returns:

The desired neutral temperature for the input prevailing outdoor temperature.

ladybug_comfort.adaptive.neutral_temperature_conditioned_function(conditioning, model)[source]

Get a neutral_temperature_conditioned function with pre-set conditioning/model.

Parameters:
  • conditioning

    A number between 0 and 1 that represents how “conditioned” vs. “free-running” the building is.

    • 0 = free-running (completely passive with no air conditioning)

    • 1 = conditioned (no operable windows and fully air conditioned)

  • model – The comfort standard, which will be used to represent the “free-running” function. Chose from: ‘EN-16798’, ‘ASHRAE-55’.

ladybug_comfort.adaptive.neutral_temperature_en15251(t_prevail)[source]

Get the neutral temperature (desired by occupants) according to the EN standard.

Note

[1] CIBSE (2006) Environmental Criteria for Design, Chapter 1: Environmental Design: CIBSE Guide A. London: Chartered Institution of Building Services Engineers.

[2] Nicol, F. and McCartney, K. (2001) Final Report (Public) Smart Controls and Thermal Comfort (SCATs). Report to the European Commission of the Smart Controls and Thermal Comfort project. Oxford: Oxford Brokes University.

Parameters:

t_prevail – The prevailing outdoor temperature [C]. For the EN adaptive comfort model, this is typically the exponentially weighted running mean of the outdoor temperature over the past week. Use the weighted_running_mean functions to compute this value.

Returns:

The desired neutral temperature for the input prevailing outdoor temperature.

ladybug_comfort.adaptive.t_operative(ta, tr)[source]

Get operative temperature from air and radiant temperature.

Parameters:
  • ta – Air temperature [C]

  • tr – Mean radiant temperature [C]

Returns:

Operative temperature [C]

ladybug_comfort.adaptive.weighted_running_mean_daily(outdoor_temperatures, alpha=0.8)[source]

Get weighted running mean temperatures given average daily outdoor temperatures.

Note

[1] Nicol, F. and McCartney, K. (2001) Final Report (Public) Smart Controls and Thermal Comfort (SCATs). Report to the European Commission of the Smart Controls and Thermal Comfort project. Oxford: Oxford Brokes University.

Parameters:
  • outdoor_temperatures – A list of daily outdoor temperatures in Celsius for which running mean values will be computed. The list should contain at least 7 values in order to be meaningful. Lists shorter than 1 are not acceptable.

  • alpha – A constant between 0 and 1 that governs how quickly the running mean responds to the outdoor temperature. Default is 0.8, which was found to be most suitable by Nicol and McCartney[1].

Returns:

daily_run_means – A list of prevailing outdoor temperatures with a length that matches the input outdoor_temperatures.

ladybug_comfort.adaptive.weighted_running_mean_hourly(outdoor_temperatures, alpha=0.8)[source]

Get weighted running mean temperatures given hourly outdoor temperatures.

Note

[1] Nicol, F. and McCartney, K. (2001) Final Report (Public) Smart Controls and Thermal Comfort (SCATs). Report to the European Commission of the Smart Controls and Thermal Comfort project. Oxford: Oxford Brokes University.

Parameters:
  • outdoor_temperatures – A list of hourly outdoor temperatures in Celsius for which running mean values will be computed. The list should contain at least 168 values (1 week of data) in order to be meaningful. Lists shorter than 24 are not acceptable.

  • alpha – A constant between 0 and 1 that governs how quickly the running mean responds to the outdoor temperature. Default is 0.8, which was found to be most suitable by Nicol and McCartney[1].

Returns:

prevailing_temp – A list of prevailing outdoor temperatures with a length that matches the input outdoor_temperatures.