【优化布局】基于matlab粒子群算法优化充电站布局【含Matlab源码 012期】

·  阅读 297

一、简介

电动汽车未来大规模发展需要众多公共充电站服务,公共充电站应根据电动汽车分布进行合理布局。给出电动汽车分布的预测方法,采用基于排队论的充电机配置方法,提出公共充电站布 局最优规划的数学模型。采用与充电站布局有相似数学特点的 Voronoi图划分充电站服务区域,服务区内电动汽车考虑快充随机性,采用排队论 M/M/s模型,以电动汽车排队等候时间为标准确定充电站规模,建立公共充电站布局最优规划模型,​用粒子群算法求解。

二、源码

clear all; clc; close all
%% 基础数据
%充电需求点坐标
b =1.0e+003.*[0.1092    0.1348
    0.1197    0.2399
    0.2578    0.1724
    0.4259    0.1739
    0.1257    0.3420
    0.2803    0.3375
    0.4439    0.3360
    0.5505    0.1108
    0.5610    0.2024
    0.5700    0.3075
    0.1332    0.4591
    0.3013    0.4455
    0.4559    0.4380
    0.5850    0.4260
    0.1452    0.6092
    0.3163    0.5341
    0.4739    0.5341
    0.5880    0.5341
    0.3193    0.6407
    0.4784    0.6452
    0.6015    0.6467
    0.6736    0.1574
    0.8657    0.1649
    1.0308    0.1634
    0.6781    0.2924
    0.8327    0.2909
    1.0188    0.2939
    0.6811    0.4425
    0.8192    0.4576
    1.0083    0.4546
    0.6691    0.5431
    0.6976    0.6392
    0.8191    0.6377
    1.0098    0.6347];
%充电需求点常规电力负荷点负荷b(:,3)(kW)
b(:,3)=[2480;2480;8680;11400;890;2340;4160;560;1670;5010;2670;8280;7400;1430;7500;4840;3400;4290;3840;3680;2560;7000;14800;8960;3160;7000;5000;2280;10360;10000;760;6000;7040;5600];

%集中充电站坐标
bcs=[ 937.7296  379.5010
  310.3141  238.4076];
na=4500;
alp=0.1;   
b(:,4)=round(alp.*b(:,3)./sum(b(:,3)).*na);%%充电需求点常规电力负荷点负荷b(:,3)(kW)
b(23,4)=37;  
ns=3;
mui=0.6;  
Nchz=round(mui.*sum(b(:,4))./ns);
bm=1.0e+003*[0.0086,0.0088;1.1734,0.0088;1.1734,0.7412;0.0086,0.7412;0.0086,0.0088];
BL=sqrt(8.2*1.0e6./((max(bm(:,1))-min(bm(:,1)))*(max(bm(:,2))-min(bm(:,2)))));;%BL为图坐标与实际坐标的比例,为固定参数

%%划分成两个区域
Area2=1.0e+003 *[0.0086    0.0088
0.9377   -1.0860
0.3103    1.7040
0.0086    0.7412
0.0086    0.0088];
Area2=[Area2,2.*ones(size(Area2,1),1)];

Area1=1.0e+003 *[0.9377   -1.0860
1.1734    0.0088
1.1734    0.7412
0.3103    1.7040
0.9377   -1.0860];
Area1=[Area1,1.*ones(size(Area2,1),1)];

vv=[Area1;Area2];   
for k=1:size(bcs,1)
    Ai=find(vv(:,3)==k);
    xx=vv(Ai,1);
    yy=vv(Ai,2);
    kk=convhull(xx,yy); 
    in=inpolygon(b(:,1),b(:,2),xx(kk),yy(kk));
    b(in,5)=k;  
end
Ep=[];

for i=1:size(bcs,1)
    gb=b(b(:,5)==i,:); 
    Ep=[Ep;[sum(gb(:,4)),round(mui.*sum(gb(:,4))./ns),i]]; 
end
Tn=6;   %最优充电站数量
PopSize=100;%种群个数
MaxIter=300; %迭代次数
c1s=2.5; %个体学习速率最大值  
c2s=0.5; %社会学习速率最大值
c1e=0.5; %个体学习速率最小值
c2e=2.5;%社会学习速率最小值
w_start=0.9;   %权值最大值
w_end=0.4;    %权值最小值
Iter=1;    
%划定区域
xmax=max(Area2(:,1)); %区域2最大长
xmin=min(Area2(:,1));%区域2最小长
ymax=max(Area2(:,2)); %区域2最大宽
ymin=min(Area2(:,2));%区域2最小宽
x = xmin + (xmax-xmin).*rand(Tn,PopSize);%生成x方向的粒子
y = ymin + (ymax-ymin).*rand(Tn,PopSize);%生成y方向的粒子

X=[x;y];%合并xy粒子,形成一个完整个体
V=rand(Tn*2,PopSize);%随机生成粒子速度
Vmax=0.01*max((xmax-xmin),(ymax-ymin)); %最大粒子速度

inAr2=find(b(:,5)==2);
bb=[b(inAr2,1:2),b(inAr2,4)];
for pk=1:1:PopSize
    [FX(pk),~,~,~,~,~,~,~,~,~]=VorCostCDEV(X(1:Tn,pk),X(Tn+1:end,pk),bb,bcs(2,:),BL);%求适应度值
end
复制代码

三、运行结果

在这里插入图片描述
在这里插入图片描述

四、备注

版本:2014a

分类:
人工智能
标签:
分类:
人工智能
标签:
收藏成功!
已添加到「」, 点击更改