A universal cycling protocol
Project description
Overview
aurora-unicycler defines a universal battery cycling protocol that can be exported to different formats.
See the docs for more details.
Features
- Define a cycling protocol in Python or JSON
- Export the protocol to different formats
- Biologic .mps
- Neware .xml
- tomato 0.2.3 .json
- PyBaMM string list
- BattINFO .jsonld
This is particularly useful for high-throughput battery experiments, as protocols can be programmatically defined, and sample IDs and capacities can be attached at the last second.
Check out our standalone APIs for controlling cyclers with Python or command line:
We also have a full application with a GUI, including a graphical interface to create these protocols:
Installation
Install on Python >3.10 with
pip install aurora-unicycler
Quick start
Define a protocol using Python
from aurora_unicycler import (
ConstantCurrent,
ConstantVoltage,
Loop,
Protocol,
RecordParams,
SafetyParams,
Tag,
)
my_protocol = Protocol(
record = RecordParams(
time_s=10,
voltage_V=0.1,
),
safety = SafetyParams(
max_voltage_V=5,
min_voltage_V=0,
max_current_mA=10,
min_current_mA=-10,
),
method = [
Tag(
tag="my_tag",
),
ConstantCurrent(
rate_C=0.5,
until_voltage_V=4.2,
until_time_s=3*60*60,
),
ConstantVoltage(
voltage_V=4.2,
until_rate_C=0.05,
until_time_s=60*60,
),
ConstantCurrent(
rate_C=-0.5,
until_voltage_V=3.5,
until_time_s=3*60*60,
),
Loop(
loop_to="my_tag",
cycle_count=100,
)
]
)
You can also create a protocol from a python dictionary or JSON - you will not get type checking in an IDE, but it will still validate at runtime.
my_protocol = Protocol.from_dict({
"record": {"time_s": 10, "voltage_V": 0.1}
"safety": {"max_voltage_V": 5}
"method": [
{"step": "open_circuit_voltage", "until_time_s": 1},
{"step": "tag", "tag": "tag1"},
{"step": "constant_current", "rate_C": 0.5, "until_voltage_V": 4.2},
{"step": "constant_voltage", "voltage_V": 4.2, "until_rate_C": 0.05},
{"step": "constant_current", "rate_C": -0.5, "until_voltage_V": 3.0},
{"step": "loop", "loop_to": "tag1", "cycle_count": 100},
],
})
my_protocol = Protocol.from_json("path/to/file.json")
You can then export the protocol to different formats, e.g.
my_protocol.to_biologic_mps(
sample_name="test-sample",
capacity_mAh=45,
save_path="some/location/settings.mps",
)
my_protocol.to_neware_xml(
sample_name="test-sample",
capacity_mAh=45,
save_path="some/location/protocol.xml",
)
my_protocol.to_battinfo_jsonld(
capacity_mAh=45,
include_context=True,
save_path="some/location/protocol.jsonld",
)
See the docs for more details and the full API reference.
Contributors
Acknowledgements
This software was developed at the Laboratory of Materials for Energy Conversion at Empa, the Swiss Federal Laboratories for Materials Science and Technology, and supported by funding from the IntelLiGent project from the European Union’s research and innovation program under grant agreement No. 101069765, and from the Swiss State Secretariat for Education, Research, and Innovation (SERI) under contract No. 22.001422.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aurora_unicycler-0.4.3.tar.gz.
File metadata
- Download URL: aurora_unicycler-0.4.3.tar.gz
- Upload date:
- Size: 84.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.32.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89567d882b61307d2cfa569349223b11ba27b1ce8a6cf0afd010353a06bcaf78
|
|
| MD5 |
8a070ad44f9c3d55fa16de1df410b2d9
|
|
| BLAKE2b-256 |
5971919de77af7d1a2b5982ae6a196910ec7b53be86fae98df7a0047794c2919
|
File details
Details for the file aurora_unicycler-0.4.3-py3-none-any.whl.
File metadata
- Download URL: aurora_unicycler-0.4.3-py3-none-any.whl
- Upload date:
- Size: 18.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.32.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
304c9095b6fb761505a5b9543bb918c6f6c70605d8e32e8ba8d3f38e05903958
|
|
| MD5 |
0b6546e2180d39ffacbf9a7c2f016198
|
|
| BLAKE2b-256 |
a52d7c2bde33f9700f6fb436e7599e36dafbfe1b8e66ca714435e81f96dc359b
|