前言
本篇文章首发于公众号:无人机系统技术。更多无人机技术相关文章请关注此公众号。
上一讲无人机飞控姿态调参中我们对姿态控制的一般调参方法进行了详细说明,今天笔者以PX4为例跟大家聊一聊姿态控制的一些高级功能。
由于PID控制器是基于误差反馈的线性控制器,所以一旦无人机的运动超出PID参数适用的线性化范围,其控制性能就会显著下降,甚至会出现发散的后果。所以我们之前在悬停状态下调试的PID参数在总距(油门)位置很高或者很低的时候就有可能出现不适用的情况,当然,并不是说所有的飞行器都会出现这个情况,这个跟很多因素有关,比如飞行器的构型,电机的性能,PID参数的裕度,飞行器当时的飞行状态、外界风场等等,笔者在之前的飞行测试中就出现过此类情况。
那遇到此类情况时应该怎么办呢?笔者这里有三种方法可以解决此类问题,第一种方法就是调试PID参数,使它们有更好的适应范围,这种方法比较低端,也会带来很多工作量,效果也不一定很好;第二种方法是建立非线性模型,引入部分较为准确的非线性模型来消除模型非线性带来的影响,这种方法也是控制领域实际应用最为广泛的方法,先设计一个线性控制器,然后再把能够较为准确建模的非线性部分引入控制当中,其往往能够比单纯的线性控制器达到更好的控制效果;第三种方法就是根据不同的飞行状态设定不同的PID参数。
接下来笔者先来谈一下为什么总距(油门)在低位和高位时会出现此类情况呢,这是因为单个电机带动桨叶旋转产生的升力跟转速基本是呈平方关系,而转速跟电机PWM输入的关系是非线性的,具体是什么关系跟电机性能以及负载相关,笔者只知道是正相关的。所以如果将姿态控制的输出解耦后直接对应每个电机的PWM输入就会出现总距(油门)在悬停附近时调好的PID参数无法在高油门或者低油门时展现很好的飞行性能。
总距曲线
所以在PX4中对总距(油门)和PWM的关系进行了建模。其模型是这样的: