1. 固定翼飞行基础
各位同学好,我是你们这门课的老朋友。今天咱们从最基础的东西聊起——固定翼到底是怎么飞起来的?坐标系怎么定义?还有那些让人眼花缭乱的飞行模式,到底该怎么选?
说实话,我刚开始接触固定翼的时候,也踩过不少坑。有一次试飞,飞机刚离地就开始剧烈滚转,我愣是没反应过来是副翼反向的问题。嗯,从那以后,我再也不敢跳过基础原理了。
1.1 固定翼空气动力学原理
固定翼能飞,核心就四个字:升力大于重力。但升力怎么来的?说白了,就是机翼上下表面气流速度不同,导致压力差。
你想想看,机翼上表面是弧形的,下表面相对平直。气流经过上表面时,路程更长,速度更快,压力就低;下表面速度慢,压力高。这个压力差,就是升力。
升力公式(简化版):
L = 0.5 * ρ * V² * S * CL
其中:
- ρ — 空气密度(海拔越高越小)
- V — 空速(不是地速!)
- S — 机翼面积
- CL — 升力系数(跟迎角有关)
我在项目中遇到过一架飞翼布局的飞机,低速时总是掉高度。后来发现是CL系数没算对,迎角大了反而失速。所以啊,升力系数不是越大越好,有个临界点。
个人经验:调试时多关注空速,而不是地速。逆风飞行时地速可能很低,但只要空速够,飞机就不会掉下来。我见过太多新手盯着GPS速度看,结果失速炸机。
除了升力,还有阻力。阻力分两种:
- 诱导阻力 — 产生升力时必然伴随的阻力,迎角越大越明显
- 寄生阻力 — 机身、起落架、天线等非升力部件产生的阻力
固定翼巡航时,我们希望总阻力最小。这个点对应的空速,就是最佳续航空速。ArduPilot里有个参数叫 ARSPD_FBW_MIN,就是用来限制最低空速的,防止你飞得太慢掉下来。
1.2 固定翼坐标系定义
搞飞控,坐标系必须搞清楚。ArduPilot里主要用两种坐标系:
机体坐标系(Body Frame)
原点在飞机重心,三个轴:
- X轴 — 指向机头(滚转轴)
- Y轴 — 指向右翼(俯仰轴)
- Z轴 — 指向机腹(偏航轴)
这个坐标系是跟着飞机动的。你坐在驾驶舱里,往前看就是X轴正方向,往右看就是Y轴正方向。
导航坐标系(NED Frame)
原点在地面某点,三个轴:
- N轴 — 指向北
- E轴 — 指向东
- D轴 — 指向地心(向下为正)
为什么D轴向下为正?因为GPS高度是海拔,而飞控需要知道离地高度。向下为正,计算起来更方便。
注意:坐标系转换是飞控里最容易出bug的地方。我曾经有一次把欧拉角转换顺序搞反了,结果飞机在空中画了个8字,差点撞树。后来我习惯在代码里加断言检查,确保转换矩阵的行列式为1。
ArduPilot里坐标系转换的核心代码在 AP_AHRS 库中。简单说,就是把机体坐标系下的加速度、角速度,转换到导航坐标系下,才能计算位置和速度。
1.3 固定翼飞行模式概述
ArduPilot的飞行模式,说白了就是不同级别的自动驾驶。我按「人工干预程度」从高到低给你捋一遍:
| 模式名称 | 控制方式 | 典型用途 |
|---|---|---|
| MANUAL | 完全手动,无增稳 | 特技飞行、调试 |
| STABILIZE | 手动+姿态增稳 | 日常飞行、新手练习 |
| FBWA | 角度控制,自动配平 | 巡航、航拍 |
| FBWB | 高度+空速保持 | 长航时巡航 |
| AUTO | 全自动航线飞行 | 测绘、巡检 |
| RTL | 自动返航 | 紧急情况 |
| LOITER | 定点盘旋 | 等待指令、观察 |
我个人习惯,新手先用STABILIZE模式练手。这个模式下,飞控会帮你把飞机姿态稳住,你只需要给个角度指令就行。等熟练了,再切到MANUAL模式感受纯手动。
避坑指南:我曾经在AUTO模式下测试航线,结果飞机飞到航点后开始绕圈,就是不往下个点飞。后来发现是航点半径参数 WP_RADIUS 设得太大了。记住,这个参数决定了飞机「认为到达航点」的距离阈值。
还有一个模式叫 CIRCLE,就是让飞机绕着一个点转圈。这个模式在风场补偿测试中特别有用——你可以观察飞机在恒定风速下的偏航角变化。
嗯,这里要注意:不同模式对舵面的控制逻辑完全不同。比如MANUAL模式下,摇杆直接控制舵面偏转角;而FBWA模式下,摇杆控制的是目标姿态角。飞控内部会通过PID计算出需要的舵面偏角。
最后说一句,飞行模式的选择,取决于你的任务需求和当前环境。大风天就别用MANUAL了,让飞控帮你分担一些压力。
公众号:蓝海资料掘金营,微信deep3321