Class: OpenStudio::Model::PumpVariableSpeed

Inherits:
Object
  • Object
show all
Includes:
Pump
Defined in:
lib/openstudio-standards/standards/Standards.PumpVariableSpeed.rb,
lib/openstudio-standards/hvac_sizing/Siz.PumpVariableSpeed.rb

Overview

open the class to add methods to return sizing values

Instance Method Summary collapse

Methods included from Pump

#apply_prm_pressure_rise_and_motor_efficiency, #apply_standard_minimum_motor_efficiency, #brake_horsepower, #motor_horsepower, #pump_power, #rated_w_per_gpm, #standard_minimum_motor_efficiency_and_size

Instance Method Details

#applySizingValuesObject

Takes the values calculated by the EnergyPlus sizing routines and puts them into this object model in place of the autosized fields. Must have previously completed a run with sql output for this to work.



13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/openstudio-standards/hvac_sizing/Siz.PumpVariableSpeed.rb', line 13

def applySizingValues

  rated_flow_rate = self.autosizedRatedFlowRate
  if rated_flow_rate.is_initialized
    self.setRatedFlowRate(rated_flow_rate.get) 
  end
  
  rated_power_consumption = self.autosizedRatedPowerConsumption
  if rated_power_consumption.is_initialized
    self.setRatedPowerConsumption(rated_power_consumption.get)
  end
  
  
end

#autosizeObject

Sets all auto-sizeable fields to autosize



6
7
8
# File 'lib/openstudio-standards/hvac_sizing/Siz.PumpVariableSpeed.rb', line 6

def autosize
  OpenStudio::logFree(OpenStudio::Warn, "openstudio.sizing.PumpVariableSpeed", ".autosize not yet implemented for #{self.iddObject.type.valueDescription}.")
end

#autosizedRatedFlowRateObject

returns the autosized rated flow rate as an optional double



29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/openstudio-standards/hvac_sizing/Siz.PumpVariableSpeed.rb', line 29

def autosizedRatedFlowRate

  # In E+ 8.5, (OS 1.10.5 onward) the column name changed
  col_name = nil
  if self.model.version < OpenStudio::VersionString.new('1.10.5')
    col_name = 'Rated Flow Rate'
  else
    col_name = 'Design Flow Rate'
  end  
 
  return self.model.getAutosizedValue(self, col_name, 'm3/s')
  
end

#autosizedRatedPowerConsumptionObject

returns the autosized rated power consumption as an optional double



44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/openstudio-standards/hvac_sizing/Siz.PumpVariableSpeed.rb', line 44

def autosizedRatedPowerConsumption

  # In E+ 8.5, (OS 1.10.5 onward) the column name changed
  col_name = nil
  if self.model.version < OpenStudio::VersionString.new('1.10.5')
    col_name = 'Rated Power Consumption'
  else
    col_name = 'Design Power Consumption'
  end  
 
  return self.model.getAutosizedValue(self, col_name, 'W')
  
end

#set_control_type(control_type) ⇒ Object

Set the pump curve coefficients based on the specified control type.

are Riding Curve, VSD No Reset, VSD DP Reset

Parameters:

  • control_type (String)

    valid choices



11
12
13
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
# File 'lib/openstudio-standards/standards/Standards.PumpVariableSpeed.rb', line 11

def set_control_type(control_type)
  # Determine the coefficients
  coeff_a = nil
  coeff_b = nil
  coeff_c = nil
  coeff_d = nil
  case control_type
  when 'Constant Flow'
    coeff_a = 0.0
    coeff_b = 1.0
    coeff_c = 0.0
    coeff_d = 0.0
  when 'Riding Curve'
    coeff_a = 0.0
    coeff_b = 3.2485
    coeff_c = -4.7443
    coeff_d = 2.5294
  when 'VSD No Reset'
    coeff_a = 0.0
    coeff_b = 0.5726
    coeff_c = -0.301
    coeff_d = 0.7347
  when 'VSD DP Reset'
    coeff_a = 0.0
    coeff_b = 0.0205
    coeff_c = 0.4101
    coeff_d = 0.5753
  else
    OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.PumpVariableSpeed', "Pump control type '#{control_type}' not recognized, pump coefficients will not be changed.")
    return false
  end

  # Set the coefficients
  setCoefficient1ofthePartLoadPerformanceCurve(coeff_a)
  setCoefficient2ofthePartLoadPerformanceCurve(coeff_b)
  setCoefficient3ofthePartLoadPerformanceCurve(coeff_c)
  setCoefficient4ofthePartLoadPerformanceCurve(coeff_d)
  setPumpControlType('Intermittent')

  # Append the control type to the pump name
  # self.setName("#{self.name} #{control_type}")

  return true
end