我正在与无线传感器网络主管一起评估其工作表现。我想测量延迟和总能耗,找出每个节点的剩余能量。所以我的问题是我有一些tx rx cpu cpu_idle
的值,我不怎么用它们来计算我需要的值。我发现了一些计算规则,但我不明白如何将其应用于我的案例。如何使用Cooja计算总能量消耗
在能源消耗通讯:
什么是32768的意思,为什么我们使用这个号码:
通过能源消耗的CPU?这是一个标准值吗?
我正在与无线传感器网络主管一起评估其工作表现。我想测量延迟和总能耗,找出每个节点的剩余能量。所以我的问题是我有一些tx rx cpu cpu_idle
的值,我不怎么用它们来计算我需要的值。我发现了一些计算规则,但我不明白如何将其应用于我的案例。如何使用Cooja计算总能量消耗
在能源消耗通讯:
什么是32768的意思,为什么我们使用这个号码:
通过能源消耗的CPU?这是一个标准值吗?
powertrace输出打印在计时器滴答声中。
tx
- 无线电已经在发送模式(ENERGEST_TYPE_TRANSMIT
)rx
蜱的数目 - 的滴答数的无线一直处于接收模式(ENERGEST_TYPE_LISTEN
)cpu
- 蜱的数目该CPU已经在活动模式(ENERGEST_TYPE_CPU
)cpu_idle
- 的CPU一直处于空闲模式(ENERGEST_TYPE_LPM
)对tx
和rx
的元素是排他性的,因为cpu
和idle
-系统不能同时处于两种模式。然而,其他组合也是可能的:例如,它可以同时在cpu
和tx
中。的cpu
和idle
总和是系统的总运行时间。
计时器的持续时间蜱是与定义为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;
为了计算平均消耗电流(在毫安,毫安),与相应的电流消耗在该模式下在毫安乘以每个tx
,rx
,cpu
,cpu_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可能有助于分解数字。
您从哪里找到该案例研究,请声明这些图片或论文的来源。一般来说,没有任何好的能量计算规则。这取决于开启的外设,使用的处理器,速度等。 –