【SCI复现】基于RSSA(随机游走麻雀搜索算法)冷热电联供型微网优化调度

发布时间:2024年01月24日

目录

1?主要内容

2?部分程序

3?程序结果

4 下载链接


1?主要内容

该程序复现SCI文献《Study on?Economic Dispatch of the Combined CoolingHeating and Power Microgrid Based on Improved SparrowSearch Algorithm》,以经济成本和环保成本最小为目标,在考虑满足用户的冷热电负荷需求和各微源特性的限制前提下,考虑生物质、燃气轮机、燃气锅炉、余热锅炉、风力发电、光伏发电、吸收式制冷机、电制冷和电采暖等系统主体模型,建立了冷热电联供微网优化调度模型。复现主要分为两大部分,一是对模型部分复现,即采用随机游走麻雀搜索算法对模型最佳出力情况进行优化,该部分有效区分夜间模式和日间模型,每种模式下单独优化,最终进行汇总计算,得到夏、冬典型日的优化调度结果。二是通过对比突出算法优势,程序和原文一致,比较了WOA、CSSA、SSA、GWO、ABC、PSO、RSSA共7种算法的收敛效果,从收敛速度和求解精度方面验证了RSSA的优势。程序采用matlab编写,无需安装求解器,直接求解即可。

  • 冷热电联供微网模型

程序复现的模型如下:

模型主要包括冷、热、电三种负荷。其中由燃气轮机、风机、光伏电池、储电设备以及大电网承担电负荷;由燃气锅炉、余热锅炉及电采暖承担热负荷;由吸收式制冷机、电制冷机承担冷负荷。在传统的生物质气化过程中加入电加热装置,该模型设计的生物质气化装置由气化炉和电加热装置构成,其中电加热装置目的实质性作用有两方面:一方面为生物质气化炉提供外热源,用于替代常规生物质气化过程中的氧化燃烧反应,减少生物质的燃烧消耗,同时减少了生物质在燃烧过程中释放大量的二氧化碳,以提高气化气的化学能及纯度;另一方面,电加热用于消纳过剩风电,将过剩的风电转化成化学能储存起来。储气罐用于储存生物质气化气。
  • RSSA算法优化流程图

该算法在原有麻雀搜索算法基础上增加了随机游走策略,即加入者围绕当前最优解进行随机游走,提高其搜索能力,在开始迭代之初,随机游走的范围较大,可以增强算法的全局搜索能力,在迭代多次后,随机游走的范围逐渐变小,从而提高算法的局部搜索能力,有利于寻找最优解。
  • 单目标算法改成多目标算法方法

原文中提到了将单目标求解的RSSA算法进一步拓展为多目标帕累托解集的优化算法,这时就需要将单目标的优化策略和多目标的支配关系、种群更新方式等进行融合,这个过程并不难,大家可以自行试验一下,如果有疑问,购买代码后可提供支持。

2?部分程序

ST = 0.8;%预警值
PD = 0.2;%发现者的比列,剩下的是加入者
SD = 0.1;%意识到有危险麻雀的比重
?
PDNumber = pop*PD; %发现者数量
SDNumber = pop - pop*PD;%意识到有危险麻雀数量
if(max(size(ub)) == 1)
   ub = ub.*ones(1,dim);
   lb = lb.*ones(1,dim);  
end
?
%种群初始化
X0=initializationNew(pop,dim,ub,lb);
X = X0;
%计算初始适应度值
fitness = zeros(1,pop);
for i = 1:pop
   fitness(i) =  fobj(X(i,:));
end
 [fitness, index]= sort(fitness);%排序
BestF = fitness(1);
WorstF = fitness(end);
GBestF = fitness(1);%全局最优适应度值
for i = 1:pop
    X(i,:) = X0(index(i),:);
end
curve=zeros(1,Max_iter);
GBestX = X(1,:);%全局最优位置
X_new = X;
for i = 1: Max_iter
    
    BestF = fitness(1);
    WorstF = fitness(end);
    alpha_i=0.1;%加入共享因子
    alpha_f=1.5;%加入共享因子
    R2 = rand(1);
    delta=1-(alpha_i/alpha_f).^(1/i);%加入共享因子
    alpha=(1-delta).*alpha_f;%加入共享因子    
   for j = 1:PDNumber%更新发现者位置
      if(R21); %选择一个除个体i的其它一个个体
          fai=rand*2-1;   %加速系数,取值范围[-1,1]
          X_new(j,:) = X(j,:)+fai.*alpha.*(X(j,:)-X(k,:)); 

3?程序结果

  • 模型优化结果

夏季典型日优化运行结果:

原文结果:

冬季典型日运行结果:

原文结果:

  • 算法对比

?运行结果:( 通过改变函数编号,很容易获取其他测试函数下的对比情况

原文结果:

4 下载链接

文章来源:https://blog.csdn.net/superone89/article/details/135821001
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。