第二章 过渡飞行控制架构:飞控系统框图、模式切换逻辑、前向速度与俯仰角解耦
好,咱们进入正题。上一章聊了VTOL过渡飞行的物理本质,说白了就是飞机怎么从“直升机”变成“固定翼”。这一章,咱们得把控制架构理清楚。你想想看,没有清晰的架构,参数整定就是瞎调。
我个人习惯,在动代码之前,先画框图。脑子里没图,代码写出来也是乱的。咱们先看飞控系统框图,再聊模式切换逻辑,最后重点讲前向速度与俯仰角的解耦——这是过渡飞行控制里最容易被忽视、也最容易出问题的地方。
2.1 飞控系统框图:从传感器到执行器
先上一张我常用的飞控系统框图。这张图我在好几个项目里迭代过,基本能覆盖大多数VTOL构型。
核心思路:过渡飞行阶段,飞控同时处理多旋翼和固定翼两套控制律。不是简单的“切换”,而是“融合”。
这张图里,我特别想强调过渡融合模块。很多初学者以为过渡就是“悬停模式切到前飞模式”,其实不是。过渡阶段,多旋翼控制律和固定翼控制律是同时工作的,只是权重在变化。
我的经验:过渡融合模块里,权重α从1渐变到0(多旋翼权重下降,固定翼权重上升)。这个渐变过程,我一般用空速作为触发条件,而不是时间。为什么?因为风速变化会影响空速,用时间切容易出问题。
2.2 模式切换逻辑:状态机设计
模式切换逻辑,说白了就是飞控的“大脑”怎么决定当前该用哪套控制律。我见过不少炸机案例,都是模式切换逻辑没写好。
咱们看一个典型的状态机设计:
| 模式 | 触发条件 | 控制律 | 关键参数 |
|---|---|---|---|
| 悬停模式 | 空速 < 5 m/s | 多旋翼控制律 | 姿态角限幅 ±30° |
| 过渡模式 | 5 m/s ≤ 空速 ≤ 15 m/s | 融合控制律 | α 从 1 → 0 |
| 前飞模式 | 空速 > 15 m/s | 固定翼控制律 | 空速保持 PID |
这里要注意几个细节:
- 滞回区间:切换点要有滞回。比如悬停→过渡是5 m/s,过渡→悬停是4 m/s。避免在临界点来回跳。
- 超时保护:如果空速一直上不去,超过一定时间(比如10秒),强制切回悬停模式。我曾经遇到过逆风太大,飞机一直卡在过渡模式,差点失速。
- 手动干预:遥控器可以强制切换模式。但要注意,强制切换时要平滑过渡,不能直接跳变。
避坑指南:我曾经在一个项目里,模式切换逻辑只用了时间作为条件。结果那天风大,空速上不去,时间到了直接切到前飞模式,飞机瞬间低头俯冲。嗯,从那以后,我再也不敢只用时间做切换条件了。
2.3 前向速度与俯仰角解耦:核心难点
好,终于到了这一章的重点。前向速度与俯仰角解耦,这是过渡飞行控制里最微妙的地方。
你想想看,在悬停模式下,你要前向移动,靠的是俯仰倾斜。但在过渡模式下,飞机已经有了前向速度,这时候你再倾斜俯仰,前向速度的变化和俯仰角的变化是耦合的。
说白了,就是:
- 悬停时:俯仰角 → 前向加速度 → 前向速度
- 前飞时:俯仰角 → 升力矢量变化 → 高度变化 + 前向速度变化
这两个关系完全不同。如果在过渡阶段还用悬停的控制逻辑,飞机就会“点头”——一推杆就低头,一低头就掉高度,一掉高度就拉杆,一拉杆就抬头...恶性循环。
2.3.1 解耦思路
我的解耦思路是这样的:
- 前向速度环:用空速作为反馈,输出一个“期望前向加速度”。
- 俯仰角环:根据当前空速,把期望前向加速度映射到俯仰角指令。
- 补偿项:加入空速变化的前馈补偿。
具体来说,俯仰角指令的计算公式可以简化为:
// 伪代码:前向速度与俯仰角解耦
float pitch_cmd = 0;
// 1. 前向速度环 PID
float vel_error = target_airspeed - current_airspeed;
float accel_cmd = PID_velocity(vel_error);
// 2. 根据空速映射到俯仰角
// 低速时:俯仰角主要控制加速度
// 高速时:俯仰角主要控制升力方向
float k_pitch = fmap(current_airspeed, 5.0f, 15.0f, 0.5f, 0.1f);
pitch_cmd = accel_cmd * k_pitch;
// 3. 前馈补偿:空速变化率
float airspeed_rate = (current_airspeed - last_airspeed) / dt;
pitch_cmd += airspeed_rate * 0.2f; // 经验系数
// 4. 限幅
pitch_cmd = constrain(pitch_cmd, -30.0f, 30.0f);
这段代码看起来简单,但里面的系数整定起来很讲究。我一般先在仿真里调,再上真机。
关键点:k_pitch 这个映射系数,决定了前向速度环和俯仰角环的耦合程度。k_pitch 太大,飞机对速度误差反应过激,容易震荡;k_pitch 太小,速度响应太慢,过渡时间拉长。
2.3.2 实际整定步骤
我个人习惯的整定步骤:
- 先调悬停模式:确保姿态环和速度环在悬停时稳定。
- 固定 k_pitch 初始值:取中间值,比如 0.3。
- 做过渡飞行测试:观察空速响应曲线。
- 调整 k_pitch:如果空速超调大,减小 k_pitch;如果响应太慢,增大 k_pitch。
- 加入前馈补偿:如果空速变化率大,适当增加前馈系数。
这里有个小技巧:我一般会在日志里同时记录期望空速和实际空速,还有俯仰角指令。三条曲线放在一起看,问题一目了然。
我的经验:前馈补偿系数不要超过 0.3。我试过 0.5,结果空速一变化,俯仰角就剧烈抖动。后来发现,前馈补偿只是“辅助”,不能“主导”。
2.4 本章小结
这一章咱们聊了过渡飞行控制的架构。核心就三点:
- 飞控系统框图:传感器 → 状态估计 → 模式管理 → 控制律 → 过渡融合 → 执行器
- 模式切换逻辑:用空速做切换条件,加滞回和超时保护
- 前向速度与俯仰角解耦:用映射系数 k_pitch 和前馈补偿,把耦合关系解开
下一章,咱们会深入具体的参数整定方法。到时候我会拿实际飞行日志出来,手把手教你怎么调。嗯,今天就到这儿,你先消化消化这张框图。
记住:过渡飞行控制,不是“切换”,而是“融合”。理解了这个,参数整定就成功了一半。