微电网优化基于matlab遗传算法求解微电网经济优化问题含Matlab源码 2062期
Posted 海神之光
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微电网优化基于matlab遗传算法求解微电网经济优化问题含Matlab源码 2062期相关的知识,希望对你有一定的参考价值。
一、遗传算法求解微电网经济优化问题简介
1 引言
微电网为分布式电源(尤其是可再生能源)接入大电网提供了一个有效的接入途径。同时,微电网在提高能源利用率方面有显著效果。在其内部,储能电池一方面可以调节微电网的功率,另一方面可以起到削峰填谷的成效。
近年来,针对微电网的经济调度的研究越来越多。例如,刘星月等结合改进的粒子群算法与蒙特卡罗模拟方法对微电网的目标函数求解;高杰在采用优化模型后,采用改进的遗传算法对微电网的日调度进行了研究。文章分析了微电网中各微源的出力特性,在微电网并网运行时以经济成本最低为目标进行算法求解。
2 建立微源模型
2.1 分布式电源的数学模型
(1)风机。风机出力模型Pwt如下:
式中:V为风速;VCL为并网情况下,风机发电的最低风速;VCO为并网情况下,风机发电的最大风速;VR为风机的最佳效率风速;PR为风机能够承受的最大风速。
(2)光伏。光伏出力模型如下:
式中:G为单位面积上所接受可见光的光通量;T为光伏电池内部温度;PPv为光强为G、电池内部温度为T时光伏电池的输出功率;GSTC为标准条件下的光强;Pm为最适条件下的最大输出功率;TR为参照温度;K为功率与温度的关系系数。
(3)柴油发电机。柴油发电机模型CDE,F及污染物治理费用计算式如下:
式中:CDe为发电机所耗燃料的成本;Cfuel为每升柴油的报价;PDe为发电机当前的工作功率;PDe,rated为柴油发电机所能承受的最大功率;a、b为燃料成本特性系数;n为柴油燃烧后的污染物种类;αi为第i种污染物的治理费用;βi为单位体积柴油污染物i的排放率;VDE为消耗的燃料体积。
(4)蓄电池。在充放电时,出于保护蓄电池的目的,为了防止蓄电池过充或者过放,对蓄电池的荷电状态做出一定的要求。蓄电池的荷电状态SOC的计算公式如下:
式中:Cr为蓄电池在某个时刻所剩的电量;CSB为蓄电池在规定要求下所能放出的电量。
式中:a、b为荷电状态参数,文章中a取0.15,b取0.95。
蓄电池的SOC与功率Pbat-1之间的关系为
式中:Δt为间隔时间;SOCt+1、SOCt分别为t+1和t时刻储能电池的荷电状态;Ebat为电池所储存的总能量。
蓄电池需要在1个调度周期(24 h)内维持前后荷电状态不变,即
2.2 目标函数
在并网运行时,建立目标函数min f(x):
式中:T为总调度时长;N为一天的调度时长;Y1(t)为微电网发电成本;Y2(t)为环境治理成本;Y3(t)为经济效益。
2.3 约束条件
微电网运行时,必须满足下列约束。
(1)功率约束。
式中:Pload(t)为微电网在t时刻所要求的总负荷功率;Pwt(t)为风机在t时刻的发电功率;PPv(t)为光伏在t时刻的发电功率;PC(t)为柴油发电机在t时刻的发电功率;Pbat(t)为蓄电池在t时刻的发电功率;Pgrid(t)为微电网在t时刻向大电网买电的功率。
(2)各微源出力功率不会超出最大、最小值的约束。
3 遗传算法的实现
遗传算法是在生物进化过程得到启发而产生的随机搜索算法。
(1)初始化种群。对N个个体的染色体在其取值范围内进行随机编码,这些个体就构成了一个种群规模为N的种群。
(2)计算适应度。根据要求计算函数适应度。
(3)选择。以每个个体的适应度大小为选择概率对种群进行随机选择。文章在前期采用结合随机选择与随种群迭代次数增加而增加的取优法的选择算法;在迭代后期种群适应度趋于集中时,采用随机选择的方法。随机选择在前期会有一定的误差,待取优法开始选择时会确保优秀个体被选中,避免随机选择在后期给算法带来误差。
在选择操作时,先将最优的Enum条染色体选中并传给后代种群。其余的染色体采用随机选择的方法选择。Enum会随种群迭代次数增加而增加,其取值如下:
式中:α为加快择优速率,α≥1,如想要种群在2Gen之后全部采用随机选择的选择方法,α=2;为向上取整函数,可以保证适应度最好的一个优先被选中;Gen为迭代次数的最大值;gen为当前所迭代的次数;β为0~1之间的随机数。
因为α≥1,当Enum的值取到N时,选择方式变为随机选择。
(4)交叉操作。交叉算法的选取能够在一定程度上扩大算法对全局搜索的能力。在采用交叉操作前,先将适应度好的3个个体存放在新种群中,使其不会参与交叉操作,防止因参加交叉操作而引起适应度变低,其余种群采用多点随机交叉的方式。
(5)变异操作。该操作可以体现算法的局部搜索能力,在种群个体满足变异概率的前提下,对个体的染色体进行变异以产生新个体,个体的变异概率通常很低。
在操作前,先将适应度好的1个个体挑出并使其不会参与变异操作。为了提高种群跳出局部最优的能力,对参与变异的其他个体的概率进行设定。当前种群迭代次数未达到最大迭代次数的一半,并且α(密集因子)与最大适应度的乘积小于平均适应度时,迭代次数每增加一次,就倍增变异概率的值;当不满足上述条件时,将变异概率变为初始值。
二、部分源代码
%% 清空环境
clc
clear
tic;
close all
global Load Load2 pv wt
%% 24小时负荷,光伏与风力
Load=[101.049,79.991,41.862,101.312,67.139,82,85.085,110.875,115.249,120.687,98.786,103.944,121.629,136.151,137.752,118.824,139.221,157.158,101.689,127.4,135.312,96.692,90.243,109.587];%负荷.
pv=[0,0,0,0,0,0.6,2.4,10.5,30,69,69.9,95.4,129.9,111,120.9,99,71.4,39.9,12.9,0.9,0,0,0,0];%光伏发电
wt=10*[2.67,2.67,2.34,3.12,3.29,4.76,4.77,4.24,3.81,4.59,3.9,4.94,3.55,4.33,3.21,3.29,3.03,3.64,3.73,2.6,3.38,3.12,3.46,3.64];%风力发电
%% 遗传算法参数
MAXGEN=200; %进化代数
sizepop=40; %种群规模
pcross=0.6; %交叉概率
pmutation=0.01; %变异概率
lenchrom=ones(1,48); %变量字串长度,48个变量
bound=[-20 20
-20 20
-20 20
-20 20
-20 20
-20 20
-20 20
-20 20
-20 20
-20 20
-20 20
-20 20
-20 20
-20 20
-20 20
-20 20
-20 20
-20 20
-20 20
-20 20
-20 20
-20 20
-20 20
-20 20
30 120
30 120
30 120
30 120
30 120
30 120
30 120
30 120
30 120
30 120
30 120
30 120
30 120
30 120
30 120
30 120
30 120
30 120
30 120
30 120
30 120
30 120
30 120
30 120]; %BS、DE变量范围
trace=zeros(1,MAXGEN);
%% 个体初始化
gen=1;
fprintf(’%d\\n’,gen);
individuals=struct(‘fitness’,zeros(1,sizepop), ‘chrom’,[],‘pgrid’,[],‘Ebat’,[]); %种群结构体
bestfitness=[]; %种群最佳适应度
bestchrom=[]; %适应度最好染色体
% 初始化种群
for i=1:sizepop
individuals.chrom(i,:)=Code(lenchrom,bound); %随机产生个体
X=individuals.chrom(i,:);
[money pgrid Ebat]=fun(X);
individuals.fitness(i)=money; %个体适应度
individuals.pgrid(i,:)=pgrid;
individuals.Ebat(i,:)=Ebat;
end
三、运行结果
四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 张永乐.用于微电网经济调度的改进遗传算法[J].光源与照明. 2022,(05)
3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除
以上是关于微电网优化基于matlab遗传算法求解微电网经济优化问题含Matlab源码 2062期的主要内容,如果未能解决你的问题,请参考以下文章
微电网优化基于matlab粒子群算法求解热电联供型微电网经济运行优化问题含Matlab源码 1696期
微电网优化基于matlab萤火虫算法求解微电网优化问题含Matlab源码 2146期
优化调度基于matlab遗传算法求解孤岛型微电网(成本最低) 调度优化问题含Matlab源码 1163期
微电网优化基于matlab粒子群算法求解微网经济调度和环境友好调度优化问题含Matlab源码 2283期