microsoft / BatteryML

MIT License
480 stars 101 forks source link

Split CycleData into StepData #24

Open fingertap opened 9 months ago

fingertap commented 9 months ago

Currently the BatteryData is split into multiple CycleData, which typically consists of a charging and discharging process. However, in real-world battery tests, the cycles are further split into steps, supporting more features such as different rates, resting, interleaving charging and discharging with the same cycle, etc.

Another advantage of using StageData is that it makes the process that splits the raw electric signals and organize into BatteryData object much easier, as we can operate on the stage level for cycle split. This feature should also help us better address the open issues #14 #15 for incorporating more data.

I will make a PR for this.

fingertap commented 9 months ago

This also renders the CyclingProtocol useless, as after this modification, a CycleData is consist of several StageData, which should be convenient to infer the protocol. Specifications can be added to CycleData's meta data as strings.