目录
该程序复现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算法进一步拓展为多目标帕累托解集的优化算法,这时就需要将单目标的优化策略和多目标的支配关系、种群更新方式等进行融合,这个过程并不难,大家可以自行试验一下,如果有疑问,购买代码后可提供支持。
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,:));
夏季典型日优化运行结果:
原文结果:
冬季典型日运行结果:
原文结果:
?运行结果:( 通过改变函数编号,很容易获取其他测试函数下的对比情况)
原文结果: