[发明专利]基于蚁群算法的无人船节能路径规划方法有效
申请号: | 202110547020.0 | 申请日: | 2021-05-19 |
公开(公告)号: | CN113341954B | 公开(公告)日: | 2023-03-21 |
发明(设计)人: | 陈芳炯;张健铭;季飞;余华;官权升 | 申请(专利权)人: | 华南理工大学 |
主分类号: | G05D1/02 | 分类号: | G05D1/02 |
代理公司: | 广州粤高专利商标代理有限公司 44102 | 代理人: | 何淑珍;江裕强 |
地址: | 510640 广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 算法 无人 节能 路径 规划 方法 | ||
1.基于蚁群算法的无人船节能路径规划方法,其特征在于,包括以下步骤:
S1、通过栅格法对环境进行建模,在建模后的地图上设立n个任务点,选取两个任务点i,j,通过Lazy theta*算法计算两个任务点的中间路径点,将中间路径点连成线得到最短路径;执行循环如下:
循环步骤1、选取n个任务点后进行编号N={1,2,...,n},再选取两个任务点i,j∈N,i≠j,进行最短路径计算,采用Lazy theta*算法;
循环步骤2、初始化第一集合open和第二集合closed为空集;
循环步骤3、设置任务点i为起点start,j为终点destination;设置g(start)=0,parent(start)=start即表示起点的父节点为自己,f(start)=g(start)+h(start);将起点start加入第一集合open;
循环步骤4、判断第一集合open是否为空集,若是则表示找不到最短路径,退出计算,否则执行循环步骤5;
循环步骤5、在第一集合open中取出综合代价f(s)值最小的当前节点s;
循环步骤6、判断当前节点s与其父节点是否有障碍物,即lineofsight(parent(s),s)是否成立,若成立则跳到循环步骤8,否则执行循环步骤7;
循环步骤7、在第二集和closed中寻找当前节点s的邻居x,并在符合这个要求的节点中找到g(x)+c(s,x)最小的,且LOS检查成功的;再设置g(s)=g(x)+c(s,x);即设置
循环步骤8、判断当前节点s是否是终点destination,若是则找到路径,退出计算,否则执行循环步骤9;
循环步骤9、将当前节点s加入第二集合closed;
循环步骤10、找出当前节点s的一个邻居节点s′,若已经全部找完,跳到循环步骤4,否则跳到循环步骤11;
循环步骤11、判断邻居节点s′是否可通行,若是则跳到循环步骤12,否则循环步骤10;
循环步骤12、判断邻居节点s′是否在第二集合closed中,若是则跳到循环步骤10,否则执行循环步骤13;
循环步骤13、判断邻居节点s′是否在第一集合open中,若是则执行循环步骤14,否则跳到循环步骤15;
循环步骤14、设置g(s′)=g(parent(s))+c(parent(s),s′),parent(s′)=parent(s),f(s′)=g(s′)+h(s′),将邻居节点s′加入到第一集合open中,跳到循环步骤10;
循环步骤15、判断g(parent(s))+c(parent(s),s′)g(s′)是否成立,若否则跳到循环步骤10,若是继续执行循环步骤16;
循环步骤16、更新该邻居节点s′的信息g(s′)=g(parent(s))+c(parent(s),s′),parent(s′)=parent(s),f(s′)=g(s′)+h(s′),跳到循环步骤10;
LOS检查即lineofsight(a,b),检查节点a,b的连线是否会穿过障碍物,根据节点a,b的坐标xa,ya,xb,yb计算出当前连线的方程,再在坐标xa,ya,xb,yb范围内对每一个栅格执行以下操作:
若该栅格不是障碍物则跳过;若该栅格是障碍物,对该栅格的4个角分别代入计算出来的连线的方程,若该栅格的4个角都在连线的一边,表示连线不经过该障碍物,否则经过;
Lazy theta*算法中,通过下列函数来计算各个节点的优先级:
f(s)=g(s)+h(s);
c(s,s′)表示两点间的移动代价,其中g(s)=c(s,start)是节点s距离起点start的起始代价,h(s)=c(s,destination)是节点s距离终点destination的预计代价,f(s)是节点s的综合代价,c(s,s′)采用欧几里得距离计算,即两点间的直线距离;
S2、根据步骤S1中得出的中间路径点,全局风浪流干扰方向和干扰大小,计算任务点i到任务点j的最短距离dij和能量消耗eij;根据步骤S1中得到的从任务点i到任务点j的l个中间路径点集合其中是起点start,是终点destination;则可以得到任务点i到任务点j之间相邻的中间路径点之间的距离:
任务点i到任务点j的最短距离为:
其中表示任务点i到j第k个路径点的x坐标,表示任务点i到j第k个路径点的y坐标,而且dij=dji;
人为设定全局干扰方向和全局干扰大小fwave;设定平静水面下阻力恒定向,设定平静水面下阻力大小为fs;根据集合Sij选取相邻的中间路径点计算相邻的中间路径点之间的连线的角度:
则无人船前进方向和干扰的夹角为无人船能量消耗具体如下:
其中,表示在无干扰情况下,无人船从任务点i到j的能量消耗,且eij表示在有波浪流等外界干扰下从任务点i到j的能量消耗;
S3、计算n个任务点两两之间的最短距离和能量消耗,构建距离矩阵D和能量消耗矩阵E;n个任务点两两之间根据步骤S1和步骤S2获取最短路径距离和能量消耗,构建距离矩阵D和能量消耗矩阵E,具体如下:
S4、将距离矩阵D和能量消耗矩阵E作为启发式信息进行蚁群算法计算,获取全局最优节能路径规划;基于距离矩阵D和能量消耗矩阵E,根据信息素浓度和启发式信息概率选择下一个任务点,设置M只蚂蚁,第m只蚂蚁当前时刻从任务点i到任务点j的转移概率为:
其中t表示当前迭代的次数,allowed m(t)表示当前迭代时刻第m只蚂蚁下一步允许选择的任务点:
allowed m(t)=N-tab um;
tab um为第m只蚂蚁设置的禁忌表,所述禁忌表中包括已经经过和当前所在的任务点编号,禁忌表中的任务点为第m只蚂蚁下一步不允许选择的任务点;
α、β和δ分别为信息素浓度启发因子、期望距离启发因子和期望能耗启发因子,α、β和δ的值选取范围均在0到5之间;
ηij为期望距离启发函数,表示任务点最大距离与当前任务点距离的差值;
ηij=dmax-dij
dmax=maxi,j∈N,i≠jdij;
χij为期望能耗启发函数,表示任务点最大能耗与当前任务点能耗的差值;
χij=emax-eij
emax=maxi,j∈N,i≠jeij;
τij(t)为当前迭代次数的信息素浓度,τij(t+n)认为是下一次迭代的信息素浓度,其更新规则为:
τ ij(t+n) = (1- ρ ) τ ij (t)+ Δτ ij;
ρ为信息素挥发系数,ρ∈[0.2,0.5],信息素挥发系数确保路径上的信息素不会无限增长,每经过一轮迭代就会挥发一部分;
Δτij是本次迭代在任务路径i,j上的信息素增量,是第m只蚂蚁在t到t+n时刻留在任务点i到任务点j位置间的信息素,越多蚂蚁走过该路径,信息素增加得越多,M表示蚂蚁的数量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华南理工大学,未经华南理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110547020.0/1.html,转载请声明来源钻瓜专利网。