【论文复现】基于改进鲸鱼优化算法的太阳能光伏模型参数提取问题
目录
- 1.摘要
- 2.鲸鱼优化算法WOA原理
- 3.光伏模型
- 4.改进策略
- 5.结果展示
- 6.参考文献
- 7.代码获取
1.摘要
太阳能光伏(PV)模型的参数提取是一个复杂的非线性多变量优化问题,通常存在强耦合关系。本文提出了一种改进鲸鱼优化算法(IWOA),用于提取不同光伏模型的参数。尽管原始的鲸鱼优化算法(WOA)在局部开发方面表现出色,但在处理复杂的多峰问题时,容易陷入停滞并出现早期收敛问题。为了克服这一缺陷,IWOA通过引入两种捕食者搜索策略,有效平衡了局部开发与全局探索,从而显著提升了WOA的性能。
2.鲸鱼优化算法WOA原理
SCI二区|鲸鱼优化算法(WOA)原理及实现
3.光伏模型
SDM(单二极管模型)和DDM(双二极管模型)是最常用的太阳能电池电流-电压特性描述模型,这些模型涉及多个需要估计和优化的参数。由于环境变化、非线性特性以及太阳能电池的老化,这些参数的值会随着时间发生变化。
太阳能电池模型
单二极管模型
SDM的等效电路由一个电流源、一个与二极管并联的电阻和另一个电阻组成,该模型用于描述光伏电池的输出电流:
I
=
I
p
h
−
I
D
−
I
s
h
I
D
=
I
R
d
(
e
x
p
(
V
+
I
∗
R
s
n
∗
V
t
)
−
1
)
I
s
h
=
V
+
I
∗
R
s
R
s
h
V
t
=
k
∗
T
q
\begin{aligned} & I=I_{ph}-I_{D}-I_{sh} \\ & I_{D}=I_{Rd}(exp\left(\frac{V+I^{*}R_{s}}{n^{*}V_{t}}\right)-1) \\ & I_{sh}=\frac{V+I^{*}R_{s}}{R_{sh}} \\ & V_{t}=\frac{k^{*}T}{q} \end{aligned}
I=Iph−ID−IshID=IRd(exp(n∗VtV+I∗Rs)−1)Ish=RshV+I∗RsVt=qk∗T
其中,
I
p
h
I_{ph}
Iph和
I
D
I_D
ID分别表示光生电流和二极管电流,
I
s
h
I_{sh}
Ish是旁路电阻的电流,
I
R
d
I_{Rd}
IRd是二极管的反向饱和电流。
V
V
V表示输出电压,
V
t
V_t
Vt表示结的热电压。
n
n
n是二极管的理想因子,
R
s
R_s
Rs是串联电阻,
k
k
k是玻尔兹曼常数。输出电流重写为:
I
=
I
p
h
−
I
R
d
(
e
x
p
(
q
∗
(
V
+
I
∗
R
s
)
n
∗
k
∗
T
)
−
1
)
−
V
+
I
∗
R
s
R
s
h
I=I_{ph}-I_{Rd}(exp\left(\frac{q^*(V+I^*R_s)}{n^*k^*T}\right)-1)-\frac{V+I^*R_s}{R_{sh}}
I=Iph−IRd(exp(n∗k∗Tq∗(V+I∗Rs))−1)−RshV+I∗Rs
双二极管模型
双二极管模型等效电路包含两个二极管与电流源、并联电阻和串联电阻并联连接。DDM产生的输出电流I为:
I
=
I
p
h
−
I
D
1
−
I
D
2
−
I
s
h
I=I_{ph}-I_{D1}-I_{D2}-I_{sh}
I=Iph−ID1−ID2−Ish
其中,
I
D
1
I_{D1}
ID1、
I
D
2
I_{D2}
ID2分别为二极管的电流:
I
D
1
=
I
R
d
1
(
e
x
p
(
V
+
I
∗
R
s
n
1
∗
V
t
)
−
1
)
I
D
2
=
I
R
d
2
(
e
x
p
(
V
+
I
∗
R
s
n
2
∗
V
t
)
−
1
)
I_{D1}=I_{Rd1}(exp\left(\frac{V+I^*R_s}{{n_1}^*V_t}\right)-1)\\ I_{D2}=I_{Rd2}(exp\left(\frac{V+I^*R_s}{{n_2}^*V_t}\right)-1)
ID1=IRd1(exp(n1∗VtV+I∗Rs)−1)ID2=IRd2(exp(n2∗VtV+I∗Rs)−1)
DDM输出电流:
I
=
I
p
h
−
I
R
d
1
(
e
x
p
(
V
+
I
∗
R
s
n
1
∗
V
t
)
−
1
)
−
I
R
d
2
(
e
x
p
(
V
+
I
∗
R
s
n
2
∗
V
t
)
−
1
)
−
V
+
I
∗
R
s
R
s
h
I=I_{ph}-I_{Rd1}(exp\left(\frac{V+I^{*}R_{s}}{{n_{1}}^{*}V_{t}}\right)-1)-I_{Rd2}(exp\left(\frac{V+I^{*}R_{s}}{{n_{2}}^{*}V_{t}}\right)-1)-\frac{V+I^{*}R_{s}}{R_{sh}}
I=Iph−IRd1(exp(n1∗VtV+I∗Rs)−1)−IRd2(exp(n2∗VtV+I∗Rs)−1)−RshV+I∗Rs
光伏模块模型
光伏模块模型的等效电路更加复杂,因为它包含了更多串联和/或并联连接的太阳能电池。光伏模块的输出电流:
I
=
I
p
h
∗
N
p
−
I
R
d
∗
N
p
(
e
x
p
(
V
+
I
∗
R
s
∗
N
s
N
p
n
1
∗
N
s
∗
V
t
)
−
1
)
−
V
+
I
∗
R
s
∗
N
s
N
p
R
s
h
∗
N
s
N
p
I=I_{ph}{}^*N_p-I_{Rd}{}^*N_p\left(exp\left(\frac{V+\frac{I^*R_s{}^*N_s}{N_p}}{n_1{}^*N_s{}^*V_t}\right)-1\right)-\frac{V+\frac{I^*R_s{}^*N_s}{N_p}}{\frac{R_{sh}{}^*N_s}{N_p}}
I=Iph∗Np−IRd∗Np(exp(n1∗Ns∗VtV+NpI∗Rs∗Ns)−1)−NpRsh∗NsV+NpI∗Rs∗Ns
N
s
N_s
Ns表示串联连接的太阳能电池的数量,而
N
p
N_p
Np表示并联连接的太阳能电池的数量。公式可以简化为:
I
=
I
p
h
−
I
R
d
(
e
x
p
(
V
+
I
∗
R
s
∗
N
s
n
1
∗
N
s
∗
V
t
)
−
1
)
−
V
+
I
∗
R
s
∗
N
s
R
s
h
∗
N
s
I=I_{ph}-I_{Rd}(exp\left(\frac{V+I^*R_s{}^*N_s}{n_1{}^*N_s{}^*V_t}\right)-1)-\frac{V+I^*R_s{}^*N_s}{R_{sh}{}^*N_s}
I=Iph−IRd(exp(n1∗Ns∗VtV+I∗Rs∗Ns)−1)−Rsh∗NsV+I∗Rs∗Ns
适应度函数
光伏系统的参数估计被视为优化问题,其目标是最小化模拟数据与实测数据之间的误差。使用均方根误差(RMSE)来衡量模拟电流与实测电流之间的差异:
R
M
S
E
(
p
r
e
y
i
)
=
1
M
∗
∑
k
=
1
M
F
k
(
I
,
V
,
p
r
e
y
i
)
RMSE(prey_i)=\sqrt{\frac{1}{M}*\sum_{k=1}^MF_k(I,V,prey_i)}
RMSE(preyi)=M1∗k=1∑MFk(I,V,preyi)
参数表述为:
F
k
(
I
,
V
,
p
r
e
y
i
)
=
{
I
p
h
−
I
R
d
(
e
x
p
(
q
∗
(
V
+
I
∗
R
s
)
n
3
k
∗
T
)
−
1
)
−
V
+
I
∗
R
s
R
s
h
−
f
l
o
r
S
D
M
I
p
h
−
I
R
d
(
e
x
p
(
V
+
I
∗
R
s
n
1
∗
V
t
)
−
1
)
−
I
R
d
Ω
(
e
x
p
(
V
+
I
∗
R
s
n
2
∗
V
t
)
−
1
)
−
V
+
I
∗
R
s
R
s
h
−
f
l
o
r
D
D
M
I
p
h
−
I
R
d
(
e
x
p
(
V
+
I
∗
R
s
∗
N
s
n
1
∗
N
s
∗
V
t
)
−
1
)
−
V
+
I
∗
R
s
∗
N
s
R
s
h
∗
N
s
−
l
f
o
r
P
V
m
o
d
u
l
e
\left.F_k(I,V,prey_i)=\left\{ \begin{aligned} & I_{ph}-I_{Rd}\left(exp\left(\frac{q^*(V+I^*R_s)}{n^3k^*T}\right)-1\right)-\frac{V+I^*R_s}{R_{sh}}-florSDM \\ & I_{ph}-I_{Rd}\left(exp\left(\frac{V+I^*R_s}{n_1{}^*V_t}\right)-1\right)-I_{Rd\Omega}\left(exp\left(\frac{V+I^*R_s}{n_2{}^*V_t}\right)-1\right)-\frac{V+I^*R_s}{R_{sh}}-florDDM \\ & I_{ph}-I_{Rd}(exp\left(\frac{V+I^*R_s^*N_s}{n_1{}^*N_s{}^*V_t}\right)-1)-\frac{V+I^*R_s{}^*N_s}{R_{sh}{}^*N_s}-lforPVmodule \end{aligned}\right.\right.
Fk(I,V,preyi)=⎩
⎨
⎧Iph−IRd(exp(n3k∗Tq∗(V+I∗Rs))−1)−RshV+I∗Rs−florSDMIph−IRd(exp(n1∗VtV+I∗Rs)−1)−IRdΩ(exp(n2∗VtV+I∗Rs)−1)−RshV+I∗Rs−florDDMIph−IRd(exp(n1∗Ns∗VtV+I∗Rs∗Ns)−1)−Rsh∗NsV+I∗Rs∗Ns−lforPVmodule
4.改进策略
鲸鱼优化算WOA在进化过程初期能够快速收敛,但在后期容易陷入局部最优解,导致在处理多峰问题时出现早熟现象。这主要是因为WOA通过系数A在探索与开发之间进行平衡。概率计算:
P
(
∣
A
∣
<
1
)
=
P
(
∣
λ
⋅
a
∣
<
1
)
=
0.5
+
∫
0.5
1
∫
1
1
/
λ
d
a
d
λ
=
0.5
+
∫
0.5
1
(
1
λ
−
1
)
d
λ
=
0.5
+
(
ln
λ
−
λ
)
∣
0.5
1
=
ln
2
≈
0.693
\begin{aligned} & P(|A|<1)=P(|\lambda{\cdot}a|<1)=0.5+\int_{0.5}^{1}\int_{1}^{1/\lambda}\mathrm{d}a\mathrm{d}\lambda \\ & =0.5+\int_{0.5}^{1}\left(\frac{1}{\lambda}-1\right)\mathrm{d}\lambda=0.5+(\ln\lambda-\lambda)|_{0.5}^{1} \\ & =\ln2\approx0.693 \end{aligned}
P(∣A∣<1)=P(∣λ⋅a∣<1)=0.5+∫0.51∫11/λdadλ=0.5+∫0.51(λ1−1)dλ=0.5+(lnλ−λ)∣0.51=ln2≈0.693
在进化过程的早期,系数
A
A
A较大,能够提供足够的扰动,帮助WOA跳出局部最优解。但随着进化的进行,
A
A
A值迅速减小,导致扰动过小,无法有效促进进一步的探索。由此可见,WOA在过度强调开发的同时,容易导致算法提前收敛到局部最优解。为了解决这一问题,并实现开发与探索的有效平衡,本文提出了一种改进鲸鱼优化算法(IWOA),其采用了两种新的猎物搜索策略:
X
i
t
+
1
=
X
r
1
t
−
A
⋅
∣
X
i
t
−
X
r
1
t
∣
X
i
t
+
1
=
X
r
2
t
−
A
⋅
∣
X
g
−
X
r
2
t
∣
\begin{array} {c}X_i^{t+1}=X_{r1}^t-A\cdot|X_i^t-X_{r1}^t| \\ \\ X_i^{t+1}=X_{r2}^t-A\cdot|X_g-X_{r2}^t| \end{array}
Xit+1=Xr1t−A⋅∣Xit−Xr1t∣Xit+1=Xr2t−A⋅∣Xg−Xr2t∣
流程图
5.结果展示
CEC2019
单二极管模型
双二极管模型
光伏模块模型
6.参考文献
[1] Xiong G, Zhang J, Shi D, et al. Parameter extraction of solar photovoltaic models using an improved whale optimization algorithm[J]. Energy conversion and management, 2018, 174: 388-405.