├── .DS_Store ├── data ├── .DS_Store ├── metadata.pkl ├── all_cells_QLi.mat ├── all_cells_SOH.mat ├── eol_metrics_soh0.9.pkl ├── protocol_features.pkl ├── shap_features_fig4.pkl ├── eol_metrics_soh0.91.pkl ├── eol_metrics_soh0.92.pkl ├── eol_metrics_soh0.93.pkl ├── eol_metrics_soh0.94.pkl ├── eol_metrics_soh0.95.pkl ├── eol_metrics_soh0.96.pkl ├── eol_metrics_soh0.97.pkl ├── eol_metrics_soh0.98.pkl ├── test_set.json ├── diagnostic_features_all.pkl ├── training_set.json ├── soh90.csv └── protocol_features.csv ├── figure4 ├── .DS_Store ├── results_save_fig4 │ ├── err_co2.mat │ ├── err_co5.mat │ ├── err_co10.mat │ ├── err_co16.mat │ ├── matrix_0.9.csv │ ├── matrix_0.91.csv │ ├── matrix_0.92.csv │ ├── matrix_0.93.csv │ ├── matrix_0.94.csv │ ├── matrix_0.95.csv │ ├── matrix_0.96.csv │ ├── matrix_0.97.csv │ └── matrix_0.98.csv ├── figure4h.m ├── figure4f.m ├── fitting4h_co16.m ├── figure4g.m ├── fitting4h_Co2.m ├── fitting4h_Co5.m └── fitting4h_Co10.m ├── results_save ├── .DS_Store ├── matrix_0.91.csv ├── matrix_0.93.csv ├── matrix_0.94.csv ├── matrix_0.96.csv ├── matrix_0.92.csv ├── matrix_0.97.csv ├── matrix_0.9.csv ├── matrix_0.95.csv └── matrix_0.98.csv ├── README.md └── requirements.txt /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geslina/dynamic_cycling_Nature_Energy_2024/HEAD/.DS_Store -------------------------------------------------------------------------------- /data/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geslina/dynamic_cycling_Nature_Energy_2024/HEAD/data/.DS_Store -------------------------------------------------------------------------------- /data/metadata.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geslina/dynamic_cycling_Nature_Energy_2024/HEAD/data/metadata.pkl -------------------------------------------------------------------------------- /figure4/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geslina/dynamic_cycling_Nature_Energy_2024/HEAD/figure4/.DS_Store -------------------------------------------------------------------------------- /data/all_cells_QLi.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geslina/dynamic_cycling_Nature_Energy_2024/HEAD/data/all_cells_QLi.mat -------------------------------------------------------------------------------- /data/all_cells_SOH.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geslina/dynamic_cycling_Nature_Energy_2024/HEAD/data/all_cells_SOH.mat -------------------------------------------------------------------------------- /results_save/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geslina/dynamic_cycling_Nature_Energy_2024/HEAD/results_save/.DS_Store -------------------------------------------------------------------------------- /data/eol_metrics_soh0.9.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geslina/dynamic_cycling_Nature_Energy_2024/HEAD/data/eol_metrics_soh0.9.pkl -------------------------------------------------------------------------------- /data/protocol_features.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geslina/dynamic_cycling_Nature_Energy_2024/HEAD/data/protocol_features.pkl -------------------------------------------------------------------------------- /data/shap_features_fig4.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geslina/dynamic_cycling_Nature_Energy_2024/HEAD/data/shap_features_fig4.pkl -------------------------------------------------------------------------------- /data/eol_metrics_soh0.91.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geslina/dynamic_cycling_Nature_Energy_2024/HEAD/data/eol_metrics_soh0.91.pkl -------------------------------------------------------------------------------- /data/eol_metrics_soh0.92.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geslina/dynamic_cycling_Nature_Energy_2024/HEAD/data/eol_metrics_soh0.92.pkl -------------------------------------------------------------------------------- /data/eol_metrics_soh0.93.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geslina/dynamic_cycling_Nature_Energy_2024/HEAD/data/eol_metrics_soh0.93.pkl -------------------------------------------------------------------------------- /data/eol_metrics_soh0.94.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geslina/dynamic_cycling_Nature_Energy_2024/HEAD/data/eol_metrics_soh0.94.pkl -------------------------------------------------------------------------------- /data/eol_metrics_soh0.95.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geslina/dynamic_cycling_Nature_Energy_2024/HEAD/data/eol_metrics_soh0.95.pkl -------------------------------------------------------------------------------- /data/eol_metrics_soh0.96.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geslina/dynamic_cycling_Nature_Energy_2024/HEAD/data/eol_metrics_soh0.96.pkl -------------------------------------------------------------------------------- /data/eol_metrics_soh0.97.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geslina/dynamic_cycling_Nature_Energy_2024/HEAD/data/eol_metrics_soh0.97.pkl -------------------------------------------------------------------------------- /data/eol_metrics_soh0.98.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geslina/dynamic_cycling_Nature_Energy_2024/HEAD/data/eol_metrics_soh0.98.pkl -------------------------------------------------------------------------------- /data/test_set.json: -------------------------------------------------------------------------------- 1 | ["cell_013", "cell_014", "cell_009", "cell_010", "cell_041", "cell_042", "cell_079", "cell_080", "cell_063", "cell_064"] -------------------------------------------------------------------------------- /data/diagnostic_features_all.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geslina/dynamic_cycling_Nature_Energy_2024/HEAD/data/diagnostic_features_all.pkl -------------------------------------------------------------------------------- /figure4/results_save_fig4/err_co2.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geslina/dynamic_cycling_Nature_Energy_2024/HEAD/figure4/results_save_fig4/err_co2.mat -------------------------------------------------------------------------------- /figure4/results_save_fig4/err_co5.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geslina/dynamic_cycling_Nature_Energy_2024/HEAD/figure4/results_save_fig4/err_co5.mat -------------------------------------------------------------------------------- /figure4/results_save_fig4/err_co10.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geslina/dynamic_cycling_Nature_Energy_2024/HEAD/figure4/results_save_fig4/err_co10.mat -------------------------------------------------------------------------------- /figure4/results_save_fig4/err_co16.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geslina/dynamic_cycling_Nature_Energy_2024/HEAD/figure4/results_save_fig4/err_co16.mat -------------------------------------------------------------------------------- /figure4/results_save_fig4/matrix_0.9.csv: -------------------------------------------------------------------------------- 1 | ,Q_pe,Q_ne,Q_li_cyc,HPPC 50% discharge 0s,HPPC 50% discharge 3s,HPPC 50% discharge 10s 2 | EFCs (with Diagnostic),0.38238350375891605,0.1511398130913489,0.19301714557735505,0.12475764531551681,0.1122609553912349,0.036440936865628236 3 | -------------------------------------------------------------------------------- /figure4/results_save_fig4/matrix_0.91.csv: -------------------------------------------------------------------------------- 1 | ,Q_pe,Q_ne,Q_li_cyc,HPPC 50% discharge 0s,HPPC 50% discharge 3s,HPPC 50% discharge 10s 2 | EFCs (with Diagnostic),0.37635377153357086,0.1546314685653193,0.18939456282850295,0.1372283883801898,0.10908066909953906,0.03331113959287802 3 | -------------------------------------------------------------------------------- /figure4/results_save_fig4/matrix_0.92.csv: -------------------------------------------------------------------------------- 1 | ,Q_pe,Q_ne,Q_li_cyc,HPPC 50% discharge 0s,HPPC 50% discharge 3s,HPPC 50% discharge 10s 2 | EFCs (with Diagnostic),0.382661708392549,0.15384427478356144,0.19507509679397406,0.11977352979351111,0.11479578744327762,0.0338496027931268 3 | -------------------------------------------------------------------------------- /figure4/results_save_fig4/matrix_0.93.csv: -------------------------------------------------------------------------------- 1 | ,Q_pe,Q_ne,Q_li_cyc,HPPC 50% discharge 0s,HPPC 50% discharge 3s,HPPC 50% discharge 10s 2 | EFCs (with Diagnostic),0.3055004595945389,0.12425272162589737,0.2911334429722254,0.1472790981926684,0.09244755782845149,0.03938671978621852 3 | -------------------------------------------------------------------------------- /figure4/results_save_fig4/matrix_0.94.csv: -------------------------------------------------------------------------------- 1 | ,Q_pe,Q_ne,Q_li_cyc,HPPC 50% discharge 0s,HPPC 50% discharge 3s,HPPC 50% discharge 10s 2 | EFCs (with Diagnostic),0.2655702690187391,0.1267846379453865,0.3156681782207956,0.15906170103163655,0.09857919239536875,0.03433602138807351 3 | -------------------------------------------------------------------------------- /figure4/results_save_fig4/matrix_0.95.csv: -------------------------------------------------------------------------------- 1 | ,Q_pe,Q_ne,Q_li_cyc,HPPC 50% discharge 0s,HPPC 50% discharge 3s,HPPC 50% discharge 10s 2 | EFCs (with Diagnostic),0.24833067080684693,0.1238229430120904,0.36653194906112835,0.14302915849697007,0.08071822737254776,0.03756705125041651 3 | -------------------------------------------------------------------------------- /figure4/results_save_fig4/matrix_0.96.csv: -------------------------------------------------------------------------------- 1 | ,Q_pe,Q_ne,Q_li_cyc,HPPC 50% discharge 0s,HPPC 50% discharge 3s,HPPC 50% discharge 10s 2 | EFCs (with Diagnostic),0.2176295687032254,0.1272756313331009,0.41974415556478134,0.12448063609283157,0.07492513754492222,0.035944870761138524 3 | -------------------------------------------------------------------------------- /figure4/results_save_fig4/matrix_0.97.csv: -------------------------------------------------------------------------------- 1 | ,Q_pe,Q_ne,Q_li_cyc,HPPC 50% discharge 0s,HPPC 50% discharge 3s,HPPC 50% discharge 10s 2 | EFCs (with Diagnostic),0.1215537824396839,0.1190827429543621,0.49320922820063906,0.16824318007453715,0.07284490073600285,0.025066165594774953 3 | -------------------------------------------------------------------------------- /figure4/results_save_fig4/matrix_0.98.csv: -------------------------------------------------------------------------------- 1 | ,Q_pe,Q_ne,Q_li_cyc,HPPC 50% discharge 0s,HPPC 50% discharge 3s,HPPC 50% discharge 10s 2 | EFCs (with Diagnostic),0.1483903735412225,0.16190919162385103,0.43782795385996776,0.1512336485714757,0.07906247027578846,0.021576362127694572 3 | -------------------------------------------------------------------------------- /data/training_set.json: -------------------------------------------------------------------------------- 1 | ["cell_007", "cell_008", "cell_023", "cell_024", "cell_015", "cell_016", "cell_003", "cell_004", "cell_019", "cell_020", "cell_011", "cell_012", "cell_005", "cell_006", "cell_021", "cell_022", "cell_055", "cell_056", "cell_017", "cell_095", "cell_096", "cell_025", "cell_026", "cell_033", "cell_034", "cell_027", "cell_028", "cell_043", "cell_044", "cell_035", "cell_036", "cell_029", "cell_030", "cell_046", "cell_037", "cell_038", "cell_031", "cell_032", "cell_047", "cell_048", "cell_039", "cell_040", "cell_049", "cell_050", "cell_053", "cell_054", "cell_051", "cell_052", "cell_091", "cell_092", "cell_059", "cell_060", "cell_061", "cell_062", "cell_071", "cell_072", "cell_065", "cell_066", "cell_069", "cell_070", "cell_067", "cell_068", "cell_073", "cell_074", "cell_077", "cell_078", "cell_075", "cell_076", "cell_081", "cell_082", "cell_085", "cell_086", "cell_084", "cell_087", "cell_088", "cell_057", "cell_058"] -------------------------------------------------------------------------------- /results_save/matrix_0.91.csv: -------------------------------------------------------------------------------- 1 | ,Average Current,Normalized Current Variance,Maximum Discharge Current,Relative Charge Fraction,Rest Fraction at High SOC,Rest SOC,Peak Frequency 1,Peak Frequency 2 2 | EFCs (with Diagnostic),0.2416019814250144,0.12205433968712802,0.20276517633207536,0.0886048837010462,0.1135570971255146,0.08330637213985292,0.09400502728251926,0.05410512230684916 3 | Q_pe,0.15596132794043924,0.133255282258769,0.11397129716275835,0.081426045369609,0.19012515898302823,0.1388670131500693,0.06737538314666469,0.11901849198866224 4 | Q_ne,0.1309004960033636,0.2222935380892886,0.23392829268261206,0.07979541377112694,0.09472002029422648,0.06924249529489807,0.0645040415670933,0.10461570229739102 5 | Q_li_cyc,0.14720514190993111,0.17423380479671102,0.10455107359389297,0.1234929314293666,0.1675031790001307,0.0917966323246825,0.08681692027499346,0.10440031667029158 6 | HPPC 50% discharge 0s,0.16590842092281696,0.102028139061067,0.1188464666852242,0.10251496685169069,0.1033891243026133,0.10479724668116396,0.12158777199655715,0.18092786349886672 7 | HPPC 50% discharge 3s,0.16771615097246667,0.10485552321126441,0.12618757610491463,0.10829397720673307,0.10003076981421626,0.10193755787655474,0.12930623859229556,0.16167220622155462 8 | HPPC 50% discharge 10s,0.15814966866279198,0.1149580470096476,0.13894923078840107,0.11275233867476926,0.09123885907496795,0.103965718073247,0.11445239184341346,0.16553374587276168 9 | -------------------------------------------------------------------------------- /results_save/matrix_0.93.csv: -------------------------------------------------------------------------------- 1 | ,Average Current,Normalized Current Variance,Maximum Discharge Current,Relative Charge Fraction,Rest Fraction at High SOC,Rest SOC,Peak Frequency 1,Peak Frequency 2 2 | EFCs (with Diagnostic),0.2633458404039896,0.13629237933676028,0.13584813433403448,0.06983934955658838,0.1074959661253923,0.10961840562524423,0.09611621346010893,0.0814437111578818 3 | Q_pe,0.14532522732554076,0.11774929829827313,0.09377175911962389,0.07406426422068578,0.24162368785690355,0.12370910171665075,0.07065418282669843,0.13310247863562366 4 | Q_ne,0.13884233765963266,0.2039321057606462,0.1800547318425836,0.08414050673123458,0.1161549698927839,0.08702546888839961,0.06594654950452773,0.12390332972019175 5 | Q_li_cyc,0.14462121172852288,0.1440658783319704,0.10892771246557169,0.09911805935121885,0.2193926008652296,0.10388880495692501,0.07189251921646476,0.1080932130840968 6 | HPPC 50% discharge 0s,0.16053888312240047,0.10458707849495597,0.1423993709402728,0.09893037110165721,0.10395456176439945,0.1022319430547312,0.11148368082945485,0.17587411069212813 7 | HPPC 50% discharge 3s,0.16293493873154438,0.1136932199755563,0.1405953133602874,0.10763033816315469,0.1062977760826983,0.0991308511210684,0.11021723518788963,0.15950032737780087 8 | HPPC 50% discharge 10s,0.1663114220845424,0.11037940120861274,0.15098841081556152,0.10620873238847733,0.0947425149629163,0.09466236506221519,0.11371198867010004,0.16299516480757448 9 | -------------------------------------------------------------------------------- /results_save/matrix_0.94.csv: -------------------------------------------------------------------------------- 1 | ,Average Current,Normalized Current Variance,Maximum Discharge Current,Relative Charge Fraction,Rest Fraction at High SOC,Rest SOC,Peak Frequency 1,Peak Frequency 2 2 | EFCs (with Diagnostic),0.2580011121157333,0.1194699536942708,0.10525410671337795,0.07907763134468292,0.13453207065933873,0.1151259362338603,0.10508730735400487,0.08345188188473125 3 | Q_pe,0.13886958295775645,0.11766493045541818,0.12770881912043783,0.07399330022662569,0.2039945918277546,0.1140617900214049,0.088360566286336,0.13534641910426637 4 | Q_ne,0.13358534999567223,0.172365714153381,0.16555963016630365,0.08036018176857596,0.11288535163669876,0.08397399478339752,0.1341460397540329,0.11712373774193789 5 | Q_li_cyc,0.14742763696373198,0.1210147411696947,0.12145813383844023,0.10710750604018893,0.19126305880444236,0.10202468021151426,0.09468370490858982,0.1150205380633977 6 | HPPC 50% discharge 0s,0.16414301733522155,0.09838253447908196,0.13511633115586455,0.10497028113676811,0.0963283605659408,0.09891897644748397,0.1273794349640366,0.17476106391560248 7 | HPPC 50% discharge 3s,0.17304262518275657,0.119548870658917,0.15081719590348797,0.09613680927015433,0.09677637460759217,0.1123753304737532,0.1057826695761192,0.14552012432721959 8 | HPPC 50% discharge 10s,0.16980801060969725,0.11836508666337854,0.14804991168247106,0.1056913326751779,0.09997682794997263,0.10655121160296048,0.09776624843022916,0.15379137038611299 9 | -------------------------------------------------------------------------------- /results_save/matrix_0.96.csv: -------------------------------------------------------------------------------- 1 | ,Average Current,Normalized Current Variance,Maximum Discharge Current,Relative Charge Fraction,Rest Fraction at High SOC,Rest SOC,Peak Frequency 1,Peak Frequency 2 2 | EFCs (with Diagnostic),0.23095308135724207,0.1527253278246187,0.0789971308823648,0.06856153063841341,0.16771285480907788,0.11670879535403778,0.08429300815255521,0.10004827098169018 3 | Q_pe,0.15141345441657247,0.09863773857724924,0.1873027688153569,0.071341768954982,0.17220329076249147,0.08611722284939649,0.10077959976028433,0.13220415586366716 4 | Q_ne,0.13708995284953648,0.17676994478203556,0.11511070833375722,0.07784944072564601,0.12539956120981383,0.09060861249295607,0.15017872878168617,0.1269930508245686 5 | Q_li_cyc,0.15474520645353806,0.12527442427855967,0.15193105121274167,0.1102495816284742,0.1381762331867212,0.10231765292909664,0.10321044783681055,0.11409540247405804 6 | HPPC 50% discharge 0s,0.20196381663351726,0.11134354406528138,0.11793063277173642,0.0995772116743342,0.08617490705893893,0.11017403515490637,0.11682379887893662,0.15601205376234883 7 | HPPC 50% discharge 3s,0.23022318235349815,0.12114663850871732,0.1252734488091629,0.09134858182872221,0.07747666816335952,0.09723930713880993,0.1209687279158657,0.1363234452818642 8 | HPPC 50% discharge 10s,0.21464644481736758,0.1275718518161419,0.12823692655887733,0.0931965005775673,0.0836571867879372,0.09744277142056443,0.11931647618928809,0.1359318418322562 9 | -------------------------------------------------------------------------------- /results_save/matrix_0.92.csv: -------------------------------------------------------------------------------- 1 | ,Average Current,Normalized Current Variance,Maximum Discharge Current,Relative Charge Fraction,Rest Fraction at High SOC,Rest SOC,Peak Frequency 1,Peak Frequency 2 2 | EFCs (with Diagnostic),0.24254216762104108,0.11794022487535048,0.2117374050255387,0.06357396022052052,0.11847425044558163,0.10512091812675019,0.0782322383488657,0.06237883533635178 3 | Q_pe,0.16522703508534453,0.12016704752935141,0.0937414834506832,0.08622008673290565,0.2163415889207435,0.13089251896643825,0.0643482123226275,0.12306202699190603 4 | Q_ne,0.14352018359310512,0.2157872393355197,0.1893605174503551,0.08277889993719549,0.11664720945048876,0.07251053970185892,0.06418676916111772,0.11520864137035909 5 | Q_li_cyc,0.14771882138638864,0.18387496628300667,0.09354324588825984,0.11297953352267731,0.17666905689436,0.11258287749819176,0.07747109987994961,0.09516039864716612 6 | HPPC 50% discharge 0s,0.1656676195873171,0.10807000557400215,0.12075765426120437,0.1162331708303377,0.09312456092957185,0.10358348751777587,0.12320322438136104,0.16936027691842995 7 | HPPC 50% discharge 3s,0.17468296760505386,0.11198489878586683,0.13561198602784952,0.10397233645488843,0.09310861457716174,0.10548108713221753,0.11595716361005694,0.15920094580690514 8 | HPPC 50% discharge 10s,0.1745831217973652,0.1097651744885419,0.13124136792880065,0.11502304474568187,0.08980543426527694,0.10795364119354325,0.11337199208100238,0.15825622349978777 9 | -------------------------------------------------------------------------------- /results_save/matrix_0.97.csv: -------------------------------------------------------------------------------- 1 | ,Average Current,Normalized Current Variance,Maximum Discharge Current,Relative Charge Fraction,Rest Fraction at High SOC,Rest SOC,Peak Frequency 1,Peak Frequency 2 2 | EFCs (with Diagnostic),0.2618995029617725,0.08627546670369965,0.06516782345917044,0.04609364205057291,0.21497001514649258,0.08772006395805308,0.15335247439396785,0.08452101132627089 3 | Q_pe,0.1552230429796043,0.11152956270181452,0.16577017247500472,0.12194620484671898,0.1535471226713169,0.12051965578156272,0.08920023466035637,0.08226400388362157 4 | Q_ne,0.11498352883237718,0.20015492866715856,0.10006644891347444,0.08562062974674946,0.16084663288153325,0.10852283761388813,0.0935381340724808,0.1362668592723382 5 | Q_li_cyc,0.168055888197875,0.11766874762545917,0.10772808430180504,0.14914990529084085,0.1254642525639064,0.10370361452425841,0.12168678411281991,0.10654272338303514 6 | HPPC 50% discharge 0s,0.19081620619269704,0.11308155054743924,0.12414537473600518,0.1091292240513747,0.10305309713375048,0.0967374540646802,0.11173738992903134,0.15129970334502188 7 | HPPC 50% discharge 3s,0.2100557955958466,0.11896183180374104,0.13314361917627546,0.10068468152389026,0.09380010465691829,0.092525950131293,0.10713775925648056,0.14369025785555473 8 | HPPC 50% discharge 10s,0.20847641092264937,0.12000673228068535,0.1390383931351199,0.09697793003993262,0.08886152592467596,0.0916306131262505,0.10971551240973479,0.14529288216095146 9 | -------------------------------------------------------------------------------- /results_save/matrix_0.9.csv: -------------------------------------------------------------------------------- 1 | ,Average Current,Normalized Current Variance,Maximum Discharge Current,Relative Charge Fraction,Rest Fraction at High SOC,Rest SOC,Peak Frequency 1,Peak Frequency 2 2 | EFCs (with Diagnostic),0.2675833356230635,0.1187228324498046,0.17931613059713325,0.08999577996246909,0.12221645944391357,0.08072262465981916,0.09512805751598767,0.046314779747809114 3 | Q_pe,0.11541221484903526,0.15245157324276729,0.12374625276478231,0.0851600647518654,0.1776018748113406,0.13650027781520366,0.07805942446679183,0.13106831729821375 4 | Q_ne,0.13998278693551158,0.21352305597799287,0.23238207429871896,0.07621953299745718,0.08649100850497399,0.08327789255827243,0.06578777019215494,0.10233587853491803 5 | Q_li_cyc,0.129907730434763,0.17755368813723219,0.1229608388624734,0.12613672782324617,0.13255662416157107,0.08751348917518026,0.11312563099073226,0.11024527041480167 6 | HPPC 50% discharge 0s,0.16703798722196211,0.10265908975187621,0.12665510180587397,0.10651448643953251,0.10522944092134975,0.1012002618258223,0.11743333275569803,0.17327029927788506 7 | HPPC 50% discharge 3s,0.14748384788506008,0.10589281350533566,0.12627307960163614,0.11928398559166098,0.11036475425455988,0.10214177363039269,0.12519782824619324,0.16336191728516128 8 | HPPC 50% discharge 10s,0.15657746444008308,0.11344580319111625,0.13361063766654227,0.11448085283789647,0.11033438005801306,0.10296385195640681,0.12367572570933368,0.14491128414060842 9 | -------------------------------------------------------------------------------- /results_save/matrix_0.95.csv: -------------------------------------------------------------------------------- 1 | ,Average Current,Normalized Current Variance,Maximum Discharge Current,Relative Charge Fraction,Rest Fraction at High SOC,Rest SOC,Peak Frequency 1,Peak Frequency 2 2 | EFCs (with Diagnostic),0.2859636369365987,0.11985251056476931,0.09081081602057903,0.0877507620283881,0.1456955869242903,0.09825356559635502,0.08589051460426969,0.08578260732474988 3 | Q_pe,0.14141646050522733,0.1241200904552492,0.17734435765979015,0.07112325778098169,0.15742334872991187,0.10030763169638499,0.10388240878906797,0.12438244438338679 4 | Q_ne,0.13790879042464863,0.17022122422913946,0.1462721744926885,0.07992824777030584,0.11556265650260253,0.07854897025778895,0.17545509775985516,0.09610283856297093 5 | Q_li_cyc,0.1664736197214113,0.11800595556876883,0.1374336014474241,0.11238354450003589,0.13889719891366994,0.10070282727864745,0.10332408507210204,0.12277916749794045 6 | HPPC 50% discharge 0s,0.17855847437722785,0.10331775300785388,0.14832714047173826,0.10039314435868243,0.09200293209057653,0.10539772506867269,0.11593649431057707,0.15606633631467132 7 | HPPC 50% discharge 3s,0.20201891629584032,0.11675255786881149,0.14772299664005983,0.08203401786295067,0.09052223101137712,0.10928425032764764,0.11084732599868465,0.14081770399462828 8 | HPPC 50% discharge 10s,0.19098002710099268,0.1326651438007578,0.15449842142451198,0.08978438243087275,0.09261558174882475,0.10258435887278945,0.09923273337307081,0.13763935124817978 9 | -------------------------------------------------------------------------------- /results_save/matrix_0.98.csv: -------------------------------------------------------------------------------- 1 | ,Average Current,Normalized Current Variance,Maximum Discharge Current,Relative Charge Fraction,Rest Fraction at High SOC,Rest SOC,Peak Frequency 1,Peak Frequency 2 2 | EFCs (with Diagnostic),0.12239234960904977,0.07515223669210416,0.07944885381743876,0.09746922813035626,0.15603682236700767,0.15083489806862274,0.17570942444389895,0.14295618687152162 3 | Q_pe,0.1465346074948571,0.10490650938437555,0.18826314854265194,0.13013276677815852,0.12524068495104954,0.09953711069290866,0.0974815579146295,0.10790361424136918 4 | Q_ne,0.1333233952148577,0.12565964827645976,0.18372037672456465,0.14811215963260335,0.11440480541867153,0.096670707851438,0.0884624513862673,0.1096464554951378 5 | Q_li_cyc,0.13136524196103622,0.11000844983220755,0.15158121958342266,0.19059303984014167,0.09563601113487286,0.09360476647804346,0.10929526487938564,0.11791600629088997 6 | HPPC 50% discharge 0s,0.21427601296324877,0.11014672096726702,0.14582448067078224,0.10984084706877498,0.11761236207692598,0.09500381567109023,0.09883554318644379,0.10846021739546702 7 | HPPC 50% discharge 3s,0.29724472243029637,0.13668024078557095,0.1214444052672188,0.08426913387100299,0.09555314611178752,0.0817369341725749,0.08826198909974581,0.09480942826180262 8 | HPPC 50% discharge 10s,0.29713851183101664,0.12625947312891214,0.11465619688559342,0.08568780097989183,0.09383314215331687,0.08501006240381223,0.09862179589631818,0.09879301672113869 9 | -------------------------------------------------------------------------------- /figure4/figure4h.m: -------------------------------------------------------------------------------- 1 | clear all 2 | clc 3 | 4 | col0=[240 240 21]/255; % co16 5 | col1=[249, 179, 29]/255; % co10 6 | col2=[238, 81, 1]/255; % co5 7 | col3=[152 0 0]/255; % co2 8 | 9 | 10 | co2=load('./results_save_fig4/err_co2.mat'); 11 | co5=load('./results_save_fig4/err_co5.mat'); 12 | co10=load('./results_save_fig4/err_co10.mat'); 13 | co16=load('./results_save_fig4/err_co16.mat'); 14 | 15 | 16 | 17 | fz=12; 18 | 19 | figure 20 | subplot(2,2,1) 21 | histogram(co2.sum_err) 22 | h = histogram(co2.sum_err, 'FaceColor', col3, 'EdgeColor', 'k','FaceAlpha',1); 23 | ax = gca; 24 | ax.XAxis.Exponent = 0; 25 | xlabel('RMSE of SOH [-]') 26 | ylabel('Count [-]') 27 | set(gca,'linewidth',1,'fontsize',fz,'fontname','Arial'); 28 | 29 | 30 | subplot(2,2,2) 31 | histogram(co5.sum_err) 32 | h = histogram(co5.sum_err, 'FaceColor', col2, 'EdgeColor', 'k'); 33 | ax = gca; 34 | ax.XAxis.Exponent = 0; 35 | xlabel('RMSE of SOH [-]') 36 | ylabel('Count [-]') 37 | set(gca,'linewidth',1,'fontsize',fz,'fontname','Arial'); 38 | 39 | 40 | subplot(2,2,3) 41 | histogram(co10.sum_err) 42 | h = histogram(co10.sum_err, 'FaceColor', col1, 'EdgeColor', 'k'); 43 | ax = gca; 44 | ax.XAxis.Exponent = 0; 45 | xlabel('RMSE of SOH [-]') 46 | ylabel('Count [-]') 47 | set(gca,'linewidth',1,'fontsize',fz,'fontname','Arial'); 48 | 49 | 50 | 51 | subplot(2,2,4) 52 | histogram(co16.sum_err) 53 | h = histogram(co16.sum_err, 'FaceColor', col0, 'EdgeColor', 'k'); 54 | ax = gca; 55 | ax.XAxis.Exponent = 0; 56 | xlabel('RMSE of SOH [-]') 57 | ylabel('Count [-]') 58 | set(gca,'linewidth',1,'fontsize',fz,'fontname','Arial'); 59 | set(gcf,'unit','centimeters','position',[5 5 14 8]) 60 | 61 | -------------------------------------------------------------------------------- /figure4/figure4f.m: -------------------------------------------------------------------------------- 1 | clear all 2 | clc 3 | all_index=1:1:96; 4 | 5 | co16_index=[57,58,63,64]; 6 | co10_index=[55, 56, 3, 4, 5, 6, 7, 8, 25, 26, 27, 28, 29, 30, 31, 32, 49, 50, 59, 60, 71, 72, 65, 66, 73, 74, 81, 82, 79, 80, 91, 92, 95, 96]; 7 | co5_index=[9, 10, 11, 12, 13, 14, 15, 16, 33, 34, 35, 36, 37, 38, 39, 40, 51, 52, 61, 62, 67, 68, 75, 76, 83, 84, 87, 88]; 8 | co2_index=[17, 18, 19, 20, 21, 22, 23, 24, 41, 42, 43, 44, 46, 47, 48, 53, 54, 69, 70, 77, 78, 85, 86]; 9 | 10 | 11 | col0=[240 240 21]/255; % co16 12 | col1=[249, 179, 29]/255; % co10 13 | col2=[238, 81, 1]/255; % co5 14 | col3=[152 0 0]/255; % co2 15 | 16 | soh90=readmatrix('../data/soh90.csv', 'NumHeaderLines', 1); 17 | soh90 = soh90(:,2:end); 18 | soh90=[zeros(2,11);soh90(1:15,:);zeros(1,11);soh90(16:79,:);zeros(1,11);soh90(80:end,:)]; 19 | 20 | feature=csvread('../data/protocol_features.csv',1); 21 | feature=[zeros(2,8);feature(1:15,:);zeros(1,8);feature(16:79,:);zeros(1,8);feature(80:end,:)]; 22 | 23 | figure 24 | scatter(feature(co16_index,5),soh90(co16_index,3),'MarkerEdgeColor', col0, 'MarkerFaceColor', col0,'LineWidth', 2) 25 | hold on 26 | scatter(feature(co10_index,5),soh90(co10_index,3),'MarkerEdgeColor', col1, 'MarkerFaceColor', col1,'LineWidth', 2) 27 | hold on 28 | scatter(feature(co5_index,5),soh90(co5_index,3),'MarkerEdgeColor', col2, 'MarkerFaceColor', col2,'LineWidth', 2) 29 | hold on 30 | scatter(feature(co2_index,5),soh90(co2_index,3),'MarkerEdgeColor', col3, 'MarkerFaceColor', col3,'LineWidth', 2) 31 | 32 | xlim([0.05,1]) 33 | xlabel('Rest fraction at above 60% SOC') 34 | ylabel('Q_{pe}') 35 | box on 36 | set(gca,'linewidth',1,'fontsize',14,'fontname','Arial'); 37 | legend('C/16','C/10','C/5','C/2') 38 | set(gcf,'unit','centimeters','position',[5 5 12 7]) 39 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Data and code necessary to replicate the results in the paper "Dynamic cycling enhances battery lifetime". 2 | 3 | The battery aging dataset is publicly available at https://purl.stanford.edu/td676xr4322 4 | If you make use of this dataset, please cite: 5 | Geslin, A., Xu, L., Ganapathi, D. et al. Dynamic cycling enhances battery lifetime. Nat Energy (2024). https://doi.org/10.1038/s41560-024-01675-8 6 | 7 | I - System requirements 8 | ----- 9 | All the analyses conducted to generate the results have been conducted either in Python or in Matlab. 10 | A- Python (version 3.8 or higher). All necessary python packages required to run the code in a new environment using Jupyter notebooks are specified in requirements.txt. All scripts have been tested on Mac OS Sonoma 14.5, with an Apple M1 Pro chip. 11 | B- Matlab (R2024 version - on Windows 11). 12 | No non-standard hardware is required. 13 | 14 | 15 | II - Installation (if new to Matlab and/or Python): 16 | ----- 17 | A- Python is open source and can be downloaded from https://www.python.org/downloads/ 18 | A virtual environment can be set up with the required packages using the following command lines: 19 | 20 | To create the environment named "test_env" using pip or venv 21 | python3 -m venv test_env 22 | 23 | To activate the environment: 24 | [Windows] test_env\Scripts\activate 25 | [macOS or Linux] source test_env/bin/activate 26 | 27 | Install requirements 28 | pip install -r requirements.txt 29 | 30 | B- Matlab is a commercial software that can be downloaded at: 31 | https://www.mathworks.com/help/install/ 32 | Packages required: Global Optimization Toolbox 33 | 34 | While installation times may vary, Matlab and Python installation should be completed within 1h (within 20min most likely). 35 | 36 | III- Demos and Instructions 37 | ----- 38 | To replicate the analyses performed in the paper, one can run the python ipynb scripts corresponding the the different analyses in the paper, except figure 4f-h which can be replicated by running the Matlab scripts in the figure 4 folder. 39 | Python scripts should execute within a minute, except SHAP analysis runs that can take a few minutes. 40 | The Matlab script should execute within a minute, except the fitting part which could take up to 15min. 41 | 42 | IV- Troubleshooting 43 | ----- 44 | If during the import of xgboost package, an error "You are running 32-bit Python on a 64-bit OS" appears, try installing libomp. 45 | -------------------------------------------------------------------------------- /figure4/fitting4h_co16.m: -------------------------------------------------------------------------------- 1 | % The fitting results may vary slightly with each run due to the use of the PSO algorithm. 2 | clear all 3 | clc 4 | 5 | co16_index = { 6 | 'Cell_057' 7 | 'Cell_058' 8 | 'Cell_063' 9 | 'Cell_064' 10 | }; 11 | 12 | 13 | sum_err=[]; 14 | for totkk=1:1:size(co16_index,1) 15 | 16 | 17 | cell_choose=totkk; 18 | 19 | 20 | data_cell_Qli=load('../data/all_cells_QLi.mat'); 21 | cell_use=eval(['data_cell_Qli.',co16_index{cell_choose}]); 22 | 23 | 24 | data_cell_SOH=load('../data/all_cells_SOH.mat'); 25 | cell_check=eval(['data_cell_SOH.',co16_index{cell_choose}]); 26 | 27 | cutindex=min(find(cell_check(2,:)<0.90)); 28 | QLi_end=cell_check(2,cutindex); 29 | 30 | intx=cell_use(1,1:cutindex); 31 | inty=cell_use(2,1:cutindex); 32 | 33 | 34 | 35 | data.fit_use_EFC=intx; 36 | data.fit_use_Qli=inty; 37 | 38 | 39 | Initial_position=abs(rand(1,4)); 40 | 41 | Upper_bound=[1,Inf,Inf,0.5]; 42 | Lower_bound=[1,-Inf,-Inf,0.5]; 43 | 44 | 45 | % PSO setting 46 | swarm_size=200; % num of particles 47 | max_stalls=50; 48 | 49 | [x_opt, fval, history] = pso_for_fitting(swarm_size, max_stalls, Initial_position, ... 50 | Lower_bound, Upper_bound,data); 51 | 52 | 53 | 54 | sum_err(totkk)=fval; 55 | end 56 | save('./results_save_fig4/err_co16.mat','sum_err') 57 | %% 58 | 59 | function [x_opt, fval, history] = pso_for_fitting(swarm_size, max_stalls, Initial_position, Lower_bound, Upper_bound,data) 60 | 61 | history = []; 62 | 63 | 64 | options = optimoptions('particleswarm',... 65 | 'SwarmSize',swarm_size,... 66 | 'MaxStallIterations',max_stalls,... 67 | 'PlotFcn','pswplotbestf',... 68 | 'FunctionTolerance',0.5e-9,... 69 | 'InitialSwarmMatrix',Initial_position,... 70 | 'Display','iter',... 71 | 'SocialAdjustmentWeight',2,... 72 | 'SelfAdjustmentWeight',2, ... 73 | 'UseParallel',false, ... 74 | 'OutputFcn', @myoutput); 75 | 76 | [x_opt,fval,exitflag,output] = particleswarm(@(x) curvefitting_fun(x),... 77 | length(Initial_position), ... 78 | Lower_bound, Upper_bound, options); 79 | 80 | 81 | function stop = myoutput(optimValues,state) 82 | stop = false; 83 | 84 | end 85 | 86 | function J = curvefitting_fun(x) 87 | 88 | 89 | a=x(1); 90 | b=x(2); 91 | c=x(3); 92 | d=x(4); 93 | 94 | warning off 95 | 96 | realx=data.fit_use_EFC; 97 | realy=data.fit_use_Qli; 98 | 99 | fity=a+b*realx.^d+c*realx; 100 | 101 | J=mape(fity,realy); 102 | 103 | 104 | end 105 | end 106 | 107 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | anyio==4.3.0 2 | appnope==0.1.4 3 | argon2-cffi==23.1.0 4 | argon2-cffi-bindings==21.2.0 5 | arrow==1.3.0 6 | asttokens==2.4.1 7 | async-lru==2.0.4 8 | attrs==23.2.0 9 | Babel==2.14.0 10 | backcall==0.2.0 11 | beautifulsoup4==4.12.3 12 | bleach==6.1.0 13 | certifi==2024.2.2 14 | cffi==1.16.0 15 | charset-normalizer==3.3.2 16 | cloudpickle==3.0.0 17 | comm==0.2.2 18 | contourpy==1.1.1 19 | cycler==0.12.1 20 | debugpy==1.8.1 21 | decorator==5.1.1 22 | defusedxml==0.7.1 23 | exceptiongroup==1.2.0 24 | executing==2.0.1 25 | fastjsonschema==2.19.1 26 | fonttools==4.49.0 27 | fqdn==1.5.1 28 | h11==0.14.0 29 | httpcore==1.0.4 30 | httpx==0.27.0 31 | idna==3.6 32 | importlib_metadata==7.0.2 33 | importlib_resources==6.3.0 34 | ipykernel==6.29.3 35 | ipython==8.12.3 36 | ipywidgets==8.1.2 37 | isoduration==20.11.0 38 | jedi==0.19.1 39 | Jinja2==3.1.3 40 | joblib==1.3.2 41 | json5==0.9.22 42 | jsonpointer==2.4 43 | jsonschema==4.21.1 44 | jsonschema-specifications==2023.12.1 45 | jupyter==1.0.0 46 | jupyter_client==8.6.1 47 | jupyter-console==6.6.3 48 | jupyter_core==5.7.2 49 | jupyter-events==0.9.1 50 | jupyter-lsp==2.2.4 51 | jupyter_server==2.13.0 52 | jupyter_server_terminals==0.5.3 53 | jupyterlab==4.1.5 54 | jupyterlab_pygments==0.3.0 55 | jupyterlab_server==2.25.4 56 | jupyterlab_widgets==3.0.10 57 | kiwisolver==1.4.5 58 | llvmlite==0.41.1 59 | MarkupSafe==2.1.5 60 | matplotlib==3.7.5 61 | matplotlib-inline==0.1.6 62 | mistune==3.0.2 63 | nbclient==0.10.0 64 | nbconvert==7.16.2 65 | nbformat==5.10.2 66 | nest-asyncio==1.6.0 67 | notebook==7.1.1 68 | notebook_shim==0.2.4 69 | numba==0.58.1 70 | numpy==1.24.4 71 | overrides==7.7.0 72 | packaging==24.0 73 | pandas==2.0.3 74 | pandocfilters==1.5.1 75 | parso==0.8.3 76 | pexpect==4.9.0 77 | pickleshare==0.7.5 78 | pillow==10.2.0 79 | pip==24.0 80 | pkgutil_resolve_name==1.3.10 81 | platformdirs==4.2.0 82 | prometheus_client==0.20.0 83 | prompt-toolkit==3.0.43 84 | psutil==5.9.8 85 | ptyprocess==0.7.0 86 | pure-eval==0.2.2 87 | pycparser==2.21 88 | Pygments==2.17.2 89 | pyparsing==3.1.2 90 | python-dateutil==2.9.0.post0 91 | python-json-logger==2.0.7 92 | pytz==2024.1 93 | PyYAML==6.0.1 94 | pyzmq==25.1.2 95 | qtconsole==5.5.1 96 | QtPy==2.4.1 97 | referencing==0.33.0 98 | requests==2.31.0 99 | rfc3339-validator==0.1.4 100 | rfc3986-validator==0.1.1 101 | rpds-py==0.18.0 102 | scikit-learn==1.3.2 103 | scipy==1.10.1 104 | seaborn==0.13.2 105 | Send2Trash==1.8.2 106 | setuptools==56.0.0 107 | shap==0.43.0 108 | six==1.16.0 109 | slicer==0.0.7 110 | sniffio==1.3.1 111 | soupsieve==2.5 112 | stack-data==0.6.3 113 | terminado==0.18.1 114 | threadpoolctl==3.3.0 115 | tinycss2==1.2.1 116 | tomli==2.0.1 117 | tornado==6.4 118 | tqdm==4.66.2 119 | traitlets==5.14.2 120 | types-python-dateutil==2.8.19.20240311 121 | typing_extensions==4.10.0 122 | tzdata==2024.1 123 | uri-template==1.3.0 124 | urllib3==2.2.1 125 | wcwidth==0.2.13 126 | webcolors==1.13 127 | webencodings==0.5.1 128 | websocket-client==1.7.0 129 | widgetsnbextension==4.0.10 130 | xgboost==2.0.3 131 | zipp==3.18.0 132 | -------------------------------------------------------------------------------- /figure4/figure4g.m: -------------------------------------------------------------------------------- 1 | % The fitting results may vary slightly with each run due to the use of the PSO algorithm. 2 | clear all 3 | clc 4 | 5 | co2_index={'Cell_053'}; 6 | 7 | data_cell_QLi=load('../data/all_cells_QLi.mat'); 8 | cell_use=eval(['data_cell_QLi.',co2_index{1}]); 9 | 10 | 11 | data_cell_SOH=load('../data/all_cells_SOH.mat'); 12 | cell_check=eval(['data_cell_SOH.',co2_index{1}]); 13 | 14 | cutindex=min(find(cell_check(2,:)<0.90)); 15 | 16 | intx=cell_use(1,1:cutindex); 17 | inty=cell_use(2,1:cutindex); 18 | 19 | 20 | 21 | data.fit_use_EFC=intx; 22 | data.fit_use_Qli=inty; 23 | 24 | 25 | Initial_position=abs(rand(1,4)); 26 | 27 | Upper_bound=[1,Inf,Inf,0.5]; 28 | Lower_bound=[1,-Inf,-Inf,0.5]; 29 | 30 | 31 | % PSO setting 32 | swarm_size=200; % num of particles 33 | max_stalls=50; 34 | 35 | [x_opt, fval, history] = pso_for_fitting(swarm_size, max_stalls, Initial_position, ... 36 | Lower_bound, Upper_bound,data); 37 | 38 | 39 | %% 40 | see_x=data.fit_use_EFC; 41 | see_y=x_opt(1)+x_opt(2)*see_x.^x_opt(4)+x_opt(3)*see_x; 42 | 43 | col1=[152 0 0]/255; 44 | col2=[112 128 144]/255; 45 | figure 46 | plot(see_x,see_y, '-','LineWidth',2,'color',col2); 47 | hold on 48 | plot(data.fit_use_EFC,data.fit_use_Qli, 'o','LineWidth',2,'color',col1, 'MarkerFaceColor', col1); 49 | 50 | xlabel( 'EFCs [-]'); 51 | ylabel( 'QLi [-]'); 52 | 53 | legend('Fitted','Cell 53') 54 | 55 | 56 | 57 | set(gca,'linewidth',1,'fontsize',14,'fontname','Arial'); 58 | set(gcf,'unit','centimeters','position',[5 5 10 6]) 59 | 60 | %% 61 | 62 | function [x_opt, fval, history] = pso_for_fitting(swarm_size, max_stalls, Initial_position, Lower_bound, Upper_bound,data) 63 | 64 | history = []; 65 | 66 | 67 | options = optimoptions('particleswarm',... 68 | 'SwarmSize',swarm_size,... 69 | 'MaxStallIterations',max_stalls,... 70 | 'PlotFcn','pswplotbestf',... 71 | 'FunctionTolerance',0.5e-9,... 72 | 'InitialSwarmMatrix',Initial_position,... 73 | 'Display','iter',... 74 | 'SocialAdjustmentWeight',2,... 75 | 'SelfAdjustmentWeight',2, ... 76 | 'UseParallel',false, ... 77 | 'OutputFcn', @myoutput); 78 | 79 | [x_opt,fval,exitflag,output] = particleswarm(@(x) curvefitting_fun(x),... 80 | length(Initial_position), ... 81 | Lower_bound, Upper_bound, options); 82 | 83 | 84 | function stop = myoutput(optimValues,state) 85 | stop = false; 86 | 87 | end 88 | 89 | function J = curvefitting_fun(x) 90 | 91 | 92 | a=x(1); 93 | b=x(2); 94 | c=x(3); 95 | d=x(4); 96 | 97 | warning off 98 | 99 | realx=data.fit_use_EFC; 100 | realy=data.fit_use_Qli; 101 | 102 | fity=a+b*realx.^d+c*realx; 103 | 104 | J=mape(fity,realy); 105 | 106 | 107 | end 108 | end -------------------------------------------------------------------------------- /figure4/fitting4h_Co2.m: -------------------------------------------------------------------------------- 1 | % The fitting results may vary slightly with each run due to the use of the PSO algorithm. 2 | clear all 3 | clc 4 | 5 | co2_index = { 6 | 'Cell_017' 7 | 'Cell_019' 8 | 'Cell_020' 9 | 'Cell_021' 10 | 'Cell_022' 11 | 'Cell_023' 12 | 'Cell_024' 13 | 'Cell_041' 14 | 'Cell_042' 15 | 'Cell_043' 16 | 'Cell_044' 17 | 'Cell_046' 18 | 'Cell_047' 19 | 'Cell_048' 20 | 'Cell_053' 21 | 'Cell_054' 22 | 'Cell_069' 23 | 'Cell_070' 24 | 'Cell_077' 25 | 'Cell_078' 26 | 'Cell_085' 27 | 'Cell_086'}; 28 | 29 | sum_err=[]; 30 | for totkk=1:1:size(co2_index,1) 31 | 32 | cell_choose=totkk; 33 | 34 | 35 | data_cell_Qli=load('../data/all_cells_QLi.mat'); 36 | cell_use=eval(['data_cell_Qli.',co2_index{cell_choose}]); 37 | 38 | 39 | data_cell_SOH=load('../data/all_cells_SOH.mat'); 40 | cell_check=eval(['data_cell_SOH.',co2_index{cell_choose}]); 41 | 42 | cutindex=min(find(cell_check(2,:)<0.90)); 43 | 44 | 45 | intx=cell_use(1,1:cutindex); 46 | inty=cell_use(2,1:cutindex); 47 | 48 | 49 | 50 | data.fit_use_EFC=intx; 51 | data.fit_use_Qli=inty; 52 | 53 | 54 | Initial_position=abs(rand(1,4)); 55 | 56 | Upper_bound=[1,Inf,Inf,0.5]; 57 | Lower_bound=[1,-Inf,-Inf,0.5]; 58 | 59 | 60 | % PSO setting 61 | swarm_size=500; % num of particles 62 | max_stalls=100; 63 | 64 | [x_opt, fval, history] = pso_for_fitting(swarm_size, max_stalls, Initial_position, ... 65 | Lower_bound, Upper_bound,data); 66 | 67 | 68 | sum_err(totkk)=fval; 69 | end 70 | save('./results_save_fig4/err_co2.mat','sum_err') 71 | %% 72 | 73 | function [x_opt, fval, history] = pso_for_fitting(swarm_size, max_stalls, Initial_position, Lower_bound, Upper_bound,data) 74 | 75 | history = []; 76 | 77 | 78 | options = optimoptions('particleswarm',... 79 | 'SwarmSize',swarm_size,... 80 | 'MaxStallIterations',max_stalls,... 81 | 'PlotFcn','pswplotbestf',... 82 | 'FunctionTolerance',0.5e-9,... 83 | 'InitialSwarmMatrix',Initial_position,... 84 | 'Display','iter',... 85 | 'SocialAdjustmentWeight',2,... 86 | 'SelfAdjustmentWeight',2, ... 87 | 'UseParallel',false, ... 88 | 'OutputFcn', @myoutput); 89 | 90 | [x_opt,fval,exitflag,output] = particleswarm(@(x) curvefitting_fun(x),... 91 | length(Initial_position), ... 92 | Lower_bound, Upper_bound, options); 93 | 94 | 95 | function stop = myoutput(optimValues,state) 96 | stop = false; 97 | 98 | end 99 | 100 | function J = curvefitting_fun(x) 101 | 102 | 103 | a=x(1); 104 | b=x(2); 105 | c=x(3); 106 | d=x(4); 107 | 108 | warning off 109 | 110 | realx=data.fit_use_EFC; 111 | realy=data.fit_use_Qli; 112 | 113 | fity=a+b*realx.^d+c*realx; 114 | 115 | J=mape(fity,realy); 116 | 117 | 118 | end 119 | end 120 | -------------------------------------------------------------------------------- /figure4/fitting4h_Co5.m: -------------------------------------------------------------------------------- 1 | % The fitting results may vary slightly with each run due to the use of the PSO algorithm. 2 | clear all 3 | clc 4 | 5 | co5_index = { 6 | 'Cell_009' 7 | 'Cell_010' 8 | 'Cell_011' 9 | 'Cell_012' 10 | 'Cell_013' 11 | 'Cell_014' 12 | 'Cell_015' 13 | 'Cell_016' 14 | 'Cell_033' 15 | 'Cell_034' 16 | 'Cell_035' 17 | 'Cell_036' 18 | 'Cell_037' 19 | 'Cell_038' 20 | 'Cell_039' 21 | 'Cell_040' 22 | 'Cell_051' 23 | 'Cell_052' 24 | 'Cell_061' 25 | 'Cell_062' 26 | 'Cell_067' 27 | 'Cell_068' 28 | 'Cell_075' 29 | 'Cell_076' 30 | 'Cell_084' 31 | 'Cell_087' 32 | 'Cell_088' 33 | }; 34 | 35 | 36 | sum_err=[]; 37 | for totkk=1:1:size(co5_index,1) 38 | 39 | 40 | cell_choose=totkk; 41 | 42 | 43 | data_cell_Qli=load('../data/all_cells_QLi.mat'); 44 | cell_use=eval(['data_cell_Qli.',co5_index{cell_choose}]); 45 | 46 | 47 | data_cell_SOH=load('../data/all_cells_SOH.mat'); 48 | cell_check=eval(['data_cell_SOH.',co5_index{cell_choose}]); 49 | 50 | cutindex=min(find(cell_check(2,:)<0.90)); 51 | QLi_end=cell_check(2,cutindex); 52 | 53 | intx=cell_use(1,1:cutindex); 54 | inty=cell_use(2,1:cutindex); 55 | 56 | 57 | 58 | data.fit_use_EFC=intx; 59 | data.fit_use_Qli=inty; 60 | 61 | 62 | Initial_position=abs(rand(1,4)); 63 | 64 | Upper_bound=[1,Inf,Inf,0.5]; 65 | Lower_bound=[1,-Inf,-Inf,0.5]; 66 | 67 | 68 | % PSO setting 69 | swarm_size=200; % num of particles 70 | max_stalls=50; 71 | 72 | [x_opt, fval, history] = pso_for_fitting(swarm_size, max_stalls, Initial_position, ... 73 | Lower_bound, Upper_bound,data); 74 | 75 | 76 | 77 | sum_err(totkk)=fval; 78 | end 79 | save('./results_save_fig4/err_co5.mat','sum_err') 80 | %% 81 | 82 | function [x_opt, fval, history] = pso_for_fitting(swarm_size, max_stalls, Initial_position, Lower_bound, Upper_bound,data) 83 | 84 | history = []; 85 | 86 | 87 | options = optimoptions('particleswarm',... 88 | 'SwarmSize',swarm_size,... 89 | 'MaxStallIterations',max_stalls,... 90 | 'PlotFcn','pswplotbestf',... 91 | 'FunctionTolerance',0.5e-9,... 92 | 'InitialSwarmMatrix',Initial_position,... 93 | 'Display','iter',... 94 | 'SocialAdjustmentWeight',2,... 95 | 'SelfAdjustmentWeight',2, ... 96 | 'UseParallel',false, ... 97 | 'OutputFcn', @myoutput); 98 | 99 | [x_opt,fval,exitflag,output] = particleswarm(@(x) curvefitting_fun(x),... 100 | length(Initial_position), ... 101 | Lower_bound, Upper_bound, options); 102 | 103 | 104 | function stop = myoutput(optimValues,state) 105 | stop = false; 106 | 107 | end 108 | 109 | function J = curvefitting_fun(x) 110 | 111 | 112 | a=x(1); 113 | b=x(2); 114 | c=x(3); 115 | d=x(4); 116 | 117 | warning off 118 | 119 | realx=data.fit_use_EFC; 120 | realy=data.fit_use_Qli; 121 | 122 | fity=a+b*realx.^d+c*realx; 123 | 124 | J=mape(fity,realy); 125 | 126 | 127 | end 128 | end 129 | -------------------------------------------------------------------------------- /figure4/fitting4h_Co10.m: -------------------------------------------------------------------------------- 1 | % The fitting results may vary slightly with each run due to the use of the PSO algorithm. 2 | clear all 3 | clc 4 | 5 | co10_index = { 6 | 'Cell_055' 7 | 'Cell_056' 8 | 'Cell_003' 9 | 'Cell_004' 10 | 'Cell_005' 11 | 'Cell_006' 12 | 'Cell_007' 13 | 'Cell_008' 14 | 'Cell_025' 15 | 'Cell_026' 16 | 'Cell_027' 17 | 'Cell_028' 18 | 'Cell_029' 19 | 'Cell_030' 20 | 'Cell_031' 21 | 'Cell_032' 22 | 'Cell_049' 23 | 'Cell_050' 24 | 'Cell_059' 25 | 'Cell_060' 26 | 'Cell_071' 27 | 'Cell_072' 28 | 'Cell_065' 29 | 'Cell_066' 30 | 'Cell_073' 31 | 'Cell_074' 32 | 'Cell_081' 33 | 'Cell_082' 34 | 'Cell_079' 35 | 'Cell_080' 36 | 'Cell_091' 37 | 'Cell_092' 38 | 'Cell_095' 39 | 'Cell_096' 40 | }; 41 | 42 | 43 | sum_err=[]; 44 | for totkk=1:1:size(co10_index,1) 45 | 46 | 47 | cell_choose=totkk; 48 | 49 | 50 | data_cell_Qli=load('../data/all_cells_QLi.mat'); 51 | cell_use=eval(['data_cell_Qli.',co10_index{cell_choose}]); 52 | 53 | 54 | data_cell_SOH=load('../data/all_cells_SOH.mat'); 55 | cell_check=eval(['data_cell_SOH.',co10_index{cell_choose}]); 56 | 57 | cutindex=min(find(cell_check(2,:)<0.90)); 58 | QLi_end=cell_check(2,cutindex); 59 | 60 | intx=cell_use(1,1:cutindex); 61 | inty=cell_use(2,1:cutindex); 62 | 63 | 64 | 65 | data.fit_use_EFC=intx; 66 | data.fit_use_Qli=inty; 67 | 68 | 69 | Initial_position=abs(rand(1,4)); 70 | 71 | Upper_bound=[1,Inf,Inf,0.5]; 72 | Lower_bound=[1,-Inf,-Inf,0.5]; 73 | 74 | 75 | % PSO setting 76 | swarm_size=200; % num of particles 77 | max_stalls=50; 78 | 79 | [x_opt, fval, history] = pso_for_fitting(swarm_size, max_stalls, Initial_position, ... 80 | Lower_bound, Upper_bound,data); 81 | 82 | 83 | 84 | sum_err(totkk)=fval; 85 | end 86 | save('./results_save_fig4/err_co10.mat','sum_err') 87 | %% 88 | 89 | function [x_opt, fval, history] = pso_for_fitting(swarm_size, max_stalls, Initial_position, Lower_bound, Upper_bound,data) 90 | 91 | history = []; 92 | 93 | 94 | options = optimoptions('particleswarm',... 95 | 'SwarmSize',swarm_size,... 96 | 'MaxStallIterations',max_stalls,... 97 | 'PlotFcn','pswplotbestf',... 98 | 'FunctionTolerance',0.5e-9,... 99 | 'InitialSwarmMatrix',Initial_position,... 100 | 'Display','iter',... 101 | 'SocialAdjustmentWeight',2,... 102 | 'SelfAdjustmentWeight',2, ... 103 | 'UseParallel',false, ... 104 | 'OutputFcn', @myoutput); 105 | 106 | [x_opt,fval,exitflag,output] = particleswarm(@(x) curvefitting_fun(x),... 107 | length(Initial_position), ... 108 | Lower_bound, Upper_bound, options); 109 | 110 | 111 | function stop = myoutput(optimValues,state) 112 | stop = false; 113 | 114 | end 115 | 116 | function J = curvefitting_fun(x) 117 | 118 | 119 | a=x(1); 120 | b=x(2); 121 | c=x(3); 122 | d=x(4); 123 | 124 | warning off 125 | 126 | realx=data.fit_use_EFC; 127 | realy=data.fit_use_Qli; 128 | 129 | fity=a+b*realx.^d+c*realx; 130 | 131 | J=mape(fity,realy); 132 | 133 | 134 | end 135 | end 136 | -------------------------------------------------------------------------------- /data/soh90.csv: -------------------------------------------------------------------------------- 1 | ,Cycles,EFCs (with Diagnostic),Q_pe,Q_ne,Q_li_cyc,HPPC 50% charge 0s,HPPC 50% charge 3s,HPPC 50% charge 10s,HPPC 50% discharge 0s,HPPC 50% discharge 3s,HPPC 50% discharge 10s 2 | cell_003,497.4511837,461.2573902,0.910071435,0.944592336,0.865800664,1.100503744,1.031959485,0.983993065,1.10400602,1.029862554,1.001173417 3 | cell_004,488.9891612,453.6388264,0.908936566,0.942534489,0.865711127,1.105055233,1.035166244,0.98702504,1.102470083,1.030082176,1.000998959 4 | cell_005,467.268025,435.403301,0.920178129,0.947500614,0.864676388,1.102909999,1.02592823,0.980356931,1.102684352,1.021692555,0.995653923 5 | cell_006,462.94419,431.7397127,0.920511527,0.949008411,0.865840146,1.11841698,1.039096638,0.989042956,1.119538208,1.031817563,1.00319432 6 | cell_007,371.3486566,348.4922328,0.91058621,0.944705837,0.86297536,1.111782191,1.045779537,0.995722972,1.114709846,1.040321312,1.011830351 7 | cell_008,371.3000756,348.5723826,0.909930432,0.944513785,0.862777285,1.135173653,1.059928369,1.009455593,1.136385711,1.054418065,1.024426888 8 | cell_009,609.0272335,552.447676,0.906391368,0.924595763,0.85758206,1.125508388,1.028370631,0.981836847,1.114285476,1.024370496,0.998215824 9 | cell_010,616.934852,559.2829139,0.906491535,0.927362128,0.858153249,1.11003251,1.026883462,0.980725961,1.112431737,1.026021058,0.996440151 10 | cell_011,562.1114863,513.7269836,0.898627388,0.930189765,0.857860079,1.122495443,1.048129602,0.996423246,1.121809171,1.043756703,1.012371792 11 | cell_012,563.2254371,515.4792786,0.897525038,0.929854552,0.856784104,1.075076644,1.014502712,0.966946641,1.076932234,1.006928174,0.98091499 12 | cell_013,526.7805267,483.776362,0.908338056,0.934644736,0.853176946,1.116394381,1.032284516,0.982019755,1.115002607,1.027850646,0.998574271 13 | cell_014,524.1846783,482.596368,0.909683457,0.935566229,0.854788207,1.089595808,1.015237903,0.968894815,1.106909938,1.009674741,0.984733778 14 | cell_015,404.5841189,371.1434155,0.903121942,0.936613659,0.855943326,1.109392326,1.04084218,0.992717209,1.116409102,1.038067545,1.00945871 15 | cell_016,407.5517248,374.2128281,0.902432673,0.936102599,0.856585118,1.110388444,1.042023695,0.992604272,1.114968579,1.038755915,1.010182923 16 | cell_017,741.6463169,642.4142075,0.918550156,0.951248249,0.864589775,1.064959543,0.993653729,0.954669397,1.06674273,0.987807711,0.966798927 17 | cell_019,691.710373,599.2031081,0.906464775,0.940768336,0.866791014,1.105823828,1.034154444,0.985348159,1.112350432,1.031785473,1.002214531 18 | cell_020,689.6611899,597.3291626,0.907412084,0.942151908,0.868588396,1.114288576,1.04184726,0.987428334,1.113102871,1.030734422,1.001988174 19 | cell_021,584.7549354,513.0812771,0.92228829,0.964880547,0.86604567,1.035954888,0.968610372,0.930301981,1.031796427,0.961883206,0.94298603 20 | cell_022,623.2342468,540.8246249,0.923729908,0.966787867,0.867331577,1.143808297,1.053444415,1.002709169,1.150704466,1.052477108,1.022242231 21 | cell_023,478.063048,414.1129887,0.904477847,0.946363418,0.862376875,1.15172875,1.064111622,1.006810407,1.154818292,1.06471978,1.029588217 22 | cell_024,462.3861657,402.3981211,0.905168875,0.943114492,0.864148969,1.159205444,1.06753894,1.011251543,1.150343558,1.065399118,1.030685319 23 | cell_025,524.2291515,501.6962405,0.909177266,0.938314749,0.863247292,1.176343018,1.079130221,1.022514929,1.177982092,1.074335458,1.04215834 24 | cell_026,539.5310312,509.7293568,0.909701024,0.939621615,0.861865245,1.186673828,1.084117507,1.027649756,1.187973681,1.084155325,1.047224286 25 | cell_027,550.2085002,504.6302002,0.906315543,0.93473748,0.861635411,1.15548854,1.065376286,1.012850402,1.159470136,1.060577815,1.027284802 26 | cell_028,558.2568443,512.54751,0.904761271,0.938663923,0.860101262,1.149064456,1.057988378,1.003330486,1.154109456,1.056142629,1.024397694 27 | cell_029,554.0370064,509.2185037,0.908428624,0.947593351,0.86024839,1.159083525,1.064395632,1.012280351,1.159967454,1.062045802,1.029059503 28 | cell_030,578.2532618,519.1230266,0.911386795,0.951610149,0.861449502,1.158375442,1.059194242,1.006191273,1.158882866,1.055490571,1.023335766 29 | cell_031,553.5687225,514.0558617,0.906431132,0.93829144,0.859467331,1.204087482,1.096996966,1.037620273,1.20959445,1.092025111,1.054302883 30 | cell_032,545.445157,506.9005331,0.904782984,0.939543108,0.858687615,1.159194679,1.063218779,1.008894898,1.155388635,1.058462594,1.025255338 31 | cell_033,667.536131,589.5513109,0.910760708,0.94679363,0.857266035,1.08537948,1.003561004,0.961346753,1.083227581,0.999333582,0.975486833 32 | cell_034,619.5035007,554.8049105,0.915002738,0.947964628,0.860838719,1.049678637,0.974997611,0.937246449,1.043951995,0.969769676,0.95179425 33 | cell_035,583.8367549,519.3104616,0.915393449,0.949040083,0.864704851,1.059307463,0.985262647,0.945321162,1.061925922,0.980342498,0.957931592 34 | cell_036,652.956218,577.5589117,0.911335828,0.945372636,0.85814205,1.073869178,0.99535285,0.955318415,1.073386557,0.98886804,0.968756081 35 | cell_037,752.109939,625.7864553,0.911487262,0.96112793,0.858432556,1.090672173,1.010699679,0.966975214,1.100632893,1.004044562,0.979533873 36 | cell_038,756.197323,628.4741049,0.911664421,0.964260723,0.859315533,1.081363791,1.003411601,0.9625705,1.082240469,0.999948429,0.978776816 37 | cell_039,668.2905145,579.6263103,0.915982317,0.956785862,0.864185565,1.056335836,0.982279994,0.943508328,1.059304837,0.978924522,0.957560462 38 | cell_040,732.6420907,626.3419818,0.909216083,0.95906654,0.858656525,1.077199916,0.999349799,0.958286457,1.081259266,0.99604207,0.974061278 39 | cell_041,772.9105144,623.1829979,0.917000679,0.971277722,0.865665726,1.058504031,0.979545193,0.942788933,1.05637737,0.969822888,0.952293269 40 | cell_042,815.7827921,651.5926878,0.909506623,0.959190514,0.856869834,1.041555582,0.970773152,0.936955719,1.036857111,0.964177205,0.946518332 41 | cell_043,784.5258847,618.7975596,0.909869769,0.961988207,0.859736711,1.061826198,0.988295132,0.951710713,1.06226545,0.980299079,0.961243388 42 | cell_044,856.4668697,670.2309912,0.90769175,0.962249312,0.858039973,1.123107896,1.029001342,0.982806851,1.125051366,1.025324644,0.999112471 43 | cell_045,751.1934438,525.5398973,0.912900533,1.015104899,0.860139431,1.135039563,1.039696688,0.989196085,1.135194479,1.038020804,1.011992869 44 | cell_046,813.881073,549.7556406,0.903848237,0.974638232,0.851289337,1.12097326,1.02729327,0.982976068,1.120261065,1.024495949,1.001574214 45 | cell_047,897.744032,684.6693484,0.903345732,0.967344393,0.856488239,1.130223764,1.034672591,0.985573999,1.130641076,1.033998396,1.007243878 46 | cell_048,897.8359583,684.1697996,0.903887749,0.968069779,0.857521318,1.13757483,1.040013379,0.992063466,1.134099089,1.039003507,1.010986624 47 | cell_049,518.9099549,492.4320373,0.908484724,0.940425561,0.863968357,1.192723006,1.081099751,1.022849259,1.182218916,1.078321699,1.042603734 48 | cell_050,535.1077212,506.251754,0.909078525,0.941525209,0.861538717,1.164912198,1.070725879,1.015303062,1.166665708,1.067771989,1.033030713 49 | cell_051,591.5549779,514.7582258,0.919719043,0.957343344,0.87098388,1.110619685,1.019128731,0.971948584,1.105282072,1.015231061,0.986818265 50 | cell_052,695.625615,596.7211156,0.912680974,0.963563142,0.863398525,1.166763131,1.073190543,1.015480271,1.171082146,1.069270981,1.034093876 51 | cell_053,855.6097014,638.6355934,0.90901662,0.968519112,0.860663948,1.181396531,1.06868923,1.017240269,1.170759329,1.063919042,1.034864066 52 | cell_054,861.4729165,649.4748382,0.912124285,0.968814335,0.86262224,1.115307926,1.02582384,0.98317175,1.109541108,1.018925853,0.993956185 53 | cell_055,509.3486892,471.1907897,0.908309629,0.939668316,0.865379192,1.16666221,1.070305703,1.017213657,1.159071863,1.065417926,1.034649367 54 | cell_056,508.1957676,470.2181559,0.909680178,0.935232554,0.863838793,1.183982269,1.084576732,1.028016256,1.190083964,1.084712969,1.048697436 55 | cell_057,475.2913778,477.9460448,0.906220929,0.945642054,0.858234145,1.079562384,1.008680928,0.965300676,1.07605314,1.000678932,0.975430933 56 | cell_058,437.9793747,444.23637,0.909385788,0.948680026,0.863164796,1.08862655,1.017290357,0.968751857,1.085156604,1.006819357,0.98011291 57 | cell_059,595.3422783,571.231688,0.908429676,0.958319215,0.859286667,1.096254619,1.018932569,0.972954913,1.094000176,1.010909952,0.984366936 58 | cell_060,586.0966324,562.7877916,0.909357691,0.955389317,0.860016548,1.097170766,1.011466826,0.967768507,1.09088626,1.004802537,0.979891404 59 | cell_061,813.7011391,711.0206595,0.903977056,0.960632572,0.857342058,1.067796436,0.996517984,0.957442874,1.065384773,0.991688969,0.969081595 60 | cell_062,803.0861442,707.9366413,0.906544715,0.962029885,0.858983696,1.043759878,0.981042292,0.939474332,1.049791781,0.974443765,0.952102286 61 | cell_063,548.5054516,536.9935562,0.906421273,0.948257989,0.858183985,1.046830498,0.982515797,0.942987513,1.049960399,0.976225015,0.955698036 62 | cell_064,512.5579159,502.2807898,0.910019958,0.950882015,0.862029409,1.058778566,0.98876188,0.94715419,1.058171931,0.982616102,0.959501889 63 | cell_065,484.5616656,534.8032272,0.916723868,0.93915505,0.865495357,1.11173181,1.025423627,0.976601233,1.109081614,1.019513904,0.991722694 64 | cell_066,493.3622393,543.4396941,0.914190031,0.939386636,0.863850554,1.067821807,0.994863068,0.95406128,1.071314738,0.994909413,0.971156607 65 | cell_067,658.2364911,690.8196817,0.913735431,0.95027473,0.862111224,1.056691471,0.99011803,0.951516872,1.069288947,0.988989887,0.966637502 66 | cell_068,650.6211918,682.3695245,0.910814932,0.947767912,0.859566703,1.092095733,1.012886677,0.970029953,1.089109632,1.00985318,0.982978104 67 | cell_069,898.8375075,851.9559778,0.912099382,0.965629587,0.860946817,1.08813459,1.007466437,0.963897649,1.084086097,1.005098167,0.980323574 68 | cell_070,887.9892051,847.5253598,0.908306143,0.963681589,0.858983195,1.057958589,0.989943555,0.949655229,1.06302618,0.982707797,0.963305679 69 | cell_071,774.8436134,712.8595694,0.90957209,0.962409697,0.861458497,1.128586278,1.046030822,0.997029596,1.127255016,1.038910845,1.009872105 70 | cell_072,738.6529734,684.3532243,0.905740266,0.959072254,0.859796955,1.083197358,1.01220615,0.967173774,1.087741197,1.005437266,0.980833874 71 | cell_073,433.9269308,429.2230468,0.921308081,0.942521684,0.872570031,1.09613848,1.005699092,0.960500097,1.084156726,1.000372322,0.976030222 72 | cell_074,481.1303615,467.8786987,0.915102417,0.941524535,0.869793359,1.218788213,1.111006058,1.050449474,1.222079121,1.111368116,1.069887802 73 | cell_075,622.7747592,580.9410711,0.912472124,0.943911338,0.868122968,1.237237058,1.124658353,1.057531629,1.232354547,1.121183722,1.080087128 74 | cell_076,619.5490519,582.4611902,0.908255492,0.929741613,0.865276409,1.218953721,1.115179397,1.053716844,1.230734423,1.113755915,1.075795971 75 | cell_077,874.2536489,747.8316557,0.90992137,0.954340499,0.864772504,1.199446855,1.091551104,1.032080009,1.206243185,1.091137214,1.054020807 76 | cell_078,777.1255305,671.0626062,0.914259465,0.956806389,0.869878847,1.150178343,1.051498891,0.997139981,1.151479331,1.050431863,1.018205651 77 | cell_079,615.9759717,588.2175996,0.915997438,0.965117867,0.865928677,1.19470743,1.090006359,1.032535587,1.188699454,1.086206579,1.050006499 78 | cell_080,612.93806,589.0878159,0.913425616,0.952041148,0.860973674,1.180875108,1.08037416,1.024104912,1.174330087,1.076143015,1.039355312 79 | cell_081,411.0156829,408.0300407,0.914199915,0.942526737,0.874066028,1.200135129,1.096202302,1.036624249,1.202520445,1.094613286,1.054264708 80 | cell_082,528.2529601,514.6848762,0.908163717,0.938844851,0.861364015,1.194946158,1.096721227,1.038913789,1.1916349,1.090439319,1.054229801 81 | cell_084,655.3062428,617.9762814,0.905411239,0.943067989,0.861264867,1.169981582,1.073832994,1.020389699,1.178039995,1.071614156,1.037945717 82 | cell_085,864.5785776,739.2136998,0.906281585,0.960684909,0.862305359,1.157884265,1.064554938,1.008859262,1.165207525,1.063318964,1.031072652 83 | cell_086,885.6320222,757.6487638,0.904341098,0.970979794,0.859283442,1.160655754,1.059979699,1.006333644,1.160229688,1.057473699,1.027193519 84 | cell_087,694.777468,641.6080585,0.909203527,0.959898541,0.866045546,1.156789502,1.054898702,1.000179597,1.157268891,1.051100498,1.019575971 85 | cell_088,699.9965285,654.066195,0.91197623,0.958259042,0.864376038,1.044841709,0.977075188,0.938263777,1.045931484,0.973552284,0.950188196 86 | cell_089,729.4220501,562.4923141,0.902835442,0.972741515,0.857534242,1.159553593,1.066662741,1.016931671,1.161269272,1.059205995,1.025308042 87 | cell_090,700.5167973,538.1390456,0.903229351,0.976500404,0.859030589,1.094200683,1.017549948,0.974258466,1.100612043,1.010489839,0.986525366 88 | cell_091,555.8402944,534.7362818,0.915226266,0.967470432,0.867778097,1.097111719,1.013622436,0.970104983,1.091795869,1.010315678,0.984161185 89 | cell_092,576.974573,554.3564128,0.911643976,0.967085027,0.864851361,1.06079967,0.991407947,0.950175284,1.061102071,0.984898004,0.962432493 90 | cell_093,702.8799585,511.0566177,0.907781763,0.974708453,0.862638608,1.106652412,1.024919822,0.97953252,1.108157003,1.016279101,0.990143266 91 | cell_094,766.7532492,557.3342798,0.904501903,0.976873593,0.860207782,1.110078806,1.022523354,0.977759072,1.098744009,1.016228996,0.989886037 92 | cell_095,503.4276276,476.2634307,0.918489418,0.95472854,0.867279987,1.093124895,1.015131029,0.969324212,1.092031597,1.005060679,0.979059892 93 | cell_096,521.4295913,489.4908403,0.91610963,0.952673635,0.864381539,1.090868564,1.01520199,0.968787596,1.087516078,1.007384507,0.979880595 94 | -------------------------------------------------------------------------------- /data/protocol_features.csv: -------------------------------------------------------------------------------- 1 | Average Current,Normalized Current Variance,Maximum Discharge Current,Relative Charge Fraction,Rest Fraction at High SOC,Rest SOC,Peak Frequency 1,Peak Frequency 2 2 | 0.060343280440727565,0.03961604249510634,0.1013962005,0.0,0.0,0.08646978221807822,1.8348623853211008e-05,7.339449541284403e-05 3 | 0.06032621682516722,0.03963360520841378,0.10029755091999999,0.0,1.8356707540935457e-06,0.08713407107700011,1.8356707540935456e-05,7.342683016374182e-05 4 | 0.06029704041447912,0.039662686049956535,0.10061798967722006,0.0,0.0,0.5000074743810714,3.673904258055035e-05,7.34780851611007e-05 5 | 0.06028750536666161,0.03967181204388328,0.1007598992809976,0.0,0.0,0.5000059783987894,3.674781809830041e-05,7.349563619660083e-05 6 | 0.06025295571907149,0.03970687890160108,0.10019913023974032,0.0,0.39722676867057766,1.0,1.839012817919341e-05,7.356051271677364e-05 7 | 0.060217014819469485,0.03974260900956014,0.10027512015773364,0.0,0.3975850390222353,1.0,1.840671476954793e-05,7.362685907819172e-05 8 | 0.1999831282989985,1.2975476118690242e-08,0.20146486609999997,0.0,0.0,0.0,0.00012282748879199166,0.0002456549775839833 9 | 0.1999833865442995,1.1544099050786991e-08,0.20114442663999998,0.0,0.0,0.0,0.00012267680794945715,0.0002453536158989143 10 | 0.08591974888733112,0.11406340725469677,0.20123598078,0.0,0.0,0.09617197489887519,2.6406126221283338e-05,5.2812252442566676e-05 11 | 0.08598161614057366,0.1140017172053631,0.20137331198,0.0,0.0,0.09504349012020907,2.6392187912377936e-05,5.278437582475587e-05 12 | 0.08582207643243177,0.11416196112133027,0.20103089952817169,0.0,0.0,0.4999963377926805,5.2856916327501456e-05,0.00010571383265500291 13 | 0.08586388669696164,0.11411918621298497,0.20123598078,0.0,0.0,0.4999987500320403,5.283736658564937e-05,0.00010567473317129874 14 | 0.08571852037496844,0.11426400495340269,0.20101075761361809,0.0,0.5713681091947942,1.0,2.645222727753677e-05,5.290445455507354e-05 15 | 0.08574879991726334,0.1142338711933391,0.20058960860641054,0.0,0.571217009573174,1.0,2.6445231924683978e-05,5.2890463849367956e-05 16 | 0.4999590477148063,6.681018424982567e-09,0.5002059968,0.0,0.0,0.0,0.0003147128245476003,0.0006294256490952006 17 | 0.11357499170469637,0.3863860545746054,0.50075532158,0.0,0.0,0.11827948106577346,3.5780735651925e-05,7.156147130385e-05 18 | 0.11349348595038239,0.3864682497237681,0.5011215381,0.0,0.0,0.11906986724662738,3.578713810256594e-05,7.157427620513188e-05 19 | 0.11346222675154942,0.386499431952717,0.5012588692997402,0.0,0.0,0.4999981477248435,0.00014315879889767726,0.00021473819834651588 20 | 0.11301900691348109,0.3869423566004682,0.501441972938604,0.0,0.0,0.4999998238858757,0.00014332294242000787,0.0002149844136300118 21 | 0.11286530240341389,0.38709454751087025,0.501156328672821,0.0,0.7742490501111191,1.0,3.5844863431070325e-05,7.168972686214065e-05 22 | 0.11269874053537968,0.3872611729913667,0.5009420920136181,0.0,0.7745822276411103,1.0,3.586028831671807e-05,7.172057663343613e-05 23 | 0.10074295728476848,0.2191371221819505,0.3014145113351343,0.06887277684823698,0.2584681167503253,0.5526091278710499,0.002478775484910454,0.004988535663382289 24 | 0.10076374337634367,0.21904029666837094,0.30113023575616077,0.06883849180531028,0.25842550422901756,0.5525365218709828,0.0024785450940298043,0.004988072001734982 25 | 0.10028754162216309,0.2089883669721447,0.30061249713211696,0.03391771350967623,0.27580789530541067,0.5470193314860452,0.0022222908114447977,0.004444581622889595 26 | 0.10025597785846392,0.20905863945773467,0.3004669260607656,0.033900188265794266,0.27588963303601743,0.5470838774586191,0.002222153637233419,0.004444307274466838 27 | 0.10222454094559469,0.4140359073839901,0.50121309224,0.040688530878404294,0.3243159442526531,0.5541593684071954,0.0014704002045774199,0.0029408004091548397 28 | 0.10228786210655356,0.4140854304375641,0.5012634470207515,0.04067374073127077,0.3243064433648683,0.5542976351456639,0.0014702122219381233,0.0029404244438762466 29 | 0.09819669276147981,0.40735058325758,0.5014419775600001,0.03893278877741277,0.3399479120423807,0.5600288688155788,0.009736896623161384,0.019473793246322767 30 | 0.09829013220525755,0.40714835131169924,0.5009192034725612,0.039014859984607186,0.33972825765200404,0.559861801757624,0.009738914214670534,0.01947782842934107 31 | 0.20153484907774533,0.41369929612249934,0.6013046463809998,0.06672385309442115,0.24588893124920574,0.5520663855472044,0.0024145380607446944,0.004829076121489389 32 | 0.20182104232262846,0.41333732473343715,0.6011902035396882,0.06670689874221827,0.2457184601702452,0.5520913466430879,0.0024139245330961757,0.0048278490661923515 33 | 0.2034973644874568,0.40258260887152303,0.6009205767858523,0.03302376224940755,0.29132133478511496,0.5544252123157877,0.0021776724524434766,0.004355344904886953 34 | 0.20427595811938243,0.4018778618451649,0.6011696040340614,0.03297328390642976,0.29074523839959093,0.5545816898478939,0.0021730793813115176,0.004346158762623035 35 | 0.2042545001142657,0.805247568451235,1.0013907072590393,0.039754665963199896,0.3401239860185979,0.5486480179581249,0.0014509002176350326,0.002901800435270065 36 | 0.20432503815506248,0.8050195391173818,1.0013742275105244,0.039746802057233285,0.3402215481999209,0.5486625590633532,0.001450613213767638,0.002901226427535276 37 | 0.19749438815923778,0.7767736188365884,1.0014648660998628,0.03654537697324313,0.34567562625708537,0.5724480062257316,0.00981288474431645,0.0196257694886329 38 | 0.1977243286880787,0.7763407693572039,1.0013339436976525,0.03653752436647174,0.34541301169590644,0.5724126567113657,0.009807504873294346,0.019615009746588693 39 | 0.5113454582012038,0.9875671451269058,1.5014268711283152,0.06408094435075885,0.2488195615514334,0.5483034349476044,0.0021922428330522765,0.002360876897133221 40 | 0.5099523214053586,0.9890750574723794,1.5013962003488186,0.06420608108108108,0.24900337837837838,0.548133124648275,0.002195945945945946,0.002364864864864865 41 | 0.5281726011013895,0.9653374700534355,1.5002041657171896,0.03169650771139869,0.30235773798971816,0.5670290966908116,0.002127282396738167,0.004254564793476334 42 | 0.5267805120587503,0.9669337148667762,1.5014419775598078,0.031741523167051304,0.30296467246582637,0.5671676935124177,0.002130303568258477,0.004260607136516954 43 | 0.6113885073083581,1.8561478334251145,2.500385442889754,0.03642384105960265,0.4699703128568166,0.6249180239890437,0.0013701758392327015,0.002740351678465403 44 | 0.5993920351015452,1.8678329704243892,2.500243533988031,0.03667279411764706,0.47290900735294117,0.6249491872692909,0.0013786764705882352,0.0027573529411764703 45 | 0.5245107485705167,1.7259574621911322,2.500290226589627,0.029721362229102165,0.3829205366357069,0.6306603588125284,0.010491916064671482,0.020983832129342964 46 | 0.5232705521471523,1.7270080992351595,2.500679275941572,0.029798588397314512,0.38340506111206746,0.6307416278730167,0.01050094680667929,0.02100189361335858 47 | 0.10142643248351887,0.2555987775228173,0.4014190889682313,0.03602288358134301,0.2641115418281856,0.556267607528456,0.002375890959109666,0.004783043641365512 48 | 0.10139787099744604,0.2556126605188045,0.40126115815487534,0.03616675521110035,0.2638738710584706,0.556055184340617,0.0023750742210694085,0.004781399418731835 49 | 0.200077511578651,0.49341529652950367,0.8013870450881442,0.03024498886414254,0.2603499840916322,0.5469658604482365,0.002099904549793191,0.0021635380209990454 50 | 0.20014240581414355,0.49329372542631117,0.8013778896804337,0.03028797145769623,0.2601809378185525,0.5468650405576614,0.0021024464831804284,0.0021661569826707445 51 | 0.5576618355375407,1.1568686572162847,2.000407873664015,0.022586307782328847,0.36957284961966064,0.6026864789297239,0.001950458357714063,0.003900916715428126 52 | 0.560312493890944,1.1551138647878805,2.000353856712608,0.02255551227113362,0.3688936501753019,0.6028800743716136,0.0019477989871445266,0.0038955979742890533 53 | 0.099959655053388,1.8563333159844682e-08,0.10034332800000001,0.0,0.0,0.0,6.081245439065921e-05,0.00012162490878131841 54 | 0.09995903127903875,1.895361567665772e-08,0.1004348821199542,0.0,0.0,0.0,6.0799513603891166e-05,0.00012159902720778233 55 | 0.06507393670685602,0.3679629318352301,0.9121042969658817,0.06474914103156583,0.23606059997187004,0.5266421171955336,0.0003214852619100243,0.0006429705238200486 56 | 0.06465163741593843,0.36814066101780185,0.9122154698532997,0.06459904043865661,0.2367899044470427,0.5270447730609291,0.0003225416280288675,0.000645083256057735 57 | 0.10211226389930256,0.5881080957329494,1.4584007922234907,0.06429428358354139,0.25350669563243733,0.4949839732899156,0.0002918193314094874,0.0003242437015660971 58 | 0.1025087957894564,0.5853730772751501,1.45726710918,0.06392864080813314,0.253227999740983,0.4945078009567162,0.0002913941591659652,0.00032377128796218355 59 | 0.22431611244658897,1.1168419836832737,2.900425915478342,0.07118003025718608,0.29521936459909226,0.49096107416824286,0.000226928895612708,0.000302571860816944 60 | 0.2255946144428019,1.1146470386319696,2.899967672890092,0.07149856776722448,0.2942032262927785,0.49180149233833637,0.0002261420171867933,0.00030152268958239106 61 | 0.06467301902492832,0.36460028830122615,1.1607119513554767,0.0654792351723298,0.0010757926358949377,0.37308421779892964,6.0893922786505914e-05,8.119189704867455e-05 62 | 0.06477450552069226,0.36389009616547174,1.1615832325086317,0.06557057605650957,0.0008545447164372995,0.3719646381724474,6.0893922786505914e-05,8.119189704867455e-05 63 | 0.09017565761404703,0.20455344287085353,0.6243991753426149,0.20997956124812645,0.002806921923967843,0.5491033649536509,5.450333832947268e-05,0.005314075487123587 64 | 0.09023556705829375,0.20436054164735906,0.6243076218796729,0.20987143168446284,0.00253595554587056,0.5390631978953415,0.005311614730878187,0.005366092830682066 65 | 0.17955665769416676,0.40821852692834026,1.247503982131591,0.21175358612253975,0.001523407094406761,0.5142186957414345,0.0026131435560991885,0.005281885911264317 66 | 0.17930878710570383,0.40701321034739635,1.2476548596000225,0.2113560639715682,0.0014771212794313638,0.5334451642958689,0.002609951132829853,0.005330964015992892 67 | 0.44846373691624686,0.9846778911144324,2.900475467979605,0.2133135656041512,0.0005040770941438103,0.5429804898968701,0.0025203854707190514,0.005337286879169755 68 | 0.44771049417964565,0.9878733338357956,2.9004773556942367,0.21401245551601422,0.00038552787663107945,0.5323987406690607,0.0025207591933570582,0.005338078291814947 69 | 0.11649912675748955,0.5676711680826229,1.8569622433556485,0.07438942163620017,0.00083158525621816,0.33003608194546596,3.7458795325142346e-05,7.491759065028469e-05 70 | 0.11652826369392016,0.5689379262355911,1.857033976483906,0.07445963663607418,0.0008765686458138228,0.32983590990282685,3.7460198539052254e-05,7.492039707810451e-05 71 | 0.10393400799285463,0.08101804812437596,0.5267422143996452,0.062127991831586536,0.0019129703594702543,0.5353032382184792,6.006186371963122e-05,0.03624733475479744 72 | 0.10437293060190994,0.08100015895096012,0.5267296023516126,0.058976133867035846,0.002118758840701839,0.5432454380692968,6.0192012519938607e-05,0.036235591537003044 73 | 0.21061779711014703,0.16084170699844502,1.0509593126847878,0.060911003837108554,0.0005260552048520857,0.5524897593852813,0.00012377769525931428,0.03614308701571977 74 | 0.2103928609287774,0.16057254529535667,1.0511192964474105,0.06091247672253259,0.0006269397889509621,0.5629460803201136,0.00012414649286157667,0.0072004965859714465 75 | 0.5332376311368736,0.3881400338611712,2.626797044789008,0.057969592937714566,0.00011443518064410659,0.5495271439368348,0.00032695765898316167,0.036128821317639365 76 | 0.5330743787167691,0.3871841865300841,2.6270330090370653,0.057729941291585124,0.00017938682322243967,0.5967028146591307,0.00032615786040443573,0.03604044357469015 77 | 0.10260240081135463,0.4948380072155441,1.4573879228812354,0.08483046190645506,0.25317580890196206,0.5098026660971577,0.000258590037818793,0.0005495038303649351 78 | 0.10259085233829307,0.4945803584223789,1.4561462646529346,0.08477178691492113,0.25323247995862425,0.509871599678955,0.0002585983966899405,0.0005495215929661235 79 | 0.09616898024804757,0.10063210076116369,0.5183337147997614,0.09955060740483025,0.0013220840219187614,0.5435744137769151,5.7986141312226376e-05,0.06392972079672958 80 | 0.09624845153677769,0.10060517931992873,0.5182188050342635,0.09949461402951454,0.0011580558523695383,0.548418610064512,5.775839662690964e-05,0.06393854506598896 81 | 0.19271278316901944,0.19955818234851677,1.0357061090653845,0.09949843630141028,0.00037764796129108395,0.5293450997410617,0.00011801498790346374,0.06390511594972562 82 | 0.48871840741702505,0.4838344875914843,2.5859436092688766,0.09744358529272526,3.156067539845353e-05,0.4592888393349177,0.00031560675398453525,0.06375256430487612 83 | 0.48849712500864406,0.48425433462110823,2.5859757004026758,0.0977602523659306,4.73186119873817e-05,0.63136734438567,0.0003154574132492114,0.0637223974763407 84 | 0.2618449170189836,0.8906782495274983,2.899969560603912,0.11632197717326011,0.33549300609285165,0.6040390702893399,0.00017162962327297692,0.0005148888698189308 85 | 0.263105827522675,0.888519060201413,2.8999582343202386,0.11591084440634376,0.33500214316330906,0.6036113951685198,0.00017145306472353194,0.0005143591941705959 86 | 0.057453742230176796,0.13182240931423786,0.8728237606635318,0.14100968188105117,0.006795246145176989,0.755960983964975,5.122688386865427e-05,0.00010245376773730854 87 | 0.05746859662218673,0.13180227636906994,0.87305170212653,0.14093284155524818,0.006359817632293428,0.7528313727199691,5.122688386865427e-05,0.00010245376773730854 88 | 0.08612537074511777,0.18189250560342257,1.2614063941633609,0.1407010113956145,0.0027332757515811765,0.6291263188813299,5.57242762809618e-05,0.0001114485525619236 89 | 0.08619339451948183,0.18247810554113025,1.261382797743263,0.1407751030870389,0.002351498941268249,0.6436702345297446,5.572272372673576e-05,0.00011144544745347152 90 | 0.05941391553449186,0.061743395620297965,0.5879232626864067,0.07811174626590447,0.003843418245040963,0.664811843178003,5.268565106293301e-05,0.00010537130212586602 91 | 0.0593941172662676,0.06189285856165372,0.5881652271881401,0.07808894040781916,0.003980715527688498,0.685072121111135,5.268981505874914e-05,0.00010537963011749828 92 | 0.09332335693946356,0.09000324612622664,0.8823892796700917,0.07553746305846902,0.0011096946166772904,0.4965541195125591,5.794749956539375e-05,0.0001158949991307875 93 | 0.09339608142698275,0.08979958286560501,0.8824808338093375,0.07537739402543969,0.0011647784892649146,0.48747447281313594,5.7949178570393766e-05,0.00011589835714078753 94 | --------------------------------------------------------------------------------