A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::LinearWifiTxCurrentModel Class Reference

a linear model of the Wifi transmit current More...

#include <wifi-tx-current-model.h>

+ Inheritance diagram for ns3::LinearWifiTxCurrentModel:
+ Collaboration diagram for ns3::LinearWifiTxCurrentModel:

Public Member Functions

 LinearWifiTxCurrentModel ()
 
virtual ~LinearWifiTxCurrentModel ()
 
double CalcTxCurrent (double txPowerDbm) const
 
double GetEta (void) const
 
double GetIdleCurrent (void) const
 
double GetVoltage (void) const
 
void SetEta (double eta)
 
void SetIdleCurrent (double idleCurrent)
 
void SetVoltage (double voltage)
 
- Public Member Functions inherited from ns3::WifiTxCurrentModel
 WifiTxCurrentModel ()
 
virtual ~WifiTxCurrentModel ()
 
- Public Member Functions inherited from ns3::Object
 Object ()
 
virtual ~Object ()
 
void AggregateObject (Ptr< Object > other)
 
void Dispose (void)
 Run the DoDispose methods of this object and all the objects aggregated to it. More...
 
AggregateIterator GetAggregateIterator (void) const
 
virtual TypeId GetInstanceTypeId (void) const
 
template<typename T >
Ptr< T > GetObject (void) const
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 
void Initialize (void)
 This method calls the virtual DoInitialize method on all the objects aggregated to this object. More...
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Constructor. More...
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor. More...
 
uint32_t GetReferenceCount (void) const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment. More...
 
void Ref (void) const
 Increment the reference count. More...
 
void Unref (void) const
 Decrement the reference count. More...
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor. More...
 
void GetAttribute (std::string name, AttributeValue &value) const
 
bool GetAttributeFailSafe (std::string name, AttributeValue &attribute) const
 
void SetAttribute (std::string name, const AttributeValue &value)
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 
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)
 
- Static Public Member Functions inherited from ns3::WifiTxCurrentModel
static double DbmToW (double dbm)
 Convert from dBm to Watts. More...
 
static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId (void)
 Register this type. More...
 
- Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
static void Cleanup (void)
 Noop. More...
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 Get the type ID. More...
 

Private Attributes

double m_eta
 
double m_idleCurrent
 
double m_voltage
 

Additional Inherited Members

- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 
virtual void DoDispose (void)
 This method is called by Object::Dispose or by the object's destructor, whichever comes first. More...
 
virtual void DoInitialize (void)
 This method is called only once by Object::Initialize. More...
 
virtual void NotifyNewAggregate (void)
 This method is invoked whenever two sets of objects are aggregated together. More...
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 
virtual void NotifyConstructionCompleted (void)
 This method is invoked once all member attributes have been initialized. More...
 

Detailed Description

a linear model of the Wifi transmit current

Doxygen introspection did not find any typical Config paths.

This model assumes that the transmit current is a linear function of the nominal transmit power used to send the frame. In particular, the power absorbed during the transmission of a frame $ W_{tx} $ is given by the power absorbed by the power amplifier $ W_{pa} $ plus the power absorbed by the RF subsystem. The latter is assumed to be the same as the power absorbed in the IDLE state $ W_{idle} $.

The efficiency $ \eta $ of the power amplifier is given by $ \eta = \frac{P_{tx}}{W_{pa}} $, where $ P_{tx} $ is the output power, i.e., the nominal transmit power. Hence, $ W_{pa} = \frac{P_{tx}}{\eta} $

It turns out that $ W_{tx} = \frac{P_{tx}}{\eta} + W_{idle} $. By dividing both sides by the supply voltage $ V $: $ I_{tx} = \frac{P_{tx}}{V \cdot \eta} + I_{idle} $, where $ I_{tx} $ and $ I_{idle} $ are, respectively, the transmit current and the idle current.

For more information, refer to: Francesco Ivan Di Piazza, Stefano Mangione, and Ilenia Tinnirello. "On the Effects of Transmit Power Control on the Energy Consumption of WiFi Network Cards", Proceedings of ICST QShine 2009, pp. 463–475

If the tx current corresponding to a given nominal transmit power is known, the efficiency of the power amplifier is given by the above formula: $ \eta = \frac{P_{tx}}{(I_{tx}-I_{idle})\cdot V} $


Attributes

  • Eta: The efficiency of the power amplifier.
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0.1
    • Flags: construct write read
  • Voltage: The supply voltage (in Volts).
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 3
    • Flags: construct write read
  • IdleCurrent: The current in the IDLE state (in Watts).
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0.273333
    • Flags: construct write read

No TraceSources are defined for this type.

Definition at line 88 of file wifi-tx-current-model.h.

Constructor & Destructor Documentation

ns3::LinearWifiTxCurrentModel::LinearWifiTxCurrentModel ( )

Definition at line 90 of file wifi-tx-current-model.cc.

ns3::LinearWifiTxCurrentModel::~LinearWifiTxCurrentModel ( )
virtual

Definition at line 94 of file wifi-tx-current-model.cc.

Member Function Documentation

double ns3::LinearWifiTxCurrentModel::CalcTxCurrent ( double  txPowerDbm) const
virtual
Parameters
txPowerDbmthe nominal tx power in dBm
Returns
the transmit current (in Ampere)

Implements ns3::WifiTxCurrentModel.

Definition at line 135 of file wifi-tx-current-model.cc.

References ns3::WifiTxCurrentModel::DbmToW(), m_eta, m_idleCurrent, and m_voltage.

+ Here is the call graph for this function:

double ns3::LinearWifiTxCurrentModel::GetEta ( void  ) const
Returns
the power amplifier efficiency.

Definition at line 117 of file wifi-tx-current-model.cc.

References m_eta.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

double ns3::LinearWifiTxCurrentModel::GetIdleCurrent ( void  ) const
Returns
the current in the IDLE state.

Definition at line 129 of file wifi-tx-current-model.cc.

References m_idleCurrent.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

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

Definition at line 66 of file wifi-tx-current-model.cc.

References GetEta(), GetIdleCurrent(), GetVoltage(), SetEta(), SetIdleCurrent(), ns3::TypeId::SetParent(), and SetVoltage().

+ Here is the call graph for this function:

double ns3::LinearWifiTxCurrentModel::GetVoltage ( void  ) const
Returns
the supply voltage.

Definition at line 123 of file wifi-tx-current-model.cc.

References m_voltage.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::LinearWifiTxCurrentModel::SetEta ( double  eta)
Parameters
eta(dimension-less)

Set the power amplifier efficiency.

Definition at line 99 of file wifi-tx-current-model.cc.

References m_eta.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::LinearWifiTxCurrentModel::SetIdleCurrent ( double  idleCurrent)
Parameters
idleCurrent(Ampere)

Set the current in the IDLE state.

Definition at line 111 of file wifi-tx-current-model.cc.

References m_idleCurrent.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::LinearWifiTxCurrentModel::SetVoltage ( double  voltage)
Parameters
voltage(Volts)

Set the supply voltage.

Definition at line 105 of file wifi-tx-current-model.cc.

References m_voltage.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

Member Data Documentation

double ns3::LinearWifiTxCurrentModel::m_eta
private

Definition at line 135 of file wifi-tx-current-model.h.

Referenced by CalcTxCurrent(), GetEta(), and SetEta().

double ns3::LinearWifiTxCurrentModel::m_idleCurrent
private

Definition at line 137 of file wifi-tx-current-model.h.

Referenced by CalcTxCurrent(), GetIdleCurrent(), and SetIdleCurrent().

double ns3::LinearWifiTxCurrentModel::m_voltage
private

Definition at line 136 of file wifi-tx-current-model.h.

Referenced by CalcTxCurrent(), GetVoltage(), and SetVoltage().


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