# 2D四旋翼位置控制器如何输出姿态指令

> 原文链接：https://robotics.hellobike.com/pitfalls/2017-09-28-robotics-se-12584
> 频道：pitfalls | 更新日期：2017-09-28 | 标签：auto, stackexchange, quadcopter, pid
> 核心摘要：2D四旋翼应采用嵌套控制，位置控制器由位置误差生成总推力和期望方向，再由姿态控制器跟踪。

# 2D四旋翼位置控制器如何输出姿态指令

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[2D quadcopter simulation position controller and PD controller](https://robotics.stackexchange.com/questions/12584/2d-quadcopter-simulation-position-controller-and-pd-controller)（Robotics Stack Exchange #12584）

**状态**：已解决

## 问题

提问者在 Simulink 中已有接收滚转/俯仰指令并输出速度、位置的模型，想让四旋翼按 10x10 米方形轨迹飞行，但不清楚如何设计 PD 位置控制器以及它是否负责把期望位置、速度、加速度转换成滚转/俯仰命令。

## 环境

闭环运动控制器

## 解决办法

1. 使用嵌套控制：位置控制器生成总推力大小和期望方向，姿态/方向控制器负责跟踪该方向。
2. 在平面 `P-VTOL` 中不能同时输入滚转和俯仰；常用输入是总推力 `F` 与力矩 `τ`，或两个螺旋桨推力 `f1`、`f2`。
3. 注意系统欠驱动，不能同时控制 `y`、`z` 和方向；近悬停、非激烈机动通常给定两个位置轨迹。
4. 根据位置误差 `e_y`、`e_z` 确定总推力向量的期望方向，并将其送入方向控制器；总推力大小用误差的 PD 调节得到。

原问题作者：MoneyBall；采纳答案作者：N. Bamberg。原内容依 CC BY-SA 4.0 授权，本页摘要同样依 CC BY-SA 4.0 授权。
:::

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #12584：2D quadcopter simulation position controller and PD controller](https://robotics.stackexchange.com/questions/12584/2d-quadcopter-simulation-position-controller-and-pd-controller)