单目标应用:Tiki-taka算法(TTA)求解太阳能光伏模型MATLAB

一、四种太阳能光伏模型

随着石油、煤炭、天然气等不可再生能源的快速枯竭,以及空气环境的严重污染,可持续、无污染的能源供应成为热点和关键问题。风能、太阳能、水能、潮汐能等可再生能源的开发利用,必然在未来的可持续发展中发挥至关重要的作用。其中,太阳能作为最成熟、前景最广阔的选择,近年来越来越受到关注。与对场地有严格要求的风能,水和潮汐能以及水力发电厂和风车的建造成本极高相比,太阳能无处不在且取之不尽用之不竭。

太阳能通过光伏(PV)发电系统转化为电能。通过使用新材料技术,一直致力于提高光伏系统中太阳能电池的功率转换效率。基于钙钛矿太阳能电池的冠军器件具有24.8%的认证功率转换效率,仍有很大的改进空间。因此,对精确的光伏电池模型进行仿真、控制和优化对于使光伏发电系统在不同天气条件和温度下具有更高和稳定的转换效率具有帮助和至关重要。

关于光伏模型,有几种主流模型,包括单二极管模型(SDM),双二极管模型(DDM),三二极管模型(TDM),光伏组件模型(MM)等。精确的光伏电池建模被认为是分析光伏系统的特定特性(如电流-电压(I-V)特性)的关键,而参数估计是光伏模型中的一个关键问题。希望找到接近实验数据的模型参数值,以最大限度地提高PV模型在特定条件下的性能。光伏系统的仿真、性能评估、优化设计和实时控制的参数估计至关重要。为了获得高性能的光伏模型,总是要施加准确的参数。此外,它可以为太阳能电池制造中的应用设计、光伏转换增强和最大功率点跟踪提供有价值的指导。因此,光伏模型中的参数估计越来越受到关注,并提出了各种方法来解决这个问题。

 上图中(a)~(d)分别为单二极管(SDM)、双二极管(DDM)、三二极管模型(TDM)和光伏组件模型(MM)。

为了正确估计PV模型中的参数,首先设计了一个误差函数来描述测量电流数据和实验电流数据之间的差异。显然,我们的目标是在光伏模型中找到一组参数,以尽量减少这种误差。将设计的误差函数视为目标函数,在此基础上评估所有解,并演化并保存优秀解以存活到下一次迭代中。

对于 SDM、DDM、TDM 和 MM,误差函数由方程定义:

然后,将均方根误差(RMSE)用作这些优化方法的目标函数,以量化总体误差,给出如下:

其中N表示实验数据的数量。

参考文献:

[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.

二、Tiki-taka算法(TTA)

极致攻守算法(Tiki-Taka Algorithm,TTA)由Mohd Fadzil Faisae Ab. Rashid于2020年提出,该算法受tiki-taka 足球风格的短传、球员定位和保持控球的特点所启发。其旨在控制控球权并利用其战术优势击败对手,TTA算法新颖高效。

参考文献:

[1]Ab. Rashid, M.F.F. (2021), "Tiki-taka algorithm: a novel metaheuristic inspired by football playing style", Engineering Computations, Vol. 38 No. 1, pp. 313-343. https://doi.org/10.1108/EC-03-2020-0137

[2]Zamli, Kamal Z , Kader, et al. Selective chaotic maps Tiki-Taka algorithm for the S-box generation and optimization. 

三、实验结果

Tiki-taka算法(TTA)求解6组太阳能光伏模型【单二极管模型(SDM)双二极管模型(DDM)三二极管模型(TDM),光伏组件模型(MM)的三种情形(Photowatt-PWP201STP6-120 / 36STM6-40 / 36)】,部分代码如下:

close all
clear
clc
addpath('Benchmark_Solar_Cell');
func_flag=1;%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=1000; % 最大迭代次数(可以修改)
[bestX,fMin,curve]=TTA(SearchAgents_no,Max_iteration,lb,ub,Dim,fobj);  
Result=Prfobj(bestX);
Result.curve=curve;
save Result Result %保存结果


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


%% 画图
plotFigure;%画图

部分结果如下:

(1)TTA求解单二极管(SDM)结果

(2)TTA求解双二极管模型(DDM)结果

(3)TTA求解三二极管模型(TDM)结果

(4)TTA求解Photowatt-PWP201结果

(5)TTA求解STP6-120 / 36结果

(6)TTA求解STM6-40 / 36结果

四、参考MATLAB代码

猜你喜欢

转载自blog.csdn.net/weixin_46204734/article/details/131274706
今日推荐