Component List for HVAC system definition
HVAC_perfect_system
Component for the perfect conditioning of a space. With this component we can obtain the heating and cooling loads (sensible and latent).
Parameters
- file_met [component, default = "not_defined", component type = File_met]: Reference to the component where the weather file is defined.
- space [component, default = "not_defined", component type = Space]: Reference to the "Space" component to be controlled by this system.
- input_variables [variable_list, default = []]: List of variables from other components used in this component. They may be used in parameters of the type math_exp.
- outdoor_air_flow [math_exp, unit = "m³/s", default = "0"]: Outside air flow rate (ventilation) supplied to the space. This flow rate is only entered if the system is in operation. The mathematical expression may contain any of the variables declared in the "input_variables" parameter, to be able to reflect the time variation of this value.
- heating_setpoint [math_exp, unit = "°C", default = "20"]: Space heating setpoint temperature. The mathematical expression may contain any of the variables declared in the "input_variables" parameter, to be able to reflect the time variation of this value.
- cooling_setpoint [math_exp, unit = "°C", default = "25"]: Space Cooling setpoint temperature. The mathematical expression may contain any of the variables declared in the "input_variables" parameter, to be able to reflect the time variation of this value.
- humidifying_setpoint [math_exp, unit = "%", default = "0"]: Space relative humidity setpoint for humidification. If the relative humidity of the space is below this value, latent heat is added to maintain the relative humidity. The mathematical expression may contain any of the variables declared in the "input_variables" parameter, to be able to reflect the time variation of this value.
- dehumidifying_setpoint [math_exp, unit = "%", default = "100"]: Space relative humidity setpoint for dehumidification. If the relative humidity of the space is higher this value, latent heat is removed to maintain the relative humidity. The mathematical expression may contain any of the variables declared in the "input_variables" parameter, to be able to reflect the time variation of this value.
- sytem_on_off [math_exp, unit = "on/off", default = "1"]: If this value is 0, the system will be off, otherwise it will be on. The mathematical expression may contain any of the variables declared in the "input_variables" parameter, to be able to reflect the time variation of this value.
If outside air (ventilation) is present, it is introduced into the space as ‘uncontrolled system heat’, and the load values associated with the ventilation can be viewed in the space. The load supplied by the system is that required to maintain the space within the specified temperature and humidity set points, including ventilation if present.
Example:
...
system = osm.components.HVAC_perfect_system("system",project)
param = {
"space": "space_1",
"file_met": "Denver",
"outdoor_air_flow": "0.1",
"heating_setpoint": "20",
"cooling_setpoint": "27",
"humidifying_setpoint": "30",
"dehumidifying_setpoint": "70",
"input_variables":["f = HVAC_schedule.values"],
"system_on_off": "f"
}
system.set_parameters(param)
Variables
After the simulation we will have the following variables of this component:
- Q_sensible [W]: Sensible heat supplied by the system, positive for heating and negative for cooling.
- Q_latent [W]: Latent heat supplied by the system, positive for humidification, negative for dehumidification.
- outdoor_air_flow [m³/s]: Outside air flow rate (ventilation) supplied to the space.
- heating_setpoint [°C]: Heating setpoint temperature.
- cooling_setpoint [°C]: Cooling setpoint temperature.
- humififying_setpoint [%]: Low relative humidity setpoint.
- dehumidifying_setpoint [%]: High relative humidity setpoint.
- state [flag]: Operation of the system: off (0), heating (1), colling (-1), venting (3).
HVAC_DX_equipment
Component to define a direct expansion air conditioning equipment. It can be used to define compact or split 1x1 units.
This equipment can be used for one or more HVAC systems.
Parameters
- nominal_air_flow [float, unit = "m³/s", default = 1, min = 0]: Nominal supply air flow.
- nominal_total_cooling_capacity [float, unit = "W", default = 0, min = 0]: Total cooling gross capacity at nominal cooling conditions.
- nominal_sensible_cooling_capacity [float, unit = "W", default = 0, min = 0]: Sensible cooling gross capacity at nominal cooling conditions.
- nominal_cooling_power [float, unit = "W", default = 0, min = 0]: Electrical power consumed by the equipment at nominal cooling conditions. It must include all the consumptions: compressor, external fan, etc. except the power specified in “indoor_fan_power”.
- indoor_fan_power [float, unit = "W", default = 0, min = 0]: Electrical power consumed by the indoor fan, this power will be added as heat to the air stream.
- nominal_cooling_conditions [float-list, unit = "ºC", default = [27, 19, 35]]: Nominal cooling conditions, in order: indoor dry bulb temperature, indoor wet bulb temperature, outdoor dry bulb temperature.
- total_cooling_capacity_expression [math_exp, unit = "frac", default = "1"]: Mathematical expression to correct the total cooling capacity of the equipment in conditions different from the nominal ones.
- sensible_cooling_capacity_expression [math_exp, unit = "frac", default = "1"]: Mathematical expression to correct the sensible cooling capacity of the equipment in conditions different from the nominal ones.
- cooling_power_expression [math_exp, unit = "frac", default = "1"]: Mathematical expression to correct the electric power consumption at cooling full load operation of the equipment in conditions different from the nominal ones.
- EER_expression [math_exp, unit = "frac", default = "1"]: Mathematical expression to correct the EER, defined as cooling total load supplied by de equipment divided by de electric power consumption, of the equipment in conditions different from the nominal ones. This expression should reflect the partial load behavior of the equipment.
- nominal_heating_capacity [float, unit = "W", default = 0, min = 0]: Heating capacity at nominal heating conditions.
- nominal_heating_power [float, unit = "W", default = 0, min = 0]: Electrical power consumed by the equipment at nominal heating conditions. It must include all the consumptions: compressor, external fan, etc, except the power specified in “no_load_power”.
- nominal_heating_conditions [float-list, unit = "ºC", default = [20, 7, 6]]: Nominal heating conditions, in order: indoor dry bulb temperature, outdoor dry bulb temperature, outdoor wet bulb temperature.
- heating_capacity_expression [math_exp, unit = "frac", default = "1"]: Mathematical expression to correct the heating capacity of the equipment in conditions different from the nominal ones.
- heating_power_expression [math_exp, unit = "frac", default = "1"]: Mathematical expression to correct the electric power consumption at heating full load operation of the equipment in conditions different from the nominal ones.
- COP_expression [math_exp, unit = "frac", default = "1"]: Mathematical expression to correct the COP, defined as heating load supplied by de equipment divided by de electric power consumption, of the equipment in conditions different from the nominal ones. This expression should reflect the partial load behavior of the equipment.
- indoor_fan_operation [option, default = "CONTINUOUS", options = ["CONTINUOUS","CICLING"]]: If the value is “CONTINUOUS” the fan will always run, consuming electrical energy and adding heat to the air stream, even when there is no load. If we specify “CYCLING” the fan will run a fraction of time equal to the partial load at which the equipment operates, therefore, when there is no load there will be no consumption of the fan.
- dry_coil_model [option, default = "SENSIBLE", options = ["SENSIBLE","TOTAL","INTERPOLATION"]]: When calculating the total and sensible capacity of the equipment under non-nominal conditions, it is possible that the total capacity is lower than the sensible capacity. In such a case it will be assumed that the coil does not dehumidify and that the total capacity is equal to the sensible capacity. We will use for both values the value of the sensible if the chosen option is “SENSIBLE” and the total if the chosen option is “TOTAL”.
- power_dry_coil_correction [boolean, default = True]: When the total and sensible power are equal, dry coil, the power expression may be incorrect. If this parameter is activated the simulation will look for the wet bulb temperature that makes the total and sensible capacities equal and use that temperature in the expression that corrects the cooling power.
- expression_max_values [float-list, unit = "-", default = [60,30,60,30,1.5,1]]: Maximum values allowed in the mathematical expressions. The order is [ T_idb [ºC] , T_iwb [ºC] ,T_odb [ºC], T_owb [ºC], F_air [frac], F_load [frac] ]. If any variable exceeds these values, the maximum value is taken.
- expression_min_values [float-list, unit = "-", default = [0,0,-30,-30,0,0]]: Minimum values allowed in the mathematical expressions. The order is [ T_idb [ºC] , T_iwb [ºC] ,T_odb [ºC], T_owb [ºC], F_air [frac], F_load [frac] ]. If any variable is lower than these values, the minimum value is taken.
All mathematical expressions can include the following independent variables.
- T_idb [ºC]: Indoor dry bulb temperature, at the coil inlet of the indoor unit.
- T_iwb [ºC]: Indoor wet bulb temperature, at the coil inlet of the indoor unit.
- T_odb [ºC]: Outdoor dry bulb temperature.
- T_owb [ºC]: Outdoor wet bulb temperature.
- F_air [frac]: Actual supply air flow divided by nominal supply air flow.
"EER_expression" and "COP_expression" may also include the variable F_load, which represents the partial load state of the equipment, calculated as the thermal power supplied at a given instant divided by the cooling or heating capacity at the current operation conditions.
Example:
...
equipment = osm.components.HVAC_DX_equipment("equipment",project)
param = {
"nominal_air_flow": 0.417,
"nominal_total_cooling_capacity": 6000,
"nominal_sensible_cooling_capacity": 4800,
"nominal_cooling_power": 2400,
"indoor_fan_power": 240,
"indoor_fan_operation": "CONTINUOUS",
"total_cooling_capacity_expression": "0.88078 + 0.014248 * T_iwb + 0.00055436 * T_iwb**2 - 0.0075581 * T_odb + 3.2983E-05 * T_odb**2 - 0.00019171 * T_odb * T_iwb",
"sensible_cooling_capacity_expression": "0.50060 - 0.046438 * T_iwb - 0.00032472 * T_iwb**2 - 0.013202 * T_odb + 7.9307E-05 * T_odb**2 + 0.069958 * T_idb - 3.4276E-05 * T_idb**2",
"cooling_power_expression": "0.11178 + 0.028493 * T_iwb - 0.00041116 * T_iwb**2 + 0.021414 * T_odb + 0.00016113 * T_odb**2 - 0.00067910 * T_odb * T_iwb",
"EER_expression": "0.20123 - 0.031218 * F_load + 1.9505 * F_load**2 - 1.1205 * F_load**3",
"nominal_heating_capacity": 6500,
"nominal_heating_power": 2825,
"heating_capacity_expression": "0.81474 + 0.030682602 * T_owb + 3.2303E-05 * T_owb**2",
"heating_power_expression": "1.2012 - 0.040063 * T_owb + 0.0010877 * T_owb**2",
"COP_expression": "0.085652 + 0.93881 * F_load - 0.18344 * F_load**2 + 0.15897 * F_load**3"
}
equipment.set_parameters(param)
HVAC_DX_system
Component for the simulation of an air-conditioning system for a space and using equipment in direct expansion "HVAC_DX_equipment".
Parameters
- file_met [component, default = "not_defined", component type = File_met]: Reference to the component where the weather file is defined.
- space [component, default = "not_defined", component type = Space]: Reference to the "Space" component to be air-conditioned by this system.
- equipment [component, default = "not_defined", component type = HVAC_DX_equipment]: Reference to the "HVAC_DX_equipment" component used by this system.
- supply_air_flow [float, unit = "m³/s", default = 1, min = 0]: Supply air flow used for all the simulation.
- outdoor_air_flow [float, unit = "m³/s", default = 0, min = 0]: Outdoor air flow used for all the simulation. The outside air is mixed with the return air from the room before it enters the indoor coil.
- input_variables [variable_list, default = []]: List of variables from other components used in this component. They may be used in parameters of the type math_exp.
- heating_setpoint [math_exp, unit = "°C", default = "20"]: Space heating setpoint temperature. The mathematical expression may contain any of the variables declared in the "input_variables" parameter, to be able to reflect the time variation of this value.
- cooling_setpoint [math_exp, unit = "°C", default = "25"]: Space Cooling setpoint temperature. The mathematical expression may contain any of the variables declared in the "input_variables" parameter, to be able to reflect the time variation of this value.
- sytem_on_off [math_exp, unit = "on/off", default = "1"]: If this value is 0, the system will be off, otherwise it will be on. The mathematical expression may contain any of the variables declared in the "input_variables" parameter, to be able to reflect the time variation of this value.
- control_type [option, default = "PERFECT", options = ["PERFECT","TEMPERATURE"]]: Type of control used, for the case ‘PERFECT’ the system will maintain exactly the desired temperature in the space, provided it has sufficient capacity. For the ‘TEMPERATURE’ case the power supplied by the system is calculated through a linear regulation law with the room temperature using the thermostat bandwidths, see figure below.
- cooling_bandwidth [float, unit = "ºC", default = 1, min = 0]: Bandwidth used in case control_type is set to "TEMPERATURE" for the cooling setpoint.
- heating_bandwidth [float, unit = "ºC", default = 1, min = 0]: Bandwidth used in case control_type is set to "TEMPERATURE" for the heating setpoint.
- economizer [option, default = "NO", options = ["NO","TEMPERATURE","TEMPERATURE_NOT_INTEGRATED","ENTHALPY","ENTHALPY_LIMITED"]]: Free cooling using outside air (economizer). If the option selected is “NO” no economizer will be used, for the other options the economizer will be used with different control strategies explained below.
- economizer_DT [float, unit = "ºC", default = 0, min = 0]: For economizers type “TEMPERATURE” and “TEMPERATURE_NOT_INTEGRATED” set the temperature difference between the return air and the outside air at which the economizer starts to operate.
- economizer_enthalpy_limit [float, unit = "kJ/kg", default = 0, min = 0]: For economizers type ENTHALPY_LIMITED set the maximun outdoor air enthalpy at which the economizer does not operate.
If outside air (ventilation) is present, and the "indoor_fan_operation" is "CONTINUOUS" at the equipment, the ventilation load and the indoor fan heat are introduced into the space as ‘uncontrolled system heat’, so these loads can be viewed at the space.
The following figure shows the control equations used for the different ranges as a function of space temperature. This control is the one used if the parameter ‘control_type’ is set to ‘TEMPERATURE’.
Economizer
The different types of economizer operation are as follows:
- "TEMPERATURE": Temperature controlled economizer will be implemented that will operate differently depending on the selected control_type, see explanation below.
- "TEMPERATURE_NOT_INTEGRATED": Temperature controlled economizer will be implemented, this economizer operates the same as the “TEMPERATURE” type but only works when the economizer is able to give the full sensible load of the space.
- "ENTHALPY": Enthalpy controlled economizer will be implemented, this type is only available for "PERFECT" control_type. It works in the same way as the “TEMPERATURE” type but compares the enthalpies of the return and outside air instead of the temperatures.
- "ENTHALPY_LIMITED": Enthalpy controlled economizer will be implemented, this type is only available for "PERFECT" control_type. It works the same as the “ENTHALPY” type but compares the enthalpy of the outside air with the fixed value set in the “economizer_enthalpy_limit” parameter.
The operation of the "TEMPERATURE" economizer for "PERFECT" control_type is as follows:
- If the outdoor air temperature is higher than the room temperature minus the value of the parameter “economizer_DT”, the economizer does not operate and the outdoor air flow rate is nominal.
- If the room has cooling load, the outdoor air temperature is lower than the room temperature minus the value of the parameter “economizer_DT", and by increasing the outside air flow rate the entire room load can be provided, the outside air flow rate will be the one required for this purpose.
- If the room has cooling load, the outdoor air temperature is lower than the room temperature minus the value of the parameter “economizer_DT", and the cooling load of the space cannot be provided only with outdoor air, then all the supply air will be outdoor and the coil will provide the remaining sensible cooling load. This mode will not work if the economizer type is “TEMPERATURE_NOT_INTEGRATED”.
The operation of the economizer for "TEMPERATURE" or “TEMPERATURE_NOT_INTEGRATED” types for "TEMPERATURE" control_type is shown in the following figure, the outdoor air fraction, F~OA~, changes as a function of the space air temperature along the continuous green line in the figure when the outdoor air temperature is lower than the return air temperature minus the value of the parameter “economizer_DT”, and the dashed green line will be used when outdoor air temperature is higher than the return air temperature minus the value of the parameter “economizer_DT”
Example:
...
system = osm.components.HVAC_DX_system("system",project)
param = {
"space": "space_1",
"file_met": "Denver",
"equipment": "HVAC_equipment",
"supply_air_flow": 0.417,
"outdoor_air_flow": 0,
"heating_setpoint": "20",
"cooling_setpoint": "27",
"system_on_off": "1",
"control_type": "PERFECT"
}
system.set_parameters(param)
Variables
After the simulation we will have the following variables of this component:
- Q_sensible [W]: Sensible heat supplied by the system, positive for heating and negative for cooling.
- Q_latent [W]: Latent heat supplied by the system, negative for dehumidification.
- heating_setpoint [°C]: Heating setpoint temperature.
- cooling_setpoint [°C]: Cooling setpoint temperature.
- state [flag]: Operation of the system: off (0), heating (1), heating at maximum capacity (2), colling (-1), cooling at maximum capacity (-2), venting (3).
- power [W]: Electrical power consumed by the system.
- EER [frac]: System efficiency ratio for cooling, defined as the total thermal load supplied divided by the electrical power consumed.
- COP [frac]: System efficiency ratio for heating, defined as the thermal load supplied divided by the electrical power consumed.
- outdoor_air_flow [m³/s]: Outside air flow rate (ventilation) supplied to the space.
- T_odb [ºC]: Outdoor dry bulb temperature.
- T_owb [ºC]: Outdoor wet bulb temperature.
- T_idb [ºC]: Indoor dry bulb temperature, at the coil inlet of the indoor unit.
- T_iwb [ºC]: Indoor wet bulb temperature, at the coil inlet of the indoor unit.
- F_air [frac]: Actual supply air flow divided by nominal supply air flow.
- F_load [frac]: Partial load state of the system, calculated as the thermal power supplied at a given instant divided by the cooling or heating capacity at the current operation conditions. Positive for heating and negative for cooling
- T_supply [ºC]: Supply air dry bulb temperature.
- w_supply [g/kg]: Supply air absolute humidity.
- efficiency_degradation [frac]: EER or COP degradation factor obtained from the EER_expression or COP_expression of the equipment.