威♥关注“电击小子程高兴的MATLAB小屋”获取更多资料
1主要内容
本程序主要建立电动汽车充放电V2G模型,采用粒子群算法,在保证电动汽车用户出行需求的前提下,为了使工作区域电动汽车尽可能多的消纳供给商场基础负荷剩余的光伏电量,根据光伏出力与工作区负荷的偏差制定动态分时电价模型,从而减少峰谷差,保障电网稳定性,同时能够提高电动汽车用户的充放电满意度,实现双赢。配电网负荷方差最小目标函数包含了工作区常规负荷、光伏出力及电动汽车的充放电电量,应用了电动汽车源-荷二重性。
1.1 模型背景
在保证电动汽车用户出行需求的前提下,为了使工作区域电动汽车尽可能多的消纳供给商场基础负荷剩余的光伏电量,根据光伏出力与工作区负荷的偏差制定动态分时电价模型,从而减少峰谷差,保障电网稳定性,同时能够提高电动汽车用户的充放电满意度,实现双赢,模型如下。
式中,Pori,t为 t 时刻工作区负荷与光伏出力的差值,Pdt 为该 t 时刻工作区的基础负荷, Ppv为该 t 时刻的光伏发电量, Pave为偏差 Pori总量的算术平均数。
假设车主当日离开居住地到达工作区的时刻即车辆接受调度的开始时刻,下午下班离开工作区前往居住地的时刻为调度结束时刻,则单个电动汽车满足调度的起止时刻概率密度分别满足如下正态分布函数:
-
离开园区时间如下:
-
到达园区时间如下:
-
私家车的日行驶里程基本符合如下所示的正态分布函数:
1.2 目标函数
配电网负荷方差最小目标函数包含了工作区常规负荷、光伏出力及电动汽车的充放电电量,应用了电动汽车源-荷二重性。
1.3 约束条件
充电电量约束
负荷约束
可调度负荷约束
动力电池 SOC 约束
可调度时间约束
2部分代码
%% 算法参数 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; %% 确定变量 for i=1:car_number car_in(i)=fix(car_start(i)/30); car_off(i)=fix(car_leave(i)/30); end diaodu_carin=[];%可调度 diaodu_caroff=[];%可调度 diaodu_soc=[];%可调度 diaodu_socend=[]; jishu=0;%可调度 diaodu_carin_=[];%bu可调度 diaodu_caroff_=[];%bu可调度 diaodu_soc_=[];%bu可调度 diaodu_socend_=[]; jishu_=0;%bu可调度
3效果图
结论:光伏发电在中午的时候达到顶峰,但是工作区的用电高峰在早上和下午,无序模式下电动汽车进入工作区后基本都集中在早上充电,所以对电网的冲击较大,影响电网的稳定性;有序模式下电动汽车中午充电量较无序要多,且电动在上午和下午负荷高峰时刻进行放电,缓解电网负荷陡增的压力。