prod_energia: Calcula la producción de energía de un generador fotovoltaico...

View source: R/prod_energia.R

prod_energiaR Documentation

Calcula la producción de energía de un generador fotovoltaico conectado a red.

Description

Calcula la producción de energía de un generador fotovoltaico conectado a red a partir de datos de radiación solar global y temperatura media en el plano horizontal y de parámetros característicos de los paneles FV, inversor y otros componentes. Los datos de radiación pueden ser intradiarios, diarios o mensuales.

Usage

prod_energia(
  G0,
  int_entrada = "MENSUAL",
  int_salida = "MENSUAL",
  lon = -62.8,
  lat = -32.9,
  beta = 30,
  alfa = 0,
  Pn = 1.5,
  iS = 2,
  year = as.POSIXlt(Sys.Date())$year + 1900 - 1,
  modulo = list(Vocn = 37.7, Iscn = 8.95, Vmn = 30.3, Imn = 8.58, Ncs = 60, Ncp = 1,
    CoefVT = 0.00292, TONC = 45),
  generador = list(Nms = 6, Nmp = 1),
  inversor = list(Ki = c(0.0095, 0.015, 0.02), Pinv = 1500, Vmin = 160, Vmax = 500,
    Gumb = 20),
  rendimientos = list(ModQual = 3, ModDisp = 2, OhmDC = 1.5, OhmAC = 1.5, MPP = 1,
    TrafoMT = 0, Disp = 0.5)
)

Arguments

G0

xts con dos columnas: "G0" con radiación en el plano horizontal en kW/m² y "Ta" con temperatura media en ºC. Para datos mensuales, el índice de fechas en formato yearmon. Para datos intradiarios, el índice de fechas debe incluir el huso horario correspondiente. Puede ser el resultado de rad_nasa o importar_epw.

int_entrada

Cadena de caracteres: "MENSUAL", "DIARIO" o "INTRADIARIO" según corresponda a los datos de radiación y temperatura provistos en GO.

int_salida

Cadena de caracteres: "MENSUAL", "DIARIO" o "INTRADIARIO" según se prefieran los datos de salida de la función. Para int_entrada="MENSUAL", los datos de salida intradiarios corresponden a un día por mes (día medio mensual). Ademas, para int_entrada="MENSUAL", el objeto xts devuelto para int_salida="MENSUAL" y para int_salida="DIARIO" es el mismo.

lon

Numérico. Longitud de la ubicación del lugar en grados. Solo utilizado para datos de entrada intradiarios.

lat

Numérico. Latitud de la ubicación del lugar en grados. Negativo para hemisferio sur.

beta

Numérico. Inclinación del panel en grados.

alfa

Numérico. Azimuth en grados. Para hemisferio norte, el sur es cero, es negativo hacia el este y positivo hacia el oeste. El package solaR no especifica para el hemisferio sur, pero se verificó que el norte es cero. Tomar mismo criterio que para hemisferio norte para este y oeste.

Pn

Numérico. Potencia nominal del sistema en kWp.

iS

Numérico. Grado de suciedad. Su valor puede ser 0,1,2,3,4. iS=0 no considera el efecto de suciedad y reflexión. iS=1 a iS=4 tiene en cuenta el efecto de suciedad y reflexión, donde iS=1 corresponde a una superficie limpia e iS=4 corresponde a una superficie sucia. El valor por defecto es 2.

year

Numérico. Indicar año al que corresponden los datos.

modulo

Objeto "list". Datos según package solaR: Ver sección "Details" y "Usage" para valores por defecto. Ver además argumento module en prodGCPV.

generador

Objeto "list". Datos según package solaR. Ver sección "Details" y "Usage" para valores por defecto. Ver además argumento generator en prodGCPV.

inversor

Objeto "list". Datos según package solaR. Ver sección "Details" y "Usage" para valores por defecto. Ver además argumento inverter en prodGCPV.

rendimientos

Objeto "list". Datos según package solaR. Ver sección "Details" y "Usage" para valores por defecto. Ver además argumento effSys en prodGCPV.

Details

Descripción adicional de parámetros. Elementos de los siguientes objetos "list".

modulo (valores por defecto para módulo LV Energy LVE60PS):

  • Vocn: open-circuit voltage of the module at Standard Test Conditions (V).

  • Iscn: short circuit current of the module at Standard Test Conditions (A).

  • Vmn: maximum power point voltage of the module at Standard Test Conditions (V).

  • Imn: Maximum power current of the module at Standard Test Conditions (A).

  • Ncs: number of cells in series inside the module.

  • Ncp: number of cells in parallel inside the module.

  • CoefVT: coefficient of decrement of voltage of each cell with the temperature (volts per celsius degree).

  • TONC: nominal operational cell temperature (ºC).

generador (valores por defecto para techos solares PRIER Armstrong):

  • Nms: number of modules in series.

  • Nmp: number of modules in parallel.

inversor (valores por defecto para inversor SMA SB 1.5):

  • Ki: vector of three values, coefficients of the efficiency curve of the inverter (default c(0.0095, 0.015, 0.02), SMA SB 1.5), or a matrix of nine values (3x3) if there is dependence with the voltage (see references solaR). Estos coeficientes corresponden a una función que modela el rendimiento de los inversores. Se pueden ajustar graficando en planilla de cálculos la tabla de valores que dá el fabricante en la hoja de datos del inversor y la dicha función modificando los coeficientes hasta que coincidan (es sencillo partiendo de los valores por defecto dados aquí). La función es: n=p0/(p0+k0+k1.p0+k2.p0), donde "n" es el rendimiento del inversor, p0 es la potencia de salida normalizada en por unidad (eje x de la gráfica) y k0, k1 y k2 son los tres coeficientes respectivamente (en los valores por defecto: k0=0.0095, k1=0.015 y k2=0.02). Se puede ver detalle en libro de O. Perpiñan (ver referencias).

  • Pinv: nominal inverter power (W).

  • Vmin, Vmax: minimum and maximum voltages of the MPP range of the inverter (V).

  • Gumb: minimum irradiance for the inverter to start (W/m²) (default value 20W/m²).

rendimientos (valores por defecto de package solaR ajustados con NREL):

  • ModQual: average tolerance of the set of modules (porciento), default value is 3.

  • ModDisp: module parameter disperssion losses (porciento), default value is 2.

  • OhmDC: Joule losses due to the DC wiring (porciento), default value is 1.5.

  • OhmAC: Joule losses due to the AC wiring (porciento), default value is 1.5.

  • MPP: average error of the MPP algorithm of the inverter (porciento), default value is 1.

  • TrafoMT: losses due to the MT transformer (porciento), default value is 0.

  • Disp: losses due to stops of the system (porciento), default value is 0.5.

Value

Devuelve objeto xts con las columnas detalladas a continuación:

  • Para int_salida="MENSUAL": G0dm (kW/m²), Tadm (ºC), Gefdm (o Gdm si iS=0) (kW/m²), Eac_dm (energía producida en un día en kWh), Eac_m (energía producida en el mes en kWh) y PRdm (PR diario mensual del sistema calculado).

  • Para int_salida="DIARIO": G0d (kW/m²), Tad (ºC), Gefd (o Gd si iS=0) (kW/m²), Eac_d (energía producida en un día en kWh) y PRd (PR diario del sistema calculado).

  • Para int_salida="INTRADIARIO": G0 (kW/m²), Ta (ºC), Gef (o G si iS=0) (kW/m²), Pac (potencia producida en el intervalo de tiempo en kW) y PR (PR en el intervalo de tiempo del sistema calculado).

Author(s)

Daniel G. Paniagua

References

  • Perpiñán, O, Energía Solar Fotovoltaica, 2015. (http://oscarperpinan.github.io/esf/)

  • Perpiñán O (2012). “solaR: Solar Radiation and Photovoltaic Systems with R.” Journal of Statistical Software, 50(9), 1–32. http://www.jstatsoft.org/v50/i09/.

Examples

# #Calculo de las distintas combinaciones de intervalos de datos de entrada y salida.
#
# rad_intra <- importar_epw("ARG_MARCOS-JUAREZ-AERO_874670_IW2.EPW")
#
# rad_dia <- rad_nasa(intervalo = "DIARIO", lonlat = c(-62.15,-32.7),
#                     fechas = c("2019-01-01","2019-12-31"))
#
# rad_mes <- rad_nasa(intervalo = "MENSUAL", lonlat = c(-62.15,-32.7), fechas = 2019)
#
# ######1)DATOS DE ENTRADA INTRADIARIO######
#
# prod1_intra_intra_is0 <- prod_energia(G0=rad_intra, int_entrada="INTRADIARIO",
#                                       int_salida="INTRADIARIO",
#                                       lon=-62.15, lat=-32.7, beta=30, alfa=0, Pn=1.56, iS = 0,
#                                       year=as.POSIXlt(Sys.Date())$year+1900-1)
#
# prod2_intra_intra_is2 <- prod_energia(G0=rad_intra, int_entrada="INTRADIARIO",
#                                       int_salida="INTRADIARIO",
#                                       lon=-62.15, lat=-32.7, beta=30, alfa=0, Pn=1.56, iS = 2,
#                                       year=as.POSIXlt(Sys.Date())$year+1900-1)
#
# prod3_intra_dia_is0 <- prod_energia(G0=rad_intra, int_entrada="INTRADIARIO",
#                                     int_salida="DIARIO",
#                                     lon=-62.15, lat=-32.7, beta=30, alfa=0, Pn=1.56, iS = 0,
#                                     year=as.POSIXlt(Sys.Date())$year+1900-1)
#
# prod4_intra_dia_is2 <- prod_energia(G0=rad_intra, int_entrada="INTRADIARIO",
#                                     int_salida="DIARIO",
#                                     lon=-62.15, lat=-32.7, beta=30, alfa=0, Pn=1.56, iS = 2,
#                                     year=as.POSIXlt(Sys.Date())$year+1900-1)
#
# prod5_intra_mes_is0 <- prod_energia(G0=rad_intra, int_entrada="INTRADIARIO",
#                                     int_salida="MENSUAL",
#                                     lon=-62.15, lat=-32.7, beta=30, alfa=0, Pn=1.56, iS = 0,
#                                     year=as.POSIXlt(Sys.Date())$year+1900-1)
#
# prod6_intra_mes_is2 <- prod_energia(G0=rad_intra, int_entrada="INTRADIARIO",
#                                     int_salida="MENSUAL",
#                                     lon=-62.15, lat=-32.7, beta=30, alfa=0, Pn=1.56, iS = 2,
#                                     year=as.POSIXlt(Sys.Date())$year+1900-1)
#
# ######2)DATOS DE ENTRADA DIARIO######
#
# prod7_dia_intra_is0 <- prod_energia(G0=rad_dia, int_entrada="DIARIO", int_salida="INTRADIARIO",
#                                     lon=-62.15, lat=-32.7, beta=30, alfa=0, Pn=1.56, iS = 0,
#                                     year=as.POSIXlt(Sys.Date())$year+1900-1)
#
# prod8_dia_intra_is2 <- prod_energia(G0=rad_dia, int_entrada="DIARIO", int_salida="INTRADIARIO",
#                                     lon=-62.15, lat=-32.7, beta=30, alfa=0, Pn=1.56, iS = 2,
#                                     year=as.POSIXlt(Sys.Date())$year+1900-1)
#
# prod9_dia_dia_is0 <- prod_energia(G0=rad_dia, int_entrada="DIARIO", int_salida="DIARIO",
#                                   lon=-62.15, lat=-32.7, beta=30, alfa=0, Pn=1.56, iS = 0,
#                                   year=as.POSIXlt(Sys.Date())$year+1900-1)
#
# prod10_dia_dia_is2 <- prod_energia(G0=rad_dia, int_entrada="DIARIO", int_salida="DIARIO",
#                                    lon=-62.15, lat=-32.7, beta=30, alfa=0, Pn=1.56, iS = 2,
#                                    year=as.POSIXlt(Sys.Date())$year+1900-1)
#
# prod11_dia_mes_is0 <- prod_energia(G0=rad_dia, int_entrada="DIARIO", int_salida="MENSUAL",
#                                    lon=-62.15, lat=-32.7, beta=30, alfa=0, Pn=1.56, iS = 0,
#                                    year=as.POSIXlt(Sys.Date())$year+1900-1)
#
# prod12_dia_mes_is2 <- prod_energia(G0=rad_dia, int_entrada="DIARIO", int_salida="MENSUAL",
#                                    lon=-62.15, lat=-32.7, beta=30, alfa=0, Pn=1.56, iS = 2,
#                                    year=as.POSIXlt(Sys.Date())$year+1900-1)
#
#
# ######3)DATOS DE ENTRADA MENSUAL######
# prod13_mes_intra_is0 <- prod_energia(G0=rad_mes, int_entrada="MENSUAL",
#                                      int_salida="INTRADIARIO",
#                                      lon=-62.15, lat=-32.7, beta=30, alfa=0, Pn=1.56, iS = 0,
#                                      year=as.POSIXlt(Sys.Date())$year+1900-1)
#
# prod14_mes_intra_is2 <- prod_energia(G0=rad_mes, int_entrada="MENSUAL",
#                                      int_salida="INTRADIARIO",
#                                      lon=-62.15, lat=-32.7, beta=30, alfa=0, Pn=1.56, iS = 2,
#                                      year=as.POSIXlt(Sys.Date())$year+1900-1)
#
# prod15_mes_dia_is0 <- prod_energia(G0=rad_mes, int_entrada="MENSUAL", int_salida="DIARIO",
#                                    lon=-62.15, lat=-32.7, beta=30, alfa=0, Pn=1.56, iS = 0,
#                                    year=as.POSIXlt(Sys.Date())$year+1900-1)
#
# prod16_mes_dia_is2 <- prod_energia(G0=rad_mes, int_entrada="MENSUAL", int_salida="DIARIO",
#                                    lon=-62.15, lat=-32.7, beta=30, alfa=0, Pn=1.56, iS = 2,
#                                    year=as.POSIXlt(Sys.Date())$year+1900-1)
#
# prod17_mes_mes_is0 <- prod_energia(G0=rad_mes, int_entrada="MENSUAL", int_salida="MENSUAL",
#                                    lon=-62.15, lat=-32.7, beta=30, alfa=0, Pn=1.56, iS = 0,
#                                    year=as.POSIXlt(Sys.Date())$year+1900-1)
#
# prod18_mes_mes_is2 <- prod_energia(G0=rad_mes, int_entrada="MENSUAL", int_salida="MENSUAL",
#                                    lon=-62.15, lat=-32.7, beta=30, alfa=0, Pn=1.56, iS = 2,
#                                    year=as.POSIXlt(Sys.Date())$year+1900-1)

dgpaniagua/oesolar documentation built on Sept. 29, 2023, 9:35 a.m.