2017-08-11 37 views
0

我正在与无线传感器网络主管一起评估其工作表现。我想测量延迟和总能耗,找出每个节点的剩余能量。所以我的问题是我有一些tx rx cpu cpu_idle的值,我不怎么用它们来计算我需要的值。我发现了一些计算规则,但我不明白如何将其应用于我的案例。如何使用Cooja计算总能量消耗

在能源消耗通讯:

什么是32768的意思,为什么我们使用这个号码:

通过能源消耗的CPU?这是一个标准值吗?

+0

您从哪里找到该案例研究,请声明这些图片或论文的来源。一般来说,没有任何好的能量计算规则。这取决于开启的外设,使用的处理器,速度等。 –

回答

0

powertrace输出打印在计时器滴答声中。

  • tx - 无线电已经在发送模式(ENERGEST_TYPE_TRANSMIT
  • rx蜱的数目 - 的滴答数的无线一直处于接收模式(ENERGEST_TYPE_LISTEN
  • cpu - 蜱的数目该CPU已经在活动模式(ENERGEST_TYPE_CPU
  • cpu_idle - 的CPU一直处于空闲模式(ENERGEST_TYPE_LPM
012蜱的数目

txrx的元素是排他性的,因为cpuidle-系统不能同时处于两种模式。然而,其他组合也是可能的:例如,它可以同时在cputx中。的cpuidle总和是系统的总运行时间。

计时器的持续时间蜱是与定义为RTIMER_ARCH_SECOND常数依赖于平台的。每秒32768个蜱是这个常数的典型值 - 这就是你的方程数得来的。例如:

ticks_in_tx_mode = energest_type_time(ENERGEST_TYPE_TRANSMIT); 
seconds_in_tx_mode = ticks_in_tx_mode/RTIMER_ARCH_SECOND; 

为了计算平均消耗电流(在毫安毫安),与相应的电流消耗在该模式下在毫安乘以每个txrxcpucpu_idle(从节点的数据表中获得值),将它们相加,除以RTIMER_ARCH_SECOND

current = (tx * current_tx_mode + rx * current_rx_mode + \ 
      cpu * current_cpu + cpu_idle * current_idle)/RTIMER_ARCH_SECOND 

为了计算电荷(在millicoulumbs三菱商事),与测量的以秒为单位的持续时间(节点的正常运行时间)乘以平均电流消耗:

charge = current * (cpu + cpu_idle)/RTIMER_ARCH_SECOND 

为了计算功率毫瓦,mW)将平均电流消耗乘以系统电压,例如,如果由一对AA电池供电,则为3伏:

power = current * voltage 

最后,计算能耗(在毫焦耳毫焦耳),乘以持续时间的功率秒或与该系统的电压倍增的电荷:

energy = charge * voltage 

上面的第一个公式计算通信的能耗;第二个:用于计算。

这个site可能有助于分解数字。