Inconsistencies and Discontinuity in Results from Perez Model for generating POA

65 views
Skip to first unread message

Aynkaran Aymmugan

unread,
Jun 24, 2024, 1:40:44 PMJun 24
to pvlib-python
Hi,

I am working on generating POA (total radiation falling on a surface) on a North/East/West/South facing wall in Toronto. I am using a weather file in the csv format (which I have attached here - Weatherfile_ML_tor_1.0) which has GHI, DHI and DNI hourly data (8760 hours) for Toronto. I am using the 'Perez Model' to estimate the total radiation on each wall surface. I encountered two problems:

1) Unrealistic values are being generated for poa_difusse which in turn gives me a very high total poa on the wall  (Image attached).

2) Data dis-continuities - For certain hours the radiation result is not being generated at all (Image attached).

I have also attached my code too.

I am stuck in this problem for a while now. The weather file is accurate and reliable. 

Result discontinuity.pngUnrealistic values.png
code.txt
WeatherfileML_tor_1.0.csv

Brighton Mabasa

unread,
Jun 24, 2024, 2:57:05 PMJun 24
to Aynkaran Aymmugan, pvlib-python
Hello Sir,
Please try to fix the following: 

1.  south-facing wall, azimuth should be 180 

  • surface_azimuth (float or array-likedefault 180) – Azimuth angle of the module surface. North=0, East=90, South=180, West=270.


2. calculate the solar geometry (in between the hours) 30 minutes intervals 

3. filter out zenith angle greater than 85 degrees or  90 degrees models have limitation at those angles just before sunrise and sunset.

--
You received this message because you are subscribed to the Google Groups "pvlib-python" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pvlib-python...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pvlib-python/7e971021-24e3-42f1-9c0f-1486c4f91167n%40googlegroups.com.

cwh...@sandia.gov

unread,
Jun 24, 2024, 3:24:36 PMJun 24
to pvlib-python
As suggested by brightmabasa, if you need POA irradiance at times so close to sunrise sunset, then care must be taken to match the irradiance measurements with solar position. The file has hourly measurements; are these hourly averages that are assigned to the starting time for each hour? I suspect so, since on 2023-02-28 at 07:00, the sun is just barely below the horizon (geometric), and apparent zenith (optical) is 89.5 degrees. That position won't yield GHI of 169 W/m2 even under clear skies; clear sky models predict something like 0.5 W/m2. If the measurements are hourly averages, then the solar position at 730 is more appropriate to pair with these data. pvlib does "instantaneous" calculations, e.g.,  the measurements timestamped at 0700 are paired with the solar position _at_ 0700. You can compute the solar positions after adding 30 minutes to the time index, then reindex the results back to the timestamps of the measurements.

Also: the transposition models generally were calibrated to produce good agreement with data for systems at moderate tilts with moderate zenith angles. Vertical tilts with the sun right on the horizon are likely outside the model's range of validation. You can still get numbers but they should be viewed with some skepticism.

Best,

Cliff

Brighton Mabasa

unread,
Jun 24, 2024, 4:51:47 PMJun 24
to cwh...@sandia.gov, pvlib-python
I formatted the data and wrote code; it looks okay now.
The input file is TORONTO2.csv
Please note that I did not calculate the zenith angle in the middle of an hour (to get more accurate results, it has to be done). It's clear there is a slight mismatch when comparing it to a ClearSky model. 

surface_azimuth=180 #SOUTH facing
surface_tilt=90 #tilt from the horizontal

The surface azimuth is 180, not 90 (I changed it) for south-facing. 
Surface tilt has to be an angle between 0 and 90 (90 means your solar panel is placed vertically). (Please change here. It is should be a value close to the site's latitude, maybe 40–45).
B

TORONTO FINAL POA PEREZ TRANPOSITION MODELCONFIGURATION (1).html
TORONTO2.csv
TORONTO FINAL POA PEREZ TRANPOSITION MODELCONFIGURATION .ipynb
IRENE_POA_Perez.csv
TORONTO_POA_PEREZ_2023.csv

Aynkaran Aymmugan

unread,
Jun 24, 2024, 8:24:10 PMJun 24
to pvlib-python
Thanks a lot Brighton and Cliff for you valuable insights. Of course Brighton thank you for helping me out with the code, means a lot. I went through the Solar Engineering for Thermal Processes book and maybe there could be a problem with Perez when the DHI and DNI are zero while calculating the epsilon values....

The improved code works like a charm. 

Aynkaran Aymmugan

unread,
Jun 24, 2024, 10:01:01 PMJun 24
to pvlib-python
But still I find inconsistencies in the code when I change the orientation to East and North

Brighton Mabasa

unread,
Jun 25, 2024, 5:36:15 AMJun 25
to Aynkaran Aymmugan, pvlib-python
North=0, East=90, South=180, West=270.

The way I understand it, North means that you are facing your panel opposite the sun's direction. As a result, your POA will be low.
East and West this means you are facing your panel on the sides (left or right to the Sun's path as a result there will be times where the POA will be low and it wont have that perfect curve from sunrise to sunset even under clearskies )
The perfect position in the Northern Hermisphere will be South (180) your panel will be exposed to the sun throughout the day and peak midday (high POA)

Aynkaran Aymmugan

unread,
Jun 25, 2024, 11:23:51 AMJun 25
to pvlib-python
Yes I agree. But I am not working with solar panels. I am rather working and interested on getting to know the amount of solar radiation falling on wall surfaces of buildings.

cwh...@sandia.gov

unread,
Jun 25, 2024, 11:30:30 AMJun 25
to pvlib-python
POA irradiance is the radiation on a surface specified by tilt and azimuth. The properties of the surface are immaterial.

If the spectrum of the POA irradiance matters: the models in pvlib likely were calibrated using broadband pyranometer measurements, where "broadband" depends on the specific instrument. Without knowing what you want to do with the POA irradiance, I couldn't say whether these models are appropriate for your application.



Brighton Mabasa

unread,
Jun 25, 2024, 12:10:34 PMJun 25
to cwh...@sandia.gov, pvlib-python
It is also important to do data quality checks (GHI, DNI, and DIF) and remove outliers before using them.

The albedo is also essential; I assumed it is 0.2 for a ground surface (it might be different to a wall surface depending on the color and material type)

GHI, DNI, and DIF are for horizontal surfaces on the Earth's surface; they might not represent wall surfaces. 

Aynkaran Aymmugan

unread,
Jun 25, 2024, 7:14:33 PMJun 25
to pvlib-python
Hi, Brighton.   You also said to filter out the zenith angle greater than 85 degrees. Does this mean I have to remove the values generated by the model after this elevation angle or should I set them to zero?
Reply all
Reply to author
Forward
0 new messages