Module: CoilDX

Included in:
Standard
Defined in:
lib/openstudio-standards/standards/Standards.CoilDX.rb

Overview

A variety of DX coil methods that are the same regardless of coil type. These methods are available to: CoilCoolingDXSingleSpeed, CoilCoolingDXTwoSpeed, CoilCoolingDXMultiSpeed

CoilDX collapse

Instance Method Details

#coil_dx_cap_fflow(coil_dx, equipment_type = 'Air Conditioners', heating = false) ⇒ String

Determine what capacity curve to use to represent the change of the coil’s capacity as a function of changes in airflow fraction

Parameters:

  • coil_dx (OpenStudio::Model::StraightComponent)

    coil cooling object, allowable types: CoilCoolingDXSingleSpeed, CoilCoolingDXTwoSpeed, CoilCoolingDXMultiSpeed

  • equipment_type (String) (defaults to: 'Air Conditioners')

    Type of equipment

  • heating (Boolean) (defaults to: false)

    Specify if the curve to return is for heating operation

Returns:



132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# File 'lib/openstudio-standards/standards/Standards.CoilDX.rb', line 132

def coil_dx_cap_fflow(coil_dx, equipment_type = 'Air Conditioners', heating = false)
  case equipment_type
  when 'PTAC'
    return 'DX Coil Cap-FF'
  when 'PSZ-AC', 'Air Conditioners'
    return 'CoilClgDXSnglQRatio_fCFMRatio'
  when 'PTHP'
    return 'DXHEAT-NECB2011-REF-CAPFFLOW'
  when 'PSZ-HP', 'Heat Pumps'
    return 'HPACHeatCapFFF' if heating

    return 'HPACCoolCapFFF'
  else
    return 'CoilClgDXSnglQRatio_fCFMRatio'
  end
end

#coil_dx_cap_ft(coil_dx, equipment_type = 'Air Conditioners', heating = false) ⇒ String

Determine what capacity curve to use to represent the change of the coil’s capacity as a function of changes in temperatures

Parameters:

  • coil_dx (OpenStudio::Model::StraightComponent)

    coil cooling object, allowable types: CoilCoolingDXSingleSpeed, CoilCoolingDXTwoSpeed, CoilCoolingDXMultiSpeed

  • equipment_type (String) (defaults to: 'Air Conditioners')

    Type of equipment

  • heating (Boolean) (defaults to: false)

    Specify if the curve to return is for heating operation

Returns:



108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/openstudio-standards/standards/Standards.CoilDX.rb', line 108

def coil_dx_cap_ft(coil_dx, equipment_type = 'Air Conditioners', heating = false)
  case equipment_type
  when 'PTAC'
    return 'PSZ-Fine Storage DX Coil Cap-FT'
  when 'PSZ-AC', 'Air Conditioners'
    return 'CoilClgDXQRatio_fTwbToadbSI'
  when 'PTHP'
    return 'DXHEAT-NECB2011-REF-CAPFT'
  when 'PSZ-HP', 'Heat Pumps'
    return 'HPACHeatCapFT' if heating

    return 'HPACCoolCapFT'
  else
    return 'CoilClgDXQRatio_fTwbToadbSI'
  end
end

#coil_dx_eir_fflow(coil_dx, equipment_type = 'Air Conditioners', heating = false) ⇒ String

Determine what EIR curve to use to represent the change of the coil’s EIR as a function of changes in airflow fraction

Parameters:

  • coil_dx (OpenStudio::Model::StraightComponent)

    coil cooling object, allowable types: CoilCoolingDXSingleSpeed, CoilCoolingDXTwoSpeed, CoilCoolingDXMultiSpeed

  • equipment_type (String) (defaults to: 'Air Conditioners')

    Type of equipment

  • heating (Boolean) (defaults to: false)

    Specify if the curve to return is for heating operation

Returns:



180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
# File 'lib/openstudio-standards/standards/Standards.CoilDX.rb', line 180

def coil_dx_eir_fflow(coil_dx, equipment_type = 'Air Conditioners', heating = false)
  case equipment_type
  when 'PTAC'
    return 'Split DX Coil EIR-FF'
  when 'PSZ-AC', 'Air Conditioners'
    return 'CoilClgDXSnglEIRRatio_fCFMRatio'
  when 'PTHP'
    return 'DXHEAT-NECB2011-REF-EIRFFLOW'
  when 'PSZ-HP', 'Heat Pumps'
    return 'HPACHeatEIRFFF' if heating

    return 'HPACCoolEIRFFF'
  else
    return 'CoilClgDXSnglEIRRatio_fCFMRatio'
  end
end

#coil_dx_eir_ft(coil_dx, equipment_type = 'Air Conditioners', heating = false) ⇒ String

Determine what EIR curve to use to represent the change of the coil’s EIR as a function of changes in temperatures

Parameters:

  • coil_dx (OpenStudio::Model::StraightComponent)

    coil cooling object, allowable types: CoilCoolingDXSingleSpeed, CoilCoolingDXTwoSpeed, CoilCoolingDXMultiSpeed

  • equipment_type (String) (defaults to: 'Air Conditioners')

    Type of equipment

  • heating (Boolean) (defaults to: false)

    Specify if the curve to return is for heating operation

Returns:



156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
# File 'lib/openstudio-standards/standards/Standards.CoilDX.rb', line 156

def coil_dx_eir_ft(coil_dx, equipment_type = 'Air Conditioners', heating = false)
  case equipment_type
  when 'PTAC'
    return 'PSZ-AC DX Coil EIR-FT'
  when 'PSZ-AC', 'Air Conditioners'
    return 'CoilClgDXEIRRatio_fTwbToadbSI'
  when 'PTHP'
    return 'DXHEAT-NECB2011-REF-EIRFT'
  when 'PSZ-HP', 'Heat Pumps'
    return 'HPACHeatEIRFT' if heating

    return 'HPACCoolEIRFT'
  else
    return 'CoilClgDXEIRRatio_fTwbToadbSI'
  end
end

#coil_dx_electric_power_phase(coil_dx) ⇒ String

Determine what electric power phase value should be used for efficiency lookups for DX coils

Parameters:

  • coil_dx (OpenStudio::Model::StraightComponent)

    coil cooling object, allowable types: CoilCoolingDXSingleSpeed, CoilCoolingDXTwoSpeed, CoilCoolingDXMultiSpeed

Returns:

  • (String)

    Electric power phase



92
93
94
95
96
97
98
99
# File 'lib/openstudio-standards/standards/Standards.CoilDX.rb', line 92

def coil_dx_electric_power_phase(coil_dx)
  case template
  when '90.1-2019', '90.1-2016'
    return 3
  else
    return nil
  end
end

#coil_dx_find_search_criteria(coil_dx, necb_ref_hp = false, equipment_type = false) ⇒ Hash

Finds the search criteria

Parameters:

  • coil_dx (OpenStudio::Model::StraightComponent)

    coil cooling object, allowable types: CoilCoolingDXSingleSpeed, CoilCoolingDXTwoSpeed, CoilCoolingDXMultiSpeed

  • necb_ref_hp (Boolean) (defaults to: false)

    for compatability with NECB ruleset only.

  • equipment_type (Boolean) (defaults to: false)

    indicate that equipment_type should be in the search criteria.

Returns:

  • (Hash)

    has for search criteria to be used for find object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/openstudio-standards/standards/Standards.CoilDX.rb', line 14

def coil_dx_find_search_criteria(coil_dx, necb_ref_hp = false, equipment_type = false)
  search_criteria = {}
  search_criteria['template'] = template

  # Cooling type

  search_criteria['cooling_type'] = case coil_dx.iddObjectType.valueName.to_s
                                    when 'OS_Coil_Cooling_DX_SingleSpeed',
                                         'OS_Coil_Cooling_DX_TwoSpeed',
                                         'OS_Coil_Cooling_DX_VariableSpeed',
                                         'OS_Coil_Cooling_DX_MultiSpeed',
                                         'OS_AirConditioner_VariableRefrigerantFlow'
                                      coil_dx.condenserType
                                    else
                                      'AirCooled'
                                    end

  # Get the coil subcategory

  search_criteria['subcategory'] = OpenstudioStandards::HVAC.coil_dx_subcategory(coil_dx)

  # Add the heating type to the search criteria

  htg_type = OpenstudioStandards::HVAC.coil_dx_heating_type(coil_dx)
  unless htg_type.nil?
    search_criteria['heating_type'] = htg_type
  end

  # The heating side of unitary heat pumps don't have a heating type as part of the search

  if coil_dx.to_CoilHeatingDXSingleSpeed.is_initialized &&
    OpenstudioStandards::HVAC.coil_dx_heat_pump?(coil_dx) &&
     coil_dx.airLoopHVAC.empty? && coil_dx.containingHVACComponent.is_initialized
    containing_comp = coil_dx.containingHVACComponent.get
    if containing_comp.to_AirLoopHVACUnitaryHeatPumpAirToAir.is_initialized
      search_criteria['heating_type'] = nil
    end
    # @todo Add other unitary systems

  end

  # Get the equipment type

  if equipment_type && coil_dx.airLoopHVAC.empty? && coil_dx.containingZoneHVACComponent.is_initialized
    containing_comp = coil_dx.containingZoneHVACComponent.get
    # PTAC

    if containing_comp.to_ZoneHVACPackagedTerminalAirConditioner.is_initialized
      search_criteria['equipment_type'] = 'PTAC'
      search_criteria['subcategory'] = nil
      unless (template == 'NECB2011') || (template == 'NECB2015') || (template == 'NECB2017') || (template == 'NECB2020') || (template == 'BTAPPRE1980') ||
             (template == 'BTAP1980TO2010')
        search_criteria['heating_type'] = nil
      end
    end
    # PTHP

    if containing_comp.to_ZoneHVACPackagedTerminalHeatPump.is_initialized && !((template == 'NECB2011') || (template == 'NECB2015') || (template == 'NECB2017') || (template == 'NECB2020') || (template == 'BTAPPRE1980') ||
             (template == 'BTAP1980TO2010'))
      search_criteria['subcategory'] = nil
      search_criteria['heating_type'] = nil
      search_criteria['equipment_type'] = 'PTHP'
    end
  end

  return search_criteria
end

#coil_dx_packaged_terminal_application(coil_dx) ⇒ String

Determine what application to use for looking up the minimum efficiency requirements of PTACs

Parameters:

  • coil_dx (OpenStudio::Model::StraightComponent)

    coil cooling object, allowable types: CoilCoolingDXSingleSpeed, CoilCoolingDXTwoSpeed, CoilCoolingDXMultiSpeed

Returns:

  • (String)

    PTAC application



79
80
81
82
83
84
85
# File 'lib/openstudio-standards/standards/Standards.CoilDX.rb', line 79

def coil_dx_packaged_terminal_application(coil_dx)
  if template.include?('90.1-2004') || template.include?('90.1-2007')
    return 'New Construction'
  else # '90.1-2010', '90.1-2013', '90.1-2016', '90.1-2019', others

    return 'Standard Size'
  end
end

#coil_dx_plf_fplr(coil_dx, equipment_type = 'Air Conditioners', heating = false) ⇒ String

Determine what PLF curve to use to represent the change of the coil’s PLR as a function of changes in PLR

Parameters:

  • coil_dx (OpenStudio::Model::StraightComponent)

    coil cooling object, allowable types: CoilCoolingDXSingleSpeed, CoilCoolingDXTwoSpeed, CoilCoolingDXMultiSpeed

  • equipment_type (String) (defaults to: 'Air Conditioners')

    Type of equipment

  • heating (Boolean) (defaults to: false)

    Specify if the curve to return is for heating operation

Returns:



204
205
206
207
208
209
210
211
212
213
214
215
216
217
# File 'lib/openstudio-standards/standards/Standards.CoilDX.rb', line 204

def coil_dx_plf_fplr(coil_dx, equipment_type = 'Air Conditioners', heating = false)
  case equipment_type
  when 'PTAC'
    return 'HPACCOOLPLFFPLR'
  when 'PSZ-AC', 'Air Conditioners'
    return 'CoilClgDXEIRRatio_fQFrac'
  when 'PTHP'
    return 'DXHEAT-NECB2011-REF-PLFFPLR'
  when 'PSZ-HP', 'Heat Pumps'
    return 'HPACCOOLPLFFPLR'
  else
    return 'CoilClgDXEIRRatio_fQFrac'
  end
end