本文深入剖析PX4固定翼飞控代码,重点解读内外环控制逻辑及起飞、航行、降落三个状态下的参数配置与控制细节,为开发者提供实用的参数调优参考。
智能速览
固定翼控制分为内环姿态控制与外环航迹控制。
起飞阶段涉及重量修正空速,需设置合理的爬升速度与高度缓冲。
航行阶段通过航点间线性插值计算高度指令,利用NPFG与TECS算法导引。
降落阶段建议禁用地面高度估计,通过时间参数控制拉飘过程。
精华内容
深入理解PX4源码是实现固定翼自主飞行的基础,特别是掌握起飞与降落阶段的参数含义与状态切换逻辑。
控制环路架构
固定翼飞行控制分为内外两环,内环负责姿态控制,输出舵面指令;外环负责航迹控制,包含速度、高度和航向误差处理。
外环控制主要涉及非线性路径跟踪导引(NPFG)和总能量控制(TECS)两个核心算法。
外环逻辑依据状态机进行切换,主要涵盖起飞、航行和降落三个核心状态,控制代码位于FixedwingPositionControl.cpp中。
起飞阶段控制
起飞阶段需关注最小空速的修正,公式中包含基于真实重量和滚转角的调整项,可通过设置WEIGHT_BASE为-1取消重量修正。
滑跑起飞状态机依次经历THROTTLE_RAMP、CLAMPED_TO_RUNWAY、CLIMBOUT至FLY状态。
关键参数RWTO_ROT_AIRSPD必须大于takeoff_airspeed,以确保飞机在达到特定速度后离地爬升。
航行与空速调整
航行阶段通过adapt_airspeed_setpoint函数动态调整空速指令,包括风速修正和地速保护。
若无风速传感器,当地速低于FW_GND_SPD_MIN时,系统会自动增加空速指令以保障安全。
高度指令在两航点之间通过线性插值生成,同时在航点接受半径范围内采用本航点高度参数,以确保过渡平滑。
降落进近逻辑
降落初始化阶段需确定进近高度和进近向量,可通过FW_LND_NUDGE参数启用落点或航向的手动纠偏。
建议将FW_LND_USETER设置为0以禁用地面高度估计,避免因传感器缺失导致的控制异常。
高度指令逻辑中,若当前高度低于投影点高度则保持当前高度,否则采用投影点高度。
拉飘触地策略
拉飘过程的本质是在一段时间内使下沉率和推力均降为零,防止着陆时速度过快或失速。
控制拉飘主要依赖FW_LND_FL_TIME(拉飘时间)和FW_LND_FLALT(拉飘高度)两个参数。
建议仅设置拉飘时间,避免因地面距离测量不准导致提前或推迟拉飘引发的着陆事故。
通过对PX4固定翼控制源码的细致拆解,明确了从起飞到降落全流程的控制逻辑与关键参数作用,能够有效帮助开发者规避常见配置错误,提升飞行安全性与稳定性。