资讯详情

纯方位无源定位:三圆共点原理与MATLAB实现

📅 2026/10/17 19:58:35 | 华诺云谱 👁 阅读
纯方位无源定位:三圆共点原理与MATLAB实现
简介这份资源是2022年全国大学生数学建模竞赛本科组B题的完整论文聚焦无人机纯方位无源定位问题适合备战数模竞赛的本科生、指导教师及对编队控制建模感兴趣的读者参考。论文围绕圆形与锥形编队系统建立被动接收信号无人机的定位模型与位置调整模型运用二维直角坐标系、余弦定理与“三圆共点”思想推导发射信号无人机数量需求并给出步长0.01米的遍历调整方案涉及MATLAB符号运算、数值求解与可视化实现。资源包共1个PDF文件约2.63MB内容为获奖论文全文含摘要、问题重述、模型假设、符号说明及模型建立与求解等完整章节便于读者梳理建模思路与论文写作结构。该论文曾获河北省一等奖目前已有8039人学习下载可作为赛题复盘、算法实现与论文排版的实用范本。1. 纯方位无源定位为什么三个角度就能锁死一架无人机的位置一架无人机在编队里飞偏了它自己不知道偏了多少也没有 GPS只知道自己相对于几个已知位置队友的“方向角”。听起来信息少得可怜但数学上只要拿到三个方向角它的位置就被唯一锁死了。这不是玄学而是“三圆共点”的几何必然。2022 年全国大学生数学建模竞赛本科组 B 题研究的正是这套纯方位无源定位机制不主动发射电磁波只靠被动接收方位信息就能把略有偏差的无人机拉回理想位置。搞懂它等于搞懂了一类“只测角、不测距”的定位系统为什么能 work以及它在什么情况下会翻车。下面从几何原理一路拆到 MATLAB 实现细节。2. 定位模型三个方位角如何反解出坐标2.1 从“一个动点到两定点夹角为定值”说起整个定位模型的基石是一句几何命题一个动点到两个定点的夹角如果是定值那么这个动点的轨迹是由上下对称的两段圆弧拼成的封闭曲线。夹角为钝角时轨迹像一只“眼睛”夹角为锐角时轨迹像一个“葫芦”。这个结论不是拍脑袋来的可以用余弦定理配平推导出来。设两个定点为 (A)、(B)动点为 (P)(\angle APB \theta) 为定值。以 (A)、(B) 所在直线为 x 轴建立坐标系利用余弦定理和对称性最终能得到一个关于 (P) 点坐标的二次曲线方程。当 (\theta) 为钝角时方程配平后对应两段外凸圆弧当 (\theta) 为锐角时对应两段内凹圆弧。这就是“眼睛”和“葫芦”两种轨迹的数学来源。为什么这个性质对定位至关重要因为一架被动接收信号的无人机如果只知道一个方向角它可能的位置就是一条“眼睛”或“葫芦”轨迹上的任意一点根本无法确定具体坐标。但如果有三个已知位置的无人机同时发射信号接收机就能测出三个方向角对应三条轨迹。三条轨迹相交于一点这个交点就是它的实际位置。这就是“三圆共点”的定位逻辑。2.2 余弦定理反解从角度到坐标的完整链路具体怎么把三个角度变成坐标论文里建立了一个二维直角坐标系把 0 号无人机固定在圆心1 号无人机固定在 x 轴上。圆形编队半径记为 (r)9 架圆周上的无人机均匀分布相邻夹角 40 度。这样每架无人机的准确坐标可以直接用三角函数写出来。假设 0 号、(i) 号、(j) 号三架无人机发射信号它们的位置无偏差。接收信号的是 (k) 号无人机位置略有偏差。(k) 号测到三个方位角 (\alpha_1)、(\alpha_2)、(\alpha_3)分别对应它与三架发射机连线之间的夹角。接下来是一连串余弦定理的应用。先在三角形 (0ij) 中已知两边 (r) 和夹角求出 (i) 号与 (j) 号之间的距离 (a_1)。然后在三角形 (0ik) 中已知 (r)、(a_3) 和夹角 (\alpha_1)可以建立方程同理在三角形 (0jk) 和三角形 (ijk) 中分别建立方程。三个未知量——(k) 号到 0 号的距离 (k_0)、(k) 号到 (i) 号的距离 (a_2)、(k) 号到 (j) 号的距离 (a_3)——三个方程联立可解。解出三条边之后再次使用余弦定理求出 (k) 号相对于 0 号的角度最终得到 (k) 号的直角坐标[ x k_0 \cos(\theta_k), \quad y k_0 \sin(\theta_k) ]其中 (\theta_k) 由 (\alpha_1) 和已知的 40 度间隔反推得到。这套流程在 MATLAB 里用符号求解器实现核心代码如下% 被动接收信号无人机定位模型的建立 alpha1 input(第一个角度); % 0kj alpha2 input(第二个角度); % 0ki alpha3 input(第三个角度); % ijk FY0i input(发射信号无人机1); FY0j input(发射信号无人机2); r input(圆形编队半径); % 先求两发射机之间的距离 a1 sqrt(2*r^2 - cosd(abs(FY0i-FY0j)*40)*2*r^2); % 设三个未知边为 k0, a2, a3建立余弦定理方程组 syms k0 a2 a3 eq1 (k0^2 a3^2 - r^2)/(2*k0*a3) - cosd(alpha1); eq2 (k0^2 a2^2 - r^2)/(2*k0*a2) - cosd(alpha2); eq3 (a2^2 a3^2 - a1^2)/(2*a2*a3) - cosd(alpha3); [X, Y, Z] solve(eq1, eq2, eq3, k0, a2, a3); K0 double(X); % 求得 k0 长度 % 反推接收机相对于 0 号的角度 k0i acosd(1 - 2*cosd(alpha1)^2); k01 k0i - 40*abs(i-1); x real(K0*cosd(k01)); % 横坐标 y real(K0*sind(k01)); % 纵坐标这段代码的关键在于solve那一步三个余弦定理方程联立符号求解出三条边的长度。cosd用的是角度制因为题目给的角度都是度数。real取实部是为了滤掉符号求解过程中可能出现的复数分支。最终x、y就是接收信号无人机的实际位置坐标。注意当接收机恰好位于两个发射机连线的延长线上时余弦定理方程会出现退化求解器可能返回空解或多解。这是纯方位定位的固有盲区后面会详细说。2.3 准确位置与“眼睛/葫芦”轨迹的对应关系上面求的是“实际位置”但定位模型还有第二层含义确定无人机“应当到达的准确位置”。这两者的区别在于实际位置是根据接收到的方位信息反解出来的而准确位置是编队几何结构决定的理想坐标。论文里给出了圆形编队中 9 架无人机的准确坐标表。以半径 (r) 为单位0 号在圆心 ((0,0))1 号在 ((r,0))2 号在 ((0.77r, 0.64r))依次类推相邻间隔 40 度。这些坐标是编队设计的先验知识不需要通过信号测量获得。那为什么还要用“三圆共点”来定位准确位置因为在实际飞行中无人机不知道自己偏了多少它只能通过接收到的方位信息反推自己当前在哪里。而“准确位置”是它应该去的地方。定位模型同时解决这两个问题用三个方位角反解出当前实际坐标再与理想坐标比较得到位置偏差。这里有一个容易被忽略的细节当方位角为钝角时轨迹是“眼睛”形为锐角时轨迹是“葫芦”形。两种轨迹的数学表达式不同但都满足“到两定点夹角为定值”的条件。论文对这两种情况分别做了配平推导最终得到统一的轨迹方程。这个推导过程在 MATLAB 里不需要显式实现因为solve直接处理了余弦定理方程但理解轨迹形状有助于判断解的唯一性。3. 额外无人机数量为什么一架就够以及怎么找到那一架3.1 从“一个角度不够”到“三个角度刚好”问题一第二小问的核心是0 号和 1 号已经发射信号还需要额外增加几架发射机才能让其他无人机实现准确定位先看最坏情况只有 0 号和 1 号发射信号。此时任意一架接收机只能测到一个方向角对应一条“眼睛”或“葫芦”轨迹。轨迹上每一点都满足这个角度条件所以位置不唯一无法定位。如果额外增加一架发射机接收机就能测到三个方向角分别对应与 0 号、1 号、额外那架无人机的夹角三条轨迹相交于一点位置唯一确定。论文的结论是额外增加一架就足够了。增加两架、三架当然也可以但没必要。这个结论的证明依赖于枚举法。除 0 号和 1 号外还有 8 架无人机可以作为额外的发射机。对于每一架接收机遍历所有可能的额外发射机选择计算三个方位角的准确值与偏差值之差的平方和[ \min \left[ (\alpha_1 - \alpha_1)^2 (\alpha_2 - \alpha_2)^2 (\alpha_3 - \alpha_3)^2 \right] ]当这个平方和取最小值时对应的那架额外发射机就是最优选择。MATLAB 实现如下% 求出所有可能的方位角组合 FY00 0; FY0i 1; r input(圆形编队半径); for FY0j 2:9 for FY0k 2:9 if FY0k FY0j continue; end a1 sqrt(2*r^2 - cosd((FY0j-FY0i)*40)*2*r^2); a3 sqrt(2*r^2 - cosd((FY0k-FY0i)*40)*2*r^2); a2 sqrt(2*r^2 - cosd((FY0k-FY0j)*40)*2*r^2); alpha1(FY0j,FY0k) acosd((r^2a3^2-r^2)/(2*r*a3)); alpha2(FY0j,FY0k) acosd((a3^2a2^2-a1^2)/(2*a3*a2)); alpha3(FY0j,FY0k) acosd((r^2a2^2-r^2)/(2*r*a2)); end end % 反解根据实测角度找最优额外发射机 beta1 input(第一个角度); beta2 input(第二个角度); beta3 input(第三个角度); FY0k input(接收信号的无人机编号); min_val 1000; mini 0; for i 2:9 if i FY0k continue; end m (beta1-alpha1(i,FY0k))^2 (beta2-alpha2(i,FY0k))^2 (beta3-alpha3(i,FY0k))^2; if m min_val min_val m; mini i; end end mini % 输出最优额外发射机编号这段代码分两步第一步用双重循环枚举所有可能的发射机组合预先算出每种组合下的三个方位角存入alpha1、alpha2、alpha3矩阵。第二步根据实测的beta1、beta2、beta3遍历所有候选发射机找平方和最小的那个。mini就是需要额外增加的发射机编号。提示枚举法的计算量是 (O(n^2))这里 (n8)总共 56 种情况MATLAB 瞬间完成。如果编队规模更大需要考虑更高效的搜索策略。3.2 枚举法的边界什么时候平方和最小反而选错枚举法有一个隐含假设实测角度与某个候选组合的准确角度最接近时那个组合就是正确的。但实际中可能存在两个不同组合的角度值非常接近导致误判。论文里举了两个例子当接收机为 8 号、输入特定角度时求解出额外增加 9 号当接收机为 3 号、输入另一组角度时求解出额外增加 5 号。这两个例子说明枚举法在大多数情况下有效但并没有讨论角度接近时的歧义问题。从机制上看歧义出现的条件是两个不同发射机组合产生的三个方位角向量在角度空间中的距离小于测量误差。圆形编队中由于对称性某些组合的角度值确实可能接近。比如 0 号、1 号、2 号组合与 0 号、1 号、9 号组合在特定接收机位置上可能产生相似的角度。实际工程中需要加入更多约束比如信号强度、历史位置预测等来消除歧义。3.3 位置调整步长 0.01 米的遍历逻辑确定额外发射机后接收机就能解算出自己的实际位置。接下来是调整从实际位置移动到理想位置。论文采用的方法是设定步长 0.01 米向四周全方位遍历当与准确位置相差小于 0.01 米时认为到达理想位置。具体调整方向分“向北”和“向南”两类。以向北移动为例设当前极坐标为 ((r, \theta))向北移动一个微小步长后到达新位置利用余弦定理可以求出新位置的极坐标。MATLAB 实现如下% 圆形编队无人机位置调整 FY00 0; FY01 1; njl 0.01; % 最小距离阈值 r 100; % 圆形编队半径 bzrow 100; % 准确位置 row bztheta [0 40 80 120 160 200 240 280 320]; % 准确位置 theta FY0irow(2) input(FY02 的初始位置(row):); FY0itheta(2) input(FY02 的初始位置(theta):); jl 100; while jl njl mjl 10000; for j 0:359 % 向四周遍历找距离准确位置最近的方向 % 具体遍历逻辑计算每个方向移动一步后的位置 % 与理想位置比较记录最小距离 end % 移动到最小距离对应的方向 % 更新当前位置 jl mjl; % 更新与理想位置的距离 end这段代码的框架是外层while循环控制调整过程直到距离小于阈值。内层for循环遍历 360 个方向每个方向移动一步计算移动后位置与理想位置的距离找最小值。然后移动到那个方向更新距离继续循环。注意步长 0.01 米是一个工程近似。步长太小会导致迭代次数过多步长太大则调整精度不够。论文选择 0.01 米是因为题目要求的位置精度大约在这个量级。实际系统中需要根据定位误差和调整时间约束来权衡。4. 锥形编队从圆形到锥形的机制迁移与盲区4.1 锥形编队的几何差异与定位策略问题二把编队从圆形换成锥形。锥形编队的特点是直线上相邻两架无人机间距相等相邻三架构成等边三角形。这个几何结构与圆形编队有本质区别——圆形编队中所有无人机到圆心距离相等锥形编队中不同位置的无人机到参考点的距离不同。论文的处理方式是假设 1 号和 5 号无人机位置无偏差先定位 2 号。具体做法是让 1 号、2 号发射信号5 号接收得到一个方向角再让 2 号、5 号发射信号1 号接收得到另一个方向角。在三角形 1-2-5 中两个角已知第三个角自然确定2 号的位置就解出来了。这个策略的核心是“轮流发射、互相接收”。圆形编队中0 号在圆心位置固定可以作为稳定的参考点。锥形编队没有这样的中心点所以需要先假设两架无人机位置无偏差用它们作为基准去定位第三架然后逐步扩展。4.2 延长线盲区为什么 4、7、9、11、13、14 号第二轮无法定位锥形编队定位过程中出现了一个关键问题当某架无人机位于三架已知位置无人机构成的三角形的边的延长线上时它只能接收到一个方向信息无法准确定位。从几何上看如果接收机在三角形边的延长线上它与两个发射机的夹角要么是 0 度要么是 180 度。这两个角度对应的“眼睛”或“葫芦”轨迹退化成一条直线与另外两条轨迹的交点不唯一。论文明确指出第二轮中 4、7、9、11、13、14 号无人机处于这种位置无法定位。这个盲区是纯方位定位的固有缺陷。解决方法是改变发射机组合让接收机不再处于延长线上。论文在第三轮选取 2、6、8 号作为发射机剩下的未定位无人机都不在这三架构成的三角形的延长线上因此都能定位。4.3 三轮定位的时序与收敛性整个锥形编队的定位过程分三轮第一轮1 号和 5 号已知定位 2 号调整到理想位置。此时 1、2、5 号位置无偏差。第二轮用 1、2、5 号定位 3、6、8、10、12、15 号调整到理想位置。4、7、9、11、13、14 号因延长线盲区无法定位。第三轮用 2、6、8 号定位剩余无人机全部调整到理想位置。这个时序设计的关键在于每一轮结束后已知位置的无人机数量增加可供选择的发射机组合更多盲区更容易被避开。收敛性由编队几何结构保证——只要发射机组合选得合适总能让接收机不在延长线上。5. 避坑与排查纯方位定位的五个常见翻车点5.1 角度测量误差导致平方和最小值选错发射机现象枚举法输出的额外发射机编号与预期不符定位结果偏差很大。原因实测角度存在噪声当两个候选组合的角度向量距离很近时噪声可能让平方和最小值指向错误组合。解决增加角度测量精度或者在平方和中加入权重项对角度变化更敏感的方向赋予更高权重。也可以利用历史位置信息做约束排除角度接近但几何上不可能的候选。5.2 接收机位于发射机连线延长线上导致方程退化现象MATLABsolve返回空解或者解出多个复数根real取实部后坐标明显错误。原因接收机在延长线上时某个方位角为 0 或 180 度余弦定理方程退化三个方程不再独立。解决检测方位角是否接近 0 或 180 度如果是更换发射机组合。论文中锥形编队第二轮无法定位 4、7、9 等无人机正是这个原因。5.3 步长选择不当导致调整震荡或收敛过慢现象位置调整过程中无人机在理想位置附近来回跳动无法稳定或者迭代次数过多调整时间过长。原因步长太大每次移动超过理想位置步长太小需要大量迭代。解决采用自适应步长——距离远时用大步长快速接近距离近时用小步长精细调整。论文固定 0.01 米是因为题目假设调整时间不计实际系统需要动态调整。5.4 符号求解器返回复数分支未过滤现象solve输出的K0包含复数直接用于计算坐标会得到无意义的结果。原因余弦定理方程组在特定参数下可能有复数解符号求解器会返回所有分支。解决用real取实部并检查虚部是否接近零。如果虚部较大说明方程本身有问题需要检查输入角度是否合理。5.5 圆形编队对称性导致多解现象三个方位角对应的三条轨迹相交于多个点无法确定唯一位置。原因圆形编队具有旋转对称性某些发射机组合下接收机可能有两个对称位置满足相同的角度条件。解决利用编队的先验知识——接收机的大致方位是已知的略有偏差不会跑到对称位置。在求解时加入位置约束排除对称解。6. 设计取舍为什么用余弦定理而不是最小二乘以及这套模型的边界整套模型最核心的设计取舍是用解析几何的余弦定理直接反解坐标而不是用数值优化的最小二乘法。这个选择背后有明确的理由。余弦定理法的优势在于当发射机位置无偏差、角度测量无噪声时三个方程三个未知量解是精确的、唯一的。计算量小MATLAB 符号求解器瞬间完成。对于竞赛题目这种理想化场景这是最高效的路径。但实际系统中角度测量必然有噪声发射机位置也可能有微小偏差。此时三个方程可能不相容余弦定理法无解。最小二乘法通过最小化残差平方和能在有噪声时给出最优估计。代价是计算量更大且需要迭代求解。论文在问题一第二小问中实际上已经引入了最小二乘的思想——用平方和最小值来选额外发射机。但定位本身仍然用余弦定理精确求解。这是一种混合策略用最小二乘做组合选择用解析法做坐标计算。这套模型的边界在哪里第一它假设无人机在同一高度飞行把三维问题降为二维。如果高度不同需要扩展到三维球面定位余弦定理变成球面三角公式。第二它假设方位信息准确无误。实际中方位测量受天线阵列精度、多径效应影响误差可能达到几度。第三它假设调整时间不计。实际中无人机有惯性不能瞬间改变位置需要加入动力学约束。我一般会这么理解这套模型是一个“理想基准”实际系统在它基础上加噪声模型、加动力学约束、加容错机制。但核心的“三圆共点”几何原理不会变——只要你能测到三个独立的方向角位置就被锁死了。区别只在于实际系统中你需要更多的冗余来对抗噪声和盲区。从那以后我每次做定位相关的建模都会先问三个问题发射机组合是否让接收机避开了延长线角度噪声是否会让平方和最小值选错步长和迭代次数是否在可接受范围内这三个问题过一遍基本不会翻车。希望帮到你。本文还有配套的精品资源点击获取
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑