第一章:过渡段控制架构总览
各位同学,大家好。我是你们的老朋友,一个在VTOL飞控领域摸爬滚打了十几年的工程师。今天咱们正式开始聊过渡段控制。
说实话,VTOL飞行器最难的地方在哪?不是悬停,也不是巡航。恰恰是那个“变”的过程——从多旋翼模式转到固定翼模式。这个阶段,飞机气动特性剧烈变化,控制难度陡增。我见过太多项目,悬停飞得稳稳的,巡航也OK,一到过渡就炸机。嗯,这里要注意,过渡段控制架构的设计,直接决定了整个飞控系统的成败。
1.1 为什么需要分层控制?
先问大家一个问题:一个飞控系统,如果所有逻辑都写在一个大循环里,会怎样?
我早年刚入行时,就干过这种“傻事”。把所有控制代码揉在一起,结果调试时改一个参数,整个系统行为都变了。说白了,耦合太严重。你想想看,姿态控制、位置控制、模式切换、舵面分配……这些东西的响应速度完全不同,硬塞在一起,谁也管不好。
分层控制的核心思想,就是“各司其职”。每一层只关心自己的事,把结果传给下一层。这样做的好处很明显:
- 解耦:改内环参数不影响外环逻辑
- 可复用:内环姿态控制器可以通用于悬停和巡航
- 易调试:哪层出问题,直接定位
我个人习惯:在项目初期,先把控制架构的层级图画出来。哪怕代码一行没写,架构清晰了,后面至少少走一半弯路。
1.2 内环与外环的设计思路
VTOL过渡段的控制,我习惯分成两层:
- 外环:负责位置、速度、轨迹跟踪。输出期望的姿态角或角速度。
- 内环:负责姿态稳定。接收外环的指令,输出舵面或电机控制量。
为什么这么分?因为外环的更新频率可以慢一些(比如50Hz),内环需要快(200Hz以上)。你想想看,飞机姿态稍微偏一点,如果不马上纠正,外环算得再准也没用。
我在项目中遇到过一个问题:外环输出期望俯仰角30度,内环直接去追。结果过渡段气动变化快,内环追不上,飞机直接抬头失速。后来我加了一个“限幅+前馈”的机制,才稳住。说白了,内环不仅要快,还要知道外环的意图。
避坑指南:我曾经在调试时,把内环带宽调得特别高,以为响应越快越好。结果舵机高频抖动,整个飞机都在颤。后来才明白,内环带宽要和外环匹配,不是越高越好。
1.3 模式切换逻辑
过渡段控制,模式切换是灵魂。常见的切换方式有三种:
| 切换方式 | 特点 | 适用场景 |
|---|---|---|
| 硬切换 | 瞬间切换控制律,简单粗暴 | 对平滑性要求不高的场景 |
| 软切换 | 通过权重函数逐渐过渡 | 大多数VTOL项目 |
| 状态机切换 | 基于飞行状态逐步推进 | 复杂过渡策略 |
我个人最常用的是软切换。举个例子,当空速达到某个阈值时,多旋翼的权重逐渐降低,固定翼的权重逐渐升高。这样飞机不会“咯噔”一下变过去,而是平滑过渡。
但这里有个坑:权重函数的设计。我曾经用线性函数,结果在中间点附近,两个模式的控制量互相抵消,飞机反而失控。后来改成S型曲线,才解决了这个问题。
注意:模式切换时,一定要考虑执行器的物理限制。比如舵机不能瞬间从0度打到30度,电机转速也有变化率限制。这些在切换逻辑里都要体现。
1.4 控制分配策略
控制分配,说白了就是把控制器算出来的力矩,分配到各个执行器上。VTOL过渡段最麻烦的地方在于:执行器种类多——有旋翼电机、有固定翼舵面、还有倾转机构。
分配策略我总结为三步:
- 计算总力矩需求:内环输出滚转、俯仰、偏航力矩
- 确定分配矩阵:根据当前模式,决定每个执行器的贡献
- 考虑约束:执行器饱和、速率限制、故障容错
举个例子,在过渡段初期,主要靠旋翼提供力矩,舵面只起辅助作用。随着空速增加,舵面效率提高,旋翼的贡献逐渐减小。这个分配矩阵,我通常用一个与空速相关的函数来动态调整。
// 伪代码示例:过渡段控制分配
float transition_weight = get_transition_weight(airspeed);
for (int i = 0; i < NUM_MOTORS; i++) {
motor_output[i] = (1 - transition_weight) * hover_mix[i];
}
for (int j = 0; j < NUM_SERVOS; j++) {
servo_output[j] = transition_weight * fw_mix[j];
}
这段代码看着简单,但实际项目中,分配矩阵的标定非常耗时。我记得有一次,因为旋翼和舵面的响应速度不匹配,导致飞机在过渡中段出现振荡。后来加了低通滤波和延迟补偿,才搞定。
核心要点:控制分配不是简单的数学计算,它要反映物理系统的真实特性。你分配得再好,执行器响应跟不上,也是白搭。
1.5 本章知识体系总览
为了让大家更直观地理解,我画了一张架构图。这张图我反复改过很多版,最终形成了这个结构:
这张图我建议你保存下来。每次调试过渡段时,对照着看,哪层出了问题,一目了然。
个人经验:我在做第一个VTOL项目时,就是靠这张图一步步排查问题的。有一次飞机在过渡中段突然偏航,我对照架构图,发现是模式切换逻辑里权重函数没处理好,导致偏航通道的控制量突变。改了之后,问题立刻解决。
好了,第一章的内容就到这里。过渡段控制架构是后面所有章节的基础。你把这个架构理解透了,后面讲具体算法时,就能知道每个模块在架构中的位置和作用。
公众号:蓝海资料掘金营,微信deep3321