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

Static Public Member Functions

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

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().

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().

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

This object is accessible through the following paths with Config::Set and Config::Connect:

  • /NodeList/[i]/DeviceList/[i]/$ns3::AlohaNoackNetDevice/Phy/$ns3::EnergySource/$ns3::LiIonEnergySource
  • /NodeList/[i]/DeviceList/[i]/$ns3::AlohaNoackNetDevice/Phy/$ns3::LiIonEnergySource
  • /NodeList/[i]/DeviceList/[i]/$ns3::NonCommunicatingNetDevice/Phy/$ns3::EnergySource/$ns3::LiIonEnergySource
  • /NodeList/[i]/DeviceList/[i]/$ns3::NonCommunicatingNetDevice/Phy/$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.

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().


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