【储能选址定容】基于多目标粒子群算法的配电网储能选址定容(Matlab代码实现)

 💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、数据、文章


💥1 概述

文献:

分布式电源的出力具有不确定性,易受环境因素的影响,因此其大量接入将对配电网的安全稳定

运行带来很大影响[1]。储能系统具有快速能量响应能力,能够在一定程度上平抑分布式电源带来的不利影响[2-5]。储能系统接入位置与其容量的不同对其平抑效果的影响很大,因此其接入位置的选择与容量的确定是亟需解决的一个问题。储能系统的选址定容是一个多目标优化问题。

目前常用的多目标优化算法有强度帕累托进化算法[6-7]、多目标微分进化算法[8-10]、多目标遗传算法[11-12]等。但上述几种算法在求解过程中计算效率较低,收敛速度较慢。粒子群算法[13](particle swarmoptimizer,PSO)采用高效的群集并行地对非劣解进行搜索,并且每次迭代过程中可以产生多个非劣解;同时粒子群算法具有记忆功能,粒子通过跟踪自身历史最优解和种群全局最优解来进行搜索,这就使粒子群算法在寻优过程中具有很好的收敛性以及全局搜索能力。因此采用粒子群算法来进行储能选址定容问题的求解。

储能选址定容优化模型考虑了系统节点电压水平、网络损耗和储能系统总容量。为了解决这一问题,提出了改进的多目标粒子群算法(IMOPSO),该算法根据粒子与种群最优粒子的距离来指导惯性权重的取值,使得各粒子的惯性权重可以自适应调整。同时,采用动态密集距离排序来更新非劣解集并指导种群全局最优解的选取,在保持解集规模的同时使解的分布更均匀。为避免决策者偏好对最终结果的影响,采用基于信息熵的序数偏好法从最优Pareto解集中选取储能的最优接入方案。在IEEE33节点配电系统的仿真验证中,结果表明该方法在储能选址定容问题求解中具有很好的收敛性以及全局搜索能力。

储能选址定容在智能算法中的实现过程并不复杂。首先进行变量定义部分,主要涉及储能选址的位置、容量和储能出力。这两部分变量作为优化变量,通过设置最大值和最小值确定变量上下限范围。下一步关键是约束处理部分。对于储能soc约束,在单目标实现过程中可以采用罚函数的表达方式。然而,在多目标求解过程中最好采用绝对约束表达方式,以确保多目标的帕累托解集不会将不满足约束条件的目标值筛选进入解集中,从而导致解集的不准确。最后,设置目标值时,对于配电网节点系统,需注意潮流计算方式的选择和储能出力对系统影响,然后设置不同的目标值。在设置清楚上述内容后,采用智能算法进行求解就变得简单了。

📚2 运行结果

 

 

 

部分代码:

archive=sortrows(archive,-(d+7));   %以拥挤距离降序排序
    if size(archive,1)>200   %控制pareto解集规模
        archive=archive(1:200,:);
    end
    %向上取整
    ddy=ceil(size(archive,1)*0.1*rand);   %选取拥挤距离前10%里的任意一组作为最优粒子
    gx=archive(ddy,1:d);
    yy_best(iterations,:)=gx;
    yy_fitness(iterations,:)=archive(ddy,d+1:d+3);
    archive(:,d+4:d+6)=zeros(size(archive,1),3);
    for m=1:maxFun
        archive(:,d+3+m)=(archive(:,d+m)-fff(m,1))/(fff(m,2)-fff(m,1));   %目标函数无量纲化
    end
   %--按照拥挤距离从大到小的顺序排序结束--%
    if iterations==maxIterations
        %--基于信息熵确立权重的TOPSIS法开始--%
        A=archive(:,d+1:d+maxFun);                    %目标函数
        AA=A;
        zhi=0;
        for m=1:maxFun
            A(:,m)=(A(:,m)-fff(m,1))/(fff(m,2)-fff(m,1));   %目标函数无量纲化
            AA(:,m)=A(:,m)/sum(A(:,m));
        end
        for m=1:maxFun
            for i=1:size(AA,1)
                lAA(i,m)=AA(i,m).*log(AA(i,m));
                if AA(i,m)==0
                   lAA(i,m)=0;
                end
            end
            shang(1,m)=-1/log(maxFun)*sum(lAA(:,m));
            zhi=zhi+(1-shang(1,m));
        end
        for m=1:maxFun
            quan(1,m)=(1-shang(1,m))/zhi;
        end
        B=ones(1,3);         %目标函数参考值,最大,即绝对负理想解
        C=zeros(1,3);        %目标函数参考值,最大,即绝对正理想解
        SF1=sqrt(sum(bsxfun(@times,bsxfun(@minus,A,B),quan).*bsxfun(@times,bsxfun(@minus,A,B),quan),2));
        SG1=sqrt(sum(bsxfun(@times,bsxfun(@minus,A,C),quan).*bsxfun(@times,bsxfun(@minus,A,C),quan),2));
        SC1=SF1./(SF1+SG1);                     %贴合度
        [s1,dy1]=max(SC1);
        gxbest1=archive(dy1,1:d);                  %种群最优
        fymin1=archive(dy1,d+1:d+maxFun);
        
        %--基于信息熵确立权重的TOPSIS法结束--%
    else
                %% 
        %1.惯性函数最大值2.惯性函数最小值,3.当前迭代次数4.总迭代次数5.粒子个数6.粒子7.速度.
        %8.pb 9.gb 10
        %--粒子的速度更新---%%
        v=update_v(wmax,wmin,iterations,maxIterations,n,x,v,px,gx,vmax,d);
        %---粒子的位置更新----%%

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]吴小刚,刘宗歧,田立亭等.基于改进多目标粒子群算法的配电网储能选址定容[J].电网技术,2014,38(12):3405-3411.DOI:10.13335/j.1000-3673.pst.2014.12.021.

🌈4 Matlab代码、数据、文章

  • 16
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值