Closed ydup closed 3 years ago
ox/red = 1 represents the capacity after fully charge. ox/red = 0 is for the capacity after discharge.
On 30 Nov 2020, at 03:18, Yadong Zhang notifications@github.com wrote:
Hi, what does the 'ox/red' mean in the source data of capacity? And could you please provide the data processing code?
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/YunweiZhang/ML-identify-battery-degradation/issues/2, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKPOBQPTD4WVETL6PHGVZATSSMFH7ANCNFSM4UG7R6RQ.
@YunweiZhang Thanks, I process the discharge capacity curve of the battery 25C05 according to the maximum capacity with ox/red = 0 and draw the figures as follow, And this is the curve of same battery in the Fig.1 of the paper, Identifying degradation patterns of lithium-ion batteries from impedance spectroscopy using machine learning,
Before the capacity degrades to 0.75, two curves are similar but the cycle number is totally different, could you please help? Here is my code,
import pickle
import matplotlib.pyplot as plt
import numpy as np
def sci_to_float(number):
str_temp = number.partition('E')
return float(str_temp[0])*pow(10,int(str_temp[-1]))
def read_q(path='./Q/Data_Capacity_45C01.txt'):
with open(path) as file_in:
lines = file_in.readlines()
data = []
flag_last = '1'
capacity_last = '0E0'
for idx, line in enumerate(lines):
if idx != 0:
temp_list = list(line.split())
capacity_last = temp_list[-1]
status = temp_list[2]
cycle = temp_list[1]
data.append([int(sci_to_float(cycle)), int(status), sci_to_float(capacity_last)])
data = np.array(data)
Q = []
for idx in np.unique(data[:, 0]):
if np.sum((data[:,0]==idx)&(data[:,1]==0)) != 0:
Q.append([idx, np.max(data[(data[:,0]==idx)&(data[:,1]==0), 2])])
Q = np.array(Q)
return Q
data = read_q('./Q/Data_Capacity_25C05.txt')
plt.plot(Q[:, 0], Q[:, 1]/Q[0, 1])
The way you extract the data is ok. Please be notice that we collect the capacity at the even cycles, which means you have to time the cycle number by two! If you do that, you will get the right plot.
On 30 Nov 2020, at 03:38, Yadong Zhang notifications@github.com wrote:
@YunweiZhang https://github.com/YunweiZhang Thanks, I process the discharge capacity curve of the battery 25C05 according to the maximum capacity with ox/red = 0 and draw the figures as follow, https://user-images.githubusercontent.com/43513009/100565691-1d075080-32ff-11eb-96d5-dc9d53d2281c.png And this is the curve of same battery in the Fig.1 of the paper, Identifying degradation patterns of lithium-ion batteries from impedance spectroscopy using machine learning, https://user-images.githubusercontent.com/43513009/100566201-5c826c80-3300-11eb-90d9-c94d2710c959.png Before the capacity degrades to 0.75, two curves are similar but the cycle number is totally different, could you please help? Here is my code,
import pickle import matplotlib.pyplot as plt import numpy as np
def sci_to_float(number): str_temp = number.partition('E') return float(str_temp[0])*pow(10,int(str_temp[-1]))
def read_q(path='./Q/Data_Capacity_45C01.txt'): with open(path) as file_in:
eis = pickle.load(open('.\dataset\EIS data\EIS_state_I_35C01.pkl','rb'))
lines = file_in.readlines() data = [] flag_last = '1' capacity_last = '0E0' for idx, line in enumerate(lines): if idx != 0: temp_list = list(line.split()) capacity_last = temp_list[-1] status = temp_list[2] cycle = temp_list[1] data.append([sci_to_float(cycle), int(status), sci_to_float(capacity_last)]) data = np.array(data) Q = [] for idx in tqdm(np.unique(data[:, 0])): if np.sum((data[:,0]==idx)&(data[:,1]==0)) != 0: Q.append([idx, np.max(data[(data[:,0]==idx)&(data[:,1]==0), 2])]) Q = np.array(Q) return Q
data = read_q('./Q/Data_Capacity_25C05.txt') plt.plot(Q[:, 0], Q[:, 1]/Q[0, 1]) — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/YunweiZhang/ML-identify-battery-degradation/issues/2#issuecomment-735526196, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKPOBQIQMYJHHHR5NSUP4A3SSMHVFANCNFSM4UG7R6RQ.
@YunweiZhang Got it, thanks! And does it mean that we also need to time the cycles of EIS data by two?
Yes, exactly.
On 30 Nov 2020, at 03:48, Yadong Zhang notifications@github.com wrote:
@YunweiZhang Got it, thanks! And does it mean that we also need to time the cycles of EIS data by two?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.
It's so kind of you. Thanks!
Hi, what does the 'ox/red' mean in the source data of capacity? And could you please provide the data processing code?