【优化求解】基于matlab遗传算法求解峰谷分时电价电动汽车充电负荷优化问题【含Matlab源码 210期】
一、电动汽车充电简介
近年来,在国内外石油资源紧缺,环境问题日益严重的情况下,电动汽车因具有显著的经济性与环境性,其发展迅速,在中国,至2030年,电动汽车数量将达到6000万辆。随着电动汽车数量的不断增加,由于其负荷在时间与空间上所具有的不确定性,使得当大规模电动汽车并网进行充电时会对电网造成负荷冲击。虽然会加剧负荷的波动性与随机性,但是若能够将电动汽车负荷好好利用作为可调度负荷资源,则能够抑制电网系统的峰谷差,为电网安全稳定运行提供更强有力的保障。因此,实现电动汽车充电负荷的合理控制,避免电动汽车在系统负荷高峰时大量充电造成尖峰,高效的抑制峰谷负荷差,是电网面临的重要挑战。目前,国内有很多学者参与了峰谷分时电价引导电动汽车用户参与有序充电的研究,根据电动汽车类型的不同采用相适应的充电负荷计算方法,对电动汽车充电负荷进行较为精准的预测;建立电动汽车负荷最优潮流模型,通过调配各机组出力以优化系统发电成本,在用户侧,将电池损耗和充电等待时间成本计入用户充电费用中,运用双层模型进行优化;从电动汽车充电运营商方面考虑,利用动态响应峰谷电价形成有序充电,但文章未能考虑负荷波动造成电网的不稳定,大量电动汽车在后半夜充电又造成另一个用电高峰;以电网峰谷差为目标函数,利用电网电价时段的划分来平抑区域配电网负荷的波动,使得电网安全稳定的运行。该文在以上研究的基础上,根据电动汽车负荷影响因素进行分析,利用蒙特卡洛方法模拟电动汽车无序充电和有序充电负荷曲线,设立不同的响应系数以研究用户参与有序充电时负荷曲线的特点。研究峰谷分时电价价格弹性与电动汽车负荷之间的关系,建立峰谷分时电价优化模型,利用多目标优化遗传算法对模型进行求解,分析峰谷电价对电网负荷以及用户的影响。
1 电动汽车充电负荷建模
 (1)电动汽车充电需求分析
 该文研究对象为纯电动私家车,电动汽车充电负荷的大小与行驶里程、返程时刻和电池特性等因素相关。由于电动汽车在停泊时才能进行充电,所以停泊时间的长短决定了充电时长,电动汽车充电方式均为慢充。目前电动汽车电池主要以锂电池为主,锂电池的充电过 程可近似认为是恒功率充电。假设电动汽车每天充电一次并且充电过程不被中断,也不考虑突发事件对充电过程影响。根据美国交通部门对传统燃油私家车进行调查所得到的统计数据,每日用户最后一次返程时刻t0可以用正态分布表示,概率密度函数为
 
 (2)电动汽车充电需求分析
 该文假设电动汽车数量为1000辆并进行充电行为仿真。无序充电时,电动汽车在最后一次返程
 后就开始以恒定功率充电,直 到 荷 电 状 态(stateofcharge,SOC)达到100%,期间不受电价激励影响。电动汽车 采 用 慢 充 充 电 方 式 Pc=3kW,ηc=
 0.9,每公里耗电量E 为0.5kW·h/km,由于个体相互独立,故采用蒙特卡洛方法模拟,如图1所示。由返程时刻以及充电时长而得到单辆电动汽车一天的入网负荷,再根据式(4)进行累加得到每个时间段的充电负荷,从而日负荷曲线:
 
 (3)电动汽车无序充电算法流程
 
 2 电动汽车有序充电价格响应建模
 (1)电动汽车充电负荷的价格响应分析
 专家学者对电价所具有的时空两重差异性进行了大量研究。由于电动汽车充电负荷具有时间与空间随机性,大规模高渗透率的电动汽车充电将对电网带来影响。合理的峰谷电价能够使电网调控电动汽车进行有序充电,即电网公司以及提供电能服务的供应商通过电价引导用户在负荷低谷时充电,调控电动汽车的充电起始时间,对电网负荷尖峰进行优化。
(2)电动汽车电价引导充电方式建模
 峰谷分时电价是实施管理用户侧需求的有效措施之一,电网运行商根据负荷曲线的高峰低谷来划分峰谷电价,峰谷时段电价的改变将直接影响充电负荷的变化。在经济学中,价格是影响消费者进行消费的重要因素,该文只考虑电价对电动汽车用户充电行为的影响,忽略其他因素,引入价格弹性来表示电价变化对负荷造成的变化。价格弹性为某一时刻电价的变化将影响所有时刻电量需求的变化,影响本身时刻的电量需求变化称为自价格弹性,系数通常为负,而影响其余时刻的电量需求变化则称为交叉价格弹性,系数通常为正。
二、部分源代码
clc 
clear all
close all
t=1:24;%时间轴
N=1000;%input('请输入电动公交车数量:');
length=exp(normrnd(3.2,0.88,[1 N]));%抽取路程
pcar=zeros(1,1440);%负荷储存
start=zeros(1,N);%开始充电时间储存
T=zeros(1,N);%充电时长储存
p1=0.9699;%normspec([336,1440],1056,204,'inside');
%p2=normspec([0,336],-384,204,'inside');
 %原电网24小时负荷
 p0=[  455.39
       405.948
       333.086
       275.836
       205.576
       145.725
       130.112
       130.112
       137.918
       150.929
       163.941
       182.156
       208.178
       195.167
       156.134
       150.929
       161.338
       169.145
       169.145
       176.952
       195.167
       210.781
       296.654
       497.026];
%价格弹性矩阵,初始电价1元
priceq=[-0.623   0.3241    0.2305;       %峰时弹性16-24
        0.3553   -0.6166   0.2216;      %平时弹性8-16
        0.3215   0.3038   -0.6065];     %谷时弹性0-8 
for j=1:fix(N*p1)
  for i=1:5000
    startt=normrnd(1056,204,[1 1]);%抽取充电初始时刻,上午五点三十六到晚上二十四点正态分布    
    if startt>336&&startt<=1440 
    start(j)=startt;
     break
    end
  end
end
for j=(fix(N*p1)+1):N
  for i=1:5000
    startt=normrnd(-384,204,[1 1]);%抽取充电初始时刻,0点到5.6点    
    if startt>=1&&startt<=336 
    start(j)=startt;
    break
    end
  end
end
for i=1:N    
T(i)=length(i)*30/2.7;%充电时间
     if T(i)>351
      T(i)=351;
     end
  if (start(i)+T(i))<=1440
      for m=fix(start(i)):fix(start(i)+T(i))
    pcar(m)=3+pcar(m);
      end
  elseif  (start(i)+T(i))>1440
    for n=fix(start(i)):1440
      pcar(n)=3+pcar(n); 
    end
     for j=1:fix((start(i)+T(i))-1440)
        pcar(j)=3+pcar(j);
     end
  end
end 
 for i=1:24
        pcarrand(i)=sum(pcar((60*(i-1)+1):60*i))*0.001;         
 end
pcar24=pcarrand;
pcars=pcarrand;
figure 
plot(t,pcars)
xlabel('时间/小时')
ylabel('充电负荷/MW')
 for i=1:24
        pcarrand(i)=pcarrand(i)+p0(i);
 end 
function pcar=caculateload(N)
t=1:1440;%时间轴
x=1:1000;
length=exp(normrnd(3.2,0.88,[1 N]));%抽取路程
pcar=zeros(1,1440);%负荷储存
start=zeros(1,N);%开始充电时间储存
T=zeros(1,N);%充电时长储存
p1=0.9699;
%p2=normspec([0,336],-384,204,'inside');
for j=1:fix(N*p1)
  for i=1:5000
    startt=normrnd(1056,204,[1 1]);%抽取充电初始时刻,上午五点三十六到晚上二十四点正态分布    
    if startt>336&&startt<=1440 
    start(j)=startt;
     break
    end
  end
end
for j=(fix(N*p1)+1):N
  for i=1:5000
    startt=normrnd(-384,204,[1 1]);%抽取充电初始时刻,0点到5.6点    
    if startt>=1&&startt<=336 
    start(j)=startt;
    break
    end
  end
end
for i=1:N    
T(i)=length(i)*30/2.7;%充电时间
     if T(i)>351
      T(i)=351;
     end
  if (start(i)+T(i))<=1440
      for m=fix(start(i)):fix(start(i)+T(i))
    pcar(m)=3+pcar(m);
      end
  elseif  (start(i)+T(i))>1440
    for n=fix(start(i)):1440
      pcar(n)=3+pcar(n); 
    end
     for j=1:fix((start(i)+T(i))-1440)
        pcar(j)=3+pcar(j);
     end
  end
end 
  
 - 1
 - 2
 - 3
 - 4
 - 5
 - 6
 - 7
 - 8
 - 9
 - 10
 - 11
 - 12
 - 13
 - 14
 - 15
 - 16
 - 17
 - 18
 - 19
 - 20
 - 21
 - 22
 - 23
 - 24
 - 25
 - 26
 - 27
 - 28
 - 29
 - 30
 - 31
 - 32
 - 33
 - 34
 - 35
 - 36
 - 37
 - 38
 - 39
 - 40
 - 41
 - 42
 - 43
 - 44
 - 45
 - 46
 - 47
 - 48
 - 49
 - 50
 - 51
 - 52
 - 53
 - 54
 - 55
 - 56
 - 57
 - 58
 - 59
 - 60
 - 61
 - 62
 - 63
 - 64
 - 65
 - 66
 - 67
 - 68
 - 69
 - 70
 - 71
 - 72
 - 73
 - 74
 - 75
 - 76
 - 77
 - 78
 - 79
 - 80
 - 81
 - 82
 - 83
 - 84
 - 85
 - 86
 - 87
 - 88
 - 89
 - 90
 - 91
 - 92
 - 93
 - 94
 - 95
 - 96
 - 97
 - 98
 - 99
 - 100
 - 101
 - 102
 - 103
 - 104
 - 105
 - 106
 - 107
 - 108
 - 109
 - 110
 - 111
 - 112
 - 113
 - 114
 - 115
 - 116
 - 117
 - 118
 - 119
 - 120
 - 121
 - 122
 - 123
 - 124
 - 125
 - 126
 - 127
 - 128
 - 129
 - 130
 - 131
 - 132
 - 133
 
三、运行结果

 
四、matlab版本及参考文献
1 matlab版本
 2014a
2 参考文献
 [1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
 [2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.
 [3]欧名勇,陈仲伟,谭玉东,文明,周志成.基于峰谷分时电价引导下的电动汽车充电负荷优化[J].电力科学与技术学报,2020年9月
文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。
原文链接:qq912100926.blog.csdn.net/article/details/122230086
- 点赞
 - 收藏
 - 关注作者
 
            
           
评论(0)