【代码分享】基于非支配排序的蜣螂优化算法的微电网多目标低碳经济优化调度matlab代码

程序名称:基于非支配排序的蜣螂优化算法的微电网多目标低碳经济优化调度

实现平台:matlab

代码简介:微电网优化调度作为智能电网优化的重要组成部分,对降低能耗、环境污染具有重要 意义。微电网的发展目标既要满足电力供应的基本需求,又要提高经济效益和环境保护。对此, 提出了一种综合考虑微电网系统运行成本和环境保护成本的并网模式下微电网多目标优化调 度模型。同时采用非支配排序的蜣螂优化算法对优化模型进行求解。仿真结果表明,该模型可以有效 降低用户的用电成本和环境污染,促进微电网的优化运行,并验证了非支配排序的蜣螂优化算法的优越性能。极品代码,非支配排序的蜣螂优化算法,有一定创新!附带参考文献。

蜣螂优化算法(Dung beetle optimizer,DBO)由Jiankai Xue和Bo Shen于2022年提出,该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁殖行为的启发所得。基于非支配排序的蜣螂优化算法(Non-Dominated Sorting Dung beetle optimizer,NSDBO)由蜣螂优化算法与非支配排序策略结合而成。它主要用于解决多目标优化问题。下面是该算法的原理和实现流程:

原理:

  1. 初始化种群:随机生成一组个体作为种群,并计算每个个体的适应度值。
  2. 非支配排序:对种群中的个体进行非支配排序,将种群划分为若干个不同的非支配等级。
  3. 计算蜂拥力:根据个体在非支配排序中的等级,计算每个个体的蜂拥力值,用于后续的蜣螂追随行为。
  4. 蜣螂追随行为:蜣螂会选择前往非支配等级较高的个体所在的区域,这样可以保证蜣螂更有可能找到更好的解。
  5. 更新种群:根据蜣螂追随行为的结果,更新种群中的个体。
  6. 终止条件判断:根据预设的终止条件(例如最大迭代次数或满足某个适应度阈值),判断是否结束算法。

实现流程:

  1. 初始化种群:随机生成一组个体,并计算每个个体的适应度值。
  2. 对种群中的个体进行非支配排序,得到每个个体的非支配等级和被支配个体数量的信息。
  3. 计算每个个体的拥挤度距离,以衡量个体在目标空间中的分散性。
  4. 根据个体的非支配等级和拥挤度距离,计算每个个体的蜂拥力值。
  5. 根据蜂拥力值,确定每个个体前往的目标区域。
  6. 更新种群中的个体位置,以实现蜣螂追随行为。
  7. 判断是否满足终止条件,若不满足则返回步骤2;否则,算法结束。

通过迭代循环上述流程,NSDBO算法会逐渐搜索到多目标优化问题的一系列非支配解,这些解代表问题的最优解集合,提供了可供决策者选择的多个最优解。

参考文献:《基于改进粒子群算法的微电网多目标优化调度 》《基于蜣螂优化算法的光伏电池参数辨识》,Xue, J., Shen, B. Dung beetle optimizer: a new meta-heuristic algorithm for global optimization. J Supercomput (2022)》《基于非支配排序遗传策略的车联网多目标计算任务卸载调度方法》

代码获取方式:【代码分享】基于非支配排序的蜣螂优化算法的微电网多目标低碳经济优化调度matlab代码

代码分享,论文推荐

运行结果展示

function MultiObj = GetFunInfo(TestProblem) %46个多目标测试函数
switch TestProblem
    case 1
        global P_load; %电负荷
        global WT;%风电
        global PV;%光伏
        global buy_price;%买电电价
        global sell_price;%售电电价
        %获取数据
        data=xlsread('data.xlsx');
        P_load=data(:,1);
        PV=data(:,2);
        WT=data(:,3);
        buy_price=data(:,4);
        sell_price=data(:,5);
        %蓄电池最大放电功率(正表示为电负荷供电,即放电)
        BESSMax_dischar=30;
        %蓄电池最大充电功率
        BESSMax_char=-30;
        %柴油机最大发电功率
        DEMax=30;
        %柴油机最小发电功率
        DEMin=6;
        %燃气轮机最大发电功率
        MTMax=30;
        %燃气轮机最小发电功率
        MTMin=3;
        %主网交互最大功率(正表示为电负荷供电)
        GridMax=30;
        %主网交互最小功率
        GridMin=-30;
        %各设备出力约束
        for n=1:144 %粒子长度为144(光伏,风电,储能,柴油,燃气轮机,主网的6*24个小时出力)
            if n<25
                lower_bound(n)=0;
                upper_bound(n) =PV(n);
            end
            if n>24&&n<49
                lower_bound(n)=0;
                upper_bound(n) =WT(n-24);
            end
            if n>48&&n<73
                lower_bound(n)=BESSMax_char;
                upper_bound(n) =BESSMax_dischar;
            end
            if n>72&&n<97
                lower_bound(n)=DEMin;
                upper_bound(n) =DEMax;
            end
            if n>96&&n<121
                lower_bound(n)=MTMin;
                upper_bound(n) =MTMax;
            end
            if n>120
                lower_bound(n)=GridMin;
                upper_bound(n) =GridMax;
            end
        end
        CostFunction = @Fun;
        nVar = 144;
        VarMin = lower_bound;
        VarMax = upper_bound;
        name='微电网优化';
        numOfObj = 2;
end
MultiObj.nVar=nVar;
MultiObj.var_min = VarMin;
MultiObj.var_max =VarMax;
MultiObj.fun=CostFunction;
MultiObj.numOfObj=numOfObj;
MultiObj.name=name;
end
function o=Fun(x)
o=prob(x) ;
end

【代码分享】基于非支配排序的蜣螂优化算法的微电网多目标低碳经济优化调度matlab代码_第1张图片

【代码分享】基于非支配排序的蜣螂优化算法的微电网多目标低碳经济优化调度matlab代码_第2张图片

【代码分享】基于非支配排序的蜣螂优化算法的微电网多目标低碳经济优化调度matlab代码_第3张图片

【代码分享】基于非支配排序的蜣螂优化算法的微电网多目标低碳经济优化调度matlab代码_第4张图片

【代码分享】基于非支配排序的蜣螂优化算法的微电网多目标低碳经济优化调度matlab代码_第5张图片

你可能感兴趣的:(算法,matlab,开发语言)