跳转至

功耗预算与续航

概述

功耗预算(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

功耗优化策略

硬件层面

  1. 选择高效DC-DC:同步整流Buck效率可达95%+
  2. 动态电压调节:根据负载调整电机驱动电压
  3. 电源分区:不使用的子系统完全断电(用MOSFET开关控制)
  4. 选择低功耗组件:如用ESP32替代WiFi dongle

软件层面

  1. 计算平台功耗模式:Jetson可在运行时切换功耗档位

    # Jetson Orin 查看当前模式
    sudo nvpmodel -q
    # 切换到15W模式
    sudo nvpmodel -m 2
    
  2. 传感器按需开启:不需要3D点云时关闭LiDAR

  3. 降低采样率:低速运动时降低摄像头帧率
  4. CPU/GPU频率调节:负载低时降频

    # Jetson 设置为节能模式
    sudo jetson_clocks --store
    sudo jetson_clocks --restore  # 恢复
    
  5. WiFi省电模式

    # 开启WiFi省电
    sudo iw dev wlan0 set power_save on
    

算法层面

  1. 减少不必要的推理:仅在检测到运动时运行目标检测
  2. 模型量化:INT8推理比FP32节省约50%功耗
  3. 边缘计算卸载:将重计算任务通过WiFi卸载到服务器
  4. 自适应感知:根据场景复杂度调整算法精度

功耗监测

硬件监测

方案 精度 成本 适用
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)
  • 《低功耗嵌入式系统设计》

评论 #