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

Revision history [back]

The power of the system is, at its basic level, the product of the amount of PV area, and the efficiency of the system (modules and inverters). Most of the measures out there work off of existing geometry to determine the physical size (area) of the array; the onus is on the modeler to determine and provide the PV layout by way of geometry in the model.

If you want to report system power, you could add something to your measure like:

# init
system_rated_output = 0.0
panel_rated_output = 4.0  # w/ft^2
pv_area_total = 0.0

pv_surfaces.each do |pv_surface|
  pv_area = OpenStudio::getArea(pv_surface.vertices()).get
  pv_area_total += pv_area
end

system_rated_output = panel_rated_output * pv_area_total #watts

This would give you total system power and the most basic level (uncorrected for transformer/inverter/other losses).

Now, if you wanted a measure to create a system based on a total system power input, you'd simply reverse that workflow, having the measure create a polygon that was right-sized to get you to the power you were looking for. But then the issue is where in/on/around the model to place this system? I would encourage you to design the system first and model it (as geometry (shading surfaces), then have your measure auto-transform them into pv modules, add the associated gear, and hook it all up with reporting variables for EnergyPlus. All that stuff is done in the measures on the BCL (e.g. "add rooftop PV").