无人机三轴稳定化控制(1)____飞机的稳定控制逻辑

这段代码是飞行控制系统(固定翼)中Mode的类的成员函数run(),主要实现飞机的稳定控制逻辑。

cpp 复制代码
void Mode::run()
{
    // Direct stick mixing functionality has been removed, so as not to remove all stick mixing from the user completely
    // the old direct option is now used to enable fbw mixing, this is easier than doing a param conversion.
    if ((plane.g.stick_mixing == StickMixing::FBW) || (plane.g.stick_mixing == StickMixing::DIRECT_REMOVED)) {
        plane.stabilize_stick_mixing_fbw();
    }
    plane.stabilize_roll();
    plane.stabilize_pitch();
    plane.stabilize_yaw();
}

以下是分步解析:

---1. 注释部分

cpp 复制代码
// Direct stick mixing functionality has been removed, so as not to remove all stick mixing from the user completely// the old direct option is now used to enable fbw mixing, this is easier than doing a param conversion.
  • 翻译:移除了直接杆混功能,但为了不完全剥夺用户的杆混能力,旧的直接选项现在被用来启用飞控混合(FBW)功能,这比参数转换更简单。

背景说明:- 杆混功能(Stick Mixing)是指直接将油门/副翼/升降舵等操纵杆输入直接映射到执行器(如电机、舵机)。- 飞控混合(FBW, Fly-By-Wire)是通过飞控算法对杆混输入进行运算后输出到执行器,提升操控性和安全性。- 注释表示旧的DIRECT选项被重新定义为启用FBW功能,而非完全移除。

---2. 条件判断:启用FBW混合

cpp 复制代码
if ((plane.g.stick_mixing == StickMixing::FBW) ||     (plane.g.stick_mixing == StickMixing::DIRECT_REMOVED)) {    plane.stabilize_stick_mixing_fbw();}
  • 功能:当飞行模式满足以下条件之一时,执行FBW混合逻辑:
  1. 用户设置为StickMixing::FBW(显式启用飞控混合)
  2. 用户设置为StickMixing::DIRECT_REMOVED(原直接杆混选项,已被重新定义)- 核心操作:调用plane.stabilize_stick_mixing_fbw(),对操纵杆输入进行飞控算法处理(如姿态解算、PID控制等)。

---3. 三轴稳定化控制

cpp 复制代码
plane.stabilize_roll();    // 滚转轴稳定化plane.stabilize_pitch();   // 俯仰轴稳定化plane.stabilize_yaw();     // 偏航轴稳定化
  • 功能:无论条件是否满足,都会对飞机的三个主要运动轴进行稳定化处理:
  1. 滚转轴(Roll):控制飞机绕纵轴的旋转(如左右倾斜)。
  2. 俯仰轴(Pitch):控制飞机绕横轴的旋转(如抬头/低头)。
  3. 偏航轴(Yaw):控制飞机绕垂直轴的旋转(如航向转向)。

---代码逻辑总结

  1. FBW混合逻辑:仅在特定模式(FBW或旧的DIRECT选项)下启用,对杆混输入进行飞控算法处理。
  2. 三轴稳定化:无论模式如何,都会执行滚转、俯仰和偏航的稳定控制。实际应用场景这段代码可能属于开源飞控系统(如APM、PX4),用于实现:- 手动模式下的姿态稳定(如ACRO模式)- 半自动模式中的辅助控制(如FBW模式)- 飞行安全的底层保障(防止快速滚转/俯仰导致失速)

---注:关键术语解释

  1. Stick Mixing(杆混):将操纵杆输入直接映射到执行器(如电机、舵机)。
  2. . FBW(Fly-By-Wire):通过飞控算法对杆混输入进行运算后输出,提升操控性。
  3. 三轴稳定化:通过传感器(如IMU)反馈,对飞机姿态进行实时调整。
相关推荐
朱嘉鼎1 小时前
C语言之可变参函数
c语言·开发语言
Han.miracle3 小时前
数据结构——二叉树的从前序与中序遍历序列构造二叉树
java·数据结构·学习·算法·leetcode
mit6.8245 小时前
前后缀分解
算法
你好,我叫C小白5 小时前
C语言 循环结构(1)
c语言·开发语言·算法·while·do...while
朱嘉鼎7 小时前
状态机的介绍
c语言·单片机
清风6666668 小时前
基于单片机的噪声波形检测与分贝测量仪设计
单片机·嵌入式硬件·毕业设计·课程设计
寂静山林8 小时前
UVa 10228 A Star not a Tree?
算法
Neverfadeaway8 小时前
【C语言】深入理解函数指针数组应用(4)
c语言·开发语言·算法·回调函数·转移表·c语言实现计算器
一碗绿豆汤8 小时前
c语言-流程控制语句
c语言
易享电子9 小时前
基于单片机车窗环境监测控制系统Proteus仿真(含全部资料)
单片机·嵌入式硬件·fpga开发·51单片机·proteus