👨🎓个人主页:研学社的博客
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
📚2 运行结果
🌈3 Matlab代码实现
🎉4 参考文献
💥1 概述
该文提出一种改进形式的基于混沌的原子搜索优化(IASO)算法,通过调整一维(一维)混沌图(帐篷、正弦和逻辑)来提高搜索能力,通过强化勘探和开发阶段来提高搜索能力。IASO避免了过早收敛和陷入局部最优。首先,使用经典基准函数对所提出的IASO进行验证,并将其性能与ASO算法进行比较。测试结果表明,所提算法在均值、标准差和最佳值方面均优于算法。此外,利用所提技术通过最小化积分时间绝对误差,设计用于多区域多源混合电力系统(HPS)负载频率自动控制(ALFC)的分数阶比例积分微分控制器参数。结果表明,与ASO相比,所提控制方案在建立时间、峰值下冲、稳态误差值和控制力度方面分别提高了系统频率响应48%、70%、15%和69%。此外,通过考虑HPS参数±25%的变化进行灵敏度分析,并使用马来西亚气象数据测试实时适用性太阳辐射和风速变化。这些分析表明,瞬态振荡以最短的建立时间被阻尼,系统重新恢复到稳定的工作条件。此外,对瞬态和稳态性能指标的评估表明,基于帐篷图的IASO在解决ALFC问题时更有效地获得最优解。此外,通过基于Oustaloup滤波器的频域分数阶传递函数近似分析了系统的稳定性。
📚2 运行结果
部分代码:
function [Best_POS,Best_FIT,CG_curve]=CASO(NP,Max_IT,lb,ub,dim,fobj)
for i=1:3
ChaosVec(i,:)=chaos(Max_IT,i);
end
lb = ones(1,dim).*lb; % Lower boundary
ub = ones(1,dim).*ub; % Upper boundary
alpha=40;
beta=0.2;
CV=ChaosVec(1,:);
%% %---------------------- Initialization by Chaos----------------------------%
T_NP = NP*dim;
XC = chaos(T_NP+1,1);
XC = XC(2:T_NP+1);
XC= reshape(XC,NP,dim);
X= repmat(lb,NP,1) +XC.*(repmat(ub,NP,1) - repmat(lb,NP,1));
V= repmat(lb,NP,1) +XC.*(repmat(ub,NP,1) - repmat(lb,NP,1));
%---------------------------------------------------------------------%
%% ---------------Compute the Initial Fitness of Atoms-------------------------------%
for i=1:NP
Fitness(i)=fobj(X(i,:));
end
%------------------------------------------------------------------------------------%
%%
CG_curve=zeros(Max_IT,1);
[Max_Fitness,Index]=min(Fitness);
CG_curve(1)=Fitness(Index);
Best_POS=X(Index,:);
It=1;
% Calculate acceleration.
Atom_Acc=Acceleration_ch(X,Fitness,It,Max_IT,dim,NP,Best_POS,alpha,beta,CV);
%% -------------------------------Main Loop----------------------------------%
for It=2:Max_IT
for ZZ = 1:It
CG_curve(It)=CG_curve(It-1);
V=rand(NP,dim).*V+Atom_Acc;
X=X+V;
%% -------------------Boundary Handling Mechanism--------------------------------%
for i=1:NP
% Relocate atom out of range.
T_ub= X(i,:)>ub;
T_lb= X(i,:)<lb;
X(i,:)=(X(i,:).*(~(T_ub+T_lb)))+((rand(1,dim).*(ub-lb)+lb).*(T_ub+T_lb));
%Evaluate atom.
Fitness(i)=fobj(X(i,:));
end
%--------------------------------------------------------------------------------%
%% -----------------------Position Update using Chaos ---------------------------%
[Max_Fitness,Index]=min(Fitness);
if Max_Fitness<CG_curve(It)
CG_curve(It)=Max_Fitness;
Best_POS=X(Index,:);
else
xx=CV(ZZ);
r=fix(xx*NP)+1;
X(r,:)=Best_POS;
end
%----------------------------------------------------------------------------------------%
%% --------------------- Calculate Acceleration (Update by Chaos)-----------------%
Atom_Acc=Acceleration_ch(X,Fitness,It,Max_IT,dim,NP,Best_POS,alpha,beta,CV);
end
end
Best_FIT=CG_curve(It);
end
function Potential=LJPotential(Atom1,Atom2,Iteration,Max_Iteration,s)
%Calculate LJ-potential
r=norm(Atom1-Atom2);
c=(1-(Iteration-1)/Max_Iteration).^3;
rsmin=1.1+0.1*sin(Iteration/Max_Iteration*pi/2);
rsmax=1.24;
if r/s<rsmin
rs=rsmin;
else
if r/s>rsmax
rs=rsmax;
else
rs=r/s;
end
end
Potential=c*(12*(-rs)^(-13)-6*(-rs)^(-7));
🌈3 Matlab代码实现
🎉4 参考文献
部分理论来源于网络,如有侵权请联系删除。
[1]I. Andrew Xavier Raj, N. I. B. Abdul Wahab, M. Premkumar, V. Veerapandiyan, M. A. Mohd Radzi, N. B. Sulaiman, and M. Z. Islam, "Renewable Sources-Based Automatic Load Frequency Control of Interconnected Systems Using Chaotic Atom Search Optimization," Applied Soft Computing (Elsevier), Vol. 119, pp. 108574, April 2022. DOI: 10.1016/j.asoc.2022.108574.