【优化选址】粒子群算法求解V图配电网电动汽车充电站选址优化问题【含Matlab源码 3319期】

✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

⛄一、粒子群算法求解V图配电网电动汽车充电站选址优化问题

近年来,我国电动汽车的保有量迅速攀升,截至2016 年底,我国电动汽车保有量已经接近100万辆,经测算,到 2020年全国电动汽车保有量将超过500万辆。电动汽车充电基础设施作为电动汽车发展的重要保障,其发展水平直接影响了电动汽车行业的发展速度和质量。目前,全国各地按照“桩站先行,适度超前”的原则,逐步推进充电基础设施的科学发展。根据需求预测结果,到 2020 年新增集中式电动汽车充换电站将超过1.2 万座。
电动汽车充电站的选址与定容问题是高维非线性数学问题,决策的优劣直接影响了其服务质量、效率、成本等。现有的国内外学者对城市电动汽车充电站的选址与定容问题研究仍处在起步阶段,没有形成系统完整的理论。以投运至目标年综合费用最小为规划目标,利用变权 Voronoi 图的方法划分充电站的服务范围,并采用混合粒子群优化( PSO) 算法求解,提高了算法迭代中后期的全局搜索能力。将量子理论与粒子群优化算法结合,增强了优化算法的种群多样性以及算法的全局搜索能力。结合了城市道路信息和电动汽车续驶里程,提出了电动汽车充电便捷系数,并利用Voronoi 图理论和排队论确定充电站的容量。

1 粒子群算法
粒子群算法是智能算法领域中除蚁群算法、鱼群算法又一个智能群体算法。

PSO算法首先在可行解空间中初始化一群粒子,每个粒子都代表极值优化问题的一个潜在最优解。粒子在解空间中运动,通过跟踪个体极值Pbest和群体极值Gbest更新个体位置。

粒子每更新一次位置,就计算一次适应度值,并且通过比较新粒子的适应度值和个体极值、群体极值的适应度值更新个体极值Pbest和群体极值Gbest位置。

在每一次迭代过程中,粒子通过个体极值和群体极值更新自身的速度和位置,每个粒子在D维空间的速度和位置状态可表示为
在这里插入图片描述

2 粒子群算法步骤
粒子群算法是一种基于群体智能的优化算法,其步骤如下:
(1)初始化粒子群:随机生成一定数量的粒子,并为每个粒子随机分配一个位置和速度。
(2)计算适应度函数:根据问题的具体情况,计算每个粒子的适应度函数值。
(3)更新粒子速度和位置:根据当前位置和速度,以及全局(4)最优位置和个体最优位置,更新每个粒子的速度和位置。
(5)更新全局最优位置和个体最优位置:根据当前适应度函数值,更新全局最优位置和个体最优位置。
(6)判断终止条件:如果满足终止条件,则输出最优解;否则返回第3步。

3 粒子群算法求解V图配电网电动汽车充电站选址优化问题
粒子群算法是一种基于群体智能的优化算法,它模拟了鸟群或鱼群等生物的群体行为,通过不断地迭代寻找最优解。在V图配电网电动汽车充电站选址优化问题中,粒子群算法可以用来求解充电站的选址和定容问题。具体来说,可以将充电站的选址和定容问题转化为一个多目标优化问题,然后利用粒子群算法进行求解。在算法的迭代过程中,每个粒子代表一个可能的解,通过不断地更新粒子的位置和速度,最终找到最优解。同时,为了保证算法的收敛性和全局搜索能力,可以采用混合粒子群优化算法或将量子理论与粒子群优化算法结合等方法。

⛄二、部分源代码

clear ;
clc;
close all
%% 基础数据
% 1 2 3 4 5
%b=[需求坐标,需求负荷,成本系数,区域]
%充电需求点坐标
b(:,1) =1.0e+003.([0.1092, 0.1197,0.2578,0.4259, 0.1257,0.2803,0.4439,0.5505,0.5610,0.5700,0.1332,0.3013,0.4559,0.5850,0.1452,0.3163,0.4739,0.5880,0.3193,0.4784,0.6015,0.6736,0.8657,1.0308,0.6781,0.8327,1.0188,0.6811,0.8192,1.0083,0.6691,0.6976,0.8191]');
b (:,2)=1.0e+003.
[0.1348;0.2399;0.1724;0.1739;0.3420;0.3375;0.3360;0.1108;0.2024;0.3075;0.4591;0.4455;0.4380;0.4260;0.6092;0.5341;0.5341;0.5341;0.6407;0.6452; 0.6467;0.1574 ;0.1649;0.1634;0.2924;0.2909;0.2939;0.4425; 0.4576;0.4546;0.5431;0.6392;0.6377];
%充电需求点常规电力负荷点负荷b(:,3)(kW)
b(:,3)=[0;0.217000000000000;0.0240000000000000;0.0760000000000000;0.942000000000000;0;0.228000000000000;0.300000000000000;0;0.0580000000000000;0;0.112000000000000;0;0.0620000000000000;0.0820000000000000;0.0350000000000000;0.0900000000000000;0.0320000000000000;0.0950000000000000;0.0220000000000000;0.175000000000000;0;0.0320000000000000;0.0870000000000000;0;0.0350000000000000;0;0;0.0240000000000000;0.106000000000000;0.0870000000000000;0;0.0350000000000000];

%集中充电站坐标,两个,各区域一个
bcs=[ 937.7296 379.5010;
310.3141 238.4076];
%选址数量
Tn=5;

%% 成本参数
na=4500;
alp=0.1;
b(:,4)=round(alp.b(:,3)./sum(b(:,3)).na);%成本系数
b(23,4)=37;
ns=4;
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)))));

%% 区域划分
Area1=1.0e+003 *[0.977 1.0860;
0.721 0.0088;
0.634 0.7412;
0.3103 1.1040;
0.6377 1.0860];
Area1=[Area1,1.*ones(size(Area1,1),1)];
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)];
%区域分界
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(x,y,xv,yv)%注意xv,yv构成了多边形边界。x,y对应的是单点坐标,判断是否在多边形内。
%返回结果为逻辑logical类型(不是数字类型哦),如果在对应的就返回1,否则为0。
in=inpolygon(b(:,1),b(:,2),xx(kk),yy(kk));
b(in,5)=1;
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

%% 粒子群算法参数

PopSize=10; %种群数量
MaxIter=350; %最大迭代次数
%学习因子
c1s=2.5; c2s=0.5;
c1e=0.5; c2e=2.5;
w_start=0.9;
w_end=0.4;
Iter=1;

%上下限约束
xmax=1022; xmin=18;
ymax=700; ymin=12;
x = xmin + (xmax-xmin).*rand(Tn,PopSize);
y = ymin + (ymax-ymin).*rand(Tn,PopSize);
%光伏选址
xvmax=33;xvmin=2;
xv=round(xvmin+(xvmax-xvmin).rand(2,PopSize));
%定容
ypmax=0.4;ypmin=0.1;
yp=ypmin+(ypmax-ypmin).rand(7,PopSize);
%% 初始化
X=[x;y;xv;yp];
V=rand(Tn
2+9,PopSize);
Vmax=0.1
max((xmax-xmin),(ymax-ymin));
inAr1=find(b(:,5)==1);
bb=[b(inAr1,1:2),b(inAr1,4)];
%初始寻优
for pk=1:1:PopSize
[FX(pk),,,,,,,,,~]=VorCostCDEV(X(1:Tn,pk),X(Tn+1:Tn+5,pk),bb,bcs(1,:),BL,X(:,pk));
end

%输出初始最优
PBest=X;
FPBest=FX;

[Fgbest,r]=min(FX);
Fm(Iter)=Fgbest;
CF=Fgbest;
Best=X(:,r);
FBest(Iter)=Fgbest;

FgNum=0;
%% 粒子群寻优
while (Iter<=MaxIter)
Iter=Iter+1;
w_now=((w_start-w_end)(MaxIter-Iter)/MaxIter)+w_end;
A=repmat(X(:,r),1,PopSize);
R1=rand(Tn
2+9,PopSize);
R2=rand(Tn2+9,PopSize);
c1=c1e+(c1s-c1e)
(1-acos(-2Iter/(MaxIter+1)+1)/pi);
c2=c2e+(c2s-c2e)
(1-acos(-2Iter/(MaxIter+1)+1)/pi);
V=w_now
V+c1R1.(PBest-X)+c2R2.(A-X);
changeRows=V>Vmax;
V(changeRows)=Vmax;
changeRows=V<-Vmax;
V(changeRows)=-Vmax;
X=X+1.0*V;
X(11:12,:)=round(X(11:12,:));
for ti=1:Tn
for ii=1:PopSize
if X(ti,ii)>xmax
X(ti,ii)=xmax;
elseif X(ti,ii)<xmin
X(ti,ii)=xmin;
end
end
end
for ti=Tn+1:Tn+5
for ii=1:PopSize
if X(ti,ii)>ymax
X(ti,ii)=ymax;
elseif X(ti,ii)<ymin
X(ti,ii)=ymin;
end
end
end
for ti=Tn+6:Tn+7
for ii=1:PopSize
if X(ti,ii)>xvmax
X(ti,ii)=xvmax;
elseif X(ti,ii)<xvmin
X(ti,ii)=xvmin;
end
end
end
for ti=Tn+8:Tn+14
for ii=1:PopSize
if X(ti,ii)>ypmax
X(ti,ii)=ypmax;
elseif X(ti,ii)<ypmin
X(ti,ii)=ypmin;
end
end
end
for pk=1:1:PopSize
[FX(pk),,,,,,,,,~]=VorCostCDEV(X(1:Tn,pk),X(Tn+1:Tn+5,pk),bb,bcs(1,:),BL,X(:,pk));
end
P=FX<FPBest;
FPBest§=FX§;
PBest(:,P)=X(:,P);
[Fgbest,r]=min(FPBest);
Fm(Iter)=Fgbest;

if Fgbest<CF 
    [FBest,gr]=min(FPBest);  
    Best=PBest(:,gr);    
    CF=Fgbest;  
    FgNum=0;
else
    FgNum=FgNum+1; 
end


if FgNum>10    
    SubX=r;
    while SubX==r || SubX==0
        SubX=round(rand*(PopSize));
    end
    r=SubX;
    FgNum=0;
end

end

⛄三、运行结果

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

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值