
Extract the diffuse and direct components from the daily global irradiation on a horizontal surface by means of regressions between the clearness index and the diffuse fraction parameters.
fCompD(sol, G0d, corr = "CPR",f)
A zoo
object which includes:
numeric, the diffuse fraction
numeric, the clearness index
numeric, the global irradiation on a horizontal surface (Wh/m²)
numeric, the diffuse irradiation on a horizontal surface (Wh/m²)
numeric, the direct irradiation on a horizontal surface (Wh/m²)
A Sol
object from calcSol
or a zoo
object
from fSolD
. Both of them include a component named
Bo0d
, which stands for the extra-atmospheric daily
irradiation incident on a horizontalsurface
A Meteo
object from readG0dm
, readBD
, or a zoo
object containing daily
global irradiation (Wh/m²) on a horizontal surface. See below for corr = 'none'
.
A character, the correlation between the the fraction of diffuse irradiation and the clearness index to be used.
With this version several options are available, as described in
corrFdKt
. For example, the FdKtPage
is
selected with corr = 'Page'
and the FdKtCPR
with
corr = 'CPR'
.
If corr = 'user'
the use of a correlation
defined by a function f
is possible.
If corr = 'none'
the G0d
object should include information
about global, diffuse and direct daily irradiation with columns named
G0d
, D0d
and B0d
, respectively.
A function defininig a correlation between the fraction of
diffuse irradiation and the clearness index. It is only neccessary when corr = 'user'
Oscar Perpiñán Lamigueiro
Perpiñán, O, Energía Solar Fotovoltaica, 2025. (https://blogs.upm.es/oscarperpinan/libros/esf/)
Perpiñán, O. (2012), "solaR: Solar Radiation and Photovoltaic Systems with R", Journal of Statistical Software, 50(9), 1-32, tools:::Rd_expr_doi("10.18637/jss.v050.i09")
fCompI
lat = 37.2;
BTd = fBTd(mode = 'serie')
SolD <- fSolD(lat, BTd[100])
G0d = zoo(5000, index(SolD))
fCompD(SolD, G0d, corr = "Page")
fCompD(SolD, G0d, corr = "CPR")
#define a function fKtd with the correlation of CPR
fKTd = function(x){(0.99*(x <= 0.17))+
(x>0.17)*(1.188 -2.272 * x + 9.473 * x^2 - 21.856 * x^3
+ 14.648 * x^4)}
#The same as with corr = "CPR"
fCompD(SolD, G0d, corr = "user", f = fKTd)
lat = -37.2;
SolDs <- fSolD(lat, BTd[283])
G0d = zoo(5000, index(SolDs))
fCompD(SolDs, G0d, corr = "CPR")
lat = 37.2;
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;
Rad = readG0dm(G0dm, lat = lat)
solD <- fSolD(lat,fBTd(mode = 'prom'))
fCompD(solD, Rad, corr = 'Page')
Run the code above in your browser using DataLab