algorithmic modeling for Rhino

Annual optimal tilt and azimuth angle of an unshaded PV array

This video is an example of "Photovoltaics surface" component usage with Galapagos. It's based on PVWatts. Download at:

Views: 651


You need to be a member of Grasshopper to add comments!

Join Grasshopper

Comment by Hamid on July 18, 2016 at 12:56pm

hi Djordje,

thanks a lot for helping.

please tell me the formula you mentioned for diffuse and direct and reflected solar radiation is hourly? And what is the total solar radiation formula?


Comment by djordje on June 28, 2016 at 5:35pm


In general for crystalline silicon modules (which is what Ladybug Photovoltaics components support) the generation of AC energy depends mostly on the solar radiation. This is why TOF component will yield pretty accurate results.
However, the AC energy also depends on air temperature and wind speed. Smaller percentage of the solar radiation will be converted to AC energy while the rest will be converted into heat and raise the temperature of the PV module. The higher this temperature is, the smaller the AC energy output will be.
This is why low air temperature and high wind speed can help PV modules to cool down, and increase the final AC energy.
So basically even though solar radiation plays a major part in determination of the optimal PVsurface angles, air temperature and wind speed can too, to some degree.
I assume this may happen in specific locations where there is a significant diurnal temperature and wind speed variation. For example in the morning, in arid, desert like locations, maybe gorges.
But air temperature and wind speed are likely to affect the optimal azimuth, than tilt. Let's say the TOF component will find the optimal azimuth to be 180.5. While the optimal one may be 179.5, gravitating towards the East and the cool and windy morning. Still the differences are really small.

And yes, the optimal tilt (and azimuth) are calculated based on the the whole year period, the same as with the upper mentioned Solmetric's Annual Insolation Lookup tool.
I may change this in future by adding the analysisPeriod_ input.

So basically if you would like to calculate the optimal tilt for the whole year, you can stick with the TOF component.
If you would like to calculate the optimal tilt for a certain period of time, you can use the Analysis Period component along with Galapagos.
I attached an example for winter months in here.

Let me know if this helps.

Comment by djordje on June 28, 2016 at 5:31pm

Hi Hamid,

TOF component does not use a single formula to calculate its optimal tilt or azimuth angles.
In general, you will find a lot of sources which do this. For the optimal azimuth an assumption is used of 180 being for the northern hemisphere and 0 for the southern hemisphere.
For the optimal tilt, to my knowledge, they are mostly based on correcting location's latitude through a single formula.

TOF component is more sophisticated. It essentially replicates the Solmetric's Annual Insolation Lookup tool.
What it does is that it creates a grid of points. Each point represents the calculated annual insolation on the surface (PV module, SWH collector, facade, any kind of surface) for a single tilt and azimuth angle.
Each point is then elevated according to the annual insolation values. The mesh is created from that grid of points. The portion of the mesh which is the highest, represents the optimal tilt and azimuth angles. So the higher your "precision_" input is, the more points in a mesh you'll have - thus the more precise final optimal tilt and azimuth will be.
For the diffuse component of the annual incident solar radiation for each point the Perez 1990 modified model is used. Direct is from classical cosine law, and Ground reflected component from Liu and Jordan (1963).
So TOF component calculates the optimal tilt and azimuth based on annual incident solar radiation, not AC energy.


Comment by Hamid on June 27, 2016 at 1:23pm

Bravo Djordje.

I have changed some thing and I got results. Can you tell me which formula is used for finding opimum tilt inside TOF component? and the optimum angle is calculated based on WHOLE year?

Comment by djordje on June 25, 2016 at 4:19pm

Hi Hamid,

For the "solution 2" by using the "Tilt and orientation factor" component, you do not have to use Galapagos. Download again the .gh file I attached in my last reply, and just set the "_runIt" input to True, and read the "optimalTilt" output. That is your optimal tilt.

The higher the number you set to "precision_" input (from 2 to 100), the more precise the final "optimalTilt" output will be. Try not to set it to a value larger than 50, if your PC is not somewhat stronger.

Comment by Hamid on June 25, 2016 at 3:22am

dear Djordje,

Thanks for helping, But I have a short question:My problem is: I can not find optimum tilt POINT under Cyprus condition with TOF and galapagos components.

Comment by djordje on May 21, 2016 at 7:10am

Hi Hamid,

I apologize for the delay.
Unfortunately I could not find that definition. It was created a year ago, and it's either somewhere on my current hardrive and I can not find it or, or it's on my old hardrive. It's too much of an effort for me to open my PC tower and change the hardrive and look for that definition, sorry.

I made a quick replica of the definition you saw in that video. It's not the same, for example you won't be able to change the system size in kw, nor area of the array. But it might give you an understanding of how it works.

I posted another solution below, on how to find the optimal tilt and azimuth (other than by using Galapagos): with the usage of "Tilt and Orientation Factor" component, which did not exist at the time when this video was created.

You told me in your private message, that you do not need to check for the optimal azimuth, and that PVsurface is always going to be oriented towards the south. To account for this you need to remove(erase) the wire which goes from "Galapagos" component to the "azimuth angle" slider.
Do this, by putting your mouse pointer at the location of the "Galapagos" component's "Genome" input plug, then press and hold CTRL on your keyboard, press and hold left mouse button, and drag the new wire all the way to the "azimuth angle" slider.

I hope this helps.

Comment by Igor Mitrić Lavovski on April 6, 2015 at 3:46pm
Bravo Djordje!
Comment by 筑梦NARUTO on April 3, 2015 at 9:24am






  • Add Photos
  • View All

© 2022   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service