无人机三轴稳定化控制(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)反馈,对飞机姿态进行实时调整。
相关推荐
二进制person6 分钟前
Java SE--方法的使用
java·开发语言·算法
OneQ66632 分钟前
C++讲解---创建日期类
开发语言·c++·算法
JoJo_Way39 分钟前
LeetCode三数之和-js题解
javascript·算法·leetcode
码农不惑1 小时前
2025.06.27-14.44 C语言开发:Onvif(二)
c语言·开发语言
.30-06Springfield1 小时前
人工智能概念之七:集成学习思想(Bagging、Boosting、Stacking)
人工智能·算法·机器学习·集成学习
星辰pid1 小时前
STM32控制四自由度机械臂(SG90舵机)(硬件篇)(简单易复刻)
stm32·单片机·嵌入式硬件·机械臂
威桑2 小时前
STM32 专有名词缩写整合
stm32·单片机·嵌入式硬件
凌肖战3 小时前
力扣网C语言编程题:在数组中查找目标值位置之二分查找法
c语言·算法·leetcode
星源~3 小时前
tree 命令集成到 Git Bash:可视化目录结构的指南
git·单片机·物联网·嵌入式·项目开发
BreezeJuvenile3 小时前
数据结构与算法分析课设:一元多项式求值
c语言·课程设计·数据结构与算法分析·一元多项式计算