Battery data have many interesting properties. One of them is cycles. When we consider the whole range of the data, there are a few of the metrics we are interested in. For example, test net capacity and energy, test cumulative capacity and energy, etc. From these transformed curves, we can obtain some metrics that help us to evaluate the performance of the batteries. More than often, we are interested in cycle based metrics such as cycle charge/discharge capacity/energy, cycle net capacity and energy and so on. This requires us to be able to effectively identify each cycle start time. One way to obtain this information is by analyzing the current data.
The end of a cycle (start of the next cycle) is marked by the end of a charge event. Charge events and discharge events can be easily identified by the sign of the current curve. If the current stays above zero for a period of time, it indicates a discharge event; if the current stays negative for a period of time, it indicates a charge event. It also happens that the current goes up and down crossing zero constantly within a period of time. We don’t want to include any point from the noise as a cycle start time.
Figure 1 shows an example of current data. We can easily notice that there are a few time intervals where the current curve stays positive or negative , significantly away from zero. This provides us information about charge and discharge events of this specific data. In Figure 1, discharge events are marked by purple arrows and charge events are marked by blue arrows. The red arrow points out the noise.
When an event reaches zero, it marks the end of the event. A cycle is counted every time a charge event lasts more than a certain amount of time and it starts when a charge event ends. Figure 2 shows the four cycles identified in this data and the cycle start time is marked by a dashed red line.
The first point is considered to be the start of the first cycle. Cycle 5 starts very late at the end of the data collection process. There isn’t enough information for us to conclude anything. Notice that in order to count a cycle, the charge event must last a certain amount of time. Therefore, not all charge events suggest a new cycle. This explains why no cycle starts around 35k at the end of the charge event because it doesn’t meet the duration requirement.
If we zoom in to the end of cycle 3, we notice that the current curve never actually reaches zero. Instead, it keeps a small distance to zero. By definition, as the current stays positive, the charge event continues. In this case, however, it is more desirable to be considered as the end of cycle 3.
Curve transformations and cycle based metrics
Figure 4 shows the corresponding voltage curve. From the current and voltage curve, we can calculate the power curve (Figure 5).
There are many useful transformations we can apply to the current and power curves to get new time series. Figure 6 are some examples when we consider the data as a whole.
With the information of cycle start times, we can also derive these cycle based time series. It provides a new perspective of the data.
Based on the cycle start times and the new time series we derived, we can get the following cycle based metrics. These will be used for further analysis of the battery data.
d3VIEW workflow
d3VIEW workflow helps users with complex computations and simplify building business process and visualizing the results. It can help save us abundance of time and allow us to think about the problem at hand in a big picture without worrying the details. And there is a large collection of workers that can help with various tasks.
Provided with the current data and voltage data, we are always interested in looking at those curve transformations and cycle based metrics. We can automate this process by building up a workflow. After the workflow is built, we can simply update the input data and run the workflow to update the results. When we put together all the workers, the details on how each computation is performed are taken care of by the rich d3VIEW library of workers. This gives back users the time and we can focus on problem solving procedure. We can set up an advanced workflow that computes all the transformations and metrics we’ve listed. The actual cycle detection job is done by the worker “curve_event_detection_sign_change” (figure 9). It uses current curve as input and returns information on cycles.
Using the cycle information, we plan all the tasks to be done in order to get the curve transformations and metrics. Once we are clear of the procedure, we simply search for specific workers to get the work done. After all the computation is done, the results are collected in the data collector. The curves can be overlaid, viewed and further studied in the Curve Viewer.