无人机三轴稳定化控制(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)反馈,对飞机姿态进行实时调整。
相关推荐
mCell4 小时前
Lua 编程入门:从基础语法到元表
javascript·算法·lua
向哆哆5 小时前
无人机灾害场景人体目标检测数据集分享(适用于YOLO系列深度学习分类检测任务)
yolo·目标检测·无人机
haishikeji696_5 小时前
市域低空巡查平台架构|无人机管理系统、飞控管理平台、无人机巡检平台、无人机智慧巡查系统
架构·无人机·低空经济·无人机管理系统·飞控管理平台
wuyk5556 小时前
98.C语言易混难点:字符数组与字符串指针的底层差异
c语言·开发语言·c++·stm32·嵌入式硬件·算法
峥无6 小时前
从0到1手撕红黑树:封装实现 my_map 与 my_set(SGI-STL 源码级深度解析)
开发语言·c++·笔记·算法·stl
wp123_16 小时前
IPX8 防水 Type‑C连接器:安费诺 124018792112A 与 TONEVEE TY48087‑24A 技术梳理
c语言·开发语言
不会代码的小猴7 小时前
3. 控件学习1
开发语言·c++·笔记·qt·算法
203号居民8 小时前
LeetCode hot 100 —41. 缺失的第一个正数
数据结构·算法·leetcode
专注仿真11 小时前
问答大模型技术方案算法实现-熵权法融合算法 + 交叉编码器重排算法
人工智能·python·算法·语言模型·问答大模型关键算法·熵权融合算法·交叉编码器重排算法