• 基于非支配排序遗传算法的多目标水光互补优化调度附Matlab代码


    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

    🍎个人主页:Matlab科研工作室

    🍊个人信条:格物致知。

    更多Matlab仿真内容点击👇

    智能优化算法  神经网络预测 雷达通信  无线传感器

    信号处理 图像处理 路径规划 元胞自动机 无人机  电力系统

    ⛄ 内容介绍

    传统水光互补中长期调度模型未考虑光电的短期随机波动性,忽略了短期弃电风险,由此制订的调度规则难以有效协调光电消纳与流域水资源综合管理。光伏发电的随机性、波动性和间歇性限制了电网对光伏发电的接纳能力,随着光伏发电的快速发展,提高光伏的消纳能力是一个亟待解决的大问题。利用水电和光伏进行联合发电是一条提高光伏消纳能力新的途径。本文建立了短期的优化调度模型,以调度期内调峰能力最大和互补系统的出力和负荷需求的偏差最小为目标函数,采用模拟退火粒子群算法进行求解,处理多目标问题时采用拥挤距离排序,并采用外部档案的方法进行数据维护,最终得出水光互补可以明显提高系统的调峰能力。

    ⛄ 部分代码

    %

    function [pop, F]=NonDominatedSorting(pop)

        nPop=numel(pop);

        for i=1:nPop

            pop(i).DominationSet=[];

            pop(i).DominatedCount=0;

        end

        

        F{1}=[];

        

        for i=1:nPop

            for j=i+1:nPop

                p=pop(i);

                q=pop(j);

                

                if Dominates(p,q)

                    p.DominationSet=[p.DominationSet j];

                    q.DominatedCount=q.DominatedCount+1;

                end

                

                if Dominates(q.Cost,p.Cost)

                    q.DominationSet=[q.DominationSet i];

                    p.DominatedCount=p.DominatedCount+1;

                end

                

                pop(i)=p;

                pop(j)=q;

            end

            

            if pop(i).DominatedCount==0

                F{1}=[F{1} i];

                pop(i).Rank=1;

            end

        end

        

        k=1;

        

        while true

            

            Q=[];

            

            for i=F{k}

                p=pop(i);

                

                for j=p.DominationSet

                    q=pop(j);

                    

                    q.DominatedCount=q.DominatedCount-1;

                    

                    if q.DominatedCount==0

                        Q=[Q j];

                        q.Rank=k+1;

                    end

                    

                    pop(j)=q;

                end

            end

            

            if isempty(Q)

                break;

            end

            

            F{k+1}=Q;

            

            k=k+1;

            

        end​

    end

    ⛄ 运行结果​

    ⛄ 参考文献

    [1]丁航, 安源, 王颂凯,等. 水光互补的短期优化调度[C]// 2016第二届能源,环境与地球科学国际会议. 0.

    ⛄ Matlab代码关注

    ❤️部分理论引用网络文献,若有侵权联系博主删除

    ❤️ 关注我领取海量matlab电子书和数学建模资料

     

  • 相关阅读:
    三大基础排序 -选择排序、冒泡排序、插入排序
    基于Java+SpringBoot+Thymeleaf+Mysql疫情资讯和实时数据系统设计与实现
    数据结构与算法复习:第三十三弹
    C++ 常用时间获取函数汇总
    【VINS-Mono】
    Spring的注解总结
    Linux权限
    中英文说明书丨艾美捷细胞失巢凋亡检测试剂盒介绍
    R语言dplyr包select函数删除dataframe数据中的以指定字符串开头的数据列(变量)
    Codeforces Round #811 (Div. 3)补题(A-G)
  • 原文地址:https://blog.csdn.net/qq_59747472/article/details/128130989