多旋翼飞行器姿态控制串级PID

多旋翼控制基础是将用户输入的遥控信号(期望角度值 )通过计算调整电机输出最后达到期望姿态值


单环PID.png

在单环PID控制算法中,用户期望值输入是角度信息,通过PID控制器后输出电机控制信号,再次经过MEMS器件反馈角度到PID控制器,根据偏差值 来调整输出。

普通控制情况下,单环PID完全够用了,但有以下几个问题
1.飞行器稳定性不好没有阻尼感
2.MEMS器件对角度的敏感度不如对角速度敏感度来得高
鉴于以上情况在控制逻辑上对算法进行修改,修改为串级PID


串级PID.png

使用串级PID可以有效利用MEMS器件对角速度敏感的特点,增加飞行中的阻尼感和飞行的稳定性,串级PID的输入依然为用户的期望角度,将用户期望角度值经过角度PID环后,得到期望角速度,再将期望角速度输入给内环角速度控制环,最后得到电机输出量,输出到电机。

串级PID整定
  • 内环P:从小到大,拉动飞行器会感觉到越来越困难,越来越感觉到四轴在抵抗你的拉动;达到一个比较大的数值时,四轴会自己高频震动,如果此时输入大杆量时,四轴会高速震荡几下,过几秒后稳定,继续增大,不用人为干扰,自行发散翻机。
  • 内环P:从小到大,拉动四轴越来越困难,越来越感觉到四轴在抵抗你的拉动;到比较大的数值时,四轴自己会高频震动,肉眼可见,此时拉扯它,它会快速的振荡几下,过几秒钟后稳定;继续增大,不用加人为干扰,自己发散翻机。特别注意:只有内环P的时候,四轴会缓慢的往一个方向下掉,这属于正常现象。这就是系统角速度静差。
  • 内环I:前述PID原理可以看出,积分只是用来消除静差,因此积分项系数个人觉得没必要弄的很大,因为这样做会降低系统稳定性。从小到大,四轴会定在一个位置不动,不再往下掉;继续增加I的值,四轴会不稳定,拉扯一下会自己发散。特别注意:增加I的值,四轴的定角度能力很强,拉动他比较困难,似乎像是在钉钉子一样,但是一旦有强干扰,它就会发散。这是由于积分项太大,拉动一下积分速度快,给 的补偿非常大,因此很难拉动,给人一种很稳定的错觉。
  • 内环D:这里的微分项D为标准的PID原理下的微分项,即本次误差-上次误差。在角速度环中的微分就是角加速度,原本四轴的震动就比较强烈,引起陀螺的值变化较大,此时做微分就更容易引入噪声。因此一般在这里可以适当做一些滑动滤波或者IIR滤波。从小到大,飞机的性能没有多大改变,只是回中的时候更加平稳;继续增加D的值,可以肉眼看到四轴在平衡位置高频震动(或者听到电机发出滋滋的声音)。前述已经说明D项属于辅助性项,因此如果机架的震动较大,D项可以忽略不加。
  • 外环P:当内环PID全部整定完成后,飞机已经可以稳定在某一位置而不动了。此时内环P,从小到大,可以明显看到飞机从倾斜位置慢慢回中,用手拉扯它然后放手,它会慢速回中,达到平衡位置;继续增大P的值,用遥控器给不同的角度给定,可以看到飞机跟踪的速度和响应越来越快;继续增加P的值,飞机变得十分敏感,机动性能越来越强,有发散的趋势。

你可能感兴趣的:(多旋翼飞行器姿态控制串级PID)