06 飞行控制器

目录

  1. XTDrone动态模型代码讲解
    2.自动控制初步
  2. PID控制器
    4.多旋翼飞行器控制系统
  3. 非线性多旋翼飞行器姿态控制
  4. PX4姿态控制代码讲解

1 XTDrone动态模型代码讲解

  • 旋翼动力学模型
    https://github.com/PX4/sitl_gazebo/blob/master/src/gazebo_motor_model.cpp
  • 动力单元模型
    https://github.com/PX4/sitl_gazebo/blob/master/src/gazebo_mavlink_interface.cpp

06 飞行控制器
06 飞行控制器


2 自动控制初步

2.1 自动控制概述

自动控制(automatic control)是指在没有人直接参与的情况下,利用外加的设备或装置,使机器、设备或生产过程的某个工作状态或参数自动地按照预定的规律运行(使被控对象的被控量等于给定值/目标值)。
06 飞行控制器

多旋翼飞行器控制实例

06 飞行控制器

常规多旋翼飞行器的控制是欠驱动系统,四个输入量(三个控制力矩,一个控制力),六个输出量(三维位移,三维姿态),使用串级PID实现控制。

[注1] 欠驱动系统
如 四个输入量 -> 六个输出量,故不能实现全向运动(不能原地打转)

[注2] 串级PID
先位置控制,再姿态控制,无法同时,因为耦合在一块

2.2 控制性能

06 飞行控制器

2.3 传递函数与状态方程

06 飞行控制器

[注]

  • 非定常:转动惯量改变,如喷农药
  • 非线性:姿态动力学,姿态角的变化率与角速度的系数

示例

06 飞行控制器


3 PID控制器

3.1 PID控制器

  • PID控制器(比例-积分-微分控制器),由比例单元(Proportional)、积分单元(Integral)和微分单元(Derivative)组成。可以透过调整这三个单元的增益 ????_???? ????_???? ????_???? 来调定其特性。其应用非常广泛,几乎所有领域都能见到PID的身影。
  • 一般工程师在做的PID调参,其实是在做免模型(model-free)控制,对象模型参数模糊,依据经验调试。研究人员已经证明了现在我们的控制律可以使得多旋翼飞行器全局渐近稳定(在一定的扰动下),我们只需要把PID参数调好即可。严格设计PID控制器,需要辨识系统参数。

06 飞行控制器

3.2 比例项调节

  • 比例控制:????(????)=????_????,简单快速,系数增大,响应速度变快,静差减小,振荡加剧,甚至发散
    06 飞行控制器

3.3 积分项调节

  • 06 飞行控制器

  • 积分项用于消除静差,????_????小,积分作用强,系统可能发生振荡;????_????大,消除静差需要的时间变长
    06 飞行控制器

积分饱和(Integral windup)

06 飞行控制器

[注]
详细可参考Rundqwist, L. (1990).Anti-reset Windup for PID Controllers. IFAC Proceedings Volumes, 23(8), 453–458.doi:10.1016/s1474-6670(17)51865-0

[参考] 抗积分饱和:https://blog.****.net/foxclever/article/details/80294264

3.4 微分项调节

06 飞行控制器
06 飞行控制器

微分先行

  • 偏差微分:对给定值和测量值都有微分作用

  • 测量值微分:只对测量值微分,适用于给定值频繁升降的场合,可以避免因输入变动而在输出上产生跃变
    06 飞行控制器

  • 微分将由两部分组成:

    • 一部分是给定量的变化,
    • 一部分是实际观测量的变化。
    • 微分控制作用是与偏差的变化速度成正比的,测量值的突然变化,微分控制作用十分猛烈。可以只对测量值(输出量)起微分作用,不要从误差中接,因为测量值一般是不会突然变化的。
  • 适合于给定指令频繁升降的场合,可以避免指令的改变导致超调过大,避免因为输入变动在输出上的跃变。微分先行由于微分部分只对测量值起作用所以可以消除设定值突变的影响,还可以引入低通滤波。

3.5 PID口诀

06 飞行控制器

3.6 数字(离散型)PID

06 飞行控制器


4 多旋翼飞行器控制系统

4.1 PX4控制系统方框图

06 飞行控制器

https://dev.px4.io/master/en/flight_stack/controller_diagrams.html 重要!

4.2 控制分配器(Mixer)

06 飞行控制器

  • 此时得到的转速最省能量

[注] https://dev.px4.io/master/en/concept/mixing.html#multirotor_mixer


5 非线性多旋翼飞行器姿态控制

5.1 Nonlinear Quadrocopter Attitude Control

  • 无奇异
  • 全局渐进稳定
  • 鲁棒
  • 求解速度快
  • PX4的姿态控制方案

06 飞行控制器

补充知识:关于稳定性

06 飞行控制器
06 飞行控制器

你的姿态无论在什么位置,都能收敛到期望的位置

鲁棒性

证明跳过,由于计算机控制系统是离散时间的,具有一定的滞后性,可以证明算法是鲁棒的。

3.2 期望姿态

期望姿态到四元素的映射

偏航角追踪是否真的有意义?

  • 不控制偏航角(Reduced attitude control)
  • 控制偏航角(Full attitude control)
  • 二者的结合(Mixed full and reduce attitude control)
  • 限制最大倾角

3.3 3.3 启发式(heuristic)算法

角度变化小,是否意味时间一定短? (直观:有一个方向的角速度)

  • 定性回答否,定量却难以计算
  • 主要针对偏航角,俯仰滚转意义不大
  • 定一个启发式条件

06 飞行控制器


6 PX4姿态控制代码讲解

src/modules/mc_att_control.main.cpp