semf
semf::app::BatteryModelWithoutDataset< T_CAPACITY, T_SOCSOH, T_VOLTAGE, T_CURRENT, T_TEMPERATURE > Class Template Referenceabstract

Simple battery model implementation without using a battery model. More...

#include <batterymodelwithoutdataset.h>

Inheritance diagram for semf::app::BatteryModelWithoutDataset< T_CAPACITY, T_SOCSOH, T_VOLTAGE, T_CURRENT, T_TEMPERATURE >:
Inheritance graph
Collaboration diagram for semf::app::BatteryModelWithoutDataset< T_CAPACITY, T_SOCSOH, T_VOLTAGE, T_CURRENT, T_TEMPERATURE >:
Collaboration graph

Public Member Functions

 BatteryModelWithoutDataset (T_CAPACITY designCapacity)
 Constructor. More...
 
virtual ~BatteryModelWithoutDataset ()=default
 
void update (uint16_t timeDelta, T_VOLTAGE voltage, T_CURRENT current, T_TEMPERATURE temperature)
 Updates the state of charge and state of health. More...
 
virtual void updateSoc (uint16_t timeDelta, T_VOLTAGE voltage, T_CURRENT current, T_TEMPERATURE temperature)=0
 Updates the state of charge relative to the current, voltage and temperature of the battery. More...
 
virtual void updateSoh ()=0
 
T_SOCSOH relativeSoc () const
 Returns the relative state of charge. More...
 
T_SOCSOH absoluteSoc () const
 Returns the absolute state of charge. More...
 
T_SOCSOH soh () const
 Returns the state of health of charge. More...
 
T_CAPACITY designCapacity () const
 Returns the designed battery capacity. More...
 
T_CAPACITY fullChargeCapacity () const
 Returns the battery capacity of a full charged battery influenced by the state of health. More...
 
T_CAPACITY remainingCapacity () const
 Returns the remaining battery capacity. More...
 
void setAbsoluteSoc (T_SOCSOH soc)
 Sets the absolute state of charge. More...
 
void setSoh (T_SOCSOH soh)
 Sets the state of health. More...
 
- Public Member Functions inherited from semf::app::BatteryStateOfCharge< T_SOCSOH, T_VOLTAGE, T_CURRENT, T_TEMPERATURE >
virtual ~BatteryStateOfCharge ()=default
 
virtual void updateSoc (uint16_t timeDelta, T_VOLTAGE voltage, T_CURRENT current, T_TEMPERATURE temperature)=0
 Updates the state of charge relative to the current, voltage and temperature of the battery. More...
 
virtual T_SOCSOH relativeSoc () const=0
 Returns the relative state of charge. This is the value normally showed on a display. More...
 
virtual T_SOCSOH absoluteSoc () const=0
 Returns the absolute state of charge. More...
 
- Public Member Functions inherited from semf::app::BatteryStateOfHealth< T_SOCSOH, T_VOLTAGE, T_CURRENT, T_TEMPERATURE >
virtual ~BatteryStateOfHealth ()=default
 
virtual void updateSoh ()=0
 
virtual T_SOCSOH soh () const=0
 Returns the state of health. More...
 

Additional Inherited Members

- Protected Member Functions inherited from semf::app::BatteryStateOfCharge< T_SOCSOH, T_VOLTAGE, T_CURRENT, T_TEMPERATURE >
virtual void initSocByLastSoc (T_SOCSOH lastAbsoluteSoc)=0
 Initializes the state of charge calculation by the open circuit voltage after booting. More...
 
virtual void initSocByOcv (T_VOLTAGE ocv)
 Initializes the state of charge calculation by the open circuit voltage after booting. More...
 
virtual void setAbsoluteSoc (T_SOCSOH soc)=0
 Sets the absolute state of charge. More...
 
- Protected Member Functions inherited from semf::app::BatteryStateOfHealth< T_SOCSOH, T_VOLTAGE, T_CURRENT, T_TEMPERATURE >
virtual void initSoh (T_SOCSOH lastSoh)=0
 Initializes the state of health calculation by the last known state of charge after booting. More...
 
virtual void setSoh (T_SOCSOH soh)=0
 Sets the state of health. More...
 

Detailed Description

template<typename T_CAPACITY, typename T_SOCSOH, typename T_VOLTAGE, typename T_CURRENT, typename T_TEMPERATURE>
class semf::app::BatteryModelWithoutDataset< T_CAPACITY, T_SOCSOH, T_VOLTAGE, T_CURRENT, T_TEMPERATURE >

Simple battery model implementation without using a battery model.

To use this class, inherit from it and implement the both functions updateSoc and updateSoh with the calculation algorithms for state of charge and state of health.

Template Parameters
T_CAPACITYType for capacity in Ah.
T_SOCSOHType of state of charge and state of health in percentage.
T_VOLTAGEType of voltage in V.
T_CURRENTType of current in A. Charging current is positive, discharging is negative.
T_TEMPERATUREType of temperature in °C.

Definition at line 36 of file batterymodelwithoutdataset.h.

Constructor & Destructor Documentation

◆ BatteryModelWithoutDataset()

template<typename T_CAPACITY , typename T_SOCSOH , typename T_VOLTAGE , typename T_CURRENT , typename T_TEMPERATURE >
semf::app::BatteryModelWithoutDataset< T_CAPACITY, T_SOCSOH, T_VOLTAGE, T_CURRENT, T_TEMPERATURE >::BatteryModelWithoutDataset ( T_CAPACITY  designCapacity)
explicit

Constructor.

Parameters
designCapacityDesigned battery capacity of a new battery in Ah.

Definition at line 114 of file batterymodelwithoutdataset.h.

◆ ~BatteryModelWithoutDataset()

template<typename T_CAPACITY , typename T_SOCSOH , typename T_VOLTAGE , typename T_CURRENT , typename T_TEMPERATURE >
virtual semf::app::BatteryModelWithoutDataset< T_CAPACITY, T_SOCSOH, T_VOLTAGE, T_CURRENT, T_TEMPERATURE >::~BatteryModelWithoutDataset ( )
virtualdefault

Member Function Documentation

◆ absoluteSoc()

template<typename T_CAPACITY , typename T_SOCSOH , typename T_VOLTAGE , typename T_CURRENT , typename T_TEMPERATURE >
T_SOCSOH semf::app::BatteryModelWithoutDataset< T_CAPACITY, T_SOCSOH, T_VOLTAGE, T_CURRENT, T_TEMPERATURE >::absoluteSoc
virtual

Returns the absolute state of charge.

Returns
Absolute soc in percent.

Implements semf::app::BatteryStateOfCharge< T_SOCSOH, T_VOLTAGE, T_CURRENT, T_TEMPERATURE >.

Definition at line 137 of file batterymodelwithoutdataset.h.

◆ designCapacity()

template<typename T_CAPACITY , typename T_SOCSOH , typename T_VOLTAGE , typename T_CURRENT , typename T_TEMPERATURE >
T_CAPACITY semf::app::BatteryModelWithoutDataset< T_CAPACITY, T_SOCSOH, T_VOLTAGE, T_CURRENT, T_TEMPERATURE >::designCapacity

Returns the designed battery capacity.

Returns
Battery capacity in Ah.

Definition at line 149 of file batterymodelwithoutdataset.h.

◆ fullChargeCapacity()

template<typename T_CAPACITY , typename T_SOCSOH , typename T_VOLTAGE , typename T_CURRENT , typename T_TEMPERATURE >
T_CAPACITY semf::app::BatteryModelWithoutDataset< T_CAPACITY, T_SOCSOH, T_VOLTAGE, T_CURRENT, T_TEMPERATURE >::fullChargeCapacity

Returns the battery capacity of a full charged battery influenced by the state of health.

Returns
Battery capacity in Ah.

Definition at line 155 of file batterymodelwithoutdataset.h.

◆ relativeSoc()

template<typename T_CAPACITY , typename T_SOCSOH , typename T_VOLTAGE , typename T_CURRENT , typename T_TEMPERATURE >
T_SOCSOH semf::app::BatteryModelWithoutDataset< T_CAPACITY, T_SOCSOH, T_VOLTAGE, T_CURRENT, T_TEMPERATURE >::relativeSoc
virtual

Returns the relative state of charge.

Note
relative soc = absolute soc * soh.
Returns
relative soc in percent.

Implements semf::app::BatteryStateOfCharge< T_SOCSOH, T_VOLTAGE, T_CURRENT, T_TEMPERATURE >.

Definition at line 128 of file batterymodelwithoutdataset.h.

◆ remainingCapacity()

template<typename T_CAPACITY , typename T_SOCSOH , typename T_VOLTAGE , typename T_CURRENT , typename T_TEMPERATURE >
T_CAPACITY semf::app::BatteryModelWithoutDataset< T_CAPACITY, T_SOCSOH, T_VOLTAGE, T_CURRENT, T_TEMPERATURE >::remainingCapacity

Returns the remaining battery capacity.

Returns
Battery capacity in Ah.

Definition at line 161 of file batterymodelwithoutdataset.h.

◆ setAbsoluteSoc()

template<typename T_CAPACITY , typename T_SOCSOH , typename T_VOLTAGE , typename T_CURRENT , typename T_TEMPERATURE >
void semf::app::BatteryModelWithoutDataset< T_CAPACITY, T_SOCSOH, T_VOLTAGE, T_CURRENT, T_TEMPERATURE >::setAbsoluteSoc ( T_SOCSOH  soc)
virtual

Sets the absolute state of charge.

Parameters
socAbsolute soc in percent.

Implements semf::app::BatteryStateOfCharge< T_SOCSOH, T_VOLTAGE, T_CURRENT, T_TEMPERATURE >.

Definition at line 167 of file batterymodelwithoutdataset.h.

◆ setSoh()

template<typename T_CAPACITY , typename T_SOCSOH , typename T_VOLTAGE , typename T_CURRENT , typename T_TEMPERATURE >
void semf::app::BatteryModelWithoutDataset< T_CAPACITY, T_SOCSOH, T_VOLTAGE, T_CURRENT, T_TEMPERATURE >::setSoh ( T_SOCSOH  soh)
virtual

Sets the state of health.

Parameters
sohSoh in percent.

Implements semf::app::BatteryStateOfHealth< T_SOCSOH, T_VOLTAGE, T_CURRENT, T_TEMPERATURE >.

Definition at line 173 of file batterymodelwithoutdataset.h.

◆ soh()

template<typename T_CAPACITY , typename T_SOCSOH , typename T_VOLTAGE , typename T_CURRENT , typename T_TEMPERATURE >
T_SOCSOH semf::app::BatteryModelWithoutDataset< T_CAPACITY, T_SOCSOH, T_VOLTAGE, T_CURRENT, T_TEMPERATURE >::soh
virtual

Returns the state of health of charge.

Returns
soh in percent.

Implements semf::app::BatteryStateOfHealth< T_SOCSOH, T_VOLTAGE, T_CURRENT, T_TEMPERATURE >.

Definition at line 143 of file batterymodelwithoutdataset.h.

◆ update()

template<typename T_CAPACITY , typename T_SOCSOH , typename T_VOLTAGE , typename T_CURRENT , typename T_TEMPERATURE >
void semf::app::BatteryModelWithoutDataset< T_CAPACITY, T_SOCSOH, T_VOLTAGE, T_CURRENT, T_TEMPERATURE >::update ( uint16_t  timeDelta,
T_VOLTAGE  voltage,
T_CURRENT  current,
T_TEMPERATURE  temperature 
)

Updates the state of charge and state of health.

This function should be called periodically (e.g. every 100ms).

Parameters
timeDeltaMilliseconds past since last function call.
voltageBattery voltage in V.
currentBattery current in A. Charging current is positive, discharging current is negative.
temperatureBattery temperature in °C.

Definition at line 120 of file batterymodelwithoutdataset.h.

◆ updateSoc()

template<typename T_CAPACITY , typename T_SOCSOH , typename T_VOLTAGE , typename T_CURRENT , typename T_TEMPERATURE >
virtual void semf::app::BatteryModelWithoutDataset< T_CAPACITY, T_SOCSOH, T_VOLTAGE, T_CURRENT, T_TEMPERATURE >::updateSoc ( uint16_t  timeDelta,
T_VOLTAGE  voltage,
T_CURRENT  current,
T_TEMPERATURE  temperature 
)
pure virtual

Updates the state of charge relative to the current, voltage and temperature of the battery.

Parameters
timeDeltaMilliseconds past since last function call.
voltageBattery voltage in V.
currentBattery current in A. Charging is positive, discharging is negative.
temperatureBattery temperature in °C.

Implements semf::app::BatteryStateOfCharge< T_SOCSOH, T_VOLTAGE, T_CURRENT, T_TEMPERATURE >.

◆ updateSoh()

template<typename T_CAPACITY , typename T_SOCSOH , typename T_VOLTAGE , typename T_CURRENT , typename T_TEMPERATURE >
virtual void semf::app::BatteryModelWithoutDataset< T_CAPACITY, T_SOCSOH, T_VOLTAGE, T_CURRENT, T_TEMPERATURE >::updateSoh ( )
pure virtual