Ayo*_*che 2 energy contiki cooja
我正在使用无线传感器网络电缆来评估其在我的工作中的性能。我想测量等待时间和总能耗以找到每个节点中的剩余能量。所以我的问题是我有的一些值,但tx rx cpu cpu_idle 我不知道如何使用它们来计算所需的值。我找到了一些进行计算的规则,但我不完全了解如何在我的情况下应用它。
通信消耗的能量:

CPU消耗的能量:

32768是什么意思,为什么我们使用这个数字?是标准值吗?
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;
Run Code Online (Sandbox Code Playgroud)
为了计算平均消耗电流(在毫安,毫安),乘的每个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
Run Code Online (Sandbox Code Playgroud)
要计算电荷(以毫微克为单位,mC),请将平均电流消耗乘以测量持续时间(节点的正常运行时间)以秒为单位:
charge = current * (cpu + cpu_idle) / RTIMER_ARCH_SECOND
Run Code Online (Sandbox Code Playgroud)
要计算功率(以毫瓦为单位,mW),将平均电流消耗与系统电压相乘,例如,如果使用两节AA电池供电,则为3伏特:
power = current * voltage
Run Code Online (Sandbox Code Playgroud)
最后,要计算能耗(以毫焦耳为单位,mJ),请将功率乘以持续时间(以秒为单位),或者将电荷乘以系统的电压:
energy = charge * voltage
Run Code Online (Sandbox Code Playgroud)
上面的第一个公式计算通信的能耗;第二个:用于计算。
该站点可能有助于分解数字。