{ "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
TechnologyBifacialSTCPTCA_cLengthWidthN_sI_sc_refV_oc_ref...a_refI_L_refI_o_refR_sR_sh_refAdjustgamma_rBIPVVersionDate
A10Green_Technology_A10J_S72_175Mono-c-Si0175.0914151.21.31.5760.825725.1743.99...1.9816965.1757030.00.316688287.10220316.057121-0.5072NSAM 2018.11.11 r21/3/2019
A10Green_Technology_A10J_S72_180Mono-c-Si0179.928155.71.31.5760.825725.3144.06...1.9884145.3161480.00.299919259.04794316.418983-0.5072NSAM 2018.11.11 r21/3/2019
A10Green_Technology_A10J_S72_185Mono-c-Si0184.7016160.21.31.5760.825725.4344.14...1.9848175.4356760.00.311962298.42443815.688233-0.5072NSAM 2018.11.11 r21/3/2019
A10Green_Technology_A10J_M60_220Multi-c-Si0219.876189.11.6241.6320.995607.9536.06...1.6730947.9590620.00.140393123.16840421.875164-0.5196NSAM 2018.11.11 r21/3/2019
A10Green_Technology_A10J_M60_225Multi-c-Si0224.9856193.51.6241.6320.995608.0436.24...1.6717828.0472060.00.14737164.41947920.698376-0.5196NSAM 2018.11.11 r21/3/2019
\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": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
TechnologyBifacialSTCPTCA_cLengthWidthN_sI_sc_refV_oc_ref...a_refI_L_refI_o_refR_sR_sh_refAdjustgamma_rBIPVVersionDate
Canadian_Solar_Inc__CS6X_255MMono-c-Si0255.2226.91.8521.9310.959727.8344.0...1.8971117.8460790.00.456126222.11396841.39444-0.4697NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_255PMulti-c-Si0255.084226.31.8521.9310.959727.9543.7...1.9985867.9667940.00.440573208.5516210.336473-0.53NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_260MMono-c-Si0260.161231.41.8521.9310.959727.9244.1...1.8969247.9321190.00.449034293.45138540.807045-0.4697NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_260PMulti-c-Si0260.005230.81.8521.9310.959728.0443.8...1.9975878.0528310.00.434024271.9635939.824679-0.53NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_265MMono-c-Si0265.185236.01.8521.9310.959727.9844.3...1.9006927.9872950.00.441648483.15383940.182526-0.4697NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_265PMulti-c-Si0265.005235.41.8521.9310.959728.143.9...1.9990958.1079480.00.413359421.2883919.56615-0.53NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_270MMono-c-Si0269.848240.61.8521.9310.959728.0744.4...1.9021488.0745760.00.43477766.68469239.816162-0.4697NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_270PMulti-c-Si0270.045240.01.8521.9310.959728.1944.1...2.0070038.1963370.00.404672522.969919.463469-0.53NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_275MMono-c-Si0274.944245.21.8521.9310.959728.1944.5...1.9114878.1960240.00.410853558.50335740.504654-0.4697NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_275PMulti-c-Si0275.48244.61.8521.9310.959728.3144.1...2.0144618.3165350.00.367813467.74670410.188554-0.53NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_280MMono-c-Si0280.08254.91.8521.9310.959728.344.6...1.8429928.3083030.00.408332408.1852424.521174-0.442NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_280PMulti-c-Si0279.816249.11.8521.9310.959728.4244.2...2.0201618.426860.00.360789442.84350610.296251-0.53NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_285MMono-c-Si0284.829259.61.8521.9310.959728.444.7...1.8455178.406720.00.401652501.9967044.356724-0.442NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_285PMulti-c-Si0284.968261.51.8521.9310.959728.5344.3...1.7737098.5439510.00.404497247.32168611.608932-0.424NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_290MMono-c-Si0290.4264.21.8521.9310.959728.5144.7...1.8505418.5160430.00.36706516.993534.913484-0.442NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_290PMulti-c-Si0290.072266.21.8521.9310.959728.6444.4...1.7761298.6522570.00.397572280.26327511.423009-0.424NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_295MMono-c-Si0295.204268.91.8521.9310.959728.6344.9...1.8573498.6364330.00.372605499.8784184.750471-0.442NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_295PMulti-c-Si0294.84270.91.8521.9310.959728.7644.5...1.7809248.7726070.00.390254271.18212911.520895-0.424NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_300MMono-c-Si0300.03273.61.8521.9310.959728.7445.0...1.8611848.7458690.00.366101545.1785894.722239-0.442NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_300PMulti-c-Si0299.63274.11.9011.9480.976728.8744.6...1.5494928.8899170.00.444732198.055603-18.45339-0.4002NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_300PNMulti-c-Si0299.63274.11.9011.9480.976728.8744.6...1.5494928.8899170.00.444732198.055603-18.45339-0.4002NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_305MMono-c-Si0304.878278.31.8521.9310.959728.8445.2...1.8655848.8443920.00.372554749.9326784.3128-0.442NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_305PMulti-c-Si0305.283278.81.9011.9480.976728.9744.8...1.5558048.9880420.00.436383216.965805-18.525284-0.4002NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_305PNMulti-c-Si0305.283278.81.9011.9480.976728.9744.8...1.5558048.9880420.00.436383216.965805-18.525284-0.4002NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_310MMono-c-Si0309.748283.01.8521.9310.959728.9545.3...1.8694728.9538350.00.366197854.6281744.29112-0.442NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_310PMulti-c-Si0310.128283.41.9011.9480.976729.0844.9...1.5590739.0973880.00.429443224.251984-18.547718-0.4002NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_310PNMulti-c-Si0310.128283.41.9011.9480.976729.0844.9...1.5590739.0973880.00.429443224.251984-18.547718-0.4002NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_315PMulti-c-Si0315.126288.11.9011.9480.976729.1845.1...1.5670159.1978870.00.421681216.409912-18.428658-0.4002NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_315P_FGMulti-c-Si0315.126290.11.9521.9680.992729.1845.1...1.8083019.1900760.00.361158329.0522164.200763-0.423NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_315PNMulti-c-Si0315.126288.11.9011.9480.976729.1845.1...1.5670159.1978870.00.421681216.409912-18.428658-0.4002NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_320M_FGMono-c-Si0320.292294.51.9521.9680.992729.1345.6...1.8328699.1352530.00.339967590.9486086.351355-0.4168NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_320PMulti-c-Si0319.792292.81.9011.9480.976729.2645.3...1.7852829.2705030.00.362235319.3785715.857377-0.4002NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_320P_FGMulti-c-Si0319.792294.81.9521.9680.992729.2645.3...1.8167889.2696080.00.354581341.738194.257481-0.423NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_320PNMulti-c-Si0319.792292.81.9011.9480.976729.2645.3...1.5742579.2773350.00.414898221.625275-18.391764-0.4002NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_325M_FGMono-c-Si0325.006299.21.9521.9680.992729.2145.8...1.8413859.214880.00.333581629.6202396.409338-0.4168NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_325PMulti-c-Si0324.86297.51.9011.9480.976729.3445.5...1.7925029.3490580.00.355819366.8953865.787566-0.4002NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_325P_FGMulti-c-Si0324.86299.51.9521.9680.992729.3445.5...1.8241189.3481960.00.348214396.8183594.188112-0.423NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_325PNMulti-c-Si0324.86297.51.9011.9480.976729.3445.5...1.5807139.3556730.00.408153243.238632-18.446198-0.4002NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_330M_FGMono-c-Si0330.0303.91.9521.9680.992729.3145.9...1.8440929.3135430.00.328455863.2003176.268506-0.4168NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_330PMulti-c-Si0330.336302.21.9011.9480.976729.4545.6...1.7999849.459290.00.33682342.6273196.209896-0.4002NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_330P_FGMulti-c-Si0330.336304.21.9521.9680.992729.4545.6...1.8318029.458440.00.329234368.6372074.604088-0.423NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_330PNMulti-c-Si0330.336302.21.9011.9480.976729.4545.6...1.5866179.4658410.00.389084232.106079-18.157181-0.4002NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_335M_FGMono-c-Si0335.286308.61.9521.9680.992729.4146.1...1.8587189.4156610.00.308086512.1567997.007009-0.4168NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_340M_FGMono-c-Si0339.963313.41.9521.9680.992729.4846.2...1.8593079.4828770.00.3045881003.5165416.635578-0.4168NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_345M_FGMono-c-Si0345.186318.11.9521.9680.992729.5646.4...1.8667019.5617540.00.2989021629.6400156.570088-0.4168NSAM 2018.11.11 r21/3/2019
Canadian_Solar_Inc__CS6X_350M_FGMono-c-Si0350.062322.81.9521.9680.992729.6746.6...1.8784799.6737470.00.291873753.1607066.977625-0.4168NSAM 2018.11.11 r21/3/2019
\n", "

46 rows × 25 columns

\n", "
" ], "text/plain": [ " Technology Bifacial STC PTC A_c \\\n", "Canadian_Solar_Inc__CS6X_255M Mono-c-Si 0 255.2 226.9 1.852 \n", "Canadian_Solar_Inc__CS6X_255P Multi-c-Si 0 255.084 226.3 1.852 \n", "Canadian_Solar_Inc__CS6X_260M Mono-c-Si 0 260.161 231.4 1.852 \n", "Canadian_Solar_Inc__CS6X_260P Multi-c-Si 0 260.005 230.8 1.852 \n", "Canadian_Solar_Inc__CS6X_265M Mono-c-Si 0 265.185 236.0 1.852 \n", "Canadian_Solar_Inc__CS6X_265P Multi-c-Si 0 265.005 235.4 1.852 \n", "Canadian_Solar_Inc__CS6X_270M Mono-c-Si 0 269.848 240.6 1.852 \n", "Canadian_Solar_Inc__CS6X_270P Multi-c-Si 0 270.045 240.0 1.852 \n", "Canadian_Solar_Inc__CS6X_275M Mono-c-Si 0 274.944 245.2 1.852 \n", "Canadian_Solar_Inc__CS6X_275P Multi-c-Si 0 275.48 244.6 1.852 \n", "Canadian_Solar_Inc__CS6X_280M Mono-c-Si 0 280.08 254.9 1.852 \n", "Canadian_Solar_Inc__CS6X_280P Multi-c-Si 0 279.816 249.1 1.852 \n", "Canadian_Solar_Inc__CS6X_285M Mono-c-Si 0 284.829 259.6 1.852 \n", "Canadian_Solar_Inc__CS6X_285P Multi-c-Si 0 284.968 261.5 1.852 \n", "Canadian_Solar_Inc__CS6X_290M Mono-c-Si 0 290.4 264.2 1.852 \n", "Canadian_Solar_Inc__CS6X_290P Multi-c-Si 0 290.072 266.2 1.852 \n", "Canadian_Solar_Inc__CS6X_295M Mono-c-Si 0 295.204 268.9 1.852 \n", "Canadian_Solar_Inc__CS6X_295P Multi-c-Si 0 294.84 270.9 1.852 \n", "Canadian_Solar_Inc__CS6X_300M Mono-c-Si 0 300.03 273.6 1.852 \n", "Canadian_Solar_Inc__CS6X_300P Multi-c-Si 0 299.63 274.1 1.901 \n", "Canadian_Solar_Inc__CS6X_300PN Multi-c-Si 0 299.63 274.1 1.901 \n", "Canadian_Solar_Inc__CS6X_305M Mono-c-Si 0 304.878 278.3 1.852 \n", "Canadian_Solar_Inc__CS6X_305P Multi-c-Si 0 305.283 278.8 1.901 \n", "Canadian_Solar_Inc__CS6X_305PN Multi-c-Si 0 305.283 278.8 1.901 \n", "Canadian_Solar_Inc__CS6X_310M Mono-c-Si 0 309.748 283.0 1.852 \n", "Canadian_Solar_Inc__CS6X_310P Multi-c-Si 0 310.128 283.4 1.901 \n", "Canadian_Solar_Inc__CS6X_310PN Multi-c-Si 0 310.128 283.4 1.901 \n", "Canadian_Solar_Inc__CS6X_315P Multi-c-Si 0 315.126 288.1 1.901 \n", "Canadian_Solar_Inc__CS6X_315P_FG Multi-c-Si 0 315.126 290.1 1.952 \n", "Canadian_Solar_Inc__CS6X_315PN Multi-c-Si 0 315.126 288.1 1.901 \n", "Canadian_Solar_Inc__CS6X_320M_FG Mono-c-Si 0 320.292 294.5 1.952 \n", "Canadian_Solar_Inc__CS6X_320P Multi-c-Si 0 319.792 292.8 1.901 \n", "Canadian_Solar_Inc__CS6X_320P_FG Multi-c-Si 0 319.792 294.8 1.952 \n", "Canadian_Solar_Inc__CS6X_320PN Multi-c-Si 0 319.792 292.8 1.901 \n", "Canadian_Solar_Inc__CS6X_325M_FG Mono-c-Si 0 325.006 299.2 1.952 \n", "Canadian_Solar_Inc__CS6X_325P Multi-c-Si 0 324.86 297.5 1.901 \n", "Canadian_Solar_Inc__CS6X_325P_FG Multi-c-Si 0 324.86 299.5 1.952 \n", "Canadian_Solar_Inc__CS6X_325PN Multi-c-Si 0 324.86 297.5 1.901 \n", "Canadian_Solar_Inc__CS6X_330M_FG Mono-c-Si 0 330.0 303.9 1.952 \n", "Canadian_Solar_Inc__CS6X_330P Multi-c-Si 0 330.336 302.2 1.901 \n", "Canadian_Solar_Inc__CS6X_330P_FG Multi-c-Si 0 330.336 304.2 1.952 \n", "Canadian_Solar_Inc__CS6X_330PN Multi-c-Si 0 330.336 302.2 1.901 \n", "Canadian_Solar_Inc__CS6X_335M_FG Mono-c-Si 0 335.286 308.6 1.952 \n", "Canadian_Solar_Inc__CS6X_340M_FG Mono-c-Si 0 339.963 313.4 1.952 \n", "Canadian_Solar_Inc__CS6X_345M_FG Mono-c-Si 0 345.186 318.1 1.952 \n", "Canadian_Solar_Inc__CS6X_350M_FG Mono-c-Si 0 350.062 322.8 1.952 \n", "\n", " Length Width N_s I_sc_ref V_oc_ref ... \\\n", "Canadian_Solar_Inc__CS6X_255M 1.931 0.959 72 7.83 44.0 ... \n", "Canadian_Solar_Inc__CS6X_255P 1.931 0.959 72 7.95 43.7 ... \n", "Canadian_Solar_Inc__CS6X_260M 1.931 0.959 72 7.92 44.1 ... \n", "Canadian_Solar_Inc__CS6X_260P 1.931 0.959 72 8.04 43.8 ... \n", "Canadian_Solar_Inc__CS6X_265M 1.931 0.959 72 7.98 44.3 ... \n", "Canadian_Solar_Inc__CS6X_265P 1.931 0.959 72 8.1 43.9 ... \n", "Canadian_Solar_Inc__CS6X_270M 1.931 0.959 72 8.07 44.4 ... \n", "Canadian_Solar_Inc__CS6X_270P 1.931 0.959 72 8.19 44.1 ... \n", "Canadian_Solar_Inc__CS6X_275M 1.931 0.959 72 8.19 44.5 ... \n", "Canadian_Solar_Inc__CS6X_275P 1.931 0.959 72 8.31 44.1 ... \n", "Canadian_Solar_Inc__CS6X_280M 1.931 0.959 72 8.3 44.6 ... \n", "Canadian_Solar_Inc__CS6X_280P 1.931 0.959 72 8.42 44.2 ... \n", "Canadian_Solar_Inc__CS6X_285M 1.931 0.959 72 8.4 44.7 ... \n", "Canadian_Solar_Inc__CS6X_285P 1.931 0.959 72 8.53 44.3 ... \n", "Canadian_Solar_Inc__CS6X_290M 1.931 0.959 72 8.51 44.7 ... \n", "Canadian_Solar_Inc__CS6X_290P 1.931 0.959 72 8.64 44.4 ... \n", "Canadian_Solar_Inc__CS6X_295M 1.931 0.959 72 8.63 44.9 ... \n", "Canadian_Solar_Inc__CS6X_295P 1.931 0.959 72 8.76 44.5 ... \n", "Canadian_Solar_Inc__CS6X_300M 1.931 0.959 72 8.74 45.0 ... \n", "Canadian_Solar_Inc__CS6X_300P 1.948 0.976 72 8.87 44.6 ... \n", "Canadian_Solar_Inc__CS6X_300PN 1.948 0.976 72 8.87 44.6 ... \n", "Canadian_Solar_Inc__CS6X_305M 1.931 0.959 72 8.84 45.2 ... \n", "Canadian_Solar_Inc__CS6X_305P 1.948 0.976 72 8.97 44.8 ... \n", "Canadian_Solar_Inc__CS6X_305PN 1.948 0.976 72 8.97 44.8 ... \n", "Canadian_Solar_Inc__CS6X_310M 1.931 0.959 72 8.95 45.3 ... \n", "Canadian_Solar_Inc__CS6X_310P 1.948 0.976 72 9.08 44.9 ... \n", "Canadian_Solar_Inc__CS6X_310PN 1.948 0.976 72 9.08 44.9 ... \n", "Canadian_Solar_Inc__CS6X_315P 1.948 0.976 72 9.18 45.1 ... \n", "Canadian_Solar_Inc__CS6X_315P_FG 1.968 0.992 72 9.18 45.1 ... \n", "Canadian_Solar_Inc__CS6X_315PN 1.948 0.976 72 9.18 45.1 ... \n", "Canadian_Solar_Inc__CS6X_320M_FG 1.968 0.992 72 9.13 45.6 ... \n", "Canadian_Solar_Inc__CS6X_320P 1.948 0.976 72 9.26 45.3 ... \n", "Canadian_Solar_Inc__CS6X_320P_FG 1.968 0.992 72 9.26 45.3 ... \n", "Canadian_Solar_Inc__CS6X_320PN 1.948 0.976 72 9.26 45.3 ... \n", "Canadian_Solar_Inc__CS6X_325M_FG 1.968 0.992 72 9.21 45.8 ... \n", "Canadian_Solar_Inc__CS6X_325P 1.948 0.976 72 9.34 45.5 ... \n", "Canadian_Solar_Inc__CS6X_325P_FG 1.968 0.992 72 9.34 45.5 ... \n", "Canadian_Solar_Inc__CS6X_325PN 1.948 0.976 72 9.34 45.5 ... \n", "Canadian_Solar_Inc__CS6X_330M_FG 1.968 0.992 72 9.31 45.9 ... \n", "Canadian_Solar_Inc__CS6X_330P 1.948 0.976 72 9.45 45.6 ... \n", "Canadian_Solar_Inc__CS6X_330P_FG 1.968 0.992 72 9.45 45.6 ... \n", "Canadian_Solar_Inc__CS6X_330PN 1.948 0.976 72 9.45 45.6 ... \n", "Canadian_Solar_Inc__CS6X_335M_FG 1.968 0.992 72 9.41 46.1 ... \n", "Canadian_Solar_Inc__CS6X_340M_FG 1.968 0.992 72 9.48 46.2 ... \n", "Canadian_Solar_Inc__CS6X_345M_FG 1.968 0.992 72 9.56 46.4 ... \n", "Canadian_Solar_Inc__CS6X_350M_FG 1.968 0.992 72 9.67 46.6 ... \n", "\n", " a_ref I_L_ref I_o_ref R_s \\\n", "Canadian_Solar_Inc__CS6X_255M 1.897111 7.846079 0.0 0.456126 \n", "Canadian_Solar_Inc__CS6X_255P 1.998586 7.966794 0.0 0.440573 \n", "Canadian_Solar_Inc__CS6X_260M 1.896924 7.932119 0.0 0.449034 \n", "Canadian_Solar_Inc__CS6X_260P 1.997587 8.052831 0.0 0.434024 \n", "Canadian_Solar_Inc__CS6X_265M 1.900692 7.987295 0.0 0.441648 \n", "Canadian_Solar_Inc__CS6X_265P 1.999095 8.107948 0.0 0.413359 \n", "Canadian_Solar_Inc__CS6X_270M 1.902148 8.074576 0.0 0.43477 \n", "Canadian_Solar_Inc__CS6X_270P 2.007003 8.196337 0.0 0.404672 \n", "Canadian_Solar_Inc__CS6X_275M 1.911487 8.196024 0.0 0.410853 \n", "Canadian_Solar_Inc__CS6X_275P 2.014461 8.316535 0.0 0.367813 \n", "Canadian_Solar_Inc__CS6X_280M 1.842992 8.308303 0.0 0.408332 \n", "Canadian_Solar_Inc__CS6X_280P 2.020161 8.42686 0.0 0.360789 \n", "Canadian_Solar_Inc__CS6X_285M 1.845517 8.40672 0.0 0.401652 \n", "Canadian_Solar_Inc__CS6X_285P 1.773709 8.543951 0.0 0.404497 \n", "Canadian_Solar_Inc__CS6X_290M 1.850541 8.516043 0.0 0.36706 \n", "Canadian_Solar_Inc__CS6X_290P 1.776129 8.652257 0.0 0.397572 \n", "Canadian_Solar_Inc__CS6X_295M 1.857349 8.636433 0.0 0.372605 \n", "Canadian_Solar_Inc__CS6X_295P 1.780924 8.772607 0.0 0.390254 \n", "Canadian_Solar_Inc__CS6X_300M 1.861184 8.745869 0.0 0.366101 \n", "Canadian_Solar_Inc__CS6X_300P 1.549492 8.889917 0.0 0.444732 \n", "Canadian_Solar_Inc__CS6X_300PN 1.549492 8.889917 0.0 0.444732 \n", "Canadian_Solar_Inc__CS6X_305M 1.865584 8.844392 0.0 0.372554 \n", "Canadian_Solar_Inc__CS6X_305P 1.555804 8.988042 0.0 0.436383 \n", "Canadian_Solar_Inc__CS6X_305PN 1.555804 8.988042 0.0 0.436383 \n", "Canadian_Solar_Inc__CS6X_310M 1.869472 8.953835 0.0 0.366197 \n", "Canadian_Solar_Inc__CS6X_310P 1.559073 9.097388 0.0 0.429443 \n", "Canadian_Solar_Inc__CS6X_310PN 1.559073 9.097388 0.0 0.429443 \n", "Canadian_Solar_Inc__CS6X_315P 1.567015 9.197887 0.0 0.421681 \n", "Canadian_Solar_Inc__CS6X_315P_FG 1.808301 9.190076 0.0 0.361158 \n", "Canadian_Solar_Inc__CS6X_315PN 1.567015 9.197887 0.0 0.421681 \n", "Canadian_Solar_Inc__CS6X_320M_FG 1.832869 9.135253 0.0 0.339967 \n", "Canadian_Solar_Inc__CS6X_320P 1.785282 9.270503 0.0 0.362235 \n", "Canadian_Solar_Inc__CS6X_320P_FG 1.816788 9.269608 0.0 0.354581 \n", "Canadian_Solar_Inc__CS6X_320PN 1.574257 9.277335 0.0 0.414898 \n", "Canadian_Solar_Inc__CS6X_325M_FG 1.841385 9.21488 0.0 0.333581 \n", "Canadian_Solar_Inc__CS6X_325P 1.792502 9.349058 0.0 0.355819 \n", "Canadian_Solar_Inc__CS6X_325P_FG 1.824118 9.348196 0.0 0.348214 \n", "Canadian_Solar_Inc__CS6X_325PN 1.580713 9.355673 0.0 0.408153 \n", "Canadian_Solar_Inc__CS6X_330M_FG 1.844092 9.313543 0.0 0.328455 \n", "Canadian_Solar_Inc__CS6X_330P 1.799984 9.45929 0.0 0.33682 \n", "Canadian_Solar_Inc__CS6X_330P_FG 1.831802 9.45844 0.0 0.329234 \n", "Canadian_Solar_Inc__CS6X_330PN 1.586617 9.465841 0.0 0.389084 \n", "Canadian_Solar_Inc__CS6X_335M_FG 1.858718 9.415661 0.0 0.308086 \n", "Canadian_Solar_Inc__CS6X_340M_FG 1.859307 9.482877 0.0 0.304588 \n", "Canadian_Solar_Inc__CS6X_345M_FG 1.866701 9.561754 0.0 0.298902 \n", "Canadian_Solar_Inc__CS6X_350M_FG 1.878479 9.673747 0.0 0.291873 \n", "\n", " R_sh_ref Adjust gamma_r BIPV \\\n", "Canadian_Solar_Inc__CS6X_255M 222.113968 41.39444 -0.4697 N \n", "Canadian_Solar_Inc__CS6X_255P 208.55162 10.336473 -0.53 N \n", "Canadian_Solar_Inc__CS6X_260M 293.451385 40.807045 -0.4697 N \n", "Canadian_Solar_Inc__CS6X_260P 271.963593 9.824679 -0.53 N \n", "Canadian_Solar_Inc__CS6X_265M 483.153839 40.182526 -0.4697 N \n", "Canadian_Solar_Inc__CS6X_265P 421.288391 9.56615 -0.53 N \n", "Canadian_Solar_Inc__CS6X_270M 766.684692 39.816162 -0.4697 N \n", "Canadian_Solar_Inc__CS6X_270P 522.96991 9.463469 -0.53 N \n", "Canadian_Solar_Inc__CS6X_275M 558.503357 40.504654 -0.4697 N \n", "Canadian_Solar_Inc__CS6X_275P 467.746704 10.188554 -0.53 N \n", "Canadian_Solar_Inc__CS6X_280M 408.185242 4.521174 -0.442 N \n", "Canadian_Solar_Inc__CS6X_280P 442.843506 10.296251 -0.53 N \n", "Canadian_Solar_Inc__CS6X_285M 501.996704 4.356724 -0.442 N \n", "Canadian_Solar_Inc__CS6X_285P 247.321686 11.608932 -0.424 N \n", "Canadian_Solar_Inc__CS6X_290M 516.99353 4.913484 -0.442 N \n", "Canadian_Solar_Inc__CS6X_290P 280.263275 11.423009 -0.424 N \n", "Canadian_Solar_Inc__CS6X_295M 499.878418 4.750471 -0.442 N \n", "Canadian_Solar_Inc__CS6X_295P 271.182129 11.520895 -0.424 N \n", "Canadian_Solar_Inc__CS6X_300M 545.178589 4.722239 -0.442 N \n", "Canadian_Solar_Inc__CS6X_300P 198.055603 -18.45339 -0.4002 N \n", "Canadian_Solar_Inc__CS6X_300PN 198.055603 -18.45339 -0.4002 N \n", "Canadian_Solar_Inc__CS6X_305M 749.932678 4.3128 -0.442 N \n", "Canadian_Solar_Inc__CS6X_305P 216.965805 -18.525284 -0.4002 N \n", "Canadian_Solar_Inc__CS6X_305PN 216.965805 -18.525284 -0.4002 N \n", "Canadian_Solar_Inc__CS6X_310M 854.628174 4.29112 -0.442 N \n", "Canadian_Solar_Inc__CS6X_310P 224.251984 -18.547718 -0.4002 N \n", "Canadian_Solar_Inc__CS6X_310PN 224.251984 -18.547718 -0.4002 N \n", "Canadian_Solar_Inc__CS6X_315P 216.409912 -18.428658 -0.4002 N \n", "Canadian_Solar_Inc__CS6X_315P_FG 329.052216 4.200763 -0.423 N \n", "Canadian_Solar_Inc__CS6X_315PN 216.409912 -18.428658 -0.4002 N \n", "Canadian_Solar_Inc__CS6X_320M_FG 590.948608 6.351355 -0.4168 N \n", "Canadian_Solar_Inc__CS6X_320P 319.378571 5.857377 -0.4002 N \n", "Canadian_Solar_Inc__CS6X_320P_FG 341.73819 4.257481 -0.423 N \n", "Canadian_Solar_Inc__CS6X_320PN 221.625275 -18.391764 -0.4002 N \n", "Canadian_Solar_Inc__CS6X_325M_FG 629.620239 6.409338 -0.4168 N \n", "Canadian_Solar_Inc__CS6X_325P 366.895386 5.787566 -0.4002 N \n", "Canadian_Solar_Inc__CS6X_325P_FG 396.818359 4.188112 -0.423 N \n", "Canadian_Solar_Inc__CS6X_325PN 243.238632 -18.446198 -0.4002 N \n", "Canadian_Solar_Inc__CS6X_330M_FG 863.200317 6.268506 -0.4168 N \n", "Canadian_Solar_Inc__CS6X_330P 342.627319 6.209896 -0.4002 N \n", "Canadian_Solar_Inc__CS6X_330P_FG 368.637207 4.604088 -0.423 N \n", "Canadian_Solar_Inc__CS6X_330PN 232.106079 -18.157181 -0.4002 N \n", "Canadian_Solar_Inc__CS6X_335M_FG 512.156799 7.007009 -0.4168 N \n", "Canadian_Solar_Inc__CS6X_340M_FG 1003.516541 6.635578 -0.4168 N \n", "Canadian_Solar_Inc__CS6X_345M_FG 1629.640015 6.570088 -0.4168 N \n", "Canadian_Solar_Inc__CS6X_350M_FG 753.160706 6.977625 -0.4168 N \n", "\n", " Version Date \n", "Canadian_Solar_Inc__CS6X_255M SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_255P SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_260M SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_260P SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_265M SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_265P SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_270M SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_270P SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_275M SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_275P SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_280M SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_280P SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_285M SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_285P SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_290M SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_290P SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_295M SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_295P SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_300M SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_300P SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_300PN SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_305M SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_305P SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_305PN SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_310M SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_310P SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_310PN SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_315P SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_315P_FG SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_315PN SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_320M_FG SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_320P SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_320P_FG SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_320PN SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_325M_FG SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_325P SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_325P_FG SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_325PN SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_330M_FG SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_330P SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_330P_FG SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_330PN SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_335M_FG SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_340M_FG SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_345M_FG SAM 2018.11.11 r2 1/3/2019 \n", "Canadian_Solar_Inc__CS6X_350M_FG SAM 2018.11.11 r2 1/3/2019 \n", "\n", "[46 rows x 25 columns]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pv_module_index = pv_module_db.T.index.str.startswith('Canadian_Solar_Inc__CS6X')\n", "pv_module_db.T[pv_module_index]" ] }, { "cell_type": "markdown", "id": "63d3ca34", "metadata": {}, "source": [ "De aquí identificamos que el modelo está bajo el nombre `Canadian_Solar_Inc__CS6X_300M`" ] }, { "cell_type": "code", "execution_count": 6, "id": "4600d290", "metadata": {}, "outputs": [], "source": [ "pv_model = pv_module_db.Canadian_Solar_Inc__CS6X_300M" ] }, { "cell_type": "markdown", "id": "395a56a4", "metadata": {}, "source": [ "Los parámetros CEC de este módulo son" ] }, { "cell_type": "code", "execution_count": 7, "id": "65b0c0df", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Technology Mono-c-Si\n", "Bifacial 0\n", "STC 300.03\n", "PTC 273.6\n", "A_c 1.852\n", "Length 1.931\n", "Width 0.959\n", "N_s 72\n", "I_sc_ref 8.74\n", "V_oc_ref 45.0\n", "I_mp_ref 8.22\n", "V_mp_ref 36.5\n", "alpha_sc 0.004326\n", "beta_oc -0.15372\n", "T_NOCT 44.3\n", "a_ref 1.861184\n", "I_L_ref 8.745869\n", "I_o_ref 0.0\n", "R_s 0.366101\n", "R_sh_ref 545.178589\n", "Adjust 4.722239\n", "gamma_r -0.442\n", "BIPV N\n", "Version SAM 2018.11.11 r2\n", "Date 1/3/2019\n", "Name: Canadian_Solar_Inc__CS6X_300M, dtype: object" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pv_model" ] }, { "cell_type": "markdown", "id": "64d5fd38", "metadata": {}, "source": [ "## Simulación de curva IV" ] }, { "cell_type": "markdown", "id": "9678fc38", "metadata": {}, "source": [ "Para simular la curva IV de un módulo debemos considerar los siguientes pasos:\n", "- Definir las condiciones de operación (niveles de irradiancia y condiciones climatológicas del sitio)\n", "- Determinar irradiación sobre el módulo\n", "- Determinar la temperatura de las celdas dentro del módulo\n", "- Determinar los [cinco parámetros del SDM](../../10_SolarFotovoltaica/10_SolarFotovoltaica.ipynb) para los niveles de irradiancia y temperatura de la celda.\n", "- Caracterizar la curva IV en las condiciones de operación.\n", "- Graficar curva IV según condiciones de operación." ] }, { "cell_type": "markdown", "id": "3685de1a", "metadata": {}, "source": [ "### Condiciones de operación" ] }, { "cell_type": "markdown", "id": "1f063eef", "metadata": {}, "source": [ "En este caso consideraremos un panel solar con ángulos de inclinación $\\theta = 30°$ y $\\phi = 90°$." ] }, { "cell_type": "code", "execution_count": 8, "id": "bc490dde", "metadata": {}, "outputs": [], "source": [ "pv_module_zenith = 30 # ángulo cenital\n", "pv_module_azimuth = 90 # ángulo acimutal" ] }, { "cell_type": "markdown", "id": "44d7618b", "metadata": {}, "source": [ "Respecto a las condiciones climáticas y de irradiación, consideraremos la siguiente serie de datos." ] }, { "cell_type": "code", "execution_count": 9, "id": "2adcd1ee", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ghidnidhiapparent_zenithazimuthtemp_airwind_speed
045017035044.297.413.06.50
155013043033.1110.613.57.20
295095010023.3131.315.07.60
3105096010017.4167.916.58.05
\n", "
" ], "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Geff (W/m2)Tcell (°C)IL (A)I0 (A)Rs (Ohm)Rsh (Ohm)nNsVth (V)
0514.31215123.5259054.4949822.133634e-100.3661011060.0149901.851982
1557.54009624.4125514.8748232.479015e-100.366101977.8284871.857517
2996.77859934.0214058.7547591.194023e-090.366101546.9405041.917500
3923.42907233.6288148.1090321.121840e-090.366101590.3849101.915049
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
i_scv_oci_mpv_mpp_mpi_xi_xx
04.49343044.0062554.23833136.887448156.3412234.4726053.223348
14.87299844.0097724.59414536.762238168.8910414.8504133.471360
28.74890343.5395148.19778135.017820287.0684218.7085905.821700
38.10400743.4565877.59835035.139783267.0043598.0667825.444804
\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 }