
在新能源汽车实际使用中,续航显示准不准,根子都在电池 SOC(剩余电量)测算精度上。尤其现在普遍使用磷酸铁锂电池,电压平台平、非线性强,单纯靠电流积分很容易越跑越偏,导致表显电量忽高忽低。小米汽车在 BMS 算法上并没有走极端路线,而是采用了行业主流、同时又做了深度工程适配的方案:以安时积分为基础,用扩展卡尔曼滤波做动态修正,再配合温度、老化、静置电压做多层校准。本文从实际工程实现的角度,把这套测算逻辑拆开讲清楚,附带具体公式与实测数据。
不管是小米还是其他品牌,所有电动车的电量统计,底层都离不开电流对时间的积分,这是最直接、物理意义最清晰的方式。
2.1 连续域数学模型
理论上,SOC 的完整表达式为:

式中:

这个式子本质就是:把时间无限微分,把每一时刻的电流乘上微分时间片,再全部积分起来,得到总进出电量。
2.2 车载离散实现
车上不可能跑连续积分,BMS 都是按固定周期采样、累加计算:
SOCn=SOCn−1−CNηInΔt×100%
小米 BMS 的采样周期设为 100ms,每 0.1 秒算一次电量变化,既保证实时性,又不会占用过多算力。
2.3 实际积分效果
以 SU7 60km/h 匀速行驶为例:
平均放电电流约 15A
连续行驶 1 小时
积分电量:15Ah
对应 SOC 变化:15/229≈6.55%
仪表显示 SOC 下降约 6.5%,积分本身精度很高。
但问题也很明显:电流传感器有零点漂移、温度会影响容量、电池会老化,长时间累积后,纯积分误差能轻松跑到 5%~10%,表显续航就会 “忽准忽不准”。
小米在积分之上,直接用了 EKF 做融合修正,这也是目前乘用车 BMS 的主流方案。它不复杂,核心就两步:先靠积分预测,再用电压观测拉回真值。
3.1 预测与更新逻辑
预测步,完全就是上面的安时积分:
SOCpre=SOCest(n−1)−CNηInΔt
更新步,用电压查表得到一个观测 SOC,再加权融合:
SOCest=SOCpre+Kn(SOCocv−SOCpre)
这里的 Kn 是卡尔曼增益,BMS 会根据电流波动、电压稳定性自动调整。简单说:
电流乱、电压不稳时,更相信积分;
电流平稳、电压接近开路状态时,更相信电压观测。
3.2 实际修正效果
在 120km/h 高速大电流工况下,对比结果很直观:
纯安时积分误差:±7.2%
加入 EKF 之后误差:±2.8%
这也是为什么小米 SU7 在长时间高速、频繁加减速时,电量显示不会像一些低端车型那样乱跳。
算法再强,不做工况适配也没用。小米针对磷酸铁锂的特点,加了三层实用校准。
4.1 温度补偿
磷酸铁锂低温容量掉得明显,BMS 内部有温度–容量修正关系:
CT=CN[1−0.005∣25−T∣]
0℃时容量大约只剩 90%,-20℃下进一步降到 70% 左右,算法会同步修正 SOC 基准,避免低温下电量 “虚高”。
4.2 老化修正
随着循环次数增加,电池实际容量会变小。小米 BMS 通过估算 SOH,实时更新可用容量:
Caged=CN×SOH
每百次循环 SOH 下降约 1%,积分基准也跟着下调,避免老电池电量算出来偏乐观。
4.3 静置 OCV 校准
车辆停车静置超过 10 分钟后,BMS 会用稳定后的开路电压重新校准 SOC,把行驶中累积的小误差一次性拉回,校准后误差基本能压到 1% 以内。
从实际表现看,小米这套 SOC 算法大致处在这样一个水平:
低端国产车:纯积分,误差 ±6%~10%,低温和高速偏差很大;
小米汽车:积分 + EKF + 多重补偿,磷酸铁锂版本稳态误差 ±2.8%~3.5%;
特斯拉:三元锂 + 高阶滤波 + 精细电化学模型,误差 ±2%~2.5%。
差距主要在电池本身特性上,磷酸铁锂天生不如三元锂好算,小米能做到这个精度,已经属于第一梯队。
小米汽车的 SOC 测算,并没有用什么 “黑科技”,而是一套非常扎实的工程化方案:
底层是微积分安时积分,中间靠 EKF 滤波抑制漂移,外围用温度、老化、静置电压做层层校准。
从用户体验上看,这套逻辑解决了磷酸铁锂电池电量显示不准、容易跳变的痛点。它的优势不在于算法多新颖,而在于参数标定细致、工况覆盖完整,在车规算力、成本和精度之间做到了比较均衡的取舍。