/Route-Planning

2019研究生数学建模F题飞行器航迹规划

Primary LanguageJavaScript

这几天建模收获了很多,也留下了好多遗憾在论文中,加油加油!

本文讨论了飞行器在多个约束条件下的航迹规划,并针对具体约束条件,找出了对应的所有校正点的编号、坐标以及总航迹路程,并画出了飞行器在空间中的飞行路径。

针对问题一:

首先根据所给的约束条件,飞行器是在各个校正点之间做垂直误差和水平误差的交替校正,其两点之间的运动轨迹为直线。飞行器从A点出发,然后利用校正时误差所允许的范围,判断第一个要经过的水平或垂直校正点是否位于以A点为球心的一个球形范围内,接下来利用A*算法与贪心算法的结合,通过设置A*的代价函数引入启发信息来找出这一范围内满足航迹最短的校正点,然后从该点出发,重复上述操作,并利用交替校正的方式判断下一个校正点的类型,找出下一个校正点,直到最后一个校正点到终点B的距离在相应的误差允许范围内。综合考虑校正点个数和航迹长度,发现对于附件1,飞行器先进行水平误差校正更好,此时飞行器航迹将经过10个校正点,这10个校正点编号分别为[521, 64, 80, 237, 282, 33, 11, 403, 594, 501],总航迹长度为108436.66299130135m。对于附件2,综合考虑校正点个数和航迹长度,比较分析得出先进行垂直误差校正更好,此时飞行器航迹将经过10个校正点,这10个校正点编号分别为[105, 188, 309, 305, 123, 49, 160, 92, 93, 61],总航迹长度为109265.6035968887m。

image.png

针对问题二:

采用和问题一相同的做法,只是还需要考虑飞行器受到了转弯半径的影响,除到达第一个校正点之外,在其余两点之间不再是简单的直线运动轨迹,而是一段弧线和直线相连接的运动轨迹,利用空间几何的相关知识进行分析,求出来新的两个点之间的航迹长度,并带到基于问题一的A*算法中进行改进,得到结论:对于附件1,选择先垂直误差校正的方式更好,一共经过10个校正点,这10个校正点编号分别为[503, 200, 136, 80, 237, 278, 375, 172, 340, 277],总航迹长度为109030.77832139329m。对于附件2,选择先进行垂直误差校正的更好,一共经过10个校正点,这10个校正点编号分别为[105, 188, 309, 305, 123, 49, 160, 92, 93, 61],总航迹长度为108272.80202221114m。

image.png

针对问题三:

通过生成随机数的**来解决概率问题,如果在可能出现问题的点校正失败,则改变其限制条件。多次实验,随机生成随机数,本文中随机取一组代表其航迹路线。对于附件1,此时飞行器经过11个校正点,校正点编号分别为[503, 200, 136, 80, 237, 278, 375, 172, 340, 277, 370],总航迹长度为112367.5025846904m,在此规划路径中,飞行器一共经过两个误差校正失败点,分别是水平误差校正点172和垂直误差校正点340,此时飞行器能够成功到达终点的概率为96%。对于附件2,此时飞行器经过10个校正点,校正点编号分别为 [105, 188, 222, 230, 123, 49, 160, 92, 93, 61],总航迹长度为111087.66363688158m,在此规划路径中,飞行器一共经过两个误差校正失败点,均为水平误差校正点,其编号分别为188和92,此时飞行器能够成功到达终点的概率为96%。

关键词:A*算法、贪心算法、动态规划、航迹规划、交替校正