军用/航空电子
前提是这里假定底层的控制器已经设计好,包含速度控制器-》高度控制器-》姿态控制器。常见的飞控的手动操作飞行模式为姿态、定高、定点,要满足以上的飞行模式,则至少需要做到速度控制器部分,即摇杆作为速度方向目标值,控制飞行器定速飞行以及不控杆情况下的定点悬停。
然而,要实现飞行器的自主飞行,一般由地面站或APP给飞控发送目标位置的经纬度,那如何让飞行器飞到指定点呢?
这里以返航模式举例,引出位置控制器的必要性以及不同控制器的差异性。
返航模式
要想让飞控完成返航功能,则必不可少的需要一个位置控制器,即根据当前位置和目标位置(这里指的是home点),得到速度目标值,从而进入下一级的速度控制器。
最简单的位置控制器:
根据当前位置和目标位置的经纬度,分别对经纬度求误差,转换成距离后,乘以一定的比例系数K,从而转换成Vn和Ve的速度目标值,判定当前位置和目标位置的距离,从而判定是否已经完成返航,到达home点上空,进行自主降落即可。
这个方法有什么问题?
一句话概括就是没有考虑轨迹跟踪的问题,即是否按照航线飞行。
示意图如下
假设在点1处,进入返航状态,则应该是以黑线的状态飞往home点。如果由于风力的影响,飞行器被吹到了点2处,以上述的返航设计方法,则会以蓝色箭头的方向飞往home点。虽说不影响返航功能,但是这种不压线的飞行,在后续的自主飞行设计中也会受到影响,所以这种简单的位置控制势必会影响后面自主航线飞行的性能。
改进:
位置控制器的输入是目标点的经纬度,输出的是Vn 、Ve方向的目标速度,作为下一级速度控制器的输入。与之前不一样的地方在于,引入了垂直航线的距离,通过这个距离控制飞行器压线飞行。
步骤:
Ø 根据当前点和目标点的经纬度,得到两点之间的距离;
Ø 计算当前点和目标点的航向角;
Ø 根据距离和航向角,计算出沿着目标方向和垂直方向的距离;
Ø 垂直方向的距离用来判定飞行轨迹是否压线准确;
Ø 沿着目标的距离以及补偿的垂直的距离通过一个系数,将距离信息转换到速度信息,再分解到NE坐标系,得到Vn、Ve的速度目标值。
设计好位置控制器后,这时实现自主飞行就非常简单了,只需给飞控发送目标点的经纬度即可,而航点飞行的策略,则可自由添加,比如到点悬停多长时间,要不要对准机头方向,高度要不要上升或下降等等。
鉴于好久不更新了,先更新一篇,讲一个小问题,这个问题相信很多人在实现功能的时候并未注意过。笔者发现有关轨迹跟踪的论文文章比较多,大多理论为主,看的云里雾里,但其实要解决的问题很简单,有兴趣深挖的人可以搜寻有关l1导航的资料,px4开源飞控中,固定翼有用到。
全部0条评论
快来发表一下你的评论吧 !