2、功耗基础概念:电压、电流、功率、能量、平均功耗与峰值功耗的定义及单位换算
TinyML 设备通常由电池供电或依赖能量采集(Energy Harvesting)系统运行,其功耗特性直接决定了产品的续航时间、热设计与系统可靠性。在讨论“如何测量”之前,必须先建立一套精确的物理量语言——电压、电流、功率、能量、平均功耗与峰值功耗。这些概念看似基础,但在嵌入式低功耗工程中,它们之间的换算关系、测量口径与时域特性,往往是团队内部分歧和测量误差的根源。本章将系统梳理这些核心物理量的定义、单位体系与工程换算方法,为后续的万用表、功耗仪与日志分析打下坚实的理论基础。
上图展示了 TinyML 功耗测量中核心物理量之间的推导关系与测量链路。电压和电流是基础测量量,功率是二者的乘积,能量是功率对时间的积分。平均功耗与峰值功耗则是从能量和瞬态功率中提取的两种不同视角的统计量。理解这张图,就掌握了功耗测试的“第一性原理”。
2.1 核心物理量定义与单位体系
电压(U,单位:伏特 V) 是电场中两点之间的电势差,表示单位电荷从一点移动到另一点所获得或释放的能量。在 TinyML 设备中,典型电压范围为 1.8V(MCU 内核)到 5.0V(USB 供电或传感器激励)。电压的工程意义在于:它决定了数字逻辑电平的噪声容限,也直接影响 MOSFET 开关损耗(动态功耗与 V² 成正比)。
电流(I,单位:安培 A) 是电荷的定向移动速率,表示单位时间内通过导体横截面的电荷量。TinyML 设备的电流跨度极大:深度睡眠模式下可能低至 1μA 以下,而射频发射(如 BLE 广播)或神经网络推理时可能瞬时达到 10-50mA。这种宽动态范围是功耗测量的首要挑战。
功率(P,单位:瓦特 W) 是单位时间内消耗或转换的能量,定义为 P = U × I。在数字电路中,功率由两部分组成:静态功耗(漏电流导致)和动态功耗(开关活动导致)。动态功耗的经典公式为 P_dynamic = α·C_L·V²·f,其中 α 是翻转率,C_L 是负载电容,f 是时钟频率。这个公式揭示了降低电压对功耗的“平方级”收益——这也是 DVFS(动态电压频率调节)的理论基础。
能量(E,单位:焦耳 J) 是功率对时间的积分,表示一段时间内消耗的总电能。对于电池供电设备,能量才是决定续航的根本指标。例如,一颗 240mAh 的锂聚合物电池在 3.7V 下存储的能量为:
E_battery = 240mAh × 3.7V = 0.24A × 3.7V × 3600s = 3196.8 J ≈ 3.2 kJ
如果设备平均功耗为 10mW,则理论续航为:
T = 3196.8J / 0.01W = 319680s ≈ 88.8 小时 ≈ 3.7 天
这个计算过程展示了从电池容量到续航时间的完整换算链路。
| 物理量 | 符号 | 国际单位 | 工程常用单位 | 换算关系 |
|---|---|---|---|---|
| 电压 | U | 伏特 (V) | mV, μV | 1V = 1000mV = 10⁶μV |
| 电流 | I | 安培 (A) | mA, μA, nA | 1A = 1000mA = 10⁶μA = 10⁹nA |
| 功率 | P | 瓦特 (W) | mW, μW | 1W = 1000mW = 10⁶μW |
| 能量 | E | 焦耳 (J) | mJ, μJ, Wh, mAh | 1J = 1W·s;1Wh = 3600J;1mAh@3.7V = 13.32J |
| 平均功耗 | P_avg | 瓦特 (W) | mW, μW | P_avg = E_total / T_total |
| 峰值功耗 | P_peak | 瓦特 (W) | mW | P_peak = max{P(t)},t∈[0,T] |
2.2 平均功耗与峰值功耗:两种关键视角
平均功耗(P_avg) 定义为在一段完整工作周期内消耗的总能量除以周期时长。它直接决定了电池续航,是产品规格书中最常引用的指标。计算方式为:
P_avg = (1/T) ∫₀ᵀ U(t)·I(t) dt
在实际测量中,我们通常用功耗仪或采样日志记录离散数据点,然后进行数值积分。例如,一个 TinyML 设备以 10Hz 采样率记录电流,工作周期为 10 秒(1 秒活跃推理 + 9 秒深度睡眠),测得数据如下:
- 活跃期:U=3.3V,I_avg=15mA,持续 1s
- 睡眠期:U=3.3V,I_avg=5μA,持续 9s
则总能量消耗为:
E = 3.3V × 15mA × 1s + 3.3V × 0.005A × 9s
= 49.5mJ + 0.1485mJ
= 49.6485mJ
平均功耗为:
P_avg = 49.6485mJ / 10s = 4.96485mW
这个例子说明,即使活跃期功耗高达 49.5mW,但由于占空比仅为 10%,平均功耗被拉低到约 5mW。这正是 TinyML 设备“突发计算、长期休眠”工作模式的典型特征。
峰值功耗(P_peak) 是工作周期内瞬时功率的最大值。它不直接影响续航,但决定了以下关键工程参数:
- 电源设计:稳压器或 DC-DC 转换器必须能承受峰值电流而不跌落,否则会导致 MCU 复位或射频发射失败。
- 热设计:峰值功耗对应最高结温,影响芯片长期可靠性。
- 电池内阻:峰值电流在电池内阻上产生压降,可能导致欠压关断。
- EMI 与去耦:瞬态电流变化率 di/dt 会产生电磁干扰,需要足够的去耦电容。
例如,某 BLE SoC 在射频发射时峰值电流为 18mA,若电池内阻为 2Ω,则压降为 36mV。对于 3.3V 供电系统,如果电池空载电压为 3.4V,则发射瞬间电压跌至 3.364V,仍在 MCU 工作范围内;但如果电池老化内阻升至 5Ω,压降达 90mV,电压跌至 3.31V,可能触发欠压复位。
2.3 单位换算实战:从 mAh 到 J 再到天
在 TinyML 工程实践中,最常遇到的单位换算场景是电池容量(mAh)与设备功耗(mW)之间的换算,以及能量(J)与续航时间(天)之间的换算。以下是一个完整的换算流程:
场景:某智能传感器节点使用 CR2032 纽扣电池(标称容量 225mAh,标称电压 3.0V),设备平均电流为 45μA,峰值电流为 12mA。请估算理论续航时间。
步骤 1:计算平均功耗
P_avg = 3.0V × 45μA = 135μW = 0.135mW
步骤 2:计算电池总能量
E_battery = 225mAh × 3.0V = 0.225A × 3.0V × 3600s = 2430J
步骤 3:计算理论续航
T = 2430J / 0.000135W = 18,000,000s ≈ 5000 小时 ≈ 208 天
步骤 4:考虑降额因子
实际使用中,电池自放电(CR2032 年自放电率约 1-2%)、温度影响、峰值电流导致的电池电压跌落,都会缩短实际寿命。工程上通常取 70-80% 的降额系数:
T_realistic = 208天 × 0.75 ≈ 156 天
这个案例展示了从电池规格到续航估算的完整链路。值得注意的是,如果设备有射频发射等高电流脉冲,电池的“有效容量”会低于标称值——因为大电流放电时,电池内部化学反应的利用率下降。
| 换算方向 | 公式 | 示例 |
|---|---|---|
| mAh → C(库仑) | Q = mAh × 3.6 | 100mAh = 360C |
| mAh → J(固定电压) | E = mAh × V × 3.6 | 100mAh × 3.7V = 1332J |
| mW → mA(固定电压) | I = P / V | 10mW @ 3.3V = 3.03mA |
| J → mAh(固定电压) | mAh = J / (V × 3.6) | 1000J @ 3.7V = 75.1mAh |
| Wh → J | J = Wh × 3600 | 1Wh = 3600J |
2.4 常见误区与工程复盘
误区一:混淆平均电流与 RMS 电流。 平均电流是算术平均值,而 RMS(均方根)电流用于计算电阻上的热损耗。对于脉冲性负载,两者差异显著。例如,一个 1mA 电流持续 10% 时间、其余时间为零的波形,平均电流为 0.1mA,但 RMS 电流为 √(0.1 × 1²) = 0.316mA。如果使用平均电流计算线路电阻损耗,会低估 10 倍。
误区二:忽略电压波动对功耗计算的影响。 电池放电过程中电压会逐渐下降。例如,锂电池从 4.2V 降至 3.0V,如果设备是恒功率负载(如 DC-DC 供电),则电流会随电压下降而上升。此时,仅记录电流而不记录电压,会导致能量计算偏差。正确的做法是同步采样电压和电流,计算瞬时功率后积分。
误区三:峰值功耗测量采样率不足。 如果 MCU 在 10μs 内完成一次射频发射的电流爬升,而采样率只有 1kHz(采样间隔 1ms),则很可能完全错过峰值。奈奎斯特采样定理要求采样率至少为信号最高频率分量的两倍,工程上建议 10 倍以上。对于 TinyML 设备,建议使用至少 100kHz 采样率的功耗仪,或使用示波器电流探头捕捉瞬态。
误区四:将“平均功耗”等同于“待机功耗”。 平均功耗是包含活跃、睡眠、空闲等所有状态的加权平均,而待机功耗仅指设备处于最低功耗状态时的功耗。一个设备可能待机功耗仅 2μW,但平均功耗高达 5mW——因为每 10 秒唤醒一次执行 50ms 的推理任务。产品规格书中应同时标注这两个指标。
案例复盘:一次因单位混淆导致的续航误判
某团队开发一款可穿戴 ECG 监测设备,使用 100mAh 锂电池(3.7V)。工程师 A 测量得到设备平均电流为 2.5mA,于是计算续航为 100mAh / 2.5mA = 40 小时。但实际测试中,设备仅运行 28 小时便关机。排查后发现以下问题:
- 测量条件错误:工程师 A 使用万用表在“电流”档位测量,但万用表的内阻(约 10Ω)串联在供电回路中,导致设备实际供电电压降至 3.5V,MCU 的 DC-DC 转换器效率下降,实际电流比正常工作时高 15%。
- 未考虑电池放电截止电压:锂电池在 3.0V 时即需关断,而工程师 A 按 3.7V 恒压计算能量,高估了可用能量约 20%。
- 峰值电流导致的电池容量损失:ECG 的蓝牙广播峰值电流达 15mA,在 100mAh 小电池上,大电流放电使有效容量降至标称的 85%。
修正后的计算:
实际平均电流 = 2.5mA × 1.15(效率损失) = 2.875mA
有效电池容量 = 100mAh × 0.85(大电流降额) × 0.85(截止电压降额) = 72.25mAh
修正续航 = 72.25mAh / 2.875mA ≈ 25.1 小时
加上温度和环境因素,实际 28 小时的续航与修正估算基本吻合。这个案例说明,功耗测试不仅是“读数”,更是一个涉及测量方法、电池特性和系统效率的系统工程。