{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "import pvlib library" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import sys\n", "import os\n", "sys.path.append(os.path.abspath('../')) #append the parent directory to the system path\n", "sys.path.append(os.path.abspath('../pvlib')) #append the parent directory to the system path\n", "import pvlib\n", "import pandas as pd " ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 24 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Import TMY data" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Use Sandia standard data " ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "fname='723650TY.csv' #Use absolute path if the file is not in the local directory\n", "TMY, meta=pvlib.tmy.readtmy3(filename=fname)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 26 }, { "cell_type": "code", "collapsed": false, "input": [ "meta['longitude']=-79.2\n", "meta['latitude']=43.42\n", "meta['TZ']=-5\n", "meta['SurfTilt']=30\n", "meta['SurfAz']=0\n", "meta['Albedo']=0.2" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "print meta['State']\n", "print meta['longitude']" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "NM\n", "-79.2\n" ] } ], "prompt_number": 7 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Define date range of interest for graphing" ] }, { "cell_type": "code", "collapsed": false, "input": [ "month=3\n", "day=26\n", "hour=0\n", "periods=24\n", "freq='H'\n", "rng=pd.date_range(datetime.datetime(year=min(TMY.index.year),month=month,day=day,hour=hour),periods=periods,freq=freq)\n", "rng " ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 8, "text": [ "\n", "[1981-03-26 00:00:00, ..., 1981-03-26 23:00:00]\n", "Length: 24, Freq: H, Timezone: None" ] } ], "prompt_number": 8 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Get solar angles" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import pvl_ephemeris\n", "reload(pvl_ephemeris)\n", "#Using Ephemeris Calculations\n", "TMY['SunAz'],TMY['SunEl'],TMY['ApparentSunEl'],TMY['SolarTime'], TMY['SunZen']=pvl_ephemeris.pvl_ephemeris(Time=TMY.index,Location=meta)\n", "#Using NRELS SPA Calculations\n", "import pvl_spa\n", "reload (pvl_spa)\n", "TMY['SunAz_spa'],TMY['SunEl_spa'],TMY['SunZen_spa']=pvl_spa.pvl_spa(Time=TMY.index,Location=meta)\n", "\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 9 }, { "cell_type": "code", "collapsed": false, "input": [ "clf()\n", "plot(TMY.index,TMY.SunAz)\n", "plot(TMY.index,TMY.SunAz_spa)\n", "plot(TMY.index,TMY.SunEl,label='eph')\n", "plot(TMY.index,TMY.SunEl_spa,label='spa')\n", "legend()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 10, "text": [ "" ] } ], "prompt_number": 10 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Calculate Extraterrestrial Irradiaion and AirMass" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "TMY['HExtra']=pvlib.pvl_extraradiation(doy=TMY.index.dayofyear)\n", "\n", "TMY['AM']=pvlib.pvl_relativeairmass(z=TMY.SunZen)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 11 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Generate Clear Sky and DNI" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "DFOut=pvlib.pvl_disc(Time=TMY.index,GHI=TMY.GHI, SunZen=TMY.SunZen)\n", "\n", "TMY['DNI_gen_DISC']=DFOut['DNI_gen_DISC']\n", "TMY['Kt_gen_DISC']=DFOut['Kt_gen_DISC']\n", "TMY['AM']=DFOut['AM']\n", "TMY['Ztemp']=DFOut['Ztemp']\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 12 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Plane Transformation" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "TMY['In_Plane_SkyDiffuse']=pvlib.pvl_perez(SurfTilt=meta['SurfTilt'],\n", " SurfAz=meta['SurfAz'],\n", " DHI=TMY.DHI,\n", " DNI=TMY.DNI,\n", " HExtra=TMY.HExtra,\n", " SunZen=TMY.SunZen,\n", " SunAz=TMY.SunAz,\n", " AM=TMY.AM)\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 13 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Ground Diffuse reflection" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "TMY['GR']=pvlib.pvl_grounddiffuse(GHI=TMY.GHI,Albedo=meta['Albedo'],SurfTilt=meta['SurfTilt'])" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 14 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Get AOI" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "TMY['AOI']=pvlib.pvl_getaoi(SunAz=TMY.SunAz,SunZen=TMY.SunZen,SurfTilt=meta['SurfTilt'],SurfAz=meta['SurfAz'])" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 15 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Calculate Global in-plane" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "TMY['E'],TMY['Eb'],TMY['EDiff']=pvlib.pvl_globalinplane(AOI=TMY.AOI,\n", " DNI=TMY.DNI,\n", " In_Plane_SkyDiffuse=TMY.In_Plane_SkyDiffuse,\n", " GR=TMY.GR,\n", " SurfTilt=meta['SurfTilt'],\n", " SurfAz=meta['SurfAz'])\n", "\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 16 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Calculate Cell Temperature" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "TMY['Tcell'],TMY['Tmodule']=pvlib.pvl_sapmcelltemp(E=TMY.E,\n", " Wspd=TMY.Wspd,\n", " Tamb=TMY.DryBulb)\n", "\n", "\n", "\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 17 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Import module coefficients" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "moddb=pvlib.pvl_retreiveSAM(name='SandiaMod')\n", "module=moddb.Canadian_Solar_CS5P_220M___2009_\n", "module" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 18, "text": [ "Vintage 2009\n", "Area 1.701\n", "Material c-Si\n", "#Series 96\n", "#Parallel 1\n", "Isco 5.09115\n", "Voco 59.2608\n", "Impo 4.54629\n", "Vmpo 48.3156\n", "Aisc 0.000397\n", "Aimp 0.000181\n", "C0 1.01284\n", "C1 -0.0128398\n", "Bvoco -0.21696\n", "Mbvoc 0\n", "Bvmpo -0.235488\n", "Mbvmp 0\n", "N 1.4032\n", "C2 0.279317\n", "C3 -7.24463\n", "A0 0.928385\n", "A1 0.068093\n", "A2 -0.0157738\n", "A3 0.0016606\n", "A4 -6.93035e-05\n", "B0 1\n", "B1 -0.002438\n", "B2 0.0003103\n", "B3 -1.246e-05\n", "B4 2.112e-07\n", "B5 -1.359e-09\n", "DTC 3\n", "FD 1\n", "A -3.40641\n", "B -0.0842075\n", "C4 0.996446\n", "C5 0.003554\n", "IXO 4.97599\n", "IXXO 3.18803\n", "C6 1.15535\n", "C7 -0.155353\n", "Notes Source: Sandia National Laboratories Updated 9...\n", "Name: Canadian_Solar_CS5P_220M___2009_, dtype: object" ] } ], "prompt_number": 18 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "\n", "import inverter coefficients" ] }, { "cell_type": "code", "collapsed": false, "input": [ "Invdb=pvlib.pvl_retreiveSAM(name='SandiaInverter')\n", "inverter=Invdb.Advanced_Energy__Solaron_333_3159000_105_480V__CEC_2008_\n", "inverter" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 19, "text": [ "Vac 4.800000e+02\n", "Paco 3.330000e+05\n", "Pdco 3.432510e+05\n", "Vdco 3.700880e+02\n", "Pso 1.427750e+03\n", "C0 -5.768090e-08\n", "C1 7.192230e-05\n", "C2 2.075400e-03\n", "C3 5.956110e-05\n", "Pnt 1.033000e+02\n", "Vdcmax 6.000000e+02\n", "Idcmax 5.000000e+02\n", "Mppt_low 3.300000e+02\n", "Mppt_high 6.000000e+02\n", "Name: Advanced_Energy__Solaron_333_3159000_105_480V__CEC_2008_, dtype: float64" ] } ], "prompt_number": 19 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Sandia Model" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "DFOut=pvlib.pvl_sapm(Eb=TMY['Eb'],\n", " Ediff=TMY['EDiff'],\n", " Tcell=TMY['Tcell'],\n", " AM=TMY['AM'],\n", " AOI=TMY['AOI'],\n", " Module=module)\n", "\n", "TMY['Imp']=DFOut['Imp']\n", "TMY['Voc']=DFOut['Voc']\n", "TMY['Vmp']=DFOut['Vmp']\n", "TMY['Pmp']=DFOut['Pmp']\n", "TMY['Ix']=DFOut['Ix']\n", "TMY['Ixx']=DFOut['Ixx']" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 20 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Single Diode Model" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "moddb=pvlib.pvl_retreiveSAM(name='CECMod')\n", "module=moddb.Canadian_Solar_CS5P_220P\n", "\n", "IL,I0,Rs,Rsh,nNsVth=pvlib.pvl_calcparams_desoto(S=TMY.GHI,\n", " Tcell=TMY.DryBulb,\n", " alpha_isc=.003,\n", " ModuleParameters=module,\n", " EgRef=1.121,\n", " dEgdT= -0.0002677)\n", "\n", "\n", "DFout= pvlib.pvl_singlediode(Module=module,\n", " IL=IL,\n", " I0=I0,\n", " Rs=Rs,\n", " Rsh=Rsh,\n", " nNsVth=nNsVth)\n", "\n", "\n", "TMY['sd_Imp']=DFOut['Imp']\n", "TMY['sd_Voc']=DFOut['Voc']\n", "TMY['sd_Vmp']=DFOut['Vmp']\n", "TMY['sd_Pmp']=DFOut['Pmp']\n", "TMY['sd_Ix']=DFOut['Ix']\n", "TMY['sd_Ixx']=DFOut['Ixx'] " ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 21 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Inverter Model" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "TMY['ACPower']=pvlib.pvl_snlinverter(Vmp=TMY.Vmp,Pmp=TMY.Pmp,Inverter=inverter)\n", "\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 22 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }