From 1eb02b4afabd66a2363a37885c2903a328c30a8e Mon Sep 17 00:00:00 2001 From: "etienne.frank" Date: Tue, 1 May 2018 11:58:00 +0200 Subject: [PATCH] Iterate over charges --- explore_data.py | 83 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 explore_data.py diff --git a/explore_data.py b/explore_data.py new file mode 100644 index 0000000..99c03d1 --- /dev/null +++ b/explore_data.py @@ -0,0 +1,83 @@ +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() -- GitLab