Description Usage Arguments Details Value Author(s) References See Also Examples
The optimum distance between trackers or static structures of a PV grid connected plant depends on two main factors: the ground requirement ratio (defined as the ratio of the total ground area to the generator PV array area), and the productivity of the system including shadow losses. Therefore, the optimum separation may be the one which achieves the highest productivity with the lowest ground requirement ratio.
However, this definition is not complete since the terrain characteristics and the costs of wiring or civil works could alter the decision. This function is a help for choosing this distance: it computes the productivity for a set of combinations of distances between the elements of the plant.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | optimShd(lat,
modeTrk = 'fixed',
modeRad = 'prom',
dataRad,
sample = 'hour',
keep.night = TRUE,
sunGeometry = 'michalsky',
betaLim = 90, beta = abs(lat)-10, alfa = 0,
iS = 2, alb = 0.2, HCPV = FALSE,
module = list(),
generator = list(),
inverter = list(),
effSys = list(),
modeShd = '',
struct = list(),
distances = data.frame(),
res = 2,
prog = TRUE)
|
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 |
modeRad, dataRad |
Information about the source data of the
global irradiation. See |
sample |
|
keep.night |
|
sunGeometry |
|
betaLim, beta, alfa, iS, alb, 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 |
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
|
struct |
|
distances |
These distances, in meters, are defined between the axis of the trackers. |
res |
numeric; |
prog |
logical, show a progress bar; default value is TRUE |
optimShd
calculates the energy produced for every
combination of distances as defined by distances
and
res
. The result of this function is a Shade-class
object. A method of shadeplot
for this class is defined
(shadeplot-methods
), and it shows the graphical relation
between the productivity and the distance between trackers or fixed
surfaces.
A Shade
object.
Oscar Perpiñán Lamigueiro
Perpiñán, O.: Grandes Centrales Fotovoltaicas: producción, seguimiento y ciclo de vida. PhD Thesis, UNED, 2008. http://e-spacio.uned.es/fez/eserv/tesisuned:IngInd-Operpinan/GrandesCentrales.pdf.
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, doi: 10.18637/jss.v050.i09
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | library(lattice)
library(latticeExtra)
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)
###Two-axis trackers
struct2x = list(W = 23.11, L = 9.8, Nrow = 2, Ncol = 3)
dist2x = list(Lew = c(30, 45),Lns = c(20, 40))
ShdM2x <- optimShd(lat = lat, dataRad = prom, modeTrk = 'two',
modeShd = c('area','prom'),
distances = dist2x, struct = struct2x,
res = 5)
shadeplot(ShdM2x)
pLew = xyplot(Yf~GRR,data = ShdM2x,groups = factor(Lew),type = c('l','g'),
main = 'Productivity for each Lew value')
pLew+glayer(panel.text(x[1], y[1], group.value))
pLns = xyplot(Yf~GRR,data = ShdM2x,groups = factor(Lns),type = c('l','g'),
main = 'Productivity for each Lns value')
pLns+glayer(panel.text(x[1], y[1], group.value))
## 1-axis tracker with Backtracking
structHoriz = list(L = 4.83);
distHoriz = list(Lew = structHoriz$L * c(2,5));
Shd12HorizBT <- optimShd(lat = lat, dataRad = prom,
modeTrk = 'horiz',
betaLim = 60,
distances = distHoriz, res = 2,
struct = structHoriz,
modeShd = 'bt')
shadeplot(Shd12HorizBT)
xyplot(diff(Yf)~GRR[-1],data = Shd12HorizBT,type = c('l','g'))
###Fixed system
structFixed = list(L = 5);
distFixed = list(D = structFixed$L*c(1,3));
Shd12Fixed <- optimShd(lat = lat, dataRad = prom,
modeTrk = 'fixed',
distances = distFixed, res = 2,
struct = structFixed,
modeShd = 'area')
shadeplot(Shd12Fixed)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.