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.