赞
踩
参考:锂电池的二阶RC网络等效电路模型 - 車馬炮的文章 - 知乎 https://zhuanlan.zhihu.com/p/407572989
二阶RC网络等效电路模型
锂离子动力电池正负极之间存在电位差,外在表现为电池的电动势能,用电容器模拟;电池电动势能与电池SOC之间存在关系,在模型中用EMF=f(SOC)表达式描述;
锂离子动力电池通过锂离子在正负极之间的嵌入、脱嵌和移动来实现电流的输出,在这个电化学反应和离子运动的过程中,必然会产生一定的阻力,因此在建模时,我们使用电池的内阻来模拟。研究表明,在电池工作时,由于形成的机理不同,电池的内阻又可以进一步划分为欧姆内阻和极化内阻:
在模型中,通过电阻来描述欧姆内阻,通过两个阻容网络(RC 网络)来描述极化内阻。通过和来描述电池工作时的负载电流和电池的端电压。从图中可以看出改进模型通过二极管的单向导电性对欧姆内阻区别充电与放电设置。放电时对应放电欧姆内阻,充电时对应充电欧姆内阻。考虑到电池的开路电压应该包括滞回电压和电动势两部分,所以增加了等效电压源部分:其中 EMF 是电池平衡电势,是滞回电压(历史电流方向会影响的正负号)。
HPPC测试数据:三元锂与磷酸铁锂
基于HPPC测试数据对等效电路模型中的SOC-OCV,内阻,极化电阻和极化电容进行识别,在测试前先对电芯进行恒流恒压满充,然后根据如下步骤进行测试:
步骤 | 电池状态 | 时间(s) | 电流倍率(C) | SOC(%) |
---|---|---|---|---|
1 | 静置 | 7200 | 0 | 100 |
2 | 放电 | 360 | 0.5 | 95 |
3 | 静置 | 1200 | 0 | 95 |
4 | 充电 | 10 | 1 | 95 |
5 | 静置 | 40 | 0 | 95 |
6 | 放电 | 10 | 0.75 | 95 |
7 | 静置 | 180 | 0 | 95 |
8 | 放电 | 360 | 0.5 | 90 |
9 | 静置 | 1200 | 0 | 90 |
… | … | … | … | … |
二阶等效电路的动态方程如下:
U
L
=
U
O
C
V
−
I
R
0
−
U
p
1
−
U
p
2
I
=
U
p
1
R
p
1
+
C
p
1
d
U
p
1
d
t
=
U
p
2
R
p
2
+
C
p
2
d
U
p
2
d
t
求解微分方程
I
=
U
p
R
p
+
C
p
d
U
p
d
t
I=\frac{U_{p}}{R_{p}}+C_{p}\frac{dU_{p}}{dt}
I=RpUp+CpdtdUp有:
U
p
=
I
R
p
(
1
−
e
−
t
R
p
C
p
)
+
U
p
(
0
)
e
−
t
R
p
C
p
U
L
=
U
O
C
V
−
I
R
0
−
(
I
R
p
1
(
1
−
e
−
t
R
p
1
C
p
1
)
+
U
p
1
(
0
)
e
−
t
R
p
1
C
p
1
)
−
(
I
R
p
2
(
1
−
e
−
t
R
p
2
C
p
2
)
+
U
p
2
(
0
)
e
−
t
R
p
2
C
p
2
)
选择100%,95%,…,0%的测试节点中长时间静置的末端电压作为对应的OCV.
R 0 = Δ U A B + Δ U D C 2 I R_0=\frac{\Delta U_{AB}+\Delta U_{DC}}{2I} R0=2IΔUAB+ΔUDC
当BC段放电开始时,为零状态响应,有
t
=
0
,
U
p
(
0
)
=
0
t=0, U_{p}(0)=0
t=0,Up(0)=0:
U
L
=
U
O
C
V
−
I
R
0
−
I
R
p
1
(
1
−
e
−
t
R
p
1
C
p
1
)
−
I
R
p
2
(
1
−
e
−
t
R
p
2
C
p
2
)
U_L=U_{OCV}-IR_0-IR_{p_1}\left(1-e^{-\frac{t}{R_{p_1}C_{p_1}}}\right)-IR_{p_2}\left(1-e^{-\frac{t}{R_{p_2}C_{p_2}}}\right)
UL=UOCV−IR0−IRp1(1−e−Rp1Cp1t)−IRp2(1−e−Rp2Cp2t)
当DE段搁置时,为零输入响应,有
I
=
0
I=0
I=0:
U
(
t
)
=
U
O
C
V
−
U
p
1
(
0
)
e
−
t
R
p
1
C
p
1
−
U
p
2
(
0
)
e
−
t
R
p
2
C
p
2
U(t)=U_{OCV}-U_{p1}(0)e^{-\frac{t}{R_{p_1}C_{p_1}}}-U_{p2}(0)e^{-\frac{t}{R_{p_2}C_{p_2}}}
U(t)=UOCV−Up1(0)e−Rp1Cp1t−Up2(0)e−Rp2Cp2t
用指数拟合的方法可以求出
U
p
1
(
0
)
,
U
p
2
(
0
)
,
−
1
R
p
1
C
p
1
,
−
1
R
p
2
C
p
2
U_{p1}(0), U_{p2}(0), -\frac{1}{R_{p_1}C_{p_1}}, -\frac{1}{R_{p_2}C_{p_2}}
Up1(0),Up2(0),−Rp1Cp11,−Rp2Cp21。因为DE段开始为BC段结尾,因此:
U
p
1
(
0
)
=
I
R
p
1
(
1
−
e
−
T
C
R
p
1
C
p
1
)
U
p
2
(
0
)
=
I
R
p
2
(
1
−
e
−
T
C
R
p
2
C
p
2
)
从而求出具体
R
p
,
C
p
R_p,C_p
Rp,Cp。对与更高阶的等效电路模型,求得的方法一致,只是参数更多。
根据等效电路的参数识别有下表
SOC(%) | U O C V U_{OCV} UOCV | R p 1 R_{p1} Rp1 | R p 2 R_{p2} Rp2 | C p 1 C_{p1} Cp1 | C p 2 C_{p2} Cp2 | R 0 R_0 R0 |
---|---|---|---|---|---|---|
100 | u 0 u_0 u0 | r 11 r_{11} r11 | r 21 r_{21} r21 | c 11 c_{11} c11 | c 21 c_{21} c21 | r 01 r_{01} r01 |
95 | u 1 u_1 u1 | r 12 r_{12} r12 | r 22 r_{22} r22 | c 12 c_{12} c12 | c 22 c_{22} c22 | r 02 r_{02} r02 |
… | … | … | … | … | … | … |
状态变量设置为
X
k
=
(
S
O
C
(
k
)
,
U
p
1
(
k
)
,
U
p
2
(
k
)
)
T
X_k=\left(SOC(k),U_{p1}(k),U_{p2}(k)\right)^T
Xk=(SOC(k),Up1(k),Up2(k))T,电芯最大可用容量C,时间间隔为t,则状态方程为
X
k
=
A
X
k
−
1
+
B
I
k
+
ω
k
X_{k}=AX_{k-1}+BI_k+\omega_k
Xk=AXk−1+BIk+ωk
其中,
ω
k
∼
N
(
0
,
Q
k
)
\omega_k\sim N(0,Q_k)
ωk∼N(0,Qk),
A
=
(
1
0
0
0
e
−
t
C
p
1
R
p
1
0
0
0
e
−
t
C
p
1
R
p
1
)
A=\left(
因为观测方程为
U
k
=
U
O
C
V
(
S
O
C
(
k
)
)
−
U
p
1
(
k
)
−
U
p
2
(
k
)
−
I
k
R
0
+
v
k
其中,
v
k
∼
N
(
0
,
R
k
)
v_k\sim N(0,R_k)
vk∼N(0,Rk).
把观测方程进行泰勒展开:
U
k
=
g
(
X
k
)
=
U
O
C
V
(
S
O
C
(
k
)
)
−
U
p
1
(
k
)
−
U
p
2
(
k
)
−
I
k
R
0
+
v
k
U
k
≈
g
(
X
k
−
1
)
+
g
′
(
X
k
−
1
)
(
X
(
k
)
−
X
(
k
−
1
)
)
H
=
g
′
(
X
k
−
1
)
=
[
α
g
α
S
O
C
(
k
−
1
)
α
g
α
U
p
1
(
k
−
1
)
α
g
α
U
p
1
(
k
−
1
)
]
=
[
U
O
C
V
′
(
S
O
C
(
k
−
1
)
)
−
1
−
1
]
g
(
X
k
−
1
)
=
U
O
C
V
(
S
O
C
(
k
−
1
)
)
−
U
p
1
(
k
−
1
)
−
U
p
2
(
k
−
1
)
−
I
R
0
U
k
≈
U
O
C
V
(
S
O
C
(
k
−
1
)
)
−
U
p
1
(
k
−
1
)
−
U
p
2
(
k
−
1
)
−
I
R
0
+
[
U
O
C
V
′
(
S
O
C
(
k
−
1
)
)
−
1
−
1
]
[
S
O
C
(
k
)
U
p
1
(
k
)
U
p
2
(
k
)
]
−
[
U
O
C
V
′
(
S
O
C
(
k
−
1
)
)
−
1
−
1
]
[
S
O
C
(
k
−
1
)
U
p
1
(
k
−
1
)
U
p
2
(
k
−
1
)
]
=
H
X
k
−
I
R
0
+
D
k
−
1
上述过程可简化为以下流程,由于
U
O
C
V
(
S
O
C
(
k
)
)
≈
U
O
C
V
(
S
O
C
(
k
−
1
)
)
+
U
O
C
V
′
(
S
O
C
(
k
−
1
)
)
(
S
O
C
(
k
)
−
S
O
C
(
k
−
1
)
)
U_{OCV}\left(SOC(k)\right) \approx U_{OCV}\left(SOC(k-1)\right)+U_{OCV}^{\prime}(SOC(k-1))(SOC(k)-SOC(k-1))
UOCV(SOC(k))≈UOCV(SOC(k−1))+UOCV′(SOC(k−1))(SOC(k)−SOC(k−1))
因此观测方程可写成
U
k
≈
H
X
k
−
I
k
R
0
+
D
k
−
1
+
v
k
其中
H
=
(
U
O
C
V
′
(
S
O
C
(
k
−
1
)
)
,
−
1
,
−
1
)
H=\left(
D k − 1 = U O C V ( S O C ( k − 1 ) ) − U O C V ′ ( S O C ( k − 1 ) ) S O C ( k − 1 ) D_{k-1}=U_{OCV}\left(SOC(k-1)\right)-U_{OCV}^{\prime}(SOC(k-1))SOC(k-1) Dk−1=UOCV(SOC(k−1))−UOCV′(SOC(k−1))SOC(k−1)
根据卡尔曼滤波算法,算法步骤如下:
1.初始化:
初始状态为 X 0 = ( S O C ( 0 ) , U p 1 ( 0 ) , U p 2 ( 0 ) ) T X_0=\left(SOC(0),U_{p1}(0),U_{p2}(0)\right)^T X0=(SOC(0),Up1(0),Up2(0))T,其协方差矩阵为 P 0 P_0 P0, Q k Q_k Qk设置为固定值 Q Q Q, R k R_k Rk设置为固定值 R R R.
2.预测阶段:
X
k
=
A
X
k
−
1
+
B
I
k
X_{k}=AX_{k-1}+BI_k
Xk=AXk−1+BIk
P k = A P k − 1 A T + Q k P_k=AP_{k-1}A^T+Q_k Pk=APk−1AT+Qk
3.修正阶段:
卡尔曼增益为
K
k
=
P
k
H
T
H
P
k
H
T
+
R
k
K_k=\frac{P_kH^T}{HP_kH^T+R_k}
Kk=HPkHT+RkPkHT
修正状态为
X
k
′
=
X
k
+
K
k
(
z
k
−
U
k
)
X_k^{\prime}=X_k+K_k(z_k-U_k)
Xk′=Xk+Kk(zk−Uk)
修正状态的协方差矩阵为
P
k
′
=
(
I
−
K
k
H
)
P
k
P_k^{\prime}=\left(I-K_kH\right)P_k
Pk′=(I−KkH)Pk
算法步骤:
初始状态为 X 0 = ( S O C ( 0 ) , U p 1 ( 0 ) , U p 2 ( 0 ) ) T X_0=\left(SOC(0),U_{p1}(0),U_{p2}(0)\right)^T X0=(SOC(0),Up1(0),Up2(0))T,其协方差矩阵为 P 0 P_0 P0, Q k Q_k Qk设置为固定值 Q Q Q, R k R_k Rk设置为固定值 R R R.
状态变量设置为
X
k
=
(
S
O
C
(
k
)
,
U
p
1
(
k
)
,
U
p
2
(
k
)
)
T
X_k=\left(SOC(k),U_{p1}(k),U_{p2}(k)\right)^T
Xk=(SOC(k),Up1(k),Up2(k))T,电芯最大可用容量C,时间间隔为t,则状态方程为
X
k
=
A
X
k
−
1
+
B
I
k
+
ω
k
X_{k}=AX_{k-1}+BI_k+\omega_k
Xk=AXk−1+BIk+ωk
其中,
ω
k
∼
N
(
0
,
Q
k
)
\omega_k\sim N(0,Q_k)
ωk∼N(0,Qk),
A
=
(
1
0
0
0
e
−
t
C
p
1
R
p
1
0
0
0
e
−
t
C
p
1
R
p
1
)
A=\left(
X
k
(
0
)
=
X
k
−
1
X
k
(
1
)
=
X
k
−
1
+
(
(
n
+
λ
)
P
k
−
1
)
第
1
列
X
k
(
2
)
=
X
k
−
1
+
(
(
n
+
λ
)
P
k
−
1
)
第
2
列
X
k
(
3
)
=
X
k
−
1
+
(
(
n
+
λ
)
P
k
−
1
)
第
3
列
X
k
(
4
)
=
X
k
−
1
−
(
(
n
+
λ
)
P
k
−
1
)
第
1
列
X
k
(
5
)
=
X
k
−
1
−
(
(
n
+
λ
)
P
k
−
1
)
第
2
列
X
k
(
6
)
=
X
k
−
1
−
(
(
n
+
λ
)
P
k
−
1
)
第
3
列
X
k
(
i
)
−
=
A
X
k
(
i
)
+
B
I
k
X
k
−
=
∑
i
=
0
2
n
w
m
i
X
k
(
i
)
−
P
k
−
=
∑
i
=
0
2
n
w
c
i
[
X
k
(
i
)
−
−
X
k
−
]
[
X
k
(
i
)
−
−
X
k
−
]
T
+
Q
其中,
{
w
m
(
0
)
=
λ
n
+
λ
w
m
(
i
)
=
λ
2
(
n
+
λ
)
,
i
=
1
∼
2
n
w
c
(
0
)
=
λ
n
+
λ
+
(
1
−
a
2
+
β
)
w
c
(
i
)
=
λ
2
(
n
+
λ
)
,
i
=
1
∼
2
n
\left\{
无迹变换引入四个参数:
α
,
β
,
κ
,
λ
\alpha,\beta,\kappa,\lambda
α,β,κ,λ。其中
λ
\lambda
λ满足:
λ
=
α
2
(
n
+
κ
)
−
n
\lambda = \alpha^2(n+\kappa)-n
λ=α2(n+κ)−n
应为是线性变换,上述的计算结果与下面先验计算一样
X
k
−
=
A
X
k
−
1
+
B
I
k
X_{k}^-=AX_{k-1}+BI_k
Xk−=AXk−1+BIk
P k − = A P k − 1 A T + Q k P_k^-=AP_{k-1}A^T+Q_k Pk−=APk−1AT+Qk
观测方程为
U
k
=
U
O
C
V
(
S
O
C
(
k
)
)
−
U
p
1
(
k
)
−
U
p
2
(
k
)
−
I
k
R
0
+
v
k
其中,
v
k
∼
N
(
0
,
R
k
)
v_k\sim N(0,R_k)
vk∼N(0,Rk).
X
(
0
)
=
X
k
−
X
(
1
)
=
X
k
−
+
(
(
n
+
λ
)
P
k
−
)
第
1
列
X
(
2
)
=
X
k
−
+
(
(
n
+
λ
)
P
k
−
)
第
2
列
X
(
3
)
=
X
k
−
+
(
(
n
+
λ
)
P
k
−
)
第
3
列
X
(
4
)
=
X
k
−
−
(
(
n
+
λ
)
P
k
−
)
第
1
列
X
(
5
)
=
X
k
−
−
(
(
n
+
λ
)
P
k
−
)
第
2
列
X
(
6
)
=
X
k
−
−
(
(
n
+
λ
)
P
k
−
)
第
3
列
X
(
i
)
=
(
S
O
C
(
i
)
,
U
p
1
(
i
)
,
U
p
2
(
i
)
)
T
Z
(
k
)
(
i
)
=
U
O
C
V
(
S
O
C
(
i
)
)
−
U
p
1
(
i
)
−
U
p
2
(
i
)
−
I
k
R
0
Z
ˉ
(
k
)
=
∑
i
=
0
2
n
w
m
i
Z
(
k
)
(
i
)
P
z
k
z
k
=
∑
i
=
0
2
n
w
c
i
[
Z
(
k
)
(
i
)
−
Z
ˉ
(
k
)
]
[
Z
(
k
)
i
−
Z
ˉ
(
k
)
]
T
+
R
P
x
k
z
k
=
∑
i
=
0
2
n
w
c
i
[
X
(
i
)
k
−
−
X
k
−
]
[
Z
(
k
)
i
−
Z
ˉ
(
k
)
]
T
其中,
{
w
m
(
0
)
=
λ
n
+
λ
w
m
(
i
)
=
1
2
(
n
+
λ
)
,
i
=
1
∼
2
n
w
c
(
0
)
=
λ
n
+
λ
+
(
1
−
a
2
+
β
)
w
c
(
i
)
=
1
2
(
n
+
λ
)
,
i
=
1
∼
2
n
\left\{
K k = P x k z k P z k z k − 1 K_k=P_{x_{k}z_{k}}P_{z_{k}z_{k}}^{-1} Kk=PxkzkPzkzk−1
X
^
(
k
)
=
X
k
−
+
K
k
[
Z
(
k
)
−
Z
ˉ
(
k
)
]
P
(
k
)
=
P
k
−
−
K
k
P
z
k
z
k
K
k
T
参考论文:《Adaptive Adjustment of Noise Covariance in Kalman Filter for Dynamic State Estimation》
一般情况下,kalman滤波中的Q、R都是根据经验、实验或数据手册得到的,但是有些参数是无法获得的,尤其是过程噪声,就需要通过不断试凑确定参数,显然是不靠谱的。
自适应卡尔曼滤波提供一种自适应调整Q、R的方法,不需要精确的初值,就可以获得较高的滤波精度。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。