energymodel.tex
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:3k
源码类别:

通讯编程

开发平台:

Visual C++

  1. chapter{Energy Model in ns}
  2. label{chap:enerymodel}
  3. Energy Model, as implemented in ns, is a node attribute. The
  4. energy model represents level of energy in a mobile host. The energy
  5. model in a node has a initial value which is the level of energy the node
  6. has at the beginning of the simulation. This is known as
  7. code{initialEnergy_}.
  8. It also has a given energy usage
  9. for every packet it transmits and receives. These are called
  10. code{txPower_} and code{rxPower_}.
  11. The files where the energy model is defined are ~ns/energymodel[.cc and.h].
  12. Other functions/methods described in this chapter may be found in
  13. ~ns/wireless-phy.cc, ~ns/cmu-trace.cc, ~ns/tcl/lib[ns-lib.tcl, 
  14. ns-node.tcl, ns-mobilenode.tcl].
  15. section{The C++ EnergyModel Class}
  16. label{sec:c++energymodel}
  17. The basic energy model is very simple and is defined by class EnergyModel
  18. as shown below:
  19. begin{program}
  20. class EnergyModel : public TclObject {
  21. public:
  22.   EnergyModel(double energy) { energy_ = energy; }
  23.   inline double energy() { return energy_; }
  24.   inline void setenergy(double e) {energy_ = e;}
  25.   virtual void DecrTxEnergy(double txtime, double P_tx) {
  26.     energy_ -= (P_tx * txtime);
  27.   }
  28.   virtual void DecrRcvEnergy(double rcvtime, double P_rcv) {
  29.     energy_ -= (P_rcv * rcvtime);
  30.   }
  31. protected:
  32.   double energy_;
  33. };   
  34. end{program}
  35. As seen from the EnergyModel Class definition above, there is only a
  36. single class variable code{energy_} which represents the
  37. level of energy in the node at any given time. The constructor
  38. EnergyModel(energy) requires the initial-energy to be passed along as a 
  39. parameter. The other class methods are
  40. used to decrease the energy level of the node for every packet transmitted
  41. ( code{DecrTxEnergy(txtime, P_tx)}) and every packet received (
  42. code{DecrRcvEnergy (rcvtime, P_rcv)}) by
  43. the node. code{P_tx} and code{P_rcv} are the
  44. transmitting and
  45. receiving power (respectively) required by the node's interface or PHY.
  46. At the beginning of simulation, code{energy_} is set to
  47. code{initialEnergy_} which is then
  48. decremented for every transmission and reception of packets at the node.
  49. When the energy level at the node goes down to zero, no more packets can
  50. be received or transmitted by the node. If tracing is turned on, line
  51. code{DEBUG: node <node-id> dropping pkts due to energy = 0}
  52. is printed in the tracefile.
  53. section{The OTcl interface}
  54. label{sec:otclenergymodel}
  55. Since the energy model is a node attribute, it may be defined by the
  56. following node configuration APIs:
  57. begin{verbatim}
  58. $ns_ node-config -energyModel $energymodel 
  59.                  -rxPower $p_rx 
  60.                  -txPower $p_tx 
  61.                  -initialEnergy $initialenergy
  62. end{verbatim}
  63. Optional values for above configuration parameters of the energy
  64. model are given in the following table:
  65. begin{table}[h]
  66. begin{center}
  67. {tt
  68. begin{tabular}{|c||c|c|}hline
  69. {bf Attribute} & {bf optional values} & {bf default values}\hline
  70. rm -energyModel& rm "EnergyModel"&  rm none\hline
  71. rm -rxPower& rm receiving power in watts (e.g 0.3)& rm 281.8mW\hline
  72. rm -txPower& rm transmitting power in watts (e.g 0.4)& rm 
  73. 281.8mW\hline
  74. rm -initialEnergy& rm energy in joules (e.g 0.1)& rm 0.0\hline
  75. end{tabular}
  76. }
  77. end{center}
  78. end{table}
  79. clearpage