一种可实现避障的自导向电动物流车辆路径规划方法

本发明涉及了一种可实现避障的自导向电动物流车路径规划方法,融合两种算法从而优化路径规划模型。解决路径规划函数的算法是利用启发式信息的模拟进化算法,具有正反馈性和鲁棒性,实现避障的算法通过建造虚拟力场,在不与障碍物碰撞的前提下寻找一条从起始点到目标点的较优路径。两者结合所构建的基于总体成本最优的自导向电动物流车路径问题模型,能够综合考虑电池容量、货物装载量等约束条件,使规划结果满足快速、耗能少、准时的要求,在满足上述条件下,最终绘制的路线还能够避开环境中预设的障碍物。推广无人自导向电动物流车的应用不仅可以有效的缓解传统物流车对化石燃料等不可再生能源的依赖,还能减少人为决策带来的低效问题。

专利类型: 发明专利
申请(专利)号: CN202011257594.6
申请日期: 2020年11月12日
公开(公告)日: 2021年4月20日
公开(公告)号: CN112684790A
主分类号: G05D1/02,G,G05,G05D,G05D1
分类号: G05D1/02,G,G05,G05D,G05D1,G05D1/02
申请(专利权)人: 北京交通大学
发明(设计)人: 刁利军,范思源,苗春晖,梅伟耀,李伟杰,林文立,蔡道萌,陈浩,刁利坚
主申请人地址: 100044 北京市海淀区上园村3号
专利代理机构: 北京卫平智业专利代理事务所(普通合伙)
代理人: 张新利,谢建玲
国别省市代码: 北京;11
主权项: 1.一种可实现避障的自导向电动物流车辆路径规划方法,其特征在于,包括如下步骤: 步骤1:读取数据,所述数据包括:由配送中心、充电站、客户点形成的坐标矩阵;各客户点的需求量;各客户要求的时间窗上下限; 步骤2:计算距离矩阵:通过坐标矩阵计算所有配送中心、充电站和客户点之间的距离; 步骤3:使用贪心算法分配任务:比较客户点离配送中心的距离,从小到大排序,依序交叉放入1号车数组和2号车数组,由此建立两辆电动物流车的任务顺序列表; 步骤4:建立电动物流车路径计算函数,两辆车分别调用电动物流车路径计算函数,得到每辆电动物流车需要服务的客户点顺序; 步骤5:使用蚁群算法求解电动物流车路径计算函数; 步骤6:建立绘图函数,输入步骤5求解得到的结果调用避障函数,使用绘图函数作最短路径图; 步骤7:作迭代收敛曲线图:双y轴,y1轴表示步骤4中电动物流车路径计算函数计算的每代最短路径长度,y2轴表示步骤4中电动物流车路径计算函数计算的每代平均路径长度,得到总的迭代趋势。 2.如权利要求1所述的可实现避障的自导向电动物流车辆路径规划方法,其特征在于,步骤3包括如下步骤: 步骤3.1:对所有客户点按其到配送中心的距离从小到大进行排序,形成序列index={c1′,c2′,...cm′,...cn′},其中cm′表示根据距离排序后的客户点序号,m表示它在index数列的序号; 步骤3.2:建立两电动物流车的任务顺序列表,包括1号车数组car1和2号车数组car2,将index中的元素交叉放入两电动物流车的任务顺序列表中,得到car1={c1′,c3′,...},car2={c2′,c4′,...}。 3.如权利要求2所述的可实现避障的自导向电动物流车辆路径规划方法,其特征在于,步骤4具体包括如下步骤: 步骤4.1:建立电动物流车路径计算函数: 建立Tabu矩阵和Path数组,Tabu矩阵储存本代到过的客户点,Path数组储存本代到过的所有点,包括配送中心和充电站; 设顶点集G=N∪F,其中,客户和配送中心点集N是客户集N0={1,2,...i,...j,...,n}和配送中心{O}的集合;F是充电站点集,所述充电站点集中充电站只有1个; 包括所有连接N中点的弧,每个弧(i,j)与行驶时间tij和距离dij相关联,行驶速度vij被假定为是恒定的,建立启发式矩阵,每当电动物流车准备从客户点i出发时,启发式矩阵会从步骤2中的距离矩阵中查询客户点i到所有任务顺序列表中未访问客户点的距离,并利用这些距离计算每一个客户点的转移概率,按照轮盘赌方法确定要前往的目标客户点j后,启发式矩阵会从距离矩阵中查询i与j之间的距离dij,利用dij计算所消耗的电量和所行驶的时间; 电动物流车路径计算函数的数学模型如下: yjk≥min{τdi0,τ(dij+dj0)} (7) 式中,Z表示总成本,Ze表示能源消耗成本,Zt表示时间成本,Zp表示惩罚费用,δi、δj分别为客户点i的需求,单位为吨,i∈N0,δj为客户点j的需求,单位为吨,j∈N0;Q为电动物流车k的电池总容量,单位为库伦,τ为电能消耗速度,单位为千瓦时/千米;M为电动物流车的限重,单位为吨;xijk表示弧i,j上电动物流车流量的二进制变量,如果电动物流车k离开客户点i去j,xijk=1,否则,xijk=0;dij表示顶点i,j之间的距离,dj0表示顶点i和配送中心的距离,yjk为在离开顶点i去j时电动物流车的剩余电池容量,初始时刻yjk=Q; 步骤4.2:计算电池参数: Batalert=(Dmax+D′max)/v×Iwork (12) 式中,P为电池功率,U为电池工作电压,Iwork是放电电流,C为电池容量,tcharge为充电时间,ηloss为电池损耗百分比,Batalert为预警电量值,当电量达到此值是电动物流车需要返回配送中心充电,Dmax是离充电站距离最远的配送点到充电站的距离,D′max是距离矩阵中最大的距离; 步骤4.3:建立基于软时间窗的总体最优的评价规则: 设客户点i规定的时间窗为[ETi,LTi],ETi为客户点i允许的最早到达时间,LTi为客户点i允许的最晚到达时间,将电动物流车从配送中心出发设为初始时刻t0=0,设ti为电动物流车到达客户点i的时间; 软时间窗约束允许电动物流车到达时间在[ETi,LTi]之外,但是如果电动物流车到达时间早于ETi,还需要停车等待直到ti=ETi; 早到或晚到需要付出惩罚费用,所述惩罚费用如下式所示: Zp=a×max{ETi-ti,0}+b×max{ti-LTi,0} (13) 其中,a和b为人为设置的惩罚系数,设定a为0.2,b为0.5; 步骤4.4:建立电动物流车路径计算函数的数学模型的总体利用最优方案,如式(14)所示: 式中,第一项为耗电成本的总和,第二项为时间成本的总和,第三项为时间窗惩罚费用的总和; Z为总成本,bij为顶点i到j所消耗的电量;r为充电时间,单位为小时;s装卸货物速度,单位为吨/小时,所述充电时间和装卸货物速度是在路线规划开始之前就确定的常数;Ce为单位电能的价格,单位为元/千瓦时;Ct时间成本,单位为元/小时; 步骤4.5:将cark,k=1,2作为电动物流车需要服务的客户点序列,调用电动物流车路径计算函数,得到每辆电动物流车需要服务的客户点顺序;记录每一代所有的路径长度,计算得到每代最短路径长度和每代平均路径长度,并将二者以双y轴的形式画出,以观察算法的收敛程度。 4.如权利要求3所述的可实现避障的自导向电动物流车辆路径规划方法,其特征在于,步骤5所述的使用启发式算法中的蚁群算法求解电动物流车路径计算函数具体包括步骤如下: 步骤5.1初始化参数: 人为设定的参数包括:关于信息素更新的各个系数ρ、α、β、Q,时间窗惩罚系数,蚂蚁数量M和最大迭代次数NCmax,伪随机选择概率,装卸货物用时的最大载重; 需要用到的矩阵和数组包括:Tau矩阵、Path数组,每一只蚂蚁路线元胞矩阵ROUTE,每一只蚂蚁的长度、时间、费用、电量,各代最佳路线矩阵,各代最佳长度、平均长度数组、需求数组、任务数组,进入步骤5.2; 步骤5.2出动物流车,蚂蚁数加一,初始化Tabu矩阵和Path数组,Tabu矩阵储存到过的客户点,Path数组储存到过的所有点,包括配送中心和充电站;初始化:车载量、电量、需求数组、时间、长度,初始化启发式矩阵,储存电动物流车现在所在点到下一个客户的距离,进入步骤5.3; 进入步骤5.3判断电动物流车是否访问完所有客户,如果否,进行步骤5.4,如果是,进行步骤5.11; 步骤5.3从任务数组中去掉已访问客户,建立未访问客户数组;车载警告量为需求数组的最大值,进行步骤5.5; 步骤5.5判断电池存量是否小于电池警告量,如果否,进行步骤5.6,如果是,回到充电站充电,更新时间、长度、费用、电量,再进行步骤5.6; 步骤5.6判断车载量是否小于车载警告量,如果否,进行步骤5.7,如果是,回到配送中心,更新时间、长度、电量、车载量,在进行步骤5.7; 步骤5.7计算转移概率,判断是否满足伪随机选择概率,如果是,直接将概率最大的客户作为下一个要访问的客户点,进行步骤5.9,如果否,进行步骤5.8; 步骤5.8轮盘赌法选择下一名要访问的客户,进行步骤5.9; 步骤5.9电动物流车行走到下一个要访问的客户点开始装卸货物,在矩阵和数组中记录,更新时间、长度、电量、车载量,需求数组删除这个客户的需求,进行步骤5.10; 步骤5.10判断电动物流车完成任务的时间是否在客户规定的时间段内,如果是,返回步骤5.3,如果否,在费用中增加惩罚费用,在返回步骤5.3; 步骤5.11电动物流车回到终点,更新时间、长度、电量,将Path数组记录在元胞矩阵ROUTE中,计算总费用,进行步骤5.12; 步骤5.12寻找最小的费用,并记录其对应的第NC代和第m只蚂蚁; 步骤5.13判断蚂蚁数是否达到M,如果否,返回步骤5.2,如果是,进行步骤5.14; 步骤5.14更新信息素,然后进行步骤5.15; 步骤5.15判断迭代数是否达到NCmax,如果否,将蚂蚁数清零,返回步骤5.2,如果是,进行步骤5.16; 步骤5.16计算各代平均长度,最小费用和对应的路程线路、时间、长度,结束循环。 5.如权利要求4所述的可实现避障的自导向电动物流车辆路径规划方法,其特征在于,具体包括如下步骤: 步骤6:建立绘图函数,设置路线图的坐标范围、标题、电动物流车活动区域的边界,输入电动物流车路径计算函数计算出的结果,得到每电动物流车需要服务的客户点顺序,每辆电动物流车的结果分别调用避障函数,将某一电动物流车所在的客户点设为避障函数的起点,电动物流车下一步要前往的客户点设为终点,循环执行直到电动物流车经过任务中所有客户点完成配送任务,并回到配送中心,避障函数返回的是点状路线,每一点与邻近点的距离为避障函数设置的步长,使用gplot内置函数将散点连接成线,得出的图像为电动物流车路径拓扑; 步骤6.1建立避障函数:所述避障函数包括引力场函数和斥力场函数,电动物流车沿着这两种力场构成的合力场的下降方向运动; 步骤6.1.1:计算目标点对物体产生的引力,引力为目标点产生的引力势场的负梯度,随着电动物流车与目标点距离的减小,引力会收敛至0; 建立引力场函数如下: Fat(X)=-grad[Uat(X)]=k(X-Xgoal) (16) 式中,k为引力增益系数;(X-Xgoal)为电动物流车与目标之间的相对距离; 步骤6.1.2:计算障碍物对物体产生的斥力,斥力场函数如下: 其中,ρ为电动物流车与障碍之间的实际距离,ρ0为人为设置的障碍影响距离,如果障碍物与电动物流车的距离大于此值,则障碍物给电动物流车的斥力为0;η为斥力增益系数,n为斥力尺度因子,是为大于零的任意实数,矢量Fre1为斥力,方向由障碍物指向电动物流车;矢量Fre2为引力,方向由电动物流车指向目标,当电动物流车越来越接近目标点时,Fre1逐渐趋于零,Fre2驱动电动物流车驶向全局最小点,为目标点; 步骤6.2:将避障函数的计算结果返回给绘图函数,结果为按步长为间距的点状图,连点成线并绘出路线图;绘图函数调用下一辆电动物流车的配送顺序并输入给避障函数;重复上述步骤直至所有电动物流车的路线绘制完成。
法律状态: 公开