菜单

位置控制与姿态控制架构

下载

本文介绍PX4开源飞控中多旋翼无人机的控制框架
参考链接:https://docs.px4.io/main/en/flight_stack/controller_diagrams.html

  • PX4使用标准的串级控制架构(cascaded control)
  • 位置和姿态控制器是P和PID控制器的混合控制方式
  • 控制器的估计值(如当前位置、速度、姿态等)来自PX4内部的EKF2模块
  • 根据PX4飞行模式的不同,外部(位置)控制环路可能会被绕过。
??
PX4控制框图

位置环控制器

??
位置环控制框图
  • 通过参数MPC_XY_VEL_MAX来限制速度设定值(仅针对水平速度);
  • 但是需要区别MPC_XY_VEL_MAXMPC_XY_CRUISE (autonomous modes) 、MPC_VEL_MANUAL(manual position control mode)这两个参数;

速度环控制器

??
速度环控制框图
  • 速度环控制器用于速度追踪控制,输出指令为加速度设定值;
  • 加速度设定值不会进行限幅,而是通过后续的最大倾斜角度(maximum tilt angle)来进行限制;

加速度设定值->推力和姿态设定值的转换关系

  • 加速度设定值(setpoint)是速度控制器的输出;
  • 在计算相应的推力后进行推力饱和处理:
    • 计算所需的垂直推力(thrust_z
    • 通过参数MPC_THR_MAX来限制thrust_z
    • 通过参数(MPC_THR_MAX^2 - thrust_z^2)^0.5来限制thrust_xy
  • 实现细节可以在PositionControl.cppControlMath.cpp中找到。

角度环控制器

??
角度环控制框图
  • 角度环控制器是基于四元数编程的;
  • 控制器理论可以参考论文
  • 如果需要进行参数调节,那只需要调整P增益;
  • 输出给角速率环控制器的指令被经过一个限幅;

角速率环控制器

??
角速率环控制框图
  • 整体为K-PID控制器。有关参数调节的更多信息,请参阅速率控制器
  • K是一个整体增益调节参数;
  • 在积分环节中,有一个积分限幅,防止wind up现象;
  • 在微分环节中,加入了一个低通滤波器(LPF)来降低噪声;
  • 控制器最后有一个整体限幅(在控制分配模块中),通常为-1和1;
??
补充阅读:陀螺仪原始数据如何得到无人机角加速度
上一个
PX4系统架构
下一个
PX4仿真
最近修改: 2025-02-14