A battery abstraction. More...
#include <Battery.hh>
Inherits enable_shared_from_this< Battery >.
Public Types | |
typedef std::map< uint32_t, double > | PowerLoad_M |
Typedef the powerload map. More... | |
Public Member Functions | |
Battery () | |
Constructor. More... | |
virtual | ~Battery () |
Destructor. More... | |
uint32_t | AddConsumer () |
Create a unique consumer. More... | |
virtual void | Init () |
Initialize. More... | |
virtual void | Load (sdf::ElementPtr _sdf) |
Load the battery. More... | |
std::string | Name () const |
Return the name of the battery. More... | |
bool | PowerLoad (const uint32_t _consumerId, double &_powerLoad) const |
Get consumer power load in watts. More... | |
const PowerLoad_M & | PowerLoads () const |
Get list of power loads in watts. More... | |
bool | RemoveConsumer (const uint32_t _consumerId) |
Remove a consumer. More... | |
virtual void | ResetVoltage () |
Reset the battery voltage to the initial value. More... | |
bool | SetPowerLoad (const uint32_t _consumerId, const double _powerLoad) |
Set consumer power load in watts. More... | |
void | SetUpdateFunc (std::function< double(const BatteryPtr &)> _updateFunc) |
Setup function to update voltage. More... | |
void | Update () |
Update the battery. More... | |
virtual void | UpdateParameters (const sdf::ElementPtr _sdf) |
Update the parameters using new sdf values. More... | |
double | Voltage () const |
Get the real voltage in volts. More... | |
Protected Member Functions | |
void | InitConsumers () |
Initialize the list of consumers. More... | |
A battery abstraction.
The default battery model is ideal: It just takes the initial voltage value as its constant voltage value. This behavior can be changed by specifying a custom update function.
The battery handles a list of consumers. It updates itself after each simulation iteration. The update function takes the power loads for each consumer and current voltage value as inputs and returns a new voltage value.
typedef std::map<uint32_t, double> PowerLoad_M |
Typedef the powerload map.
|
explicit |
Constructor.
|
virtual |
Destructor.
uint32_t AddConsumer | ( | ) |
Create a unique consumer.
|
virtual |
Initialize.
|
protected |
Initialize the list of consumers.
|
virtual |
Load the battery.
[in] | _sdf | Shared point to an sdf element. |
std::string Name | ( | ) | const |
Return the name of the battery.
bool PowerLoad | ( | const uint32_t | _consumerId, |
double & | _powerLoad | ||
) | const |
Get consumer power load in watts.
[in] | _consumerId | Unique consumer identifier. |
[out] | _powerLoad | Power load consumption in watts. |
const PowerLoad_M& PowerLoads | ( | ) | const |
Get list of power loads in watts.
bool RemoveConsumer | ( | const uint32_t | _consumerId | ) |
Remove a consumer.
[in] | _consumerId | Unique consumer identifier. |
|
virtual |
Reset the battery voltage to the initial value.
The initial value might have been loaded from an sdf element.
bool SetPowerLoad | ( | const uint32_t | _consumerId, |
const double | _powerLoad | ||
) |
Set consumer power load in watts.
[in] | _consumerId | Unique consumer identifier. |
[in] | _powerLoad | Power load in watts. |
void SetUpdateFunc | ( | std::function< double(const BatteryPtr &)> | _updateFunc | ) |
Setup function to update voltage.
[in] | _updateFunc | The update function callback that is used to modify the battery's voltage. The parameter to the update function callback is a reference to an instance of Battery::UpdateData. The update function must return the new battery voltage as a double. |
void Update | ( | ) |
Update the battery.
This will in turn trigger the function set using the SetUpdateFunc function.
|
virtual |
Update the parameters using new sdf values.
[in] | _sdf | SDF values to update from. |
double Voltage | ( | ) | const |
Get the real voltage in volts.