OPEM

OPEM : Open Source PEM Cell Simulation Tool - Published in JOSS (2018)

https://github.com/ecsim/opem

Science Score: 93.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 23 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org, zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

chemistry dynamic-analysis electrochemistry fuel-cell opem pem physics physics-simulation python script simulation simulator static-analysis static-analyzer

Keywords from Contributors

mathematics graph-generation accuracy confusion-matrix data-mining deeplearning matrix multiclass-classification statistical-analysis cryptocurrencies
Last synced: 4 months ago · JSON representation

Repository

OPEM (Open Source PEM Fuel Cell Simulation Tool)

Basic Info
  • Host: GitHub
  • Owner: ECSIM
  • License: mit
  • Language: Python
  • Default Branch: master
  • Homepage: http://opem.ecsim.site
  • Size: 17.8 MB
Statistics
  • Stars: 221
  • Watchers: 10
  • Forks: 59
  • Open Issues: 1
  • Releases: 14
Topics
chemistry dynamic-analysis electrochemistry fuel-cell opem pem physics physics-simulation python script simulation simulator static-analysis static-analyzer
Created about 8 years ago · Last pushed 4 months ago
Metadata Files
Readme Changelog Contributing Funding License Code of conduct Authors

README.md


built with Python3 PyPI version Discord Channel

Table of Contents

Overview

Modeling and simulation of proton-exchange membrane fuel cells (PEMFC) may work as a powerful tool in the research & development of renewable energy sources. The Open-Source PEMFC Simulation Tool (OPEM) is a modeling tool for evaluating the performance of proton exchange membrane fuel cells. This package is a combination of models (static/dynamic) that predict the optimum operating parameters of PEMFC. OPEM contained generic models that will accept as input, not only values of the operating variables such as anode and cathode feed gas, pressure and compositions, cell temperature and current density, but also cell parameters including the active area and membrane thickness. In addition, some of the different models of PEMFC that have been proposed in the OPEM, just focus on one particular FC stack, and some others take into account a part or all auxiliaries such as reformers. OPEM is a platform for collaborative development of PEMFC models.

Fig1. OPEM Block Diagram

Open Hub
PyPI Counter
Github Stars
Branch master develop
CI
Code Quality CodeFactor

Usage

Executable

  • Open CMD (Windows) or Terminal (UNIX)
  • Run opem or python -m opem (or run OPEM.exe)
  • Enter PEM cell parameters (or run standard test vectors)

    1. Amphlett Static Model

      Input Description Unit
      T Cell operation temperature K
      PH2 Partial pressure atm
      PO2 Partial pressure atm
      i-start Cell operating current start point A
      i-step Cell operating current step A
      i-stop Cell operating current end point A
      A Active area cm^2
      l Membrane thickness cm
      lambda An adjustable parameter with a min value of 14 and max value of 23 --
      R(*Optional) R-Electronic ohm
      JMax Maximum current density A/(cm^2)
      N Number of single cells --

      • For more information about this model visit here
    2. Larminie-Dicks Static Model

      Input Description Unit
      E0 Fuel cell reversible no loss voltage V
      A The slope of the Tafel line V
      T Cell operation temperature K
      i-start Cell operating current start point A
      i-step Cell operating current step A
      i-stop Cell operating current end point A
      in Internal current A
      i0 Exchange current at which the overvoltage begins to move from zero A
      i_L Limiting current A
      RM The membrane and contact resistances ohm
      N Number of single cells --

      • For more information about this model visit here
    3. Chamberline-Kim Static Model

      Input Description Unit
      E0 Open circuit voltage V
      b Tafel's parameter for the oxygen reduction V
      R Resistance ohm.cm^2
      i-start Cell operating current start point A
      i-step Cell operating current step A
      i-stop Cell operating current end point A
      A Active area cm^2
      m Diffusion's parameters V
      n Diffusion's parameters (A^-1)(cm^2)
      N Number of single cells --

      • For more information about this model visit here
    4. Padulles Dynamic Model I

      Input Description Unit
      E0 No load voltage V
      T Fuel cell temperature K
      KH2 Hydrogen valve constant kmol.s^(-1).atm^(-1)
      KO2 Oxygen valve constant kmol.s^(-1).atm^(-1)
      tH2 Hydrogen time constant s
      tO2 Oxygen time constant s
      B Activation voltage constant V
      C Activation constant parameter A^(-1)
      Rint Fuel cell internal resistance ohm
      rho Hydrogen-Oxygen flow ratio --
      qH2 Molar flow of hydrogen kmol/s
      N0 Number of cells --
      i-start Cell operating current start point A
      i-step Cell operating current step A
      i-stop Cell operating current end point A

      • For more information about this model visit here
5. Padulles Dynamic Model II
    <html>
    <table>
        <tr>
            <td align="center" >Input</td>
            <td align="center">Description</td>
            <td  align="center">Unit</td>
        </tr>
        <tr>
            <td align="center">E0</td>
            <td align="center">No load voltage</td>
            <td align="center">V</td>
        </tr>
        <tr>
            <td align="center">T</td>
            <td align="center">Fuel cell temperature</td>
            <td align="center">K</td>
        </tr>
        <tr>
            <td align="center">KH2</td>
            <td align="center">Hydrogen valve constant</td>
            <td align="center">kmol.s^(-1).atm^(-1)</td>
        </tr>
        <tr>
            <td align="center">KH2O</td>
            <td align="center">Water valve constant</td>
            <td align="center">kmol.s^(-1).atm^(-1)</td>
        </tr>
        <tr>
            <td align="center">KO2</td>
            <td align="center">Oxygen valve constant</td>
            <td align="center">kmol.s^(-1).atm^(-1)</td>
        </tr>
        <tr>
            <td align="center">tH2</td>
            <td align="center">Hydrogen time constant</td>
            <td align="center">s</td>
        </tr>
        <tr>
            <td align="center">tH2O</td>
            <td align="center">Water time constant</td>
            <td align="center">s</td>
        </tr>
        <tr>
            <td align="center">tO2</td>
            <td align="center">Oxygen time constant</td>
            <td align="center">s</td>
        </tr>
        <tr>
            <td align="center">B</td>
            <td align="center">Activation voltage constant</td>
            <td align="center">V</td>
        </tr>
        <tr>
            <td align="center">C</td>
            <td align="center">Activation constant parameter</td>
            <td align="center">A^(-1)</td>
        </tr>
        <tr>
            <td align="center">Rint</td>
            <td align="center">Fuel cell internal resistance</td>
            <td align="center">ohm</td>
        </tr>
        <tr>
            <td align="center">rho</td>
            <td align="center">Hydrogen-Oxygen flow ratio</td>
            <td align="center">--</td>
        </tr>
        <tr>
            <td align="center">qH2</td>
            <td align="center">Molar flow of hydrogen</td>
            <td align="center">kmol/s</td>
        </tr>
        <tr>
            <td align="center">N0</td>
            <td align="center">Number of cells</td>
            <td align="center">--</td>
        </tr>
        <tr>
            <td align="center">i-start</td>
            <td align="center">Cell operating current start point</td>
            <td align="center">A</td>
        </tr>
        <tr>
            <td align="center">i-step</td>
            <td align="center">Cell operating current step</td>
            <td align="center">A</td>
        </tr>
        <tr>
            <td align="center">i-stop</td>
            <td align="center">Cell operating current end point</td>
            <td align="center">A</td>
        </tr>


    </table>
    </html>
    * For more information about this model visit <a href="https://www.ecsim.site/opem/doc/Dynamic/Padulles2.html">here</a>
6. Padulles-Hauer Dynamic Model
    <html>
    <table>
        <tr>
            <td align="center" >Input</td>
            <td align="center">Description</td>
            <td  align="center">Unit</td>
        </tr>
        <tr>
            <td align="center">E0</td>
            <td align="center">No load voltage</td>
            <td align="center">V</td>
        </tr>
        <tr>
            <td align="center">T</td>
            <td align="center">Fuel cell temperature</td>
            <td align="center">K</td>
        </tr>
        <tr>
            <td align="center">KH2</td>
            <td align="center">Hydrogen valve constant</td>
            <td align="center">kmol.s^(-1).atm^(-1)</td>
        </tr>
        <tr>
            <td align="center">KH2O</td>
            <td align="center">Water valve constant</td>
            <td align="center">kmol.s^(-1).atm^(-1)</td>
        </tr>
        <tr>
            <td align="center">KO2</td>
            <td align="center">Oxygen valve constant</td>
            <td align="center">kmol.s^(-1).atm^(-1)</td>
        </tr>
        <tr>
            <td align="center">tH2</td>
            <td align="center">Hydrogen time constant</td>
            <td align="center">s</td>
        </tr>
        <tr>
            <td align="center">tH2O</td>
            <td align="center">Water time constant</td>
            <td align="center">s</td>
        </tr>
        <tr>
            <td align="center">tO2</td>
            <td align="center">Oxygen time constant</td>
            <td align="center">s</td>
        </tr>
        <tr>
            <td align="center">t1</td>
            <td align="center">Reformer time constant</td>
            <td align="center">s</td>
        </tr>
        <tr>
            <td align="center">t2</td>
            <td align="center">Reformer time constant</td>
            <td align="center">s</td>
        </tr>
        <tr>
            <td align="center">B</td>
            <td align="center">Activation voltage constant</td>
            <td align="center">V</td>
        </tr>
        <tr>
            <td align="center">C</td>
            <td align="center">Activation constant parameter</td>
            <td align="center">A^(-1)</td>
        </tr>
        <tr>
            <td align="center">CV</td>
            <td align="center">Conversion factor</td>
            <td align="center">--</td>
        </tr>
        <tr>
            <td align="center">Rint</td>
            <td align="center">Fuel cell internal resistance</td>
            <td align="center">ohm</td>
        </tr>
        <tr>
            <td align="center">rho</td>
            <td align="center">Hydrogen-Oxygen flow ratio</td>
            <td align="center">--</td>
        </tr>
        <tr>
            <td align="center">qMethanol</td>
            <td align="center">Molar flow of methanol</td>
            <td align="center">kmol/s</td>
        </tr>
        <tr>
            <td align="center">N0</td>
            <td align="center">Number of cells</td>
            <td align="center">--</td>
        </tr>
        <tr>
            <td align="center">i-start</td>
            <td align="center">Cell operating current start point</td>
            <td align="center">A</td>
        </tr>
        <tr>
            <td align="center">i-step</td>
            <td align="center">Cell operating current step</td>
            <td align="center">A</td>
        </tr>
        <tr>
            <td align="center">i-stop</td>
            <td align="center">Cell operating current end point</td>
            <td align="center">A</td>
        </tr>


    </table>
    </html>
    * For more information about this model visit <a href="https://www.ecsim.site/opem/doc/Dynamic/Padulles_Hauer.html">here</a>
7. Padulles-Amphlett Dynamic Model
    <html>
    <table>
        <tr>
            <td align="center" >Input</td>
            <td align="center">Description</td>
            <td  align="center">Unit</td>
        </tr>
        <tr>
            <td align="center">E0</td>
            <td align="center">No load voltage</td>
            <td align="center">V</td>
        </tr>
        <tr>
            <td align="center">T</td>
            <td align="center">Fuel cell temperature</td>
            <td align="center">K</td>
        </tr>
        <tr>
            <td align="center">KH2</td>
            <td align="center">Hydrogen valve constant</td>
            <td align="center">kmol.s^(-1).atm^(-1)</td>
        </tr>
        <tr>
            <td align="center">KH2O</td>
            <td align="center">Water valve constant</td>
            <td align="center">kmol.s^(-1).atm^(-1)</td>
        </tr>
        <tr>
            <td align="center">KO2</td>
            <td align="center">Oxygen valve constant</td>
            <td align="center">kmol.s^(-1).atm^(-1)</td>
        </tr>
        <tr>
            <td align="center">tH2</td>
            <td align="center">Hydrogen time constant</td>
            <td align="center">s</td>
        </tr>
        <tr>
            <td align="center">tH2O</td>
            <td align="center">Water time constant</td>
            <td align="center">s</td>
        </tr>
        <tr>
            <td align="center">tO2</td>
            <td align="center">Oxygen time constant</td>
            <td align="center">s</td>
        </tr>
        <tr>
            <td align="center">t1</td>
            <td align="center">Reformer time constant</td>
            <td align="center">s</td>
        </tr>
        <tr>
            <td align="center">t2</td>
            <td align="center">Reformer time constant</td>
            <td align="center">s</td>
        </tr>
        <tr>
            <td align="center">A</td>
            <td align="center">Active area</td>
            <td align="center">cm^2</td>
        </tr>
        <tr>
            <td align="center">l</td>
            <td align="center">Membrane thickness</td>
            <td align="center">cm</td>
        </tr>
        <tr>
            <td align="center">lambda</td>
            <td align="center">An adjustable parameter with a min value of 14 and max value of 23</td>
            <td align="center">--</td>
        </tr>
        <tr>
            <td align="center">R(*Optional)</td>
            <td align="center">R-Electronic</td>
            <td align="center">ohm</td>
        </tr>
        <tr>
            <td align="center">JMax</td>
            <td align="center">Maximum current density</td>
            <td align="center">A/(cm^2)</td>
        </tr>
        <tr>
            <td align="center">CV</td>
            <td align="center">Conversion factor</td>
            <td align="center">--</td>
        </tr>
        <tr>
            <td align="center">rho</td>
            <td align="center">Hydrogen-Oxygen flow ratio</td>
            <td align="center">--</td>
        </tr>
        <tr>
            <td align="center">qMethanol</td>
            <td align="center">Molar flow of methanol</td>
            <td align="center">kmol/s</td>
        </tr>
        <tr>
            <td align="center">N0</td>
            <td align="center">Number of cells</td>
            <td align="center">--</td>
        </tr>
        <tr>
            <td align="center">i-start</td>
            <td align="center">Cell operating current start point</td>
            <td align="center">A</td>
        </tr>
        <tr>
            <td align="center">i-step</td>
            <td align="center">Cell operating current step</td>
            <td align="center">A</td>
        </tr>
        <tr>
            <td align="center">i-stop</td>
            <td align="center">Cell operating current end point</td>
            <td align="center">A</td>
        </tr>
    </table>
    </html>
    * For more information about this model visit <a href="https://www.ecsim.site/opem/doc/Dynamic/Padulles_Amphlett.html">here</a>
8. Chakraborty Dynamic Model
    <html>
    <table>
        <tr>
            <td align="center" >Input</td>
            <td align="center">Description</td>
            <td  align="center">Unit</td>
        </tr>
        <tr>
            <td align="center">E0</td>
            <td align="center">No load voltage</td>
            <td align="center">V</td>
        </tr>
        <tr>
            <td align="center">T</td>
            <td align="center">Cell operation temperature</td>
            <td align="center">K</td>
        </tr>
        <tr>
            <td align="center">KH2</td>
            <td align="center">Hydrogen valve constant</td>
            <td align="center">kmol.s^(-1).atm^(-1)</td>
        </tr>
        <tr>
            <td align="center">KH2O</td>
            <td align="center">Water valve constant</td>
            <td align="center">kmol.s^(-1).atm^(-1)</td>
        </tr>
        <tr>
            <td align="center">KO2</td>
            <td align="center">Oxygen valve constant</td>
            <td align="center">kmol.s^(-1).atm^(-1)</td>
        </tr>
        <tr>
            <td align="center">rho</td>
            <td align="center">Hydrogen-Oxygen flow ratio</td>
            <td align="center">--</td>
        </tr>
        <tr>
            <td align="center">Rint</td>
            <td align="center">Fuel cell internal resistance</td>
            <td align="center">ohm</td>
        </tr>
        <tr>
            <td align="center">N0</td>
            <td align="center">Number of cells</td>
            <td align="center">--</td>
        </tr>
        <tr>
            <td align="center">u</td>
            <td align="center">Fuel utilization ratio</td>
            <td align="center">--</td>
        </tr>
        <tr>
            <td align="center">i-start</td>
            <td align="center">Cell operating current start point</td>
            <td align="center">A</td>
        </tr>
        <tr>
            <td align="center">i-step</td>
            <td align="center">Cell operating current step</td>
            <td align="center">A</td>
        </tr>
        <tr>
            <td align="center">i-stop</td>
            <td align="center">Cell operating current end point</td>
            <td align="center">A</td>
        </tr>
    </table>
    </html>
    * For more information about this model visit <a href="https://www.ecsim.site/opem/doc/Dynamic/Chakraborty.html">here</a>

- Find your reports in `Model_Name` folder          

#### Screen Record
<div align="center">
    <a href="https://asciinema.org/a/170416" target="_blank"><img src="https://asciinema.org/a/170416.png" /></a>
    <p>Screen Record</p>
</div>

Library

  1. Amphlett Static Model pycon >>> from opem.Static.Amphlett import Static_Analysis >>> Test_Vector={"T": 343.15,"PH2": 1,"PO2": 1,"i-start": 0,"i-stop": 75,"i-step": 0.1,"A": 50.6,"l": 0.0178,"lambda": 23,"N": 1,"R": 0,"JMax": 1.5,"Name": "Amphlett_Test"} >>> data=Static_Analysis(InputMethod=Test_Vector,TestMode=True,PrintMode=False,ReportMode=False)
    Key Description Type
    Status Simulation status Bool
    P Power List
    I Cell operating current List
    V FC voltage List
    EFF Efficiency List
    Ph Thermal power List
    V0 Linear-Apx intercept Float
    K Linear-Apx slope Float
    EtaActive Eta activation List
    EtaConc Eta concentration List
    Eta_Ohmic Eta ohmic List
    VE Estimated FC voltage List
- For more information about this model visit <a href="https://www.ecsim.site/opem/doc/Static/Amphlett.html">here</a>
  1. Larminie-Dicks Static Model pycon >>> from opem.Static.Larminie_Dicks import Static_Analysis >>> Test_Vector = {"A": 0.06,"E0": 1.178,"T": 328.15,"RM": 0.0018,"i_0": 0.00654,"i_L": 100.0,"i_n": 0.23,"N": 23,"i-start": 0.1,"i-stop": 98,"i-step": 0.1,"Name": "Larminiee_Test"} >>> data=Static_Analysis(InputMethod=Test_Vector,TestMode=True,PrintMode=False,ReportMode=False)
    Key Description Type
    Status Simulation status Bool
    P Power List
    I Cell operating current List
    V FC voltage List
    EFF Efficiency List
    Ph Thermal power List
    V0 Linear-Apx intercept Float
    K Linear-Apx slope Float
    VE Estimated FC voltage List
- For more information about this model visit <a href="https://www.ecsim.site/opem/doc/Static/Larminie_Dicks.html">here</a>
  1. Chamberline-Kim Static Model pycon >>> from opem.Static.Chamberline_Kim import Static_Analysis >>> Test_Vector = {"A": 50.0,"E0": 0.982,"b": 0.0689,"R": 0.328,"m": 0.000125,"n": 9.45,"N": 1,"i-start": 1,"i-stop": 42.5,"i-step": 0.1,"Name": "Chamberline_Test"} >>> data=Static_Analysis(InputMethod=Test_Vector,TestMode=True,PrintMode=False,ReportMode=False)
    Key Description Type
    Status Simulation status Bool
    P Power List
    I Cell operating current List
    V FC voltage List
    EFF Efficiency List
    Ph Thermal power List
    V0 Linear-Apx intercept Float
    K Linear-Apx slope Float
    VE Estimated FC voltage List
- For more information about this model visit <a href="https://www.ecsim.site/opem/doc/Static/Chamberline_Kim.html">here</a>
  1. Padulles Dynamic Model I pycon >>> from opem.Dynamic.Padulles1 import Dynamic_Analysis >>> Test_Vector = {"T": 343,"E0": 0.6,"N0": 88,"KO2": 0.0000211,"KH2": 0.0000422,"tH2": 3.37,"tO2": 6.74,"B": 0.04777,"C": 0.0136,"Rint": 0.00303,"rho": 1.168,"qH2": 0.0004,"i-start": 0,"i-stop": 100,"i-step": 0.1,"Name": "PadullesI_Test"} >>> data=Dynamic_Analysis(InputMethod=Test_Vector,TestMode=True,PrintMode=False,ReportMode=False)
    Key Description Type
    Status Simulation status Bool
    P Power List
    I Cell operating current List
    V FC voltage List
    EFF Efficiency List
    PO2 Partial pressure List
    PH2 Partial pressure List
    Ph Thermal power List
    V0 Linear-Apx intercept Float
    K Linear-Apx slope Float
    VE Estimated FC voltage List
- For more information about this model visit <a href="https://www.ecsim.site/opem/doc/Dynamic/Padulles1.html">here</a>
  1. Padulles Dynamic Model II pycon >>> from opem.Dynamic.Padulles2 import Dynamic_Analysis >>> Test_Vector = {"T": 343,"E0": 0.6,"N0": 5,"KO2": 0.0000211,"KH2": 0.0000422,"KH2O": 0.000007716,"tH2": 3.37,"tO2": 6.74,"tH2O": 18.418,"B": 0.04777,"C": 0.0136,"Rint": 0.00303,"rho": 1.168,"qH2": 0.0004,"i-start": 0.1,"i-stop": 100,"i-step": 0.1,"Name": "Padulles2_Test"} >>> data=Dynamic_Analysis(InputMethod=Test_Vector,TestMode=True,PrintMode=False,ReportMode=False)
    Key Description Type
    Status Simulation status Bool
    P Power List
    I Cell operating current List
    V FC voltage List
    EFF Efficiency List
    PO2 Partial pressure List
    PH2 Partial pressure List
    PH2O Partial pressure List
    Ph Thermal power List
    V0 Linear-Apx intercept Float
    K Linear-Apx slope Float
    VE Estimated FC voltage List
- For more information about this model visit <a href="https://www.ecsim.site/opem/doc/Dynamic/Padulles2.html">here</a>
  1. Padulles-Hauer Dynamic Model pycon >>> from opem.Dynamic.Padulles_Hauer import Dynamic_Analysis >>> Test_Vector = {"T": 343,"E0": 0.6,"N0": 5,"KO2": 0.0000211,"KH2": 0.0000422,"KH2O": 0.000007716,"tH2": 3.37,"tO2": 6.74,"t1": 2,"t2": 2,"tH2O": 18.418,"B": 0.04777,"C": 0.0136,"Rint": 0.00303,"rho": 1.168,"qMethanol": 0.0002,"CV": 2,"i-start": 0.1,"i-stop": 100,"i-step": 0.1,"Name": "Padulles_Hauer_Test"} >>> data=Dynamic_Analysis(InputMethod=Test_Vector,TestMode=True,PrintMode=False,ReportMode=False)
    Key Description Type
    Status Simulation status Bool
    P Power List
    I Cell operating current List
    V FC voltage List
    EFF Efficiency List
    PO2 Partial pressure List
    PH2 Partial pressure List
    PH2O Partial pressure List
    Ph Thermal power List
    V0 Linear-Apx intercept Float
    K Linear-Apx slope Float
    VE Estimated FC voltage List
- For more information about this model visit <a href="https://www.ecsim.site/opem/doc/Dynamic/Padulles_Hauer.html">here</a>
  1. Padulles-Amphlett Dynamic Model pycon >>> from opem.Dynamic.Padulles_Amphlett import Dynamic_Analysis >>> Test_Vector = {"A": 50.6,"l": 0.0178,"lambda": 23,"JMax": 1.5,"T": 343,"N0": 5,"KO2": 0.0000211,"KH2": 0.0000422,"KH2O": 0.000007716,"tH2": 3.37,"tO2": 6.74,"t1": 2,"t2": 2,"tH2O": 18.418,"rho": 1.168,"qMethanol": 0.0002,"CV": 2,"i-start": 0.1,"i-stop": 75,"i-step": 0.1,"Name": "Padulles_Amphlett_Test"} >>> data=Dynamic_Analysis(InputMethod=Test_Vector,TestMode=True,PrintMode=False,ReportMode=False)
    Key Description Type
    Status Simulation status Bool
    P Power List
    I Cell operating current List
    V FC voltage List
    EFF Efficiency List
    PO2 Partial pressure List
    PH2 Partial pressure List
    PH2O Partial pressure List
    Ph Thermal power List
    V0 Linear-Apx intercept Float
    K Linear-Apx slope Float
    EtaActive Eta activation List
    EtaConc Eta concentration List
    Eta_Ohmic Eta ohmic List
    VE Estimated FC voltage List
- For more information about this model visit <a href="https://www.ecsim.site/opem/doc/Dynamic/Padulles_Amphlett.html">here</a>
  1. Chakraborty Dynamic Model pycon >>> from opem.Dynamic.Chakraborty import Dynamic_Analysis >>> Test_Vector = {"T": 1273,"E0": 0.6,"u":0.8,"N0": 1,"R": 3.28125 * 10**(-3),"KH2O": 0.000281,"KH2": 0.000843,"KO2": 0.00252,"rho": 1.145,"i-start": 0.1,"i-stop": 300,"i-step": 0.1,"Name": "Chakraborty_Test"} >>> data=Dynamic_Analysis(InputMethod=Test_Vector,TestMode=True,PrintMode=False,ReportMode=False)
    Key Description Type
    Status Simulation status Bool
    P Power List
    I Cell operating current List
    V FC voltage List
    EFF Efficiency List
    PO2 Partial pressure List
    PH2 Partial pressure List
    PH2O Partial pressure List
    Ph Thermal power List
    Nernst Gain Nernst Gain List
    Ohmic Loss Ohmic Loss List
    V0 Linear-Apx intercept Float
    K Linear-Apx slope Float
    VE Estimated FC voltage List
- For more information about this model visit <a href="https://www.ecsim.site/opem/doc/Dynamic/Chakraborty.html">here</a>

#### Parameters

1. `TestMode` : Active test mode and get/return data as `dict`, (Default : `False`)
2. `ReportMode` : Generate reports(`.csv`,`.opem`,`.html`) and print result in console, (Default : `True`)
3. `PrintMode` : Control printing in console, (Default : `True`)
4. `Folder` : Reports folder, (Default : `os.getcwd()`)

#### Note

- Return type : `dict`

Telegram Bot

  • Send /start command to OPEM BOT
  • Choose models from menu
  • Send your test vector according to the template
  • Download your results

Try OPEM in Your Browser!

OPEM can be used online in interactive Jupyter Notebooks via the Binder service! Try it out now! :

Binder

  • Check .ipynb files in Documents folder
  • Edit and execute each part of the notes, step by step from the top panel by run button
  • For executing a complete simulation, you can edit Test_Vector in Full Run section

Issues & Bug Reports

Just fill an issue and describe it. We'll check it ASAP!
or send an email to opem@ecsim.site.

You can also join our discord server

Discord Channel

Outputs

  1. HTML
  2. CSV
  3. OPEM

Thanks

Reference

1- J. C. Amphlett, R. M. Baumert, R. F. Mann, B. A. Peppley, and P. R. Roberge. 1995. "Performance Modeling of the Ballard Mark IV Solid Polymer Electrolyte Fuel Cell." J. Electrochem. Soc. (The Electrochemical Society, Inc.) 142 (1): 9-15. doi: 10.1149/1.2043959.
2- Jeferson M. Correa, Felix A. Farret, Vladimir A. Popov, Marcelo G. Simoes. 2005. "Sensitivity Analysis of the Modeling Parameters Used in Simulation of Proton Exchange Membrane Fuel Cells." IEEE Transactions on Energy Conversion (IEEE) 20 (1): 211-218. doi:10.1109/TEC.2004.842382.
3- Junbom Kim, Seong-Min Lee, Supramaniam Srinivasan, Charles E. Chamberlin. 1995. "Modeling of Proton Exchange Membrane Fuel Cell Performance with an Empirical Equation." Journal of The Electrochemical Society (The Electrochemical Society) 142 (8): 2670-2674. doi:10.1149/1.2050072.
4- I. Sadli, P. Thounthong, J.-P. Martin, S. Rael, B. Davat. 2006. "Behaviour of a PEMFC supplying a low voltage static converter." Journal of Power Sources (Elsevier) 156: 119–125. doi:10.1016/j.jpowsour.2005.08.021.
5- J. Padulles, G.W. Ault, J.R. McDonald. 2000. "An integrated SOFC plant dynamic model for power systems simulation." Journal of Power Sources (Elsevier) 86 (1-2): 495-500. doi:10.1016/S0378-7753(99)00430-9.
6- Hauer, K.-H. 2001. "Analysis tool for fuel cell vehicle hardware and software (controls) with an application to fuel economy comparisons of alternative system designs." Ph.D. dissertation, Transportation Technology and Policy, University of California Davis.
7- A. Saadi, M. Becherif, A. Aboubou, M.Y. Ayad. 2013. "Comparison of proton exchange membrane fuel cell static models." Renewable Energy (Elsevier) 56: 64-71. doi:dx.doi.org/10.1016/j.renene.2012.10.012.
8- Diego Feroldi, Marta Basualdo. 2012. "Description of PEM Fuel Cells System." Green Energy and Technology (Springer) 49-72. doi:10.1007/978-1-84996-184-4_2
9- Gottesfeld, Shimshon. n.d. The Polymer Electrolyte Fuel Cell: Materials Issues in a Hydrogen Fueled Power Source. http://physics.oregonstate.edu/~hetheriw/energy/topics/doc/electrochemistry/fc/basic/The_Polymer_Electrolyte_Fuel_Cell.htm
10- Mohamed Becherif, Aïcha Saadi, Daniel Hissel, Abdennacer Aboubou, Mohamed Yacine Ayad. 2011. "Static and dynamic proton exchange membrane fuel cell models." Journal of Hydrocarbons Mines and Environmental Research 2 (1)
11- Larminie, J., Dicks, A., & McDonald, M. S. 2003. Fuel cell systems explained (Vol. 2, pp. 207-225). Chichester, UK: J. Wiley. doi: 10.1002/9781118706992.
12- Rho, Y. W., Srinivasan, S., & Kho, Y. T. 1994. ''Mass transport phenomena in proton exchange membrane fuel cells using o 2/he, o 2/ar, and o 2/n 2 mixtures ii. Theoretical analysis.'' Journal of the Electrochemical Society, 141(8), 2089-2096. doi: 10.1149/1.2055066.
13- U. Chakraborty, A New Model for Constant Fuel Utilization and Constant Fuel Flow in Fuel Cells, Appl. Sci. 9 (2019) 1066. https://doi.org/10.3390/app9061066.

Cite

If you use OPEM in your research , please cite this paper :


@article{Haghighi2018,
  doi = {10.21105/joss.00676},
  url = {https://doi.org/10.21105/joss.00676},
  year  = {2018},
  month = {jul},
  publisher = {The Open Journal},
  volume = {3},
  number = {27},
  pages = {676},
  author = {Sepand Haghighi and Kasra Askari and Sarmin Hamidi and Mohammad Mahdi Rahimi},
  title = {{OPEM} : Open Source {PEM} Cell Simulation Tool},
  journal = {Journal of Open Source Software}
}


Download OPEM.bib(BibTeX Format)

JOSS DOI badge
Zenodo DOI

Show Your Support

Star This Repo

Give a ⭐️ if this project helped you!

Donate to Our Project

If you do like our project and we hope that you do, can you please support us? Our project is not and is never going to be working for profit. We need the money just so we can continue doing what we do ;-) .

OPEM Donation

Owner

  • Name: ECSIM
  • Login: ECSIM
  • Kind: organization
  • Email: info@ecsim.ir
  • Location: Tehran, Iran

Electrochemistry Simulation Tools

JOSS Publication

OPEM : Open Source PEM Cell Simulation Tool
Published
July 22, 2018
Volume 3, Issue 27, Page 676
Authors
Sepand Haghighi ORCID
Sharif University of Technology
Kasra Askari ORCID
Isfahan University of Technology
Sarmin Hamidi ORCID
University of Tehran
Mohammad Mahdi Rahimi ORCID
Amirkabir University of Technology
Editor
Kathryn Huff ORCID
Tags
electrochemistry simulation fuel-cell pem chemistry static-analysis dynamic-analysis

GitHub Events

Total
  • Issues event: 1
  • Watch event: 19
  • Delete event: 9
  • Issue comment event: 8
  • Push event: 11
  • Pull request review event: 9
  • Pull request event: 17
  • Fork event: 2
  • Create event: 8
Last Year
  • Issues event: 1
  • Watch event: 19
  • Delete event: 9
  • Issue comment event: 8
  • Push event: 11
  • Pull request review event: 9
  • Pull request event: 17
  • Fork event: 2
  • Create event: 8

Committers

Last synced: 4 months ago

All Time
  • Total Commits: 1,099
  • Total Committers: 11
  • Avg Commits per committer: 99.909
  • Development Distribution Score (DDS): 0.122
Past Year
  • Commits: 23
  • Committers: 4
  • Avg Commits per committer: 5.75
  • Development Distribution Score (DDS): 0.391
Top Committers
Name Email Commits
sepandhaghighi s****i@y****m 965
pyup-bot g****t@p****o 39
Mohammad Mahdi Rahimi m****6@G****m 31
dependabot-preview[bot] 2****] 20
sadrasabouri s****a@g****m 19
dependabot[bot] 4****] 16
Nicholas Nadeau, P.Eng., AVS n****u 4
Nicholas Nadeau n****u@g****m 2
Nicholas Nadeau n****s@r****m 1
Giovanni Rosa g****3@y****m 1
Kasra Askari 3****i 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 70
  • Total pull requests: 173
  • Average time to close issues: 3 months
  • Average time to close pull requests: 6 days
  • Total issue authors: 7
  • Total pull request authors: 10
  • Average comments per issue: 0.93
  • Average comments per pull request: 0.95
  • Merged pull requests: 146
  • Bot issues: 0
  • Bot pull requests: 49
Past Year
  • Issues: 1
  • Pull requests: 19
  • Average time to close issues: N/A
  • Average time to close pull requests: 1 day
  • Issue authors: 1
  • Pull request authors: 2
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.84
  • Merged pull requests: 17
  • Bot issues: 0
  • Bot pull requests: 8
Top Authors
Issue Authors
  • sepandhaghighi (48)
  • engnadeau (16)
  • DanWBR (2)
  • NGC2023 (1)
  • kasraaskari (1)
  • mahi97 (1)
  • eamanu (1)
Pull Request Authors
  • sepandhaghighi (71)
  • pyup-bot (49)
  • dependabot[bot] (35)
  • dependabot-preview[bot] (20)
  • mahi97 (6)
  • engnadeau (4)
  • sadrasabouri (4)
  • fossabot (1)
  • codacy-badger (1)
  • AHReccese (1)
  • grosa1 (1)
Top Labels
Issue Labels
enhancement (31) bug (8) document (7) test (6) good first issue (1) setup (1) support (1)
Pull Request Labels
dependencies (56) document (32) test (21) enhancement (15) minor (7) python (6) refactoring (3) bug (2) release (2) setup (2) new model (1) support (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 257 last-month
  • Total dependent packages: 1
  • Total dependent repositories: 1
  • Total versions: 14
  • Total maintainers: 1
pypi.org: opem

Open Source PEM Cell Simulation Tool

  • Versions: 14
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 257 Last month
Rankings
Stargazers count: 5.7%
Forks count: 5.8%
Dependent packages count: 7.3%
Average: 12.3%
Downloads: 20.9%
Dependent repos count: 22.1%
Maintainers (1)
Last synced: 4 months ago

Dependencies

.github/workflows/publish.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v1 composite
.github/workflows/test.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
docker/Dockerfile docker
  • ubuntu 16.04 build
dev-requirements.txt pypi
  • art ==5.2 development
  • bandit >=1.5.1 development
  • codecov >=2.0.15 development
  • notebook >=5.2.2 development
  • pydocstyle >=3.0.0 development
  • pytest >=5.1.0 development
  • pytest-cov >=2.6.1 development
  • requests ==2.26.0 development
  • setuptools >=40.8.3 development
  • vulture >=1.0 development
requirements.txt pypi
  • art >0.7
  • requests >=2.20.0
setup.py pypi