SlideShare uma empresa Scribd logo
1 de 15
Copyright | © 2017 SunPower Corporation
PVMismatch Free Open Source Software
8th PV PMC Workshop, Albuquerque, NM
Bennet E. Meyers and Mark A. Mikofski | May 9th, 2017
2Copyright | © 2017 SunPower Corporation |
Agenda
• Description
• Simple usage
• Benefits
• Advanced usage
• Links to source,
documentation and
installation
• Future work
• Questions
3Copyright | © 2017 SunPower Corporation |
Description
• PVMismatch is …
– A free open source software Python
package
– for modeling both forward and
reverse bias current – voltage
(I-V) curves
– at system, string, module and cell
level
– using a 2-diode analog.
• Future versions will use a backend
plugin to allow other cell models like
CEC, PVSyst, etc. to be used instead of
the default 2-diode model.
– Cell, module, string and system
constraints are all independent and
variable
4Copyright | © 2017 SunPower Corporation |
Simple Usage: Rooftop shading
Create PV
system
Set
irradiance
for entire
2nd string
Set
irradiance
on
individual
modules in
shaded
regions of
3rd , 4th, 8th
9th and
10th
modules
5Confidential | © 2014 SunPower Corporation |
Case Study: Current margin for string with a degraded cell
• Determine the current margin for a string
of modules with a single degraded cell as a
function of the length of the string and the
amount of degradation causing the cell to
reverse bias.
• Given a string of perfectly matched
modules, and a single cell degraded by Y
proportional to Isc, find the point at which
Imp = YIsc, and any increase in Y will cause
the degraded cell to go into reverse bias.
This is the point at which there are 2 max
powers. Repeat for 72, 96 and 128 cell
modules in strings with N modules, and
plot Y* = 1-Y vs. N.
def findY(Y, num_mods, num_cells, return_pvsys=False):
pvsys = pvsystem.PVsystem(
numberStrs=1, numberMods=num_mods, numberCells=num_cells,
pvconst=PVCONST)
pvsys.setSuns({0: {0: {'cells': 0, 'Ee': Y}}})
retv = (Y * pvsys.Isc - pvsys.Imp) ** 2
if return_pvsys:
retv = (retv, pvsys)
return retv
6Copyright | © 2017 SunPower Corporation |
PVMismatch harnesses benefits of Python-based research
• Easily organize complex simulations through use of classes
– Intuitive access to system, module, and cell-level models
– Subclassing to create technology-specific simulations (e.g. SPWRPVsystem)
• Effortless expansion of functionality through use with extensive Python scientific computing modules
– Pandas: organization and statistical analysis of large datasets
– Matplotlib/Seaborn: data visualization and exploration
– Shapely: geometric approach to shade pattern design
• Simple integration with Python’s multiprocessing module for painless parallelization
• Perhaps most importantly, it is incredibly easy to model non-uniform irradiance and shade effects at the cell level
– Most previous work/research in this area has only modeled the system down to the module level, assuming uniform behavior
within each module, ignoring cell-level mismatch and the impact of bypass diodes and other module-level circuit designs
– See Bennet’s talk at PVSC 44 this June!
7Copyright | © 2017 SunPower Corporation |
Advanced Usage Example: Shade design with Shapely
• We can use Shapely, an open source
Python package for manipulation
and analysis of 2-D geometric
objects, to model shade as polygons
intersecting with PV system objects.
– Bold rectangles are PV modules. Groups of
the same color are series-connected
strings. Small squares are PV cells.
– A Shapely polygon representing the shade
from a pipe is overlaid.
• Shapely finds the intersections
between the shade polygon and the
individual cells in the system, from
which calculate the irradiance on
each cell and use PVMismatch to get
the system IV and PV curves.
8Copyright | © 2017 SunPower Corporation |
Advanced Case Study: P-Series Shade Performance Model
• 219,200 unique shade scenarios, defined
programatically
• Automatic batching and autosaving of results
• ~30 hours of processing time across 24 processors on
an OpenStack Linux cluster
• Results:
– Deep exploration of domain space of system shade response,
modeled as a cell level.
– Small step-sizes allow for good characterization of highly-
nonlinear response regions
– Dataset is dense enough to allow for non-linear statistical learning
• For more information on background/methodology,
see
“A Fast Parameterized Model for Predicting PV System Performance under Partial Shade Conditions,”
2016 IEEE 43nd Photovolt. Spec. Conf. PVSC 2016, no. 1, pp. 3173–3178, 2016
Statistical learning from PVMismatch simulation data. Plot of
power loss modeled by PVMismatch versus power loss from a
non-linear model based on three variables.
9Copyright | © 2017 SunPower Corporation |
Links, Source Code, Installation
• Documentation: http://sunpower.github.io/PVMismatch/
• Source Code: https://github.com/SunPower/PVMismatch/
– This is a public Git repository hosted by GitHub. Please feel free to fork it and collaborate!
• Build status: https://travis-ci.org/SunPower/PVMismatch
– Every tagged build is tested by Travis CI and deployed automatically to PyPI and GitHub releases
• Issues: https://github.com/SunPower/PVMismatch/issues
• Wiki: https://github.com/SunPower/PVMismatch/wiki
– Roadmap discussion and user curated content such as tips and tricks.
• Installation: https://pypi.python.org/pypi/pvmismatch
– You can use pip or conda with SunPower channel.
• Bugs reports and contributions are welcome!
10Copyright | © 2017 SunPower Corporation |
Future Work
• #39 Make cell model a backend “plugin” with documented API so that any continuous IV
curve model such as CEC or PVSyst can be used. This makes PVLIB integration possible.
– https://github.com/SunPower/PVMismatch/issues/39
– EG: in pvcontstants.py add new attribute like PVcontstants.pvcell_backend = default # any
backend plugin
• #48 Make a generic “update” method to set any cell, module, string or system attribute, not
just temperature and irradiance. This makes calculations faster, and is better “DRY” code.
– https://github.com/SunPower/PVMismatch/issues/48
– delay calculation of cell IV curve so multiple cell attributes can be updated simultaneously
– EG: if pvcsys = pvsystem.PVsystem() then to change cells in module #1, string #1 …
>>> pvsys.update({0: {0: {'cells': (11, 12, 13), 'Ee': (0.7, 0.5, 0.5),
'Tc': (45, 41, 40.3) , 'Rsh': (9.9, 7, 7.6)}}})
would replace …
>>> pvsys.setSuns(({0: {0: {'cells': (11, 12, 13), 'Ee': (0.7, 0.5, 0.5)}}})
>>> pvsys.setTcell(({0: {0: {'cells': (11, 12, 13), 'Tc': (45, 41, 40.3)}}})
and also change shunt resistance – other update structures too can be used for flexibility
Thank You
Let’s change the way our world is powered.
Copyright | © 2017 SunPower Corporation
12Copyright | © 2017 SunPower Corporation |
Description: 2-diode cell analog
• Photogenerated current is directly proportional to
effective irradiance, E and short circuit current, Isc.
• Short circuit current is linearly proportional to cell
temperature.
• The saturation current of the 1st diode, Isat1, has a
cubic dependence on temperature.
• Bypass diodes are modeled as perfect conductors if
substring voltage is less than a “trigger” voltage.
• Reverse bias uses a quadratic avalanche breakdown
to control the “softness” of the breakdown.
• The full I-V curve is solved explicitly using the method
described by J.W. Bishop in Solar Cells 25 (1988) pp.
73-89
• Memory optimization allows fast calculation of large
systems where the majority of cells are identical.
13Copyright | © 2017 SunPower Corporation |
Deep Dive: Bishop’s Solar 25 1988 explicit method
1. Select a range of Vdiode values, .e.g. -5.5[V] to 0.8[V] with log spacing around breakdown
bend and max power point bends
2. Evaluate corresponding cell currents at given diode voltages
3. Evaluate corresponding cell voltages at given cell currents, Vcell = Vdiode - IcellRs .
4. Evaluate cell power from currents and voltages, P = IcellVcell, and find maximum, requires
sufficient resolution. Interpolate to find Isc and Voc.
5. Rescale currents for series objects and add voltages, rescale voltages for parallel objects
and add currents, to get system attributes.
• Explicit calculations are faster than iterating non-linear because “vectorized” operations are
optimized automatically
• Bishop’s method returns more information about the full IV curve than non-linear
interpolation or W-Lambert
14Copyright | © 2017 SunPower Corporation |
PVMismatch memory management
PVsystem
PVstring_1
PVmod_1_1
PVcell
1_1_1
PVmod_1_1 PVmod_1_M
PVcell
1_1_2
PVcell
1_1_N
…
…
PVstring_L
PVmod_L_1
PVcell
L_M_1
PVmod_L_2 PVmod_L_M
PVcell
L_M_2
PVcell
L_M_N
…
…
PVstring_2 …
<pvmismatch.PVsystem object at 0x11115f610>
<pvmismatch.PVstring object at 0x11115fb90>
<pvmismatch.PVmodule object at 0x11115ffd0>
<pvmismatch.PVcell object at 0x11115ff90>
• At instantiation of a new
system model, PVMismatch
creates three unique
objects in memory.
• All components of a type
point to the same object,
e.g. there are 𝐿 × 𝑀 × 𝑁 PV
cells in the system, but only
a single pvmismatch.PVcell
object in memory
• Copying of objects is done
“on demand”
• For instance, say I want to
set a new irradiance to cells
1_1_1 and 1_1_2. A new
pvmismatch.PVcell object will
be created that shares all
the same parameters of
the existing Pvcell …
15Copyright | © 2017 SunPower Corporation |
PVMismatch memory management
PVsystem
PVstring_1
PVmod_1_1
PVcell
1_1_1
PVmod_1_1 PVmod_1_M
PVcell
1_1_2
PVcell
1_1_N
…
…
PVstring_L
PVmod_L_1
PVcell
L_M_1
PVmod_L_2 PVmod_L_M
PVcell
L_M_2
PVcell
L_M_N
…
…
PVstring_2 …
<pvmismatch.PVsystem object at 0x11115f610>
<pvmismatch.PVstring object at 0x11115fb90>
<pvmismatch.PVmodule object at 0x11115ffd0>
<pvmismatch.PVcell object at 0x11115ff90>
• Set a the irradiance on cells
1_1_1 and 1_1_2 to 0.1 suns.
• A new PVcell object is created to
store the new state variable
• In addition a new PVmodule
object and a new PVstring
object are created because
these objects now have IV
curves that differ from the rest
of the elements in the system
• The memory complexity for a
single “large” system (20 strings,
20 modules per string, 500 cells
per module) would be >10GB if
every element was a unique
object in memory
• This method keeps the
expected memory complexity
for most simulations well under
1MB
<pvmismatch.PVstring object at 0x111136910>
<pvmismatch.PVmodule object at 0x111136690>
<pvmismatch.PVcell object at 0x111136090>

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

05 2017 05-04-clear sky models g-kimball
05 2017 05-04-clear sky models g-kimball05 2017 05-04-clear sky models g-kimball
05 2017 05-04-clear sky models g-kimball
 
12 pvpmc
12 pvpmc12 pvpmc
12 pvpmc
 
18 deceglie modeling and monitoring rtsr
18 deceglie modeling and monitoring rtsr18 deceglie modeling and monitoring rtsr
18 deceglie modeling and monitoring rtsr
 
63 matthiss comparison_of_pv_system_and_irradiation_models
63 matthiss comparison_of_pv_system_and_irradiation_models63 matthiss comparison_of_pv_system_and_irradiation_models
63 matthiss comparison_of_pv_system_and_irradiation_models
 
53 aron p_dobos_recent_and_planned_improvements_to_the_system_advisor_model_sam
53 aron p_dobos_recent_and_planned_improvements_to_the_system_advisor_model_sam53 aron p_dobos_recent_and_planned_improvements_to_the_system_advisor_model_sam
53 aron p_dobos_recent_and_planned_improvements_to_the_system_advisor_model_sam
 
Recent and Planned Improvements to the System Advisor Model
Recent and Planned Improvements to the System Advisor ModelRecent and Planned Improvements to the System Advisor Model
Recent and Planned Improvements to the System Advisor Model
 
Plantpredict: Solar Performance Modeling Made Simple
Plantpredict: Solar Performance Modeling Made SimplePlantpredict: Solar Performance Modeling Made Simple
Plantpredict: Solar Performance Modeling Made Simple
 
Design Optimization using the Latest Features in HelioScope
Design Optimization using the Latest Features in HelioScopeDesign Optimization using the Latest Features in HelioScope
Design Optimization using the Latest Features in HelioScope
 
Data analysis for effective monitoring of partially shaded residential PV system
Data analysis for effective monitoring of partially shaded residential PV systemData analysis for effective monitoring of partially shaded residential PV system
Data analysis for effective monitoring of partially shaded residential PV system
 
33 freeman modelling_energy_losses_due_to_snow_on_pv_systems
33 freeman modelling_energy_losses_due_to_snow_on_pv_systems33 freeman modelling_energy_losses_due_to_snow_on_pv_systems
33 freeman modelling_energy_losses_due_to_snow_on_pv_systems
 
66 ueda system_performance_and_degradation_analysis_of_different_pv_technologies
66 ueda system_performance_and_degradation_analysis_of_different_pv_technologies66 ueda system_performance_and_degradation_analysis_of_different_pv_technologies
66 ueda system_performance_and_degradation_analysis_of_different_pv_technologies
 
4 1 marion_bifacial_2016_workshop
4 1 marion_bifacial_2016_workshop4 1 marion_bifacial_2016_workshop
4 1 marion_bifacial_2016_workshop
 
1 4 epri sandia cuiffi 050916 43
1 4 epri sandia cuiffi 050916 431 4 epri sandia cuiffi 050916 43
1 4 epri sandia cuiffi 050916 43
 
3 4 thevenard-pai epri-sandia 2016-05 presentation
3 4 thevenard-pai epri-sandia 2016-05 presentation3 4 thevenard-pai epri-sandia 2016-05 presentation
3 4 thevenard-pai epri-sandia 2016-05 presentation
 
43 hendrik holst_modelling_of_the_expected_yearly_power_yield_on_building_fac...
43 hendrik holst_modelling_of_the_expected_yearly_power_yield_on_building_fac...43 hendrik holst_modelling_of_the_expected_yearly_power_yield_on_building_fac...
43 hendrik holst_modelling_of_the_expected_yearly_power_yield_on_building_fac...
 
2014 PV Performance Modeling Workshop: Optimizing PV Designs with HelioScope:...
2014 PV Performance Modeling Workshop: Optimizing PV Designs with HelioScope:...2014 PV Performance Modeling Workshop: Optimizing PV Designs with HelioScope:...
2014 PV Performance Modeling Workshop: Optimizing PV Designs with HelioScope:...
 
3 1 wittmer_p_vsyst_pvpmc_2016
3 1 wittmer_p_vsyst_pvpmc_20163 1 wittmer_p_vsyst_pvpmc_2016
3 1 wittmer_p_vsyst_pvpmc_2016
 
54 paul gibbs_helioscope
54 paul gibbs_helioscope54 paul gibbs_helioscope
54 paul gibbs_helioscope
 
55 reinders performance_modelling_of_pv_systems_in_a_virtual_environment
55 reinders performance_modelling_of_pv_systems_in_a_virtual_environment55 reinders performance_modelling_of_pv_systems_in_a_virtual_environment
55 reinders performance_modelling_of_pv_systems_in_a_virtual_environment
 
5 3 freeman pvpmc may 2016
5 3 freeman pvpmc may 20165 3 freeman pvpmc may 2016
5 3 freeman pvpmc may 2016
 

Semelhante a 09 mikoski pv-mismatch_pvpmc-8_20170509_r5

Wanted!: Open M&S Standards and Technologies for the Smart Grid - Introducing...
Wanted!: Open M&S Standards and Technologies for the Smart Grid - Introducing...Wanted!: Open M&S Standards and Technologies for the Smart Grid - Introducing...
Wanted!: Open M&S Standards and Technologies for the Smart Grid - Introducing...
Luigi Vanfretti
 
Model-Simulation-and-Measurement-Based Systems Engineering of Power System Sy...
Model-Simulation-and-Measurement-Based Systems Engineering of Power System Sy...Model-Simulation-and-Measurement-Based Systems Engineering of Power System Sy...
Model-Simulation-and-Measurement-Based Systems Engineering of Power System Sy...
Luigi Vanfretti
 
Saptashwa_Mitra_Sitakanta_Mishra_Final_Project_Report
Saptashwa_Mitra_Sitakanta_Mishra_Final_Project_ReportSaptashwa_Mitra_Sitakanta_Mishra_Final_Project_Report
Saptashwa_Mitra_Sitakanta_Mishra_Final_Project_Report
Sitakanta Mishra
 

Semelhante a 09 mikoski pv-mismatch_pvpmc-8_20170509_r5 (20)

How HPC and large-scale data analytics are transforming experimental science
How HPC and large-scale data analytics are transforming experimental scienceHow HPC and large-scale data analytics are transforming experimental science
How HPC and large-scale data analytics are transforming experimental science
 
Wanted!: Open M&S Standards and Technologies for the Smart Grid - Introducing...
Wanted!: Open M&S Standards and Technologies for the Smart Grid - Introducing...Wanted!: Open M&S Standards and Technologies for the Smart Grid - Introducing...
Wanted!: Open M&S Standards and Technologies for the Smart Grid - Introducing...
 
JAVA 2013 IEEE NETWORKING PROJECT Harvesting aware energy management for time...
JAVA 2013 IEEE NETWORKING PROJECT Harvesting aware energy management for time...JAVA 2013 IEEE NETWORKING PROJECT Harvesting aware energy management for time...
JAVA 2013 IEEE NETWORKING PROJECT Harvesting aware energy management for time...
 
Harvesting aware energy management for time-critical wireless sensor networks
Harvesting aware energy management for time-critical wireless sensor networksHarvesting aware energy management for time-critical wireless sensor networks
Harvesting aware energy management for time-critical wireless sensor networks
 
Overview of DuraMat software tool development
Overview of DuraMat software tool developmentOverview of DuraMat software tool development
Overview of DuraMat software tool development
 
Monitoring of Transmission and Distribution Grids using PMUs
Monitoring of Transmission and Distribution Grids using PMUsMonitoring of Transmission and Distribution Grids using PMUs
Monitoring of Transmission and Distribution Grids using PMUs
 
Model-Simulation-and-Measurement-Based Systems Engineering of Power System Sy...
Model-Simulation-and-Measurement-Based Systems Engineering of Power System Sy...Model-Simulation-and-Measurement-Based Systems Engineering of Power System Sy...
Model-Simulation-and-Measurement-Based Systems Engineering of Power System Sy...
 
Parallel Left Ventricle Simulation Using the FEniCS Framework
Parallel Left Ventricle Simulation Using the FEniCS FrameworkParallel Left Ventricle Simulation Using the FEniCS Framework
Parallel Left Ventricle Simulation Using the FEniCS Framework
 
Digital Wave Formulation of Quasi-Static Partial Element Equivalent Circuit M...
Digital Wave Formulation of Quasi-Static Partial Element Equivalent Circuit M...Digital Wave Formulation of Quasi-Static Partial Element Equivalent Circuit M...
Digital Wave Formulation of Quasi-Static Partial Element Equivalent Circuit M...
 
DIGITAL WAVE FORMULATION OF PEEC METHOD (SLIDES)
DIGITAL WAVE FORMULATION OF PEEC METHOD (SLIDES)DIGITAL WAVE FORMULATION OF PEEC METHOD (SLIDES)
DIGITAL WAVE FORMULATION OF PEEC METHOD (SLIDES)
 
Saptashwa_Mitra_Sitakanta_Mishra_Final_Project_Report
Saptashwa_Mitra_Sitakanta_Mishra_Final_Project_ReportSaptashwa_Mitra_Sitakanta_Mishra_Final_Project_Report
Saptashwa_Mitra_Sitakanta_Mishra_Final_Project_Report
 
Scientific
Scientific Scientific
Scientific
 
Co-Simulation Interfacing Capabilities in Device-Level Power Electronic Circu...
Co-Simulation Interfacing Capabilities in Device-Level Power Electronic Circu...Co-Simulation Interfacing Capabilities in Device-Level Power Electronic Circu...
Co-Simulation Interfacing Capabilities in Device-Level Power Electronic Circu...
 
ANFIS Control of Energy Control Center for Distributed Wind and Solar Generat...
ANFIS Control of Energy Control Center for Distributed Wind and Solar Generat...ANFIS Control of Energy Control Center for Distributed Wind and Solar Generat...
ANFIS Control of Energy Control Center for Distributed Wind and Solar Generat...
 
Energy harvesting sensor nodes
Energy harvesting sensor nodes   Energy harvesting sensor nodes
Energy harvesting sensor nodes
 
Threads and Concurrency Identifying Performance Deviations in Thread Pools
Threads and Concurrency Identifying Performance Deviations in Thread PoolsThreads and Concurrency Identifying Performance Deviations in Thread Pools
Threads and Concurrency Identifying Performance Deviations in Thread Pools
 
Neural Architecture Search: Learning How to Learn
Neural Architecture Search: Learning How to LearnNeural Architecture Search: Learning How to Learn
Neural Architecture Search: Learning How to Learn
 
Multi-Node Remote Vitality Charging in Sensor System
Multi-Node Remote Vitality Charging in Sensor SystemMulti-Node Remote Vitality Charging in Sensor System
Multi-Node Remote Vitality Charging in Sensor System
 
QoS Framework for a Multi-stack based Heterogeneous Wireless Sensor Network
QoS Framework for a Multi-stack based Heterogeneous Wireless Sensor Network QoS Framework for a Multi-stack based Heterogeneous Wireless Sensor Network
QoS Framework for a Multi-stack based Heterogeneous Wireless Sensor Network
 
Architecture of Wemlin Hub
Architecture of Wemlin HubArchitecture of Wemlin Hub
Architecture of Wemlin Hub
 

Mais de Sandia National Laboratories: Energy & Climate: Renewables

Mais de Sandia National Laboratories: Energy & Climate: Renewables (20)

M4 sf 18sn010303061 8th us german 020918 lac reduced sand2018-1339r
M4 sf 18sn010303061 8th us german 020918 lac reduced sand2018-1339rM4 sf 18sn010303061 8th us german 020918 lac reduced sand2018-1339r
M4 sf 18sn010303061 8th us german 020918 lac reduced sand2018-1339r
 
Sand2018 0581 o metadata for presentations 011918 lac
Sand2018 0581 o metadata for presentations 011918 lacSand2018 0581 o metadata for presentations 011918 lac
Sand2018 0581 o metadata for presentations 011918 lac
 
11 Testing Shear Strength and Deformation along Discontinuities in Salt
11 Testing Shear Strength and Deformation along Discontinuities in Salt11 Testing Shear Strength and Deformation along Discontinuities in Salt
11 Testing Shear Strength and Deformation along Discontinuities in Salt
 
10 Current status of research in the Joint Project WEIMOS
10 Current status of research in the Joint Project WEIMOS10 Current status of research in the Joint Project WEIMOS
10 Current status of research in the Joint Project WEIMOS
 
26 Current research on deep borehole disposal of nuclear spent fuel and high-...
26 Current research on deep borehole disposal of nuclear spent fuel and high-...26 Current research on deep borehole disposal of nuclear spent fuel and high-...
26 Current research on deep borehole disposal of nuclear spent fuel and high-...
 
25 Basin-Scale Density-Dependent Groundwater Flow Near a Salt Repository
25 Basin-Scale Density-Dependent  Groundwater Flow Near a Salt Repository25 Basin-Scale Density-Dependent  Groundwater Flow Near a Salt Repository
25 Basin-Scale Density-Dependent Groundwater Flow Near a Salt Repository
 
24 Actinide and brine chemistry in salt repositories: Updates from ABC Salt (V)
24 Actinide and brine chemistry in salt repositories: Updates from ABC Salt (V)24 Actinide and brine chemistry in salt repositories: Updates from ABC Salt (V)
24 Actinide and brine chemistry in salt repositories: Updates from ABC Salt (V)
 
23 Sandia’s Salt Design Concept for High Level Waste and Defense Spent Nuclea...
23 Sandia’s Salt Design Concept for High Level Waste and Defense Spent Nuclea...23 Sandia’s Salt Design Concept for High Level Waste and Defense Spent Nuclea...
23 Sandia’s Salt Design Concept for High Level Waste and Defense Spent Nuclea...
 
22 WIPP Future Advancements and Operational Safety
22 WIPP Future Advancements and Operational Safety22 WIPP Future Advancements and Operational Safety
22 WIPP Future Advancements and Operational Safety
 
21 WIPP recovery and Operational Safety
21 WIPP recovery and Operational Safety21 WIPP recovery and Operational Safety
21 WIPP recovery and Operational Safety
 
20 EPA Review of DOE’s 2014 Compliance Recertification Application for WIPP
20 EPA Review of DOE’s 2014 Compliance Recertification Application for WIPP20 EPA Review of DOE’s 2014 Compliance Recertification Application for WIPP
20 EPA Review of DOE’s 2014 Compliance Recertification Application for WIPP
 
19 Repository designs in bedded salt, the KOSINA-Project
19 Repository designs in bedded salt, the KOSINA-Project19 Repository designs in bedded salt, the KOSINA-Project
19 Repository designs in bedded salt, the KOSINA-Project
 
18 Interaction between Operational Safety and Long-Term Safety (Project BASEL)
18 Interaction between Operational Safety and Long-Term Safety (Project BASEL)18 Interaction between Operational Safety and Long-Term Safety (Project BASEL)
18 Interaction between Operational Safety and Long-Term Safety (Project BASEL)
 
17 Salt Reconsolidation
17 Salt Reconsolidation17 Salt Reconsolidation
17 Salt Reconsolidation
 
16 Reconsolidation of granular salt (DAEF report)
16 Reconsolidation of granular salt (DAEF report)16 Reconsolidation of granular salt (DAEF report)
16 Reconsolidation of granular salt (DAEF report)
 
15 Outcome of the Repoperm Project
15 Outcome of the Repoperm Project15 Outcome of the Repoperm Project
15 Outcome of the Repoperm Project
 
14 Radiological Consequences Analysis for a HLW Repository in Bedded Salt in ...
14 Radiological Consequences Analysis for a HLW Repository in Bedded Salt in ...14 Radiological Consequences Analysis for a HLW Repository in Bedded Salt in ...
14 Radiological Consequences Analysis for a HLW Repository in Bedded Salt in ...
 
13 "New results of the KOSINA project - Generic geological models / Integrity...
13 "New results of the KOSINA project - Generic geological models / Integrity...13 "New results of the KOSINA project - Generic geological models / Integrity...
13 "New results of the KOSINA project - Generic geological models / Integrity...
 
12 Salt testing: Low deviatoric stress data
12 Salt testing: Low deviatoric stress data12 Salt testing: Low deviatoric stress data
12 Salt testing: Low deviatoric stress data
 
09 Invited Lecture: Salt Creep at Low Deviatoric Stress
09 Invited Lecture: Salt Creep at Low Deviatoric Stress09 Invited Lecture: Salt Creep at Low Deviatoric Stress
09 Invited Lecture: Salt Creep at Low Deviatoric Stress
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

09 mikoski pv-mismatch_pvpmc-8_20170509_r5

  • 1. Copyright | © 2017 SunPower Corporation PVMismatch Free Open Source Software 8th PV PMC Workshop, Albuquerque, NM Bennet E. Meyers and Mark A. Mikofski | May 9th, 2017
  • 2. 2Copyright | © 2017 SunPower Corporation | Agenda • Description • Simple usage • Benefits • Advanced usage • Links to source, documentation and installation • Future work • Questions
  • 3. 3Copyright | © 2017 SunPower Corporation | Description • PVMismatch is … – A free open source software Python package – for modeling both forward and reverse bias current – voltage (I-V) curves – at system, string, module and cell level – using a 2-diode analog. • Future versions will use a backend plugin to allow other cell models like CEC, PVSyst, etc. to be used instead of the default 2-diode model. – Cell, module, string and system constraints are all independent and variable
  • 4. 4Copyright | © 2017 SunPower Corporation | Simple Usage: Rooftop shading Create PV system Set irradiance for entire 2nd string Set irradiance on individual modules in shaded regions of 3rd , 4th, 8th 9th and 10th modules
  • 5. 5Confidential | © 2014 SunPower Corporation | Case Study: Current margin for string with a degraded cell • Determine the current margin for a string of modules with a single degraded cell as a function of the length of the string and the amount of degradation causing the cell to reverse bias. • Given a string of perfectly matched modules, and a single cell degraded by Y proportional to Isc, find the point at which Imp = YIsc, and any increase in Y will cause the degraded cell to go into reverse bias. This is the point at which there are 2 max powers. Repeat for 72, 96 and 128 cell modules in strings with N modules, and plot Y* = 1-Y vs. N. def findY(Y, num_mods, num_cells, return_pvsys=False): pvsys = pvsystem.PVsystem( numberStrs=1, numberMods=num_mods, numberCells=num_cells, pvconst=PVCONST) pvsys.setSuns({0: {0: {'cells': 0, 'Ee': Y}}}) retv = (Y * pvsys.Isc - pvsys.Imp) ** 2 if return_pvsys: retv = (retv, pvsys) return retv
  • 6. 6Copyright | © 2017 SunPower Corporation | PVMismatch harnesses benefits of Python-based research • Easily organize complex simulations through use of classes – Intuitive access to system, module, and cell-level models – Subclassing to create technology-specific simulations (e.g. SPWRPVsystem) • Effortless expansion of functionality through use with extensive Python scientific computing modules – Pandas: organization and statistical analysis of large datasets – Matplotlib/Seaborn: data visualization and exploration – Shapely: geometric approach to shade pattern design • Simple integration with Python’s multiprocessing module for painless parallelization • Perhaps most importantly, it is incredibly easy to model non-uniform irradiance and shade effects at the cell level – Most previous work/research in this area has only modeled the system down to the module level, assuming uniform behavior within each module, ignoring cell-level mismatch and the impact of bypass diodes and other module-level circuit designs – See Bennet’s talk at PVSC 44 this June!
  • 7. 7Copyright | © 2017 SunPower Corporation | Advanced Usage Example: Shade design with Shapely • We can use Shapely, an open source Python package for manipulation and analysis of 2-D geometric objects, to model shade as polygons intersecting with PV system objects. – Bold rectangles are PV modules. Groups of the same color are series-connected strings. Small squares are PV cells. – A Shapely polygon representing the shade from a pipe is overlaid. • Shapely finds the intersections between the shade polygon and the individual cells in the system, from which calculate the irradiance on each cell and use PVMismatch to get the system IV and PV curves.
  • 8. 8Copyright | © 2017 SunPower Corporation | Advanced Case Study: P-Series Shade Performance Model • 219,200 unique shade scenarios, defined programatically • Automatic batching and autosaving of results • ~30 hours of processing time across 24 processors on an OpenStack Linux cluster • Results: – Deep exploration of domain space of system shade response, modeled as a cell level. – Small step-sizes allow for good characterization of highly- nonlinear response regions – Dataset is dense enough to allow for non-linear statistical learning • For more information on background/methodology, see “A Fast Parameterized Model for Predicting PV System Performance under Partial Shade Conditions,” 2016 IEEE 43nd Photovolt. Spec. Conf. PVSC 2016, no. 1, pp. 3173–3178, 2016 Statistical learning from PVMismatch simulation data. Plot of power loss modeled by PVMismatch versus power loss from a non-linear model based on three variables.
  • 9. 9Copyright | © 2017 SunPower Corporation | Links, Source Code, Installation • Documentation: http://sunpower.github.io/PVMismatch/ • Source Code: https://github.com/SunPower/PVMismatch/ – This is a public Git repository hosted by GitHub. Please feel free to fork it and collaborate! • Build status: https://travis-ci.org/SunPower/PVMismatch – Every tagged build is tested by Travis CI and deployed automatically to PyPI and GitHub releases • Issues: https://github.com/SunPower/PVMismatch/issues • Wiki: https://github.com/SunPower/PVMismatch/wiki – Roadmap discussion and user curated content such as tips and tricks. • Installation: https://pypi.python.org/pypi/pvmismatch – You can use pip or conda with SunPower channel. • Bugs reports and contributions are welcome!
  • 10. 10Copyright | © 2017 SunPower Corporation | Future Work • #39 Make cell model a backend “plugin” with documented API so that any continuous IV curve model such as CEC or PVSyst can be used. This makes PVLIB integration possible. – https://github.com/SunPower/PVMismatch/issues/39 – EG: in pvcontstants.py add new attribute like PVcontstants.pvcell_backend = default # any backend plugin • #48 Make a generic “update” method to set any cell, module, string or system attribute, not just temperature and irradiance. This makes calculations faster, and is better “DRY” code. – https://github.com/SunPower/PVMismatch/issues/48 – delay calculation of cell IV curve so multiple cell attributes can be updated simultaneously – EG: if pvcsys = pvsystem.PVsystem() then to change cells in module #1, string #1 … >>> pvsys.update({0: {0: {'cells': (11, 12, 13), 'Ee': (0.7, 0.5, 0.5), 'Tc': (45, 41, 40.3) , 'Rsh': (9.9, 7, 7.6)}}}) would replace … >>> pvsys.setSuns(({0: {0: {'cells': (11, 12, 13), 'Ee': (0.7, 0.5, 0.5)}}}) >>> pvsys.setTcell(({0: {0: {'cells': (11, 12, 13), 'Tc': (45, 41, 40.3)}}}) and also change shunt resistance – other update structures too can be used for flexibility
  • 11. Thank You Let’s change the way our world is powered. Copyright | © 2017 SunPower Corporation
  • 12. 12Copyright | © 2017 SunPower Corporation | Description: 2-diode cell analog • Photogenerated current is directly proportional to effective irradiance, E and short circuit current, Isc. • Short circuit current is linearly proportional to cell temperature. • The saturation current of the 1st diode, Isat1, has a cubic dependence on temperature. • Bypass diodes are modeled as perfect conductors if substring voltage is less than a “trigger” voltage. • Reverse bias uses a quadratic avalanche breakdown to control the “softness” of the breakdown. • The full I-V curve is solved explicitly using the method described by J.W. Bishop in Solar Cells 25 (1988) pp. 73-89 • Memory optimization allows fast calculation of large systems where the majority of cells are identical.
  • 13. 13Copyright | © 2017 SunPower Corporation | Deep Dive: Bishop’s Solar 25 1988 explicit method 1. Select a range of Vdiode values, .e.g. -5.5[V] to 0.8[V] with log spacing around breakdown bend and max power point bends 2. Evaluate corresponding cell currents at given diode voltages 3. Evaluate corresponding cell voltages at given cell currents, Vcell = Vdiode - IcellRs . 4. Evaluate cell power from currents and voltages, P = IcellVcell, and find maximum, requires sufficient resolution. Interpolate to find Isc and Voc. 5. Rescale currents for series objects and add voltages, rescale voltages for parallel objects and add currents, to get system attributes. • Explicit calculations are faster than iterating non-linear because “vectorized” operations are optimized automatically • Bishop’s method returns more information about the full IV curve than non-linear interpolation or W-Lambert
  • 14. 14Copyright | © 2017 SunPower Corporation | PVMismatch memory management PVsystem PVstring_1 PVmod_1_1 PVcell 1_1_1 PVmod_1_1 PVmod_1_M PVcell 1_1_2 PVcell 1_1_N … … PVstring_L PVmod_L_1 PVcell L_M_1 PVmod_L_2 PVmod_L_M PVcell L_M_2 PVcell L_M_N … … PVstring_2 … <pvmismatch.PVsystem object at 0x11115f610> <pvmismatch.PVstring object at 0x11115fb90> <pvmismatch.PVmodule object at 0x11115ffd0> <pvmismatch.PVcell object at 0x11115ff90> • At instantiation of a new system model, PVMismatch creates three unique objects in memory. • All components of a type point to the same object, e.g. there are 𝐿 × 𝑀 × 𝑁 PV cells in the system, but only a single pvmismatch.PVcell object in memory • Copying of objects is done “on demand” • For instance, say I want to set a new irradiance to cells 1_1_1 and 1_1_2. A new pvmismatch.PVcell object will be created that shares all the same parameters of the existing Pvcell …
  • 15. 15Copyright | © 2017 SunPower Corporation | PVMismatch memory management PVsystem PVstring_1 PVmod_1_1 PVcell 1_1_1 PVmod_1_1 PVmod_1_M PVcell 1_1_2 PVcell 1_1_N … … PVstring_L PVmod_L_1 PVcell L_M_1 PVmod_L_2 PVmod_L_M PVcell L_M_2 PVcell L_M_N … … PVstring_2 … <pvmismatch.PVsystem object at 0x11115f610> <pvmismatch.PVstring object at 0x11115fb90> <pvmismatch.PVmodule object at 0x11115ffd0> <pvmismatch.PVcell object at 0x11115ff90> • Set a the irradiance on cells 1_1_1 and 1_1_2 to 0.1 suns. • A new PVcell object is created to store the new state variable • In addition a new PVmodule object and a new PVstring object are created because these objects now have IV curves that differ from the rest of the elements in the system • The memory complexity for a single “large” system (20 strings, 20 modules per string, 500 cells per module) would be >10GB if every element was a unique object in memory • This method keeps the expected memory complexity for most simulations well under 1MB <pvmismatch.PVstring object at 0x111136910> <pvmismatch.PVmodule object at 0x111136690> <pvmismatch.PVcell object at 0x111136090>