如何使用 Cooja 计算总能耗
How to calculate total energy consumption using 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;
要计算平均电流消耗(以毫安、毫安为单位),将每个tx
、rx
、cpu
、cpu_idle
以及该模式下的相应电流消耗 mA(从节点的数据表),将它们相加,然后除以 RTIMER_ARCH_SECOND
:
current = (tx * current_tx_mode + rx * current_rx_mode + \
cpu * current_cpu + cpu_idle * current_idle) / RTIMER_ARCH_SECOND
计算电荷(毫库仑,mC),乘以平均电流以秒为单位的测量持续时间(节点的正常运行时间)的消耗:
charge = current * (cpu + cpu_idle) / RTIMER_ARCH_SECOND
计算功率(毫瓦,毫瓦)乘以平均电流消耗使用系统电压,例如,如果由一对 AA 电池供电,则为 3 伏:
power = current * voltage
最后,计算能耗(毫焦、mJ),乘以以秒为单位的持续时间的功率或将电荷乘以系统电压:
energy = charge * voltage
上面的第一个公式计算了通信的能量消耗;第二个:用于计算。
这个 site 可能有助于分解数字。
32768 Hz 或 32、768 kHz 这是 MSP430F247 微控制器的频率,具体为活动模式:32iuA @ 3 v / 1 MHz 或 1x10 6 Hz 和低功耗模式 = 1 uA @ 3V /32768 Hz
我正在与无线传感器网络领导合作,以评估其在我工作中的表现。我想测量延迟和总能耗以找出每个节点中的剩余能量。所以我的问题是我有一些 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;
要计算平均电流消耗(以毫安、毫安为单位),将每个tx
、rx
、cpu
、cpu_idle
以及该模式下的相应电流消耗 mA(从节点的数据表),将它们相加,然后除以 RTIMER_ARCH_SECOND
:
current = (tx * current_tx_mode + rx * current_rx_mode + \
cpu * current_cpu + cpu_idle * current_idle) / RTIMER_ARCH_SECOND
计算电荷(毫库仑,mC),乘以平均电流以秒为单位的测量持续时间(节点的正常运行时间)的消耗:
charge = current * (cpu + cpu_idle) / RTIMER_ARCH_SECOND
计算功率(毫瓦,毫瓦)乘以平均电流消耗使用系统电压,例如,如果由一对 AA 电池供电,则为 3 伏:
power = current * voltage
最后,计算能耗(毫焦、mJ),乘以以秒为单位的持续时间的功率或将电荷乘以系统电压:
energy = charge * voltage
上面的第一个公式计算了通信的能量消耗;第二个:用于计算。
这个 site 可能有助于分解数字。
32768 Hz 或 32、768 kHz 这是 MSP430F247 微控制器的频率,具体为活动模式:32iuA @ 3 v / 1 MHz 或 1x10 6 Hz 和低功耗模式 = 1 uA @ 3V /32768 Hz