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

SolarCollector heat extraction from roof

asked 2015-01-27 09:48:58 -0500

LSurf's avatar

updated 2015-04-13 13:16:14 -0500

I'm trying to model a building integrated solar collector in EnergyPlus. Eventually, I'll write an OpenStudio measure to add the solarcollector to a specified surface.

I'm quite new to EnergyPlus and the modeling of solar collectors. In reviewing the results from the different EnergyPlus examples I found that when using a SolarCollector:FlatPlate:Water, heat supplied to the water is not extracted from the roof. Therefore, simulated heat load on the building will be higher than actual.

When using an SolarCollector:IntegralCollectorStorage, this is accounted for using the SurfaceProperty:OtherSideConditionsModel. This accounts for a ventilated cavity.

The only way I currently see to model my scenario is to:

  • See if i can model using my flatplate using an ICS collector
  • Use the ventilated cavity model, with a minimal cavity opening

Would this be the preferred way of simulating such a system? Or is there some other way to have EnergyPlus account for heat losses due to heating of the water?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2015-01-27 11:53:51 -0500

updated 2015-01-27 11:55:16 -0500

I'll let someone else address the best approach in EnergyPlus for this, but I wanted to give some advice when for when you write the measure. Basically start simple, with the measure being little more than a block of hard coded IDF text that gets dropped in. It will pretty quick and will work for what you need. To make it useful for future models, parametric studies, and to share start to expose some variables as user arguments and add in looping and conditional logic as needed. In my example Simple PV E+ measure which was also based on example files I exposed a user argument for shading surface type and then loop through shading surfaces of the correct type.

The one things that makes yours more complex is the connection to the building water system. The simple PV is pretty isolated other than a reference to a surface in the model. It is also more work to do building integrated, but should be possible. I did some initial testing with integrated PV with cavity, but never made a measure with it.

I create an array of strings, and then at the end of the measure make a workspace object out of them. Below is part of the code to show what it looks like

# array to hold new IDF objects needed for PV
string_objects = []

# add PhotovoltaicPerformance:Simple object
string_objects << "
pvPerformanceObject,  !- Name
#{fraction_surfacearea_with_pv},  !- Fraction of Surface Area with Active Solar Cells {dimensionless}
Fixed,                            !- Conversion Efficiency Input Mode
#{value_for_cell_efficiency};     !- Value for Cell Efficiency if Fixed
generator_list = []

pv_shading_surfaces.each do |shading_surface|

  #set the fields to the values you want
  surface_name = shading_surface.getString(0).to_s
  gen_name = "gen #{surface_name}".to_s

  # add name to generator list array
  generator_list << gen_name

  # make Generator:Photovoltaic object
  string_objects << "
      #{gen_name},                     !- Name
      #{surface_name},                 !- Surface Name ** change to match your surface
      PhotovoltaicPerformance:Simple,  !- Photovoltaic Performance Object Type
      pvPerformanceObject,             !- Module Performance Name
      Decoupled,                       !- Heat Transfer Integration Mode
      1.0,                             !- Number of Modules in Parallel {dimensionless}
      1.0;                             !- Number of Modules in Series {dimensionless}

end #end of shading surfaces each do

# some more stuff

# add all of the strings to workspace
string_objects.each do |string_object|
  idfObject = OpenStudio::IdfObject::load(string_object)
  object = idfObject.get
  wsObject = workspace.addObject(object)
edit flag offensive delete link more


Thanks a lot for this. Actually I'm going to simulate an building integrated PVT module. I decided to not use the EnergyPlus PVT class, since it offers no complexity for the SolarCollector part. I'm going to model the PV and SolarCollector part seperately, and assume the temperature delta from the SolarCollector has negligible effect on the efficiency of the PV cell.

I already started writing the ruby code, and was planning on using your EnergyPlus measure as input.

LSurf's avatar LSurf  ( 2015-01-28 04:14:22 -0500 )edit

About the connection to the water system. I tried to do this by editing all the nodes in the idf file, but it turned out to be impossible since there is no way to distinguish whether a node is used as in- or output. I ended up inserting an AdiabaticPipe in OpenStudio, and replacing it using the script

LSurf's avatar LSurf  ( 2015-01-28 04:14:35 -0500 )edit

If I remember right, the simple PVT model does have the ability to model integrated building surface heat transfer.

Archmage's avatar Archmage  ( 2015-01-30 10:57:02 -0500 )edit

@ Archmage

Thanks for your response. As far as I can see, the SolarCollector:FlatPlate:Water doesn't have a field 'Boundary Condition Model Name' like the SolarCollector:IntegralCollectorStorage. Perhaps there is some other way to apply these boundary conditions?

In my case I still require a more advanced collector model, so I still wouldn't use the PhotovoltaicThermal class.

LSurf's avatar LSurf  ( 2015-02-02 02:33:08 -0500 )edit

The surface integration is set in the associated Generator:Photovoltaic part of the input for PVT, in the field Heat Transfer Integration Mode. The thermal efficiency can be scheduled in the simple model, so if you have an off-line method of calculating the performance of the solar collector you could feed it a schedule. I would not be comfortable using a regular solar collector model for PVT.

Archmage's avatar Archmage  ( 2015-02-02 16:42:41 -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


Asked: 2015-01-27 09:48:58 -0500

Seen: 394 times

Last updated: Jan 27 '15