Learn R Programming

solaR (version 0.46)

C_fCompI: Calculation of solar irradiance on a horizontal surface

Description

From the daily global, diffuse and direct irradiation values supplied by fCompD, the profile of the global, diffuse and direct irradiance is calculated with the rd and rg components of fSolI.

Usage

fCompI(sol, compD, G0I, corr = 'none', f, filterG0 = TRUE)

Arguments

sol

A Sol object as provided by calcSol or a zoo object as provided by fSolI.

compD

A zoo object as provided by fCompD. It is not considered if G0I is provided.

G0I

A Meteo object from readBDi, dfI2Meteo or zoo2Meteo, or a zoo object containing intradaily global irradiation (Wh/m<U+00B2>) on a horizontal surface.

See below for corr = 'none'.

corr

A character, the correlation between the the fraction of intradaily diffuse irradiation and the clearness index to be used. It is ignored if G0I is not provided.

With this version several correlations are available, as described in corrFdKt. You should choose one of intradaily proposals. For example, the FdKtCLIMEDh is selected with corr = 'CLIMEDh'.

If corr = 'user' the use of a correlation defined by a function f is possible.

If corr = 'none' the G0I object must include information about global, diffuse and direct intradaily irradiation with columns named G0, D0 and B0, respectively.

f

A function defininig a correlation between the fraction of diffuse irradiation and the clearness index. It is only neccessary when corr = 'user'

filterG0

A logical. If TRUE (default) this function sets the global irradiation values to NA when they are higher than the extra-atmospheric irradiation values.

Value

A zoo with these components:

kt

numeric, clearness index.

fd

numeric, diffuse fraction.

G0

numeric, global irradiance on a horizontal surface, (W/m<U+00B2>)

D0

numeric, diffuse irradiance on a horizontal surface, (W/m<U+00B2>)

B0

numeric, direct irradiance on a horizontal surface, (W/m<U+00B2>)

References

  • Collares-Pereira, M. y Rabl, A., The average distribution of solar radiation: correlations between diffuse and hemispherical and between daily and hourly insolation values. Solar Energy, 22:155<U+2013>164, 1979.

  • Perpi<U+00F1><U+00E1>n, O, Energ<U+00ED>a Solar Fotovoltaica, 2015. (https://oscarperpinan.github.io/esf/)

  • Perpi<U+00F1><U+00E1>n, O. (2012), "solaR: Solar Radiation and Photovoltaic Systems with R", Journal of Statistical Software, 50(9), 1-32, 10.18637/jss.v050.i09

See Also

fCompD, fSolI, calcSol, corrFdKt.

Examples

Run this code
# NOT RUN {
lat <- 37.2

BTd <- fBTd(mode = 'serie')
solD <- fSolD(lat, BTd[100])
solI <- fSolI(solD, sample = 'hour')
G0d <- zoo(5000, index(solD))
compD <- fCompD(solD, G0d, corr = "Page")
fCompI(solI, compD)

sol <- calcSol(lat, fBTd(mode = 'prom'), sample = 'hour', keep.night = FALSE)

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)

BD <- readG0dm(G0dm = G0dm, Ta = Ta, lat = lat)
compD <- fCompD(sol, BD, corr = 'Page')
compI <- fCompI(sol, compD)
head(compI)

## Use of 'corr'.  The help page of calcG0 includes additional examples
## with intradaily data xyplot(fd ~ kt, data = compI)

climed <- fCompI(sol, G0I = compI, corr = 'CLIMEDh')
xyplot(fd ~ kt, data = climed)

ekdh <- fCompI(sol, G0I = compI, corr = 'EKDh')
xyplot(fd ~ kt, data = ekdh)

brl <- fCompI(sol, G0I = compI, corr = 'BRL')
xyplot(fd ~ kt, data = brl)
# }

Run the code above in your browser using DataLab