3、电池模型与等效电路:理想电压源模型、内阻模型、Thevenin等效电路、电池SOC估算基础

各位同学,咱们今天聊聊电池模型。说实话,做体温计这类低功耗产品,电池管理要是搞砸了,前面所有电路设计都是白搭。我见过太多工程师,花大把精力优化传感器精度,结果电池电压一掉,测量数据全飘了。

电池模型是什么?说白了,就是用一个数学或电路上的“替身”,去模拟真实电池的行为。你不可能把电池内部化学反应全仿真一遍,那太复杂了。我们需要一个简单、有效、能在单片机里跑起来的模型。

3.1 理想电压源模型

这是最基础的模型。它把电池看作一个输出电压恒定不变的电压源。比如你拿一节1.5V的干电池,理想模型就认为它永远输出1.5V。

核心特征:

  • 输出电压 V = Vbat(恒定值)
  • 内阻 Rin = 0
  • 输出电流可以无限大

这个模型有用吗?说实话,在理论分析初期,它很有用。比如你估算一个LED串联电阻时,用理想模型算一下,心里有个大概。但实际项目中,千万别当真。

注意:我曾经在一个快速原型验证中用了理想模型,结果发现电池电压在负载接入后直接掉了0.3V。当时我还以为是电路焊错了,查了半天才发现是电池内阻在作怪。所以,理想模型只适合做概念推导,千万别用在量产设计里。

3.2 内阻模型

这个模型就靠谱多了。它在理想电压源的基础上,串联了一个电阻 R0。这个 R0 就代表电池内部的等效电阻。

为什么会有内阻?你想想看,电池内部有电解液、有电极材料、有隔膜,电流流过这些地方,怎么可能没阻力?

内阻模型的数学表达式很简单:

V_out = V_oc - I_load × R_0

其中:

  • V_out:电池实际输出电压
  • V_oc:电池开路电压(Open Circuit Voltage)
  • I_load:负载电流
  • R_0:电池内阻

经验之谈:我建议你在设计体温计电路时,先测一下电池在不同电量下的内阻。方法很简单:空载测一次电压,带一个已知电阻的负载再测一次电压,用欧姆定律反推内阻。我习惯用10Ω的功率电阻做负载,电流大概150mA左右,这个量级对纽扣电池来说已经不小了,能暴露出内阻问题。

内阻模型最大的好处是简单,一个电阻就搞定了。但它也有局限——它假设内阻是常数。实际上,电池内阻会随着温度、SOC(荷电状态)、老化程度而变化。体温计可能会在冬天使用,环境温度低,内阻会明显增大。

3.3 Thevenin等效电路

嗯,这里要重点讲一下。Thevenin等效电路,说白了就是把电池内部复杂的电化学特性,用一个电压源加一个电阻再加一个RC网络的组合来模拟。

为什么需要RC网络?因为电池有“极化效应”。你突然拉一个大电流,电池电压会瞬间掉一块,然后慢慢再掉一点。这个“慢慢掉”的过程,就是极化效应在作怪。RC网络正好能模拟这种动态行为。

一个典型的Thevenin电池模型长这样:

V_oc —— R_0 —— R_1 —— C_1 —— V_out
                |      |
                +------+

参数说明:

参数 物理意义 典型值(CR2032纽扣电池)
V_oc 开路电压,与SOC强相关 2.0V ~ 3.0V
R_0 欧姆内阻,瞬间压降的主因 5Ω ~ 15Ω
R_1 极化内阻,决定电压恢复速度 10Ω ~ 30Ω
C_1 极化电容,决定时间常数 100F ~ 1000F(你没看错,法拉级)

为什么C_1这么大? 电池内部的电化学过程,本质上是一个巨大的电容。我刚开始接触时也觉得奇怪,后来想明白了——电池存储能量,电容也存储能量,只不过电池的“电容”是以法拉为单位的。

我在项目中用过这个模型。当时做一款医用体温计,要求连续测量72小时。用内阻模型算出来的电量误差太大,换成Thevenin模型后,SOC估算精度从±15%提升到了±5%以内。嗯,这个提升是实实在在的。

3.4 电池SOC估算基础

SOC,全称State of Charge,就是电池还剩多少电。体温计这种设备,你总不希望它测到一半突然没电吧?

SOC估算方法有很多,我挑几个常用的讲讲:

3.4.1 开路电压法(OCV法)

这个方法最简单。电池开路电压和SOC之间有一个近似线性的关系。你查一下电池的数据手册,或者自己标定一下,就能得到一个映射表。

// 伪代码示例:OCV查表法估算SOC
float get_soc_from_ocv(float ocv) {
    // 假设是CR2032锂电池,3.0V满电,2.0V截止
    if (ocv >= 3.0) return 100.0;
    if (ocv <= 2.0) return 0.0;
    // 线性插值
    return (ocv - 2.0) / (3.0 - 2.0) * 100.0;
}

注意:OCV法要求电池静置一段时间,让极化效应消退。一般需要静置30分钟以上。体温计如果频繁开关机,这个方法就不太准了。我曾经踩过这个坑,客户投诉说电量显示忽高忽低,后来才发现是静置时间不够。

3.4.2 安时积分法(库仑计数法)

这个方法就是实时监测电流,对时间积分,算出用了多少电量。

SOC(t) = SOC(0) - (1/Q_n) × ∫ I(t) dt

其中Q_n是电池的额定容量。这个方法精度高,但有两个问题:

  • 需要高精度的电流检测电路,成本上去了
  • 积分误差会累积,需要定期校准

我的建议:对于体温计这种低成本产品,我一般用OCV法做粗估,再用一个简单的电压跌落检测做辅助判断。比如,当电池电压在负载下突然掉到某个阈值以下,就认为电量不足了。这个方法虽然粗糙,但胜在稳定可靠。

3.4.3 卡尔曼滤波法

这个方法比较高级,适合对精度要求高的场景。它把OCV法和安时积分法结合起来,用数学模型做最优估计。

不过说实话,在体温计这种MCU资源有限的产品上,跑卡尔曼滤波有点奢侈。我一般只在高端医疗设备上才用这个方法。

3.5 小结与选型建议

讲了这么多,到底该用哪个模型?我根据经验给个建议:

应用场景 推荐模型 理由
快速原型验证 理想电压源模型 简单,快速出结果
低功耗体温计(纽扣电池) 内阻模型 + OCV法 够用,成本低
连续监测型体温计(锂电池) Thevenin模型 + 安时积分法 精度高,能处理动态负载
高端医疗设备 多阶RC模型 + 卡尔曼滤波 精度最高,但资源消耗大

最后说一句,模型终究是模型,它是对真实世界的近似。你设计电路时,一定要留出裕量。我习惯在SOC估算结果上再减5%~10%作为安全余量,这样即使模型有偏差,设备也能正常工作。

下一章,咱们聊聊具体的电量检测电路设计,包括分压电阻怎么选、ADC采样要注意什么、怎么避免电池自放电影响测量精度。到时候我会拿一个实际项目中的电路图来拆解,保证干货满满。