功耗预算与续航
概述
功耗预算(Power Budget)是机器人电源设计的起点。通过精确统计每个子系统的功耗,可以合理确定电池容量、DC-DC规格、散热方案,并准确预测续航时间。
子系统功耗参考
计算平台
| 平台 | 典型功耗 | 峰值功耗 | 备注 |
|---|---|---|---|
| Arduino Uno | 0.2W | 0.5W | 5V/50mA |
| ESP32 | 0.5-1W | 1.5W | WiFi开启时较高 |
| STM32F4 | 0.1-0.5W | 0.8W | 取决于主频和外设 |
| Raspberry Pi 4B | 3-6W | 7.5W | 取决于负载 |
| Raspberry Pi 5 | 4-8W | 12W | 新款更强但更耗电 |
| Jetson Nano | 5-10W | 10W | 5W/10W两种模式 |
| Jetson Orin Nano | 7-15W | 15W | 7W/15W两种模式 |
| Jetson Orin NX | 10-25W | 25W | 10W/15W/25W模式 |
| Jetson AGX Orin | 15-60W | 60W | 15W/30W/50W/60W模式 |
| Intel NUC (i7) | 15-45W | 65W | x86平台 |
电机与执行器
| 类型 | 典型功耗(单个) | 峰值功耗 | 备注 |
|---|---|---|---|
| SG90 微型舵机 | 0.5-1W | 2W | 空载 0.1W |
| MG996R 舵机 | 2-5W | 10W | 堵转时峰值 |
| 25mm直流减速电机 | 2-10W | 20W | 取决于负载 |
| BLDC (无人机) | 50-200W | 400W+ | 取决于油门 |
| 四足单关节电机 | 10-50W | 100W+ | Go2: 12个关节 |
| 步进电机 NEMA17 | 5-15W | 20W | 保持时也耗电 |
传感器
| 传感器 | 典型功耗 | 接口 | 备注 |
|---|---|---|---|
| IMU (MPU6050) | 0.02W | I2C | 3.3V/6mA |
| 超声波 (HC-SR04) | 0.075W | GPIO | 5V/15mA |
| 红外测距 (VL53L0X) | 0.02W | I2C | 低功耗 |
| 单线激光测距 | 0.5-1W | UART/I2C | TFmini等 |
| 2D LiDAR (RPLiDAR A1) | 2-3W | UART | 电机旋转 |
| 2D LiDAR (YDLIDAR X4) | 2W | UART | 低成本 |
| 3D LiDAR (Velodyne VLP-16) | 8-10W | Ethernet | 高端 |
| 3D LiDAR (Livox Mid-360) | 8-10W | Ethernet | 中端 |
| USB摄像头 | 0.5-1.5W | USB | 取决于分辨率 |
| Intel RealSense D435i | 2-3W | USB3 | 深度+RGB+IMU |
| OAK-D | 2.5-4W | USB3 | 集成AI加速 |
| GPS模块 | 0.1-0.5W | UART | NEO-6M等 |
通信模块
| 模块 | 典型功耗 | 备注 |
|---|---|---|
| WiFi (ESP32) | 0.5-1W | 发送时较高 |
| Bluetooth (BLE) | 0.01-0.05W | 低功耗蓝牙 |
| 4G LTE模块 | 1-3W | SIM7600等 |
| 5G模块 | 3-8W | 高带宽 |
| LoRa | 0.1-0.5W | 发送时0.5W |
| 2.4GHz RC接收器 | 0.05-0.1W | FlySky等 |
其他
| 组件 | 典型功耗 | 备注 |
|---|---|---|
| LED灯带 (30LED/m, 0.5m) | 2-5W | WS2812B |
| 风扇 (40mm) | 0.5-2W | 散热 |
| 扬声器/蜂鸣器 | 0.1-1W | |
| OLED显示屏 | 0.05-0.1W | SSD1306 |
| 7" LCD触摸屏 | 2-4W | 树莓派DSI屏 |
功耗预算工作表
模板
| 子系统 | 组件 | 数量 | 单位功耗(W) | 总功耗(W) | 占空比 | 平均功耗(W) |
|---|---|---|---|---|---|---|
| 计算 | Jetson Orin NX | 1 | 25 | 25 | 80% | 20 |
| 电机 | BLDC关节电机 | 4 | 30 | 120 | 50% | 60 |
| 传感器 | RealSense D435i | 1 | 3 | 3 | 100% | 3 |
| 传感器 | 2D LiDAR | 1 | 2.5 | 2.5 | 100% | 2.5 |
| 传感器 | IMU | 1 | 0.02 | 0.02 | 100% | 0.02 |
| 通信 | WiFi模块 | 1 | 1 | 1 | 100% | 1 |
| 显示 | OLED | 1 | 0.1 | 0.1 | 50% | 0.05 |
| 散热 | 风扇 | 2 | 1 | 2 | 70% | 1.4 |
| 合计 | 153.62 | 87.97 |
占空比说明
占空比(Duty Cycle)反映组件在实际使用中的平均负载:
- 100%:始终满负载运行(传感器、通信)
- 50-80%:间歇性满负载(计算平台、电机)
- <50%:偶尔使用(显示、LED)
平均功耗的计算:
\[P_{avg} = P_{rated} \times D_{duty}\]
效率损耗分析
DC-DC转换效率
实际从电池消耗的功率需要考虑转换效率:
\[P_{battery} = \sum \frac{P_{load\_i}}{\eta_{converter\_i}}\]
| 转换路径 | 效率 \(\eta\) | 负载功耗 | 电池端功耗 |
|---|---|---|---|
| 24V→5V (Jetson) | 90% | 20W | 22.2W |
| 24V直驱 (电机) | 95%* | 60W | 63.2W |
| 24V→12V (LiDAR) | 92% | 2.5W | 2.7W |
| 24V→5V (传感器) | 90% | 5W | 5.6W |
| 24V→3.3V (MCU) | 88% | 0.5W | 0.57W |
| 合计 | 88W | 94.3W |
*电机驱动器的效率
线损
长线缆的电阻导致压降和功率损耗:
\[P_{wire} = I^2 \times R_{wire}\]
\[R_{wire} = \frac{\rho \times L}{A}\]
其中 \(\rho\) 为铜的电阻率(\(1.68 \times 10^{-8}\ \Omega \cdot m\)),\(L\) 为线长,\(A\) 为截面积。
例如:1m长、0.5mm² 的铜线,通过5A电流:
\[R = \frac{1.68 \times 10^{-8} \times 1}{0.5 \times 10^{-6}} = 0.0336\ \Omega\]
\[P_{loss} = 5^2 \times 0.0336 = 0.84W\]
续航时间估算
基本公式
\[t_{runtime} = \frac{E_{battery}}{P_{battery\_avg}}\]
实际估算示例
假设使用 6S 4P 18650 电池组(Samsung 30Q):
- 电压:\(6 \times 3.6V = 21.6V\)
- 容量:\(4 \times 3.0Ah = 12.0Ah\)
- 能量:\(21.6V \times 12.0Ah = 259.2Wh\)
- 可用能量(放电深度80%):\(259.2 \times 0.8 = 207.4Wh\)
电池端平均功耗 94.3W(含效率损耗):
\[t = \frac{207.4Wh}{94.3W} = 2.2h\]
不同工作模式的续航
| 工作模式 | 功耗估计 | 续航时间 |
|---|---|---|
| 待机(传感器开启,电机关闭) | 30W | 6.9h |
| 低速巡航(电机50%负载) | 60W | 3.5h |
| 正常工作 | 94W | 2.2h |
| 全速运动(电机满负载) | 150W | 1.4h |
| 峰值(所有子系统满载) | 200W+ | <1h |
功耗优化策略
硬件层面
- 选择高效DC-DC:同步整流Buck效率可达95%+
- 动态电压调节:根据负载调整电机驱动电压
- 电源分区:不使用的子系统完全断电(用MOSFET开关控制)
- 选择低功耗组件:如用ESP32替代WiFi dongle
软件层面
-
计算平台功耗模式:Jetson可在运行时切换功耗档位
# Jetson Orin 查看当前模式 sudo nvpmodel -q # 切换到15W模式 sudo nvpmodel -m 2 -
传感器按需开启:不需要3D点云时关闭LiDAR
- 降低采样率:低速运动时降低摄像头帧率
-
CPU/GPU频率调节:负载低时降频
# Jetson 设置为节能模式 sudo jetson_clocks --store sudo jetson_clocks --restore # 恢复 -
WiFi省电模式:
# 开启WiFi省电 sudo iw dev wlan0 set power_save on
算法层面
- 减少不必要的推理:仅在检测到运动时运行目标检测
- 模型量化:INT8推理比FP32节省约50%功耗
- 边缘计算卸载:将重计算任务通过WiFi卸载到服务器
- 自适应感知:根据场景复杂度调整算法精度
功耗监测
硬件监测
| 方案 | 精度 | 成本 | 适用 |
|---|---|---|---|
| INA219 (I2C功率计) | ±1% | $3 | 单通道精确监测 |
| INA3221 (3通道) | ±1% | $5 | 多路同时监测 |
| 分流电阻+ADC | ±2-5% | $1 | 简单低成本 |
| USB功率计 | ±2% | $10 | 测试USB设备 |
INA219测量原理:
\[P = V_{bus} \times I_{load} = V_{bus} \times \frac{V_{shunt}}{R_{shunt}}\]
软件监测(Jetson平台)
# 查看Jetson功耗
sudo cat /sys/bus/i2c/drivers/ina3221x/*/iio:device*/in_power*_input
# 使用tegrastats
sudo tegrastats --interval 1000
# 使用jtop(推荐)
pip install jetson-stats
sudo jtop
功耗日志记录
import time
import board
import busio
from adafruit_ina219 import INA219
i2c = busio.I2C(board.SCL, board.SDA)
ina = INA219(i2c)
with open("power_log.csv", "w") as f:
f.write("time_s,voltage_V,current_mA,power_mW\n")
start = time.time()
while True:
t = time.time() - start
v = ina.bus_voltage
i = ina.current
p = ina.power
f.write(f"{t:.2f},{v:.3f},{i:.1f},{p:.1f}\n")
time.sleep(0.1)
参考资源
- NVIDIA Jetson Power Management: developer.nvidia.com
- Texas Instruments: Power Budget Calculator Tools
- INA219 Datasheet (TI)
- 《低功耗嵌入式系统设计》