Contents
example_pvl_Purdue_albedo_model
Example calculation of front and rear irradiance on a bifacial module.
clc
clearvars
close all
Load weather data
TMYData = pvl_readtmy3('723650TY.csv'); TimeMatlab = TMYData.DateNumber; dv = datevec(TimeMatlab); tfilter = and(dv(:,2) == 8, dv(:,3) == 2); % Select August 2 Time = pvl_maketimestruct(TimeMatlab(tfilter), ones(size(TimeMatlab(tfilter)))*TMYData.SiteTimeZone);
Sun position calculations
HExtra = pvl_extraradiation(pvl_date2doy(Time.year,Time.month,Time.day));
Location = pvl_makelocationstruct(TMYData.SiteLatitude,TMYData.SiteLongitude,TMYData.SiteElevation);
PresPa = TMYData.Pressure(tfilter)*100; %Convert pressure from mbar to Pa
[SunAz, SunEl, AppSunEl, SolarTime] = pvl_ephemeris(Time,Location,PresPa,TMYData.DryBulb(tfilter));
SunZen = 90 - AppSunEl;
AM = pvl_relativeairmass(SunZen);
AM(isnan(AM)) = 20;
Describe system
SurfTilt = 90; %Vertical installation SurfAz = 90; %East-west facing EtoH = 0; %Ground-mounted Albedo = 0.25; % 25% albedo coefficient for concrete/vegetation Rloss_Para = [0.16 4/(3*pi) -0.074]; %Default parameters to calculate the reflection loss between the air/glass interface
Run the irradiance calculations
[I_Front_R,I_Rear_R] = pvl_Purdue_bifacial_irradiance(SurfTilt, SurfAz, EtoH, Albedo,... TMYData.DHI(tfilter), TMYData.DNI(tfilter), HExtra, SunZen, SunAz, AM,'1990','Yes',Rloss_Para); %Consider reflection loss [I_Front_NR,I_Rear_NR] = pvl_Purdue_bifacial_irradiance(SurfTilt, SurfAz, EtoH, Albedo,... TMYData.DHI(tfilter), TMYData.DNI(tfilter), HExtra, SunZen, SunAz, AM,'1990','No'); %Do NOT consider reflection loss
Plot the results
figure hold all s = {'r-','b-','k-','r--','b--','k--'}; plot(Time.hour,I_Front_NR,s{4}) plot(Time.hour,I_Rear_NR,s{5}) plot(Time.hour,I_Front_NR+I_Rear_NR,s{6}) plot(Time.hour,I_Front_R,s{1}) plot(Time.hour,I_Rear_R,s{2}) plot(Time.hour,I_Front_R+I_Rear_R,s{3}) xlim([-5 22]) xlabel('Hour of Day') ylabel('Total Irradiance (W/m^2)') legend('Front','Rear','Total', ... 'Front red. by refl.','Rear red. by refl.','Total red. by refl.', ... 'Location', 'NorthWest') title({'Irradiance on a east-facing vertical bifacial module';'Albuquerque - Aug 2'},'FontSize',14)

Describe system
Module_length = 1.4; % meters, dimension of module not parallel to the ground Module_elev = 0.5; % meters, distance from the ground to the bottom of the module SurfTilt = 35; % Latitude tilt installation SurfAz = 180; % South facing EtoH = Module_elev / Module_length; Albedo = 0.25; % 25% albedo coefficient for concrete/vegetation Rloss_Para = [0.16 4/(3*pi) -0.074]; %Default parameters to calculate the reflection loss between the air/glass interface %Running the calculation [I_Front_R,I_Rear_R] = pvl_Purdue_bifacial_irradiance(SurfTilt, SurfAz, EtoH, Albedo,... TMYData.DHI(tfilter), TMYData.DNI(tfilter), HExtra, SunZen, SunAz, AM,'1990','Yes',Rloss_Para); %Consider reflection loss [I_Front_NR,I_Rear_NR] = pvl_Purdue_bifacial_irradiance(SurfTilt, SurfAz, EtoH, Albedo,... TMYData.DHI(tfilter), TMYData.DNI(tfilter), HExtra, SunZen, SunAz, AM,'1990','No'); %Do NOT consider reflection loss
Plot the results
figure hold all s = {'r-','b-','k-','r--','b--','k--'}; plot(Time.hour,I_Front_NR,s{4}) plot(Time.hour,I_Rear_NR,s{5}) plot(Time.hour,I_Front_NR+I_Rear_NR,s{6}) plot(Time.hour,I_Front_R,s{1}) plot(Time.hour,I_Rear_R,s{2}) plot(Time.hour,I_Front_R+I_Rear_R,s{3}) xlim([-5 22]) xlabel('Hour of Day') ylabel('Total Irradiance (W/m^2)') legend('Front','Rear','Total', ... 'Front red. by refl.','Rear red. by refl.','Total red. by refl.', ... 'Location', 'NorthWest') title({'Irradiance on a south-facing latitude tilt bifacial module';'Albuquerque - Aug 2'},'FontSize',14)

Copyright 2018 Sandia National Laboratories