pvl_clearsky_ineichen

Determine clear sky GHI, DNI, and DHI from Ineichen/Perez model.

Contents

Syntax

[ClearSkyGHI, ClearSkyDNI, ClearSkyDHI]= pvl_clearsky_ineichen(Time,
Location)
[ClearSkyGHI, ClearSkyDNI, ClearSkyDHI]= pvl_clearsky_ineichen(Time,
Location, LinkeTurbidityInput)

Description

Implements the Ineichen and Perez clear sky model for global horizontal irradiance (GHI), direct normal irradiance (DNI), and calculates the clear-sky diffuse horizontal (DHI) component as the difference between GHI and DNI*cos(zenith) as presented in [1, 2]. A report on clear sky models found the Ineichen/Perez model to have excellent performance with a minimal input data set [3]. Default values for Linke turbidity provided by SoDa [4, 5].

Inputs

Time is a struct with the following elements, which can be column vectors all of the same length.

Location is a struct with the following elements, which can be column vectors all of the same length.

LinkeTurbidityInput - An optional input to provide your own Linke turbidity. If this input is omitted, the default Linke turbidity maps will be used. LinkeTurbidityInput may be a scalar or a column vector of Linke turbidities of the same length as the time and location elements.

Outputs

Notes

This implementation of the Ineichen model requires a number of other PV_LIB functions including pvl_ephemeris, pvl_date2doy, pvl_extraradiation, pvl_absoluteairmass, pvl_relativeairmass, and pvl_alt2pres. It also requires the file \Required Data\LinkeTurbidities.mat. When using pvl_ineichen inside a loop, it is faster to load LinkeTurbidities.mat outside of the loop and provide LinkeTurbidityInput as an input, rather than having pvl_ineichen load LinkeTurbidities.mat each time it is called.

Initial implementation of this algorithm by Matthew Reno (Sandia and Georgia Tech).

Example

Location.latitude = 35.04;
Location.longitude = -106.62;
Location.altitude = 1619;
% Create 1-min time series for Jan 1, 2012
DN = datenum(2012, 6,1):1/(24*60):datenum(2012, 6, 1, 23, 59, 59);
Time = pvl_maketimestruct(DN, -7);
[ClearSkyGHI, ClearSkyDNI, ClearSkyDHI]= pvl_clearsky_ineichen(Time, Location);
dHr = Time.hour+Time.minute./60+Time.second./3600; % Calculate decimal hours for plotting
figure
plot(dHr,ClearSkyGHI)
hold all
plot(dHr,ClearSkyDNI)
plot(dHr,ClearSkyDHI)
title('Clear Sky Irradiance Components on June 1, 2012 in Albuquerque, NM')
xlabel('Hour of the Day (hr)')
ylabel('Irradiance (W/m^2)')
legend('GHI','DNI','DHI')

References

See Also

pvl_maketimestruc , pvl_makelocationstruc, pvl_ephemeris, clearsky_haurwitz

Copyright 2014 Sandia National Laboratories