基于天牛须(BAS)与NSGA-Ⅱ混合算法的交直流混合微电网多场景多目标优化调度(Matlab代码实现)

欢迎来到本博客❤️❤️

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

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

本文目录如下:

目录

1 概述

2 运行结果

3 文献来源

4 Matlab代码实现


1 概述

本文使用基于天牛须算法(BAS)改进的NSGA-Ⅱ算法对微电网多场景多目标优化调度问题进行求解。在多场景处理方面,采用拉丁超立方抽样(Latin hypercube sampling, LHS)生成大量风电、光伏的日前出力场景,然后使用K-means++聚类方法对大量风光场景进行快速削减与场景生成,得到几个典型的风光出力曲线作为本文的优化调度考虑场景。在微电网优化调度方面,首先构建需求响应负荷,然后以微网运行经济性、运行环保性、可再生能源消纳率为目标函数,已微电网交直流网络潮流等作为约束条件,构建三目标的多场景微电网优化调度问题,最后采用天牛须算法改进NSGA-Ⅱ算法进行优化调度,加快其收敛速度。代码运行结果表明,本文所提方法可以有效降低微电网运行成本、提升可再生能源消纳率。

交直流混合微电网概述:

一般的交直流混合微电网结构如图所示。交流母线接入风力发电机和交流负荷,同时与配电网连接。直流母线接入燃料电池、光伏发电板、锂电池和直流负荷。交流母线和直流母线之间通过双向AC/DC功率变换器连接,实现双向功率流动。在微网正常工作时,交流负荷与直流负荷首先依靠对应侧的分布式电源满足供电需求。当交流侧与直流侧出现功率不平衡的情况时,可通过连接交直流母线的双向AC/DC功率变换器实现功率互补。而位于直流侧的锂电池可以为整个交直流混合微网提供功率的峰谷调节。同时,微电网透过交流侧与配电网的连接,可以为两者提供实时的功率交互。因此,与传统交流微网或直流微网调度相比,交直流混合微网的优化调度除需要应对新能源发电不确定性外,还要综合考虑交直流源荷分区运行的特点,客观上构成了调度的多重不确定性。

天牛须搜索(Beetle Antennae Search-BAS),也叫甲壳虫须搜索,是2017年提出的一种高效的智能优化算法。类似于遗传算法、粒子群算法、模拟退火等智能优化算法,天牛须搜索不需要知道函数的具体形式,不需要梯度信息,就可以实现高效寻优。相比于粒子群算法,天牛须搜索只需要一个个体,即一只天牛,运算量大大降低。

仿生原理

天牛须搜索是受到天牛觅食原理启发而开发的算法。

天牛须搜索的生物原理:

当天牛觅食时,天牛并不知道实物在哪里,而是根据食物气味的强弱来觅食。天牛有两只长触角,如果左边触角收到的气味强度比右边大,那下一步天牛就往左飞,否则就往右飞。依据这一简单原理天牛就可以有效找到食物。

天牛须搜索对我们的启发:

食物的气味就相当于一个函数,这个函数在三维空间每个点值都不同,天牛两个须可以采集自身附近两点的气味值,天牛的目的是找到全局气味值最大的点。仿照天牛的行为,我们就可以高效的进行函数寻优。

NSGA-Ⅱ多目标算法:

NSGA-Ⅱ是最流行的多目标遗传算法之一,它降低了非劣排序遗传算法的复杂性,具有运行速度快,解集的收敛性好的优点,成为其他多目标优化算法性能的基准。

NSGA-Ⅱ算法是Srinivas和Deb于2000年在NSGA的基础上提出的,它比NSGA算法更加优越:它采用了快速非支配排序算法,计算复杂度比NSGA大大的降低;采用了拥挤度和拥挤度比较算子,代替了需要指定的共享半径shareQ,并在快速排序后的同级比较中作为胜出标准,使准Pareto域中的个体能扩展到整个Pareto域,并均匀分布,保持了种群的多样性;引入了精英策略,扩大了采样空间,防止最佳个体的丢失,提高了算法的运算速度和鲁棒性。

NSGA-Ⅱ就是在第一代非支配排序遗传算法的基础上改进而来,其改进主要是针对如上所述的三个方面:

①提出了快速非支配排序算法,一方面降低了计算的复杂度,另一方面它将父代种群跟子代种群进行合并,使得下一代的种群从双倍的空间中进行选取,从而保留了最为优秀的所有个体;

②引进精英策略,保证某些优良的种群个体在进化过程中不会被丢弃,从而提高了优化结果的精度;

③采用拥挤度和拥挤度比较算子,不但克服了NSGA中需要人为指定共享参数的缺陷,而且将其作为种群中个体间的比较标准,使得准Pareto域中的个体能均匀地扩展到整个Pareto域,保证了种群的多样性。

文献来源:

基于天牛须(BAS)与NSGA-Ⅱ混合算法的交直流混合微电网多场景多目标优化调度(Matlab代码实现)_第1张图片

摘要:为了提高交直流混合微网经济效益,提出实时电价机制下的交直流混合微网优化运行方法。首先针对交直流混合微网的结构和电气特性建立其优化运行模型;其次针对微网中负荷构成建立了基于负荷分类的负荷水平对实时电价的响应模型。所提出的日前调度模型将交直流混合微网制定的网内实时电价作为控制变量,给出实时电价制定策略和交直流混合微网日前调度方案。对所建立的模型采用混沌粒子群算法求解。最后通过一个算例验证了所提出方法可以提高风光消纳率,增加交直流混合微网收益并且减小用户平均电费支出。

关键词:

交直流混合微网;优化运行;实时电价;需求侧响应;混沌粒子群算法;

 基于天牛须(BAS)与NSGA-Ⅱ混合算法的交直流混合微电网多场景多目标优化调度(Matlab代码实现)_第2张图片

2 运行结果

基于天牛须(BAS)与NSGA-Ⅱ混合算法的交直流混合微电网多场景多目标优化调度(Matlab代码实现)_第3张图片

基于天牛须(BAS)与NSGA-Ⅱ混合算法的交直流混合微电网多场景多目标优化调度(Matlab代码实现)_第4张图片 基于天牛须(BAS)与NSGA-Ⅱ混合算法的交直流混合微电网多场景多目标优化调度(Matlab代码实现)_第5张图片基于天牛须(BAS)与NSGA-Ⅱ混合算法的交直流混合微电网多场景多目标优化调度(Matlab代码实现)_第6张图片

基于天牛须(BAS)与NSGA-Ⅱ混合算法的交直流混合微电网多场景多目标优化调度(Matlab代码实现)_第7张图片 基于天牛须(BAS)与NSGA-Ⅱ混合算法的交直流混合微电网多场景多目标优化调度(Matlab代码实现)_第8张图片

 基于天牛须(BAS)与NSGA-Ⅱ混合算法的交直流混合微电网多场景多目标优化调度(Matlab代码实现)_第9张图片

 基于天牛须(BAS)与NSGA-Ⅱ混合算法的交直流混合微电网多场景多目标优化调度(Matlab代码实现)_第10张图片

 部分代码“

function load=DR3(pload,detapr)
%pload=ones(1,24);
price=[0.4042,0.4042,0.4042,0.4042,0.4042,0.4042,0.4042,0.8084,0.8084,1.3339,1.3339,1.3339,1.3339,1.3339,1.3339,0.8084,0.8084,1.3339,1.3339,1.3339,1.3339,0.8084,0.4042,0.4042];
%detapr=[-0.1.*ones(1,12) 0.1.*ones(1,12)];
pl1=0.6.*pload;%刚性负荷
pl2=0.2.*pload;%Ⅰ类
pl3=0.2.*pload;%Ⅱ类
[row,colz]=find(detapr>0);%电价上升时段
[row,colf]=find(detapr<0);%电价下降时段
num_colz=size(colz,2);%电价上升时段数量
num_colf=size(colf,2);%%电价下降时段数量
T=24;
a=0.08;%死区阈值
%Ⅰ类负荷
linj=0;lini=0;
for i=1:num_colf
    linj=linj+abs(detapr(colf(i)));%公式(2)
end
for i=1:num_colz
    lini=lini+abs(detapr(colz(i)));
end
for t=1:T
    if ismember(t,colz)==1
        fdetap=fhzy(detapr(t),a);
        linp=0;
        for kj=1:num_colf
            linp=linp+fdetap*abs(detapr(colf(kj)))*pl2(t)/linj;
        end
         lam_pl2(t)=pl2(t)-linp;%公式(5)
       elseif ismember(t,colf)==1
        fdetap=fhzy(detapr(t),a);
        linp=0;
        for ki=1:num_colz
            linp=linp+fdetap*abs(detapr(colz(ki)))*pl2(t)/lini;
        end
         lam_pl2(t)=pl2(t)+linp;%公式(6)
    end
end
%Ⅱ类负荷
e0=-1;e1=0.8;e2=0.6;
Est=zeros(T,T);
for i=1:T
    for j=1:T
        if  i==j
            Est(i,j)=-1;
        elseif i==j+1
            Est(i,j)=0.8;
        elseif i+1==j
            Est(i,j)=0.6;
        else
            Est(i,j)=0;
        end
    end
end
for t=1:T
    lam_pl3(t)=pl3(t)+pl3(t)*(Est(t,:)*(detapr./price)');%公式(10)
end
load=pl1+lam_pl2+lam_pl3;

3 文献来源

部分理论来源于网络,如有侵权请联系删除。

[1]陈安伟,华浩瑞,李鹏等.实时电价机制下交直流混合微网优化运行方法[J].电力系统保护与控制,2017,45(07):13-20.

4 Matlab代码实现

你可能感兴趣的:(matlab,算法,聚类)