转载
https://www.zhihu.com/question/40756707
以及下文引自DImianzhan:
http://shequ.dimianzhan.com/articles/278/summary-of-gps-knowledge-related-to-uav-flight-control
GPS数据在飞控中如何使用?#
首先,在做定点飞行控制时,如果直接使用GPS反馈的数据,也是能够实现功能的。但是需要注意的是,前面讲到GPS模块的输出频率,最大10hz,而通常做定点控制时,控制频率是达到50hz以上(px4在100~200hz左右),反馈的数据频率带宽过低,这样控制增益不能加大,控制效果偏弱,甚至出现不稳定的现象(抖动、电机声音抽搐)。
说到控制,插入两个知识点:
什么是控制带宽?#
简单来说一句话,控制带宽决定了系统的快速性。
以飞行器这个对象来说,高带宽意味着高性能,飞机的快速响应能力,但高带宽是建立在高成本的基础上的。比如飞行器的机体材料需要刚性强的,动力系统的响应能力要快,飞控的芯片处理能力快,传感器延迟小等等条件。
一般来说,飞行器的带宽在30hz左右,所以传感器的低通滤波的截止频率一般设置在30hz。某些震动大的飞行器,可以设置更低一些,一般震动大的,轴距也大,所以快速性要求没那么高。
传感器采样频率、控制频率之间的关系?#
一般来说,传感器的采样频率尽可能越高越好,比如gyro数据1000hz采样,实际在姿态估计算法中是200hz读取,这样多出来的数据点能用来做滤波处理,尽可能的保存真实信息。
控制器频率则一般根据系统的带宽决定,一般来说,控制频率是带宽的5倍左右(理论推导不详述了,请自行查阅书籍)。
在多旋翼飞行器中,一般包含了4个控制回路,角速度控制、角度控制、速度控制、位置控制。以角速度控制为例,前面gyro滤波器设置的截止频率为30hz,所以最好角速度控制达到150hz以上。当然,这些没有标准的设置,基本合理就可以,底层的角速度控制频率尽可能高些,200~400左右即可。
如果反馈的数据频率低于控制频率怎么样?#
常见的,以飞行器的定点控制为例,如直接使用GPS数据作为速度、位置反馈,GPS的数据频率可设置到10hz,但一般速度位置的控制频率在50hz以上。这样做,也是可以的,飞行器能够实现定点功能,但是存在一些问题,比如控制参数不能设置过大(与高频率的反馈数据相比),飞行过程中出现细微的不稳定现象等。
综上:传感器采样频率越高越好,控制频率低于反馈数据的采样频率,同时尽量保证控制频率大于带宽5倍以上。
所以,飞控解码得到GPS的数据之后,会做数据融合,简单来讲,就是通过与加速度计数据、姿态数据、气压计数据进行组合导航,估计出所需的惯性导航数据。
好的融合算法,能够使得估计出来的数据相比GPS原始数据,频率提升,且具有相位超前(GPS的数据一般较实际反应,延迟150ms左右)。
有关组合导航的估计算法,后面会单独写文章进行描述,这里不再赘述。