This tutorial explores the pvlib.pvsystem
module. The module has functions for importing PV module and inverter data and functions for modeling module and inverter performance.
This tutorial has been tested against the following package versions:
It should work with other Python and Pandas versions. It requires pvlib >= 0.3.0 and IPython >= 3.0.
Authors:
# built-in python modules
import os
import inspect
import datetime
# scientific python add-ons
import numpy as np
import pandas as pd
# plotting stuff
# first line makes the plots appear in the notebook
%matplotlib inline
import matplotlib.pyplot as plt
# seaborn makes your plots look better
try:
import seaborn as sns
sns.set(rc={"figure.figsize": (12, 6)})
except ImportError:
print('We suggest you install seaborn using conda or pip and rerun this cell')
# finally, we import the pvlib library
import pvlib
import pvlib
from pvlib import pvsystem
pvlib
can import TMY2 and TMY3 data. Here, we import the example files.
pvlib_abspath = os.path.dirname(os.path.abspath(inspect.getfile(pvlib)))
tmy3_data, tmy3_metadata = pvlib.tmy.readtmy3(os.path.join(pvlib_abspath, 'data', '703165TY.csv'))
tmy2_data, tmy2_metadata = pvlib.tmy.readtmy2(os.path.join(pvlib_abspath, 'data', '12839.tm2'))
pvlib.pvsystem.systemdef(tmy3_metadata, 0, 0, .1, 5, 5)
{'albedo': 0.1, 'altitude': 7.0, 'latitude': 55.317, 'longitude': -160.517, 'name': '"SAND POINT"', 'strings_per_inverter': 5, 'modules_per_string': 5, 'surface_azimuth': 0, 'surface_tilt': 0, 'tz': -9.0}
pvlib.pvsystem.systemdef(tmy2_metadata, 0, 0, .1, 5, 5)
{'albedo': 0.1, 'altitude': 2.0, 'latitude': 25.8, 'longitude': -80.26666666666667, 'name': 'MIAMI', 'strings_per_inverter': 5, 'modules_per_string': 5, 'surface_azimuth': 0, 'surface_tilt': 0, 'tz': -5}
angles = np.linspace(-180,180,3601)
ashraeiam = pd.Series(pvsystem.ashraeiam(.05, angles), index=angles)
ashraeiam.plot()
plt.ylabel('ASHRAE modifier')
plt.xlabel('input angle (deg)')
<matplotlib.text.Text at 0x1112e4828>
angles = np.linspace(-180,180,3601)
physicaliam = pd.Series(pvsystem.physicaliam(4, 0.002, 1.526, angles), index=angles)
physicaliam.plot()
plt.ylabel('physical modifier')
plt.xlabel('input index')
<matplotlib.text.Text at 0x10fdcd240>
plt.figure()
ashraeiam.plot(label='ASHRAE')
physicaliam.plot(label='physical')
plt.ylabel('modifier')
plt.xlabel('input angle (deg)')
plt.legend()
<matplotlib.legend.Legend at 0x10434b2b0>
PV system efficiency can vary by up to 0.5% per degree C, so it's important to accurately model cell and module temperature. The sapm_celltemp
function uses plane of array irradiance, ambient temperature, wind speed, and module and racking type to calculate cell and module temperatures. From King et. al. (2004):
The $a$, $b$, and $\Delta T$ parameters depend on the module and racking type. The default parameter set is open_rack_cell_glassback
.
sapm_celltemp
works with either scalar or vector inputs, but always returns a pandas DataFrame.
# scalar inputs
pvsystem.sapm_celltemp(900, 5, 20) # irrad, wind, temp
temp_cell | temp_module | |
---|---|---|
0 | 43.509191 | 40.809191 |
# vector inputs
times = pd.DatetimeIndex(start='2015-01-01', end='2015-01-02', freq='12H')
temps = pd.Series([0, 10, 5], index=times)
irrads = pd.Series([0, 500, 0], index=times)
winds = pd.Series([10, 5, 0], index=times)
pvtemps = pvsystem.sapm_celltemp(irrads, winds, temps)
pvtemps.plot()
<matplotlib.axes._subplots.AxesSubplot at 0x10f9bbcc0>
Cell and module temperature as a function of wind speed.
wind = np.linspace(0,20,21)
temps = pd.DataFrame(pvsystem.sapm_celltemp(900, wind, 20), index=wind)
temps.plot()
plt.legend()
plt.xlabel('wind speed (m/s)')
plt.ylabel('temperature (deg C)')
<matplotlib.text.Text at 0x110799828>
Cell and module temperature as a function of ambient temperature.
atemp = np.linspace(-20,50,71)
temps = pvsystem.sapm_celltemp(900, 2, atemp).set_index(atemp)
temps.plot()
plt.legend()
plt.xlabel('ambient temperature (deg C)')
plt.ylabel('temperature (deg C)')
<matplotlib.text.Text at 0x11078d4e0>
Cell and module temperature as a function of incident irradiance.
irrad = np.linspace(0,1000,101)
temps = pvsystem.sapm_celltemp(irrad, 2, 20).set_index(irrad)
temps.plot()
plt.legend()
plt.xlabel('incident irradiance (W/m**2)')
plt.ylabel('temperature (deg C)')
<matplotlib.text.Text at 0x1108734e0>
Cell and module temperature for different module and racking types.
models = ['open_rack_cell_glassback',
'roof_mount_cell_glassback',
'open_rack_cell_polymerback',
'insulated_back_polymerback',
'open_rack_polymer_thinfilm_steel',
'22x_concentrator_tracker']
temps = pd.DataFrame(index=['temp_cell','temp_module'])
for model in models:
temps[model] = pd.Series(pvsystem.sapm_celltemp(1000, 5, 20, model=model).ix[0])
temps.T.plot(kind='bar') # try removing the transpose operation and replotting
plt.legend()
plt.ylabel('temperature (deg C)')
<matplotlib.text.Text at 0x1108afa20>
inverters = pvsystem.retrieve_sam('sandiainverter')
inverters
ABB__MICRO_0_25_I_OUTD_US_208_208V__CEC_2014_ | ABB__MICRO_0_25_I_OUTD_US_240_240V__CEC_2014_ | ABB__MICRO_0_3HV_I_OUTD_US_208_208V__CEC_2014_ | ABB__MICRO_0_3HV_I_OUTD_US_240_240V__CEC_2014_ | ABB__MICRO_0_3_I_OUTD_US_208_208V__CEC_2014_ | ABB__MICRO_0_3_I_OUTD_US_240_240V__CEC_2014_ | ABB__PVI_3_0_OUTD_S_US_Z_M_A__208_V__208V__CEC_2014_ | ABB__PVI_3_0_OUTD_S_US_Z_M_A__240_V__240V__CEC_2014_ | ABB__PVI_3_0_OUTD_S_US_Z_M_A__277_V__277V__CEC_2014_ | ABB__PVI_3_6_OUTD_S_US_Z_M__208_V__208V__CEC_2014_ | ... | Yes!_Solar_Inc___ES5000__240V__240V__CEC_2009_ | Yes!_Solar_Inc___ES5300__208V__208V__CEC_2009_ | Yes!_Solar_Inc___ES5300__240V__240V__CEC_2009_ | Zhejiang_Yuhui_Solar_Energy_Source__Replus_250A_240V__CEC_2012_ | Zhejiang_Yuhui_Solar_Energy_Source__Replus_250B_208V__CEC_2012_ | Zigor__Sunzet_2_TL_US_240V__CEC_2011_ | Zigor__Sunzet_3_TL_US_240V__CEC_2011_ | Zigor__Sunzet_4_TL_US_240V__CEC_2011_ | Zigor__Sunzet_5_TL_US_240V__CEC_2011_ | Zigor__SUNZET4_USA_240V__CEC_2011_ | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Vac | 208.000000 | 240.000000 | 208.000000 | 240.000000 | 208.000000 | 240.000000 | 208.000000 | 240.000000 | 277.000000 | 208.000000 | ... | 240.000000 | 208.000000 | 240.000000 | 2.400000e+02 | 208.000000 | 240.000000 | 240.000000 | 240.000000 | 240.000000 | 240.000000 |
Paco | 250.000000 | 250.000000 | 300.000000 | 300.000000 | 300.000000 | 300.000000 | 3000.000000 | 3000.000000 | 3000.000000 | 3600.000000 | ... | 4900.000000 | 4600.000000 | 5300.000000 | 2.251900e+02 | 213.830000 | 2110.000000 | 3180.000000 | 4160.000000 | 5240.000000 | 4030.000000 |
Pdco | 259.522050 | 259.552697 | 312.523347 | 312.022059 | 311.714554 | 311.504961 | 3147.009528 | 3125.758222 | 3110.342942 | 3759.288140 | ... | 5135.584132 | 4829.422409 | 5571.180956 | 2.348419e+02 | 225.563055 | 2191.825129 | 3313.675805 | 4342.409314 | 5495.829926 | 4267.477069 |
Vdco | 40.242603 | 39.982246 | 45.259429 | 45.495009 | 40.227111 | 40.136095 | 313.429286 | 340.842937 | 389.986270 | 309.948254 | ... | 275.000000 | 275.000000 | 274.900000 | 2.846843e+01 | 28.632617 | 399.207333 | 389.513254 | 388.562050 | 386.082539 | 302.851707 |
Pso | 1.771614 | 1.931194 | 1.882620 | 1.928591 | 1.971053 | 1.991342 | 18.104122 | 19.866112 | 22.720135 | 24.202212 | ... | 29.358943 | 26.071506 | 28.519033 | 1.646711e+00 | 1.845029 | 30.843703 | 31.265046 | 31.601704 | 32.450808 | 37.372766 |
C0 | -0.000025 | -0.000027 | -0.000049 | -0.000035 | -0.000036 | -0.000031 | -0.000009 | -0.000007 | -0.000006 | -0.000005 | ... | -0.000006 | -0.000006 | -0.000006 | -3.860000e-07 | -0.000121 | -0.000004 | -0.000006 | -0.000004 | -0.000005 | -0.000009 |
C1 | -0.000090 | -0.000158 | -0.000241 | -0.000228 | -0.000256 | -0.000289 | -0.000012 | -0.000025 | -0.000044 | 0.000002 | ... | 0.000020 | 0.000024 | 0.000019 | -3.580000e-04 | -0.000533 | -0.000077 | -0.000095 | -0.000079 | -0.000097 | -0.000029 |
C2 | 0.000669 | 0.001480 | 0.000975 | -0.000224 | -0.000833 | -0.002110 | 0.001620 | 0.001050 | 0.000036 | 0.001730 | ... | 0.001870 | 0.002620 | 0.001630 | -1.350000e-02 | 0.025900 | 0.000502 | 0.000261 | 0.000213 | -0.000251 | 0.002150 |
C3 | -0.018900 | -0.034600 | -0.027600 | -0.039600 | -0.039100 | -0.049500 | -0.000217 | -0.000471 | -0.001550 | 0.001140 | ... | -0.000276 | 0.000468 | -0.000371 | -3.350684e+01 | -0.066800 | -0.003260 | -0.001960 | -0.001870 | -0.002340 | -0.001900 |
Pnt | 0.020000 | 0.050000 | 0.060000 | 0.060000 | 0.020000 | 0.050000 | 0.100000 | 0.100000 | 0.200000 | 0.100000 | ... | 0.500000 | 0.500000 | 0.500000 | 1.700000e-01 | 0.170000 | 0.250000 | 0.250000 | 0.200000 | 0.200000 | 0.190000 |
Vdcmax | 65.000000 | 65.000000 | 79.000000 | 79.000000 | 65.000000 | 65.000000 | 600.000000 | 600.000000 | 600.000000 | 600.000000 | ... | 600.000000 | 600.000000 | 600.000000 | 5.500000e+01 | 55.000000 | 500.000000 | 500.000000 | 500.000000 | 500.000000 | 600.000000 |
Idcmax | 10.000000 | 10.000000 | 10.500000 | 10.500000 | 10.000000 | 10.000000 | 20.000000 | 20.000000 | 20.000000 | 32.000000 | ... | 25.000000 | 25.000000 | 25.000000 | 1.400000e+01 | 14.000000 | 14.600000 | 22.000000 | 28.000000 | 35.300000 | 20.000000 |
Mppt_low | 20.000000 | 20.000000 | 30.000000 | 30.000000 | 30.000000 | 30.000000 | 160.000000 | 160.000000 | 160.000000 | 120.000000 | ... | 200.000000 | 200.000000 | 200.000000 | 2.200000e+01 | 22.000000 | 150.000000 | 150.000000 | 150.000000 | 150.000000 | 240.000000 |
Mppt_high | 50.000000 | 50.000000 | 75.000000 | 75.000000 | 50.000000 | 50.000000 | 530.000000 | 530.000000 | 530.000000 | 530.000000 | ... | 550.000000 | 550.000000 | 550.000000 | 4.500000e+01 | 45.000000 | 450.000000 | 450.000000 | 450.000000 | 450.000000 | 480.000000 |
14 rows × 1799 columns
vdcs = pd.Series(np.linspace(0,50,51))
idcs = pd.Series(np.linspace(0,11,110))
pdcs = idcs * vdcs
pacs = pvsystem.snlinverter(inverters['ABB__MICRO_0_25_I_OUTD_US_208_208V__CEC_2014_'], vdcs, pdcs)
#pacs.plot()
plt.plot(pacs, pdcs)
plt.ylabel('ac power')
plt.xlabel('dc power')
<matplotlib.text.Text at 0x10f87e8d0>
Need to put more effort into describing this function.
The CEC module database.
cec_modules = pvsystem.retrieve_sam('cecmod')
cec_modules
BEoptCA_Default_Module | Example_Module | 1Soltech_1STH_215_P | 1Soltech_1STH_220_P | 1Soltech_1STH_225_P | 1Soltech_1STH_230_P | 1Soltech_1STH_235_WH | 1Soltech_1STH_240_WH | 1Soltech_1STH_245_WH | 1Soltech_1STH_FRL_4H_245_M60_BLK | ... | Zytech_Solar_ZT275P | Zytech_Solar_ZT280P | Zytech_Solar_ZT285P | Zytech_Solar_ZT290P | Zytech_Solar_ZT295P | Zytech_Solar_ZT300P | Zytech_Solar_ZT305P | Zytech_Solar_ZT310P | Zytech_Solar_ZT315P | Zytech_Solar_ZT320P | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
BIPV | Y | Y | N | N | N | N | N | N | N | N | ... | N | N | N | N | N | N | N | N | N | N |
Date | 12/17/2008 | 4/28/2008 | 10/7/2010 | 10/4/2010 | 10/4/2010 | 10/4/2010 | 3/4/2010 | 3/4/2010 | 3/4/2010 | 1/14/2013 | ... | 12/23/2014 | 12/23/2014 | 12/23/2014 | 12/23/2014 | 12/23/2014 | 12/23/2014 | 12/23/2014 | 12/23/2014 | 12/23/2014 | 12/23/2014 |
T_NOCT | 65 | 65 | 47.4 | 47.4 | 47.4 | 47.4 | 49.9 | 49.9 | 49.9 | 48.3 | ... | 46.4 | 46.4 | 46.4 | 46.4 | 46.4 | 46.4 | 46.4 | 46.4 | 46.4 | 46.4 |
A_c | 0.67 | 0.67 | 1.567 | 1.567 | 1.567 | 1.567 | 1.635 | 1.635 | 1.635 | 1.668 | ... | 1.931 | 1.931 | 1.931 | 1.931 | 1.931 | 1.931 | 1.931 | 1.931 | 1.931 | 1.931 |
N_s | 18 | 18 | 60 | 60 | 60 | 60 | 60 | 60 | 60 | 60 | ... | 72 | 72 | 72 | 72 | 72 | 72 | 72 | 72 | 72 | 72 |
I_sc_ref | 7.5 | 7.5 | 7.84 | 7.97 | 8.09 | 8.18 | 8.54 | 8.58 | 8.62 | 8.81 | ... | 8.31 | 8.4 | 8.48 | 8.55 | 8.64 | 8.71 | 8.87 | 8.9 | 9.01 | 9.12 |
V_oc_ref | 10.4 | 10.4 | 36.3 | 36.6 | 36.9 | 37.1 | 37 | 37.1 | 37.2 | 38.3 | ... | 45.1 | 45.25 | 45.43 | 45.59 | 45.75 | 45.96 | 46.12 | 46.28 | 46.44 | 46.6 |
I_mp_ref | 6.6 | 6.6 | 7.35 | 7.47 | 7.58 | 7.65 | 8.02 | 8.07 | 8.1 | 8.06 | ... | 7.76 | 7.87 | 7.97 | 8.07 | 8.16 | 8.26 | 8.36 | 8.46 | 8.56 | 8.66 |
V_mp_ref | 8.4 | 8.4 | 29 | 29.3 | 29.6 | 29.9 | 29.3 | 29.7 | 30.2 | 30.2 | ... | 35.44 | 35.62 | 35.8 | 35.94 | 36.16 | 36.32 | 36.49 | 36.66 | 36.81 | 37 |
alpha_sc | 0.003 | 0.003 | 0.007997 | 0.008129 | 0.008252 | 0.008344 | 0.00743 | 0.007465 | 0.007499 | 0.006167 | ... | 0.004014 | 0.004057 | 0.004096 | 0.00413 | 0.004173 | 0.004207 | 0.004284 | 0.004299 | 0.004352 | 0.004405 |
beta_oc | -0.04 | -0.04 | -0.13104 | -0.13213 | -0.13321 | -0.13393 | -0.13653 | -0.1369 | -0.13727 | -0.13635 | ... | -0.14428 | -0.14476 | -0.14533 | -0.14584 | -0.14635 | -0.14703 | -0.14754 | -0.14805 | -0.14856 | -0.14907 |
a_ref | 0.473 | 0.473 | 1.6413 | 1.6572 | 1.6732 | 1.6888 | 1.6292 | 1.6425 | 1.6617 | 1.6351 | ... | 1.8102 | 1.8147 | 1.82 | 1.8227 | 1.8311 | 1.8443 | 1.849 | 1.8573 | 1.8649 | 1.8737 |
I_L_ref | 7.545 | 7.545 | 7.843 | 7.974 | 8.094 | 8.185 | 8.543 | 8.582 | 8.623 | 8.844 | ... | 8.324 | 8.41 | 8.487 | 8.552 | 8.642 | 8.805 | 8.874 | 8.995 | 9.107 | 9.218 |
I_o_ref | 1.943e-09 | 1.943e-09 | 1.936e-09 | 2.03e-09 | 2.126e-09 | 2.332e-09 | 1.166e-09 | 1.325e-09 | 1.623e-09 | 5.7e-10 | ... | 1.24e-10 | 1.23e-10 | 1.22e-10 | 1.17e-10 | 1.22e-10 | 1.31e-10 | 1.3e-10 | 1.35e-10 | 1.38e-10 | 1.44e-10 |
R_s | 0.094 | 0.094 | 0.359 | 0.346 | 0.334 | 0.311 | 0.383 | 0.335 | 0.272 | 0.421 | ... | 0.567 | 0.553 | 0.544 | 0.539 | 0.521 | 0.516 | 0.507 | 0.496 | 0.488 | 0.476 |
R_sh_ref | 15.72 | 15.72 | 839.4 | 751.03 | 670.65 | 462.56 | 1257.84 | 1463.82 | 724.06 | 109.31 | ... | 341.66 | 457.29 | 687.16 | 2344.16 | 2910.76 | 552.2 | 1118.01 | 767.45 | 681.89 | 603.91 |
Adjust | 10.6 | 10.6 | 16.5 | 16.8 | 17.1 | 17.9 | 8.7 | 9.8 | 11.6 | 6.502 | ... | 5.554 | 5.406 | 5.197 | 4.792 | 5.033 | 5.548 | 5.373 | 5.578 | 5.711 | 5.971 |
gamma_r | -0.5 | -0.5 | -0.495 | -0.495 | -0.495 | -0.495 | -0.482 | -0.482 | -0.482 | -0.453 | ... | -0.431 | -0.431 | -0.431 | -0.431 | -0.431 | -0.431 | -0.431 | -0.431 | -0.431 | -0.431 |
Version | MM106 | MM105 | MM107 | MM107 | MM107 | MM107 | MM107 | MM107 | MM107 | NRELv1 | ... | NRELv1 | NRELv1 | NRELv1 | NRELv1 | NRELv1 | NRELv1 | NRELv1 | NRELv1 | NRELv1 | NRELv1 |
PTC | 48.9 | 48.9 | 189.4 | 194 | 198.5 | 203.1 | 205.1 | 209.6 | 214.1 | 217.7 | ... | 248 | 252.6 | 257.3 | 261.9 | 266.5 | 271.2 | 275.8 | 280.5 | 285.1 | 289.8 |
Technology | Multi-c-Si | Multi-c-Si | Multi-c-Si | Multi-c-Si | Multi-c-Si | Multi-c-Si | Mono-c-Si | Mono-c-Si | Mono-c-Si | Mono-c-Si | ... | Multi-c-Si | Multi-c-Si | Multi-c-Si | Multi-c-Si | Multi-c-Si | Multi-c-Si | Multi-c-Si | Multi-c-Si | Multi-c-Si | Multi-c-Si |
21 rows × 13953 columns
cecmodule = cec_modules.Example_Module
cecmodule
BIPV Y Date 4/28/2008 T_NOCT 65 A_c 0.67 N_s 18 I_sc_ref 7.5 V_oc_ref 10.4 I_mp_ref 6.6 V_mp_ref 8.4 alpha_sc 0.003 beta_oc -0.04 a_ref 0.473 I_L_ref 7.545 I_o_ref 1.943e-09 R_s 0.094 R_sh_ref 15.72 Adjust 10.6 gamma_r -0.5 Version MM105 PTC 48.9 Technology Multi-c-Si Name: Example_Module, dtype: object
The Sandia module database.
sandia_modules = pvsystem.retrieve_sam(name='SandiaMod')
sandia_modules
Advent_Solar_AS160___2006_ | Advent_Solar_Ventura_210___2008_ | Advent_Solar_Ventura_215___2009_ | Aleo_S03_160__2007__E__ | Aleo_S03_165__2007__E__ | Aleo_S16_165__2007__E__ | Aleo_S16_170__2007__E__ | Aleo_S16_175__2007__E__ | Aleo_S16_180__2007__E__ | Aleo_S16_185__2007__E__ | ... | Panasonic_VBHN235SA06B__2013_ | Trina_TSM_240PA05__2013_ | Hanwha_HSL60P6_PA_4_250T__2013_ | Suniva_OPT300_72_4_100__2013_ | Canadian_Solar_CS6X_300M__2013_ | LG_LG290N1C_G3__2013_ | Sharp_NDQ235F4__2013_ | Solar_Frontier_SF_160S__2013_ | SolarWorld_Sunmodule_250_Poly__2013_ | Silevo_Triex_U300_Black__2014_ | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Vintage | 2006 | 2008 | 2009 | 2007 (E) | 2007 (E) | 2007 (E) | 2007 (E) | 2007 (E) | 2007 (E) | 2007 (E) | ... | 2013 | 2013 | 2013 | 2013 | 2013 | 2013 | 2013 | 2013 | 2013 | 2014 |
Area | 1.312 | 1.646 | 1.646 | 1.28 | 1.28 | 1.378 | 1.378 | 1.378 | 1.378 | 1.378 | ... | 1.26 | 1.63 | 1.65 | 1.93 | 1.91 | 1.64 | 1.56 | 1.22 | 1.68 | 1.68 |
Material | mc-Si | mc-Si | mc-Si | c-Si | c-Si | mc-Si | mc-Si | mc-Si | mc-Si | mc-Si | ... | a-Si / mono-Si | mc-Si | mc-Si | c-Si | c-Si | c-Si | mc-Si | CIS | mc-Si | c-Si |
Cells_in_Series | 72 | 60 | 60 | 72 | 72 | 50 | 50 | 50 | 50 | 50 | ... | 72 | 60 | 60 | 72 | 72 | 60 | 60 | 172 | 60 | 96 |
Parallel_Strings | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | ... | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Isco | 5.564 | 8.34 | 8.49 | 5.1 | 5.2 | 7.9 | 7.95 | 8.1 | 8.15 | 8.2 | ... | 5.8738 | 8.8449 | 8.5935 | 8.5753 | 8.6388 | 9.8525 | 8.6739 | 2.0259 | 8.3768 | 5.771 |
Voco | 42.832 | 35.31 | 35.92 | 43.5 | 43.6 | 30 | 30.1 | 30.2 | 30.3 | 30.5 | ... | 52.0042 | 36.8926 | 36.8075 | 44.2921 | 43.5918 | 39.6117 | 36.8276 | 112.505 | 36.3806 | 68.5983 |
Impo | 5.028 | 7.49 | 7.74 | 4.55 | 4.65 | 7.08 | 7.23 | 7.38 | 7.53 | 7.67 | ... | 5.5383 | 8.2955 | 8.0822 | 7.963 | 8.1359 | 9.2473 | 8.1243 | 1.8356 | 7.6921 | 5.383 |
Vmpo | 32.41 | 27.61 | 27.92 | 35.6 | 35.8 | 23.3 | 23.5 | 23.7 | 23.9 | 24.1 | ... | 43.1204 | 29.066 | 29.2011 | 35.0837 | 34.9531 | 31.2921 | 29.1988 | 86.6752 | 28.348 | 55.4547 |
Aisc | 0.000537 | 0.00077 | 0.00082 | 0.0003 | 0.0003 | 0.0008 | 0.0008 | 0.0008 | 0.0008 | 0.0008 | ... | 0.0005 | 0.0004 | 0.0004 | 0.0006 | 0.0005 | 0.0002 | 0.0006 | 0.0001 | 0.0006 | 0.0003 |
Aimp | -0.000491 | -0.00015 | -0.00013 | -0.00025 | -0.00025 | -0.0003 | -0.0003 | -0.0003 | -0.0003 | -0.0003 | ... | -0.0001 | -0.0003 | -0.0003 | -0.0002 | -0.0001 | -0.0004 | -0.0002 | -0.0003 | -0.0001 | -0.0003 |
C0 | 1.0233 | 0.937 | 1.015 | 0.99 | 0.99 | 0.99 | 0.99 | 0.99 | 0.99 | 0.99 | ... | 1.0015 | 1.0116 | 1.0061 | 0.999 | 1.0121 | 1.0145 | 1.0049 | 1.0096 | 1.0158 | 0.995 |
C1 | -0.0233 | 0.063 | -0.015 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | ... | -0.0015 | -0.0116 | -0.0061 | 0.001 | -0.0121 | -0.0145 | -0.0049 | -0.0096 | -0.0158 | 0.005 |
Bvoco | -0.1703 | -0.133 | -0.135 | -0.152 | -0.152 | -0.11 | -0.11 | -0.11 | -0.11 | -0.11 | ... | -0.1411 | -0.137 | -0.1263 | -0.155 | -0.1532 | -0.1205 | -0.1279 | -0.3044 | -0.1393 | -0.1913 |
Mbvoc | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bvmpo | -0.1731 | -0.135 | -0.136 | -0.158 | -0.158 | -0.115 | -0.115 | -0.115 | -0.115 | -0.115 | ... | -0.1366 | -0.1441 | -0.1314 | -0.1669 | -0.1634 | -0.1337 | -0.1348 | -0.2339 | -0.1449 | -0.184 |
Mbvmp | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
N | 1.174 | 1.495 | 1.373 | 1.25 | 1.25 | 1.35 | 1.35 | 1.35 | 1.35 | 1.35 | ... | 1.029 | 1.2073 | 1.0686 | 1.0771 | 1.0025 | 1.0925 | 1.0695 | 1.2066 | 1.226 | 1.345 |
C2 | -0.76444 | 0.0182 | 0.0036 | -0.15 | -0.15 | -0.12 | -0.12 | -0.12 | -0.12 | -0.12 | ... | 0.2859 | -0.07993 | -0.2585 | -0.355 | -0.171 | -0.4647 | -0.2718 | -0.5426 | -0.09677 | 0.3221 |
C3 | -15.5087 | -10.758 | -7.2509 | -8.96 | -8.96 | -11.08 | -11.08 | -11.08 | -11.08 | -11.08 | ... | -5.48455 | -7.27624 | -9.85905 | -13.0643 | -9.39745 | -11.9008 | -11.4033 | -15.2598 | -8.51148 | -6.7178 |
A0 | 0.9281 | 0.9067 | 0.9323 | 0.938 | 0.938 | 0.924 | 0.924 | 0.924 | 0.924 | 0.924 | ... | 0.9161 | 0.9645 | 0.9428 | 0.9327 | 0.9371 | 0.9731 | 0.9436 | 0.9354 | 0.9288 | 0.9191 |
A1 | 0.06615 | 0.09573 | 0.06526 | 0.05422 | 0.05422 | 0.06749 | 0.06749 | 0.06749 | 0.06749 | 0.06749 | ... | 0.07968 | 0.02753 | 0.0536 | 0.07283 | 0.06262 | 0.02966 | 0.04765 | 0.06809 | 0.07201 | 0.09988 |
A2 | -0.01384 | -0.0266 | -0.01567 | -0.009903 | -0.009903 | -0.012549 | -0.012549 | -0.012549 | -0.012549 | -0.012549 | ... | -0.01866 | -0.002848 | -0.01281 | -0.02402 | -0.01667 | -0.01024 | -0.007405 | -0.02094 | -0.02065 | -0.04273 |
A3 | 0.001298 | 0.00343 | 0.00193 | 0.0007297 | 0.0007297 | 0.0010049 | 0.0010049 | 0.0010049 | 0.0010049 | 0.0010049 | ... | 0.002278 | -0.0001439 | 0.001826 | 0.003819 | 0.002168 | 0.001793 | 0.0003818 | 0.00293 | 0.002862 | 0.00937 |
A4 | -4.6e-05 | -0.0001794 | -9.81e-05 | -1.907e-05 | -1.907e-05 | -2.8797e-05 | -2.8797e-05 | -2.8797e-05 | -2.8797e-05 | -2.8797e-05 | ... | -0.0001118 | 2.219e-05 | -0.0001048 | -0.000235 | -0.0001087 | -0.0001286 | -1.101e-05 | -0.0001564 | -0.0001544 | -0.0007643 |
B0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | ... | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
B1 | -0.002438 | -0.002438 | -0.002438 | -0.002438 | -0.002438 | -0.002438 | -0.002438 | -0.002438 | -0.002438 | -0.002438 | ... | -0.01053 | -0.00261 | -0.007861 | -0.006801 | -0.00789 | -0.0154 | -0.00464 | -0.0152 | -0.00308 | -0.006498 |
B2 | 0.0003103 | 0.00031 | 0.00031 | 0.0003103 | 0.0003103 | 0.0003103 | 0.0003103 | 0.0003103 | 0.0003103 | 0.0003103 | ... | 0.001149 | 0.0003279 | 0.0009058 | 0.0007968 | 0.0008656 | 0.001572 | 0.000559 | 0.001598 | 0.0004053 | 0.0006908 |
B3 | -1.246e-05 | -1.246e-05 | -1.246e-05 | -1.246e-05 | -1.246e-05 | -1.246e-05 | -1.246e-05 | -1.246e-05 | -1.246e-05 | -1.246e-05 | ... | -4.268e-05 | -1.458e-05 | -3.496e-05 | -3.095e-05 | -3.298e-05 | -5.525e-05 | -2.249e-05 | -5.682e-05 | -1.729e-05 | -2.678e-05 |
B4 | 2.11e-07 | 2.11e-07 | 2.11e-07 | 2.11e-07 | 2.11e-07 | 2.11e-07 | 2.11e-07 | 2.11e-07 | 2.11e-07 | 2.11e-07 | ... | 6.517e-07 | 2.654e-07 | 5.473e-07 | 4.896e-07 | 5.178e-07 | 8.04e-07 | 3.673e-07 | 8.326e-07 | 2.997e-07 | 4.322e-07 |
B5 | -1.36e-09 | -1.36e-09 | -1.36e-09 | -1.36e-09 | -1.36e-09 | -1.36e-09 | -1.36e-09 | -1.36e-09 | -1.36e-09 | -1.36e-09 | ... | -3.556e-09 | -1.732e-09 | -3.058e-09 | -2.78e-09 | -2.918e-09 | -4.202e-09 | -2.144e-09 | -4.363e-09 | -1.878e-09 | -2.508e-09 |
DTC | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | ... | 2.03 | 3.03 | 2.55 | 2.58 | 3.2 | 3.05 | 3.27 | 3.29 | 3.19 | 3.13 |
FD | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | ... | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
A | -3.35 | -3.45 | -3.47 | -3.56 | -3.56 | -3.56 | -3.56 | -3.56 | -3.56 | -3.56 | ... | -3.7489 | -3.5924 | -3.5578 | -3.7566 | -3.6024 | -3.4247 | -3.7445 | -3.6836 | -3.73 | -3.6866 |
B | -0.1161 | -0.077 | -0.087 | -0.075 | -0.075 | -0.075 | -0.075 | -0.075 | -0.075 | -0.075 | ... | -0.1287 | -0.1319 | -0.1766 | -0.156 | -0.2106 | -0.0951 | -0.149 | -0.1483 | -0.1483 | -0.104 |
C4 | 0.9974 | 0.972 | 0.989 | 0.995 | 0.995 | 0.995 | 0.995 | 0.995 | 0.995 | 0.995 | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
C5 | 0.0026 | 0.028 | 0.012 | 0.005 | 0.005 | 0.005 | 0.005 | 0.005 | 0.005 | 0.005 | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
IXO | 5.54 | 8.25 | 8.49 | 5.04 | 5.14 | 7.8 | 7.85 | 8 | 8.05 | 8.1 | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
IXXO | 3.56 | 5.2 | 5.45 | 3.16 | 3.25 | 4.92 | 5.08 | 5.18 | 5.39 | 5.54 | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
C6 | 1.173 | 1.067 | 1.137 | 1.15 | 1.15 | 1.15 | 1.15 | 1.15 | 1.15 | 1.15 | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
C7 | -0.173 | -0.067 | -0.137 | -0.15 | -0.15 | -0.15 | -0.15 | -0.15 | -0.15 | -0.15 | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
Notes | Source: Sandia National Laboratories Updated 9... | Source: Sandia National Laboratories Updated 9... | Source: Sandia National Laboratories Updated 9... | Source: Sandia National Laboratories Updated 9... | Source: Sandia National Laboratories Updated 9... | Source: Sandia National Laboratories Updated 9... | Source: Sandia National Laboratories Updated 9... | Source: Sandia National Laboratories Updated 9... | Source: Sandia National Laboratories Updated 9... | Source: Sandia National Laboratories Updated 9... | ... | Source: CFV Solar Test Lab. Tested 2013. Mo... | Source: CFV Solar Test Lab. Tested 2013. Mo... | Source: CFV Solar Test Lab. Tested 2013. Mo... | Source: CFV Solar Test Lab. Tested 2013. Mo... | Source: CFV Solar Test Lab. Tested 2013. Mo... | Source: CFV Solar Test Lab. Tested 2013. Mo... | Source: CFV Solar Test Lab. Tested 2013. Mo... | Source: CFV Solar Test Lab. Tested 2013. Mo... | Source: CFV Solar Test Lab. Tested 2013. Mo... | Source: CFV Solar Test Lab. Tested 2014. Mo... |
42 rows × 523 columns
sandia_module = sandia_modules.Canadian_Solar_CS5P_220M___2009_
sandia_module
Vintage 2009 Area 1.701 Material c-Si Cells_in_Series 96 Parallel_Strings 1 Isco 5.09115 Voco 59.2608 Impo 4.54629 Vmpo 48.3156 Aisc 0.000397 Aimp 0.000181 C0 1.01284 C1 -0.0128398 Bvoco -0.21696 Mbvoc 0 Bvmpo -0.235488 Mbvmp 0 N 1.4032 C2 0.279317 C3 -7.24463 A0 0.928385 A1 0.068093 A2 -0.0157738 A3 0.0016606 A4 -6.93e-05 B0 1 B1 -0.002438 B2 0.0003103 B3 -1.246e-05 B4 2.11e-07 B5 -1.36e-09 DTC 3 FD 1 A -3.40641 B -0.0842075 C4 0.996446 C5 0.003554 IXO 4.97599 IXXO 3.18803 C6 1.15535 C7 -0.155353 Notes Source: Sandia National Laboratories Updated 9... Name: Canadian_Solar_CS5P_220M___2009_, dtype: object
Generate some irradiance data for modeling.
from pvlib import clearsky
from pvlib import irradiance
from pvlib import atmosphere
from pvlib.location import Location
tus = Location(32.2, -111, 'US/Arizona', 700, 'Tucson')
times_loc = pd.date_range(start=datetime.datetime(2014,4,1), end=datetime.datetime(2014,4,2), freq='30s', tz=tus.tz)
ephem_data = pvlib.solarposition.get_solarposition(times_loc, tus.latitude, tus.longitude)
irrad_data = clearsky.ineichen(times_loc, tus.latitude, tus.longitude)
#irrad_data.plot()
aoi = irradiance.aoi(0, 0, ephem_data['apparent_zenith'], ephem_data['azimuth'])
#plt.figure()
#aoi.plot()
am = atmosphere.relativeairmass(ephem_data['apparent_zenith'])
# a hot, sunny spring day in the desert.
temps = pvsystem.sapm_celltemp(irrad_data['ghi'], 0, 30)
Now we can run the module parameters and the irradiance data through the SAPM function.
sapm_1 = pvsystem.sapm(sandia_module, irrad_data['dni']*np.cos(np.radians(aoi)),
irrad_data['dhi'], temps['temp_cell'], am, aoi)
sapm_1.head()
i_sc | i_mp | v_oc | v_mp | p_mp | i_x | i_xx | effective_irradiance | |
---|---|---|---|---|---|---|---|---|
2014-04-01 00:00:00-07:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
2014-04-01 00:00:30-07:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
2014-04-01 00:01:00-07:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
2014-04-01 00:01:30-07:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
2014-04-01 00:02:00-07:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
def plot_sapm(sapm_data):
"""
Makes a nice figure with the SAPM data.
Parameters
----------
sapm_data : DataFrame
The output of ``pvsystem.sapm``
"""
fig, axes = plt.subplots(2, 3, figsize=(16,10), sharex=False, sharey=False, squeeze=False)
plt.subplots_adjust(wspace=.2, hspace=.3)
ax = axes[0,0]
sapm_data.filter(like='i_').plot(ax=ax)
ax.set_ylabel('Current (A)')
ax = axes[0,1]
sapm_data.filter(like='v_').plot(ax=ax)
ax.set_ylabel('Voltage (V)')
ax = axes[0,2]
sapm_data.filter(like='p_').plot(ax=ax)
ax.set_ylabel('Power (W)')
ax = axes[1,0]
[ax.plot(sapm_data['effective_irradiance'], current, label=name) for name, current in
sapm_data.filter(like='i_').iteritems()]
ax.set_ylabel('Current (A)')
ax.set_xlabel('Effective Irradiance')
ax.legend(loc=2)
ax = axes[1,1]
[ax.plot(sapm_data['effective_irradiance'], voltage, label=name) for name, voltage in
sapm_data.filter(like='v_').iteritems()]
ax.set_ylabel('Voltage (V)')
ax.set_xlabel('Effective Irradiance')
ax.legend(loc=4)
ax = axes[1,2]
ax.plot(sapm_data['effective_irradiance'], sapm_data['p_mp'], label='p_mp')
ax.set_ylabel('Power (W)')
ax.set_xlabel('Effective Irradiance')
ax.legend(loc=2)
# needed to show the time ticks
for ax in axes.flatten():
for tk in ax.get_xticklabels():
tk.set_visible(True)
plot_sapm(sapm_1)
For comparison, here's the SAPM for a sunny, windy, cold version of the same day.
temps = pvsystem.sapm_celltemp(irrad_data['ghi'], 10, 5)
sapm_2 = pvsystem.sapm(sandia_module, irrad_data['dni']*np.cos(np.radians(aoi)),
irrad_data['dhi'], temps['temp_cell'], am, aoi)
plot_sapm(sapm_2)
sapm_1['p_mp'].plot(label='30 C, 0 m/s')
sapm_2['p_mp'].plot(label=' 5 C, 10 m/s')
plt.legend()
plt.ylabel('Pmp')
plt.title('Comparison of a hot, calm day and a cold, windy day')
<matplotlib.text.Text at 0x10febe828>
The IV curve function only calculates the 5 points of the SAPM. We will add arbitrary points in a future release, but for now we just interpolate between the 5 SAPM points.
import warnings
warnings.simplefilter('ignore', np.RankWarning)
def sapm_to_ivframe(sapm_row):
pnt = sapm_row.T.ix[:,0]
ivframe = {'Isc': (pnt['i_sc'], 0),
'Pmp': (pnt['i_mp'], pnt['v_mp']),
'Ix': (pnt['i_x'], 0.5*pnt['v_oc']),
'Ixx': (pnt['i_xx'], 0.5*(pnt['v_oc']+pnt['v_mp'])),
'Voc': (0, pnt['v_oc'])}
ivframe = pd.DataFrame(ivframe, index=['current', 'voltage']).T
ivframe = ivframe.sort_values(by='voltage')
return ivframe
def ivframe_to_ivcurve(ivframe, points=100):
ivfit_coefs = np.polyfit(ivframe['voltage'], ivframe['current'], 30)
fit_voltages = np.linspace(0, ivframe.ix['Voc', 'voltage'], points)
fit_currents = np.polyval(ivfit_coefs, fit_voltages)
return fit_voltages, fit_currents
sapm_to_ivframe(sapm_1['2014-04-01 10:00:00'])
current | voltage | |
---|---|---|
Isc | 3.848214 | 0.000000 |
Ix | 3.757784 | 25.754530 |
Pmp | 3.425038 | 40.706316 |
Ixx | 2.504497 | 46.107688 |
Voc | 0.000000 | 51.509060 |
times = ['2014-04-01 07:00:00', '2014-04-01 08:00:00', '2014-04-01 09:00:00',
'2014-04-01 10:00:00', '2014-04-01 11:00:00', '2014-04-01 12:00:00']
times.reverse()
fig, ax = plt.subplots(1, 1, figsize=(12,8))
for time in times:
ivframe = sapm_to_ivframe(sapm_1[time])
fit_voltages, fit_currents = ivframe_to_ivcurve(ivframe)
ax.plot(fit_voltages, fit_currents, label=time)
ax.plot(ivframe['voltage'], ivframe['current'], 'ko')
ax.set_xlabel('Voltage (V)')
ax.set_ylabel('Current (A)')
ax.set_ylim(0, None)
ax.set_title('IV curves at multiple times')
ax.legend()
<matplotlib.legend.Legend at 0x11123b908>
The same data run through the desoto model.
photocurrent, saturation_current, resistance_series, resistance_shunt, nNsVth = (
pvsystem.calcparams_desoto(irrad_data.ghi,
temp_cell=temps['temp_cell'],
alpha_isc=cecmodule['alpha_sc'],
module_parameters=cecmodule,
EgRef=1.121,
dEgdT=-0.0002677) )
photocurrent.plot()
plt.ylabel('Light current I_L (A)')
<matplotlib.text.Text at 0x117c06160>
saturation_current.plot()
plt.ylabel('Saturation current I_0 (A)')
<matplotlib.text.Text at 0x117c5aac8>
resistance_series
0.094
resistance_shunt.plot()
plt.ylabel('Shunt resistance (ohms)')
plt.ylim(0,100)
(0, 100)
nNsVth.plot()
plt.ylabel('nNsVth')
<matplotlib.text.Text at 0x117c704a8>
single_diode_out = pvsystem.singlediode(cecmodule, photocurrent, saturation_current,
resistance_series, resistance_shunt, nNsVth)
single_diode_out
i_mp | i_sc | i_x | i_xx | p_mp | v_mp | v_oc | |
---|---|---|---|---|---|---|---|
2014-04-01 00:00:00-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 00:00:30-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 00:01:00-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 00:01:30-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 00:02:00-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 00:02:30-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 00:03:00-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 00:03:30-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 00:04:00-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 00:04:30-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 00:05:00-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 00:05:30-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 00:06:00-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 00:06:30-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 00:07:00-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 00:07:30-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 00:08:00-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 00:08:30-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 00:09:00-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 00:09:30-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 00:10:00-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 00:10:30-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 00:11:00-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 00:11:30-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 00:12:00-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 00:12:30-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 00:13:00-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 00:13:30-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 00:14:00-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 00:14:30-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
... | ... | ... | ... | ... | ... | ... | ... |
2014-04-01 23:45:30-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 23:46:00-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 23:46:30-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 23:47:00-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 23:47:30-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 23:48:00-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 23:48:30-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 23:49:00-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 23:49:30-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 23:50:00-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 23:50:30-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 23:51:00-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 23:51:30-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 23:52:00-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 23:52:30-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 23:53:00-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 23:53:30-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 23:54:00-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 23:54:30-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 23:55:00-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 23:55:30-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 23:56:00-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 23:56:30-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 23:57:00-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 23:57:30-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 23:58:00-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 23:58:30-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 23:59:00-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-01 23:59:30-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2014-04-02 00:00:00-07:00 | NaN | NaN | NaN | NaN | NaN | 0.022756 | 0.019739 |
2881 rows × 7 columns
single_diode_out['i_sc'].plot()
<matplotlib.axes._subplots.AxesSubplot at 0x117cde358>
single_diode_out['v_oc'].plot()
<matplotlib.axes._subplots.AxesSubplot at 0x10fe34908>
single_diode_out['p_mp'].plot()
<matplotlib.axes._subplots.AxesSubplot at 0x117cde080>