A4_prodGCPV | R Documentation |
Compute every step from solar angles to effective irradiance to calculate the performance of a grid connected PV system.
prodGCPV(lat,
modeTrk = 'fixed',
modeRad = 'prom',
dataRad,
sample = 'hour',
keep.night = TRUE,
sunGeometry = 'michalsky',
corr, f,
betaLim = 90, beta = abs(lat)-10, alpha = 0,
iS = 2, alb = 0.2, horizBright = TRUE, HCPV = FALSE,
module = list(),
generator = list(),
inverter = list(),
effSys = list(),
modeShd = '',
struct = list(),
distances = data.table(),
...)
lat |
numeric, latitude (degrees) of the point of the Earth where calculations are needed. It is positive for locations above the Equator. |
modeTrk |
A character string, describing the tracking method
of the generator. See |
modeRad , dataRad |
Information about the source data of the
global irradiation. See |
sample , keep.night |
See |
sunGeometry |
|
corr , f |
See |
betaLim , beta , alpha , iS , alb , horizBright , HCPV |
See |
module |
list of numeric values with information about the PV module,
|
generator |
list of numeric values with information about the generator,
|
inverter |
list of numeric values with information about the DC/AC inverter,
|
effSys |
list of numeric values with information about the system losses,
|
modeShd , struct , distances |
See |
... |
Additional arguments for |
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 inside the calcGef
function. The shadows are computed with calcShd
while
the performance of the PV system is simulated with
fProd
.
A ProdGCPV
object.
Oscar Perpiñán Lamigueiro, Francisco Delgado López.
Perpiñán, O, Energía Solar Fotovoltaica, 2015. (https://oscarperpinan.github.io/esf/)
Perpiñán, O. (2012), "solaR: Solar Radiation and Photovoltaic Systems with R", Journal of Statistical Software, 50(9), 1-32, \Sexpr[results=rd]{tools:::Rd_expr_doi("10.18637/jss.v050.i09")}
fProd
,
calcGef
,
calcShd
,
calcG0
,
compare
,
compareLosses
,
mergesolaR
library("data.table")
lat <- 37.2;
G0dm <- c(2766, 3491, 4494, 5912, 6989, 7742, 7919, 7027, 5369, 3562,
2814, 2179)
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)
prom <- list(G0dm = G0dm, Ta = Ta)
###Comparison of different tracker methods
prodFixed <- prodGCPV(lat = lat, dataRad = prom,
keep.night = FALSE)
prod2x <- prodGCPV(lat = lat, dataRad = prom,
modeTrk = 'two',
keep.night = FALSE)
prodHoriz <- prodGCPV(lat = lat,dataRad = prom,
modeTrk = 'horiz',
keep.night = FALSE)
##Comparison of yearly productivities
compare(prodFixed, prod2x, prodHoriz)
compareLosses(prodFixed, prod2x, prodHoriz)
##Comparison of power time series
ComparePac <- data.table(Dates = indexI(prod2x),
two = as.data.tableI(prod2x)$Pac,
horiz = as.data.tableI(prodHoriz)$Pac,
fixed = as.data.tableI(prodFixed)$Pac)
AngSol <- as.data.tableI(as(prodFixed, 'Sol'))
ComparePac <- merge(AngSol, ComparePac, by = 'Dates')
ComparePac[, Month := as.factor(month(Dates))]
xyplot(two + horiz + fixed ~ AzS|Month, data = ComparePac,
type = 'l',
auto.key = list(space = 'right',
lines = TRUE,
points = FALSE),
ylab = 'Pac')
###Shadows
#Two-axis trackers
struct2x <- list(W = 23.11, L = 9.8, Nrow = 2, Ncol = 8)
dist2x <- data.table(Lew = 40, Lns = 30, H = 0)
prod2xShd <- prodGCPV(lat = lat, dataRad = prom,
modeTrk = 'two',
modeShd = 'area',
struct = struct2x,
distances = dist2x)
print(prod2xShd)
#Horizontal N-S tracker
structHoriz <- list(L = 4.83);
distHoriz <- data.table(Lew = structHoriz$L*4);
#Without Backtracking
prodHorizShd <- prodGCPV(lat = lat, dataRad = prom,
sample = '10 min',
modeTrk = 'horiz',
modeShd = 'area', betaLim = 60,
distances = distHoriz,
struct = structHoriz)
print(prodHorizShd)
xyplot(r2d(Beta)~r2d(w),
data = prodHorizShd,
type = 'l',
main = 'Inclination angle of a horizontal axis tracker',
xlab = expression(omega (degrees)),
ylab = expression(beta (degrees)))
#With Backtracking
prodHorizBT <- prodGCPV(lat = lat, dataRad = prom,
sample = '10 min',
modeTrk = 'horiz',
modeShd = 'bt', betaLim = 60,
distances = distHoriz,
struct = structHoriz)
print(prodHorizBT)
xyplot(r2d(Beta)~r2d(w),
data = prodHorizBT,
type = 'l',
main = 'Inclination angle of a horizontal axis tracker\n with backtracking',
xlab = expression(omega (degrees)),
ylab = expression(beta (degrees)))
compare(prodFixed, prod2x, prodHoriz, prod2xShd,
prodHorizShd, prodHorizBT)
compareLosses(prodFixed, prod2x, prodHoriz, prod2xShd,
prodHorizShd, prodHorizBT)
compareYf2 <- mergesolaR(prodFixed, prod2x, prodHoriz, prod2xShd,
prodHorizShd, prodHorizBT)
xyplot(prodFixed + prod2x +prodHoriz + prod2xShd + prodHorizShd + prodHorizBT ~ Dates,
data = compareYf2, type = 'l', ylab = 'kWh/kWp',
main = 'Daily productivity',
auto.key = list(space = 'right'))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.