{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "3c597da7",
"metadata": {
"slideshow": {
"slide_type": "skip"
},
"tags": [
"remove-cell"
]
},
"outputs": [],
"source": [
"import importlib.util\n",
"if importlib.util.find_spec('pvlib') is None:\n",
" !pip install pvlib"
]
},
{
"cell_type": "markdown",
"id": "2252d0b2",
"metadata": {},
"source": [
"\n",
"# Tutorial 4 - Modelación módulo PV\n",
"\n",
"Este es un tutorial para estimar el desempeño de un módulo PV usando `pvlib`."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "ebda1260",
"metadata": {},
"outputs": [],
"source": [
"import pvlib"
]
},
{
"cell_type": "markdown",
"id": "052971cf",
"metadata": {},
"source": [
"Acá utilizaremos 3 módulos de la librería.\n",
"\n",
"- `pvlib.irradiance`: para estimación de ángulos de incidencia y niveles de irradiación efectivos sobre el módulo.\n",
"- `pvlib.temperature`: para estimación de la temperatura de las celdas en condiciones de operación.\n",
"- `pvlib.pvsystem`: para análisis de módulos pv y estimación de curvas IV."
]
},
{
"cell_type": "markdown",
"id": "7c507774",
"metadata": {},
"source": [
"> Para mayor información de las funciones de este tutorial, revisar la documentación oficial de [`pvlib`](https://pvlib-python.readthedocs.io/en/stable/reference/index.html)"
]
},
{
"cell_type": "markdown",
"id": "040da653",
"metadata": {},
"source": [
"## Selección de módulo pv (`pvsystem.retrieve_sam`)"
]
},
{
"cell_type": "markdown",
"id": "c9a188c0",
"metadata": {},
"source": [
"### La biblioteca de módulos CEC (`'CECmod'`)\n",
"\n",
"El *California Energy Commission Comisión* (CEC) contrató laboratorios de pruebas autorizados para caracterizar una variedad de módulos pv en condiciones de medición estandar (*standard test conditions* o STC). Los resultados incluyen: corriente en corto circuito ($I_\\mathrm{sc}$), voltaje en circuito abierto ($V_\\mathrm{oc}$); voltaje, corriente y potencia en punto de potencia máxima o mpp ($V_\\mathrm{mpp}$, $I_\\mathrm{mpp}$ y $P_\\mathrm{mpp}$); coeficientes de temperatura de voltaje y corriente, dimensiones del módulo, número de celdas en serie ($N_s$), subcadenas paralelas ($N_p$), área del módulo en $\\mathrm{m^2}$ ($A_c$), entre otros. La base de datos CEC está disponibles en la [Lista de equipos solares](https://solarequipment.energy.ca.gov/Home/PVModuleList) y en un archivo CSV incluido en el *System Advisor Model* (SAM) del *National Renewable Energy Laboratory* (NREL)."
]
},
{
"cell_type": "markdown",
"id": "aee3d90b",
"metadata": {},
"source": [
"En `pvlib` podemos acceder a la biblioteca CEC mediante la función `retrieve_sam` del módulo `pvlib.pvsystem`, usando el argumento `name = 'CECMod'`"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "70edbcd0",
"metadata": {},
"outputs": [],
"source": [
"pv_module_db = pvlib.pvsystem.retrieve_sam(name = 'CECMod')"
]
},
{
"cell_type": "markdown",
"id": "773dc222",
"metadata": {},
"source": [
"La información está desplegada en formato *dataframe*, donde los modelos de paneles están en anexados por columnas."
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "dbff161b",
"metadata": {
"tags": [
"output_scroll"
]
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
Technology
\n",
"
Bifacial
\n",
"
STC
\n",
"
PTC
\n",
"
A_c
\n",
"
Length
\n",
"
Width
\n",
"
N_s
\n",
"
I_sc_ref
\n",
"
V_oc_ref
\n",
"
...
\n",
"
a_ref
\n",
"
I_L_ref
\n",
"
I_o_ref
\n",
"
R_s
\n",
"
R_sh_ref
\n",
"
Adjust
\n",
"
gamma_r
\n",
"
BIPV
\n",
"
Version
\n",
"
Date
\n",
"
\n",
" \n",
" \n",
"
\n",
"
A10Green_Technology_A10J_S72_175
\n",
"
Mono-c-Si
\n",
"
0
\n",
"
175.0914
\n",
"
151.2
\n",
"
1.3
\n",
"
1.576
\n",
"
0.825
\n",
"
72
\n",
"
5.17
\n",
"
43.99
\n",
"
...
\n",
"
1.981696
\n",
"
5.175703
\n",
"
0.0
\n",
"
0.316688
\n",
"
287.102203
\n",
"
16.057121
\n",
"
-0.5072
\n",
"
N
\n",
"
SAM 2018.11.11 r2
\n",
"
1/3/2019
\n",
"
\n",
"
\n",
"
A10Green_Technology_A10J_S72_180
\n",
"
Mono-c-Si
\n",
"
0
\n",
"
179.928
\n",
"
155.7
\n",
"
1.3
\n",
"
1.576
\n",
"
0.825
\n",
"
72
\n",
"
5.31
\n",
"
44.06
\n",
"
...
\n",
"
1.988414
\n",
"
5.316148
\n",
"
0.0
\n",
"
0.299919
\n",
"
259.047943
\n",
"
16.418983
\n",
"
-0.5072
\n",
"
N
\n",
"
SAM 2018.11.11 r2
\n",
"
1/3/2019
\n",
"
\n",
"
\n",
"
A10Green_Technology_A10J_S72_185
\n",
"
Mono-c-Si
\n",
"
0
\n",
"
184.7016
\n",
"
160.2
\n",
"
1.3
\n",
"
1.576
\n",
"
0.825
\n",
"
72
\n",
"
5.43
\n",
"
44.14
\n",
"
...
\n",
"
1.984817
\n",
"
5.435676
\n",
"
0.0
\n",
"
0.311962
\n",
"
298.424438
\n",
"
15.688233
\n",
"
-0.5072
\n",
"
N
\n",
"
SAM 2018.11.11 r2
\n",
"
1/3/2019
\n",
"
\n",
"
\n",
"
A10Green_Technology_A10J_M60_220
\n",
"
Multi-c-Si
\n",
"
0
\n",
"
219.876
\n",
"
189.1
\n",
"
1.624
\n",
"
1.632
\n",
"
0.995
\n",
"
60
\n",
"
7.95
\n",
"
36.06
\n",
"
...
\n",
"
1.673094
\n",
"
7.959062
\n",
"
0.0
\n",
"
0.140393
\n",
"
123.168404
\n",
"
21.875164
\n",
"
-0.5196
\n",
"
N
\n",
"
SAM 2018.11.11 r2
\n",
"
1/3/2019
\n",
"
\n",
"
\n",
"
A10Green_Technology_A10J_M60_225
\n",
"
Multi-c-Si
\n",
"
0
\n",
"
224.9856
\n",
"
193.5
\n",
"
1.624
\n",
"
1.632
\n",
"
0.995
\n",
"
60
\n",
"
8.04
\n",
"
36.24
\n",
"
...
\n",
"
1.671782
\n",
"
8.047206
\n",
"
0.0
\n",
"
0.14737
\n",
"
164.419479
\n",
"
20.698376
\n",
"
-0.5196
\n",
"
N
\n",
"
SAM 2018.11.11 r2
\n",
"
1/3/2019
\n",
"
\n",
" \n",
"
\n",
"
5 rows × 25 columns
\n",
"
"
],
"text/plain": [
" Technology Bifacial STC PTC A_c \\\n",
"A10Green_Technology_A10J_S72_175 Mono-c-Si 0 175.0914 151.2 1.3 \n",
"A10Green_Technology_A10J_S72_180 Mono-c-Si 0 179.928 155.7 1.3 \n",
"A10Green_Technology_A10J_S72_185 Mono-c-Si 0 184.7016 160.2 1.3 \n",
"A10Green_Technology_A10J_M60_220 Multi-c-Si 0 219.876 189.1 1.624 \n",
"A10Green_Technology_A10J_M60_225 Multi-c-Si 0 224.9856 193.5 1.624 \n",
"\n",
" Length Width N_s I_sc_ref V_oc_ref ... \\\n",
"A10Green_Technology_A10J_S72_175 1.576 0.825 72 5.17 43.99 ... \n",
"A10Green_Technology_A10J_S72_180 1.576 0.825 72 5.31 44.06 ... \n",
"A10Green_Technology_A10J_S72_185 1.576 0.825 72 5.43 44.14 ... \n",
"A10Green_Technology_A10J_M60_220 1.632 0.995 60 7.95 36.06 ... \n",
"A10Green_Technology_A10J_M60_225 1.632 0.995 60 8.04 36.24 ... \n",
"\n",
" a_ref I_L_ref I_o_ref R_s \\\n",
"A10Green_Technology_A10J_S72_175 1.981696 5.175703 0.0 0.316688 \n",
"A10Green_Technology_A10J_S72_180 1.988414 5.316148 0.0 0.299919 \n",
"A10Green_Technology_A10J_S72_185 1.984817 5.435676 0.0 0.311962 \n",
"A10Green_Technology_A10J_M60_220 1.673094 7.959062 0.0 0.140393 \n",
"A10Green_Technology_A10J_M60_225 1.671782 8.047206 0.0 0.14737 \n",
"\n",
" R_sh_ref Adjust gamma_r BIPV \\\n",
"A10Green_Technology_A10J_S72_175 287.102203 16.057121 -0.5072 N \n",
"A10Green_Technology_A10J_S72_180 259.047943 16.418983 -0.5072 N \n",
"A10Green_Technology_A10J_S72_185 298.424438 15.688233 -0.5072 N \n",
"A10Green_Technology_A10J_M60_220 123.168404 21.875164 -0.5196 N \n",
"A10Green_Technology_A10J_M60_225 164.419479 20.698376 -0.5196 N \n",
"\n",
" Version Date \n",
"A10Green_Technology_A10J_S72_175 SAM 2018.11.11 r2 1/3/2019 \n",
"A10Green_Technology_A10J_S72_180 SAM 2018.11.11 r2 1/3/2019 \n",
"A10Green_Technology_A10J_S72_185 SAM 2018.11.11 r2 1/3/2019 \n",
"A10Green_Technology_A10J_M60_220 SAM 2018.11.11 r2 1/3/2019 \n",
"A10Green_Technology_A10J_M60_225 SAM 2018.11.11 r2 1/3/2019 \n",
"\n",
"[5 rows x 25 columns]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pv_module_db.T.head() # Trasponemos la lista con \".T\", para visualizar los paneles por filas"
]
},
{
"cell_type": "markdown",
"id": "b03aec03",
"metadata": {},
"source": [
"Cada módulo está caracterizado por los siguientes parámetros:\n",
"\n",
"| parámetro | tipo de variable | Unidades o descripción |\n",
"| :----------- | :--------: | :-------------------------------------------------------------------------------------------- |\n",
"| `Technology` | string | one of \"Mono-c-Si\", \"Multi-c-Si\", \"Thin Film\", \"CdTe\", or \"CIGS\" families of cells |\n",
"| `Bifacial` | boolean | is bifacial? |\n",
"| `STC` | float | nameplate in W at STC |\n",
"| `PTC` | float | nameplate in W at PVUSA test conditions (1-sun, 20° ambient temperature, 1-m/s windspeed) |\n",
"| `A_c` | float | module area in m² |\n",
"| `Length` | float | module length in m; |\n",
"| `Width` | float | module width in m; |\n",
"| `N_s` | int | number of cells in series |\n",
"| `I_sc_ref` | float | short circuit current in A at reference condition |\n",
"| `V_oc_ref` | float | open circuit voltage in V at reference condition |\n",
"| `I_mp_ref` | float | max power current in A at reference condition |\n",
"| `V_mp_ref` | float | max power voltage in V at reference condition |\n",
"| `alpha_sc` | float | short circuit current temperature coefficient in A/Δ°C |\n",
"| `beta_oc` | float | open circuit voltage temperature coefficient in V/Δ°C |\n",
"| `T_NOCT` | float | normal operating cell temperature in °C |\n",
"| `a_ref` | float | diode ideality factor |\n",
"| `I_L_ref` | float | light or photogenerated current at reference condition in A |\n",
"| `I_o_ref` | float | diode saturation current at reference condition in A |\n",
"| `R_s` | float | series resistance in Ω |\n",
"| `R_sh_ref` | float | shunt resistance at reference condition in Ω |\n",
"| `Adjust` | float | adjustment to short circuit temperature coefficient in % |\n",
"| `gamma_r` | float | power temperature coefficient at reference condition in %/Δ°C |\n",
"| `BIPV` | boolean | is building integrated PV? |"
]
},
{
"cell_type": "markdown",
"id": "2c459fd5",
"metadata": {},
"source": [
"### Selección de modelo de panel"
]
},
{
"cell_type": "markdown",
"id": "e9ecab6d",
"metadata": {},
"source": [
"Como vemos, en la biblioteca CEC los módulos se nombran según el esquema \n",
"\n",
" \n",
"Los espacios en blanco, los guiones y otros caracteres no alfanuméricos se reemplazan por `_` en pvlib python. Por ejemplo, “Canadian Solar Inc. CS5M-220M” existe en la base de datos como: `Canadiense_Solar_Inc__CS5P_220M`"
]
},
{
"cell_type": "markdown",
"id": "449cb054",
"metadata": {},
"source": [
"Alternativamente, podemos usar el comando `.T.index.str.startswith` para buscar el modelo. Por ejemplo, para buscar e modelo [CS6X-300M de Canadian Solar Inc](https://s3.amazonaws.com/ecodirect_docs/CANADIAN/MaxPower_CS6X-M.pdf), buscamos todos los modelos cuyo nombre incluye `'Canadian_Solar_Inc__CS6X'`"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "14f0f6b1",
"metadata": {
"tags": [
"output_scroll"
]
},
"outputs": [
{
"data": {
"text/html": [
"
"
],
"text/plain": [
" ghi dni dhi apparent_zenith azimuth temp_air wind_speed\n",
"0 450 170 350 44.2 97.4 13.0 6.50\n",
"1 550 130 430 33.1 110.6 13.5 7.20\n",
"2 950 950 100 23.3 131.3 15.0 7.60\n",
"3 1050 960 100 17.4 167.9 16.5 8.05"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"\n",
"site_conditions = pd.DataFrame(data = {\n",
" 'ghi': [ 450, 550, 950, 1050], # Irradiación horizontal global (W/m2)\n",
" 'dni': [ 170, 130, 950, 960], # Irradiación normal directa (W/m2)\n",
" 'dhi': [ 350, 430, 100, 100], # Irradiación horizonal difusa (W/m2)\n",
"'apparent_zenith': [ 44.2, 33.1, 23.3, 17.4], # ángulo cenital aparente (°)\n",
" 'azimuth': [ 97.4, 110.6, 131.3, 167.9], # ángulo acimutal (°)\n",
" 'temp_air': [ 13.0, 13.5, 15.0, 16.5], # temperatura del aire (°V)\n",
" 'wind_speed': [ 6.5, 7.2, 7.6, 8.05]}) # Velocidad del viento (m/s)\n",
"\n",
"site_conditions"
]
},
{
"cell_type": "markdown",
"id": "14fa238e",
"metadata": {},
"source": [
"En este caso, agrupamos todos los datos en un *dataframe* `site_conditions` para facilitar la manipulación posterior. Sin embargo, esto no es obligatorio."
]
},
{
"cell_type": "markdown",
"id": "8a47545b",
"metadata": {},
"source": [
"### Irradiación sobre el módulo (`pvlib.irradiance`)\n",
"\n",
"La irradiación efectiva sobre la superficie del módulo ($G_\\mathrm{eff}$), depende del **ángulo de incidencia ($\\theta_i$)** y los **niveles de irradiación (GHI, DNI y DHI)**. En general, determinar esto requiere de modelos complejos. Acá, para simplificar, usaremos la relación:\n",
"\n",
"\\begin{equation*}\n",
"G_\\mathrm{eff} = G_\\mathrm{DNI}\\cos\\theta_i + G_\\mathrm{DHI}\n",
"\\end{equation*}\n",
"\n",
"Para determinar el **ángulo de incidencia (*angle of incidence* o AOI)**, usamos la función `aoi` del módulo `pvlib.irradiance`. Tal como se discutió en la [unidad 7](../../07_Radiación_Solar/07_Radiación_Solar.ipynb), el ángulo de incidencia depende de los ángulos de inclinación del módulo y del sol. En la función `aoi`, estos parámetros son:\n",
"\n",
"- `surface_tilt`: ángulo cenital del módulo (en grados)\n",
"- `surface_azimuth`: ángulo acimutal del módulo (en grados)\n",
"- `solar_zenith`: ángulo cenital solar (en grados)\n",
"- `solar_azimuth`: ángulo acimutal solar (en grados)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "0c5f1f23",
"metadata": {},
"outputs": [],
"source": [
"sun_zenith = site_conditions['apparent_zenith'].values\n",
"sun_azimuth = site_conditions['azimuth'].values\n",
"\n",
"aoi = pvlib.irradiance.aoi(\n",
" surface_tilt = pv_module_zenith,\n",
" surface_azimuth = pv_module_azimuth,\n",
" solar_zenith = sun_zenith,\n",
" solar_azimuth = sun_azimuth)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "0c2ba56b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([14.86296973, 11.16380436, 19.26937607, 30.93638479])"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aoi # mostramos el ángulo de incidencia"
]
},
{
"cell_type": "markdown",
"id": "e64dae24",
"metadata": {},
"source": [
"Con esto, determinamos la irradiación efectiva sobre el módulo."
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "2804e518",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Irradiación efectiva: [514.31215061 557.5400963 996.77859924 923.42907172]\n"
]
}
],
"source": [
"import numpy as np\n",
"\n",
"# get irradiance\n",
"dni = site_conditions['dni'].values\n",
"ghi = site_conditions['ghi'].values\n",
"dhi = site_conditions['dhi'].values\n",
"\n",
"# Determinamos irradiación effectiva sobre el módulo\n",
"Geff = dni*np.cos(np.radians(aoi)) + dhi\n",
"\n",
"print('Irradiación efectiva:', Geff)"
]
},
{
"cell_type": "markdown",
"id": "1d5c6c6d",
"metadata": {},
"source": [
"### Temperatura de las celdas (`pvlib.temperature`)\n",
"\n",
"Existen distintos modelos para determinar la temperatura de las celdas $T_\\mathrm{cell}$. En este curso usaremos el [*Sandia Array Performance Model*](https://www.osti.gov/servlets/purl/919131) de *Sandia National Laboratories*. El modelo está compuesto por dos ecuaciones:\n",
"\n",
"\\begin{align*}\n",
"T_\\mathrm{mod} &= G_\\mathrm{eff} e^{a + b V_\\mathrm{wind}} + T_a \\\\\n",
"T_\\mathrm{cell} &= T_\\mathrm{mod} + \\frac{G_\\mathrm{eff}}{G_0}\\Delta T\n",
"\\end{align*}\n",
"\n",
"donde $T_a$ es la temperatura del aire, $G_\\mathrm{eff}$ es la irradiancia efectiva sobre el módulo, $G_0$ es la irradiancia de referencia, $V_\\mathrm{wind}$ es la velocidad del viento, $T_\\mathrm{mod}$ es la temperatura del módulo, y $a$, $b$ y $\\Delta T$ son parámetros de ajuste.\n",
"\n",
"Este modelo está implementado en la función `sapm_cell` del módulo `pvlib.temperature`. La función requiere de los siguientes parámetros:\n",
"- `poa_global`: Irradiación efectiva sobre el módulo ($\\mathrm{W/m^2}$)\n",
"- `temp_air`: Temperatura del aire (°C)\n",
"- `wind_speed`: Velocidad del viento (m/s)\n",
"- `a`: Parámetro $a$.\n",
"- `b`: Parámetro $b$.\n",
"- `deltaT`: Parámetro $\\Delta T$.\n",
"- `irrad_ref`: Irradiancia de referencia, $E_0$ ($\\mathrm{W/m^2}$). `irrad_ref = 1000`, por defecto).\n"
]
},
{
"cell_type": "markdown",
"id": "d3cc10ff",
"metadata": {},
"source": [
"Los parámetros de ajuste $a$, $b$ y $\\Delta T$ dependen, en general, de la construcción del módulo pv (protección frontal y trasera) y de su montaje. La variable `TEMPERATURE_MODEL_PARAMETERS` del módulo `pvlib.temperature` contiene una lista de referencia:\n",
"\n",
"| front / backsheet | montaje | variable |\n",
"|:--------------------:|:-------:|:--------:|\n",
"|vidrio / vidrio|rack abierto|`open_rack_glass_glass`|\n",
"|vidrio / vidrio|rack cerrado|`close_mount_glass_glass`|\n",
"|vidrio / polímero|rack abierto|`open_rack_glass_polymer`|\n",
"|vidrio / polímero|rack aislado|`insulated_glass_polymer`|"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "b2e29887",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'open_rack_glass_glass': {'a': -3.47, 'b': -0.0594, 'deltaT': 3},\n",
" 'close_mount_glass_glass': {'a': -2.98, 'b': -0.0471, 'deltaT': 1},\n",
" 'open_rack_glass_polymer': {'a': -3.56, 'b': -0.075, 'deltaT': 3},\n",
" 'insulated_back_glass_polymer': {'a': -2.81, 'b': -0.0455, 'deltaT': 0}}"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from pvlib.temperature import TEMPERATURE_MODEL_PARAMETERS\n",
"TEMPERATURE_MODEL_PARAMETERS['sapm']"
]
},
{
"cell_type": "markdown",
"id": "80420ac2",
"metadata": {},
"source": [
"En este caso, consideraremos los parámetros de un módulo sin aislar y protegido por un polímero en la parte trasera (`open_rack_glass_polymer`); adecuado para la mayoría de los sistemas actuales."
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "409e02b4",
"metadata": {},
"outputs": [],
"source": [
"parameters = TEMPERATURE_MODEL_PARAMETERS['sapm']['open_rack_glass_polymer']"
]
},
{
"cell_type": "markdown",
"id": "51d4a4d1",
"metadata": {},
"source": [
"Ahora procedemos a determinar la temperatura de la celda.\n",
"\n",
"> **Nota:** usamos el argumento `**parameters` para extraer los parámetros `a`, `b` y `deltaT` de forma automática. Omitimos el parámetro `irrad_ref` para usar el valor por defecto."
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "b022f2c2",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Temperatura de la celda: [23.52590479 24.41255133 34.02140522 33.62881438]\n"
]
}
],
"source": [
"# Extraemos datos de temperatura del aire y viento\n",
"temp_air = site_conditions['temp_air'].values\n",
"wind_speed = site_conditions['wind_speed'].values\n",
"\n",
"# Calculamos la temperatura de la celda\n",
"temp_cell = pvlib.temperature.sapm_cell( \n",
" poa_global = Geff,\n",
" temp_air = temp_air,\n",
" wind_speed = wind_speed,\n",
" **parameters)\n",
"\n",
"print('Temperatura de la celda: ', temp_cell)"
]
},
{
"cell_type": "markdown",
"id": "9e61d672",
"metadata": {},
"source": [
"### Parámetros SDM en operación (`pvlib.pvsystem.calcparams_cec`)"
]
},
{
"cell_type": "markdown",
"id": "7467dbc4",
"metadata": {},
"source": [
"[Como vimos en la unidad 10](../../10_SolarFotovoltaica/10_SolarFotovoltaica.ipynb), el modelo SDM está caracterizado por 5 parámetros:\n",
"- Corriente fotoinducida, `IL` (análogo a $I_\\mathrm{ph}$)\n",
"- Corriente de saturación, `I0`.\n",
"- Resistencia en derivación, `Rs`.\n",
"- Resistencia en serie, `Rsh`.\n",
"- Factor de idealidad del diodo, $n$.\n",
"\n",
"Es importante considerar que **los parámetros de la biblioteca CEC fueron determinados en condiciones de operación estandar (o STC)**. Así, debemos **determinar el valor efectivo de estos parámetros en las condiciones de operación del módulo pv.**"
]
},
{
"cell_type": "markdown",
"id": "e65e920d",
"metadata": {},
"source": [
"**En `pvlib` usamos la función `calcparams_cec` del módulo `pvlib.pvsystem` para derterminar `IL`, `I0`, `Rs`, `Rsh` y `nNsVth` en las condiciones de operación.** El último parámetro (`nNsVth`), corresponde al producto entre $n$, el número de celdas en serie ($N_s$) y el voltaje térmico ($V_T$)."
]
},
{
"cell_type": "markdown",
"id": "b880a996",
"metadata": {},
"source": [
"Como parámetros de entrada, `pvsystem.calcparams_cec` requiere: \n",
"- `effective_irradiance`: Niveles de irradiancia\n",
"- `temp_cell`: Temperatura de la celda\n",
"- `alpha_sc`, `a_ref`, `I_L_ref`, `I_o_ref`, `R_sh_ref` y `Adjust`: Parámetros CEC asociados al módulo seleccionado.\n",
"- `EgRef`: Bandgap de la celda (`EgRef = 1.121` en todos los casos)\n",
"- `dEgdT`: Variación del bandgap con la temperatura (`dEgdT = -0.0002677` en todos los casos)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "7154a0d0",
"metadata": {},
"outputs": [],
"source": [
"IL, I0, Rs, Rsh, nNsVth = pvlib.pvsystem.calcparams_cec(\n",
" effective_irradiance = Geff,\n",
" temp_cell = temp_cell,\n",
" alpha_sc = pv_model.alpha_sc,\n",
" a_ref = pv_model.a_ref,\n",
" I_L_ref = pv_model.I_L_ref,\n",
" I_o_ref = pv_model.I_o_ref,\n",
" R_sh_ref = pv_model.R_sh_ref,\n",
" R_s = pv_model.R_s,\n",
" Adjust = pv_model.Adjust,\n",
" EgRef = 1.121,\n",
" dEgdT = -0.0002677)"
]
},
{
"cell_type": "markdown",
"id": "d8212062",
"metadata": {},
"source": [
"El resultado de cada variable se almacena en un arreglo asociado a las condiciones de irradiación y temperatura."
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "9f996154",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
Geff (W/m2)
\n",
"
Tcell (°C)
\n",
"
IL (A)
\n",
"
I0 (A)
\n",
"
Rs (Ohm)
\n",
"
Rsh (Ohm)
\n",
"
nNsVth (V)
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
514.312151
\n",
"
23.525905
\n",
"
4.494982
\n",
"
2.133634e-10
\n",
"
0.366101
\n",
"
1060.014990
\n",
"
1.851982
\n",
"
\n",
"
\n",
"
1
\n",
"
557.540096
\n",
"
24.412551
\n",
"
4.874823
\n",
"
2.479015e-10
\n",
"
0.366101
\n",
"
977.828487
\n",
"
1.857517
\n",
"
\n",
"
\n",
"
2
\n",
"
996.778599
\n",
"
34.021405
\n",
"
8.754759
\n",
"
1.194023e-09
\n",
"
0.366101
\n",
"
546.940504
\n",
"
1.917500
\n",
"
\n",
"
\n",
"
3
\n",
"
923.429072
\n",
"
33.628814
\n",
"
8.109032
\n",
"
1.121840e-09
\n",
"
0.366101
\n",
"
590.384910
\n",
"
1.915049
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Geff (W/m2) Tcell (°C) IL (A) I0 (A) Rs (Ohm) Rsh (Ohm) \\\n",
"0 514.312151 23.525905 4.494982 2.133634e-10 0.366101 1060.014990 \n",
"1 557.540096 24.412551 4.874823 2.479015e-10 0.366101 977.828487 \n",
"2 996.778599 34.021405 8.754759 1.194023e-09 0.366101 546.940504 \n",
"3 923.429072 33.628814 8.109032 1.121840e-09 0.366101 590.384910 \n",
"\n",
" nNsVth (V) \n",
"0 1.851982 \n",
"1 1.857517 \n",
"2 1.917500 \n",
"3 1.915049 "
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Mostramos resultado en formato dataframe (solo para visualización)\n",
"column_values = ['Geff (W/m2)', 'Tcell (°C)', 'IL (A)', 'I0 (A)', 'Rs (Ohm)', 'Rsh (Ohm)', 'nNsVth (V)']\n",
"\n",
"pd.DataFrame(data = np.vstack((Geff, temp_cell, IL, I0, Rs, Rsh, nNsVth)).T, \n",
" columns = column_values) "
]
},
{
"cell_type": "markdown",
"id": "a79f457d",
"metadata": {},
"source": [
"### Caracterización curva IV (`pvlib.pvsystem.singlediode`)"
]
},
{
"cell_type": "markdown",
"id": "a872d9d8",
"metadata": {},
"source": [
"Una vez determinados los parámetros `IL`, `I0`, `Rs`, `Rsh` y `nNsVth` en las condiciones de operación, lo siguiente es resolver el SDM para caracterizar la curva IV del módulo en operación. Es decir, determinar $V_\\mathrm{oc}$, $I_\\mathrm{sc}$, $V_\\mathrm{mpp}$, $I_\\mathrm{mpp}$, etc. \n",
"\n",
"Para esto usamos la función `singlediode` del módulo `pvlib.pvystem`.\n",
"\n",
"Los parámetros de entrada de `pvlib.pvsystem.singlediode` son:\n",
"- `photocurrent`: corriente fotoinducida\n",
"- `saturation_current`: corriente de saturación\n",
"- `resistance_series`: resistencia en serie\n",
"- `resistance_shunt`: Resistencia en derivación\n",
"- `nNsVth`: producto $nN_sV_T$."
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "5a639c9f",
"metadata": {},
"outputs": [],
"source": [
"curve_info = pvlib.pvsystem.singlediode(\n",
" photocurrent = IL,\n",
" saturation_current= I0,\n",
" resistance_series = Rs,\n",
" resistance_shunt = Rsh,\n",
" nNsVth = nNsVth)"
]
},
{
"cell_type": "markdown",
"id": "7e8eb65b",
"metadata": {},
"source": [
"El *output* de la función es un *dataframe* con las características principales de la curva IV. Estos son:\n",
"- `i_sc`: corriente de corto circuito (A)\n",
"- `v_oc`: voltaje en circuito abierto (V)\n",
"- `i_mp`: corriente en punto de potencia máxima, o mpp (A)\n",
"- `v_mp`: voltaje en punto de potencia máxima, o mpp (V)\n",
"- `p_mp`: potencia en punto de potencia máxima, o mpp (W)\n",
"- `i_x`: corriente en `v = 0.5*v_oc` (A).\n",
"- `i_xx`: corriente en `v = 0.5*(v_oc + v_mp)` (A)."
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "2aba18f8",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
i_sc
\n",
"
v_oc
\n",
"
i_mp
\n",
"
v_mp
\n",
"
p_mp
\n",
"
i_x
\n",
"
i_xx
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
4.493430
\n",
"
44.006255
\n",
"
4.238331
\n",
"
36.887448
\n",
"
156.341223
\n",
"
4.472605
\n",
"
3.223348
\n",
"
\n",
"
\n",
"
1
\n",
"
4.872998
\n",
"
44.009772
\n",
"
4.594145
\n",
"
36.762238
\n",
"
168.891041
\n",
"
4.850413
\n",
"
3.471360
\n",
"
\n",
"
\n",
"
2
\n",
"
8.748903
\n",
"
43.539514
\n",
"
8.197781
\n",
"
35.017820
\n",
"
287.068421
\n",
"
8.708590
\n",
"
5.821700
\n",
"
\n",
"
\n",
"
3
\n",
"
8.104007
\n",
"
43.456587
\n",
"
7.598350
\n",
"
35.139783
\n",
"
267.004359
\n",
"
8.066782
\n",
"
5.444804
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" i_sc v_oc i_mp v_mp p_mp i_x i_xx\n",
"0 4.493430 44.006255 4.238331 36.887448 156.341223 4.472605 3.223348\n",
"1 4.872998 44.009772 4.594145 36.762238 168.891041 4.850413 3.471360\n",
"2 8.748903 43.539514 8.197781 35.017820 287.068421 8.708590 5.821700\n",
"3 8.104007 43.456587 7.598350 35.139783 267.004359 8.066782 5.444804"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"curve_info"
]
},
{
"cell_type": "markdown",
"id": "f23034e1",
"metadata": {},
"source": [
"Suponiendo que el módulo opera en el punto mpp (utilizando un mpp tracker, por ejemplo), tenemos que entre la hora 0 y 3 la energía total entregada por el módulo está dada por la suma de los valores `p_mp`."
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "4d2d2462",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Energía total entregada por el módulo: 879.305 Wh\n"
]
}
],
"source": [
"print('Energía total entregada por el módulo: %.3f Wh' % np.sum(curve_info['p_mp']))"
]
},
{
"cell_type": "markdown",
"id": "9d3ce23f",
"metadata": {},
"source": [
"### Gráfico de curva IV (`pvlib.pvsystem.i_from_v`)"
]
},
{
"cell_type": "markdown",
"id": "d377533c",
"metadata": {},
"source": [
"Para graficar la curva IV podemos usar la función `i_from_v` del módulo `pvlib.pvsystem`. Esta función calcula la corriente para un voltaje `v` dado, en base al SDM. Los parámetros de entrada son:\n",
"- `voltage`: voltaje efectivo.\n",
"- `photocurrent`: corriente fotoinducida\n",
"- `saturation_current`: corriente de saturación\n",
"- `resistance_series`: resistencia en serie\n",
"- `resistance_shunt`: Resistencia en derivación\n",
"- `nNsVth`: producto $nN_sV_T$."
]
},
{
"cell_type": "markdown",
"id": "70bb6a27",
"metadata": {},
"source": [
"Primero, generamos un arreglo `numpy` para el voltaje $v$ en el intervalo $V\\in[0,V_\\mathrm{oc}]$"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "013ba3bd",
"metadata": {},
"outputs": [],
"source": [
"v = np.linspace(0., curve_info['v_oc'], 100)"
]
},
{
"cell_type": "markdown",
"id": "d174efd8",
"metadata": {},
"source": [
"Luego determinamos la corriente, $I$, usando los parámetros `IL`, `I0`, `Rs`, `Rsh` y `nNsVth` en operación, obtenidos anteriormente por `calcparams_cec`."
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "a0cd7602",
"metadata": {},
"outputs": [],
"source": [
"i = pvlib.pvsystem.i_from_v(\n",
" voltage = v,\n",
" photocurrent = IL,\n",
" saturation_current= I0,\n",
" resistance_series = Rs,\n",
" resistance_shunt = Rsh,\n",
" nNsVth = nNsVth)"
]
},
{
"cell_type": "markdown",
"id": "368c7630",
"metadata": {},
"source": [
"Ahora graficamos las curvas IV para las 4 condicones de operación."
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "f8ded447",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAHHCAYAAACRAnNyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAACyp0lEQVR4nOzdeXxM1/vA8c/MZLKviCwSIdYmdmLfaq2SolWqtOiq1Rb99lvVVTe6fCmlVfxauqGltq5oLaWqtcZORBCxRBbZ15nz+2PMyGQzISvP+/UamXvuuec+M5nIk3vOPUejlFIIIYQQQlRB2soOQAghhBCiOJKoCCGEEKLKkkRFCCGEEFWWJCpCCCGEqLIkURFCCCFElSWJihBCCCGqLElUhBBCCFFlSaIihBBCiCpLEhUhhBBCVFmSqIhbQmJiIm+++Sb//PNPZYcihBCiDEmiIqo9pRQPP/wwW7ZsoXXr1jYdM23aNDQazQ2db8mSJWg0Gk6fPn1Dx9/OTp8+jUajYcmSJZaym/leVGVbtmxBo9GwZcuWyg5FiGpNEpUyFhUVxZNPPklwcDCOjo64u7vTpUsX5syZQ2ZmZmWHV2rm/2xXrlwJwD333IOzszOpqanFHjNq1Cjs7e1JSEiokBg/+OADTp8+zerVq7G3t6+Qc1a2S5cu8cILL9C0aVOcnZ1xcXGhbdu2vPPOO1y5cqWyw6uWcnJymDNnDq1bt8bd3R1PT09CQ0N54oknOHbsWGWHZ7OCP7NVWVZWFh999BEdOnTAw8MDR0dHGjduzDPPPMOJEyes6m7fvp0BAwZQp04dHB0dqVu3LuHh4SxdurRQu6mpqbz44ovUr18fBwcH6tSpw7Bhw8jIyABMf9x069YNb2/vIv+fGj9+PHq9nv3799v8WhYtWkSPHj3w8fHBwcGB+vXrM27cuGL/oPn888+54447cHR0pFGjRsydO7fIerGxsQwfPhxPT0/c3d0ZPHgwp06dsqpj/gNAo9HwzjvvFNnOqFGj0Gg0uLq62vyaqgq7yg7gVvLzzz9z//334+DgwMMPP0yzZs3Iyclh+/bt/Pe//+Xw4cMsXLiwssO8KaNGjeLHH39k9erVPPzww4X2Z2RksHbtWu666y5q1qxZ7vFkZWWRl5fHL7/8gqenZ7mfryrYtWsXd999N2lpaYwePZq2bdsCsHv3bt577z3+/PNPNmzYUMlR2u7VV1/lpZdequwwuO+++/j1118ZOXIkjz/+OLm5uRw7doyffvqJzp0707Rp08oO8ZYSHx/PXXfdxZ49exg0aBAPPvggrq6uHD9+nOXLl7Nw4UJycnIAWLFiBSNGjKBVq1ZMnDgRLy8voqOj+fPPP1m0aBEPPvigpd3k5GR69OjBuXPneOKJJ2jYsCGXL19m27ZtZGdn4+zsjEajYcGCBbRq1YoXXniBxYsXW47/+++/WbhwIc8//zytWrWy+fXs27eP+vXrc88991jiW7RoET/99BMRERH4+/tb6i5YsIDx48dz33338fzzz7Nt2zaee+45MjIymDJliqVeWload955J8nJybz88svo9Xo++ugjevTowf79+wv9H+vo6MiyZct49dVXrcrT09NZu3Ytjo6ONr+eKkWJMnHq1Cnl6uqqmjZtqs6fP19of2RkpJo9e3aZnCstLa1M2rHF5s2bFaBWrFihlFIqIyNDubm5qf79+xdZf+nSpQpQy5cvr7AYb8Qbb7yhbvTjv3jxYgWo6Ojosg3KBklJSapOnTrKx8dHHT16tND+ixcvqrfffrvC47JVdHS0AtTixYsrOxQr//77rwLUu+++W2hfXl6eio+PL3Wb5p+dzZs3l0GEtv/cF/yZraoGDhyotFqtWrlyZaF9WVlZ6j//+Y9lOyQkRIWGhqrs7OxCdS9dumS1/dRTTylPT0916tSp68bw8ssvK0Bt2bJFKaVUTk6Oatasmapbt26Z/D+7e/duBagZM2ZYyjIyMlTNmjXVwIEDreqOGjVKubi4qMTEREvZ+++/rwD177//WsqOHj2qdDqdmjp1qqXM/HN17733KkDt37/fqu1vv/1W6fV6FR4erlxcXG76dVU06fopIx988AFpaWl8/vnn+Pn5FdrfsGFDJk6cCBTdT2+m0WiYNm2aZdvcf3/kyBEefPBBvLy86Nq1K//73//QaDScOXOmUBtTp07F3t6epKQkALZt28b9999P3bp1cXBwIDAwkMmTJ99QV5STkxP33nsvf/zxB3FxcYX2L126FDc3N+65554S26lXrx6DBg1iy5YttGvXDicnJ5o3b27pz1+1ahXNmzfH0dGRtm3bsm/fvkJtbNq0iW7duuHi4oKnpyeDBw/m6NGjhept376dsLAwHB0dadCgAQsWLChUpzTfk+J8+umn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ZqbV1TLz3Cy7d++2qrd7926MRqNlv1arpXnz5oXqgemuqeDg4GK7zurWrUuXLl3YsmUL999/P3Z21XvKNElUysiLL76Ii4sLjz32GJcuXSq0Pyoqijlz5gCmKzC1atXizz//tKrz6aeflvq89913HzqdjmXLlrFixQoGDRpkdVud+S+o/H8xKaUssdwM89WT119/nf3799/U7ZOl4efnR6tWrfjyyy+tEotDhw6xYcMG7r77bsD02vv378+aNWs4e/aspd7Ro0dZv369VZs38z3p06cP9vb2fPzxx1bv8+eff05ycjIDBw4s9lgvLy/69Olj9ShpUqbx48fj5+fHf/7zn0IzdwLExcVZZqYs6nufk5NzQ58zs6La/Oeffwol6HfffTd5eXlWtxQbDIZiZ9+83jmSk5OtJuUqa5GRkVafEbMrV67w999/4+Xlhbe3Nzqdjn79+rF27Vqr8VmXLl1i6dKldO3a1arbNb/y/FksK0OGDEGr1fLWW28VusJTllddOnXqxF133cX//d//sWbNmkL7c3JyeOGFFyzbf/zxR5HtmMejmbvimjRpQsuWLVm7di3x8fGWehs2bCAmJoa+fftaymJiYnj99de55557GDJkCGBKIp577jkWLVpUqnXD8vLyiuxq/Pfffzl48KDVnTu9evWiRo0ahW63nz9/Ps7Ozlb/XwwbNoxdu3ZZJSvHjx9n06ZN3H///SXG9M477/DGG2/YPC6sKqveaVYV0qBBA5YuXcqIESO44447rGam3bFjBytWrGDs2LGW+o899hjvvfcejz32GO3atePPP/8s8hfP9dSuXZs777yTWbNmkZqaatXtA6ZLrA0aNOCFF14gNjYWd3d3fvjhh1L33xelfv36dO7cmbVr1wJUWKIC8OGHHzJgwAA6derEo48+SmZmJnPnzsXDw8NqzpM333yT3377jW7duvH000+Tl5fH3LlzCQ0N5cCBA1Zt3uj3xNvbm6lTp/Lmm29y1113cc8993D8+HE+/fRTwsLCrAao3iwvLy9Wr17N3XffTatWraxmpt27dy/Lli2zDFDu3LkzXl5ejBkzhueeew6NRsPXX399U79wBg0axKpVqxg6dCgDBw4kOjqazz77jJCQEKurJ+Hh4XTp0oWXXnqJ06dPExISwqpVq2waE9WvXz/s7e0JDw/nySefJC0tjUWLFlG7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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"# Graficamos las curvas IV para cada condición de operación\n",
"for idx in site_conditions.index:\n",
" \n",
" # Etiqueta de la curva IV\n",
" label = ('$G_{eff}=$ %.1f $W/m^2$\\n' % Geff[idx] +\n",
" '$T_{cell}=$ %.1f $\\\\degree C$' % temp_cell[idx])\n",
" \n",
" # Gráfica de la curva IV\n",
" plt.plot(v[:,idx], i[:,idx], label=label)\n",
" \n",
" # Marcamos el mpp en el gráfico\n",
" v_mp = curve_info['v_mp'][idx] # Valor de V_mp en condiciones de operación\n",
" i_mp = curve_info['i_mp'][idx] # Valor de I_mp en condiciones de operación\n",
" \n",
" plt.plot([v_mp], [i_mp], ls='', marker='o', c='k') # punto mpp\n",
"\n",
"# Etiqueta de los ejes y título del gráfico\n",
"plt.xlabel('Voltaje [V]')\n",
"plt.ylabel('Corriente [A]')\n",
"plt.title('Curva IV módulo - %s' % pv_model.name)\n",
"plt.legend()\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.12"
},
"latex_envs": {
"LaTeX_envs_menu_present": false,
"autoclose": false,
"autocomplete": false,
"bibliofile": "biblio.bib",
"cite_by": "apalike",
"current_citInitial": 1,
"eqLabelWithNumbers": true,
"eqNumInitial": 1,
"hotkeys": {
"equation": "Ctrl-E",
"itemize": "Ctrl-I"
},
"labels_anchors": false,
"latex_user_defs": false,
"report_style_numbering": false,
"user_envs_cfg": false
},
"toc": {
"base_numbering": 1,
"nav_menu": {},
"number_sections": false,
"sideBar": true,
"skip_h1_title": true,
"title_cell": "Contenidos",
"title_sidebar": "Contenidos",
"toc_cell": false,
"toc_position": {
"height": "calc(100% - 180px)",
"left": "10px",
"top": "150px",
"width": "303.837px"
},
"toc_section_display": true,
"toc_window_display": false
},
"varInspector": {
"cols": {
"lenName": 16,
"lenType": 16,
"lenVar": 40
},
"kernels_config": {
"python": {
"delete_cmd_postfix": "",
"delete_cmd_prefix": "del ",
"library": "var_list.py",
"varRefreshCmd": "print(var_dic_list())"
},
"r": {
"delete_cmd_postfix": ") ",
"delete_cmd_prefix": "rm(",
"library": "var_list.r",
"varRefreshCmd": "cat(var_dic_list()) "
}
},
"types_to_exclude": [
"module",
"function",
"builtin_function_or_method",
"instance",
"_Feature"
],
"window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 5
}