Skip to content

Commit 7b8feb8

Browse files
authored
eclab.mpr: Implement Constant Voltage and Constant Current techniques (#188)
* Implement coV and coC * Tests. * Docs update.
1 parent 10b361b commit 7b8feb8

13 files changed

+254
-5
lines changed

docs/source/version.5_2.rst

+3-3
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ Developed in the `ConCat Lab <https://tu.berlin/en/concat>`_ at Technische Unive
1515

1616
New features in ``yadg-5.2`` are:
1717

18-
- Implemented support for merged/appended files in :mod:`~yadg.extractors.eclab.mpr`. Test files taken from the data available at https://zenodo.org/doi/10.5281/zenodo.12165685. Thanks to Arnd Koeppe for bringing the issue up.
19-
- Implemented support for the Modular Potentio technique in :mod:`~yadg.extractors.eclab.mpr`. Thanks to Graham Kimbell and Clea Burgel (from Empa) for providing test data.
20-
18+
- Implemented support for merged/appended files in :mod:`~yadg.extractors.eclab.mpr`. Test files taken from the data available at https://zenodo.org/doi/10.5281/zenodo.12165685. Thanks to Arnd Koeppe from KIT for bringing the issue up.
19+
- Implemented support for the Modular Potentio technique in :mod:`~yadg.extractors.eclab.mpr`. Thanks to Graham Kimbell and Clea Burgel from Empa for providing test data.
20+
- Implemented support for the Constant Current and Constant Voltage techniques in :mod:`~yadg.extractors.eclab.mpr`. Thanks to Carla Terboven from HZB for providing test data.
2121

2222
Other changes in ``yadg-5.2`` are:
2323

src/yadg/extractors/eclab/techniques.py

+77-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"""
2-
**eclabtechniques**: Parameters for implemented techniques.
3-
-----------------------------------------------------------
2+
**techniques**: Parameters for implemented techniques.
3+
------------------------------------------------------
44
55
Implemented techniques:
66
@@ -17,6 +17,8 @@
1717
- PEIS - Potentio Electrochemical Impedance Spectroscopy
1818
- WAIT - Wait
1919
- ZIR - IR compensation (PEIS)
20+
- MP - Modular Potentio
21+
- CoV - Constant Voltage
2022
2123
The module also implements resolution determination for parameters of techniques,
2224
in :func:`get_resolution`.
@@ -1064,6 +1066,77 @@
10641066
)
10651067
]
10661068

1069+
# ~~~~~~~~~~~~~ Constant Voltage ~~~~~~~~~~~~~
1070+
_cov_params_dtypes = [
1071+
(
1072+
np.dtype(
1073+
[
1074+
("tR", "<f4"),
1075+
("dER/dt", "<f4"),
1076+
("dER", "<f4"),
1077+
("dtR", "<f4"),
1078+
("Ei", "<f4"),
1079+
("Ei_vs", "<u4"),
1080+
("ti", "<f4"),
1081+
("Imax", "<f4"),
1082+
("Imax_unit", "|u1"),
1083+
("Imin", "<f4"),
1084+
("Imin_unit", "|u1"),
1085+
("dQM", "<f4"),
1086+
("dQM_unit", "<u4"),
1087+
("record", "|u1"),
1088+
("dI", "<f4"),
1089+
("dI_unit", "|u1"),
1090+
("dQ", "<f4"),
1091+
("dQ_unit", "|u1"),
1092+
("dt", "<f4"),
1093+
("dta", "<f4"),
1094+
("E_range_min", "<f4"),
1095+
("E_range_max", "<f4"),
1096+
("I_range", "|u1"),
1097+
("I_range_min", "|u1"),
1098+
("I_range_max", "|u1"),
1099+
("I_range_init", "|u1"),
1100+
("bandwidth", "|u1"),
1101+
("goto_Ns", "<u4"),
1102+
("nc_cycles", "<u4"),
1103+
]
1104+
),
1105+
{"11.50"},
1106+
)
1107+
]
1108+
1109+
# ~~~~~~~~~~~~~ Constant Current ~~~~~~~~~~~~~
1110+
_coc_params_dtypes = [
1111+
(
1112+
np.dtype(
1113+
[
1114+
("tR", "<f4"),
1115+
("dER/dt", "<f4"),
1116+
("dER", "<f4"),
1117+
("dtR", "<f4"),
1118+
("Is", "<f4"),
1119+
("Is_unit", "|u1"),
1120+
("Is_vs", "|u4"),
1121+
("ts", "<f4"),
1122+
("EM", "<f4"),
1123+
("dQM", "<f4"),
1124+
("dQM_unit", "|u1"),
1125+
("record", "|u1"),
1126+
("dEs", "<f4"),
1127+
("dts", "<f4"),
1128+
("E_range_min", "<f4"),
1129+
("E_range_max", "<f4"),
1130+
("I_range", "|u1"),
1131+
("bandwidth", "|u1"),
1132+
("goto_Ns", "<u4"),
1133+
("nc_cycles", "<u4"),
1134+
]
1135+
),
1136+
{"11.50"},
1137+
)
1138+
]
1139+
10671140

10681141
# Maps the technique byte to its corresponding dtype.
10691142
technique_params_dtypes = {
@@ -1080,6 +1153,8 @@
10801153
0x32: ("ZIR", _zir_params_dtypes),
10811154
0x33: ("CVA", _cva_params_dtypes),
10821155
0x6C: ("LSV", _lsv_params_dtype),
1156+
0x75: ("coV", _cov_params_dtypes),
1157+
0x76: ("coC", _coc_params_dtypes),
10831158
0x77: ("GCPL", _gcpl_params_dtypes),
10841159
0x7F: ("MB", _mb_params_dtypes),
10851160
}

tests/test_x_eclab.py

+2
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ def _datadir(tmpdir, request):
2222
("ca.mpr", "ca.mpt", "en_US"),
2323
("ca.issue_134.mpr", "ca.issue_134.mpt", "en_US"),
2424
("ca.issue_149.mpr", "ca.issue_149.mpt", "de_DE"),
25+
("coc.issue_185.mpr", "coc.issue_185.mpt", "en_US"),
26+
("cov.issue_185.mpr", "cov.issue_185.mpt", "en_US"),
2527
("cp.mpr", "cp.mpt", "en_US"),
2628
("cp.issue_61.mpr", "cp.issue_61.mpt", "en_US"),
2729
("cp.issue_149.mpr", "cp.issue_149.mpt", "de_DE"),

tests/test_x_eclab_mpr.py

+2
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
"ca.mpr",
1212
"ca.issue_134.mpr",
1313
"ca.issue_149.mpr",
14+
"coc.issue_185.mpr",
15+
"cov.issue_185.mpr",
1416
"cp.mpr",
1517
"cp.issue_61.mpr",
1618
"cp.issue_149.mpr",
18 KB
Binary file not shown.
11.9 KB
Binary file not shown.
18 KB
Binary file not shown.
11.7 KB
Binary file not shown.

tests/test_x_eclab_mpt.py

+2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
("ca.mpt", "en_GB"),
1313
("ca.issue_134.mpt", "en_GB"),
1414
("ca.issue_149.mpt", "de_DE"),
15+
("coc.issue_185.mpt", "en_US"),
16+
("cov.issue_185.mpt", "en_US"),
1517
("cp.mpt", "en_GB"),
1618
("cp.issue_61.mpt", "en_GB"),
1719
("cp.issue_149.mpt", "de_DE"),
+80
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
EC-Lab ASCII FILE
2+
Nb header lines : 56
3+
4+
Constant Current
5+
6+
Run on channel : 1 (SN 41593)
7+
User :
8+
CE vs. WE compliance from -10 V to 10 V
9+
Electrode connection : standard
10+
Potential control : Ewe
11+
Ewe ctrl range : min = -2.50 V, max = 2.50 V
12+
Safety Limits :
13+
Do not start on E overload
14+
Acquisition started on : 10/09/2024 13:36:20.501
15+
Loaded Setting File : NONE
16+
Saved on :
17+
File : Dummy_001_02_CstC_C01.mpr
18+
Directory : D:\Data\EC_Lab\20241009_Dummy_Measurement\
19+
Host : 192.168.178.89
20+
Device : SP-150 (SN 1581)
21+
Address : USB
22+
EC-Lab for windows v11.50 (software)
23+
Internet server v11.50 (firmware)
24+
Command interpretor v11.50 (firmware)
25+
Electrode material :
26+
Initial state :
27+
Electrolyte :
28+
Comments :
29+
Electrode surface area : 0.001 cm�
30+
Characteristic mass : 0.001 g
31+
Equivalent Weight : 0.000 g/eq.
32+
Density : 0.000 g/cm3
33+
Volume (V) : 0.001 cm�
34+
Cycle Definition : Charge/Discharge alternance
35+
tR (h:m:s) 0:00:10.0000
36+
dER/dt (mV/h) 0.0
37+
dER (mV) 0.00
38+
dtR (s) 1.0000
39+
Is 10.000
40+
unit Is �A
41+
vs. <None>
42+
ts (h:m:s) 0:01:0.0000
43+
EM (V) pass
44+
dQM 166.667
45+
unit dQM nA.h
46+
record <Ewe>
47+
dEs (mV) 0.00
48+
dts (s) 5.0000
49+
E range min (V) -2.500
50+
E range max (V) 2.500
51+
I Range 10 mA
52+
Bandwidth 5
53+
goto Ns' 0
54+
nc cycles 0
55+
56+
mode ox/red error control changes Ns changes counter inc. time/s control/mA <Ewe/V> I/mA dq/mA.h dQ/mA.h (Q-Qo)/mA.h I Range Ns Q charge/discharge/mA.h half cycle Energy charge/W.h Energy discharge/W.h Capacitance charge/�F Capacitance discharge/�F step time/s Q discharge/mA.h Q charge/mA.h Capacity/mA.h Efficiency/% cycle number P/W
57+
3 1 0 1 0 0 7.004999823038816E+001 0.0000000E+000 2.7996334E-003 0.0000000E+000 0.000000000000000E+000 2.193574110666911E-008 2.193574110666911E-008 14 0 0.000000000000000E+000 0 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.0000000E+000 0.000000000000000E+000 0.0000000E+000
58+
3 1 0 1 0 0 7.104999820512603E+001 0.0000000E+000 2.7689057E-005 0.0000000E+000 0.000000000000000E+000 2.193574110666911E-008 2.193574110666911E-008 14 0 0.000000000000000E+000 0 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.0000000E+000 0.000000000000000E+000 0.0000000E+000
59+
3 1 0 1 0 0 7.204999817986391E+001 0.0000000E+000 6.6496032E-006 0.0000000E+000 0.000000000000000E+000 2.193574110666911E-008 2.193574110666911E-008 14 0 0.000000000000000E+000 0 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.0000000E+000 0.000000000000000E+000 0.0000000E+000
60+
3 1 0 1 0 0 7.304999815460178E+001 0.0000000E+000 4.7553276E-006 0.0000000E+000 0.000000000000000E+000 2.193574110666911E-008 2.193574110666911E-008 14 0 0.000000000000000E+000 0 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.0000000E+000 0.000000000000000E+000 0.0000000E+000
61+
3 1 0 1 0 0 7.404999812933966E+001 0.0000000E+000 5.2823639E-006 0.0000000E+000 0.000000000000000E+000 2.193574110666911E-008 2.193574110666911E-008 14 0 0.000000000000000E+000 0 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.0000000E+000 0.000000000000000E+000 0.0000000E+000
62+
3 1 0 1 0 0 7.504999810407753E+001 0.0000000E+000 7.1346303E-006 0.0000000E+000 0.000000000000000E+000 2.193574110666911E-008 2.193574110666911E-008 14 0 0.000000000000000E+000 0 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.0000000E+000 0.000000000000000E+000 0.0000000E+000
63+
3 1 0 1 0 0 7.604999807881541E+001 0.0000000E+000 8.0015670E-006 0.0000000E+000 0.000000000000000E+000 2.193574110666911E-008 2.193574110666911E-008 14 0 0.000000000000000E+000 0 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.0000000E+000 0.000000000000000E+000 0.0000000E+000
64+
3 1 0 1 0 0 7.704999805355328E+001 0.0000000E+000 1.0426698E-005 0.0000000E+000 0.000000000000000E+000 2.193574110666911E-008 2.193574110666911E-008 14 0 0.000000000000000E+000 0 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.0000000E+000 0.000000000000000E+000 0.0000000E+000
65+
3 1 0 1 0 0 7.804999802829116E+001 0.0000000E+000 8.2383513E-006 0.0000000E+000 0.000000000000000E+000 2.193574110666911E-008 2.193574110666911E-008 14 0 0.000000000000000E+000 0 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.0000000E+000 0.000000000000000E+000 0.0000000E+000
66+
3 1 0 1 0 0 7.904999800302903E+001 0.0000000E+000 6.4548294E-006 0.0000000E+000 0.000000000000000E+000 2.193574110666911E-008 2.193574110666911E-008 14 0 0.000000000000000E+000 0 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.0000000E+000 0.000000000000000E+000 0.0000000E+000
67+
3 1 0 0 0 0 8.004979797777196E+001 1.0000001E-002 2.7853313E-003 0.0000000E+000 0.000000000000000E+000 2.193574110666911E-008 2.193574110666911E-008 11 0 0.000000000000000E+000 0 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.0000000E+000 0.000000000000000E+000 0.0000000E+000
68+
1 1 0 0 0 0 8.004999797776691E+001 1.0000001E-002 1.1801375E-002 7.1624932E-003 3.979162882185645E-010 2.233365739488767E-008 2.233365739488767E-008 11 0 3.979162882185645E-010 0 4.695959366186530E-015 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 8.004999797776691E+001 0.000000000000000E+000 3.979162882185645E-010 3.979162882185645E-010 0.0000000E+000 0.000000000000000E+000 8.4527265E-008
69+
1 1 0 0 0 0 8.504999785145628E+001 1.0000001E-002 6.0750589E-002 1.1742689E-002 1.633020433260956E-005 1.635253799000445E-005 1.635253799000445E-005 11 0 1.633060224889777E-005 0 9.920742239762448E-010 0.000000000000000E+000 1.201044223003425E+003 0.000000000000000E+000 8.504999785145628E+001 0.000000000000000E+000 1.633060224889777E-005 1.633060224889777E-005 0.0000000E+000 0.000000000000000E+000 7.1337524E-007
70+
1 1 0 0 0 0 9.004999772514566E+001 1.0000001E-002 6.0831778E-002 1.1551847E-002 1.622040689534818E-005 3.257294488535262E-005 3.257294488535262E-005 11 0 3.255100914424596E-005 0 1.978790411272084E-009 0.000000000000000E+000 2.390019885154790E+003 0.000000000000000E+000 9.004999772514566E+001 0.000000000000000E+000 3.255100914424596E-005 3.255100914424596E-005 0.0000000E+000 0.000000000000000E+000 7.0271938E-007
71+
1 1 0 0 0 0 9.504999759883503E+001 1.0000001E-002 6.0908530E-002 1.0979323E-002 1.615890295110229E-005 4.873184783645492E-005 4.873184783645492E-005 11 0 4.870991209534825E-005 0 2.963005434941121E-009 0.000000000000000E+000 3.570878367814556E+003 0.000000000000000E+000 9.504999759883503E+001 0.000000000000000E+000 4.870991209534825E-005 4.870991209534825E-005 0.0000000E+000 0.000000000000000E+000 6.6873440E-007
72+
1 1 0 0 0 0 1.000499974725244E+002 1.0000001E-002 6.1063219E-002 1.1233779E-002 1.617372496695154E-005 6.490557280340646E-005 6.490557280340646E-005 11 0 6.488363706229979E-005 0 3.950625142408938E-009 0.000000000000000E+000 4.741622859443015E+003 0.000000000000000E+000 1.000499974725244E+002 0.000000000000000E+000 6.488363706229979E-005 6.488363706229979E-005 0.0000000E+000 0.000000000000000E+000 6.8597069E-007
73+
1 1 0 0 0 0 1.050499973462138E+002 1.0000001E-002 6.1066717E-002 1.1361006E-002 1.615439343990551E-005 8.105996624331198E-005 8.105996624331198E-005 11 0 8.103803050220530E-005 0 4.937120913446855E-009 0.000000000000000E+000 5.921747621798722E+003 0.000000000000000E+000 1.050499973462138E+002 0.000000000000000E+000 8.103803050220530E-005 8.103803050220530E-005 0.0000000E+000 0.000000000000000E+000 6.9377933E-007
74+
1 1 0 0 0 0 1.100499972199032E+002 1.0000001E-002 6.1097283E-002 1.1042936E-002 1.614706724876952E-005 9.720703349208148E-005 9.720703349208148E-005 11 0 9.718509775097482E-005 0 5.923662849413569E-009 0.000000000000000E+000 7.097269408617773E+003 0.000000000000000E+000 1.100499972199032E+002 0.000000000000000E+000 9.718509775097482E-005 9.718509775097482E-005 0.0000000E+000 0.000000000000000E+000 6.7469335E-007
75+
1 1 0 0 0 0 1.150499970935925E+002 1.0000001E-002 6.1230902E-002 1.2187985E-002 1.615791340167117E-005 1.133649468937527E-004 1.133649468937527E-004 11 0 1.133430111526460E-004 0 6.913026455436878E-009 0.000000000000000E+000 8.254880295884552E+003 0.000000000000000E+000 1.150499970935925E+002 0.000000000000000E+000 1.133430111526460E-004 1.133430111526460E-004 0.0000000E+000 0.000000000000000E+000 7.4628127E-007
76+
1 1 0 0 0 0 1.200499969672819E+002 1.0000001E-002 6.1320059E-002 1.1615461E-002 1.617954916206913E-005 1.295444960558218E-004 1.295444960558218E-004 11 0 1.295225603147151E-004 0 7.905157364671749E-009 0.000000000000000E+000 9.416268723454155E+003 0.000000000000000E+000 1.200499969672819E+002 0.000000000000000E+000 1.295225603147151E-004 1.295225603147151E-004 0.0000000E+000 0.000000000000000E+000 7.1226071E-007
77+
1 1 0 0 0 0 1.250499968409713E+002 1.0000001E-002 6.1369993E-002 1.2124371E-002 1.621003077546548E-005 1.457545268312873E-004 1.457545268312873E-004 11 0 1.457325910901806E-004 0 8.899966836529993E-009 0.000000000000000E+000 1.058406249373966E+004 0.000000000000000E+000 1.250499968409713E+002 0.000000000000000E+000 1.457325910901806E-004 1.457325910901806E-004 0.0000000E+000 0.000000000000000E+000 7.4407257E-007
78+
1 1 0 0 0 0 1.300499967146607E+002 1.0000001E-002 6.1269518E-002 1.2442441E-002 1.620370474048994E-005 1.619582315717772E-004 1.619582315717772E-004 11 0 1.619362958306705E-004 0 9.892760015599140E-009 0.000000000000000E+000 1.178476912058502E+004 0.000000000000000E+000 1.300499967146607E+002 0.000000000000000E+000 1.619362958306705E-004 1.619362958306705E-004 0.0000000E+000 0.000000000000000E+000 7.6234232E-007
79+
1 1 0 0 0 0 1.350499965883500E+002 1.0000001E-002 6.1242804E-002 1.1106550E-002 1.619716312229219E-005 1.781553946940694E-004 1.781553946940694E-004 11 0 1.781334589529627E-004 0 1.088471970093993E-008 0.000000000000000E+000 1.297050856418503E+004 0.000000000000000E+000 1.350499965883500E+002 0.000000000000000E+000 1.781334589529627E-004 1.781334589529627E-004 0.0000000E+000 0.000000000000000E+000 6.8019625E-007
80+
1 1 0 0 0 0 1.400497964620445E+002 1.0000001E-002 6.1097510E-002 1.1233779E-002 1.616237840770433E-005 1.943177731017737E-004 1.943177731017737E-004 11 0 1.942958373606671E-004 0 1.187220077989850E-008 0.000000000000000E+000 1.418904422734404E+004 0.000000000000000E+000 1.400497964620445E+002 0.000000000000000E+000 1.942958373606671E-004 1.942958373606671E-004 0.0000000E+000 0.000000000000000E+000 6.8635592E-007
14.9 KB
Binary file not shown.

0 commit comments

Comments
 (0)