2. 主旋翼控制原理:总距与周期变距控制
好,咱们进入正题。主旋翼的控制,说白了就是两件事:总距和周期变距。这两个词,你肯定听过无数遍了。但真正在飞控代码里怎么处理,很多人其实没想透。
我刚开始做无人直升机那会儿,也踩过坑。总距和周期变距看着简单,但调起来,嗯,真能把人逼疯。今天我就把这块掰开了讲,顺便聊聊我的一些经验。
2.1 总距控制:升力的“油门”
总距,英文叫 Collective Pitch。它控制的是所有桨叶的桨距角同时增大或减小。你想想看,桨距角大了,迎角就大,升力自然就上来了。所以总距就是直升机的“油门”。
但这里有个关键点:总距变化,不光影响升力,还影响扭矩。我在项目里就遇到过,总距一推,发动机转速直接往下掉。为什么?因为升力大了,反扭矩也大了,发动机得输出更多功率。所以总距控制必须和油门/转速控制联动,这叫“总距-油门协调”。
T = CT · ρ · A · (ΩR)²
其中 T 是主旋翼拉力,CT 是拉力系数(与总距正相关),ρ 是空气密度,A 是旋翼盘面积,Ω 是转速,R 是旋翼半径。
你看,拉力跟转速的平方成正比。所以转速不稳,拉力就别想稳。这也是为什么飞控里总距通道通常要加前馈补偿。
2.2 周期变距控制:姿态的“方向盘”
周期变距,Cyclic Pitch。它让每片桨叶在旋转一周的过程中,桨距角周期性变化。比如,桨叶转到前方时桨距角大,转到后方时桨距角小。这样就会产生一个力矩,让直升机向前倾斜。
我个人习惯把周期变距分成两个通道:横向(Roll)和纵向(Pitch)。横向控制左右倾斜,纵向控制前后俯仰。在飞控里,这两个通道通常是独立的 PID 控制器。
这里有个容易搞混的地方:周期变距产生的力矩,不光取决于桨距角的变化量,还取决于旋翼转速和前进比(空速与桨尖速度的比值)。悬停时和高速前飞时,同样的周期变距输入,效果差很多。我曾经在试飞时遇到过,悬停调好的参数,一飞起来就抖得不行。后来才发现是前进比的影响没考虑进去。
| 控制通道 | 物理效果 | 飞控对应 |
|---|---|---|
| 总距 | 垂直升力变化 | 高度/油门控制 |
| 横向周期变距 | 滚转力矩 | 横滚角控制 |
| 纵向周期变距 | 俯仰力矩 | 俯仰角控制 |
2.3 主旋翼拉力与力矩生成
主旋翼的拉力和力矩,不是凭空来的。它们来自桨叶上的气动力分布。每片桨叶在旋转时,相对气流速度是变化的——前行桨叶速度快,后行桨叶速度慢。这就导致升力分布不均匀。
为了补偿这种不均匀,我们用了周期变距。但即使这样,实际产生的拉力和力矩还是会有耦合。比如,你推总距,不光升力变大,还会产生一个额外的俯仰力矩。这就是所谓的“总距-周期变距耦合”。
在飞控设计里,我们通常用解耦矩阵来处理。说白了,就是预先算好每个输入对输出的影响,然后做补偿。我见过一些团队直接忽略这个耦合,结果飞机怎么调都调不稳。
2.4 主旋翼响应特性
主旋翼不是理想执行器。它有自己的动态特性。简单说,你给一个控制指令,它不会立刻响应,而是有个延迟和过渡过程。
这个特性可以用一阶或二阶系统来近似。比如,总距通道通常可以看作一阶惯性环节:
// 一阶惯性环节的离散化实现
// Tf 是时间常数,dt 是控制周期
float lowpass_filter(float input, float &last_output, float Tf, float dt) {
float alpha = dt / (Tf + dt);
float output = last_output + alpha * (input - last_output);
last_output = output;
return output;
}
时间常数 Tf 取决于旋翼的转动惯量、气动阻尼等。我测过一些直升机,悬停时总距通道的时间常数大概在 0.1~0.3 秒。周期变距通道更快一些,大概 0.05~0.15 秒。
为什么要关心这个?因为飞控的 PID 参数必须和这些时间常数匹配。如果控制器带宽太高,就会激发旋翼的未建模动态,导致振荡。如果带宽太低,响应又太慢,飞起来像“棉花糖”。
2.5 知识体系总览
下面这张图,是我自己总结的主旋翼控制知识框架。你可以把它当作本章的思维导图:
这张图把主旋翼控制的几个核心模块串起来了。总距和周期变距是输入,拉力和力矩是输出,中间还夹着响应特性这个“滤波器”。你设计飞控时,每个环节都得照顾到。
好了,这一章就到这里。主旋翼控制是直升机飞控的基石,理解透了,后面的尾桨协调控制才能顺理成章。下一章我们聊尾桨,那个又是另一番天地了。
公众号:蓝海资料掘金营,微信deep3321