Question-and-Answer Resource for the Building Energy Modeling Community
Get started with the Help page
Ask Your Question

Revision history [back]

The PlantEquipmentOperationScheme objects made it into the back end in 1.9.0, but won't be in the GUI until 1.12.0. In the meantime, you can use a Measure. The following code might be a useful example of how to do this:

# A default constructed load scheme has a single large load range
cooling_op_scheme = OpenStudio::Model::PlantEquipmentOperationCoolingLoad.new(model)
# This method adds the equipment to the existing load range
cooling_op_scheme.addEquipment(lead_chiller)
cooling_op_scheme.addEquipment(med_chiller)
cooling_op_scheme.addEquipment(big_chiller)

# This cuts the load range into 5 pieces
peak_cooling_cap = 430000.0 # From running the model
# See PlantEquipmentOperationRangeBasedScheme for details about this api 
# 0-20% Lead
cooling_op_scheme.addLoadRange(0.2 * peak_cooling_cap,[lead_chiller])
# 20-40% Med
cooling_op_scheme.addLoadRange(0.4 * peak_cooling_cap,[med_chiller])
# 40-60% Lead + Med
cooling_op_scheme.addLoadRange(0.6 * peak_cooling_cap,[lead_chiller, med_chiller])
# 60-80% Med + Big
cooling_op_scheme.addLoadRange(0.8 * peak_cooling_cap,[med_chiller, big_chiller])
# 80-100% All Chillers
cooling_op_scheme.addLoadRange(1.0 * peak_cooling_cap,[lead_chiller, med_chiller, big_chiller])

The PlantEquipmentOperationScheme objects made it into the back end in 1.9.0, but won't be in the GUI until 1.12.0. In the meantime, you can use a Measure. The following code might be a useful example of how to do this:

# A default constructed load scheme has a single large load range
cooling_op_scheme = OpenStudio::Model::PlantEquipmentOperationCoolingLoad.new(model)
# This method adds the equipment to the existing load range
cooling_op_scheme.addEquipment(lead_chiller)
cooling_op_scheme.addEquipment(med_chiller)
cooling_op_scheme.addEquipment(big_chiller)

# This cuts the load range into 5 pieces
peak_cooling_cap = 430000.0 # From running the model
# See PlantEquipmentOperationRangeBasedScheme for details about this api 
# 0-20% Lead
cooling_op_scheme.addLoadRange(0.2 * peak_cooling_cap,[lead_chiller])
# 20-40% Med
cooling_op_scheme.addLoadRange(0.4 * peak_cooling_cap,[med_chiller])
# 40-60% Lead + Med
cooling_op_scheme.addLoadRange(0.6 * peak_cooling_cap,[lead_chiller, med_chiller])
# 60-80% Med + Big
cooling_op_scheme.addLoadRange(0.8 * peak_cooling_cap,[med_chiller, big_chiller])
# 80-100% All Chillers
cooling_op_scheme.addLoadRange(1.0 * peak_cooling_cap,[lead_chiller, med_chiller, big_chiller])

Edit

# Set the equipment to run sequentially in each load range.
# See PlantLoop LoadDistributionScheme field documentation for more options.
plant_loop.setLoadDistributionScheme('SequentialLoad')