微❤关注“电气仔推送”获得模型
参考文献:
基于改进粒子群算法的微电网多目标优化调度——李兴莘
摘要:
微电网优化调度作为智能电网优化的重要组成部分,对降低能耗、环境污染具有重要意义。微电网的发展目标既要满足电力供应的基本需求,又要提高经济效益和环境保护。对此,提出了一种综合考虑微电网系统运行成本和环境保护成本的并网模式下微电网多目标优化调度模型。同时采用改进的粒子群算法对优化模型进行求解。仿真结果表明,该模型可以有效降低用户的用电成本和环境污染,促进微电网的优化运行,并验证了改进的粒子群算法的优越性能。
主程序:
%程序初始化
clear;
clc;
close all;
%定义全局变量
global P_load; %电负荷
global WT;%风电
global PV;%光伏
global buy_price;
global sell_price;
%获取数据
data=xlsread('mopso_data');
P_load=data(:,1);
PV=data(:,2);
WT=data(:,3);
buy_price=data(:,4);
sell_price=data(:,5);
%蓄电池最大放电功率(正表示为电负荷供电,即放电)
BESSMax_dischar=30;
%蓄电池最大充电功率
BESSMax_char=-30;
%柴油机最大发电功率
DEMax=30;
%柴油机最小发电功率
DEMin=6;
%燃气轮机最大发电功率
MTMax=30;
%燃气轮机最小发电功率
MTMin=3;
%主网交互最大功率(正表示为电负荷供电)
GridMax=30;
%主网交互最小功率
GridMin=-30;
%% 调用mopso函数
mm=mopso; %调用mopso函数
nn=length(mm.swarm); %非支配解数目
%% 比较不同目标函数寻优对调度结果的影响
%% 第1种.将两个目标函数值归一化相加,取相加后最小的目标值的粒子,即寻找折衷解并画图
%将非支配解中的运行成本和环境保护成本分别赋值给yyy,xxx
% for i=1:nn
% yyy(i)= mm.swarm(1,i).cost(1);
% xxx(i)= mm.swarm(1,i).cost(2);
% end
% m1=max(yyy);
% m2=max(xxx);
%
% for i=1:nn
% object(i)= mm.swarm(1,i).cost(1)./m1+ mm.swarm(1,i).cost(2)./m2;
% f1(i)=mm.swarm(1,i).cost(1)./m1;
% f2(i)=mm.swarm(1,i).cost(2)./m2;
% end
% [m,p]=min(object); %得到有着最小目标值的微粒所在的行数P
% pg=mm.swarm(1,p).x; %pg为折衷解
% Title = sprintf('折衷解情况下');
%% 第2种寻找总成本最低时的解并画图
for i=1:nn
object(i)= mm.swarm(1,i).cost(1)+ mm.swarm(1,i).cost(2);
end
[m,p]=min(object); %得到有着最小目标值的微粒所在的行数P
pg=mm.swarm(1,p).x; %pg为总成本最低时的解
Title = sprintf('总成本最低情况下');
%% 第3种寻找运行成本最低时的解并画图
% for i=1:nn
% object(i)= mm.swarm(1,i).cost(1);
% end
% [m,p]=min(object); %得到有着最小目标值的微粒所在的行数P
% pg=mm.swarm(1,p).x; %pg为运行成本最低时的解
% Title = sprintf('运行成本最低情况下');
%% 第4种寻找环境保护成本最低时的解并画图
% for i=1:nn
% object(i)= mm.swarm(1,i).cost(2);
% end
% [m,p]=min(object); %得到有着最小目标值的微粒所在的行数P
% pg=mm.swarm(1,p).x; %pg为环境保护成本最低时的解
% Title = sprintf('环境保护成本最低情况下');