Source code for honeybee_openstudio.hvac.standards.plant_loop
# coding=utf-8
"""Module taken from OpenStudio-standards.
https://github.com/NREL/openstudio-standards/blob/master/
lib/openstudio-standards/standards/Standards.PlantLoop.rb
"""
from __future__ import division
from ladybug.datatype.temperature import Temperature
from ladybug.datatype.temperaturedelta import TemperatureDelta
from honeybee_openstudio.openstudio import openstudio_model
from .schedule import create_constant_schedule_ruleset
TEMPERATURE = Temperature()
TEMP_DELTA = TemperatureDelta()
[docs]
def chw_sizing_control(model, chilled_water_loop, dsgn_sup_wtr_temp, dsgn_sup_wtr_temp_delt):
"""Apply sizing and controls to chilled water loop.
Args:
model: [OpenStudio::Model::Model] OpenStudio model object.
chilled_water_loop: [OpenStudio::Model::PlantLoop] chilled water loop.
dsgn_sup_wtr_temp: [Double] design chilled water supply T.
dsgn_sup_wtr_temp_delt: [Double] design chilled water supply delta T.
"""
# chilled water loop sizing and controls
dsgn_sup_wtr_temp = 44.0 if dsgn_sup_wtr_temp is None else dsgn_sup_wtr_temp
dsgn_sup_wtr_temp_c = TEMPERATURE.to_unit([dsgn_sup_wtr_temp], 'C', 'F')[0]
dsgn_sup_wtr_temp_delt = 10.1 if dsgn_sup_wtr_temp_delt is None \
else dsgn_sup_wtr_temp_delt
dsgn_sup_wtr_temp_delt_k = TEMP_DELTA.to_unit([dsgn_sup_wtr_temp_delt], 'dC', 'dF')[0]
chilled_water_loop.setMinimumLoopTemperature(1.0)
chilled_water_loop.setMaximumLoopTemperature(40.0)
sizing_plant = chilled_water_loop.sizingPlant()
sizing_plant.setLoopType('Cooling')
sizing_plant.setDesignLoopExitTemperature(dsgn_sup_wtr_temp_c)
sizing_plant.setLoopDesignTemperatureDifference(dsgn_sup_wtr_temp_delt_k)
chw_temp_sch = create_constant_schedule_ruleset(
model, dsgn_sup_wtr_temp_c,
name='{} Temp - {}F'.format(chilled_water_loop.nameString(), int(dsgn_sup_wtr_temp)),
schedule_type_limit='Temperature')
chw_stpt_manager = openstudio_model.SetpointManagerScheduled(model, chw_temp_sch)
chw_stpt_manager.setName('{} Setpoint Manager'.format(chilled_water_loop.nameString()))
chw_stpt_manager.addToNode(chilled_water_loop.supplyOutletNode())
return True
[docs]
def plant_loop_set_chw_pri_sec_configuration(model):
"""Set configuration in model for chilled water primary/secondary loop interface."""
return 'common_pipe'