- 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/
我正在尝试在Contiki-ng上使用Cooja模拟器,我有这样的传感器:。“”“。“”“。每次我在模拟器中使用这些传感器中的一个添加一个微尘时,模拟在30秒后停止,并显示以下错误:。'''。‘我有什
我目前正在开发基于 Contiki-NG 和 Cooja 的项目,并且尝试在网络模拟器 Cooja 中的 Sky mote 上实现我的 C 代码,但出现以下错误: code.c:5:12: error
我想将我自己的插件添加到 Cooja。我想扩展 Visualizer.class,以便在 Cooja 中拥有其中两个。 最佳答案 该视频向您展示如何将自己的插件添加到 Cooja 中,扩展 Visua
我是Contiki RTOS的新手.我在 Ubuntu 上安装了 Conitiki,我还安装了 Cooja网络模拟器。我尝试从示例目录运行“Hello world”,我成功了。但我想了解 COOJA
我正在使用无线传感器网络负责人评估其在我的工作中的性能。我想测量延迟和总能耗以找到每个节点中的剩余能量。所以我的问题是我有一些 tx rx cpu cpu_idle 的值,我不知道如何使用它们来计算我
我想获取每个节点在Cooja 模拟器中的位置(x 和y 坐标)。总共有 30 个节点,类型为“sky mote”。目标是为每个节点构建一个由(ID_node x_coordinate y_coordi
我想加密传感器节点之间交换的消息。 我可以在无法访问真实硬件传感器节点(例如 Tmote Sky)的情况下执行此操作吗? 只能在 Tmote Sky 节点上模拟软件加密/分组密码吗?如果我需要使用硬件
我在 Cooja 上读取不同的温度读数时遇到问题。我已完成以下操作: 创建了一个用于初始化光传感器和温度传感器的源文件。 使用天空微尘创建了模拟。 使用 8 个微尘网络运行模拟。 每个微粒读取相同的温
我在 Cooja 中崩溃,Java 崩溃,结果为 134,有问题的框架显然是“C [libc.so.6+0x8fcdd]”。下面是生成的日志。创建节点后和开始模拟时发生崩溃。我尝试过更改java版本,
我无法获取收集 View 示例的图表和统计数据。我已经运行模拟了很多分钟,但是当我转到工具并选择收集 View 时,下一个窗口中的节点部分是空的,我还选择了开始收集并向节点发送命令,但运气不好,图表上
我是 contiki 操作系统的新手,我正在 contiki 操作系统中试用 mqtt。但是我在将 cooja 模拟器中的 mote 连接到我的 ubuntu 桌面上的 mosquitto 服务器时遇
在contiki的即时contiki镜像中,有一个cooja模拟器。我试图在 cooja 中模拟 hello world 和其他 udp 示例。cooja 有一些类似缓冲区 View 的工具,即缓冲区
我在 sky mote 上完成了 rpl-border-router.c 作为路由器,在 cooja 的 sky 上完成了 1 udp-server.c mote。我使用 tunslip 实用程序连接
谁能告诉我如何实现collect-viewcontiki-2.7/examples/ipv6/simple-udp-rpl/unicast-receiver.c ? 我必须引用 contiki-2.7
我在 Contiki 上的 Cooja 模拟器中运行代码,我收到以下错误消息: Executing MSP430X instruction but MCU is not a MSP430X 我想广播一
我目前正在开发一个在 Z1 设备上运行的 Contiki 程序,用于调试目的。我想向该设备发送 UART 消息,发现 Cooja 似乎支持“在 Z1 上显示串行端口”的功能。事实上,该工具帮助我读取从
当我想在 contiki-3.9/tools/cooja 中运行“ant run”时,我遇到了以下错误: BUILD FAILED /home/user/contiki-3.0/tools/cooja
我的 Energest 能量估计在天空微尘的 Cooja 模拟中没有意义。我想在加密和数据从一个微尘传输到另一个微尘之前和之后读出 CPU、TX 和 RX 值。总 CPU 的读数首先增加,但几轮后突然
我是一名优秀的程序员,十分优秀!