Learn R Programming

solaR (version 0.37)

A3_calcGef: Irradiation and irradiance on the generator plane.

Description

This function obtains the global, diffuse and direct irradiation and irradiance on the generator plane from the values of daily or intradaily global irradiation on the horizontal plane. It makes use of the functions calcG0, fTheta, fInclin. Besides, it can calculate the shadows effect with the calcShd function.

Usage

calcGef(lat,
        modeTrk='fixed',
        modeRad='prom',
        dataRad,
        prev, prom, mapa, bd,bdI,
        sample='hour',
        keep.night=TRUE,
        sunGeometry='michalsky',
        corr, f,
        betaLim=90, beta=abs(lat)-10, alfa=0,
        iS=2, alb=0.2, horizBright=TRUE, HCPV=FALSE,
        modeShd='',
        struct=list(),
        distances=data.frame())

Arguments

lat
numeric, latitude (degrees) of the point of the Earth where calculations are needed. It is positive for locations above the Equator.
modeTrk
character, to be chosen from 'fixed', 'two' or 'horiz'. When modeTrk='fixed' the surface is fixed (inclination and azimuth angles are constant). The performance of a two-axis tracker is calculated with <
modeRad, dataRad, prom, mapa, bd, bdI
Information about the source data of the global irradiation. See calcG0 for details.
prev
A G0 object (or something that can be coerced to a G0 object). It is used when modeRad='prev'. It is deprecated and dataRad should be used instead.
sample, keep.night
See calcSol for details.
sunGeometry
character, method for the sun geometry calculations. See calcSol, fSolD and fSolI.
corr, f
See calcG0 for details.
beta
numeric, inclination angle of the surface (degrees). It is only needed when modeTrk='fixed'.
betaLim
numeric, maximum value of the inclination angle for a tracking surface. Its default value is 90 (no limitation))
alfa
numeric, azimuth angle of the surface (degrees). It is positive to the West. It is only needed when modeTrk='fixed'. Its default value is alfa=0
iS
integer, degree of dirtiness. Its value must be included in the set (1,2,3,4). iS=1 corresponds to a clean surface while iS=4 is the selection for a dirty surface. Its default value is 2.
alb
numeric, albedo reflection coefficient. Its default value is 0.2
modeShd, struct, distances
See calcShd for details.
horizBright
logical, if TRUE, the horizon brightness correction proposed by Reind et al. is used.
HCPV
logical, if TRUE the diffuse and albedo components of the effective irradiance are set to zero. HCPV is the acronym of High Concentration PV system.

Value

  • A Gef object.

encoding

UTF-8

References

  • Hay, J. E. and McKay, D. C.: Estimating Solar Irradiance on Inclined Surfaces: A Review and Assessment of Methodologies. Int. J. Solar Energy, (3):pp. 203, 1985.
  • Martin, N. and Ruiz, J.M.: Calculation of the PV modules angular losses under field conditions by means of an analytical model. Solar Energy Materials & Solar Cells, 70:25–38, 2001.
  • D. T. Reindl and W. A. Beckman and J. A. Duffie: Evaluation of hourly tilted surface radiation models, Solar Energy, 45:9-17, 1990.
  • Perpiñán, O, Energía Solar Fotovoltaica, 2012. (http://procomun.wordpress.com/documentos/libroesf/)
  • Perpiñán, O. (2012), "solaR: Solar Radiation and Photovoltaic Systems with R", Journal of Statistical Software, 50(9), 1-32,http://www.jstatsoft.org/v50/i09/

See Also

calcG0, fTheta, fInclin, calcShd.

Examples

Run this code
###12 Average days.

G0dm=c(2.766,3.491,4.494,5.912,6.989,7.742,7.919,7.027,5.369,3.562,2.814,2.179)*1000;
Ta=c(10, 14.1, 15.6, 17.2, 19.3, 21.2, 28.4, 29.9, 24.3, 18.2, 17.2, 15.2)

##Fixed surface, default values of inclination and azimuth.

gef<-calcGef(lat=37.2, modeRad='prom', dataRad=list(G0dm=G0dm, Ta=Ta))
print(gef)
xyplot(gef)

##Two-axis surface, no limitation angle.

gef2<-calcGef(lat=37.2, modeRad='prom', dataRad=list(G0dm=G0dm, Ta=Ta), modeTrk='two')
print(gef2)
xyplot(gef2)

##Fixed surface
gefAguiar <- calcGef(lat=41, modeRad='aguiar', dataRad=G0dm)

##Two-axis tracker, using the previous result.
##'gefAguiar' is internally coerced to a 'G0' object.

gefAguiar2 <- calcGef(lat=41, modeRad='prev', dataRad=gefAguiar, modeTrk='two')
print(gefAguiar2)
xyplot(gefAguiar2)

###Shadows between two-axis trackers, again using the gefAguiar result.

struct=list(W=23.11, L=9.8, Nrow=2, Ncol=8)
distances=data.frame(Lew=40, Lns=30, H=0)

gefShd<-calcGef(lat=41, modeRad='prev',
                dataRad=gefAguiar, modeTrk='two',
                modeShd=c('area', 'prom'),
                struct=struct, distances=distances)
print(gefShd)
##The Gef0, Bef0 and Def0 values are the same as those contained in the
##                gefAguiar2 object

Run the code above in your browser using DataLab