电池等效电路模型广泛应用于电池功率预测、发热量计算等,另外可以耦合电池老化模型、电池热阻网络模型等实现控制系统仿真、电池延寿和热管理策略优化等等。
下图为典型的等效电路模型架构,该电路包含电压源Em( ),串联欧姆电阻 ,加上一个或多个RC并联。
由于电池的非线性特性,主要跟温度和SOC强相关,所以电路的参数往往采用查表的方式来实现,数据来源就是各SOC点的脉冲放电和充电电流下的电压特性。
下图的Em就是当前SOC下的 , 的电压降可以快速的计算出 ,比较麻烦的是RC瞬态电压变化段,需要自动化工具进行参数拟合。
整个满电到低SOC的放电过程一般包含多段脉冲电压,那么算上充电方向的,考虑不同温度的,更甚至于考虑不同倍率的电压特性,海量的数据处理起来头都大了,直到我在sumulink里发现了下面这俩个神器(在simulink单元库里搜索network battery)。 其中一个就是电池等效电路模型,可以自由定义RC阶数,最高5阶。
今天重点是旁边的等效电路识别工具,结合matlab的Parameter Estimator的app就可以很方面进行参数识别了。
首先搭建下参数识别的模型,需求的参数是以时间序列的电流与电压数据,给等效电路电流计算相应的电压,同时导入测试电压用于拟合与对比。
、 和 的维度与SOC保持一致,SOC断点与测试的脉冲SOC保持一致就可以了,至于数列的定义输入之类的在matlab里真是太方便了,毕竟是数据处理的天花板。
然后在matlab界面用spe('modelname')调用Parameter Estimator工具,建立一个新的exp,选好仿真与测试曲线,然后选取需要拟合的参数就可以开始拟合了。
在参数识别的时候matlab会自动替代原先参数,并且plot电压仿真结果,以及一些参数值的变化,等达成容差要求后会自动停止,若是觉得电压精度符合要求的话,电池模型的新参数就可以直接用于仿真计算了。
等效电路参数识别的逻辑是先识别OCV,其次是欧姆内阻 ,只要前两者能很好的匹配,RC电路精度一般不会太差。OCV与 本身是可以手算的,所以也可以只识别RC段,2阶若是精度不高,可以用3阶RC尝试下。如下图显示,某些倍率下3阶RC精度能提高10mV。
通过调整SOC断点,OCV和 等,然后让matlab不停地优化参数结果,高频率采样数据可以匹配出非常完美的RC电路(<2mV)。
最后总结下Matlab的参数识别工具的几个好用的地方: