基于粒子群PSO算法的风光发电与电动汽车充放电协同优化调度matlab程序_电动汽车v2g

V2G模型
基于粒子群PSO算法的风光发电与电动汽车充放电协同优化调度matlab程序_电动汽车v2g

1.针对大规模电动汽车无序接入电网给电力系统带来的负荷压力问题,提出一种含不确定性电源的电动汽车有序充放电控制策略。首先,采用电动汽车与电网(V2G,Vehicle-to-grid)互动模式解决电网中光伏发电和风力发电的不稳定性与易波动性。V2G 描述的是电动汽车与电网的互动。当电动汽车需要充电时,通过风光发电机组给电网供电得到电能;当电动汽车闲置时,车载电池组的电流流向电网。 V2G 技术有利于平抑电网负荷波动以及减少电动汽车用户充电成本。其工作原理如图1所示。
在这里插入图片描述

2.电动汽车入网、离网时刻近似服从对数正态分布。对于出行时刻,服从正态分布,离开园区时间如下:

在这里插入图片描述

对于返程时刻,也服从正态分布,到达园区时间如下:
在这里插入图片描述

其中,x 为时间变量;期望值ue=16.47, us=8.43 ;标准差 σe=3.41, σs=2.55 。

3.电动汽车充电负荷行为不仅与电动汽车入网的数,还与日行驶距离有关。将美国交通局得到的传统汽车出行数据拟合(图 3),即可得出电动汽车日行驶里程规律,其服从近似正态分布,其概率密度函数为:
在这里插入图片描述

其中d 为行驶距离,um ,σm 分别取 13.7 和 3.9。

4.目标函数:
当处于电网负荷低谷期,可用于电动汽车充电;当处于负荷高峰期,可利用电动汽车车载电池放电。提出了风光发电及电动汽车优化调度模型,平抑效果可由日负荷均方差表示,日负荷均方差越小表示负荷波动越平稳,反之亦然。日负荷方差F为表示如下:
在这里插入图片描述

5.约束
(1)充放电时的功率约束:
在这里插入图片描述

(2)电池剩余电量的约束:
在这里插入图片描述

(4)动力电池 SOC 约束:
在这里插入图片描述
(5)可调度时间约束:
在这里插入图片描述

6.算例
(1)无序时园区的负荷曲线如下
在这里插入图片描述
(2)50辆电动汽车参数:
在这里插入图片描述
程序如下:

 %%
clc;
clear;
tic
%% 算法参数
parameter;
close all;
global PV_load Power_load number_ car_data soc_end  EV_load

MaxIt=300;      % Maximum Number of Iterations
nPop=250;        % Population Size (Swarm Size)
 [all_load]=xlsread('data','Sheet1','b2:d20');%负荷
 PV_load=all_load(:,1)*1;%光伏负荷
 Power_load=all_load(:,2)*1;%用电负荷
  [car_data]=xlsread('data','Sheet1','e2:h51');%无序负荷
%  [load_car,car_start,car_leave,car_soc ]= c_car_load(car_number);%电动汽车无序负荷
load_car=car_data(1:48,4);
 EV_load=load_car(14:32);%电动汽车无序负荷
 car_start =car_data(:,1);
 car_leave=car_data(:,2);
 car_soc=car_data(:,3)-0.1;
 soc_end=soc_endzi();
car_in=car_start;
  car_off=car_leave;
  %% 确定变量
 
  diaodu_carin=[];%可调度
  diaodu_caroff=[];%可调度
  diaodu_soc=[];%可调度
  diaodu_socend=[];
  jishu=0;%可调度
  diaodu_carin_=[];%bu可调度
  diaodu_caroff_=[];%bu可调度
  diaodu_soc_=[];%bu可调度
  diaodu_socend_=[];
   jishu_=0;%bu可调度
  for i=1:car_number
      if car_in(i)>=14&&car_off(i)<=32
          jishu=jishu+1;
          diaodu_carin(jishu)=car_in(i);
          diaodu_caroff(jishu)=car_off(i);
          diaodu_soc(jishu)=car_soc(i);
          diaodu_socend(jishu)=soc_end(i);
      else
          jishu_=jishu_+1;
          diaodu_carin_(jishu_)=car_in(i);
          diaodu_caroff_(jishu_)=car_off(i);
          diaodu_soc_(jishu_)=car_soc(i);
          diaodu_socend_(jishu_)=soc_end(i);
      end
  end
[m ,n]=size(diaodu_carin);%n可调度
number_=zeros(n,1);
for i=1:n
    number_(i)=diaodu_caroff(i)-diaodu_carin(i)+1;
end
number_;
sum(number_);

%变量个数最终确定
  nVar=sum(number_);              % Number of Decision Variables
  VarMin=P_discar*30;
  VarMax=P_chscar*30;
  
%% 计算

[ bestPosition, fitValue ] = PSOFUN(@objective,nVar,VarMin,VarMax,MaxIt,nPop)

%变量还原
 x=bestPosition;
 。。。。。。。略

程序运行计算结果:
在这里插入图片描述

  • 2
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电磁MATLAB

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值