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

Boiler Staging in OpenStudio 1.9.1

asked 2016-03-11 06:21:29 -0500

Pranav gravatar image

updated 2017-05-17 12:23:48 -0500

Hello,

I need to sequence 2 boilers in OpenStudio 1.9.1, i.e. the first boiler will operate all the time and the second boiler will work if the load is greater than the capacity of the first boiler. Based on previous posts, it looks like plant equipment control is currently not possible in OpenStudio GUI. Is that also applicable to OpenStudio 1.10?

Also, is a model done in version 1.9.1 compatible with 1.10?

Regards, Pranav

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
3

answered 2016-03-11 08:11:10 -0500

updated 2016-03-11 08:13:55 -0500

To answer your second question, yes an OpenStudio model can be updated to a newer version but is not backwards compatible. Unless you have a specific reason to keep your model in 1.9.1, I suggest updating it to the latest major release.

To answer your first question, staging plant equipment is possible through the GUI. However, a small bug is currently preventing any selection in the PlantLoop Load Distribution Scheme other than "Optimal" from being translated to EnergyPlus (see this question).

Until that bug is fixed, an EnergyPlus measure is needed to change this field during a simulation. Below is an (untested) EP measure you could try that will change all plant loops.

# see the URL below for information on how to write OpenStudio measures
# http://nrel.github.io/OpenStudio-user-documentation/reference/measure_writing_guide/

# start the measure
class SetPlantLoopLoadDistributionScheme < OpenStudio::Ruleset::WorkspaceUserScript

  # human readable name
  def name
    return "Set Plant Loop Load Distribution Scheme"
  end

  # human readable description
  def description
    return "TODO"
  end

  # human readable description of modeling approach
  def modeler_description
    return "TODO"
  end

  # define the arguments that the user will input
  def arguments(workspace)
    args = OpenStudio::Ruleset::OSArgumentVector.new

    # none

    return args
  end 

  # define what happens when the measure is run
  def run(workspace, runner, user_arguments)
    super(workspace, runner, user_arguments)

    # use the built-in error checking 
    if !runner.validateUserArguments(arguments(workspace), user_arguments)
      return false
    end

    # assign the user inputs to variables


    # check the user_name for reasonableness


    # get all thermal zones in the starting model


    # reporting initial condition of model


    # add a new zone to the model with the new name
    # http://apps1.eere.energy.gov/buildings/energyplus/pdfs/inputoutputreference.pdf#nameddest=Zone


    # set variables
    load_dist_scheme = "SequentialLoad"

    # get objects
    plant_loops = workspace.getObjectsByType("PlantLoop".to_IddObjectType) #array

    if not plant_loops.empty?

      plant_loops.each do |plant_loop|

        plant_loop.setString(19, load_dist_scheme)

      end

    end

    # echo the new zone's name back to the user, using the index based getString method


    # report final condition of model


    return true

  end

end 

# register the measure to be used by the application
SetPlantLoopLoadDistributionScheme.new.registerWithApplication
edit flag offensive delete link more

Comments

Matthew,

Thank you.

I downloaded OpenStudio 1.10 and tried implementing a plant control scheme using GUI, but the drop-down menu has no options available. Is there a pre-requisite to adding a control scheme?

Pranav

Pranav gravatar image Pranav  ( 2016-03-12 00:13:18 -0500 )edit

In OS 1.10.0 the input can be found in the PlantLoop > Load Distribution Scheme field, which has the choices:

  • Optimal
  • Sequential
  • Uniform

It's found by clicking on the Supply Equipment - Demand Equipment boundary line in the plant loop diagram.

MatthewSteen gravatar image MatthewSteen  ( 2016-03-12 11:22:58 -0500 )edit

Has this bug been fixed yet? I have a central boiler water heating model in OpenStudio 2.4.0, where I get the same results whether I choose Optimal or SequentialLoad for the Load Distribution Scheme. Note that I have one boiler with minimum part load of 0.5 that is serving the source side of a water heater without it's own heating components. As I understand it, Optimal will choose any part load between 0.5 and 1. My boiler has two distinct stages, without any gas rate modulation in between.

Bo White gravatar image Bo White  ( 2018-02-27 15:08:06 -0500 )edit

It was. Might be worth asking new question since this one is ancient in terms of the OpenStudio version.

MatthewSteen gravatar image MatthewSteen  ( 2018-02-27 15:12:16 -0500 )edit

Thanks, Matthew. I added a question here.

Bo White gravatar image Bo White  ( 2018-02-27 15:53:43 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

 

Question Tools

1 follower

Stats

Asked: 2016-03-11 06:21:29 -0500

Seen: 368 times

Last updated: Mar 11 '16