ns-3
ns3::LiIonEnergySource Class Reference

Model a generic Lithium Ion Battery basing on [1][2]. More...

#include <li-ion-energy-source.h>

Inheritance diagram for ns3::LiIonEnergySource:
Collaboration diagram for ns3::LiIonEnergySource:

List of all members.

Public Member Functions

virtual double GetInitialEnergy (void) const
void SetInitialEnergy (double initialEnergyJ)
virtual double GetSupplyVoltage (void) const
void SetInitialSupplyVoltage (double supplyVoltageV)
virtual double GetRemainingEnergy (void)
virtual double GetEnergyFraction (void)
virtual void DecreaseRemainingEnergy (double energyJ)
virtual void IncreaseRemainingEnergy (double energyJ)
virtual void UpdateEnergySource (void)
void SetEnergyUpdateInterval (Time interval)
Time GetEnergyUpdateInterval (void) const
- Public Member Functions inherited from ns3::EnergySource
void SetNode (Ptr< Node > node)
 Sets pointer to node containing this EnergySource.
Ptr< NodeGetNode (void) const
void AppendDeviceEnergyModel (Ptr< DeviceEnergyModel > deviceEnergyModelPtr)
DeviceEnergyModelContainer FindDeviceEnergyModels (TypeId tid)
DeviceEnergyModelContainer FindDeviceEnergyModels (std::string name)
void StartDeviceModels (void)
void DisposeDeviceModels (void)
- Public Member Functions inherited from ns3::Object
virtual TypeId GetInstanceTypeId (void) const
template<typename T >
Ptr< T > GetObject (void) const
template<typename T >
Ptr< T > GetObject (TypeId tid) const
void Dispose (void)
void AggregateObject (Ptr< Object > other)
AggregateIterator GetAggregateIterator (void) const
void Start (void)
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount (const SimpleRefCount &o)
SimpleRefCountoperator= (const SimpleRefCount &o)
void Ref (void) const
void Unref (void) const
uint32_t GetReferenceCount (void) const
- Public Member Functions inherited from ns3::ObjectBase
void SetAttribute (std::string name, const AttributeValue &value)
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
void GetAttribute (std::string name, AttributeValue &value) const
bool GetAttributeFailSafe (std::string name, AttributeValue &attribute) const
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)

Static Public Member Functions

static TypeId GetTypeId (void)
 This method returns the TypeId associated to ns3::LiIonEnergySource.

Additional Inherited Members

- Protected Member Functions inherited from ns3::EnergySource
double CalculateTotalCurrent (void)
void NotifyEnergyDrained (void)
void BreakDeviceEnergyModelRefCycle (void)
- Protected Member Functions inherited from ns3::Object
virtual void NotifyNewAggregate (void)
 Object (const Object &o)

Detailed Description

Model a generic Lithium Ion Battery basing on [1][2].

The model can be fitted to any type of Li-Ion Battery, simply changing the model parameters. The default values are fitted for the Panasonic CGR18650DA Li-Ion Battery [3].

The energy is drained as defined from the EnergySource interface but, this class consider the non-linear behaviour of Li-Ion cell. Each time energy is drained from the cell, the class evaluates the discharge curve to get the actual cell's voltage, accordingly to State of Charge (SOC) and current's drain.

If the actual voltage of the cell goes below the minimum threshold voltage, the cell is considered depleted and the energy drained event fired up.

The model requires several parameters to approximates the discharge curves:

  • IntialCellVoltage, maximum voltage of the fully charged cell
  • NominalCellVoltage, nominal cell's voltage, is used to determine the end of the nominal zone.
  • ExpCellVoltage, cell's voltage at the end of the exponential zone
  • RatedCapacity, rated capacity of the cell, in Ah
  • NomCapacity, cell's capacity at the end of the nominal zone, in Ah
  • ExpCapacity, cell's capacity at the end of the exponential zone, in Ah
  • InternalResistance, internal resistance of the cell, in Ohms
  • TypCurrent, typical discharge current value, used during the fitting process, in Ah
  • ThresholdVoltage, minimum threshold voltage below which the cell is considered depleted

For a complete reference of the energy source model and model's fitting please refer to UAN Framework page and Li-Ion model fitting page.

References: [1] C. M. Shepherd, "Design of Primary and Secondary Cells - Part 3. Battery discharge equation," U.S. Naval Research Laboratory, 1963 [2] Tremblay, O.; Dessaint, L.-A.; Dekkiche, A.-I., "A Generic Battery Model for the Dynamic Simulation of Hybrid Electric Vehicles," Ecole de Technologie Superieure, Universite du Quebec, 2007 [3] http://www.panasonic.com/industrial/includes/pdf/Panasonic_LiIon_CGR18650DA.pdf


Member Function Documentation

void ns3::LiIonEnergySource::DecreaseRemainingEnergy ( double  energyJ)
virtual
Parameters:
energyJAmount of energy (in Joules) to decrease from energy source.

Implements DecreaseRemainingEnergy.

References NS_ASSERT, and NS_LOG_FUNCTION.

double ns3::LiIonEnergySource::GetEnergyFraction ( void  )
virtual
Returns:
Energy fraction.

Implements GetEnergyFraction.

Implements ns3::EnergySource.

References NS_LOG_FUNCTION, and UpdateEnergySource().

Time ns3::LiIonEnergySource::GetEnergyUpdateInterval ( void  ) const
Returns:
The interval between each energy update.

References NS_LOG_FUNCTION.

Referenced by GetTypeId().

double ns3::LiIonEnergySource::GetInitialEnergy ( void  ) const
virtual
Returns:
Initial energy stored in energy source, in Joules.

Implements GetInitialEnergy.

Implements ns3::EnergySource.

References NS_LOG_FUNCTION.

Referenced by GetTypeId().

double ns3::LiIonEnergySource::GetRemainingEnergy ( void  )
virtual
Returns:
Remaining energy in energy source, in Joules

Implements GetRemainingEnergy.

Implements ns3::EnergySource.

References NS_LOG_FUNCTION, and UpdateEnergySource().

double ns3::LiIonEnergySource::GetSupplyVoltage ( void  ) const
virtual
Returns:
Supply voltage at the energy source.

Implements GetSupplyVoltage.

Implements ns3::EnergySource.

References NS_LOG_FUNCTION.

Referenced by GetTypeId().

TypeId ns3::LiIonEnergySource::GetTypeId ( void  )
static

This method returns the TypeId associated to ns3::LiIonEnergySource.

Attributes defined for this type:

  • LiIonEnergySourceInitialEnergyJ: Initial energy stored in basic energy source.
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 31752
    • Flags: construct write read
  • InitialCellVoltage: Initial (maximum) voltage of the cell (fully charged).
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 4.05
    • Flags: construct write read
  • NominalCellVoltage: Nominal voltage of the cell.
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 3.6
    • Flags: construct write read
  • ExpCellVoltage: Cell voltage at the end of the exponential zone.
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 3.6
    • Flags: construct write read
  • RatedCapacity: Rated capacity of the cell.
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 2.45
    • Flags: construct write read
  • NomCapacity: Cell capacity at the end of the nominal zone.
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 1.1
    • Flags: construct write read
  • ExpCapacity: Cell Capacity at the end of the exponential zone.
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 1.2
    • Flags: construct write read
  • InternalResistance: Internal resistance of the cell
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0.083
    • Flags: construct write read
  • TypCurrent: Typical discharge current used to fit the curves
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 2.33
    • Flags: construct write read
  • ThresholdVoltage: Minimum threshold voltage to consider the battery depleted.
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 3.3
    • Flags: construct write read
  • PeriodicEnergyUpdateInterval: Time between two consecutive periodic energy updates.
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +1000000000.0ns
    • Flags: construct write read

TraceSources defined for this type:

Reimplemented from ns3::EnergySource.

References GetEnergyUpdateInterval(), GetInitialEnergy(), GetSupplyVoltage(), ns3::MakeTraceSourceAccessor(), ns3::Seconds(), SetEnergyUpdateInterval(), SetInitialEnergy(), SetInitialSupplyVoltage(), and ns3::TypeId::SetParent().

void ns3::LiIonEnergySource::IncreaseRemainingEnergy ( double  energyJ)
virtual
Parameters:
energyJAmount of energy (in Joules) to increase from energy source.

Implements IncreaseRemainingEnergy.

References NS_ASSERT, and NS_LOG_FUNCTION.

void ns3::LiIonEnergySource::SetEnergyUpdateInterval ( Time  interval)
Parameters:
intervalEnergy update interval.

This function sets the interval between each energy update.

References NS_LOG_FUNCTION.

Referenced by GetTypeId().

void ns3::LiIonEnergySource::SetInitialEnergy ( double  initialEnergyJ)
Parameters:
initialEnergyJInitial energy, in Joules

Implements SetInitialEnergy. Note that initial energy is assumed to be set before simulation starts and is set only once per simulation.

References NS_ASSERT, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

void ns3::LiIonEnergySource::SetInitialSupplyVoltage ( double  supplyVoltageV)
Parameters:
supplyVoltageVInitial Supply voltage at the energy source, in Volts.

Sets the initial supply voltage of the energy source. To be called only once.

Referenced by GetTypeId().

void ns3::LiIonEnergySource::UpdateEnergySource ( void  )
virtual

The documentation for this class was generated from the following files: