光伏模型参数估计:山羊优化算法(Goat Optimization Algorithm, GOA)求解光伏模型参数辨识问题,免费提供完整MATLAB代码链接

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

本文针对光伏参数估计问题,采用单二极管模型(SDM)、双二极管模型(DDM)、三二极管模型(TDM)、光伏组件模型(MM)四类主流模型,均基于电流-电压(I−VI-VI−V)非线性特性构建,以均方根误差(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=Iph−Isd\[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×10−19 C:电子电荷量 * k=1.3806503×10−23 J/Kk=1.3806503×10\^{-23}\\ \\text{J/K}k=1.3806503×10−23 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=Iph−Isd1\[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=Iph−Isd1\[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=Iph−Isd\[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)=Iph−Isd\[exp(akTq(VL+RsIL))−1\]−RshVL+RsIL−IL * 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)=Iph−Isd1\[exp(a1kTq(VL+RsIL))−1\]−Isd2\[exp(a2kTq(VL+RsIL))−1\]−RshVL+RsIL−IL * 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)=Iph−Isd1\[exp(a1kTq(VL+RsIL))−1\]−Isd2\[exp(a2kTq(VL+RsIL))−1\]−Isd3\[exp(a3kTq(VL+RsIL))−1\]−RshVL+RsIL−IL * 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)=Iph−Isd\[exp(akTq(VL/Ns+RsIL/Np))−1\]−RshVL/Ns+RsIL/Np−NpIL #### 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=1∑Nfi(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)模型一求解结果: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/2e0f6a682e3e44aaa352b4a9b36d74c9.jpeg) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/67b8f13a58714e33ad683d85719d3ffc.jpeg) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/1975fe6fdf3340f4838fb9bae9ace6a1.jpeg) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/81414007e7dd4e0e824ce22a576e8ca8.jpeg) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/8e482cda39a9410282586fc52fc5f151.jpeg) ### (2)模型二求解结果: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/deef8a6d42224a04bfaa2a3e64610e7f.jpeg) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/ad21aa56f54e44e0ae794bfedafc4d1a.jpeg) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/cf6488ba10244c9bb80e2a113d2ad3f4.jpeg) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/3e88812aa3ba4f6e815df14a530e9c37.jpeg) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/871e86716f214305902bee10a3a3691b.jpeg) 结果说明: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/9e83a31b1f5f438cb8567d1a79e1c559.png) Pre_I为算法的预测电流 actual_I是真实电流 actual_V_data是真实电压 Pre_P是预测功率 actual_P是真实功率 AbsError是真实电流与预测电流的绝对误差 x是算法优化得到的最佳参数 curve是算法的收敛曲线,即RMSE随迭代次数的曲线图 MeanError是算法获得的RMSE ## 四、私信/点击下方名片免费获取完整MATLAB代码链接

相关推荐
kels88992 小时前
2026 年黄金实时价格数据 API 接口实测推荐
开发语言·笔记·python·金融·区块链
嵌入式小企鹅2 小时前
大模型算法工程师面试宝典
人工智能·学习·算法·面试·职场和发展·大模型·面经
牢七3 小时前
链条合集整理
java·开发语言
我不是懒洋洋3 小时前
手写一个并查集:从原理到最小生成树实战
c语言·c++·经验分享·算法
图码3 小时前
一文搞懂如何判断字符串是否为Pangram(全字母句)
数据结构·算法·网络安全·数字雕刻·ping++
叼烟扛炮3 小时前
C++ 知识点06 inline
开发语言·c++·inline
khalil10203 小时前
代码随想录算法训练营Day-43 动态规划10 | 300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组
数据结构·c++·算法·leetcode·动态规划·子序列问题
曹牧3 小时前
C#:同一项目中维护多个版本的代码
开发语言·c#
AIpanda8883 小时前
数字员工助推AI销冠系统和AI提效软件系统,实现企业智能化转型与运营效率提升
算法