• 大小: 0M
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-16
  • 语言: 其他
  • 标签: 其他  

资源简介

singleObject.zip

资源截图

代码片段和文件信息

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(124);
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(m24);%蓄电池出力
v=zeros(md);%初始化速度
SOC=rand(md);%蓄电池的SOC
grid=zeros(m24);%微网
GRID=zeros(124);
fx=zeros(1m);

%%初始化粒子更新
for n=1:m; %每一次更新粒子群(100个粒子)都有判断是否满足条件
for i=2:d  %保证蓄电池的SOC大于0.3小于0.95    
    if SOC(ni)<0.3
        SOC(ni)=0.3;
    end
    if SOC(ni)>0.95
        SOC(ni)=0.95;
    end
    SOC(n1)=0.4;%蓄电池的SOC不变,都为0.4
    SOC(n25)=0.4;%蓄电池的SOC不变,都为0.4
end
 %储能系统的功率约束
for i=1:24 
    %蓄电池
    j =SOC(ni)-SOC(ni+1);
    if j > 0.3
        j = 0.3;%放电
        SOC(ni+1)= SOC(ni) - j;
    elseif j <= -0.3;
        j = -0.3;%充电
         SOC(ni+1)= SOC(ni) - j;
    end
    xdccl(ni) =j*XDCRL;%蓄电池出力 
  
end   
%确定大电网出力
  for i = 1:24
   
   grid(ni)=LOAD(i)+Pev(i) - PV(i)- xdccl(ni); 
   if grid(ni)>pgridmax  %买电
       grid(ni)=pgridmax;
          
   end
   if grid(ni)<-pgridmax  %卖电
       grid(ni)=-pgridmax;
%          grid(ni)=LOAD(i)+Pev(i) - PV(i)- xdccl(ni);
   end
  
  end
cfx = (SOC(n1)-SOC(n25))*1000000;
CFX=[CFX;cfx];
end %初始粒子群的更新结束

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


for t=1:dd
    
  for f=1:m  %m=100
    %量子粒子更新
    alpha=(-0.8*(t-1))/(dd-1)+1.2;
    mbest=sum(pbest)/m;     
    fi1=rand(1d);
    fi2=rand(1d);
    p=(2*fi2.*pbest(f:)+2.1*fi1.*gbest)./(2*fi2+2.1*fi1);
    u=rand(1d);
    b=alpha*abs(mbest-SOC(f:));
    v=-log(u);
    SOC(f:)=p+((-1).^ceil(0.5+rand(1d))).*b.*v;  
%     %普通粒子更新
%     v(f:) =v(f:)+c1*rand*(pbest(f:)-SOC(f:))+c2*rand*(gbest-SOC(f:));%%SOC速度更新
%     SOC(f:)=SOC(f:)+v(f:);%%SOC位置更新
%     if(v(f:)>vmax)
%              v(f:)=vmax;
%     elseif(v(f:)%              v(f:)=vmin; 
%     end
    for h=2:d
       if SOC(fh)<0.3
        SOC(fh)=0.3;
       end
       if SOC(fh)>0.95
        SOC(fh)=0.95;
       end
        SOC(f1)=0.4;
    end
    for i=1:24
            j =SOC(fi)-SOC(fi+1);
            if j > 0.3
                j = 0.3;
                SOC(fi+1)= SOC(fi) - j;
            elseif j<-0.3
                j=-0.3;
                SOC(fi+1)= SOC(fi) - j;
            end
            xdccl(fi) =j*XDCRL;  %蓄电池出力
    end
    for i=1:24
    
         grid(fi)=LOAD(i)+Pev(i) - PV(i)- xdccl(fi);  
      if grid(f:)>pgridmax  %买电
         grid(f:)=pgridmax;
          
      elseif grid(f:)<-pgridmax  %卖电
         grid(f:)=-pgri

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        4629  2019-04-02 17:30  singleobject.m

评论

共有 条评论