小型固定翼无人机自主飞行:飞控架构、坐标系与控制闭环

简介:这份PDF是Randal W. Beard与Timothy W. McLain合著的英文教材,面向无人机飞控、导航制导与状态估计方向的高年级本科生、研究生及MAV开发工程师,帮助读者把小型无人机的理论推导与工程实践联系起来。包内仅1个PDF文件,约4.89MB,单本电子书便于检索、打印和离线阅读,已有309人学习。全书从系统架构与设计模型切入,依次讨论坐标系与旋转矩阵、运动学与刚体动力学、重力/气动/推进力与矩、线性设计模型,再延伸到串级闭环自驾仪设计、MAV传感器、状态估计与制导设计模型;各章配有设计项目,便于读者将运动方程、传递函数和控制器设计对应到实际飞控问题,形成从建模、估计到控制的完整知识框架。读者可据此搭建课程复习框架,也可在飞控算法实现时查阅关键公式与设计流程。

1. 小型无人机到底在“自动”什么:从一架会自己拐弯的纸飞机说起

小型无人机理论与实践,最容易让人误会的地方,是把“能飞”当成“会自己飞”。你手里拿遥控器让一架航模转弯,那是人在飞;小型固定翼无人机要沿着一条看不见的线走、在风里保持高度、自己从起点飞到目标点,靠的是一套闭环。它像蒙着眼睛骑自行车:传感器告诉它身体歪了多少,控制器决定往哪边打舵,舵面再改变力和力矩。搞懂这套逻辑,你再看“无人机”三个字,就不会只想到航拍,而会想到一连串坐标、速度和反馈。这份资料真正想讲的,也正是这条从物理到算法的链路。

2. 为什么小型无人机不能靠“手感”飞:系统架构与设计模型的由来

很多人第一次接触小型无人机,以为飞控就是“遥控器加舵机”。可固定翼一旦离地,风在变、速度在变、姿态也在变,人的反应速度根本追不上。你手里那根操纵杆,延迟半秒可能只是“手感迟钝”;到了空中,半秒足够让机翼从平稳巡航变成侧滑掉高。小型无人机要自己飞,就不能只靠飞手盯姿态,而要把“感知—决策—执行”拆成一层层能实时运转的模块。系统架构存在的理由,不是把简单问题复杂化,而是把一个人来不及做的判断,分给传感器、控制器和舵机去各司其职。

2.1 感知、决策、执行:三层架构像骑自行车

小型无人机的系统架构,最朴素的分法就是三块:感知器、控制器、执行器。感知器负责“我现在是什么状态”,比如姿态角、角速度、空速、高度、位置;控制器负责“我接下来该怎么修正”,比如副翼打多少、升降舵抬多少、油门加多少;执行器负责“把命令变成力和力矩”,也就是舵面偏转和电机或发动机推力。这个分法听起来像常识,但它解决了一个很实际的问题:每一层只处理自己擅长的事,层与层之间用明确的信号连接,出了问题才查得下去。

你可以把它想成骑自行车。眼睛和内耳负责感知车身歪没歪,大脑负责决定往哪边转把,手臂负责真的把车把转过去。没有眼睛,大脑不知道歪了;没有手臂,大脑想得再对也没用。小型无人机也一样,传感器有噪声、有延迟,控制器不能假设自己拿到的是“真值”;舵机有响应速度限制,控制器也不能给出它根本执行不了的指令。三层架构的价值,是让每一层都知道自己的边界,而不是把所有问题塞进一个“飞控黑匣子”里。

为什么小型无人机特别需要这种分层?因为它的载荷和算力都有限。小型固定翼的翼展大约在 5 到 10 英尺,载荷常常只有十几到几十磅;更小的微型飞行器翼展不到 5 英尺,载荷可能只有几盎司到几磅。传感器不能想装多少装多少,计算机也不能像地面服务器那样散热。分层之后,姿态控制这种高频任务可以放在靠近硬件的循环里跑,路径规划这种低频任务可以放在外层慢慢算。这样既省算力,也方便把不同模块分开验证。否则,一个模块改两行,整架飞机的行为都跟着变,调试起来就是血泪经验。

2.2 设计模型不是图纸:运动学、动力学与控制模型的分工

“设计模型”这四个字很容易被误解成画外形、选材料、定尺寸。外形当然重要,但在小型无人机的语境里,设计模型更像是一套数学描述:它要回答飞机在给定力和力矩下会怎么动,传感器会读到什么,控制器该根据什么做决定。资料里把设计模型拆成系统架构、运动学、动力学和控制系统几个方面,这个拆法不是学术分类癖,而是因为每一块回答的问题不一样。运动学描述“位置、速度、姿态之间怎么变”,动力学描述“力和力矩怎么造成这种变化”,控制系统则描述“我该怎么下指令,才能让它按我想要的方式变”。

为什么不能只靠一张图纸?因为图纸只能告诉你形状,不能告诉你飞起来稳不稳。两架外形相似的飞机,重心前后差一点,俯仰特性就可能完全不同;舵面面积差一点,滚转响应就可能从干脆变成拖泥带水。设计模型的意义,是让这些“差一点”在计算机里先暴露出来。你可以在模型里改重心、改舵面、改推力,看飞机是发散还是收敛,再决定要不要改结构。它像给飞机做一次不用摔机的试飞,虽然模型不会百分百准,但总比直接上天试错便宜。

模型还分层次。完整描述一架固定翼飞机的六自由度非线性模型很复杂,状态多、耦合强,直接拿它设计控制器并不方便。工程师通常会在配平点附近做线性化,得到传递函数模型或线性状态空间模型,再据此设计自动驾驶仪。这个做法不是偷懒,而是因为控制设计需要看清主要矛盾:短周期模态响应快,长周期模态响应慢,滚转和偏航又互相耦合。把非线性模型直接丢进控制器,像用一把没有刻度的尺子量东西;线性模型至少给了你一把局部有刻度的尺子。当然,线性模型只在配平点附近可信,飞得离配平点太远,它就会翻车。

2.3 为什么小型化会放大难题:载荷、续航与算力

小型无人机不是把大飞机按比例缩小那么简单。大飞机可以带大雷达、大计算机、大油箱,小型无人机不行。小型固定翼通常靠燃油飞行,续航可以到十小时量级,载荷十几到几十磅;微型飞行器靠电池,手抛起飞、腹部着陆,续航从二十来分钟到几个小时,载荷只有几盎司到几磅。载荷一小,传感器套件就得精简;传感器一精简,状态估计就更依赖模型和融合;算力一受限,控制循环就不能写得太重。这些限制会一层层往下传,最后变成飞控设计里的硬约束。

还有一个容易被忽略的点:小飞机对风更敏感。大飞机遇到一阵风,惯性大,姿态变化相对缓慢;小飞机质量小,同样的阵风可能让它明显偏航或掉高。风不是“背景噪声”,它会直接改变空速和地速的关系。固定翼靠空速产生升力,导航又看地速,风一吹,两者就分家了。小型无人机要在这种条件下沿直线飞、绕圆飞,控制器就不能只看位置误差,还要估计风、估计侧偏、估计滚转姿态。载荷小、算力少、风扰动大,这三件事叠在一起,才是小型无人机自主飞行的真正难点。

所以,系统架构和设计模型不是“先搭个架子再说”的前置工作,而是被小型化约束逼出来的选择。感知、决策、执行分层,是为了让有限算力跑得动;运动学、动力学、控制模型分工,是为了让设计者知道每个偏差该去哪里找原因;载荷、续航、算力约束,则决定了哪些方案听起来漂亮但根本装不上。理解这一层,再看后面的坐标系、力和力矩、线性模型,就不会觉得它们是孤立知识点,而会知道它们都在回答同一个问题:一架小飞机,怎么在风里自己稳住。

3. 坐标系与运动学:无人机怎么知道“我在哪、朝哪飞”

小型无人机最容易让人绕晕的地方,是“位置”这个词。任务层说“飞到那个点”,说的是地面上的经纬度;传感器说“加速度沿着机体轴”,说的是飞机自己的前后左右;气动老师说“升力垂直于气流”,又换了一套参考方向。三句话都没错,错的是把它们混在一套坐标里。坐标系不是为了增加难度,而是因为不同问题本来就在不同“尺子”上发生。搞不清尺子,速度、姿态、风的影响就会搅成一锅粥。

3.1 地球坐标系、机体坐标系、气流坐标系:三套尺子

地球坐标系也叫惯性坐标系,通常把地面当作不动,用来描述飞机相对地面的位置、速度和航向。机体坐标系固定在飞机身上,原点在重心,前向、右向、下向各有一根轴,传感器测量和舵面力矩大多在这套坐标里表达。气流坐标系则跟着相对风走,升力和阻力在这套坐标里最自然。三套坐标解决三类问题:任务在惯性系里下,传感器在机体系里读,气动力在气流系里算。你不必每次都从零推导,但必须知道当前这句话是在哪套坐标里说的。

| 坐标系 | 原点与轴 | 常见用途 | 容易搞错的地方 | | 地球/惯性坐标系 | 固定在地面,描述相对地面的位置和航向 | 航点、航线、地速 | 把机体轴当成了地面方向 | | 机体坐标系 | 固定在飞机重心,前向右向下 | 加速度计、陀螺仪、舵面力矩 | 忘了飞机姿态一变,轴也跟着转 | | 气流坐标系 | 跟着相对风方向 | 升力、阻力、空速 | 把空速方向当成了机头方向 |

三套坐标之间靠旋转矩阵转换。旋转矩阵听起来像线性代数作业,其实它就是“把同一根箭头,从一套尺子换到另一套尺子”的记账方式。比如机体前向速度是 10 米每秒,机头偏航 30 度,那这个速度在地面坐标系里的分量就不再是单纯的前向,而是会分到东向和北向。下面这段代码只演示偏航旋转,目的是让你看到“同一个速度,在不同坐标系里分量不同”,不是让你抄去飞真机。

import numpy as np def rot_z(psi): """绕竖轴旋转的旋转矩阵,psi 是偏航角,单位弧度""" c, s = np.cos(psi), np.sin(psi) return np.array([[c, -s, 0], [s, c, 0], [0, 0, 1]]) def body_to_inertial(v_body, psi): """把机体坐标系下的速度向量转换到惯性坐标系""" return rot_z(psi) @ v_body v_body = np.array([10.0, 0.0, 0.0]) # 机体前向速度 10 m/s psi = np.deg2rad(30) # 机头偏航 30 度 print(body_to_inertial(v_body, psi))

这段代码里,v_body是机体坐标系下的速度,单位米每秒;psi是偏航角,单位弧度;rot_z只包含绕竖轴的旋转,完整变换还要叠上滚转和俯仰。输出结果告诉你,机体前向 10 米每秒的速度,在地面坐标系里会分成两个分量。实际飞控里,旋转矩阵还要处理传感器安装偏差、姿态角顺序和单位统一。坐标系变换最怕单位不统一,角度用度、角速度用弧度、速度用节,最后一定会出错。

提示:坐标系变换先统一单位,再谈公式。角度、角速度、速度单位混用,是小型无人机调试里最常见的翻车点之一。

3.2 空速、风速、地速:风三角不是玄学

固定翼靠相对空气运动产生升力,所以它真正关心的是空速,也就是飞机相对空气的速度。导航关心的是地速,也就是飞机相对地面的速度。风则是空气相对地面的速度。三者构成一个三角形:地速等于空速加风速。这个关系听起来简单,但在实际飞行里非常关键。逆风飞,空速够但地速慢,航线进度会拖;顺风飞,地速快但空速可能不够,失速风险反而上升。小型无人机载荷小、速度低,风的影响会被放大,风三角不是玄学,是每天都要面对的现实。

为什么容易混?因为地面站上显示的位置变化,直观上就是地速;而飞控里用来判断升力的,又是空速。你看到飞机“明明在往前飞”,但那可能是风推着它走,机翼并没有获得足够空速。反过来,飞机顶着风原地不动,空速可能已经很高。小型无人机做直线跟踪时,控制器要同时处理“航线偏差”和“空速保持”,不能只盯着一个地速数字。风估计得不准,航线就会像喝醉一样左右摆;空速控制得不好,遇到阵风就可能掉高。

风三角还解释了一个常见困惑:为什么固定翼无人机转弯时不能像多旋翼那样说停就停。固定翼要保持空速才有升力,转弯需要压坡度,升力的水平分量提供向心力,垂直分量减小,所以要么带一点油门,要么接受轻微掉高。多旋翼可以悬停,固定翼不行。把空速、地速、风速分开看,你就能理解固定翼的很多“脾气”:它必须一直往前飞,必须在风里找相对空气的速度,必须用航向和坡度去换航线。它不是不想停,是物理上停不下来。

3.3 运动学与动力学:描述“怎么动”和“为什么动”

运动学研究位置、速度、姿态之间的几何关系,不追问“力从哪里来”。飞机以 10 米每秒向前飞,运动学只关心它一秒后位置怎么变、姿态角怎么转;它不管这 10 米每秒是发动机推出来的,还是从高处滑下来的。动力学则要问力和力矩:重力往下拉,升力往上托,推力往前推,阻力往后拽,舵面偏转产生力矩,力矩改变角速度,角速度再改变姿态。运动学是“怎么动”,动力学是“为什么动”。两者分开讲,不是因为它们无关,而是因为分开之后,每一块都能被单独验证。

这个区分在调试时特别有用。飞机航线跟不准,可能是运动学层面的航向计算错了,也可能是动力学层面的滚转响应太慢。你只改控制参数,不一定能解决问题;你先看姿态跟踪是否正常,再看航向是否收敛,最后看位置误差是否在缩小,才能定位到是哪一层出了偏差。运动学模型通常比较“干净”,因为它是几何关系;动力学模型会脏得多,因为气动力、推力、扰动都带非线性。小型无人机在配平点附近飞时,动力学可以线性化;一旦做大机动,非线性就藏不住了。

从工程角度看,运动学和动力学的关系像导航和驾驶。导航告诉你“应该朝哪走”,驾驶告诉你“车为什么能转过去”。导航算得再准,方向盘响应太慢也白搭;方向盘再灵,导航目标错了也到不了。小型无人机的自动驾驶仪,本质上就是让动力学响应跟得上运动学指令:制导层给出航向、高度、空速目标,控制层把这些目标翻译成舵面和油门,状态估计层再把传感器读数变成可用的姿态和速度。三层咬合,飞机才会沿着一条线稳稳地走。

4. 力、力矩与线性模型:为什么工程师总在“配平点”附近做文章

固定翼飞机能飞,不是因为它“有升力”这么一句口号,而是因为在一组特定速度和姿态下,升力、重力、推力、阻力刚好平衡,力矩也刚好抵消。这个平衡状态叫配平。配平点附近的飞机像站在斜坡上的一颗球,轻微扰动后还能回来;离配平点太远,非线性开始发威,舵面效率、失速特性、耦合响应都变了。工程师总在配平点附近做文章,不是保守,而是因为控制设计需要一个可分析的起点。没有这个起点,线性模型无从谈起,调参也只能靠猜。

4.1 四个力与三个力矩:升力、重力、推力、阻力

小型固定翼受到的力,最核心的是四个:重力向下,升力垂直于相对气流,推力沿发动机或电机方向,阻力与相对运动方向相反。重力大小由质量决定,方向永远向下;升力和阻力随空速、迎角、舵面偏转变化;推力随油门变化。飞机要平飞,升力得托住重力,推力得抵消阻力。飞机要爬升,不是“抬头就行”,而是推力、速度和姿态一起变。抬头太猛,空速掉下来,升力反而可能不够。很多新手以为拉杆就爬升,结果拉到失速,这就是只记住“力”没记住“力矩”的后果。

力矩有三个方向:滚转力矩绕机体纵轴,俯仰力矩绕横轴,偏航力矩绕竖轴。副翼主要产生滚转力矩,升降舵主要产生俯仰力矩,方向舵主要产生偏航力矩。力矩改变角速度,角速度改变姿态,姿态再改变力和速度。小型无人机的舵面小、惯性小,力矩响应快,但也更容易被阵风干扰。控制器要做的,不是“没有力矩”,而是“在需要的时候给出恰当的力矩,并在扰动后把姿态拉回来”。这就是为什么飞控里既有姿态环,又有角速率环:角速率环反应快,姿态环看得远。

大气扰动也要算进力和力矩里。阵风会改变相对气流,等于突然改变迎角和侧滑角;小型无人机质量小,同样的阵风造成的力矩变化更明显。飞控如果只按平静空气调参,遇到风就会频繁修正,航线像锯齿一样。好的设计会把风估计、空速测量和姿态控制放在一起考虑,而不是把风当成“玄学扰动”。风是物理量,只是它不在飞机身上,而在空气里。

4.2 配平与线性化:把非线性曲线掰直

配平就是找一组状态和操纵量,让合力为零、合力矩为零。对固定翼来说,配平条件通常包括:速度稳定、航迹角稳定、姿态角稳定、油门和舵面稳定。找到配平点之后,才能谈“小扰动”。线性化就是在配平点附近,把非线性的力和力矩曲线用一条直线近似。好比你看一条弯曲的山路,远处看是弯的,但截取其中一小段,它几乎就是直的。控制设计需要这条“局部直线”,因为线性工具能告诉你系统稳不稳、响应快不快、余量够不够。

为什么不能在全包线内用一个线性模型?因为飞机在不同速度、不同高度、不同重量下,配平点不一样,气动导数也不一样。低速时舵面效率低,高速时阻力大,大迎角时非线性强。线性模型只在配平点附近可信,飞得离它太远,模型预测就会偏。工程师会做多个配平点,或者用增益调度,让控制器在不同飞行条件下切换参数。小型无人机如果任务简单,可能只在巡航点附近设计;如果要做大机动或宽速度范围,就得多花功夫。

线性模型还有降阶的说法。完整六自由度模型状态多,但有些模态响应很慢,有些模态响应很快,控制设计时可以抓住主要模态。短周期模态主要影响俯仰快速响应,长周期模态影响速度和高度缓慢变化,滚转和偏航模态又各自有特点。把模型降阶,不是忽略物理,而是把注意力放在对任务影响最大的部分。就像你调自行车刹车,不会同时研究每一个螺丝的振动,而是先看刹车线和刹车皮。小型无人机控制也一样,先抓住姿态和航向,再处理更细的耦合。

4.3 自动驾驶仪的分层闭环:从姿态到航向

自动驾驶仪不是一个大控制器,而是一串嵌套的闭环。最内层通常是角速率环,读陀螺仪,快速抑制扰动;外面是姿态环,读姿态估计,控制滚转和俯仰;再外面是航向、高度、空速环,把任务目标翻译成姿态目标;最外层是制导和路径跟踪,决定飞机该沿着哪条直线或圆弧飞。层与层之间要有带宽分离:内环快,外环慢,否则两个环会互相打架。小型无人机算力有限,分层还能让高频任务跑在短周期里,低频任务跑在长周期里。

下面这段伪代码只表达 PID 的基本结构,不是完整飞控。setpoint是目标值,measured是测量值,dt是控制周期;输出是舵量或力矩指令。实际使用还要限幅、抗积分饱和、处理微分噪声,并且每个环的参数要分开调。小型无人机上,积分项饱和是很常见的坑:飞机长时间顶风飞行,积分越积越大,一旦风变小,飞机就会猛回头。抗积分饱和不是可选项,是必选项。

class PID: def __init__(self, kp, ki, kd, dt): self.kp, self.ki, self.kd = kp, ki, kd self.dt = dt self.integral = 0.0 self.prev_error = 0.0 def update(self, setpoint, measured): error = setpoint - measured self.integral += error * self.dt derivative = (error - self.prev_error) / self.dt self.prev_error = error return self.kp * error + self.ki * self.integral + self.kd * derivative

这段代码里,kp决定响应快慢,ki消除稳态误差,kd抑制超调;dt越小,控制越频繁,但对传感器噪声也越敏感。小型无人机上,角速率环的dt通常比航向环小得多,因为角速率变化快,航向变化慢。调参时先内后外,先让角速率环不振荡,再让姿态环跟得上,最后才调航向和高度。顺序反了,外环会把内环的振荡当成真实误差,越调越乱。这就是为什么自动驾驶仪要分层,而不是一个大 PID 包打天下。

5. 常见误区与易混概念:无人机不是“会飞的相机”

小型无人机这个词被用得太宽,导致很多概念混在一起。有人把航模叫无人机,有人把多旋翼的悬停当成固定翼也能做的事,有人把传感器读数直接当成姿态真值。概念一混,讨论就会变成鸡同鸭讲:一个人说“无人机要规划路径”,另一个人说“我推油门就飞了”。下面几条是初学者最容易踩坑的区分,每一条都按“易混点—为什么混—怎么区分”说清楚。搞清这些边界,再看资料里的系统架构、坐标系、动力学和状态估计,就不会觉得它们是互不相干的章节。

5.1 无人机 ≠ 航模:自动控制与遥控的分界

易混点是:两者都能飞,外形也像,为什么一个叫航模,一个叫无人机?容易混,是因为很多小型无人机平台确实由航模改装而来,机翼、机身、舵机看起来差不多。但分界不在外形,而在“谁在做闭环”。航模由飞手目视或第一视角遥控,飞手负责判断姿态、修正偏差;无人机则有飞控,传感器读姿态,控制器算舵量,制导层跟踪航线。飞手可以完全不碰操纵杆,飞机仍然能沿着航点飞。这个“自动”不是噱头,它意味着系统要自己处理传感器噪声、风扰动、舵面饱和和状态估计误差。

怎么区分?看三个东西:有没有状态估计,有没有闭环控制,有没有任务层制导。只有遥控接收机和舵机,没有姿态估计,那是航模;有陀螺仪增稳,但航向和高度仍靠人,那算增稳航模;能自己保持姿态、跟踪航线、处理返航,才更接近自主无人机。小型无人机理论与实践里讲的“自动”,不是让飞机自己决定一切,而是让底层闭环把人的操作负担接过去。人负责任务,飞机负责稳定和轨迹。这个边界不清,就会把“能飞”误当成“能自主飞”。

5.2 运动学 ≠ 动力学:一个管“怎么动”,一个管“为什么动”

易混点是:两个词都出现在“飞行动力学”这样的说法里,听起来像同一件事。容易混,是因为实际飞行中位置、速度、姿态和力同时变化,你很难把几何关系和力的关系切开。但运动学只描述几何:位置怎么随速度变,姿态怎么随角速度变;它不解释力从哪里来。动力学才解释力和力矩怎么造成加速度和角加速度。一个只告诉你“飞机一秒后到哪里”,另一个告诉你“飞机为什么能到那里”。两者分开,是为了让控制设计有层次:先看轨迹是否合理,再看姿态是否跟得上,最后看力和力矩是否够用。

怎么区分?问一句“这句话里有没有力和力矩”。说“飞机以 10 米每秒向前飞,5 秒后到达航点”,这是运动学;说“飞机要压 20 度坡度,升力的水平分量提供向心力”,这是动力学。调试时也一样:航线偏差大,先看制导和运动学;姿态跟不上,再看动力学和控制器。把运动学问题当动力学问题调,容易越调越复杂;把动力学问题当运动学问题改,航点换得再勤也没用。

5.3 坐标系 ≠ 地图坐标:机体轴和经纬度不是一回事

易混点是:两者都叫“坐标”,屏幕上又都能显示位置。容易混,是因为地面站把经纬度画在地图上,看起来就像飞机在“坐标”里飞。但地图坐标是位置的一种表达,坐标系是描述方向和分量的数学框架。机体坐标系固定在飞机身上,飞机一转,轴也跟着转;地球坐标系固定在地面,用来描述航线;气流坐标系跟着相对风,用来算升力阻力。说“飞机在机体坐标系里的位置”其实很别扭,因为机体坐标系原点就在飞机重心上;更常见的说法是“速度在机体坐标系里的分量”。

怎么区分?看这句话在描述“位置”还是“方向分量”。经纬度、航点、地图上的点,是位置表达;前向速度、右向速度、下向速度,是机体坐标系里的分量;空速方向、迎角、侧滑角,是气流坐标系里的量。坐标变换不是把经纬度换成另一个经纬度,而是把同一根矢量从一套轴换到另一套轴。小型无人机上,传感器装在机体上,任务在惯性系里下,气动力在气流系里算,所以变换必须频繁做。单位、角度顺序、安装偏差,任何一个错了,后面全错。

5.4 路径规划 ≠ 轨迹跟踪:想走哪条路和走得稳不稳

易混点是:两个词都跟“航线”有关,软件里又常常挨着放。容易混,是因为用户看到的是“飞机沿着一条线飞”,很难分清这条线是规划出来的,还是控制出来的。路径规划负责“该走哪条路”:从起点到目标点,绕开障碍,生成航点或曲线;轨迹跟踪负责“怎么贴着这条路走”:制导律给出航向或侧偏指令,控制律让飞机实际响应。规划错了,飞机可能绕远路;跟踪错了,飞机可能在这条路上左右摆。两者都会让航线看起来不对,但原因完全不同。

怎么区分?看输出。路径规划的输出是几何路径,比如一串航点、直线段、圆弧段、转弯半径;轨迹跟踪的输出是姿态、航向、高度、空速指令。路径规划关心可飞性,比如固定翼不能原地掉头,转弯半径不能太小;轨迹跟踪关心稳定性,比如风来了怎么修正、侧偏怎么收敛。小型无人机做长距离巡检时,先规划一条省电的路线,再让制导层一段一段跟;如果跟踪层不行,规划再漂亮也飞得歪歪扭扭。反过来,规划层给了一个不可飞的急转弯,跟踪层再努力也会超调。

5.5 状态估计 ≠ 传感器读数:黑匣子里的融合

易混点是:传感器明明有数据,为什么还要“估计”?容易混,是因为加速度计、陀螺仪、气压计、数字罗盘、卫星定位接收机都能直接输出数字,看起来已经是状态了。但传感器有噪声、有漂移、有延迟,还有安装误差。陀螺仪测角速度,积分得到角度会漂;加速度计测比力,振动一大就噪声满天;气压计测高度,受天气和气流影响;卫星定位接收机测位置,更新频率又不一定够。状态估计要做的是把这些不完美的读数,结合飞机动力学模型,融合成更可信的姿态、速度、位置和风估计。

怎么区分?看输出是不是“直接测量”。陀螺仪输出角速度,这是测量;姿态角是估计,因为它是积分和融合出来的。卫星定位输出位置,这是测量;地速和航向可能是融合结果。状态估计不是“多加一层软件”,而是把传感器的短板补上。小型无人机载荷有限,传感器便宜,噪声和漂移更明显,状态估计的重要性反而更高。卡尔曼滤波这类方法之所以常见,是因为它能在模型预测和传感器测量之间做加权:模型可信时多信模型,测量可信时多信测量。调不好,姿态就会抖;调得太保守,响应又会慢。状态估计是飞控里的黑匣子,外面只看到姿态角,里面其实一直在做权衡。

6. 什么时候该用这套理论,什么时候别硬套:一个巡检场景的边界判断

这套理论最适合的场景,是小型固定翼在开阔空域做长距离、相对平稳的飞行任务。比如农田巡检、河道巡查、大面积测绘、灾后快速评估,飞机需要沿直线或圆弧稳定飞行,需要估计风、保持空速、跟踪航线,还需要在起降段处理姿态和高度。这些任务里,配平、线性化、状态估计、制导和路径跟踪都不是纸面概念,而是每天都会用到的工具。小型固定翼的续航和巡航效率比多旋翼高,载荷虽然有限,但装一套轻量传感器做巡检足够。此时把系统架构分层、把坐标系统一、把控制环调稳,收益很直接。

反过来,有些场景硬套这套理论就会别扭。室内狭窄空间、需要长时间悬停、近距离定点拍摄、复杂障碍物之间穿行,这些任务更适合多旋翼或微型平台。固定翼不能悬停,转弯需要半径,低速时舵面效率下降,风一大就更难稳定。你拿固定翼的配平模型去设计室内悬停控制器,不是理论错了,而是对象选错了。还有一种情况是任务非常短、预算非常低、操作者就在视距内手动飞,这时上全套状态估计和路径规划,成本可能比收益高。理论是工具,不是信仰。

| 场景 | 更适合的构型 | 理由 | 这套理论的使用程度 | | 大面积农田巡检 | 小型固定翼 | 巡航效率高、覆盖广 | 高:配平、状态估计、路径跟踪都用得上 | | 室内狭窄空间 | 多旋翼或微型平台 | 可悬停、低速灵活 | 低:固定翼模型不适用 | | 长距离河道巡查 | 小型固定翼 | 续航长、航线稳定 | 高:风估计和直线跟踪是关键 | | 近距离定点拍摄 | 多旋翼 | 悬停稳定、操作直接 | 低:重点在云台和低速控制 |

判断边界时,我习惯先问三个问题:任务是长航时巡航还是近距离悬停?空域是开阔还是狭窄?团队有没有能力做状态估计和闭环调试?如果三个答案都指向固定翼巡航,那这份资料里的系统架构、坐标框架、运动学动力学、线性模型、自动驾驶、状态估计、制导与路径规划,能串成一条完整的链路,适合放在手边当参照。如果答案指向悬停或室内,硬搬固定翼那套配平和小扰动线性化,只会增加不必要的复杂度。从那以后我每次拿到一个无人机项目,都先问这三个问题,再决定要不要把整套方法搬上去。希望帮到你。

本文还有配套的精品资源,点击获取