一、太阳能光伏(PV)模型介绍

本文针对光伏参数估计问题,采用单二极管模型(SDM)、双二极管模型(DDM)、三二极管模型(TDM)、光伏组件模型(MM)四类主流模型,均基于电流-电压(I−VI-VIV)非线性特性构建,以均方根误差(RMSE)为参数寻优目标函数。 下图中(a)~(d)分别为单二极管(SDM)、双二极管(DDM)、三二极管模型(TDM)和光伏组件模型(MM)。
在这里插入图片描述

参考文献:
[1] Gao S , Wang K , Tao S , et al. A state-of-the-art differential evolution algorithm for parameter estimation of solar photovoltaic models[J]. Energy Conversion and Management, 2021, 230:113784.


1 单二极管模型(Single Diode Model, SDM)

1.1 模型结构

单二极管模型由光生电流源IphI_{ph}Iph单个二极管串联电阻RsR_sRs、**并联电阻RshR_{sh}Rsh**构成,是工程最常用简化模型,结构简单、计算量小。

1.2 输出电流公式

输出电流ILI_LIL满足:
IL=Iph−Isd[exp⁡(q(VL+RsIL)akT)−1]−VL+RsILRsh I_L = I_{ph} - I_{sd} \left[ \exp\left( \frac{q(V_L + R_s I_L)}{a k T} \right) - 1 \right] - \frac{V_L + R_s I_L}{R_{sh}} IL=IphIsd[exp(akTq(VL+RsIL))1]RshVL+RsIL

1.3 符号定义

  • IphI_{ph}Iph:光生电流(A)
  • IsdI_{sd}Isd:二极管反向饱和电流(μA)
  • VLV_LVL:输出电压(V)
  • RsR_sRs:串联电阻(Ω)
  • RshR_{sh}Rsh:并联电阻(Ω)
  • aaa:二极管理想因子
  • q=1.60217646×10−19 Cq=1.60217646×10^{-19}\ \text{C}q=1.60217646×1019 C:电子电荷量
  • k=1.3806503×10−23 J/Kk=1.3806503×10^{-23}\ \text{J/K}k=1.3806503×1023 J/K:玻尔兹曼常数
  • TTT:电池绝对温度(K)

1.4 待估参数

5个X={Iph,Isd,Rs,Rsh,a}\boldsymbol{X}=\{ I_{ph}, I_{sd}, R_s, R_{sh}, a \}X={Iph,Isd,Rs,Rsh,a}


2 双二极管模型(Double Diode Model, DDM)

2.1 模型结构

在SDM基础上增加第二个二极管,分别模拟扩散电流复合电流损耗,低辐照下精度更高。

2.2 输出电流公式

IL=Iph−Isd1[exp⁡(q(VL+RsIL)a1kT)−1]−Isd2[exp⁡(q(VL+RsIL)a2kT)−1]−VL+RsILRsh \begin{aligned} I_L =& I_{ph} - I_{sd1} \left[ \exp\left( \frac{q(V_L + R_s I_L)}{a_1 k T} \right) - 1 \right] \\ &- I_{sd2} \left[ \exp\left( \frac{q(V_L + R_s I_L)}{a_2 k T} \right) - 1 \right] - \frac{V_L + R_s I_L}{R_{sh}} \end{aligned} IL=IphIsd1[exp(a1kTq(VL+RsIL))1]Isd2[exp(a2kTq(VL+RsIL))1]RshVL+RsIL

2.3 符号定义

  • Isd1I_{sd1}Isd1:扩散二极管饱和电流(μA)
  • Isd2I_{sd2}Isd2:复合二极管饱和电流(μA)
  • a1a_1a1:扩散二极管理想因子
  • a2a_2a2:复合二极管理想因子

2.4 待估参数

7个X={Iph,Isd1,Isd2,Rs,Rsh,a1,a2}\boldsymbol{X}=\{ I_{ph}, I_{sd1}, I_{sd2}, R_s, R_{sh}, a_1, a_2 \}X={Iph,Isd1,Isd2,Rs,Rsh,a1,a2}


3 三二极管模型(Triple Diode Model, TDM)

3.1 模型结构

新增第三个二极管,模拟商用太阳能电池晶界泄漏电流,拟合精度最高但复杂度与计算量最大。

3.2 输出电流公式

IL=Iph−Isd1[exp⁡(q(VL+RsIL)a1kT)−1]−Isd2[exp⁡(q(VL+RsIL)a2kT)−1]−Isd3[exp⁡(q(VL+RsIL)a3kT)−1]−VL+RsILRsh \begin{aligned} I_L =& I_{ph} - I_{sd1} \left[ \exp\left( \frac{q(V_L + R_s I_L)}{a_1 k T} \right) - 1 \right] \\ &- I_{sd2} \left[ \exp\left( \frac{q(V_L + R_s I_L)}{a_2 k T} \right) - 1 \right] \\ &- I_{sd3} \left[ \exp\left( \frac{q(V_L + R_s I_L)}{a_3 k T} \right) - 1 \right] - \frac{V_L + R_s I_L}{R_{sh}} \end{aligned} IL=IphIsd1[exp(a1kTq(VL+RsIL))1]Isd2[exp(a2kTq(VL+RsIL))1]Isd3[exp(a3kTq(VL+RsIL))1]RshVL+RsIL

3.3 符号定义

  • Isd3I_{sd3}Isd3:第三二极管饱和电流(μA)
  • a3a_3a3:第三二极管理想因子

3.4 待估参数

9个X={Iph,Isd1,Isd2,Isd3,Rs,Rsh,a1,a2,a3}\boldsymbol{X}=\{ I_{ph}, I_{sd1}, I_{sd2}, I_{sd3}, R_s, R_{sh}, a_1, a_2, a_3 \}X={Iph,Isd1,Isd2,Isd3,Rs,Rsh,a1,a2,a3}


4 光伏组件模型(PV Module Model, MM)

4.1 模型结构

由大量电池串/并联构成,以SDM为单元,考虑串联数NsN_sNs与并联数NpN_pNp

4.2 输出电流公式

ILNp=Iph−Isd[exp⁡(q(VL/Ns+RsIL/Np)akT)−1]−VL/Ns+RsIL/NpRsh \frac{I_L}{N_p} = I_{ph} - I_{sd} \left[ \exp\left( \frac{q(V_L / N_s + R_s I_L / N_p)}{a k T} \right) - 1 \right] - \frac{V_L / N_s + R_s I_L / N_p}{R_{sh}} NpIL=IphIsd[exp(akTq(VL/Ns+RsIL/Np))1]RshVL/Ns+RsIL/Np

4.3 符号定义

  • NsN_sNs:串联电池数量
  • NpN_pNp:并联电池组数

4.4 待估参数

5个X={Iph,Isd,Rs,Rsh,a}\boldsymbol{X}=\{ I_{ph}, I_{sd}, R_s, R_{sh}, a \}X={Iph,Isd,Rs,Rsh,a}


5 目标函数(参数估计误差)

均方根误差RMSE作为优化目标,最小化模型计算值与实测值的偏差。

5.1 单组数据误差

  • SDM:
    fi(VL,IL,X)=Iph−Isd[exp⁡(q(VL+RsIL)akT)−1]−VL+RsILRsh−IL f_i(V_L,I_L,X) = I_{ph} - I_{sd} \left[ \exp\left( \frac{q(V_L + R_s I_L)}{a k T} \right) - 1 \right] - \frac{V_L + R_s I_L}{R_{sh}} - I_L fi(VL,IL,X)=IphIsd[exp(akTq(VL+RsIL))1]RshVL+RsILIL
  • DDM:
    fi(VL,IL,X)=Iph−Isd1[exp⁡(q(VL+RsIL)a1kT)−1]−Isd2[exp⁡(q(VL+RsIL)a2kT)−1]−VL+RsILRsh−IL \begin{aligned} f_i(V_L,I_L,X) =& I_{ph} - I_{sd1} \left[ \exp\left( \frac{q(V_L + R_s I_L)}{a_1 k T} \right) - 1 \right] \\ &- I_{sd2} \left[ \exp\left( \frac{q(V_L + R_s I_L)}{a_2 k T} \right) - 1 \right] - \frac{V_L + R_s I_L}{R_{sh}} - I_L \end{aligned} fi(VL,IL,X)=IphIsd1[exp(a1kTq(VL+RsIL))1]Isd2[exp(a2kTq(VL+RsIL))1]RshVL+RsILIL
  • TDM:
    fi(VL,IL,X)=Iph−Isd1[exp⁡(q(VL+RsIL)a1kT)−1]−Isd2[exp⁡(q(VL+RsIL)a2kT)−1]−Isd3[exp⁡(q(VL+RsIL)a3kT)−1]−VL+RsILRsh−IL \begin{aligned} f_i(V_L,I_L,X) =& I_{ph} - I_{sd1} \left[ \exp\left( \frac{q(V_L + R_s I_L)}{a_1 k T} \right) - 1 \right] \\ &- I_{sd2} \left[ \exp\left( \frac{q(V_L + R_s I_L)}{a_2 k T} \right) - 1 \right] \\ &- I_{sd3} \left[ \exp\left( \frac{q(V_L + R_s I_L)}{a_3 k T} \right) - 1 \right] - \frac{V_L + R_s I_L}{R_{sh}} - I_L \end{aligned} fi(VL,IL,X)=IphIsd1[exp(a1kTq(VL+RsIL))1]Isd2[exp(a2kTq(VL+RsIL))1]Isd3[exp(a3kTq(VL+RsIL))1]RshVL+RsILIL
  • MM:
    fi(VL,IL,X)=Iph−Isd[exp⁡(q(VL/Ns+RsIL/Np)akT)−1]−VL/Ns+RsIL/NpRsh−ILNp f_i(V_L,I_L,X) = I_{ph} - I_{sd} \left[ \exp\left( \frac{q(V_L / N_s + R_s I_L / N_p)}{a k T} \right) - 1 \right] - \frac{V_L / N_s + R_s I_L / N_p}{R_{sh}} - \frac{I_L}{N_p} fi(VL,IL,X)=IphIsd[exp(akTq(VL/Ns+RsIL/Np))1]RshVL/Ns+RsIL/NpNpIL

5.2 总体RMSE公式

RMSE(X)=1N∑i=1Nfi(VL,IL,X)2 RMSE(X) = \sqrt{\frac{1}{N} \sum_{i=1}^N f_i(V_L,I_L,X)^2} RMSE(X)=N1i=1Nfi(VL,IL,X)2

  • NNN:实验数据点数

6 模型对比总结

模型 二极管数 待估参数 精度 复杂度 适用场景
SDM 1 5 通用工程、快速仿真
DDM 2 7 低辐照、高精度需求
TDM 3 9 最高 大面积工业硅电池
MM 1(组串) 5 实际光伏组件系统

二、山羊优化算法

山羊优化算法(Goat Optimization Algorithm, GOA)是2025年提出的一种新型生物启发式元启发式算法,灵感来源于山羊在恶劣和资源有限环境中的适应性行为。该算法旨在通过模拟山羊的觅食策略、移动模式和躲避寄生虫的能力,有效平衡探索和开发,以解决全局优化问题。
参考文献:
[1]nozari, hamed, and Agnieszka Szmelter-Jarosz. “Goat Optimization Algorithm: A Novel Bio-Inspired Metaheuristic for Global Optimization.” Applied Innovations in Industrial Management (AIIM), 2025.
原文链接:https://blog.csdn.net/weixin_46204734/article/details/146115384

三、算法求解及部分结果

close all
clear
clc
addpath('Benchmark_Solar_Cell');
func_flag=2;%1-6(共有6种模型,对应论文里面的6种模型)
fobj = @(x)evaluate_normal_fitness(x,func_flag);
Prfobj = @(x)Prevaluate_normal_fitness(x,func_flag);
[lb,ub,Dim]=PV_Xrange(func_flag);
SearchAgents_no=30; % 种群大小(可以修改)
Max_iteration=200; % 最大迭代次数(可以修改)
Result=Prfobj(bestX);
Result.curve=curve;
save Result Result %保存结果

%% 显示结果
display(['算法获得的最佳参数为:', num2str(bestX)]);
display(['算法获得的RMSE为:', num2str(fMin)]);

%% 画图
plotFigure;%画图

(1)模型一求解结果:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(2)模型二求解结果:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
结果说明:
在这里插入图片描述
Pre_I为算法的预测电流
actual_I是真实电流
actual_V_data是真实电压
Pre_P是预测功率
actual_P是真实功率
AbsError是真实电流与预测电流的绝对误差
x是算法优化得到的最佳参数
curve是算法的收敛曲线,即RMSE随迭代次数的曲线图
MeanError是算法获得的RMSE

四、私信/点击下方名片免费获取完整MATLAB代码链接

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐