diff --git a/README.md b/README.md index 2355eae..2824290 100644 --- a/README.md +++ b/README.md @@ -78,8 +78,8 @@ Modeling and simulation of proton-exchange membrane fuel cells (PEMFC) may work - 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 +#### 1. Amphlett Static Model @@ -765,617 +765,620 @@ Modeling and simulation of proton-exchange membrane fuel cells (PEMFC) may work - Find your reports in `Model_Name` folder #### Screen Record -
- - - -

Screen Record

-
+
+ + + +

Screen Record

+
### 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) - ``` -
Input
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KeyDescriptionType
StatusSimulation statusBool
PPowerList
ICell operating currentList
VFC voltageList
EFFEfficiencyList
PhThermal powerList
V0Linear-Apx interceptFloat
KLinear-Apx slopeFloat
Eta_ActiveEta activationList
Eta_ConcEta concentrationList
Eta_OhmicEta ohmicList
VEEstimated FC voltageList
+#### 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) + ``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
KeyDescriptionType
StatusSimulation statusBool
PPowerList
ICell operating currentList
VFC voltageList
EFFEfficiencyList
PhThermal powerList
V0Linear-Apx interceptFloat
KLinear-Apx slopeFloat
Eta_ActiveEta activationList
Eta_ConcEta concentrationList
Eta_OhmicEta ohmicList
VEEstimated FC voltageList
- - For more information about this model visit here +* For more information about this model visit here + #### 2. 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) - ``` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KeyDescriptionType
StatusSimulation statusBool
PPowerList
ICell operating currentList
VFC voltageList
EFFEfficiencyList
PhThermal powerList
V0Linear-Apx interceptFloat
KLinear-Apx slopeFloat
VEEstimated FC voltageList
+```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) +``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
KeyDescriptionType
StatusSimulation statusBool
PPowerList
ICell operating currentList
VFC voltageList
EFFEfficiencyList
PhThermal powerList
V0Linear-Apx interceptFloat
KLinear-Apx slopeFloat
VEEstimated FC voltageList
- - For more information about this model visit here +* For more information about this model visit here + #### 3. 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) - ``` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KeyDescriptionType
StatusSimulation statusBool
PPowerList
ICell operating currentList
VFC voltageList
EFFEfficiencyList
PhThermal powerList
V0Linear-Apx interceptFloat
KLinear-Apx slopeFloat
VEEstimated FC voltageList
+```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) +``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
KeyDescriptionType
StatusSimulation statusBool
PPowerList
ICell operating currentList
VFC voltageList
EFFEfficiencyList
PhThermal powerList
V0Linear-Apx interceptFloat
KLinear-Apx slopeFloat
VEEstimated FC voltageList
- - For more information about this model visit here +* For more information about this model visit here + #### 4. 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) - ``` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KeyDescriptionType
StatusSimulation statusBool
PPowerList
ICell operating currentList
VFC voltageList
EFFEfficiencyList
PO2Partial pressureList
PH2Partial pressureList
PhThermal powerList
V0Linear-Apx interceptFloat
KLinear-Apx slopeFloat
VEEstimated FC voltageList
+```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) +``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
KeyDescriptionType
StatusSimulation statusBool
PPowerList
ICell operating currentList
VFC voltageList
EFFEfficiencyList
PO2Partial pressureList
PH2Partial pressureList
PhThermal powerList
V0Linear-Apx interceptFloat
KLinear-Apx slopeFloat
VEEstimated FC voltageList
- - For more information about this model visit here +* For more information about this model visit here + #### 5. 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) - ``` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KeyDescriptionType
StatusSimulation statusBool
PPowerList
ICell operating currentList
VFC voltageList
EFFEfficiencyList
PO2Partial pressureList
PH2Partial pressureList
PH2OPartial pressureList
PhThermal powerList
V0Linear-Apx interceptFloat
KLinear-Apx slopeFloat
VEEstimated FC voltageList
+```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) +``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
KeyDescriptionType
StatusSimulation statusBool
PPowerList
ICell operating currentList
VFC voltageList
EFFEfficiencyList
PO2Partial pressureList
PH2Partial pressureList
PH2OPartial pressureList
PhThermal powerList
V0Linear-Apx interceptFloat
KLinear-Apx slopeFloat
VEEstimated FC voltageList
- - For more information about this model visit here +* For more information about this model visit here + #### 6. 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) - ``` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KeyDescriptionType
StatusSimulation statusBool
PPowerList
ICell operating currentList
VFC voltageList
EFFEfficiencyList
PO2Partial pressureList
PH2Partial pressureList
PH2OPartial pressureList
PhThermal powerList
V0Linear-Apx interceptFloat
KLinear-Apx slopeFloat
VEEstimated FC voltageList
+```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) +``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
KeyDescriptionType
StatusSimulation statusBool
PPowerList
ICell operating currentList
VFC voltageList
EFFEfficiencyList
PO2Partial pressureList
PH2Partial pressureList
PH2OPartial pressureList
PhThermal powerList
V0Linear-Apx interceptFloat
KLinear-Apx slopeFloat
VEEstimated FC voltageList
- - For more information about this model visit here +* For more information about this model visit here + #### 7. 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) - ``` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KeyDescriptionType
StatusSimulation statusBool
PPowerList
ICell operating currentList
VFC voltageList
EFFEfficiencyList
PO2Partial pressureList
PH2Partial pressureList
PH2OPartial pressureList
PhThermal powerList
V0Linear-Apx interceptFloat
KLinear-Apx slopeFloat
Eta_ActiveEta activationList
Eta_ConcEta concentrationList
Eta_OhmicEta ohmicList
VEEstimated FC voltageList
+```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) +``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
KeyDescriptionType
StatusSimulation statusBool
PPowerList
ICell operating currentList
VFC voltageList
EFFEfficiencyList
PO2Partial pressureList
PH2Partial pressureList
PH2OPartial pressureList
PhThermal powerList
V0Linear-Apx interceptFloat
KLinear-Apx slopeFloat
Eta_ActiveEta activationList
Eta_ConcEta concentrationList
Eta_OhmicEta ohmicList
VEEstimated FC voltageList
- - For more information about this model visit here +* For more information about this model visit here #### 8. 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) - ``` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KeyDescriptionType
StatusSimulation statusBool
PPowerList
ICell operating currentList
VFC voltageList
EFFEfficiencyList
PO2Partial pressureList
PH2Partial pressureList
PH2OPartial pressureList
PhThermal powerList
Nernst GainNernst GainList
Ohmic LossOhmic LossList
V0Linear-Apx interceptFloat
KLinear-Apx slopeFloat
VEEstimated FC voltageList
+```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) +``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
KeyDescriptionType
StatusSimulation statusBool
PPowerList
ICell operating currentList
VFC voltageList
EFFEfficiencyList
PO2Partial pressureList
PH2Partial pressureList
PH2OPartial pressureList
PhThermal powerList
Nernst GainNernst GainList
Ohmic LossOhmic LossList
V0Linear-Apx interceptFloat
KLinear-Apx slopeFloat
VEEstimated FC voltageList
- - For more information about this model visit here - - #### Parameters +* For more information about this model visit here +#### 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 - +#### Note - Return type : `dict`