目的和范围
本页面详细介绍了ArduCopter中多旋翼飞行器的控制系统架构。它涵盖了从位置指令到电机输出的级联控制回路,包括姿态控制、位置控制和电机混控。
有关各个飞行模式的实现方式和模式切换状态机的详细信息,请参阅“飞行模式和状态机”部分。有关适用于所有飞行器类型的一般姿态和位置控制概念,请参阅“姿态和位置控制”部分。有关自动 PID 参数整定的信息,请参阅“自动调谐系统”部分。
控制系统架构
该多旋翼控制系统采用级联控制架构,包含多个以不同速率运行的嵌套回路。每个外层回路为内层回路生成设定值,从而形成从高层位置指令到各个电机输出的层级结构。
级联控制回路层次结构

控制回路更新速率
| 环形 | 速度 | 目的 | 关键课程 |
|---|---|---|---|
| 位置控制 | 50赫兹 | 保持所需的三维位置 | AC_PosControl,,AC_WPNavAC_Loiter |
| 姿态控制 | 400赫兹 | 保持理想的态度和效率 | AC_AttitudeControl,AC_AttitudeControl_Multi |
| 速率控制 | 400赫兹 | 直接速率稳定(姿态内环) | 一部分AC_AttitudeControl |
| 电机输出 | 400赫兹 | 将控制信号转换为电机指令 | AP_Motors,AP_MotorsMulticopter |
姿态控制系统
姿态控制系统采用两级级联控制器来稳定飞行器的姿态(横滚、俯仰、偏航):外级为角度 P 控制器,内级为速率 PID 控制器。该架构已在AC_AttitudeControl及其多旋翼专用子类中实现AC_AttitudeControl_Multi。
姿态控制组件

角度控制器(外环)
角度控制器是一个简单的比例控制器,它将角度误差转换为所需的速率。它基于欧拉角(横滚角、俯仰角、偏航角)运行,频率为 400 Hz。
主要方法:
AC_AttitudeControl::input_euler_angle_roll_pitch_euler_rate_yaw()- 设置横滚/俯仰角度目标和偏航速率目标libraries/AC_AttitudeControl/AC_AttitudeControl.cpp400-500AC_AttitudeControl::attitude_controller_run_quat()- 主角度控制回路libraries/AC_AttitudeControl/AC_AttitudeControl.cpp700-900
控制器方程:
desired_rate = angle_P × (target_angle - current_angle)
参数:
ATC_ANG_RLL_P- 横滚角 P 增益(默认值:4.5)ATC_ANG_PIT_P- 俯仰角 P 增益(默认值:4.5)ATC_ANG_YAW_P- 偏航角 P 增益(默认值:4.5)
速率控制器(内环)
速率控制器是一种PID控制器,它将速率误差转换为电机指令。它基于机体坐标系下的角速率运行,并与角度控制器一起以400 Hz的频率运行。


746

被折叠的 条评论
为什么被折叠?



