编程语言
首页 > 编程语言> > 【优化求解】基于粒子群实现微电网多目标优化matlab源码

【优化求解】基于粒子群实现微电网多目标优化matlab源码

作者:互联网

1 简介

微电网的优化运行能有效提高能源利用率,减少发电成本和污染物的排放,对微电网系统的经济、环保、可靠运行有重要的意义。传统的微电网优化运行研究多以发电成本最低或收益最大为目标的单目标优化,而微电网的优化运行是一个复杂的多目标,多约束,多变量的非线性优化问题,单目标优化并不能对微电网的运行优化做出全面的综合评价。此外求解多目标函数也存在局部最优、早熟等问题。为实现微电网的优化运行,需要建立合理的多优化目标,改进求解多目标的方法等。为此本文展开的研究内容如下:首先根据光伏、微型燃气轮机、风力发电机和燃料电池等微电源的工作原理和运行特性,建立了微网优化运行研究实用化的数学模型;其次选用了粒子群算法,并针对传统粒子群算法中遍历性不强,容易陷入早熟的缺陷等,通过引入变异因子进行了改进,解决了粒子群算法的不足;最后结合所建立微电网模型,考虑电压、功率等约束条件,建立以经济成本最低和环境污染最小为目标的多目标优化数学方程,采用理想点法将多目标转化为单目标问题,用改进粒子群法求解,实现微电网的优化运行。采用IEEE-30节点微电网系统作为研究对象,通过算例进行仿真分析。仿真结果表明,相比于单目标优化模型,采用多目标优化模型更符合实际的微网运行状态,能更好的体现微网在经济性和环保性两方面的综合效益。本文的研究成果对微电网的优化设计研究提供一定参考价值。

2 部分代码

clear all;
clc;
format short;     
tic

XDCRL=10;  %蓄电池容量
pgridmax=7;%交互功率
m=100;     %种群规模数
dd=500;    %迭代次数
c1=1;
c2=1;
vmax=1; 
vmin=-1;
wmax=0.9; 
wmin=0.4; 
d=25;%24时刻蓄电池SOC0
CFX =[];%惩罚项
cfx = 0;%惩罚项

PV=load('Ppv2.txt');%光伏发电量
% Pev=zeros(1,24);
Pev=load('PEV.txt');%电动汽车
LOAD= load('Load2.txt');%负荷
sub=load('C_sub2.txt');
buy=load('C_buy2.txt');
sell=load('C_sell2.txt');
xdccl=zeros(m,24);%蓄电池出力
v=zeros(m,d);%初始化速度
SOC=rand(m,d);%蓄电池的SOC
grid=zeros(m,24);%微网
GRID=zeros(1,24);
fx=zeros(1,m);

%
end   
%确定大电网出力
 for i = 1:24
  
  grid(n,i)=LOAD(i)+Pev(i) - PV(i)- xdccl(n,i); 
  if grid(n,i)>pgridmax  %买电
      grid(n,i)=pgridmax;
         
  end
  if grid(n,i)<-pgridmax  %卖电
      grid(n,i)=-pgridmax;
%         grid(n,i)=LOAD(i)+Pev(i) - PV(i)- xdccl(n,i);
  end
 
 end
cfx = (SOC(n,1)-SOC(n,25))*1000000;
CFX=[CFX;cfx];
end %初始粒子群的更新结束

%需要带入函数计算运行成本的单元:大电网出力,蓄电池出力
for i=1:m
 fx(i)=fitnessEcoVir(CFX(i,:),grid(i,:),xdccl(i,:),sub,PV,buy,sell);
end
[fgbest, best_x]=min(fx);%fitgbest全局最佳适应度值
gbest=SOC(best_x,:);%全局最优位置 
pbest=SOC;%个体最优位置的初始值,粒子的初始位置
fpbest=fx;%个体最佳适应度值 



   xdc(j)=(gbest(j)-gbest(j+1))*XDCRL;  
end
% for j=1:24
%     GRID(j)=LOAD(j)+Pev(i) - PV(j)- xdc(j);
% end

GRID  % 电网
xdc    %蓄电池
a=sum(xdc)
fitgbest=min(MINIMUM)
figure(1)
plot(MINIMUM)
xlabel('迭代次数')
ylabel('适应度值')
img =gcf;  %获取当前画图的句柄
print(img, '-dpng', '-r600', './img1.png')         %即可得到对应格式和期望dpi的图像
figure(2)
l=1:24;
plot(l,GRID,'o-',l,xdc,'*-',l,PV,'--')
legend('大电网出力','蓄电池出力','光伏出力')
xlabel('小时/h')
ylabel('功率/kW')

set(gca,'xtick',0:2:24) 
hold off
img =gcf;  %获取当前画图的句柄
print(img, '-dpng', '-r600', './img.png')         %即可得到对应格式和期望dpi的图像
SOC=db(1:25);
figure(3)
ll=0:24;

plot(ll,SOC,'o-')
xlabel('小时/h')
ylabel('SOC')
xlim([0 24])
title('蓄电池SOC')
set(gca,'xtick',0:2:24)
img =gcf;  %获取当前画图的句柄
print(img, '-dpng', '-r600', './img2.png')         %即可得到对应格式和期望dpi的图像
%将数据导入到excel表格中
% xlswrite('C:\Users\Administrator\Desktop\出力',GRID',1,'A1')
% xlswrite('C:\Users\Administrator\Desktop\出力',PV',1,'B1')
% xlswrite('C:\Users\Administrator\Desktop\出力',xdc',1,'C1')
% xlswrite('C:\Users\Administrator\Desktop\出力',LOAD',1,'D1')
% xlswrite('C:\Users\Administrator\Desktop\出力',Pev',1,'E1')
toc

3 仿真结果

4 参考文献

[1]杨宇昕. 基于粒子群算法微电网优化运行研究. Diss. 沈阳工程学院.

5 MATLAB代码与数据下载地址

见博客主页头条

标签:load,24,电网,目标,源码,matlab,txt,优化
来源: https://blog.csdn.net/qq_59747472/article/details/122276822