![]() |
SLIDE
3.0.0
A simulator for lithium-ion battery pack degradation
|
Functions | |
void | Vequalisation_Rdc (double Rdc) |
void | Vequalisation () |
void | thermalModel () |
void | degrade (auto &&su) |
void | degradation_1cell () |
void | degradation_electricalModel () |
void | degradation_variations () |
void | degradation_thermal () |
void slide::paperCode::paper2022::degradation_1cell | ( | ) |
< ensure the global settings are appropriately
< Make one cell with standard parameters//!<Degradation settings
< Kinetic SEI + porosity + Dai/Laresgoiti LAM
< add model 4.
< add model 0.
< cell-to-cell variation parameters are 0
< Wrap the cell in a series-module
< single-threaded, conventional coolsystem (std::string IDi, double Ti, bool print, bool pari, int Ncells, int coolControl, int cooltype)
< Wrap the module in a Battery and set number of series and parallel
< call the degradation function
< #TODO
void slide::paperCode::paper2022::degradation_electricalModel | ( | ) |
< ensure the global settings are appropriately
< Get the battery from makeBattery
< just for naming since there is no thermal model
< todo std::shared_ptr<StorageUnit> su = makeBattery_EPFL(capspread, Rcellspread, degratespread, contactR,coolControl,IDaddition,1);
< degrade the battery todo degrade(su);
< Sensitivty with 10 times higher Rcontact
void slide::paperCode::paper2022::degradation_thermal | ( | ) |
< ensure the global settings are appropriately
< all three spread
< just for naming since there is no thermal model
void slide::paperCode::paper2022::degradation_variations | ( | ) |
< ensure the global settings are appropriately
< resistance spread
< just for naming since there is no thermal model
< capacity spread
< just for naming since there is no thermal model
< degradation rate spread
< just for naming since there is no thermal model
< all three spread
< just for naming since there is no thermal model
void slide::paperCode::paper2022::degrade | ( | auto && | su | ) |
< standard settings for degradation simulation
< do a checkup ever 250 cycles
< balance every 10 cycles
< Make the procedure
< rebalance to 3.1V
< how often to store data (if 0, nothing is stored, not even usage stats)
< Simulate the cycle ageing
void slide::paperCode::paper2022::thermalModel | ( | ) |
< calculate the cell temperatures in a small module use exactly the same code as for V equalisation, but with Rcontact = 0 and the global setting correctly
< ensure the global settings are appropriately
< Make the module with 0 contact resistance
< normal distribution with mean 1 and std 0.4%
< normal distribution with mean 1 and std 2.5%
< normal distribution with mean 1 and std 10%
< add model 4.
< add model 0.
< one with half the capacity and double the resistance and 10% more degradation
< print, no multithread, coolcontrol 1, HVAC coolsystem
< Make the cycler
< store data every 2 seconds (or every dt)
< do a CC charge-discharge
< CC discharge
void slide::paperCode::paper2022::Vequalisation | ( | ) |
< ensure the global settings are appropriately
< Simulate with no contact R and with a value of 1 mOhm
void slide::paperCode::paper2022::Vequalisation_Rdc | ( | double | Rdc | ) |
< Make the module with 0 contact resistance
< normal distribution with mean 1 and std 0.4%
< normal distribution with mean 1 and std 2.5%
< normal distribution with mean 1 and std 10%
< add model 4.
< add model 0.
< one with half the capacity and double the resistance and 10% more degradation
< print, no multithread, coolcontrol 1, HVAC coolsystem
< Make the cycler
< #TODO we may make this shared pointer. Otherwise it will cause problems. Or unique.
< store data every 2 seconds (or every dt)
< do a CC charge-discharge
< CC discharge
< write the data