SOC Estimator (Kalman Filter)
库:
Simscape /
Battery /
BMS /
Estimators
描述
SOC Estimator (Kalman Filter) 模块实现了一个估计器,该估计器通过卡尔曼滤波器算法计算电池的荷电状态 (SOC)。
SOC 是释放容量 C 可释放与额定容量 C 额定的比值。制造商会提供每块电池的额定容量值,该值代表电池的最大充电量:
此模块支持单精度和双精度浮点仿真。
注意
要启用继承的单精度浮点仿真,除采样时间(-1 表示继承) 参数外,所有输入和参数的数据类型必须为 single。
对于连续时间仿真,将滤波器类型参数设置为扩展卡尔曼-布西滤波器或无迹卡尔曼-布西滤波器。
注意
此模块的连续时间实现仅适用于双精度浮点仿真。如果您提供单精度浮点参数和输入,此模块会将它们转换为双精度浮点值,以防止出现错误。
对于离散时间仿真,将滤波器类型参数设置为扩展卡尔曼滤波器或无迹卡尔曼滤波器,并将采样时间(-1 表示继承) 参数设置为一个正值或 -1。
方程
这些图分别显示了具有单一时间常数动态特性和双时间常数动态特性的电池的等效电路:


具有两个时常动态的等效电路方程为:
,其中
SOC 是荷电状态。
i 是电流。
V 0 是空载电压。
V t 是端电压。
AH 是安时额定值。
R 1 是第一极化电阻。
C 1 是第一个并联的 RC 电容。
R 2 是第二个极化电阻。
C 2 是第二个并联的 RC 电容。
T 是温度。
V 1 是施加在第一个 RC 网络上的极化电压。
V 2 是施加在第二个 RC 网络上的极化电压。
第一个并联段的时间常数 τ 1 通过关系式 将第一极化电阻 R 1 与第一并联 RC 电容 C 1 相联系。
第二个并联支路的时间常数 τ 2 通过关系式 关联了第二个极化电阻 R 2 与第二个并联 RC 电容 C 2。
对于卡尔曼滤波器算法,该模块使用此状态以及这些处理和观测函数:
若将电荷动态特性参数设置为双时间常数动态特性,对于卡尔曼滤波器算法,此模块将采用此状态及以下过程与观测函数:
该图展示了扩展卡尔曼滤波器 (EKF) 的结构:

EKF 技术依赖于在每个时间步进行线性化,以近似描述非线性系统。为在线实现系统线性化,算法实时计算以下雅可比矩阵:
EKF 是一种离散时间算法。离散化后,电池开路电压估计的雅可比矩阵为:
,其中 T S 为采样时间,V OC 为开路电压。
EKF 算法包含以下阶段:
初始化
- 在时间步 0 时,基于时间步 0 的测量值对状态的估计。
- 使用时间步 0 的测量值,表示时间步 0 的状态估计误差协方差矩阵。
预测
提前预测状态(基于先验信息):
将误差协方差向前工程:
,其中 Q 是过程噪声的协方差。
校正
计算卡尔曼增益:
,其中 R 是测量噪声的协方差。
使用测量值 y(k) 更新估计值(后验):
更新误差协方差:
该图展示了扩展卡尔曼-布西滤波器 (EKBF) 的结构:

EKBF 是卡尔曼滤波器的连续时间变体。在连续时间中,预测与修正步骤是耦合的。
初始化
- 时间 t 0 时的状态估计值。
- 时间 t 0 时的状态估计误差协方差矩阵。
Prediction-Correction EKBF algorithm
其中:
该图展示了无迹卡尔曼滤波器 (UKF) 的结构:

扩展卡尔曼滤波器通过仅使用泰勒展开式的第一项,利用泰勒展开式获得的线性方程对非线性函数进行局部逼近。在高度非线性系统中,这些解的准确性并不高。
UKF 对一组由算法确定性选择的西格玛点集进行非线性变换。该技术被称为无迹变换。变换后点的均值与协方差矩阵精确至泰勒级数展开的二阶项。
UKF 算法遵循以下步骤:
初始化
- 在时间步 0 时,基于时间步 0 的测量值对状态的估计。
- 使用时间步 0 的测量值,表示时间步 0 的状态估计误差协方差矩阵。
生成 sigma 点,并计算每个点的均值权重和协方差权重。
选择 sigma 点 x(i)(k|k)
,其中:
n 是状态向量 x 的维度。
描述了 sigma 点与均值点之间的距离。在正态分布中,β = 2 和 κ = 0。
是 的第 i 行或列。此模块采用数值高效且稳定的方法(如 Cholesky 分解)计算矩阵平方根。
对系统状态矩阵
进行首次估计:
对状态变量的协方差矩阵进行首次估计:
估计测量变量:
估计测量值的协方差 (Py) 以及测量值与状态之间的协方差 (Pxy):
计算卡尔曼滤波器增益:
执行状态矩阵和状态变量协方差的第二次更新:
该图展示了无迹卡尔曼-布西滤波器 (UKBF) 的整体结构:

UKBF 推导出的连续时间滤波方程与 EKBF 方程相似。
由于 UKF 在西格玛点中使用矩阵平方根,该算法通过将滤波器表述为西格玛点的微分方程,从而获得 UKBF 的平方根版本。平方根 UKBF 的方程为:
,其中
是 sigma 点矩阵。
是一个函数,它返回参量的下对角线部分。
是参量矩阵的第 i 列。
示例
端口
输入
输出
参数
参考
[1] Grewal, Mohinder S., and Angus P. Andrews. Kalman Filtering: Theory and Practice Using MATLAB. New York: Wiley Intersci., 2001.
[2] Van der Merwe, R., and E. A. Wan, The Square-Root Unscented Kalman Filter for State and Parameter-Estimation. 2001 IEEE International Conference on Acoustics, Speech, and Signal Processing. Proceedings (Cat. No.01CH37221), vol. 6, IEEE, 2001, pp. 3461–64.
[3] Sarkka, Simo On Unscented Kalman Filtering for State Estimation of Continuous-Time Nonlinear Systems. IEEE Transactions on Automatic Control, vol. 52, no. 9, pp. 1631-1641, Sept. 2007, doi: 10.1109/TAC.2007.904453.
[4] Huria, Tarun, et al. Simplified Extended Kalman Filter Observer for SOC Estimation of Commercial Power-Oriented LFP Lithium Battery Cells.2013, pp. 2013-01–1544.





