公司动态

无人机纯方位无源定位与编队控制:非线性优化与协同算法解析

📅 2026/8/14 4:17:35
无人机纯方位无源定位与编队控制:非线性优化与协同算法解析
1. 赛题回顾与核心挑战解析2022年的高教社杯全国大学生数学建模竞赛简称“国赛”B题题目是“无人机遂行编队飞行中的纯方位无源定位”。这个题目一出来当时就在我们建模圈子里引起了不小的讨论。它不像一些纯数据处理的题目更像是一个从实际工程问题中抽象出来的、带有强烈物理背景和军事应用色彩的模型。简单来说就是给你一群无人机它们只知道彼此之间的方向角方位信息不知道距离然后要求你设计算法让它们能仅凭这些“纯方位”信息确定出自己在空间中的准确位置并最终形成一个稳定的编队。这题的难点非常突出。第一信息极度匮乏。传统的定位无论是GPS还是多基站测距距离信息是关键。而这里只有角度相当于你蒙着眼睛只靠听声音判断同伴在哪个方向但要你说出他离你具体多远这本身就极具挑战性。第二模型的高度非线性。方位角θ, φ与空间直角坐标x, y, z之间的关系是通过反三角函数arctan联系的这直接导致了观测方程是非线性的。处理非线性系统无论是状态估计还是优化求解复杂度都远高于线性系统。第三编队控制的耦合性。定位不是为了定位而定位最终目的是为了控制无人机飞到指定位置形成编队。这里就存在一个“鸡生蛋还是蛋生鸡”的问题准确的定位需要好的队形几何而好的队形又依赖于准确的定位。如何设计一个能同时处理“估计”定位和“控制”编队的协同算法是问题的核心。所以评价这个题目不能只看最后谁做出来了更要看解题团队是如何拆解这些核心挑战的。它考察的不仅仅是数学公式的推导能力更是将复杂工程问题转化为可计算模型并设计稳健求解策略的系统性思维。2. 主流解题思路的拆解与对比面对这样一个硬核题目当年各参赛队伍主要演化出了几条技术路径。我们可以把它们看作应对同一问题的不同“哲学”。2.1 思路一分步求解先定位后控制这是最直观、也最符合人类思维习惯的思路。既然问题分两步定位和编队那就先解决定位再解决控制。定位阶段核心是建立非线性方程组。对于第i架无人机它观测到第j架无人机的方位角俯仰和偏航可以写成关于两者坐标xi, yi, zi和xj, yj, zj的函数。所有无人机之间的观测就构成了一个庞大的非线性方程组系统。求解方法主要有非线性最小二乘法将定位问题转化为一个优化问题即寻找所有无人机的位置使得根据这些位置计算出的理论方位角与实际观测到的方位角之间的误差平方和最小。常用算法有Levenberg-MarquardtL-M算法它能较好地处理非线性最小二乘问题兼具梯度下降和高斯-牛顿法的优点对初始值比较鲁棒。极大似然估计在假设观测噪声服从高斯分布的前提下最大化观测数据的似然函数其形式与非线性最小二乘本质相同。控制阶段在获得估计出的无人机位置后设计控制律使其飞向编队目标位置。常用方法包括基于比例-积分-微分PID的控制、领航-跟随法指定一架或几架为领航者其余跟随其相对位置、或者基于一致性协议的控制让所有无人机的位置和速度趋于一致。注意这个思路的致命弱点在于“误差传递”。定位阶段的任何误差无论是算法收敛到局部最优解还是观测噪声被放大都会毫无保留地传递给控制阶段。控制算法再精巧也是基于错误的位置信息进行决策可能导致编队发散或振荡。这就好比用一把刻度不准的尺子去裁布无论裁缝手艺多好衣服也很难合身。2.2 思路二协同定位与控制的集成设计更高级的思路是打破“先定位后控制”的藩篱将两者视为一个整体进行协同设计。这类方法通常借助状态空间模型和现代控制理论。模型构建将每架无人机的状态位置、速度定义为状态变量将控制指令推力、姿态定义为输入将观测到的方位角定义为输出。这样整个无人机编队系统就可以用一个大型的、非线性的状态空间方程来描述。算法核心——扩展卡尔曼滤波EKF是处理非线性系统状态估计的经典工具。它的思想是在每一个时间步对非线性模型在当前估计值处进行一阶泰勒展开将其线性化然后应用标准卡尔曼滤波的预测和更新步骤。在B题场景下EKF可以同时完成两件事状态估计定位利用当前的方位角观测更新对所有无人机位置和速度的估计。最优控制结合估计出的状态和编队目标通过线性二次型调节器等设计控制律产生最优控制指令。优势EKF框架实现了定位与控制的闭环。控制动作会影响无人机状态进而影响后续的观测而更准确的观测又会改善状态估计从而产生更好的控制。这种反馈机制使得系统对噪声和初始误差有一定的抑制能力。2.3 思路三基于图优化与因子图的高级方法这是当时一些顶尖队伍可能尝试的、更为前沿的思路灵感来源于机器人领域的同步定位与地图构建。图模型表示将整个问题建模为一个图。图中的节点Node代表需要估计的无人机位姿位置和姿态边Edge代表约束。约束主要来自两类一是观测约束一架无人机观测到另一架产生的方位角测量二是控制约束无人机自身的运动模型。因子图优化因子图是表达这种联合概率估计问题的直观工具。每个约束对应一个因子Factor它定义了相关联的节点变量取某个值时该约束被满足的概率或代价。整个定位与编队问题就转化为寻找一组节点变量的值使得所有因子的联合概率最大或总代价最小。这通常通过高斯-牛顿法或列文伯格-马夸尔特法等非线性优化算法求解。优势与挑战图优化方法理论上非常强大能够一次性优化所有时刻的所有状态称为“全平滑”精度最高。但它计算量巨大对实时性要求高的编队控制可能构成挑战。在国赛有限的时间内完整实现并调试好一个因子图优化框架对参赛者的编程和理论功底都是极大的考验。3. 关键模型细节与算法实现中的“坑”无论选择哪条思路在具体实现时都会遇到几个共性的、也是决定成败的关键细节。3.1 观测模型的精确建立方位角如何用数学公式精确表示这是所有工作的基石。假设无人机i在位置p_i (x_i, y_i, z_i)观测到无人机j在位置p_j。那么从i指向j的向量是v_ij p_j - p_i。偏航角方位角α这是向量v_ij在水平面XY平面投影与正北方向通常取Y轴正方向的夹角。计算公式为α atan2(x_j - x_i, y_j - y_i)。这里必须使用atan2函数而非atan因为atan2能正确处理四个象限给出(-π, π]范围内的唯一角度。俯仰角β这是向量v_ij与水平面XY平面的夹角。计算公式为β arcsin((z_j - z_i) / ||v_ij||)其中||v_ij||是向量的模长即距离。坑点一奇异性。当两架无人机处于同一垂直线上时即x_i x_j且y_i y_j偏航角α的定义失效分母为零。在仿真或实际中需要加入微小扰动或设计逻辑处理这种极端情况。坑点二模长未知导致的非线性。注意俯仰角公式中包含了距离||v_ij||。这正是“纯方位无源”的核心困难我们观测到β但公式中却包含我们不知道的距离信息。这直接导致了观测方程关于位置坐标是非线性的。3.2 初始值的选取决定优化算法的生死非线性优化算法如L-M、EKF严重依赖于初始猜测值。一个糟糕的初值很可能导致算法收敛到错误的局部极小点甚至发散。随机初始化最简单但也最危险。在三维空间中随机给无人机分配初始坐标大概率会导致优化失败。基于距离的粗略估计虽然不知道精确距离但可以假设一个初始距离例如所有无人机初始都在一个半径为R的球面上。结合观测到的角度可以反算出一个粗略的初始坐标。这个估计即使误差很大也通常比完全随机要好因为它至少保持了无人机之间的相对几何关系。逐步初始化先选择两架无人机固定它们的相对位置例如设定距离为D根据它们相互观测的角度确定一条基线。然后以这两架为参考利用第三架无人机对前两架的观测通过三角测量初步确定第三架的位置以此类推逐步初始化整个编队。这种方法更稳健但实现稍复杂。个人心得在实际编程中我会先用一个简单的线性化方法比如忽略距离假设所有无人机都在单位距离上生成一套初始解作为“热身”。然后用这套解作为正式非线性优化的初值。同时一定要加入蒙特卡洛多次运行的策略用不同的随机种子生成多组初始值分别进行优化最后选择目标函数值重投影误差最小的那组结果作为最终解。这能极大提高找到全局最优解或一个足够好的局部最优解的概率。3.3 编队队形的描述与生成题目要求形成特定编队如锥形、圆形。如何用数学描述一个“队形”相对位置描述法这是最常用的方法。指定一个编队几何中心或领航无人机编号0的位置p_0。对于编队中其他任意无人机i定义它相对于中心或领航者的期望位置偏移d_i。那么它的目标位置就是p_0 d_i。d_i的集合就定义了整个队形。例如一个水平圆形编队若半径为R包含N架无人机则第i架i0,...,N-1的相对偏移可以是(R * cos(2πi/N), R * sin(2πi/N), 0)。基于图刚性的描述更理论化的方法是使用图刚性理论。将编队视为一个图期望的队形由图中特定边长的约束来定义例如“无人机1和2之间的距离应保持为10米”。控制的目标就是使实际距离收敛到这些期望值。这种方法更适用于只有相对距离测量的场景在纯方位问题中应用较少。实现细节在控制算法中我们需要计算当前位置到目标位置的误差。如果使用分步法这个误差直接就是(p_target - p_estimated)。如果使用EKF等集成方法目标位置会作为期望状态融入控制器设计中。这里的一个小技巧是在仿真开始时可以让编队中心p_0缓慢移动或保持静止观察无人机是否能从随机初始位置汇聚并保持队形这可以很好地测试控制算法的收敛性。4. 仿真验证与结果分析的艺术数学建模竞赛的论文光有模型和算法不够必须有令人信服的仿真实验和结果分析。对于B题仿真设计尤其重要。4.1 仿真环境搭建通常使用MATLAB或Python进行仿真。需要模拟的关键环节包括无人机动力学模型一个简化的二阶积分器模型通常就足够了即控制输入直接对应加速度。p u。更真实的模型可以考虑一阶动力学速度控制甚至加上简单的空气动力学效应但非必需。观测噪声模型方位角测量不可能完美。需要添加噪声最常用的是高斯白噪声。例如α_measured α_true w_α其中w_α ~ N(0, σ_α^2)。噪声标准差σ的大小直接决定了问题的难度。在结果分析中研究算法在不同噪声水平下的表现是必须的。控制周期与观测周期设定仿真的时间步长。控制周期和观测周期可以相同也可以不同例如控制频率高于观测频率。这会影响EKF等算法的设计。4.2 评价指标的设计如何定量评价你的算法好坏不能只说“形成了编队”。需要设计可量化的指标定位精度均方根误差。在所有时间步计算所有无人机估计位置与其真实位置在仿真中真实位置是已知的之间的欧氏距离的均方根值。RMSE_pos sqrt( mean( ||p_estimated - p_true||^2 ) )。编队收敛误差当系统稳定后计算无人机实际位置与期望编队位置之间的误差的均方根值。这衡量了控制性能。收敛时间从随机初始状态到编队误差稳定在某个阈值如5%的编队尺寸以内所需的时间。算法鲁棒性改变初始位置、改变观测噪声强度、甚至随机“丢失”部分无人机的观测数据模拟通信中断观察上述指标的变化。一个健壮的算法应该对这些扰动不敏感。4.3 可视化让结果自己说话在论文中一图胜千言。必须精心设计图表。三维轨迹图展示所有无人机从初始散乱状态逐渐汇聚并形成目标队形如锥形的完整三维运动轨迹。用不同颜色区分不同无人机用时间序列或箭头表示运动方向。误差收敛曲线绘制定位RMSE和编队误差随时间变化的曲线。曲线应平滑下降并最终趋于稳定值。可以在同一张图上用不同线型展示不同噪声水平下的曲线进行对比。队形保持动画如果可能在论文中附上关键帧截图甚至提供动画的链接如上传至视频网站。这能最直观地展示算法效果。敏感性分析图用柱状图或折线图展示定位精度、收敛时间等关键指标随噪声强度、无人机数量等参数变化的趋势。4.4 一份优秀的摘要应该包含什么对于B题摘要必须精炼地概括你的整体思路、模型亮点、关键算法和核心结果。第一句直击问题本质。“针对无人机纯方位无源定位与编队控制的强非线性、强耦合难题本文提出了……”思路概括用一两句话说明你是分步走还是协同设计用了什么核心模型如非线性最小二乘、EKF、因子图。创新点/亮点简要提及你解决关键难点的独特方法。例如“针对初始值敏感问题提出了基于序贯三角测量的鲁棒初始化策略”“为提升抗噪性能设计了基于渐消因子的自适应EKF”。核心结果给出最重要的量化指标。“仿真表明在方位角测量噪声标准差为3度的条件下最终定位精度达到0.15米编队形成时间小于30秒且对部分观测丢失具有鲁棒性。”最后总结方法的价值。“本文方法为解决仅有角度信息的协同定位与编队问题提供了一种有效方案。”5. 从解题者视角看赛题价值与备赛启示回过头看2022年国赛B题是一道非常经典的“好题”。它的“好”体现在以下几个方面问题背景前沿且实际源自多智能体协同、自主导航等前沿领域有明确的工程应用价值如无人机集群、水下机器人编队不是凭空捏造的数学游戏。模型层次丰富问题本身可以从浅入深地理解。新手可以尝试建立非线性方程组并用优化工具箱求解进阶者可以尝试实现EKF高手则可以挑战图优化等更现代的框架。不同水平的队伍都能找到切入点但深度天差地别。综合考察能力强它不仅仅考察数学几何、优化、概率论还考察控制理论、算法实现编程、仿真设计和结果分析是对学生综合科研素养的一次全面检验。区分度极高由于难点明确优秀的队伍可以通过在初始值处理、噪声抑制、控制耦合等细节上的精巧设计显著拉开与一般队伍的差距。对于后来者从这道题中可以汲取的备赛经验是夯实基础非线性最小二乘、卡尔曼滤波及其扩展形式、多智能体协同控制的基本原理必须了然于胸。不能只停留在知道名词要能推导、能编程实现。建立工具箱思维平时积累常用算法的代码模块如L-M算法、EKF的预测更新步骤、PID控制器等。比赛时可以直接调用或快速修改节省大量时间。重视仿真与可视化结果分析部分往往是论文的“门面”。熟练掌握MATLAB或Python的绘图功能尤其是三维动态轨迹的绘制。学会设计有说服力的对比实验和敏感性分析。培养系统思维不要孤立地看待问题中的各个部分。像B题必须思考定位误差如何影响控制控制动作又如何反作用于定位精度。建立整个系统的闭环思维模型是解决这类耦合问题的关键。这道题也反映了一个趋势数学建模竞赛越来越倾向于选择这种“硬核”的、跨学科的、带有明确应用背景的题目。它要求参赛者不仅要有扎实的数学功底还要具备一定的工程思维和解决复杂系统问题的能力。能够成功挑战此类题目的队伍其收获绝不仅仅是一张奖状更是一段接近真实科研过程的宝贵历练。