单片机如何监控电池的实时电量
|
从锂电池组PACK跟BMS结合起来的经验来说一下吧。 ![]() 首先,单片机监控电池的实时电量,如果仅仅通过监控锂电池的电压来监控锂电池的实时电量是不够准确的,可以说误差会特别大。这就是我们常说的SOC(剩余电量)的问题,因为大家都知道,锂电池在充电或者放电的时候,电压是一直在波动的,电流越大,波动就会越大。三元锂电池的电压平台是3.6V,磷酸铁锂电池的电压平台是3.2V。 锂电池在各自的平台电压上是比较平稳的,特别是磷酸铁锂电池,它的工作电压范围是2.5V~3.65V,但是它的80%的电量都集中在了3.1V~3.3V之间。所以,锂电池,如果单片机采用的是监控电压的方式来显示它的实时电量的话,基本上算是个摆设了,只能做参考,意义不大。 那要如何来监控电池的实时电量呢? 库仑计,就是电流乘以时间。 电池处于充电状态时,SOC=当前SOC 充电电流*充电时间。 这种方式,可以说比电压监控的方式强百倍,因为这样的实时SOC才是更为准确的,不管电池是在充电还是在放电,SOC不会因为电压波动的问题,出现特别大的误差。 ![]() 都这么准确了,为什么说还有5%左右的误差呢? 这个就是要考虑到锂电池组PACK在实际使用中的情况了,因为库仑计只是在单片机监控到锂电池充电放电电流的时候才能计算到SOC的变化,也就是说如果锂电池组出现单片机无法监控到的电流时,SOC的库仑计方法将会忽视掉,如果时间长,积小成多,SOC就会误差越来越大。 什么是单片机无法监控到的电流呢? BMS内部也有SOC校准机制。 锂电池组触发BMS过充保护时,SOC恢复默认电量为100%; 锂电池组触发BMS过放保护时,SOC恢复默认电量为0%。 如果锂电池组在终端的实际使用中,无法做到触发BMS的过充保护跟过放保护呢?SOC无法校准,那SOC的误差不是越来越大? 电压修正算法,就是根据锂电池组在实际充放电的过程中,采集电量与电压的对应点,经过算法的方式保存起来,当BMS软件识别发现当前SOC数值与电压对应偏差很大时,BMS软件会根据算法再次对SOC进行校准。这样就实现了就算终端用户无法经过过充过放保护来校准SOC,BMS也可以通过电压修正的方式来调整SOC的显示。 当然,电压修正算法的方案特别多,不同的BMS厂家,算法也各有不同,上面讲的是大致的算法方式,给各位做参考。 通过这种库仑计 电压修正算法的方式,还是比较准确的。会让实时电量SOC控制在5%左右的误差。 以上,就是单片机用锂电池供电,较为准确的监控实时电池电量的方式了。 |










