资讯动态

固定翼无人机着陆纵向控制:串级PID与增益调度实战

发布时间:2026/10/16 10:02:02 来源:尧图企业网站定制
简介这份资源面向固定翼无人机飞控方向的学习者与开发者聚焦着陆阶段的纵向控制问题适合具备一定MATLAB基础、希望深入理解着陆控制链路的中高级读者。包内共8个文件以4个m脚本、2个mdl与2个slx模型为主压缩包约70KB脚本承担纵向动力学建模与着陆路径规划Simulink模型则用于搭建和仿真完整控制回路。内容覆盖从纵向动力学参数建模、着陆轨迹生成到高度跟踪与PID控制器设计的完整流程可帮助读者理解如何用比例-积分-微分控制消除高度误差、优化下降过程的响应性能并借助Simulink完成系统集成与调试。目前已有2069人学习下载适合作为课程设计、课题研究或飞控入门实践的参考素材便于对照模型结构梳理控制策略与参数整定思路。1. 从一次着陆炸机说起固定翼纵向控制到底难在哪固定翼无人机的着陆阶段是整条飞行剖面里最容易出问题的环节。巡航时飞机有足够高度余量姿态波动几秒也不会出事但进近到拉平这段高度只剩几米空速接近失速边界任何纵向通道的迟滞或超调都可能直接拍地。我见过不少飞控调参的案例巡航稳得像钉在空中一到自动着陆就出现海豚跳或者拉飘根子往往不在姿态环而在纵向控制律对高度、速度、俯仰三者耦合的处理上。这套「固定翼无人机着陆纵向控制」方案就是围绕下滑道跟踪、拉平过渡和接地前姿态保持这三个核心场景给出从建模、控制律设计到仿真验证的完整链路。它适合正在做飞控方向毕设或课程设计的人也适合需要快速搭一套纵向控制验证框架的从业者。PID 是这套方案的基础骨架但真正决定着陆成败的是增益调度策略和拉平段的轨迹设计。2. 需求拆解与控制目标着陆纵向通道要盯住哪几个量2.1 着陆剖面的分段与纵向变量定义固定翼着陆的纵向运动通常按高度和飞行阶段切成三段下滑段、拉平段、接地段。下滑段从进场高度一般 30 到 50 米沿固定下滑角下降到拉平起始高度这个阶段的核心任务是跟踪下滑道同时把空速稳定在进近速度附近。拉平段从拉平起始高度到离地约 1 米俯仰角逐渐增大下降率被拉低到一个可接受的接地值。接地段则是最后几秒的姿态保持和油门收放。纵向通道需要盯住的量有四个高度 h、升降速度 ḣ、俯仰角 θ、空速 V。这四个量不是独立的俯仰角影响升力进而影响下降率油门影响推力进而影响空速而空速又反过来决定升力系数和失速边界。很多初学者把高度环和速度环分开调结果一耦合就发散原因就在这里。通常的做法是外环控高度和速度内环控俯仰角和俯仰角速率。外环的输出作为内环的俯仰角指令内环再通过升降舵执行。这个串级结构在着陆阶段尤其重要因为拉平段需要快速响应高度偏差单环 PID 根本来不及。2.2 控制目标量化把「稳」翻译成可验收的指标「稳」这个字在答辩时最容易被追问。合格的着陆纵向控制至少要把下面几个指标量化出来指标项典型要求说明下滑道跟踪误差小于 ±3 米下滑段稳态偏差拉平起始高度误差小于 ±1.5 米决定拉平时机接地下降率0.3 到 0.8 米每秒过大损伤起落架接地俯仰角3 到 8 度保证主轮先接地空速波动小于 ±2 米每秒进近速度附近拉平段超调小于 15%防止拉飘或二次接地这些数字不是拍脑袋来的它们对应着起落架强度、失速裕度和跑道长度约束。做毕设时把这些指标写进需求章节后面仿真曲线一贴验收逻辑就闭环了。2.3 为什么选 PID 而不是 LQR 或 MPCPID 在这个场景里不是最先进的选择但它是性价比最高的。LQR 需要精确的线性模型和全状态反馈而着陆阶段的气动参数随攻角和地面效应变化明显模型误差大。MPC 理论上能处理约束但机载算力有限实时求解 QP 问题在低成本飞控上跑不动。PID 结构简单、参数物理意义明确、增益调度容易实现配合前馈和滤波就能覆盖着陆剖面的需求。我一般会这样处理基准 PID 负责稳态跟踪前馈项补偿下滑道的恒定下降率增益调度负责拉平段的参数切换。这样既保留了 PID 的可解释性又补上了它在非线性段的短板。3. 纵向控制律设计串级 PID 加增益调度的具体实现3.1 串级结构外环高度速度、内环俯仰角速率纵向控制律的骨架是双回路串级。外环输入是高度偏差和速度偏差输出是俯仰角指令 θ_cmd内环输入是 θ_cmd 与实际俯仰角 θ 的偏差输出是升降舵偏转 δ_e。俯仰角速率 ḣ 作为内环的阻尼项抑制拉平段的振荡。外环高度通道的 PID 形式# 外环高度控制输入高度偏差输出俯仰角指令 # Kp_h, Ki_h, Kd_h 为高度环增益 # h_cmd 为目标高度h 为当前高度 # theta_trim 为配平俯仰角前馈项 def height_loop(h_cmd, h, h_dot, dt, integral_h): error_h h_cmd - h integral_h error_h * dt # 高度环输出俯仰角修正量 theta_correction Kp_h * error_h Ki_h * integral_h - Kd_h * h_dot # 叠加配平俯仰角和下滑道前馈 theta_cmd theta_trim theta_correction gamma_feedforward return theta_cmd, integral_h这段代码里h_dot直接作为阻尼项比用误差微分更干净因为高度微分在噪声环境下容易放大。gamma_feedforward是下滑道前馈等于下滑角对应的俯仰角增量它让外环不需要靠积分去追恒定下降率减小了稳态误差和积分饱和风险。内环俯仰角速率控制# 内环俯仰角控制输入俯仰角指令输出升降舵偏转 # Kp_theta, Ki_theta, Kd_theta 为俯仰环增益 def pitch_loop(theta_cmd, theta, q, dt, integral_theta): error_theta theta_cmd - theta integral_theta error_theta * dt # q 为俯仰角速率作为阻尼项 delta_e Kp_theta * error_theta Ki_theta * integral_theta - Kd_theta * q # 限幅保护防止舵面饱和 delta_e max(min(delta_e, delta_e_max), delta_e_min) return delta_e, integral_theta内环的q反馈是抑制拉平段振荡的关键。没有它俯仰角指令一变飞机容易过冲拉平段就会出现抬头过快然后掉高度的现象。delta_e_max和delta_e_min根据舵面物理限幅设定通常取 ±25 度。3.2 增益调度按高度和空速切换三组参数着陆剖面的气动特性变化大一组 PID 参数从下滑段用到接地段要么下滑段响应慢要么拉平段振荡。增益调度的思路是按高度和空速把整个剖面切成几个区间每个区间用不同的增益。我一般会设三个调度点下滑段高度大于 15 米增益偏小保证跟踪平滑Kp_h 取 0.08 到 0.12。拉平段高度 3 到 15 米增益增大Kp_h 取 0.15 到 0.22Kd_h 同步增大抑制振荡。接地段高度小于 3 米增益再调重点放在俯仰角保持Kp_theta 适当降低防止舵面频繁动作。调度方式用线性插值避免参数跳变引起控制量突变# 增益调度按高度线性插值 def schedule_gain(h, h1, h2, gain1, gain2): if h h1: return gain1 elif h h2: return gain2 else: ratio (h - h2) / (h1 - h2) return gain2 ratio * (gain1 - gain2)h1和h2是调度区间边界gain1和gain2是对应增益。插值比直接切换平滑仿真曲线不会出现台阶。3.3 拉平轨迹设计指数拉平与下降率约束拉平段是着陆纵向控制里最讲究的部分。拉平轨迹设计不好要么拉飘要么下降率过大。常用的拉平轨迹是指数形式# 指数拉平轨迹高度随时间指数衰减 # h_flare 为拉平起始高度tau 为时间常数 # h_dot_flare 为拉平段期望下降率 def flare_trajectory(t, h_flare, tau): h_cmd h_flare * math.exp(-t / tau) h_dot_cmd -h_flare / tau * math.exp(-t / tau) return h_cmd, h_dot_cmdtau的选取直接决定拉平快慢。tau太小拉平太急飞机抬头过快可能失速tau太大拉平太慢下降率压不下来。通常按接地下降率要求反推如果要求接地下降率 0.5 米每秒拉平起始高度 10 米那么tau大约取 20 秒。实际调参时我会先用这个估算值再根据仿真曲线微调。拉平段的俯仰角指令不能只靠高度环输出还要叠加一个拉平前馈让飞机主动抬头。前馈量按拉平轨迹的下降率变化率计算这样高度环的负担小跟踪更准。3.4 前馈与滤波补上 PID 的短板PID 在着陆场景有两个短板一是跟踪恒定下滑道时有稳态误差二是微分项对噪声敏感。前馈解决第一个滤波解决第二个。下滑道前馈直接根据下滑角计算# 下滑道前馈根据下滑角计算俯仰角前馈量 # gamma 为下滑角单位弧度 # V 为空速g 为重力加速度 def glide_slope_feedforward(gamma, V): # 下滑道对应的俯仰角前馈近似为下滑角加上攻角修正 theta_ff gamma alpha_trim return theta_ffalpha_trim是配平攻角随空速变化通常查表得到。前馈让外环积分项不需要积累太大就能跟上下滑道减少了积分饱和。微分项滤波用一阶低通# 一阶低通滤波抑制微分噪声 # alpha 为滤波系数dt 为采样周期 def low_pass_filter(raw, filtered, alpha): return alpha * raw (1 - alpha) * filteredalpha取 0.1 到 0.3 之间截止频率设在 2 到 5 赫兹。空速和高度信号里的高频噪声被压掉微分项不会把舵面抖得厉害。4. 仿真验证与参数整定从曲线里读出问题4.1 仿真环境搭建与模型配置验证纵向控制律通常用非线性六自由度模型做仿真。模型里至少要有气动力、力矩、发动机推力和大气环境。气动数据可以来自 DATCOM 或风洞数据毕设里用公开的类似机型数据做缩比也够用。仿真步长取 0.01 秒对应 100 赫兹控制频率。控制律每 0.02 秒执行一次即 50 赫兹和常见飞控的调度频率一致。初始条件设在下滑道入口高度 50 米空速 18 米每秒下滑角 -3 度。4.2 参数整定顺序先内环后外环先比例后积分整定顺序不能乱。先调内环俯仰角速率把 Kp_theta 从小到大加直到俯仰角阶跃响应上升时间在 0.5 秒左右超调小于 10%。然后加 Kd_theta 抑制超调再加 Ki_theta 消除稳态误差。内环调好后外环高度环的整定才有意义。外环先调 Kp_h让高度偏差能收敛但不振荡再加 Kd_h 抑制拉平段的振荡最后加 Ki_h 消除下滑道的稳态误差。速度通道类似但速度环的响应可以比高度环慢因为空速变化本身有惯性。整定过程中每次只改一个参数改完跑一次仿真记录曲线。我习惯把每次的参数和曲线截图存下来最后答辩时能展示整定过程比只放最终结果更有说服力。4.3 典型曲线分析下滑道跟踪与拉平段响应下滑道跟踪曲线看两个东西高度偏差和俯仰角。高度偏差在进入下滑道后 3 到 5 秒内应该收敛到 ±3 米以内俯仰角波动小于 2 度。如果高度偏差收敛慢说明 Kp_h 偏小或前馈不足如果俯仰角波动大说明 Kd_h 偏小或内环响应太快。拉平段曲线看下降率和俯仰角。下降率应该平滑地从下滑段的 1.5 米每秒降到接地的 0.5 米每秒中间不能有反弹。俯仰角逐渐增大到 5 度左右接地前保持稳定。如果下降率在拉平起始处出现尖峰说明拉平轨迹的tau太小或者增益调度切换太猛。接地段看俯仰角和升降舵。俯仰角保持在 3 到 8 度升降舵不饱和接地瞬间没有大的舵面动作。如果接地前俯仰角掉下来说明拉平前馈不足或者外环积分饱和。4.4 抗风与不确定性测试仿真不能只在无风条件下跑。加侧风和阵风看控制律能不能保持下滑道。通常加 5 米每秒的侧风和 2 米每秒的阵风高度偏差不应该超过 ±5 米。如果超了说明增益调度在扰动下不够鲁棒需要增大 Kd_h 或调整调度区间。气动参数拉偏测试也要做。把升力系数和俯仰力矩系数拉偏 ±20%看控制律还能不能稳定。如果拉偏后发散说明增益裕度不够需要降低 Kp_h 或增加内环阻尼。5. 避坑与常见问题着陆纵向控制里最容易翻车的五个点5.1 现象拉平段出现海豚跳高度和俯仰角交替振荡原因内环俯仰角速率反馈不足或者外环高度环的 Kd_h 太小拉平段的高度偏差被反复修正形成振荡。另一个常见原因是增益调度切换太猛参数跳变激励了振荡模态。解决先增大 Kd_theta让俯仰角速率反馈更强再增大 Kd_h抑制高度环的超调。如果还不行把增益调度的插值区间拉长让参数过渡更平滑。我一般会把调度区间从 3 到 15 米拉长到 2 到 20 米给参数变化更多缓冲。5.2 现象接地下降率过大起落架载荷超标原因拉平轨迹的tau太大拉平太慢或者拉平起始高度设得太低来不及把下降率拉下来。也有可能是外环高度环的积分饱和拉平段积分项还在积累导致俯仰角指令滞后。解决减小tau让拉平更快或者提高拉平起始高度。检查积分限幅确保拉平段积分项不会饱和。通常把积分限幅设在输出限幅的 30% 到 50%留出余量。5.3 现象下滑道跟踪有稳态误差高度总是差几米原因前馈量不准或者外环积分增益太小。下滑道前馈里的配平攻角如果和实际空速不匹配前馈就偏了积分项要慢慢补补的过程中就有稳态误差。解决重新标定配平攻角随空速的变化表确保前馈准确。适当增大 Ki_h但要注意积分饱和。我一般会先调前馈前馈准了积分项只需要补很小的残差稳态误差自然就小了。5.4 现象拉平段俯仰角抬头过快接近失速原因拉平前馈太大或者外环高度环的 Kp_h 太大拉平段高度偏差被放大成过大的俯仰角指令。空速在拉平段本来就在下降抬头过快会进一步降低空速逼近失速边界。解决减小拉平前馈或者给俯仰角指令加限幅限制最大抬头角。同时监控空速如果空速低于失速裕度自动减小俯仰角指令。通常把拉平段的最大俯仰角限制在 10 到 12 度留出失速裕度。5.5 现象仿真曲线漂亮实际飞行振荡原因仿真模型和实际飞机的气动参数有差距或者控制频率和仿真不一致。仿真里用的气动数据如果偏理想实际飞机的阻尼特性可能更差增益就偏大。解决在仿真里做参数拉偏测试把气动系数拉偏 ±20% 到 ±30%看控制律还能不能稳定。实际飞行前先用小增益试飞逐步加大。我一般会把仿真整定的增益打七折作为首飞参数试飞后再逐步加到仿真值。6. 验收与答辩怎么把纵向控制方案讲清楚验收和答辩的核心是让评审看到你的设计逻辑闭环。不要一上来就贴曲线先讲需求怎么来的再讲控制律为什么这么设计最后用曲线证明指标达标。答辩时我一般按这个顺序讲先说着陆剖面的分段和纵向变量让评审理解问题的复杂度再讲串级 PID 加增益调度的结构重点解释为什么外环输出俯仰角指令而不是直接输出舵面然后展示参数整定过程把每次调整的曲线对比放出来证明你不是随便凑的参数最后用抗风测试和参数拉偏测试证明鲁棒性。验收指标要对着需求章节的表格逐条过。下滑道跟踪误差、拉平起始高度误差、接地下降率、接地俯仰角、空速波动、拉平段超调每条都给出仿真曲线和统计值。如果某条没达标要解释原因和后续改进方向不要回避。答辩时最容易被问的三个问题一是为什么用 PID 不用其他控制方法二是增益调度的依据是什么三是拉平轨迹的时间常数怎么选的。这三个问题提前准备好答案基本就稳了。还有一个技巧把仿真动画或者三维轨迹图放出来比纯曲线直观得多。评审看到飞机沿着下滑道稳稳下来拉平段平滑过渡接地姿态正确对方案的信服度会高很多。从那以后我每次做控制方案都强制自己先把验收指标量化成表格再倒推控制律设计和参数整定。没有量化指标的方案答辩时就是玄学。希望这套固定翼着陆纵向控制的思路和实现细节能帮到你手里的毕设或课程设计。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑