改进教与学算法的无人机路径规划方法、设备及无人机
- 国知局
- 2024-10-21 14:40:31
本发明涉及无人机路径规划,具体涉及一种改进教与学算法的无人机路径规划方法、设备及无人机。
背景技术:
1、在复杂障碍环境中进行无人机动态路径规划,首先需要构建路径规划模型,包括无人机模型、障碍物模型、约束集以及目标函数。根据无人机路径规划模型,无人机需要具备一条从起点到终点的完整飞行路径。现有的相关研究主要基于静态障碍环境,实现方法大致分为传统路径规划方法和生物智能算法两大类。然而,在复杂多障碍场景下,传统路径规划算法会受到较高的计算复杂度的限制。而生物智能算法由于其高并行性、强鲁棒性和自组织自学习等特点,在解决复杂环境下的无人机路径规划问题中得到了广泛应用。相较于传统优化算法,生物智能算法在处理高维复杂、多约束的优化问题上具有更好的稳定性和灵活性。
2、教与学算法因其出色的全局收敛性和计算鲁棒性,在解决复杂函数优化问题方面具有显著优势。特别是在多威胁环境下的无人机路径规划问题中,所涉及的障碍物模型和目标函数通常都是高维复杂函数,这使得教与学算法相较于其他算法更具优势。然而,传统的教与学算法也存在一些不足之处。在优化过程的后期,其收敛速度较慢,寻优精度下降,且容易陷入局部最小值。这些问题在一定程度上限制了教与学算法在处理复杂环境下无人机路径规划问题的应用效果。
技术实现思路
1、本发明旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种改进教与学算法的无人机路径规划方法、设备及无人机,提高算法效率,满足复杂多障碍环境下的路径精准性需求。
2、为了实现本发明的上述目的,本发明提供了一种改进教与学算法的无人机路径规划方法,包括以下步骤:
3、s1:构建无人机路径规划的目标函数及目标函数的约束条件;
4、s1-1:输入任务空间的环境模型,并根据环境模型构建目标函数如下:
5、,
6、 分别表示无人机的路径长度成本、飞行高度成本、威胁成本和无人机物理约束所造成的损失,系数到是这些成本组成部分到的各自权重,表示无人机的路径的适应度值;
7、s2:优化当前目标函数并获得最优解;
8、s2-1:初始化或更新互动式圆柱矢量教与学算法(icvtlbo)的参数;
9、s2-2:在柱面坐标系中生成m条初始路径;
10、s2-3:将每个路径转换为笛卡尔坐标;
11、将每个飞行节点的均通过三维圆柱形向量的序列进行表达,则含有n个飞行节点的可行路径表达如下:
12、,
13、其中,为第个可行路径,为第个可行路径中第一个飞行节点的量级,代表第个可行路径中第一个飞行节点的无人机的飞行仰角,为第个可行路径中第一个飞行节点的无人机的方位角;
14、s2-4:计算当前循环的适应度值;
15、s2-4-1:通过如下公式进行计算当前循环的路径节点:
16、,
17、其中,为经过迭代后的路径节点,为随机路径节点,是当前最优路径点,表示所有路径节点的平均值,表示影响因子;为0~1之间的随机数,为系数;
18、通过如下公式计算:
19、<mstyle displaystyle="true" mathcolor="#000000"><mi>ℑ=</mi><mrow><mo>[</mo><mrow><msup><mi>e</mi><mfrac><mrow><mi>−</mi><mi>iter</mi></mrow><mi>maxit</mi></mfrac></msup><mo>+</mo><mi>(cos(</mi><mi>π</mi><mi>×</mi><mfrac><mi>iter</mi><mi>maxit</mi></mfrac><mi>)</mi><mo>+</mo><mn>1</mn><mi>)</mi></mrow><mo>]</mo></mrow><mi>×∂</mi></mstyle>,
20、其中,为当前迭代次数,为最大迭代次数;是常数;
21、s2-4-2:计算当前循环的路径节点的适应度值;
22、通过步骤s1中构建的目标函数及目标函数的约束条件进行计算;
23、s2-5:通过增强互动式学习者阶段的数学模型进行计算当前模型下的适应度值;
24、s2-6:将s2-4和s2-5计算的适应度值进行比较,记录适应度值更小的路径,并更新;
25、s3:若当前循环次数达到设定次数则直接执行s4;
26、否则重复步骤s2,进行下一次循环;将上一次循环步骤s2中得到的最优解作为下一循环的路径点,并根据该最优解更新所有路径,直至循环迭代到无人机的终点;
27、s4:结束,输出最佳路径。
28、上述方案中:步骤s1还包括:
29、s1-2:设任务空间中的起点和终点分别为点和点,并在点和点之间插入个串联航路点,根据个串联航路点来规划无人机飞行路径;
30、s1-3:构建第个飞行路径的路径长度成本的计算公式如下:
31、<mstyle displaystyle="true" mathcolor="#000000"><mstyle displaystyle="true" mathcolor="#000000"><mi>k</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><msub><mrow /><mstyle displaystyle="true" mathcolor="#000000"><mn>1</mn></mstyle></msub></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>(</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>p</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><msub><mrow /><mstyle displaystyle="true" mathcolor="#000000"><mi>i</mi></mstyle></msub></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>)</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>=</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mstyle displaystyle="true"><munderover><mo>∑</mo><mstyle displaystyle="true" mathcolor="#000000"><mstyle displaystyle="true" mathcolor="#000000"><mi>j</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>=</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mn>0</mn></mstyle></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>n</mi></mstyle></munderover><mstyle displaystyle="true" mathcolor="#000000"><mstyle displaystyle="true" mathcolor="#000000"><mi>s</mi></mstyle></mstyle></mstyle></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>q</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>r</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>t</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>[</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>(</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>x</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><msub><mrow /><mrow><mstyle displaystyle="true" mathcolor="#000000"><mi>i</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>j</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mo>+</mo></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mn>1</mn></mstyle></mrow></msub></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>−</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>x</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><msub><mrow /><mrow><mstyle displaystyle="true" mathcolor="#000000"><mi>i</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>j</mi></mstyle></mrow></msub></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>)</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><msup><mrow /><mstyle displaystyle="true" mathcolor="#000000"><mn>2</mn></mstyle></msup></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mo>+</mo></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>(</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>y</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><msub><mrow /><mrow><mstyle displaystyle="true" mathcolor="#000000"><mi>i</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>j</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mo>+</mo></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mn>1</mn></mstyle></mrow></msub></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>−</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>y</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><msub><mrow /><mrow><mstyle displaystyle="true" mathcolor="#000000"><mi>i</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>j</mi></mstyle></mrow></msub></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>)</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><msup><mrow /><mstyle displaystyle="true" mathcolor="#000000"><mn>2</mn></mstyle></msup></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mo>+</mo></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>(</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>z</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><msub><mrow /><mrow><mstyle displaystyle="true" mathcolor="#000000"><mi>i</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>j</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mo>+</mo></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mn>1</mn></mstyle></mrow></msub></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>−</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>z</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><msub><mrow /><mrow><mstyle displaystyle="true" mathcolor="#000000"><mi>i</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>j</mi></mstyle></mrow></msub></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>)</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><msup><mrow /><mstyle displaystyle="true" mathcolor="#000000"><mn>2</mn></mstyle></msup></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>]</mi></mstyle></mstyle>,
32、其中,的坐标为,的坐标为;
33、<mstyle displaystyle="true" mathcolor="#000000"><mstyle displaystyle="true" mathcolor="#000000"><mi>s</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>q</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>r</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>t</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>[</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi></mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>]</mi></mstyle></mstyle>表示开平方;
34、表示第个飞行路径的第个点;
35、表示第个飞行路径的第个点;
36、表示串联航路点的个数;
37、s1-4:构建飞行高度成本的计算公式;
38、s1-5:构建威胁成本的计算公式;
39、s1-6:构建无人机的物理约束所造成的损失的计算公式。
40、上述方案中:步骤s1-4还包括以下步骤:
41、s1-4-1:设无人机为避免碰撞而与山峰或地面保持的安全距离的上界和下界分别为和;
42、s1-4-2:构建第个飞行路径的飞行高度成本的计算公式如下:
43、,
44、式中,表示第个飞行路径上第个小段的飞行高度成本,其中,当第个飞行路径上第个小段的高度,则;若,则,为飞行高度低于安全阈值时的惩罚值,其中,表示无人机为避免碰撞而与山峰或地面保持的安全距离的上界,表示无人机为避免碰撞而与山峰或地面保持的安全距离的下界,表示第个飞行路径上个小段的高度。
45、上述方案中:步骤s1-5还包括以下步骤:
46、构建路径的威胁成本的计算公式如下:
47、,
48、其中,表示存在的威胁数量,表示不同轨迹的威胁成本;且设表示第个威胁源的核心轨迹,为威胁源中心与第段的距离,表示安全距离;当时,;当时,;当时,。
49、上述方案中:步骤s1-6还包括以下步骤:
50、s1-6-1:由于无人机的航空机动性主要由确定飞行路径可行性的转角和斜角临界指标决定,而转角由两个连续线段的水平面oxy投影之间的夹角来定义,通过如下公式计算路径中第小段的转角:
51、,
52、式中,为路径中第小段的转角,航路点和均为路径中第段飞行路线的上的点,、为点和之间的航路段、在水平面上的投影;
53、s1-6-2:通过如下公式计算路径中第小段的坡角:
54、,
55、其中,和分别为航路点和的坐标;
56、s1-6-3:构建路径的无人机的物理约束所有造成的损失的计算公式如下:
57、,
58、其中,为路径中第小段的转角所造成的损失,为路径中第小段的坡度角所造成的损失,设为路径中最大转弯角度,为路径中最大爬升角度,若路径中第段飞行路线的转角,则,若路径中第段飞行路线的转角,则;若路径中第和段飞行路线的坡度角、满足,则,否则。
59、上述方案中:步骤s2-5还包括:
60、通过增强互动式学习者阶段的数学模型进行计算当前模型下的最优路径;
61、s2-5-1:计算学生之间的距离对互动学习效果的影响参数;
62、,
63、其中,为节点之间的距离对优化效果的影响参数,是常数,、和均为0~1范围内的随机值;为伽玛函数;
64、s2-5-2:通过如下公式进行增强互动式学习者阶段的数学模型下的当前循环迭代得到的路径节点:
65、 ,
66、其中,;
67、其中,表示经过该策略迭代得到更新后的路径节点,表示用于调整搜索范围的控制参数,是角度值,表示与相关的梯度控制参;表示动态调整的控制参数;表示在0~1之间的模运算结果;,,,和均为0~1之间的随机值,为随机路径节点,是当前最优路径点,为当前迭代次数,为最大迭代次数;表示取模运算,用于求余数;表示作为指数函数的底数的自然常数;
68、s2-5-3:计算增强互动式学习者阶段的数学模型下的当前循环迭代得到的路径节点的适应度值;
69、通过步骤s1中构建的目标函数及目标函数的约束条件进行计算;
70、步骤s2-6还包括:
71、当<时,选用为最佳路径;
72、当 >时,选用为最佳路径。
73、本发明还提供了一种基于改进教与学算法的无人机路径规划设备,该设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述设备执行上述方案中所述的方法。
74、本发明还提供了一种无人机,包括无人机本体,包括上述方案中所述的无人机路径规划设备,所述无人机路径规划设备用于在无人机本体上执行如上述方案中所述的方法。
75、综上所述,由于采用了上述技术方案,本发明的有益效果是:能够提高算法效率,同时满足复杂多障碍环境下对路径精准性的需求。通过引入互动式圆柱矢量教与学算法,本发明有效地克服了传统教与学算法在处理复杂环境下无人机路径规划问题时的局限性,为无人机在多威胁物环境中规划出一条无碰撞风险的优化路径提供了有力保障。针对多威胁环境下无人机路径规划中存在的问题,在原教与学算法基础上引入班级互动思想,通过互动教师阶段和增强型互动学习者阶段的操作,可以在多威胁障碍物环境下为无人机规划一条无碰撞风险的优化路径,提高算法效率,满足复杂多障碍环境下的路径精准性需求。
本文地址:https://www.jishuxx.com/zhuanli/20241021/318942.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表