m基于遗传优化的不同等级电动汽车充电站的选址方案matlab仿真

news/2024/11/8 18:10:58/

目录

1.算法描述

2.仿真效果预览

3.MATLAB核心程序

4.完整MATLAB


1.算法描述

        作为电动汽车的普及与推广,必要的基础配套服务设施、充电站的建设位置和选址规划对整体行业的发展起着重要的意义,本文中提出了一个不同等级电动汽车充电站的选址与求解算法,考虑到了备选地址的分布情况,基于目标规划的整体思路,建立了一个使得电站建设初始成本,以及用户充电总成本最小化的不同等级充电站的选址解决模型,为了求解,运用了遗传搜索算法,针对其中表示电站址等级和用户分配的两个决策变量,设计了遗传编码和初始解构建相结合的新颖方案,并采用了遗传变异策略,可同时确定出充电站的建址位置、建设等级以及各个需求点的分配,该算法有很好的电站寻址能力,通过模型求得的解能很好的解答该题。

       从定量建模的角度出发,建立一个考虑多种等级的充电站选址模型,希望可以同时决策充电站的建址位置、建设等级以及各个需求点分配给哪个充电站进行服务等问题,同时结合考虑建站成本最小以及用户出行成本最小的问题,针对建立的模型,设计了一个遗传收搜算法来进行求解。

       根据已给数据,充电站的建设分为4个等级,各等级充电站的动力蓄电池存储能力、日服务能力等各不相同,具体如表1所示:

       首先我们要做的就是通过演算来决定怎样选择Station地点才能使各个方面的成本最小化。结合给定的条件,可以想到是,将每种可能性尝试一遍,计算出成本,并且记录已知最小值与此时的Station信息。那么我们可以算出,但用这种方法,我们需要循环测试5的十次方种可能性,然而这种方法的时间复杂度为 。随着充电站数量的增多或者在模型中需要加入其他考虑因素的话,枚举算法在运算时间上就难以接受。因此在这里我们需要考虑更加合适的启发式算法---遗传算法。

       电动汽车充电站的运营成本主要是按购电电价(分时电价)向电网公司支付电费,它的主要收入来源于按照制定给用户的充电电价收取的充电费用。充电站通过两者的差价来实现盈利。因此我们研究充电站分时充电电价时段的制定,希望通过用户的自主响应,以达到有序充电的目的,实现充电站的最大盈利。

第一步:获取用户的充电需求

       当用户驶入电站,根据用户自身条件选择(1)即充(不等待,即刻充电)(2)可以最大等待时间区间(即用户在附近上班、公务或其他事宜,可延迟充电最大时间)(3)无充电时间,更换电池板。充电站则根据充电站通过电动汽车上的电池管理系统获取电动汽车电池容量Bi,以及电池当前荷电状态(state of charge,SOC) As(即电动汽车当前电池电量与其电池总容量的比例)。合理制定用户的充电分时电价时段。

第二步:会根据用户选择以及充电站内系统运行状态给予用户一个实时分时电价

        电动汽车充电站以实现削峰填谷为目标,并以满足客户充电需求以及充电站变压器不过载为约束,动态制定面向该用户的分时电价。

第三步:用户自主响应分时电价,确定充电计划。

       充电站在制定的分时电价后,用户自主响应选择充电模式,可选择延迟电动汽车充电开始时间至低电价时段或立即开始充电,或重新调整以上三个不同的充电模式,直至与充电站内的电荷状态及盈利模式相符。充电站最后根据用户选择确定电动汽车充电计划,实现站内接入电动汽车的有序充电控制。否则,即视为充电需求不满足,用户离开。

      综上所述 ,系统的优化目标函数为:

 一项是充电站建站成本,一项是电动车在充电过程中消耗的成本(包括路程上的消耗及占用用户的时间成本)

2.仿真效果预览

matlab2022a仿真如下:

3.MATLAB核心程序

% 充电站级别     服务量 EV数量/天     建站成本 RMB/万 
% 1              350                  650
% 2              250                  530
% 3              110                  400
% 4              70                   350
global CDZ_lvl;
global CDZ_Ev;
global CDZ_my;
global CDZ_my2;global Icar;
global Xcar;
global Ycar;
global EVcar;global ICDZ;
global XCDZ;
global YCDZ;
global Myrod;
global CDZage;global Car1;
global Car2;
global Car3;
global TYPE;CDZ_lvl = [1,2,3,4];
CDZ_Ev  = [350,250,110,70];
CDZ_my  = 1e4*[650,530,400,350];
CDZ_my2 = 1e4*[650,530,400,350]*0.08;%充电的电动车分布及数量
Icar    = [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];
Xcar    = 9.6/700*[1268.49126300000;1222.61962400000;1345.25604800000;1151.47177400000;1265.68279600000;1207.64112900000;1167.38642500000;1166.45026900000;1142.11021500000;1045.68615600000;1087.81317200000;948.325941000000;831.306452000000;816.327957000000;927.730511000000;823.817204000000;816.327957000000;689.946909000000;760.158602000000;678.713038000000;567.310484000000;568.246640000000;529.864247000000;420.334005000000;191.911962000000;240.592070000000;400.674731000000;541.098118000000;596.331317000000;695.563844000000];
Ycar    = 9.6/700*[453.572581000000;427.360215000000;492.891129000000;429.232527000000;527.528898000000;589.315188000000;630.506048000000;582.762097000000;528.465054000000;503.188844000000;597.740591000000;605.229839000000;426.424059000000;350.595430000000;382.424731000000;493.827285000000;584.634409000000;444.211022000000;241.065188000000;271.958333000000;409.573253000000;333.744624000000;461.997984000000;459.189516000000;335.616935000000;211.108199000000;204.555108000000;235.448253000000;482.593414000000;501.316532000000];
EVcar   = [33;35;22;29;28;34;37;45;37;45;50;33;29;35;43;42;23;34;31;37;41;24;29;32;32;22;24;26;33;31];%汽车类型随机划分
II      = randperm(length(Icar));
Car1    = II(1:12);
Car2    = II(13:21);
Car3    = II(22:30);
TYPE    = ones(1,length(Icar));
TYPE(Car1)=1;
TYPE(Car2)=2;
TYPE(Car3)=3;ICDZ    = [1;2;3;4;5;6;7;8;9;10];
XCDZ    = 9.6/700*[1284.40591400000;1162.70564500000;1158.02486600000;857.518817000000;772.328629000000;725.520833000000;574.799731000000;464.333333000000;205.954301000000;920.241263000000];
YCDZ    = 9.6/700*[463.870296000000;593.059812000000;418.934812000000;562.166667000000;343.106183000000;302.851478000000;448.891801000000;377.743952000000;315.021505000000;427.360215000000];%用户路程成本
Myrod   = 1;
%充电站建设使用周期为10年
CDZage  = 10;MAXGEN = 200;
NIND   = 500;
Nums   = 10; 
Chrom  = crtbp(NIND,Nums*10);%sh
Areas = [];
for i = 1:NumsAreas = [Areas,[0;4]];% 目标范围0到4,如果是0,则表明该位置不安装充电桩
endFieldD = [rep([10],[1,Nums]);Areas;rep([0;0;0;0],[1,Nums])];gen   = 0;
for a=1:1:NIND %计算对应的目标值X            = round(4*rand(1,Nums));%初始值[epls,f1,f2,Aim] = func_obj(X);E            = epls;Js(a,1)      = E;
endObjv  = (Js+eps);
gen   = 0; %%
while gen < MAXGEN;   genPe0 = 0.995;pe1 = 0.005; FitnV=ranking(Objv);    %编码Selch=select('sus',Chrom,FitnV);%选择    Selch=recombin('xovsp', Selch,Pe0);  %交叉 Selch=mut( Selch,pe1);   %变异phen1=bs2rv(Selch,FieldD);   for a=1:1:NIND  X           = round(phen1(a,:));%计算对应的目标值[epls,f1,f2,Aim]= func_obj(X);E           = epls;JJ(a,1)     = E;end Objvsel=(JJ);    [Chrom,Objv]=reins(Chrom,Selch,1,1,Objv,Objvsel);   gen=gen+1; %保存参数收敛过程和误差收敛过程以及函数值拟合结论index1     = isnan(JJ);index2     = find(index1 == 1);JJ(index2) = [];index3     = find(JJ==10000000000000);JJ(index3) = [];Error(gen) = mean(JJ);[VV,II]=min(JJ);end figure;
plot(Error,'linewidth',2);
grid on
xlabel('迭代次数');
ylabel('遗传算法优化过程');
legend('Average fitness');[V,I] = min(JJ);
X     = round(phen1(I,:))[epls,f1,f2,Aim]= func_obj(X);%成本输出
epls
f1
f2%显示布局图
ii=find(X==0);
X(ii)=[];
XCDZ(ii)=[];
YCDZ(ii)=[];
figure;
for i = 1:length(X)if X(i)==1plot(XCDZ(i),YCDZ(i),'bo','LineWidth',2,...'MarkerEdgeColor','k',...'MarkerFaceColor','b',...'MarkerSize',10);hold ontext(XCDZ(i)+0.2,YCDZ(i)+0.2,num2str(X(i)));hold onendif X(i)==2plot(XCDZ(i),YCDZ(i),'rs','LineWidth',2,...'MarkerEdgeColor','k',...'MarkerFaceColor','r',...'MarkerSize',10);hold ontext(XCDZ(i)+0.2,YCDZ(i)+0.2,num2str(X(i))); hold onend    if X(i)==3plot(XCDZ(i),YCDZ(i),'k^','LineWidth',2,...'MarkerEdgeColor','k',...'MarkerFaceColor','c',...'MarkerSize',10);hold ontext(XCDZ(i)+0.2,YCDZ(i)+0.2,num2str(X(i)));hold onendif X(i)==4plot(XCDZ(i),YCDZ(i),'r>','LineWidth',2,...'MarkerEdgeColor','k',...'MarkerFaceColor','g',...'MarkerSize',10);hold ontext(XCDZ(i)+0.2,YCDZ(i)+0.2,num2str(X(i)));hold onend
end
hold on
plot(Xcar,Ycar,'gx');
for i = 1:length(Aim)plot([Xcar(i),XCDZ(Aim(i))],[Ycar(i),YCDZ(Aim(i))],'b-o','LineWidth',1,...'MarkerEdgeColor','k',...'MarkerFaceColor','y',...'MarkerSize',5);hold ontext(Xcar(i)+0.2,Ycar(i)+0.2,num2str(i));hold on
end
02_052m

4.完整MATLAB

V


http://www.ppmy.cn/news/2054.html

相关文章

博士论文答辩流程

2023年夏季毕业 &#xff08;一&#xff09;、总体时间安排 3月10日至3月20日&#xff1a;博士学位论文答辩资格预审 3月20日至3月25日&#xff1a;提交博士学位论文截止时间&#xff0c;评审时限为30天&#xff08;学院学籍的截止时间为3月20日&#xff09; 4月5日&#xf…

私人定制AI绘画——快速finetune stable diffusion教程

最近AI绘图非常火&#xff0c;只需要输入文本就能得到令人惊艳的图。 举个例子&#xff0c;输入 “very complex hyper-maximalist overdetailed cinematic tribal darkfantasy closeup portrait of a malignant beautiful young dragon queen goddess megan fox with long bl…

CSS盒子模型

网页布局过程&#xff1a; 1&#xff1a;准备好相关的网页元素&#xff0c;也就是大大小小的盒子2&#xff1a;利用CSS设置好盒子样式&#xff0c;将对不同的盒子摆放到对应的位置3&#xff1a;将内容填充到对应的盒子中盒子模型&#xff1a; 将html页面中的布局元素看作是一…

面向碳中和的公共建筑室内环境营造再认识

3月26日&#xff5c;清华大学建筑节能学术周——公共建筑节能—工程实践助力实现双碳目标 【3月26日公开论坛】公共建筑节能 – 工程实践助力实现双碳目标 面向碳中和的公共建筑室内环境营造再认识 对“舒适”、“健康”和室内环境营造手段的再认识 1.对“舒适”的再认识 P…

Linux——Xshell、Xftp实现Linux远程登录与应用

目录 一、远程登录 1.1 SSH登录方式 二、Xshell远程连接 2.1 远程连接 2.2 设置粘贴复制 三、Xftp远程连接 3.1 远程连接 3.2 解决乱码 3.3 传输文件 一、远程登录 通常在工作过程中&#xff0c;公司中使用的真实服务器或者是云服务器&#xff0c;都不允许除运维人员 之…

行情不好,要不考个研?

阅读本文大概需要 1.86 分钟。最近看到一个消息&#xff0c;说是 2023 年全国硕士研究生招生考试将于 本月 24 日至 26 日举行&#xff0c;多地也陆续公布 2023 年考研的报考人数。从公布的报名数据来看&#xff0c;考研热度仍然不减。比如陕西省 2023 年考研报名人数为 17 万 …

电子电气架构设计需要考虑哪些方面?

当前车辆日益复杂&#xff0c;车联网功能在各个细分领域都在不断增加&#xff0c;而更强大的智能功能也逐步增加。 所有这些高级功能都依赖于线束和控制器才能发挥作用。然而面对日益增加的车辆复杂性和产品开发周期缩短的压力&#xff0c;导致汽车制造商和系统集成商的成本和…

cassandra安装及配置

Cassandra介绍 Cassandra是一个开源的、分布式、无中心节点、弹性可扩展、高可用、容错、一致性协调、面向列的NoSQL数据库。 Cassandra的主要组成部分主要有: • 节点(Node):Cassandra节点是存储数据的地方。 • 数据中心(Data center):数据中心是相关节点的集合。 • 集群…