Writing a README file#
The PyProBE README format#
README files are important to store alongside your experimental data. The PyProBE
README format is a .yaml
file that contains details about the instructions
provided to the battery cycler used to generate the data. It is then used filter the
procedure into experiments that can be analysed separately.
The README.yaml
contains the following information:
- The name of the experiment
This enables filtering by
'Experiment Name'
with thecell.procedure['Procedure Name'].experiment('Experiment Name')
syntax.
- Steps
This is a list of strings that describe the each step of the experiment. The strings should follow PyBaMM’s Experiment string syntax. There are some instances when two PyBaMM experiment strings must be included in the same step. An example is a CC-CV hold, if the cycler allows you to define this in a single step. In this instance the step description can be written as two PyBaMM Experiment strings separated by a comma, one for the CC part and one for the CV part.
Each step should be given a step number. For a single README file, this should count upwards from 1. These numbers should increase in line with the real step numbers defined by the cycler, i.e. Neware cyclers treat a repeat instruction as its own step. Therefore, where there is a repeat instruction in the cycler procedure, the corresponding step number should be skipped.
- Cycle:
This is a section that provides details on repeats of the provided steps. PyProBE looks for any title containing the string “cycle”, so you can choose any name that includes this or add multiple cycles with different names.
Cycle details must include the keywords “Start”, “End” and “Count”. These identify the first and last steps of the cycle (inclusive) and the number of times it is repeated.
Within a single experiment there is no limit on the number of cycles you can define. If cycles are nested, the outer cycle must be listed before the inner cycle.
The following is an example of a README.yaml
file:
Initial Charge: # Experiment title
Steps: # Steps list, descriptions are PyBaMM experiment strings
1: Rest for 4 hours # Start with index 1
# CC-CV charge provided as two seperate PyBaMM experiment strings
2: Charge at 4mA until 4.2 V, Hold at 4.2 V until 0.04 A
3: Rest for 2 hours
Break-in Cycles:
Steps:
4: Discharge at 4 mA until 3 V
5: Rest for 2 hours
6: Charge at 4 mA until 4.2 V, Hold at 4.2 V until 0.04 A
7: Rest for 2 hours
Cycle: # Cycle instruction, contains start, end and count
Start: 4 # loop starts with step 4 (inclusive)
End: 7 # loop ends with step 7 (inclusive)
Count: 5
Discharge Pulses:
Steps:
# Neware considers cycling (in previous experiment) to be its own step,
# so Step 8 is skipped
9: Rest for 10 seconds
10: Discharge at 20 mA for 0.2 hours or until 3 V
11: Rest for 30 minutes
12: Rest for 1.5 hours
Cycle:
Start: 9
End: 12
Count: 10
Which corresponds to the following Neware procedure file:
The YAML format#
The YAML format is a readable, structured format for data serialization. To identify formatting errors, the YAML VSCode extension is highly recommended.
Shortcuts#
For most experiments, writing a README file should not be too time consuming and provides value by documenting your data in a human readable format.
For testing purposes or if an experiment is particularly cumbersome to write out. You
can instead the Steps
list with Total Steps
, allowing you to provide
just a single number for the total number of steps in the experiment:
# This is the name of the experiment
Break-in Cycles:
# The total number of steps in the experiment
Total Steps: 5
The total steps must include any cycle instruction steps. This is why 5 is provided in the example above, as Break-in Cycles contains 4 listed steps and a cycling step.