这里主要讲解的PID算法属于一种线性控制器,这种控制器被广泛应用于四轴上。要控制四轴,显而易见的是控制它的角度,那么最简单,同时也是最容易想到的一种控制策略就是角度单环PID控制器,系统框图如图所示:

或许有些朋友看得懂框图,但是编程实现有一定困难,在这里笔者给出了伪代码:
上述角度单环PID控制算法仅仅考虑了飞行器的角度信息,如果想增加飞行器的稳定性(增加阻尼)并提高它的控制品质,我们可以进一步的控制它的角速度,于是角度/角速度-串级PID控制算法应运而生。在这里,相信大多数朋友已经初步了解了角度单环PID的原理,但是依旧无法理解串级PID究竟有什么不同。
其实很简单:它就是两个PID控制算法,只不过把他们串起来了(更精确的说是套起来)。那这么做有什么用?答案是,它增强了系统的抗干扰性(也就是增强稳定性),因为有两个控制器控制飞行器,它会比单个控制器控制更多的变量,使得飞行器的适应能力更强。为了更为清晰的讲解串级PID,这里笔者依旧画出串级PID的原理框图,如图所示
同样,为了帮助一些朋友编程实现,给出串级PID伪代码:
而笔者在整定串级PID时的经验则是:先整定内环PID,再整定外环P。
外环P:当内环PID全部整定完成后,飞机已经可以稳定在某一位置而不动了。此时内环P,从小到大,可以明显看到飞机从倾斜位置慢慢回中,用手拉扯它然后放手,它会慢速回中,达到平衡位置;继续增大P的值,用遥控器给不同的角度给定,可以看到飞机跟踪的速度和响应越来越快;继续增加P的值,飞机变得十分敏感,机动性能越来越强,有发散的趋势。
如何做到垂直起飞、四轴飞行时为何会飘、如何做到脱控?
这三个问题一眼看上去是三个不同的问题,其实就原理上讲,他们的原因在绝大多数情况下都是由于加速度计引起的。如果飞机可以垂直起飞,说明你的加速度计放置地很水平,同时也说明你的PID控制算法参数找的不错,既然可以垂直起飞,那么飞行过程中,只要无风,四轴几乎就不会飘,自然而然就可以脱控飞行。由此可见,加速度计是个十分重要的器件。
在姿态解算中,或者说在惯性导航中,依靠的一个重要器件就是惯性器件,包括了加速度计和陀螺仪。陀螺仪的特性就是高频特性好,可以测量高速的旋转运动;而加速度计的低频特性好,可以测量低速的静态加速度。无论是何种算法(互补滤波、梯度下降、甚至是Kalman滤波器),都离不开对当地重力加速度g的测量和分析。
惯性导航利用的就是静态性能好的加速度计去补偿动态性能好的陀螺仪漂移特性,得到不飘并且高速的姿态跟踪算法,因此基于惯性器件的姿态解算,加速度计是老大,它说了算。


还没有评论,来说两句吧...