OPEM (Open Source PEM Fuel Cell Simulation Tool)
972
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
| Branch | master | develop |
| CI |
CMD (Windows) or Terminal (UNIX)python -m opem or python3 -m opem (or run OPEM.exe)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 | -- |
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 |
| i_n | Internal current | A |
| i_0 | 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 | -- |
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 | -- |
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 |
Padulles Dynamic Model II
| Input | Description | Unit |
| E0 | No load voltage | V |
| T | Fuel cell temperature | K |
| KH2 | Hydrogen valve constant | kmol.s^(-1).atm^(-1) |
| KH2O | Water valve constant | kmol.s^(-1).atm^(-1) |
| KO2 | Oxygen valve constant | kmol.s^(-1).atm^(-1) |
| tH2 | Hydrogen time constant | s |
| tH2O | Water 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 |
Padulles-Hauer Dynamic Model
| Input | Description | Unit |
| E0 | No load voltage | V |
| T | Fuel cell temperature | K |
| KH2 | Hydrogen valve constant | kmol.s^(-1).atm^(-1) |
| KH2O | Water valve constant | kmol.s^(-1).atm^(-1) |
| KO2 | Oxygen valve constant | kmol.s^(-1).atm^(-1) |
| tH2 | Hydrogen time constant | s |
| tH2O | Water time constant | s |
| tO2 | Oxygen time constant | s |
| t1 | Reformer time constant | s |
| t2 | Reformer time constant | s |
| B | Activation voltage constant | V |
| C | Activation constant parameter | A^(-1) |
| CV | Conversion factor | -- |
| Rint | Fuel cell internal resistance | ohm |
| rho | Hydrogen-Oxygen flow ratio | -- |
| qMethanol | Molar flow of methanol | 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 |
Padulles-Amphlett Dynamic Model
| Input | Description | Unit |
| E0 | No load voltage | V |
| T | Fuel cell temperature | K |
| KH2 | Hydrogen valve constant | kmol.s^(-1).atm^(-1) |
| KH2O | Water valve constant | kmol.s^(-1).atm^(-1) |
| KO2 | Oxygen valve constant | kmol.s^(-1).atm^(-1) |
| tH2 | Hydrogen time constant | s |
| tH2O | Water time constant | s |
| tO2 | Oxygen time constant | s |
| t1 | Reformer time constant | s |
| t2 | Reformer time constant | s |
| 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) |
| CV | Conversion factor | -- |
| rho | Hydrogen-Oxygen flow ratio | -- |
| qMethanol | Molar flow of methanol | 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 |
Chakraborty Dynamic Model
| Input | Description | Unit |
| E0 | No load voltage | V |
| T | Cell operation temperature | K |
| KH2 | Hydrogen valve constant | kmol.s^(-1).atm^(-1) |
| KH2O | Water valve constant | kmol.s^(-1).atm^(-1) |
| KO2 | Oxygen valve constant | kmol.s^(-1).atm^(-1) |
| rho | Hydrogen-Oxygen flow ratio | -- |
| Rint | Fuel cell internal resistance | ohm |
| N0 | Number of cells | -- |
| u | Fuel utilization ratio | -- |
| i-start | Cell operating current start point | A |
| i-step | Cell operating current step | A |
| i-stop | Cell operating current end point | A |
Model_Name folder>>> 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 |
Content type
Image
Digest
Size
96.4 MB
Last updated
over 6 years ago
docker pull ecsim/opem