简介:这份资源是2022年全国大学生数学建模竞赛本科组B题的完整研究论文,聚焦无人机纯方位无源定位问题,适合备战数模竞赛的本科生、指导教师及对编队控制与几何建模感兴趣的读者参考。论文获河北省一等奖,围绕圆形与锥形两种编队,系统建立被动接收信号无人机的定位模型与位置调整方案,涉及二维直角坐标系、余弦定理、三圆共点、枚举遍历与步长迭代等建模思路,并附MATLAB编程实现。资源包共1个PDF文件,大小约2.63MB,内容涵盖问题重述、模型假设、符号说明、模型建立与求解全过程,可直接作为赛题复盘与论文写作范本。目前已有8040人学习下载,读者可从中获取完整赛题解题框架、几何定位推导细节及MATLAB数值求解与可视化经验,便于对照练习与查漏补缺。
1. 这道题真正考的不是无人机:从“三圆共点”切入的建模得分逻辑
很多人第一次翻到这道题,注意力全被“无人机”“编队”“无源定位”这些词带走了,觉得这是通信或者控制专业的题。其实阅卷人看的根本不是你对无人机懂多少,而是你能不能把一个几何关系翻译成方程、把方程解出来、再把解落回题目场景。这道题的核心考点就一句话:一个动点到两个定点的夹角是定值,轨迹是两段对称圆弧,三条这样的轨迹交于一点,这个交点就是目标位置。说白了,它考的是解析几何建模、余弦定理的反复调用、枚举与误差最小化,以及用 MATLAB 把这一套跑通。拿分的关键不在文采,在于模型建得对不对、方程列得全不全、结果能不能自圆其说。适合正在准备数学建模竞赛本科组、想搞懂 B 题这类几何定位题套路的人。
2. 考点分布:这道题的分值到底压在哪几个模块
2.1 三问的考点拆解与分值权重判断
这道题表面上是三小问加一个锥形编队,实际考点可以拆成四块:定位模型建立、发射机数量论证、位置调整方案、编队迁移。从阅卷习惯看,第一小问的定位模型是地基,占分最重,因为它决定了后面所有问能不能往下走;第二小问考的是“为什么一架不够、为什么再加一架就够”的逻辑闭环,属于论证题,很多人在这里只写结论不写证明,直接丢分;第三小问是算法题,考步长遍历和误差阈值;问题二考的是模型迁移能力,看你能不能把圆形编队的结论搬到锥形上。
| 模块 | 核心考点 | 常见失分表现 |
|---|---|---|
| 问题一第1小问 | 余弦定理反解坐标、三圆共点 | 只列方程不解、坐标系建错 |
| 问题一第2小问 | 轨迹形状证明、枚举56种情况 | 直接说“加一架就够”无证明 |
| 问题一第3小问 | 步长遍历、误差阈值0.01米 | 调整方向没分类、迭代不收敛 |
| 问题二 | 锥形编队迁移、延长线不可定位 | 照搬圆形结论不说明差异 |
这张表建议直接背下来,考场上先对着它检查自己每一问有没有踩到点。建模题最怕的是“写了很多但没踩分”,阅卷人找的是关键词和关键方程,不是你的文字量。
2.2 为什么“三圆共点”是整道题的总开关
题目里反复出现的那句话——“一个动点到两定点的夹角是定值,运动轨迹是由上下对称的两段圆弧合成的封闭曲线”——不是背景介绍,是整道题的解题总开关。你只要接受这个结论,第一小问的“定位准确位置”就变成了:三架位置无偏差的无人机各给一条轨迹,三条轨迹的交点就是答案。反过来,如果你没抓住这句话,就会陷入“我到底该用三角测量还是用最小二乘”的纠结里。
这里有个血泪经验:很多队伍在考场上花大量时间去“证明”这个轨迹结论,其实题目正文已经给了,你要做的是用它,而不是重新推一遍。真正需要你证明的是第二小问里“钝角是眼睛、锐角是葫芦”这个细分结论,因为那是你论证“一架不够”的依据。分清哪些是已知、哪些是要证,是建模题的第一道分水岭。
2.3 真题演练:第一小问定位模型怎么落方程
面试官或者阅卷人看第一小问,最想看到的是你有没有把“已知三个方位角”翻译成“三个余弦定理方程”。标准答法是这样的:把第 i 架无人机的准确位置固定在 x 轴上,设接收信号无人机到圆心距离为 k0,到两架发射机的距离分别为 a2、a3,然后对三个三角形分别用余弦定理,得到三个方程、三个未知量,解出来再反算坐标。
% 被动接收信号无人机定位:三个余弦定理方程联立 alpha1 = input('第一个角度:'); % 圆心-接收机-发射机1 的夹角 alpha2 = input('第二个角度:'); % 圆心-接收机-发射机2 的夹角 alpha3 = input('第三个角度:'); % 发射机1-接收机-发射机2 的夹角 FY0i = input('发射信号无人机1:'); FY0j = input('发射信号无人机2:'); r = input('圆形编队半径:'); % 两架发射机之间的弦长,用圆心角差乘以40度换算 a1 = sqrt(2*r^2 - cosd(abs(FY0i-FY0j)*40)*2*r^2); 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); % 解出接收机到圆心的距离这段代码的关键不在语法,在于三个方程的来源:eq1 和 eq2 是在“圆心—接收机—发射机”构成的三角形里用余弦定理,eq3 是在“两发射机—接收机”三角形里用。参数 r 是编队半径,40 度是相邻无人机在圆周上的圆心角(360 除以 9)。解出 K0 之后,再用k0i = acosd(1-2*cosd(alpha1)^2)换算出极角,就能得到直角坐标。阅卷人看到你把“三个角对应三个方程”写清楚,这一问的基本分就稳了。注意solve可能返回多组解,要取实部、取符合物理意义的那组,这一步不写会被扣严谨性分。
3. 高频考点:额外发射机数量与轨迹形状的论证套路
3.1 “加一架就够”背后的枚举与误差最小化
第二小问是整道题最容易翻车的地方。题目问“需要额外增加几架发射信号无人机”,正确答案是一架,但答案对不等于分全拿,因为阅卷人要看你凭什么说一架够。标准论证链是:只有 0 号和 1 号发射时,其他无人机只能收到一个方位信息,轨迹是一条“葫芦”或“眼睛”,位置不唯一;再加一架发射机,接收机就能拿到三个方位信息,三条轨迹交于一点,位置唯一确定。到这里逻辑闭环,结论成立。
但真正拉开差距的是后面的枚举验证。因为额外那架发射机可以是 2 到 9 号中的任意一架,共 56 种组合,你要用枚举法把每种情况下三个方位角的偏差值算出来,再用“准确值与偏差值之差的平方和最小”来反查是哪一架。
% 枚举56种组合,用平方和最小反查额外发射机 minv = 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 <= minv minv = m; mini = i; % 记录平方和最小的那架 end end这段的核心是那个平方和表达式,它对应题目里的判据:三个方位信息的准确值与偏差值之差的平方和取最小。参数 beta1、beta2、beta3 是实测收到的三个角,alpha 是枚举表里查出来的理论角。mini就是你要额外增加的那架发射机编号。面试官最想听的是你能说清楚“为什么用平方和而不是绝对值和”——平方和对大偏差更敏感,能更快锁定唯一解,这是这类反查题的标准套路。
3.2 轨迹形状证明:钝角“眼睛”、锐角“葫芦”怎么答
第二小问里有个隐藏加分点:证明“定值夹角为钝角时轨迹是眼睛形,为锐角时是葫芦形”。很多人跳过不写,结果论证显得空。标准答法是设两个定点坐标,写出夹角余弦的表达式,配平后得到轨迹方程,再根据对称性说明是两段圆弧。钝角情形下配平后得到的是上下对称的两段弧,形似眼睛;锐角情形下两段弧的开口方向相反,形似葫芦。
这类题通常这么答:先设 A、B 为两定点,P 为动点,夹角为定值,写出 cos 的坐标表达式,移项、平方、配平,得到标准圆方程形式,再讨论定值取钝角或锐角时圆心位置和弧段方向。你不需要把配平每一步都写满,但必须写出配平后的方程形式,因为那是阅卷人找的采分点。易错的地方是忘了讨论“优角”情形——当夹角是优角时,余弦值和它的补角余弦值恒定不变,这个细节写出来会让论证显得更完整,属于拉开档次的点。
3.3 真题演练:位置调整的步长遍历怎么写才收敛
第三小问给的是初始位置有偏差、要调整到理想位置。标准方案是设定步长 0.01 米,向四周全方位遍历,当与准确位置相差 0.01 米时就近似认为到位。这里考的是迭代思想和误差阈值的处理。
% 圆形编队位置调整:步长遍历直到误差小于阈值 njl = 0.01; % 误差阈值,单位米 r = 100; % 编队半径 jl = 100; % 初始距离,保证能进循环 while jl > njl mjl = 10000; for j = 0:359 % 全方位遍历方向 % 沿方向 j 移动一个步长,计算新位置与理想位置的距离 % 若距离小于当前最小值则更新 mjl 和最优方向 end jl = mjl; % 更新当前误差,进入下一轮 end这段代码的骨架是“外层 while 控制收敛、内层 for 遍历方向”。参数 njl 是误差阈值,题目给的是 0.01 米;r 是半径 100 米;j 从 0 到 359 表示全方位搜索。调整方向要分成向北和向南两类,因为无人机在圆周上的相对位置决定了它该往哪个方向靠。易错点是只写“向理想位置移动”而不写“怎么判断到了”——没有阈值判断,迭代就停不下来,这是这类算法题最常见的翻车点。
4. 易错点:这五处丢分最冤,考场上逐条对一遍
4.1 错把“定位实际位置”和“定位准确位置”混为一谈
错在哪:很多队伍一上来就只建一个模型,把“根据方位信息算实际坐标”和“算理想坐标”当成一回事。为什么错:题目第一小问明确有两种理解,一是确定实际位置,二是确定应当到达的准确位置,两者用的已知条件不同——前者用实测方位角反解,后者用三圆共点求交。怎么答对:分两段写,先写实际位置模型(余弦定理反解坐标),再写准确位置模型(三条轨迹求交点),两段各自给方程,阅卷人一看就知道你读懂了题。
4.2 第二小问只给结论不给证明
错在哪:直接写“额外增加一架即可”,没有任何轨迹形状的论证。为什么错:这一问本质是论证题,结论分只是一小部分,大部分分在“为什么一架不够、为什么一架就够”的推理链上。怎么答对:先证一架不够(单条轨迹不唯一),再证一架够(三条轨迹共点),中间用钝角眼睛、锐角葫芦的轨迹方程撑住,最后用 56 种枚举和平方和最小做数值验证,三层写完才叫闭环。
4.3 坐标系建错导致余弦定理全盘失效
错在哪:没有把某架无人机的准确位置固定在 x 轴上,导致角度和边长关系对不上。为什么错:余弦定理的使用前提是三角形三边一角关系明确,坐标系一乱,角度定义就跟着乱。怎么答对:开篇就规定“把第 i 架无人机准确位置固定在 x 轴”,后续所有角度都相对这个基准定义,坐标反算时用k0i = acosd(1-2*cosd(alpha1)^2)换算极角,一步不跳。
4.4 位置调整不设阈值,迭代不收敛
错在哪:写了“向四周遍历”却没写停止条件。为什么错:没有误差阈值,程序要么死循环,要么调过头。怎么答对:明确写步长 0.01 米、阈值 0.01 米,外层 while 判断当前误差是否大于阈值,内层 for 遍历 0 到 359 度找最优方向,每轮更新误差,收敛即停。
4.5 问题二照搬圆形结论,忽略延长线不可定位
错在哪:直接把圆形编队的调整方案套到锥形上。为什么错:锥形编队里,当某无人机位于三架发射机构成三角形的边的延长线上时,只能收到一个方向信息,无法定位。怎么答对:先假设两架无偏差,定位出第三架,再说明第二轮里 4、7、9、11、13、14 号因在延长线上仍无法定位,第三轮换 2、6、8 号发射,剩下的都能定位。把这个“延长线失效”写出来,是问题二的核心采分点。
5. 答题节奏:从读题到交卷的四步走法与押题思路
带过几轮队伍之后,我总结出一个最稳的节奏,四步走,每步都有明确的产出物,避免在考场上东一榔头西一棒子。
第一步,读题十分钟内只做一件事:把“已知什么、要求什么、题目已经给了什么结论”三列写出来。这道题里“动点到两定点夹角定值则轨迹为两段圆弧”是题目给的,直接用;“钝角眼睛锐角葫芦”是要你证的,单独标出来。这一步的产出是一张考点对照表,后面每一问都对着它检查。
第二步,第一小问先建坐标系再落方程,产出是三个余弦定理方程加一组坐标反算公式。写的时候把“实际位置”和“准确位置”分成两个子模型,别混。方程列完立刻用一组假设数据手算验证,确认量纲和角度定义没错再往下走。
第三步,第二小问按“证不够—证够—数值验证”三层写,产出是轨迹方程加 56 种枚举表加平方和最小判据。这一问文字量最大,但每一段都要挂在一个方程或一张表上,不要出现纯文字段落。
第四步,第三小问和问题二合并成“算法与迁移”来写,产出是步长遍历伪代码加锥形编队的延长线分析。问题二不要重起炉灶,明确写“在问题一第三小问基础上”,然后只写差异部分:假设两架无偏差、延长线失效、第三轮换发射机。
押题思路方面,这类几何定位题明年大概率还会考“多站交会”的变体,核心永远是三件事:把角度翻译成方程、用交点或最小二乘定唯一解、用迭代把偏差收掉。你把这三件事练成肌肉记忆,换什么编队形状都不慌。
提示:交卷前留五分钟,专门检查每一问有没有“只给结论没给方程”的段落,有就补一行方程,这一行往往就是一两分。
从那以后我每次带队伍做这类题,都强制走一遍“已知—要求—已给结论”三列清单,不列完不动笔。希望帮到你。
本文还有配套的精品资源,点击获取