# open the class to add methods to return sizing values class OpenStudio::Model::CoilHeatingGasMultiStage def apply_efficiency_and_curves(template, standards) successfully_set_all_properties = true # Get the coil capacity capacity_w = nil htg_stages = stages if htg_stages.last.nominalCapacity.is_initialized capacity_w = htg_stages.last.nominalCapacity.get elsif autosizedStage4NominalCapacity.is_initialized capacity_w = autosizedStage4NominalCapacity.get else OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingDXMultiSpeed', "For #{name} capacity is not available, cannot apply efficiency standard.") successfully_set_all_properties = false return successfully_set_all_properties end # Set number of stages for NECB 2011 if template == 'NECB 2011' num_stages = (capacity_w / (66.0 * 1000.0) + 0.5).round num_stages = [num_stages, 4].min stage_cap = [] if num_stages == 1 stage_cap[0] = capacity_w / 2.0 stage_cap[1] = 2.0 * stage_cap[0] stage_cap[2] = stage_cap[1] + 0.1 stage_cap[3] = stage_cap[2] + 0.1 else stage_cap[0] = 66.0 * 1000.0 stage_cap[1] = 2.0 * stage_cap[0] if num_stages == 2 stage_cap[2] = stage_cap[1] + 0.1 stage_cap[3] = stage_cap[2] + 0.1 elsif num_stages == 3 stage_cap[2] = 3.0 * stage_cap[0] stage_cap[3] = stage_cap[2] + 0.1 elsif num_stages == 4 stage_cap[2] = 3.0 * stage_cap[0] stage_cap[3] = 4.0 * stage_cap[0] end end # set capacities, flow rates, and sensible heat ratio for stages (0..3).each do |istage| htg_stages[istage].setNominalCapacity(stage_cap[istage]) end # PLF vs PLR curve furnace_plffplr_curve_name = 'FURNACE-EFFPLR-NECB2011' end # plf vs plr curve for furnace furnace_plffplr_curve = model.add_curve(furnace_plffplr_curve_name, standards) if furnace_plffplr_curve setPartLoadFractionCorrelationCurve(furnace_plffplr_curve) else OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilHeatingGasMultiStage', "For #{name}, cannot find plffplr curve, will not be set.") successfully_set_all_properties = false end end end