二阶RC等效电路模型的参数估计

建立一个准确的电池模型是电池管理系统的基础。在选定了一个等效电池模型之后,就需要根据对其中的阻抗参数等等参数进行辨识。

对于一个二阶RC等效电路模型来说,需要识别的参数有欧姆内阻Ro,两个RC环节的阻抗参数R1、R2和C1、C2。当然,如果连开路电压OCV都未知的话,还需要识别OCV。而且,以上这些参数都是电池SoC的函数。

实验工况

————————————————————————
进行电池参数识别的工况一般选用周期性变化的电流,如下图所示。


图中电流方波的大小为0.5C,每个周期放电5%,共20个周期。记录整个放电过程中电池端电压的变化值。这样每隔5%的SoC就可以获得一组电池参数。

参数估计

————————————————————————
提取一下在每个电流方波结束附近的端电压曲线:


其中,A-B段为电流为0瞬间,欧姆内阻Ro导致的瞬间的电压降。而Ro正可由此段求得:
$$ Ro=\dfrac{\Delta v}{I} $$
而B-C段则为RC电路环节导致的电压缓慢上升,根据物理模型建立改段的微分方程为:
$$ u(t)=ocv+IR_{1}e^{-\dfrac {t}{R_{1}C_{1}}}+IR_{2}e^{-\dfrac {t}{R_{2}C_{2}}} $$
通过MATLAB中的cftools APP,进行形如y=-a*exp(-bx)-c*exp(-dx)+e的函数拟合,分别求得a、b、c、d、e的值,对应于原微分方程,可以求得:
$$ \begin{cases}R_{1}=\dfrac{a}{I}\\R_{2}=\dfrac{c}{I}\\C_{1}=\dfrac{I}{ab}\\C_{2}=\dfrac{I}{cd}\\ocv=e\end{cases} $$
这样我们就获得了在SoC(k+1)水平下电池的阻抗参数。对20组数据均作如此处理,就可以获得每隔5%SoC下的电池参数。

参数优化

————————————————————————
实际上simulink本身带有Parameter Estimation功能,位于Analysis-Parameter Estimation下。搭建电池模型如下图所示:


电池模型的输入为实验的电流输入,输出为端电压,参数为我们通过cftool拟合得到的电池参数。同时导入实验测试的端电压变化值。选定需要优化的参数后,系统机会根据实验与模型的差值自动矫正模型参数。缺点是整个过程过于漫长,而且依赖于初始值的选择。
具体操作流程如下:

  1. 建立电池的simulink模型。
    这里需要注意的是,一定要在电流输入和电压输入的模块用input和output模块,如上图所示。如果输出位置使用的模块是To Workspace的话,Parameter Estimation是完全捕捉不到系统的输出的。
    output模块没有什么特殊的设定,但是input需要在Model Configuration Parames里设定输入:

    需要设定一个具有两个向量的输入矩阵(图中[t,u]),一个向量为时间t,另外一个向量为电流u。
  2. 参数设置
    在Parameter Estimation界面中,首先需要对左侧第一个任务块进行设置,该任务块用来指定需要优化的模型参数。右键Parameter任务块的空白处,选择需要优化的参数。
  3. 指定实验
    接下来需要设定实验任务块。在这里要指定simulink的输出并导入真实的电压输出值。

    系统根据搭建的simulink模型自动设定input和output,如果没有点击output的+号自行指定输出。设定模型输出后点击导入摁钮导入实际实验的输出端电压值。可支持xlsx、csv等等数据格式。
    input不需要指定,若系统自行指定删除即可。
    设定完成后,可以进行一次实验与仿真的对比,右键实验exp,选择”plot measured & simulated data”,则系统会自动进行一次仿真并将仿真结果与你导入的实验数据一同plot。
  4. Estimation
    单击Estimation,参数估计开始。在这个过程中系统会不断运行simulink模型、更改系统参数、降低measured与simulated的差异。整个过程很漫长,尝试了一次大概在5h左右。最终调整后的参数使仿真与实验的差异大大降低。

    (此次优化电池输入并不是上文图中所示)

其实也可以跳过上文中使用cftools得步骤直接开始用Parameter Estimation进行参数优化。把每个SoC下的模型参数设为某个合理的常数,让MATLAB自行优化。也可以把该过程作为一个参数优化过程,优化已经获得的参数。

参考资料:

Mathworks官方使用手册
一个Mathworks提供的官方案例教程
详细的Parameter Estimation设置过程