一区直接冲!基于MOPGA-NSGA-II 的电动车多目标路径优化研究(考虑路况天气与充电约束)(MATLAB 实现)

张开发
2026/4/10 12:15:38 15 分钟阅读

分享文章

一区直接冲!基于MOPGA-NSGA-II 的电动车多目标路径优化研究(考虑路况天气与充电约束)(MATLAB 实现)
本期代码由公众号《淘个代码》独创原创不易禁止倒卖违者必究前言电动车路径规划和传统车辆不一样——不仅要考虑距离还要考虑电量够不够、中途在哪充电、充电排多久的队。更关键的是最短的路不一定最省电最省电的路可能最费时间三个目标之间存在天然的矛盾。目前关于电动车充电的路径规划相关研究并没有烂大街选择这个研究方向或许是个不错的选择投稿也相对容易一些。今天分享一个完整的 MATLAB 项目用MOPGA 多目标向光生长算法来求解这个问题找出一组 Pareto 最优路径供决策者根据实际需求选择。问题是什么一辆电动车要在31 个节点组成的物流网络中跑一圈每个节点恰好访问一次最后回到出发点。这就是经典的旅行商问题TSP但加了电动车的约束电池容量有限60 kWh跑着跑着会没电只有部分节点有充电站31 个节点中 17 个可充电电量低于 10% 时必须找地方充电充电要排队、要花时间三个优化目标目标含义最小化总距离路径越短越好最小化总能耗越省电越好最小化总耗时行驶时间 充电时间 排队时间越快越好这三个目标互相矛盾抄近路可能经过高能耗路段绕远路省电但费时间。不存在一个全局最优只能找一组权衡解Pareto 最优解集让决策者自己挑。数据从哪来数据来自于Kaggle公开数据集https://www.kaggle.com/datasets/datasetengineer/ev-charging-load-dataset-and-optimal-routing/data1. 节点数据集location_dataset.csv31 个地理节点分布在约 95x95 km 的区域6 种类型城市、港口、仓库、发电厂、工业区、矿区其中城市和港口设有充电站2. EV 充电数据集ev_charging_dataset.csv64,945 条电动车充电记录包含路况Good / Average / Poor、天气Clear / Cloudy / Rain / Storm等环境信息从中提取关键参数基础能耗率0.18 kWh/km、平均充电功率50 kW、平均排队时间5 min路况、天气约束现实中同样一段路路况差或者遇到暴风雨能耗和速度会差很多。项目从 EV 数据集中提取了路况和天气对能耗与速度的影响构建了两张倍率表能耗倍率以基准 1.0 为参考晴天多云雨天暴风雨路况好1.001.051.151.30路况一般1.151.201.351.50路况差1.351.451.601.80可以看到路况差 暴风雨时能耗是正常情况的1.8 倍。速度倍率路况因子 x 天气因子路况好 100% → 一般 85% → 差 70%天气晴 100% → 多云 95% → 雨 80% → 暴风雨 60%路况差 暴风雨时速度只有正常的 **42%**0.70 x 0.60大幅增加行驶时间。成本矩阵怎么设计的为了让三个目标之间产生真正的冲突而不是距离短能耗低时间少的一边倒每条边的能耗和时间由三个成分叠加能耗 基础固定成本 地形梯度 距离相关 路面随机因素地形梯度北部地势高能耗更大模拟爬坡路面随机因素每条边有独立的随机能耗代表局部坡度、路面质量、逆风等不可预测因素时间 基础固定延迟 拥堵梯度 行驶时间 交通随机因素拥堵梯度东部靠近城区交通延迟更大交通随机因素代表局部限速、施工、红绿灯密度等这样设计的结果是能耗最优路径偏好南部地势低时间最优路径偏好西部拥堵少距离最优路径走自己的最短几何路线三个目标各自偏好不同区域不存在一条路能同时满足所有目标。用了什么算法算法一MOGWO多目标灰狼优化算法二MOPGA多目标向光生长算法环境选择机制NSGA-II两个算法都用了NSGA-II的环境选择非支配排序Pareto 最优解优先保留拥挤度距离同层解中越孤立的越优先保留防止解扎堆这个机制确保种群既收敛到好的前沿又保持多样性。跑出来效果怎么样两个算法都成功找到了100 个 Pareto 最优解形成一个三维的权衡曲面。从中选出 4 条代表性路径路径策略距离能耗耗时充电次数最短距离536 km268 kWh1720 min5最低能耗958 km214 kWh1616 min4最短时间792 km247 kWh1409 min5折中方案747 km226 kWh1482 min4可以看到最短距离的路径能耗反而最高经过了高能耗路段最低能耗的路径距离最长绕道选择低能耗路段最短时间是独立的第三种路径结构四条路径在地图上走向完全不同说明三个目标确实存在真实冲突MOGWO结果MOPGA结果两个算法的对比项目包含什么完整 MATLAB 代码开箱即用所有图表同时保存.png和.fig格式。而且也不用担心不会写原理我这里都已经为你写好了。代码获取https://mbd.pub/o/bread/YZWclptubA或者点击下方 阅读原文 获取代码。

更多文章