- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用无线传感器网络负责人评估其在我的工作中的性能。我想测量延迟和总能耗以找到每个节点中的剩余能量。所以我的问题是我有一些 tx rx cpu cpu_idle
的值,我不知道如何使用它们来计算我需要的值。我发现了一些计算规则,但我不明白如何在我的案例中应用它。
通信消耗的能量:
CPU消耗的能量:
32768是什么意思,我们为什么要用这个数字?是标准值吗?
最佳答案
powertrace 输出以计时器刻度打印。
tx
- radio 处于传输模式的滴答数 (ENERGEST_TYPE_TRANSMIT
)rx
- radio 处于接收模式的滴答数 (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;
要计算平均电流消耗(单位为毫安,mA),将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
计算功率(单位为毫瓦,mW)将平均电流消耗乘以系统电压,例如,3如果由一对 AA 电池供电,则为伏特:
power = current * voltage
最后,计算能量消耗(单位为毫焦耳,mJ),将功率乘以持续时间(以秒为单位)或乘以电荷与系统电压:
energy = charge * voltage
上面的第一个公式计算了通信的能量消耗;第二个:用于计算。
这个 site可能有助于分解数字。
关于contiki - 如何使用 Cooja 计算总能耗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45644277/
在移动设备(iPhone/Android)上,实现 WebSocket 与 HTTP 对电池消耗有何影响? 假设我正在构建一个即时消息应用程序并且有两个选择: 依靠推送通知将新消息通知设备,然后通过
我是一名优秀的程序员,十分优秀!