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采样要注意什么、怎么避免电池自放电影响测量精度。到时候我会拿一个实际项目中的电路图来拆解,保证干货满满。