基于改进粒子群算法的微电网多目标优化调度(Matlab代码实现)

 ‍个人主页:研学社的博客 

欢迎来到本博客❤️❤️

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

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

本文目录如下:

目录

1 概述

1.1 微网内分布式电源、储能发电特性

1.2 微电网多目标优化模型 

2 运行结果

3 Matlab代码实现

4 参考文献


1 概述

参考文献:

基于改进粒子群算法的微电网多目标优化调度(Matlab代码实现)_第1张图片

微电网优化调度作为智能电网优化的重要组成部分,对降低能耗、环境污染具有重要
意义。微电网的发展目标既要满足电力供应的基本需求,又要提高经济效益和环境保护。对此, 提出了一种综合考虑微电网系统运行成本和环境保护成本的并网模式下微电网多目标优化调 度模型。同时采用改进的粒子群算法对优化模型进行求解。仿真结果表明,该模型可以有效降低用户的用电成本和环境污染,促进微电网的优化运行,并验证了改进的粒子群算法的优越性能。
微电网优化调度是指在满足系统的各种约束条件下,合理安排不同的 DG 出力和微网与主网之
间的输电功率,从而达到低运行成本、低排放、高可靠性、高发电效率等不同目标。对于需求侧来说,微电网的优化调度可以有效降低用户的用电成本。对于供电侧来说,微电网优化调度可以提高
电网的稳定性,减少电力生产的能量损耗以及环境污染。因此,对微电网进行优化调度有重要的
现实意义。

1.1 微网内分布式电源、储能发电特性

基于改进粒子群算法的微电网多目标优化调度(Matlab代码实现)_第2张图片

基于改进粒子群算法的微电网多目标优化调度(Matlab代码实现)_第3张图片

基于改进粒子群算法的微电网多目标优化调度(Matlab代码实现)_第4张图片

1.2 微电网多目标优化模型 

基于改进粒子群算法的微电网多目标优化调度(Matlab代码实现)_第5张图片

基于改进粒子群算法的微电网多目标优化调度(Matlab代码实现)_第6张图片 基于改进粒子群算法的微电网多目标优化调度(Matlab代码实现)_第7张图片

本文考虑了惯性因子和粒子自适应变异的改进粒子群算法解决之

2 运行结果

基于改进粒子群算法的微电网多目标优化调度(Matlab代码实现)_第8张图片

基于改进粒子群算法的微电网多目标优化调度(Matlab代码实现)_第9张图片

基于改进粒子群算法的微电网多目标优化调度(Matlab代码实现)_第10张图片

 基于改进粒子群算法的微电网多目标优化调度(Matlab代码实现)_第11张图片

 基于改进粒子群算法的微电网多目标优化调度(Matlab代码实现)_第12张图片

 基于改进粒子群算法的微电网多目标优化调度(Matlab代码实现)_第13张图片

 基于改进粒子群算法的微电网多目标优化调度(Matlab代码实现)_第14张图片

 基于改进粒子群算法的微电网多目标优化调度(Matlab代码实现)_第15张图片

 基于改进粒子群算法的微电网多目标优化调度(Matlab代码实现)_第16张图片

3 Matlab代码实现

部分代码:

%% 初始化参数
global PV;
global WT;
%蓄电池最大放电功率(正表示为电负荷供电,即放电)
BESSMax_dischar=30;
%蓄电池最大充电功率
BESSMax_char=-30;
%柴油机最大发电功率
DEMax=30;
%柴油机最小发电功率
DEMin=6;
%燃气轮机最大发电功率
MTMax=30;
%燃气轮机最小发电功率
MTMin=3;
%主网交互最大功率(正表示为电负荷供电)
GridMax=30;
%主网交互最小功率
GridMin=-30;
%% 种群初始化
if nargin==0  %nargin是判断输入变量个数的函数
    c = [0.1,0.2]; % 加速因子
    iw = [0.5 0.001]; % 惯性因子
    max_iter =100; % 最大迭代次数
    %各设备出力约束
    for n=1:144 %粒子长度为144(光伏,风电,储能,柴油,燃气轮机,主网的6*24个小时出力)
         if n<25
            lower_bound(n)=0;
            upper_bound(n) =PV(n);
          end
         if n>24&&n<49
            lower_bound(n)=0;
            upper_bound(n) =WT(n-24);
         end
         if n>48&&n<73
         lower_bound(n)=BESSMax_char;
         upper_bound(n) =BESSMax_dischar;
         end
         if n>72&&n<97
         lower_bound(n)=DEMin;
         upper_bound(n) =DEMax;
         end
          if n>96&&n<121
         lower_bound(n)=MTMin;
         upper_bound(n) =MTMax;
          end
          if n>120
         lower_bound(n)=GridMin;
         upper_bound(n) =GridMax;
         end
    end
    swarm_size=100; % 种群个数
    rep_size=100; % 存档库大小
    grid_size=7; % 每个维度的网格数
    alpha=0.1; % 通货膨胀率
    beta=2; % 领导人选择压力
    gamma=2; % 删除选择压力
    mu=0.1; % 变异速率
    problem=@prob; % 创建函数句柄为problem,函数为pro,可以简单理解为调用
end
%% 初始化粒子
fprintf('初始化种群中\n')
w = @(it) ((max_iter - it) - (iw(1) - iw(2)))/max_iter + iw(2); %更新惯性因子--改进粒子群算法
pm = @(it) (1-(it-1)/(max_iter-1))^(1/mu); %类比遗传算法引入变异操作,更新变异速率,在particle函数的78-84行
swarm(1,swarm_size) = Particle(); %调用Particle函数,从obj中得到swarm_size
for i = 1:swarm_size
    swarm(i)=Particle(lower_bound,upper_bound,problem);%调用Particle函数
    retry = 0;
    while swarm(i).infeasablity > 0 && retry < 100 %循环条件为:无不可行解且次数低于100
        swarm(i)=Particle(lower_bound,upper_bound,problem);%调用Particle函数
        retry = retry + 1;
    end
end
REP = Repository(swarm,rep_size,grid_size,alpha,beta,gamma); %调用Repository函数
%% 算法循环
fprintf('优化算法开始循环中\n')
for it=1:max_iter
    leader = REP.SelectLeader(); %选择领导者
    wc = w(it); %目前的惯性因子
    pc=pm(it); %目前的变异因子
    for i =1:swarm_size %更新种群
        swarm(i)=swarm(i).update(wc,c,pc,leader,problem);
    end
    REP = REP.update(swarm);
    Title = sprintf('迭代第 %d 次 , 存档库内非支配解个数 = %d',it,length(REP.swarm));
    PlotCosts(swarm,REP.swarm,Title) %调用下面的PlotCosts函数
    disp(Title);
end
 

4 参考文献

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

[1]李兴莘,张靖,何宇,张英,刘影,晏开封.基于改进粒子群算法的微电网多目标优化调度[J].电力科学与工程,2021,37(03):1-7.

 [2]胡志强. 基于改进粒子群算法的微电网多目标优化调度研究[D].南昌大学,2020.DOI:10.27232/d.cnki.gnchu.2020.002673.

你可能感兴趣的:(#,电气代码精选,#,电力系统Matlab,matlab,开发语言,改进粒子群,微电网)