路径规划基于matlab Beizer和改进的粒子群算法风环境下翼伞航迹规划含Matlab源码 199期
Posted 海神之光
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了路径规划基于matlab Beizer和改进的粒子群算法风环境下翼伞航迹规划含Matlab源码 199期相关的知识,希望对你有一定的参考价值。
一、Beizer和改进的粒子群算法简介
翼伞是一种由柔性纺织材料制成的气动减阻装置, 拥有高升阻比的气动性能、优良的滑翔能力、良好的稳定性和操纵性, 具有体积小、重量轻、便于携带搬运的特点。翼伞精确空投系统就是利用翼伞特点, 将人员、物品等远距离准确投放到指定地域。该系统在航空航天、军事、民用等领域的应用越来越广泛, 例如, 欧空局和美国宇航局合作研制的X-38救生飞船就采用了可控翼伞回收系统。
对翼伞空投系统而言, 风环境是影响其归航过程的关键因素之一, 在大部分归航过程中, 翼伞主要在无障碍空间飞行, 在风场下规划安全有效的航迹就成为翼伞航迹规划的重要部分。然而, 目前研究者大多假设风环境为常值平均风或叠加紊流风[2,3], 直接采用简单径向归航的方法控制翼伞接近着陆区, 虽然简化了航迹规划过程, 却导致翼伞有效投放距离小、控制频繁度高、到达着陆区时高度偏差大等缺点。若能事先对归航风场环境进行建模, 充分利用该风场的特点规划出一条合适的航迹, 将会大大提升翼伞归航性能, 不仅可减少并准确预测下降高度、扩展投放范围, 而且能减少控制操纵次数、节约能量和提升稳定性。
本文首先对翼伞归航环境中的风场进行工程化建模, 通过提出归航问题, 选择采用Bezier曲线表达预定航迹, 对航迹做进一步优化处理, 并采用改进的粒子群优化算法得到符合要求的最优轨迹。
1 风环境模型
综合考虑翼伞归航特点和便于工程化实现, 本文对风场做如下简化假设:1) 风场为水平风, 无垂直气流;2) 风速不随高度和时间变化;3) 空间大气绕气压中心旋转, 旋转趋势近似螺线。基于以上假设, 利用对数螺线相关原理, 建立近似表现大气规律性运动的风速矢量场模型, 2D风场效果如图1所示。因风速在小范围内不会发生较大变化, 本文采用栅格法保存风速数据, 在需要风速数据时, 直接查询距离最近栅格点的存储值即可。
2 航迹规划算法的实现
2.1 航迹规划问题描述与分析
某翼伞精确空投系统在完全展开后, 机载导航设备获得了当前坐标和航向, 接下来, 翼伞需穿越图1风场并以指定航向抵达前方导航点, 在线规划系统的任务是求出一条使翼伞系统下降高度尽可能少的轨迹, 同时保证安全、稳定飞行, 且尽量使操纵过程简单。
针对该问题, 航迹规划算法思路如下:采用一种能表达空间内任意轨迹的表示方法, 把轨迹光滑度、转弯曲率、轨迹可实现、高度损耗、操纵量等约束条件引入到轨迹表示法的评价机制中, 将航迹规划问题转换成求最优解问题。
图1 风速矢量场平面区域分布效果
2.2 Bezier曲线表达航迹
Bezier曲线是利用特征点围成的特征多边形来定义曲线, 改变特征点位置即可改变曲线的形状。若在有限空间内给定n+1个特征点, 其位置矢量为Qi (i=0, 1, 2, …, n) , 则Bezeir曲线方程表示为:
式中, Bi, n (t) 是n次Bernsetein基函数:
鉴于Bezier曲线具有未知参数少、轨迹表现力丰富等优点, 本文采用多段三次Bezier曲线拼接的方法来表达翼伞的预定航迹。多条曲线进行拼接时, 为保证连续性需满足零阶连续和一阶连续条件, 如图2所示, 两条曲线特征点分别为Qi (i=0, 1, 2, 3) 和Ri (i=0, 1, 2, 3) , 拼接时需满足点Q2, Q3 (=R0) 、R1在同一直线上。
图2 两条三次Bezier曲线拼接效果
2.3 航迹评价函数
采用Bezier曲线已经确保了轨迹的平滑性, 航迹评价标准主要考虑高度损耗和操纵稳定性。本文采用离散积分法求高度损耗值, 将整条Bezier曲线分成n小段, 假设每一小段的操纵量不变, 则预定航迹评价函数为:
式中, N代表预定轨迹中Bezier曲线条数, h代表高度损耗, g代表操纵代价。
高度损耗函数表达式为:
2.4 规划算法的优化
相比于其他轨迹表示法, 采用Bezier曲线技术已很大程度上优化了问题的求解, 但是, 若直接对预定轨迹的未知参数寻优, 仍需较长的搜索时间。若能进一步对归航轨迹特点进行分析并合理优化, 必能进一步提升问题求解效率。
-
观察图1可知, 区域内任意一条直线上各点风速存在规律:风速在直线垂线上的分量呈方向交替变化的规律分布, 如图3中均匀排列的矢量。由此, 设置预定轨迹的Bezier曲线条数为首尾连线ST上风速方向交替变化次数。以交替分布的风速分量的过零点 (图中的O1、O2点) 所在位置为拼接点的x轴坐标和y轴坐标边界值, 以过零点为垂足、以左侧 (靠近起始点一侧) 风向为方向做垂线, 沿垂线方向上从垂足开始依次计算各点风速在 方向上的分量, 当其减小到某一较小值时, 取该点位置为拼接点的y轴坐标的另一边界值。拼接点处的切向量可设置成与风速方向相同。这样, 未知参数由原来的 (5N-3) 条, 减少到 (3N-1) 条, 拼接点的x轴坐标变为已知值, y轴坐标的取值范围大幅缩小。
图3 某直线上风速分量的分布 -
由Bezier曲线特性知, 若按固定步长移动线外特征点, 曲线形状也显现出规律性变化。因此, 若采用固定步长法更新曲线, 则其中必有一条曲线接近最优轨迹;若设置的步长合理, 可使寻优算法很快搜索到次优轨迹, 再经进一步局部寻优, 即可快速找到全局最优解。
-
若寻优算法某次给出的轨迹出现不可行区段时, 按不可行长度相应增大整条轨迹评价函数值, 既可使寻优算法有效避开该轨迹而趋向较优轨迹, 又可将之与有效轨迹作明显区分。
2.5 改进的粒子群算法
粒子群优化 (Particle Swarm Optimization, PSO) 算法源于对鸟类觅食行为的观察研究, 由Kennedy和Eberhart提出。PSO算法的具体原理, 速度和位置更新公式为:
因PSO算法易陷入局部最优, 依照第2.4节中的优化思想, 对PSO算法进行了改进, 修正了算法中速度和位置更新策略, 使其始终保持局部发散, 保证解的多样性, 同时, 改进了迭代退出机制, 缩短算法执行时间, 执行步骤如下:
步骤1:初始化PSO算法参数, 初始化轨迹未知参数的取值范围和移动步长;
步骤2:对粒子速度和位置进行更新, 限制速度为步长的整数倍, 当检测到位置超出取值范围, 则在相应边界点和取值中心之间随机取一新值, 并使之与最小值的差为步长整数倍;
步骤3:出现最优解时, 若步长为初始值, 转第4步, 若步长非初始值, 转第5步;未出现最优解时, 转第2步;
步骤4:将未知参数的取值范围限定在最优解附近, 并更新移动步长, 转第2步;
步骤5:若本次步长求得的最优值与前次步长所得最优值的误差符合精度要求, 表明已求得最优轨迹, 停止搜索;否则, 转第4步。
二、部分源代码
clc;
clear;
三、运行结果
四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.
[3]于群涛,陈楸,李德荣,吴泽锐.基于Bezier和改进PSO算法的风环境下翼伞航迹规划[J].电子设计工程. 2014,22(19)
以上是关于路径规划基于matlab Beizer和改进的粒子群算法风环境下翼伞航迹规划含Matlab源码 199期的主要内容,如果未能解决你的问题,请参考以下文章
三维路径规划基于matlab改进的粒子滤波无人机三维航迹规划含Matlab源码 1527期