![]() |
SLIDE
3.0.0
A simulator for lithium-ion battery pack degradation
|
#include <StorageUnit.hpp>
Public Member Functions | |
StorageUnit ()=default | |
< basic getters and setters More... | |
StorageUnit (std::string_view ID_) | |
StorageUnit (std::string_view ID_, StorageUnit *parent_, bool blockDegAndTherm_) | |
virtual | ~StorageUnit ()=default |
const std::string & | getID () |
void | setID (std::string IDi) |
Return the full ID string, including the ID of the parent module. More... | |
virtual std::string | getFullID () |
virtual double | Cap () const =0 |
auto * | getParent () |
virtual double | I () const =0 |
virtual double | getRtot ()=0 |
virtual size_t | getNcells ()=0 |
return the number of single cells connected to this SU More... | |
bool | isCharging () |
negative means charge. More... | |
bool | isDischarging () |
positive means discharge. More... | |
virtual void | getStates (getStates_t s)=0 |
returns one long array with the states More... | |
virtual viewStates_t | viewStates () |
Only for cells to see individual states. More... | |
void | setBlockDegAndTherm (bool block) |
virtual void | setParent (StorageUnit *p) |
set the parent More... | |
virtual Status | setCurrent (double Inew, bool checkV=true, bool print=true)=0 |
virtual Status | setVoltage (double Vnew, bool checkI=true, bool print=true) |
virtual Status | setStates (setStates_t s, bool checkStates=true, bool print=true)=0 |
opposite of getStates, check the states are valid? More... | |
virtual void | backupStates () |
Back-up states. More... | |
virtual void | restoreStates () |
restore backed-up states. More... | |
virtual double | getOCV ()=0 |
virtual double | V ()=0 |
print is an optional argument More... | |
virtual Status | checkVoltage (double &v, bool print) noexcept=0 |
get the voltage and check if it is valid More... | |
virtual double | getVhigh ()=0 |
return the voltage of the cell with the highest voltage More... | |
virtual double | getVlow ()=0 |
return the voltage of the cell with the lowest voltage More... | |
virtual double | Vmin () const =0 |
lower voltage limit of the cell More... | |
virtual double | VMIN () const =0 |
safety cut off More... | |
virtual double | Vmax () const =0 |
upper voltage limit of the cell More... | |
virtual double | VMAX () const =0 |
safety cut off More... | |
virtual double | T ()=0 |
virtual double | getThotSpot ()=0 |
the T of the hottest element in the SU More... | |
virtual double | getThermalSurface ()=0 |
return the 'A' for the thermal model of this SU (Q = hA*dT) More... | |
virtual double | thermalModel (int Nneighb, double Tneighb[], double Kneighb[], double Aneighb[], double tim)=0 |
calculate the thermal model of this SU More... | |
virtual void | setT (double Tnew)=0 |
functionality More... | |
virtual bool | validStates (bool print=true)=0 |
checks if a state array is valid More... | |
virtual StorageUnit * | copy ()=0 |
copy this SU to a new object More... | |
virtual void | timeStep_CC (double dt, int steps=1)=0 |
take a number of time steps More... | |
virtual void | storeData ()=0 |
virtual void | writeData (const std::string &prefix)=0 |
Protected Types | |
using | setStates_t = std::span< double > & |
To pass states to read, non-expandable container. More... | |
using | getStates_t = std::vector< double > & |
To pass states to save, expandable container. More... | |
using | viewStates_t = std::span< double > |
Protected Member Functions | |
virtual size_t | calculateNcells () |
Protected Attributes | |
std::string | ID { "StorageUnit" } |
identification string More... | |
StorageUnit * | parent { nullptr } |
pointer to the SU 'above' this one [e.g. the module to which a cell is connected] More... | |
bool | blockDegAndTherm { false } |
if true, degradation and the thermal ODE are ignored More... | |
|
protected |
To pass states to save, expandable container.
|
protected |
To pass states to read, non-expandable container.
|
protected |
|
default |
< basic getters and setters
|
inline |
|
inline |
|
virtualdefault |
|
inlinevirtual |
Back-up states.
|
inlineprotectedvirtual |
Reimplemented in slide::Module.
|
pure virtual |
Implemented in slide::Cell, slide::Module_p, slide::Module_s, and slide::Battery.
|
pure virtualnoexcept |
get the voltage and check if it is valid
Implemented in slide::Cell, slide::Module, and slide::Battery.
|
pure virtual |
copy this SU to a new object
Implemented in slide::Cell_ECM< N_RC >, slide::Cell_SPM, slide::Module_p, slide::Module_s, slide::Battery, and slide::Module.
|
inlinevirtual |
|
inline |
|
pure virtual |
return the number of single cells connected to this SU
Implemented in slide::Module, slide::Battery, and slide::Cell.
|
pure virtual |
Implemented in slide::Cell_ECM< N_RC >, slide::Cell_SPM, slide::Module_p, slide::Module_s, and slide::Battery.
|
inline |
|
pure virtual |
Implemented in slide::Cell_ECM< N_RC >, slide::Cell_SPM, slide::Module_p, slide::Module_s, and slide::Battery.
|
pure virtual |
returns one long array with the states
Implemented in slide::Cell_ECM< N_RC >, and slide::Cell_SPM.
|
pure virtual |
return the 'A' for the thermal model of this SU (Q = hA*dT)
Implemented in slide::Cell_ECM< N_RC >, slide::Cell_SPM, slide::Module, and slide::Battery.
|
pure virtual |
the T of the hottest element in the SU
Implemented in slide::Cell, slide::Cell_ECM< N_RC >, slide::Module, and slide::Battery.
|
pure virtual |
return the voltage of the cell with the highest voltage
Implemented in slide::Cell, slide::Module, and slide::Battery.
|
pure virtual |
return the voltage of the cell with the lowest voltage
Implemented in slide::Cell, slide::Module, and slide::Battery.
|
pure virtual |
Implemented in slide::Cell_ECM< N_RC >, slide::Cell_SPM, slide::Module_p, slide::Module_s, and slide::Battery.
|
inline |
negative means charge.
|
inline |
positive means discharge.
|
inlinevirtual |
restore backed-up states.
virtual int getNstates() = 0; virtual double SOC() = 0; voltage
|
inline |
|
pure virtual |
Implemented in slide::Cell_ECM< N_RC >, slide::Cell_SPM, slide::Module_p, slide::Module_s, and slide::Battery.
|
inline |
Return the full ID string, including the ID of the parent module.
|
inlinevirtual |
set the parent
|
pure virtual |
opposite of getStates, check the states are valid?
Implemented in slide::Cell_ECM< N_RC >, slide::Battery, slide::Module, and slide::Cell_SPM.
|
pure virtual |
functionality
Implemented in slide::Cell_SPM, slide::Cell_ECM< N_RC >, slide::Module, and slide::Battery.
|
inlinevirtual |
Reimplemented in slide::Cell_ECM< N_RC >, and slide::Module_p.
|
pure virtual |
Implemented in slide::Cell, slide::Module, and slide::Battery.
|
pure virtual |
Implemented in slide::Cell_SPM, slide::Cell_ECM< N_RC >, slide::Module, and slide::Battery.
|
pure virtual |
calculate the thermal model of this SU
Implemented in slide::Cell, slide::Cell_SPM, slide::Battery, and slide::Module.
|
pure virtual |
take a number of time steps
Data collection of cycling data (I, V, T, etc. for every cell)
Implemented in slide::Cell_ECM< N_RC >, slide::Cell_SPM, slide::Module_p, slide::Module_s, and slide::Battery.
|
pure virtual |
print is an optional argument
Implemented in slide::Cell_ECM< N_RC >, slide::Cell_SPM, slide::Module_p, slide::Module_s, and slide::Battery.
|
pure virtual |
checks if a state array is valid
Implemented in slide::Cell_ECM< N_RC >, slide::Cell_SPM, slide::Module, and slide::Battery.
|
inlinevirtual |
Only for cells to see individual states.
Reimplemented in slide::Cell_ECM< N_RC >, and slide::Cell_SPM.
|
pure virtual |
upper voltage limit of the cell
Implemented in slide::Cell, slide::Module_p, slide::Module_s, and slide::Battery.
|
pure virtual |
safety cut off
thermal model
Implemented in slide::Cell, slide::Module_p, slide::Module_s, and slide::Battery.
|
pure virtual |
lower voltage limit of the cell
Implemented in slide::Cell, slide::Module_p, slide::Module_s, and slide::Battery.
|
pure virtual |
safety cut off
Implemented in slide::Cell, slide::Module_p, slide::Module_s, and slide::Battery.
|
pure virtual |
Implemented in slide::Cell, slide::Module, and slide::Battery.
|
protected |
if true, degradation and the thermal ODE are ignored
|
protected |
identification string
|
protected |
pointer to the SU 'above' this one [e.g. the module to which a cell is connected]