优化配置基于matlab遗传算法求解风电混合储能容量优化配置问题含Matlab源码 228期

Posted 紫极神光

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了优化配置基于matlab遗传算法求解风电混合储能容量优化配置问题含Matlab源码 228期相关的知识,希望对你有一定的参考价值。

一、简介

1 引言
风能是一种清洁能源,但由于自然条件的变化,风速和风向不断的、随机的变化,导致风力发电输出功率具有不稳定性和不可预测性,直接影响微电网的调度运行,而通过风力发电系统和储能设备的协调配合,可以提高风力发电技术的可调度性和可控性。
近年来,混合储能的容量配置及控制策略得到广泛的关注。混合储能将容量小、寿命长、功率比较高储能环节与容量比较大、循环次数受限、相对能量比高、功率比低的储能环节结合使用,如将超级电容器与蓄电池混合。但是对混合储能的研究仍然处于初级阶段,而且研究主要集中在控制策略上,对容量配置的研究较少。目前对容量配置的研究大多按照经验配置混合储能的容量,未用定量的分析。本文中风力发电系统的储能装置是蓄电池和超级电容器混合组成的,混合储能系统的容量配置是一个非线性规划问题,利用遗传算法进行求解,配置混合储能装置的全生命周期最小费用。

2 模型分析
基于蓄电池和超级电容器混合储能独立风力发电系统的结构如图 1 所示。当风速比较大时,储能装置处于充电状态,将电能存储起来;当风速比较弱或者峰值负荷时储能装置为负荷供电,以保证系统平稳连续的供电,提高供电可靠性。

3 其他见参考文献

二、部分源代码

clc;
clear;
close all
%% 基础参数
%风电出力
Pwind=[24.6,22.1,17.5,13.5,10.1,8.5,13.9,23.5,25.8,29.4,35.1,38.9,36.9,32.5,30.3,25,23.2,25.1,27.8,32.3,35.3,35.5,25,10.8,];
 %原电网24小时负荷
Pload=[55,50,53.1,49.4,54,49.4,45.6,34.8,30.1,25.2,21.8,10,10.9,11.2,6.3,5.9,5,5.6,18.6,35,36.2,37.1,40.2,25.3];
N = 100;  %种群内个体数目
N_chrom = 25; %染色体节点数,也就是每个个体有多少条染色体,其实说白了就是看适应函数里有几个自变量。
iter = 1000; %迭代次数,也就是一共有多少代
mut = 0.2;  %突变概率
acr = 0.2; %交叉概率
best = 1;
%每个节点的值的区间
for i=1:24
    chrom_range(1,(i+1)) = 0;
    chrom_range(2,(i+1)) = 0;
    if (Pload(i)-Pwind(i))>=0
        chrom_range(2,(i+1)) =(Pload(i)-Pwind(i));
    else
        chrom_range(1,(i+1)) = (Pload(i)-Pwind(i));
    end
end
chrom_range(1,1) = 100;
chrom_range(1,2:25) = -35;
chrom_range(2,1) = 80000;
chrom_range(2,2:25) = 50;
chrom = zeros(N, N_chrom);%存放染色体的矩阵
fitness = zeros(N, 1);%存放染色体的适应度
fitness_ave = zeros(1, iter);%存放每一代的平均适应度
fitness_best = zeros(1, iter);%存放每一代的最优适应度
chrom_best = zeros(1, N_chrom+1);%存放当前代的最优染色体与适应度
%% 初始化,这只是用于生成第一代个体,并计算其适应度函数
chrom = Initialize(N, N_chrom, chrom_range); %初始化染色体
fitness = CalFitness(chrom, N, N_chrom); %计算适应度
chrom_best = FindBest(chrom, fitness, N_chrom); %寻找最优染色体
fitness_best(1) = chrom_best(end); %将当前最优存入矩阵当中
fitness_ave(1) = CalAveFitness(fitness); %将当前平均适应度存入矩阵当中
%% 用于生成以下其余各代,一共迭代多少步就一共有多少代
for t = 2:iter
    chrom = MutChrom(chrom, mut, N, N_chrom, chrom_range, t, iter); %变异,这个进行基因突变处理的函数原理没有懂!!!
    chrom = AcrChrom(chrom, acr, N, N_chrom); %交叉
    fitness = CalFitness(chrom, N, N_chrom); %计算适应度
    chrom_best_temp = FindBest(chrom, fitness, N_chrom); %寻找最优染色体
    if chrom_best_temp(end)>chrom_best(end) %替换掉当前储存的最优
        chrom_best = chrom_best_temp;
    end
    %%替换掉最劣
    [chrom, fitness] = ReplaceWorse(chrom, chrom_best, fitness);
    fitness_best(t) = chrom_best(end); %将当前最优存入矩阵当中
    fitness_ave(t) = CalAveFitness(fitness); %将当前平均适应度存入矩阵当中
end
%% 作图
figure(1)
plot( 1:iter, fitness_best, 'b')
grid on
legend( '迭代优化结果')
%e=PlotModel(chrom_best);
figure(2)
t=1:24;
Pwind=[24.6,22.1,17.5,13.5,10.1,8.5,13.9,23.5,25.8,29.4,35.1,38.9,36.9,32.5,30.3,25,23.2,25.1,27.8,32.3,35.3,35.5,25,10.8,];
 %原电网24小时负荷
Pload=[55,50,53.1,49.4,54,49.4,45.6,34.8,30.1,25.2,21.8,10,10.9,11.2,6.3,5.9,5,5.6,18.6,35,36.2,37.1,40.2,25.3];
plot(t,Pwind,'-')
hold on
plot(t,Pload,'-o')
hold on
plot(t,chrom_best(2:25),'-.')
legend( '风电出力','电网负荷','蓄电池出力')
%% 输出结果
disp(['最优染色体为', num2str(chrom_best(1:end-1))])
disp(['最优适应度为', num2str(chrom_best(end))])

三、运行结果


四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.
[3]欧名勇,陈仲伟,谭玉东,文明,周志成.基于峰谷分时电价引导下的电动汽车充电负荷优化[J].电力科学与技术学报,2020年9月

以上是关于优化配置基于matlab遗传算法求解风电混合储能容量优化配置问题含Matlab源码 228期的主要内容,如果未能解决你的问题,请参考以下文章

优化调度基于matlab多目标粒子群算法求解风电光伏储能电网发电与需求响应调度优化问题含Matlab源码 239期

基于混合整数规划方法的微网电池储能容量优化配置

基于混合整数规划方法的微网电池储能容量优化配置

优化调度 基于matlab改进的遗传算法求解风电场优化调度问题含Matlab源码 1245期

优化调度基于matlab改进的遗传算法求解风电场优化调度问题含Matlab源码 1245期

优化运行基于matlab高比例风电电力系统储能运行及配置分析含Matlab源码 2273期