2. 航向控制核心:偏航角、滚转角与航向的关系、PID控制基础、航向保持原理

各位同学,欢迎来到航向控制的核心章节。说实话,固定翼飞控里最让我着迷的就是航向控制——它不像四旋翼那么直接,但那种通过倾斜机身优雅转弯的感觉,才是飞行的精髓。今天我们就来拆解这个核心问题。

2.1 偏航角、滚转角与航向的关系

先问大家一个问题:固定翼飞机是怎么转弯的?

很多人第一反应是「打方向舵」。嗯,方向舵确实能产生偏航力矩,但光靠它转弯效率极低,而且会让飞机侧滑,像个醉汉一样飘忽不定。真正的固定翼转弯,靠的是滚转

这里有个关键公式,我建议你刻在脑子里:

航向角变化率 ≈ (重力加速度 × tan(滚转角)) / 空速

说白了:你滚转多少度,决定了航向变化有多快。

为什么会这样?因为当你让飞机滚转时,升力不再垂直向上,而是分解出一个水平分量。这个水平分量拉着飞机转弯。滚转角越大,水平分量越大,转弯就越急。

我在项目中遇到过一架飞翼布局的无人机,试飞时发现它转弯特别迟钝。排查了半天,发现是空速传感器读数偏大,导致飞控以为速度很快,于是给的滚转角偏小。你看,一个传感器误差,直接影响了整个航向控制的表现。

三者关系可以这样理解:

  • 偏航角:飞机机头指向与北向的夹角,也就是我们常说的「航向」
  • 滚转角:机翼绕机体纵轴的旋转角度,是控制航向的「手段」
  • 航向变化:滚转后升力水平分量带来的结果

记住一句话:固定翼不滚转,就别想好好转弯

2.2 PID控制基础

讲PID之前,我想先说说我的理解。PID这东西,说白了就是一个「纠错器」。你告诉它目标航向是多少,它看看当前航向差多少,然后算一算该给多大的控制量。

ArduPilot里航向控制的PID结构是这样的:

// 伪代码示意
error = target_yaw - current_yaw  // 航向误差
// 归一化到 [-180, 180]
if (error > 180) error -= 360;
if (error < -180) error += 360;

// PID计算
P_term = Kp * error
I_term += Ki * error * dt
D_term = Kd * (error - last_error) / dt

output = P_term + I_term + D_term

嗯,这里要注意一个坑:航向误差的归一化。如果不做这个处理,当目标航向是350度、当前是10度时,误差会算成340度,飞控会以为要转一大圈。实际上只差20度,往反方向转就行。我曾经因为这个bug,让飞机在天上画了个大圈才回到航向,场面一度很尴尬。

三个参数的作用,我用大白话解释一下:

参数 作用 调大后的效果
Kp(比例) 看到误差就猛打方向 响应快,但容易过头(超调)
Ki(积分) 长期偏航就慢慢加力 消除静差,但可能震荡
Kd(微分) 看到误差变化快就刹车 抑制震荡,但会放大噪声

我的调参习惯:先只给P,让飞机能大致跟上航向但不震荡。然后加一点点D,让响应更平滑。最后加I,消除侧风带来的稳态误差。千万别一上来三个参数全给,你会后悔的。

2.3 航向保持原理

航向保持,说白了就是让飞机沿着你设定的方向飞。但现实世界不完美——有风、有气流、有传感器噪声。航向保持的本质,就是跟这些干扰对着干。

ArduPilot的航向保持逻辑大致分三步:

  1. 计算期望滚转角:根据航向误差,通过PID算出应该滚多少度
  2. 限制滚转角:防止飞机滚转过度(一般限制在45度以内)
  3. 执行滚转:内环的滚转控制器去实现这个目标滚转角

这里有个重要的概念——内外环结构。外环是航向环,输出期望滚转角;内环是滚转环,执行滚转动作。外环慢、内环快,这样系统才稳定。

我画了一张图,帮你理解这个结构:

航向保持控制结构图 目标航向 航向PID (外环) 滚转PID (内环) 飞机 当前航向反馈

你看,目标航向和当前航向做差,误差进外环PID算出期望滚转角,再和内环的当前滚转角做差,最后驱动舵面。这个级联结构,是固定翼飞控的经典设计。

避坑指南:我曾经在调一架大翼展的滑翔机时,把外环的P给得太大。结果航向误差一出现,外环直接要求45度滚转,内环拼命执行,飞机在天上左右猛晃,差点失控。后来我把外环P减半,内环D加了一点,飞机才稳下来。

记住:外环要温柔,内环要果断

最后说说风的影响。有侧风时,飞机为了保持航向,会有一个偏流角——机头指向和实际航迹方向不一致。这时候航向保持PID里的积分项就派上用场了,它会慢慢累积一个偏置,让飞机始终带着一定的滚转角来对抗侧风。

嗯,航向控制的核心就这些。说白了就是:用滚转来转弯,用PID来纠偏,用内外环来分层。理解了这个,你就掌握了固定翼飞控的半壁江山。

本章要点速记:

  • 固定翼转弯靠滚转,不靠偏航
  • 航向变化率 = g * tan(滚转角) / 空速
  • PID三参数:P管响应、I管静差、D管震荡
  • 内外环结构:外环算滚转角,内环执行滚转
  • 积分项是抗侧风的关键

专注资料整理