Learn R Programming

solaR (version 0.14)

prodSFCR: Performance of a grid connected PV system

Description

Compute every step from solar angles to effective irradiance to calculate the performance of a grid connected PV system.

Usage

prodSFCR(lat, G0dm, Ta = 25, modoSeg = "est", modoRad = "prom", 
      previo, MAPA, BaseDatos, 
    FormatoFecha = "%d/%m/%Y", Nm = 1, 
    BetaLim = 90, beta = abs(lat) - 10, alfa = 0, 
    iS = 2, alb = 0.2, 
    modulo = list(Vocn = 57.6, Iscn = 4.7, Vmn = 46.08, Imn = 4.35, 
        Ncs = 96, Ncp = 1, CoefVT = 0.0023, TONC = 47), 
    generador = list(Nms = 12, Nmp = 11), 
    inversor = list(Ki = c(0.01, 0.025, 0.05), Pinv = 25000, 
        Vmin = 420, Vmax = 750, Gumb = 20), 
    EffSys = list(ModQual = 3, ModDisp = 2, OhmDC = 1.5, OhmAC = 1.5, 
        MPP = 1, TrafoMT = 1, Disp = 0.5), 
    modoSombra = NULL, 
    estruct = list(W = 23.11, L = 9.8, Nfilas = 2, Ncol = 8), 
    distancias = data.frame(Leo = 40, Lns = 30, H = 0))

Arguments

lat
see calcG0
G0dm
see calcG0
Ta
see calcG0
modoSeg
see fTheta
modoRad
see calcG0. If modoRad='prev' a previous result of this function prodSFCR is included in previo in order to obtain new results with the same irradiance on the horizont
previo
data.frame, needed when modoRad='prev'. It is the result of a previous use of this function
MAPA
see calcG0
BaseDatos
see calcG0
FormatoFecha
see calcG0
Nm
see calcG0
BetaLim
numeric, maximum value of the inclination angle (degrees) for a tracking surface. Its default value is 90 (no limitation))
beta
numeric, inclination angle of the surface (degrees). It is only needed when modoSeg='est'.
alfa
numeric, azimuth angle of the surface (degrees). It is positive to the West. It is only needed when modoSeg='est'. 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
modulo
see fProd
generador
see fProd
inversor
see fProd
EffSys
see fProd
modoSombra
character, defines the type of shadow calculation. In this version of the package the effect of the shadow is calculated as a proportional reduction of the circumsolar diffuse and direct irradiances. This type of approach is selected with modoSombra
estruct
list. When modoSeg='est' or modoSeg='horiz' only a component named L, which is the height (meters) of the tracker, is needed. For two-axis trackers (modoSeg='doble'), an additional component
distancias
data.frame, with a component named Leo, being the distance between horizontal NS and two-axis trackers along the East-West direction, a component named Lns for two-axis trackers or a component named D fo

Value

  • list containing:
  • Idata.frame, result of fProd, which is a set of variables describing the performance of a grid connected PV system. If requested, the shadows effect is included in this result.
  • Dlist, result of resumenProdSFCR, which is the daily, monthly and yearly summaries of the irradiation and productivity of the system. For details about this list refer to resumenProdSFCR
  • paramlist which contains the main parameters of the calculation.

Details

The calculation of the irradiance on the horizontal plane is carried out with the function calcG0. The transformation to the inclined surface makes use of the fTheta and fInclin functions. The shadows are computed with fSombra while the performance of the PV system is simulated with fProd

References

Perpiñán, O, Energía Solar Fotovoltaica, 2010. (http://procomun.wordpress.com/documentos/libroesf/)

See Also

fSombra, fSombra6, fSombra2X, fSombraEst, fSombraHoriz, fProd, fTheta, fInclin, calcG0, LeeMAPA

Examples

Run this code
library(lattice)
library(latticedl)


lat=37.2;#Sevilla
G0dm=c(2766, 3491, 4494, 5912, 6989, 7742, 7919, 7027, 5369, 3562, 2814, 2179)

###Comparison of different tracker methods
ProdEst<-prodSFCR(lat=lat,G0dm=G0dm)
Prod2x<-prodSFCR(lat=lat,G0dm=G0dm,modoSeg='doble')
ProdHoriz<-prodSFCR(lat=lat,G0dm=G0dm,modoSeg='horiz')

ComparePac<-data.frame(doble=Prod2x$I$Pac, 
    horiz=ProdHoriz$I$Pac, 
    est=ProdEst$I$Pac, 
    w=ProdEst$I$w, 
    Mes=ProdEst$I$Mes) 
xyplot(doble+horiz+est~w|Mes,data=ComparePac, 
    type='l', auto.key=list(space='right'),ylab='Pac')


CompareEffI<-data.frame(EffI2x=Prod2x$I$EffI,
    EffIHoriz=ProdHoriz$I$EffI,
    EffIEst=ProdEst$I$EffI,
    w=ProdEst$I$w,
    Mes=ProdEst$I$Mes)

xyplot(EffI2x+EffIHoriz+EffIEst~w|Mes,data=CompareEffI,
    type='l', auto.key=list(space='right'))


        

###Use of modoRad='mapa' and modoRad='prev'
ProdEst<-prodSFCR(lat=41,modoSeg='est',modoRad='mapa',
    MAPA=list(Provincia=28,Estacion=3,
    FechaInicio='01/01/2009',FechaFinal='31/12/2009'))
Prod2x<-prodSFCR(lat=41,modoSeg='doble',modoRad='prev',previo=ProdEst)
ProdHoriz<-prodSFCR(lat=41,modoSeg='horiz',modoRad='prev',previo=ProdEst)



###Shadows
#Two-axis trackers
Prod2xSombra<-prodSFCR(lat=lat,G0dm=G0dm,modoSeg='doble', 
    modoSombra='area', distancias=data.frame(Leo=40,Lns=40,H=0))

#Horizontal N-S tracker
estruct=list(L=4.83);
distancias=data.frame(Leo=estruct$L*4,H=0);

#Without Backtracking
ProdHorizSombra<-prodSFCR(lat=lat,G0dm=G0dm, Nm=6, 
    modoSeg='horiz',
    modoSombra='area', BetaLim=60,
    distancias=distancias,
    estruct=estruct)
xyplot(Beta~w,data=ProdHorizSombra$I,type='l', 
    xlab=expression(omega (h)),ylab=expression(beta (degree)))

#With Backtracking
ProdHorizBT<-prodSFCR(lat=lat,G0dm=G0dm, Nm=6, 
    modoSeg='horiz',
    modoSombra='bt', BetaLim=60,
    distancias=distancias,
    estruct=estruct)
                        
xyplot(Beta~w,data=ProdHorizBT$I,type='l',
    xlab=expression(omega (h)),ylab=expression(beta (degree)))

Run the code above in your browser using DataLab