2017-08-11 74 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可能有助於分解數字。