Skip to content
Snippets Groups Projects
Unverified Commit 1eb02b4a authored by Etienne Frank's avatar Etienne Frank
Browse files

Iterate over charges

parent bac7f581
Branches
No related tags found
No related merge requests found
import scipy.io
import os
from glob import glob
def convert_matlab_datetime_vector_to_utc(date_vector):
string_time = \
str(int(date_vector[0])) + "-" + \
str(int(date_vector[1])) + "-" + \
str(int(date_vector[2])) + "T" + \
str(int(date_vector[3])) + ":" + \
str(int(date_vector[4])) + ":" + \
str(float(date_vector[5]))
return string_time
def filter_mat(mat, test_type):
return [x for x in mat if x[0][0] == test_type]
def charge_iteration(charge_items):
for item in charge_items:
test_type = item[0][0] # charge impedence discharge
ambiant_temp = item[1][0][0] # temperature: 4 ~24 ~43
datetime = convert_matlab_datetime_vector_to_utc(item[2][0])
voltage_measured = item[3][0][0][0][0] # Battery terminal voltage (Volts)
current_measured = item[3][0][0][1][0] # Battery output current (Amps)
temperature_measured = item[3][0][0][2][0] # Battery temperature (degree C)
current_charge = item[3][0][0][3] # Current measured at charger (Amps)
voltage_charge = item[3][0][0][4] # Voltage measured at charger (Volts)
# MEH
time = item[3][0][0][5] # Time vector for the cycle (secs)
#check size for plotting
if (len(voltage_measured) != len(current_measured) and
len(voltage_measured) != len(temperature_measured) and
len(voltage_measured) != len(voltage_measured) and
len(voltage_measured) != len(current_charge)
):
import sys
sys.exit("ERROR")
def main():
filepaths = [y for x in os.walk("./data/") for y in glob(os.path.join(x[0], '*.mat'))]
for filepath in filepaths:
filename = filepath.split("/")[-1].split(".")[0]
print(filename)
raw_mat = scipy.io.loadmat(filepath)
mat = raw_mat[filename][0][0][0][0]
impedance_items = filter_mat(mat, "impedance")
charge_items = filter_mat(mat, "charge")
discharge_items = filter_mat(mat, "discharge")
charge_iteration(charge_items)
# print(([1][0]))
# print(mat["B0025"][0][0])
# TODO
# for discharge the fields are:
# Voltage_measured: Battery terminal voltage (Volts)
# Current_measured: Battery output current (Amps)
# Temperature_measured: Battery temperature (degree C)
# Current_charge: Current measured at load (Amps)
# Voltage_charge: Voltage measured at load (Volts)
# Time: Time vector for the cycle (secs)
# Capacity: Battery capacity (Ahr) for discharge till 2.7V
# for impedance the fields are:
# Sense_current: Current in sense branch (Amps)
# Battery_current: Current in battery branch (Amps)
# Current_ratio: Ratio of the above currents
# Battery_impedance: Battery impedance (Ohms) computed from raw data
# Rectified_impedance: Calibrated and smoothed battery impedance (Ohms)
# Re: Estimated electrolyte resistance (Ohms)
# Rct: Estimated charge transfer resistance (Ohms)
if __name__ == "__main__":
main()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment