honeybee_energy.hvac.idealair module

Simple ideal air system object used to condition zones.

class honeybee_energy.hvac.idealair.IdealAirSystem(identifier, economizer_type='DifferentialDryBulb', demand_controlled_ventilation=False, sensible_heat_recovery=0, latent_heat_recovery=0, heating_air_temperature=50, cooling_air_temperature=13, heating_limit=Autosize, cooling_limit=Autosize, heating_availability=None, cooling_availability=None)[source]

Bases: _HVACSystem

Simple ideal air system object used to condition zones.

Parameters:
  • identifier – Text string for ideal air system identifier. Must be < 100 characters and not contain any EnergyPlus special characters. This will be used to identify the object across a model and in the exported IDF.

  • economizer_type

    Text to indicate the type of air-side economizer used on the ideal air system. Economizers will mix in a greater amount of outdoor air to cool the zone (rather than running the cooling system) when the zone needs cooling and the outdoor air is cooler than the zone. Choose from the options below. (Default: DifferentialDryBulb).

    • NoEconomizer

    • DifferentialDryBulb

    • DifferentialEnthalpy

  • demand_controlled_ventilation – Boolean to note whether demand controlled ventilation should be used on the system, which will vary the amount of ventilation air according to the occupancy schedule of the Room. (Default: False).

  • sensible_heat_recovery – A number between 0 and 1 for the effectiveness of sensible heat recovery within the system. (Default: 0).

  • latent_heat_recovery – A number between 0 and 1 for the effectiveness of latent heat recovery within the system. (Default: 0).

  • heating_air_temperature – A number for the maximum heating supply air temperature [C]. (Default: 50, which is typical for many air-based HVAC systems).

  • cooling_air_temperature – A number for the minimum cooling supply air temperature [C]. (Default: 13, which is typical for many air-based HVAC systems).

  • heating_limit – A number for the maximum heating capacity in Watts. This can also be an Autosize object to indicate that the capacity should be determined during the EnergyPlus sizing calculation. This can also be a NoLimit object to indicate no upper limit to the heating capacity. (Default: autosize).

  • cooling_limit – A number for the maximum cooling capacity in Watts. This can also be an Autosize object to indicate that the capacity should be determined during the EnergyPlus sizing calculation. This can also be a NoLimit object to indicate no upper limit to the cooling capacity. (Default: autosize).

  • heating_availability – An optional on/off schedule to set the availability of heating over the course of the simulation. (Default: None).

  • cooling_availability – An optional on/off schedule to set the availability of cooling over the course of the simulation. (Default: None).

Properties:
  • identifier

  • display_name

  • economizer_type

  • demand_controlled_ventilation

  • sensible_heat_recovery

  • latent_heat_recovery

  • heating_air_temperature

  • cooling_air_temperature

  • heating_limit

  • cooling_limit

  • heating_availability

  • cooling_availability

  • schedules

  • properties

ToString()

Overwrite .NET ToString.

duplicate()

Get a copy of this object.

classmethod from_dict(data)[source]

Create a IdealAirSystem object from a dictionary.

Parameters:

data – A IdealAirSystem dictionary in following the format below.

{
"type": "IdealAirSystem",
"identifier": "Classroom1 Ideal Loads Air System",  # identifier for the HVAC
"display_name": "Standard IdealAir",  # name for the HVAC
"economizer_type": 'DifferentialDryBulb',  # Economizer type
"demand_controlled_ventilation": True,  # Demand controlled ventilation
"sensible_heat_recovery": 0.75,  # Sensible heat recovery effectiveness
"latent_heat_recovery": 0.7,  # Latent heat recovery effectiveness
"heating_air_temperature": 50,  # Heating supply air temperature
"cooling_air_temperature": 13,  # Cooling supply air temperature
"heating_limit": {'type': 'Autosize'},  # Max size of the heating system
"cooling_limit": {'type': 'Autosize'},  # Max size of the cooling system
"heating_availability": {},  # Schedule for availability of heat or None
"cooling_availability": {}  # Schedule for availability of cooling or None
}
classmethod from_dict_abridged(data, schedule_dict)[source]

Create a IdealAirSystem object from an abridged dictionary.

Parameters:
  • data – A IdealAirSystemAbridged dictionary in following the format below.

  • schedule_dict – A dictionary with schedule identifiers as keys and honeybee schedule objects as values (either ScheduleRuleset or ScheduleFixedInterval). These will be used to assign the schedules to the Setpoint object.

{
"type": 'IdealAirSystemAbridged',
"identifier": 'Warehouse1 Ideal Loads Air System',  # identifier for the HVAC
"economizer_type": 'DifferentialDryBulb',  # Economizer type
"demand_controlled_ventilation": True,  # Demand controlled ventilation
"sensible_heat_recovery": 0.75,  # Sensible heat recovery effectiveness
"latent_heat_recovery": 0.7,  # Latent heat recovery effectiveness
"heating_air_temperature": 40,  # Heating supply air temperature
"cooling_air_temperature": 15,  # Cooling supply air temperature
"heating_limit": 'autosize',  # Max size of the heating system in Watts
"cooling_limit": 'autosize',  # Max size of the cooling system in Watts
"heating_availability": "Warehouse Heating Control",  # schedule identifier
"cooling_availability": "Warehouse Cooling Control",  # schedule identifier
}
classmethod from_idf(idf_string, schedule_dict)[source]

Create an IdealAirSystem object from an EnergyPlus IDF text string.

Parameters:
  • idf_string – A text string fully describing an EnergyPlus HVACTemplate:Zone:IdealLoadsAirSystem definition.

  • schedule_dict – A dictionary with schedule identifiers as keys and honeybee schedule objects as values (either ScheduleRuleset or ScheduleFixedInterval). These will be used to assign the schedules to the IdealAirSystem object.

Returns:

A tuple with two elements

  • ideal_air_system: An IdealAirSystem object loaded from the idf_string.

  • zone_identifier: The identifier of the zone to which the IdealAirSystem object should be assigned.

lock()
to_dict(abridged=False)[source]

IdealAirSystem dictionary representation.

Parameters:

abridged – Boolean to note whether the full dictionary describing the object should be returned (False) or just an abridged version (True), which only specifies the identifiers of schedules. Default: False.

to_idf(room)[source]

IDF string representation of IdealAirSystem object.

Note that this method does not return full definitions of heating/cooling availability schedules and so this objects’s schedules must also be translated into the final IDF file.

Parameters:

room – A Honeybee Room for which the specific IDF string will be generated. This Room must have a Setpoint object for this method to work correctly since all setpoints (and any ventilation requirements) are pulled from this Room.

HVACTemplate:Zone:IdealLoadsAirSystem,
    Zone 1,                  !- Zone Name
    All Zones,               !- Thermostat Name
    FanAvailSched,           !- System Availability Schedule Name
    50,                      !- Maximum Heating Supply Air Temperature {C}
    13,                      !- Minimum Cooling Supply Air Temperature {C}
    0.0156,         !- Maximum Heating Supply Air Humidity Ratio {kgWater/kgDryAir}
    0.0077,         !- Minimum Cooling Supply Air Humidity Ratio {kgWater/kgDryAir}
    NoLimit,                 !- Heating Limit
    ,                        !- Maximum Heating Air Flow Rate {m3/s}
    ,                        !- Maximum Sensible Heating Capacity {W}
    NoLimit,                 !- Cooling Limit
    ,                        !- Maximum Cooling Air Flow Rate {m3/s}
    ,                        !- Maximum Total Cooling Capacity {W}
    ,                        !- Heating Availability Schedule Name
    ,                        !- Cooling Availability Schedule Name
    ConstantSensibleHeatRatio,  !- Dehumidification Control Type
    0.7,                     !- Cooling Sensible Heat Ratio
    60,                      !- Dehumidification Setpoint {percent}
    None,                    !- Humidification Control Type
    30,                      !- Humidification Setpoint {percent}
    flow/person,             !- Outdoor Air Method
    0.00944,                 !- Outdoor Air Flow Rate per Person {m3/s}
    0.0,                     !- Outdoor Air Flow Rate per Zone Floor Area {m3/s-m2}
    0.0,                     !- Outdoor Air Flow Rate per Zone {m3/s}
    ,                        !- Design Specification Outdoor Air Object Name
    None,                    !- Demand Controlled Ventilation Type
    NoEconomizer,            !- Outdoor Air Economizer Type
    None,                    !- Heat Recovery Type
    0.70,                    !- Sensible Heat Recovery Effectiveness
    0.65;                    !- Latent Heat Recovery Effectiveness
unlock()
ECONOMIZER_TYPES = ('NoEconomizer', 'DifferentialDryBulb', 'DifferentialEnthalpy')
property cooling_air_temperature

Get or set a number for the minimum cooling supply air temperature.

property cooling_availability

Get or set a ScheduleRuleset/ScheduleFixedInterval for cooling availability.

property cooling_limit

Get or set a number for the maximum cooling capacity in Watts.

property demand_controlled_ventilation

Get or set a boolean for whether demand controlled ventilation is present.

property display_name

Get or set a string for the object name without any character restrictions.

If not set, this will be equal to the identifier.

property economizer_type

Get or set text to indicate the type of air-side economizer.

Choose from the following options:

  • NoEconomizer

  • DifferentialDryBulb

  • DifferentialEnthalpy

property heating_air_temperature

Get or set a number for the maximum heating supply air temperature.

property heating_availability

Get or set a ScheduleRuleset/ScheduleFixedInterval for heating availability.

property heating_limit

Get or set a number for the maximum heating capacity in Watts.

property identifier

Get or set the text string for HVAC system identifier.

property latent_heat_recovery

Get or set a number for the effectiveness of latent heat recovery.

property properties

Get properties for extensions.

property schedules

Get an array of all the schedules associated with the HVAC system.

property sensible_heat_recovery

Get or set a number for the effectiveness of sensible heat recovery.

property user_data

Get or set an optional dictionary for additional meta data for this object.

This will be None until it has been set. All keys and values of this dictionary should be of a standard Python type to ensure correct serialization of the object to/from JSON (eg. str, float, int, list, dict)