2022年高教社杯全国大学生数学建模竞赛B题 代码和思路

基于局部最优模型的无人机位置调整策略与仿真定位

摘 要

纯方位无源定位即用被动式探测设备接收辐射源的方位信号并进行定位,设备本身不发出任何电磁信号,对无人机遂行编队飞行的位置调整及阵型保持具有重要意义。本文主要研究了圆形编队以及锥形编队的无人机阵型,基于局部最优模型与仿真实验,建立了无人机的定位模型以及无人机位置的调整策略。

针对问题一,首先讨论了圆形阵列中三架发出信号无人机的四种排布方式,并在极坐标下根据正弦定理分别讨论各无人机间的几何关系,将无人机的定位问题转化为方程问题。其次,求解方程得出无人机位置的一般解,建立了被动接受信号无人机定位模型,结果见式 (1)-(2).随后,为解决特殊情况下方程解的不唯一性,以及位于信号源连线角平分线上无人机位置的不确定性,提出了假设:已知信号源发射电磁波的次序。最后,给出该背景下无人机的位置调整策略:先沿圆的径向,再沿圆的切向进行调整,从而使模型更具完整性。

针对问题二,首先提出并证明引理:对于正九边形的圆周角α,存在正整数k.使得α=20°k; 对于伪圆周角β,存在正整数l, 使得β=10°(2l-1)。其次基于此引理,讨论未知编号无人机对应的方位角与圆心角的两种相对关系,运用集合元素唯一性证明未知编号信息源发射信号的唯一性,反推出发射信号无人机的编号,将问题划归为问题一中的定位模型,在接受方向信息角与理想值误差±5°范围内,得出仅再需要一架无人机作为信号源即可确定接受信号无人机的位置的结论。

针对问题三,对于初始位置略有偏差的圆形编队,首先对一般情况下无人机初始位置进行预处理:即将无人机j沿径向调整,使其从无人机0.1两架无人机接收到的方位角调整为90°-20°(j-1)。其次通过数学证明,预处理后可以将无人机的距离误差自15%缩小至 5%。随后,由于各无人机之间的信息不共享,故不能出现通过任何全局的信息对无人机做出调整。基于局部最优模型分两种方案进行调整策略的研究:每次选取圆周上三或两架无人机作为信号源,目标函数为接收信号无人机对应的方位角向量和标准值向量的范数平方,使其最小化。最后,对该模型进行仿真模拟,得出对于给定初始值的两种方案位置的调整结果,如表5所示。比较两个方案全局检验误差值的收敛速度、收敛值,最终估算总发射电磁波信号次数,得出方案二,即每次在圆周上选取两架无人机发射信号,更优。

针对问题四,对于初始位置略有偏差的锥形编队,首先提出并证明三条引理:给定空间中近似成正三角形的三个点A,B,C与一在边AC附近的点D,可将△ABC调整为严格正三角形;可将点D调到边AC上,并使之成为定比分点:在△ABC中心附近的点可调整至几何中心。其次,将无人机分为中心对称的三类,基于引理按贪心策略分三步调整:由引理一调整顶点处三架无人机:由引理二将三角形每条边上的无人机距离等分:由引理三调正三角形的中心点。随后,进行计算机仿真实验,生成随机数实现模型。最后进行三维平面拟合,定义平面化检验函数检验调整方案的优劣性。平面化检验函数值由3.893降至0.206,降低了94.7%,准确性良好。

本文最后进行了无人机调整模型的灵敏性分析,对飞行阵列的精确点进行服从正态分布的微小扰动。取十组数据集进行全局误差分析。结果表明误差值随着循环次数迅速下降并收敛     10⁷-10⁵,  可见局部优化模型具有良好的鲁棒性。

关键词:局部最优调整 贪心策略微小量仿真几何关系三维平面拟合

一、  问题重述

1.1问题背景

相较于有源(主动) 传感器不仅发射信号,还接收从目标返回的信号的特点,无源(被动) 传感器不发射任何信号,只接收来自目标的信号[1-2]。在无人机遂行编队飞行中,为了尽可能保持电磁静默,故采用纯方位无源定位的方法调整无人机的位置,即由编队中部分无人机发射信号、其余无人机被动接收信号,仅根据方向信息进行定位。在该问题的无人机编队中,每架无人机的编号固定,且无人机之间的相对位置保持不变,但具体位置与规划位置略有偏差。研究纯方位无源定位对无人机阵型的训练和管理具有重要意义。

1.2问题要求

基于上述背景,要求建立数学模型解决如下问题:

问题的无人机阵型分为两类:1) 圆形编队:由10架无人机组成,其中9架无人机(编号FY01~FY09) 均匀分布在某圆周上,另1架无人机(编号FY00) 位于圆心。2) 锥形编队:由15架无人机组成(编号FY01-FY15),且直线上相邻两架无人机的间距相等。无人机基于自身感知的高度信息,均保持在同一个高度上飞行。

问题一:圆形编队中,位于圆心的无人机和圆周上另2 架无人机发射信号。发射信号的无人机位置无偏差且编号已知,被动接受信号的无人机位置略有偏差,建立被动接收信号的无人机定位模型。

问题二:圆形编队中,FY00和FY01以及编队中若干编号未知的无人机发射信号。发射信号的无人机位置无偏差,被动接受信号的无人机位置略有偏差。除FY00和FY01外,还需要几架无人机发射信号才能实现被动接收信号无人机的有效定位。

问题三:圆形编队中,圆周半径为100m,初始时刻无人机的位置略有偏差。根据题目数据,要求给出合理的无人机位置调整方案。即通过多次调整,每次选择编号为FY00的无人机和圆周上最多3架无人机遂行发射信号,其余无人机根据接收到的方向信息调整到理想位置,使得9架无人机最终均匀分布在某个圆周上。

问题四:锥形编队中,考虑纯方位无源定位的情形,设计无人机位置调整方案。

二、问题分析

2.1问题一的分析

该间本质上是一个方程问题。由于已知位置的三架无人机位置无偏差,故可建立极坐标并运用正弦定理计算出被动接受信号无人机的位置。考虑到圆形阵列的特殊性,两架圆周上发出信号的无人机具有四种位置关系,故需对其进行分情况讨论。另外,注意到九等分圆的轴对称性,因此最终位置的解有两个,需假设接收信号无人机已知自身的编号。计算出待定位无人机的位置后,可根据圆内角、圆周角、圆外角的性质给出其位置的调整方案,使之可以准确地消除位置偏差。

2.2问题二的分析

该问本质上是问题一的变式,核心思路是在接受容许接受方向信息角误差范围内,如何将其化归成问题一中被动接收信号无人机的定位模型。考虑到圆形编队及

其内接正九边形的性质,可以提出并证明正九边形圆周角与伪圆周角的数学规律,并基于此规律假设并证明未知位置无人机发射信息集合的唯一性,即可反推出未知位置无人机的编号。若如上假设得证,则仅再需要一架无人机即可确定被动接受信号无人机的位置。

2.3问题三的分析

该问本质上是一个局部优化问题。虽然无人机的初始位置与正九边形顶点有微小偏差,但我们可以通过一定手段(详见正文),称为预处理,将极径误差大幅下降。预处理后,分两种方案建立局部最优模型,即每次均匀选取圆周上两或三架无人机发射信号,目标函数为对应的方位角向量和标准值向量的范数平方的最小值。为了评价两种方案的优劣性,可根据目标函数的和设置误差函数比较两方案全局误差的收敛速度和收敛值,进而比较需要发射的次数。随后代入题目中已给的初始数据验证,并利用计算机模拟生成初始位置的随机数来衡量模型的灵敏性。

2.4问题四的分析

该问可以通过贪心策略来实现。本题抓住锥形集群的几何特点:正三角形高度对称性以及大量三点共线辅助移动调整。考虑到正三角形的几何性质,提出三种独立的调整策略:保证每个小三角形是正三角形,且点与点之间共线; 保证大三角形边上每个点等分:保证中间三角形中心准确。因此,可以基于此假设并证明三条引理,即给定空间中近似成正三角形的三个点与一在其中一边附近的点,可通过将其调整为严格的正三角形; 可以将点调至共线并使之成为定比分点; 在三角形中心附近的点可通过微调使其成为其中心。随后将 15个点分成三类,逐步调整。进行计算机的仿真模拟微小量的调整,随机生成初始数据,并分别计算三个引理所对应的误差值与锥形阵列全局的误差值(通过三维平面拟合求误差平方和),评价模型的优劣性。

综上所述,四个问题的分析思路可表示如下:

三、  模型假设

3.1假设无人机间信息不共享

接收信号的无人机是被动接收的,不能发射电磁波信号,故无人机间的信息不共享。即无人机i不能利用其他无人机j接收到的方向信息。

3.2假设每架无人机均知道自己的编号

结合实际情况,每架飞机在做出调整时均知道自己飞机的编号。

3.3假设已知无人机信号源的信号发射次序

为位于信号源连线角平分线上无人机位置的不确定性,故需作出假设。

3.4假设无人机圆形编队圆周上的无人机角度偏差不超过±5°

无人机的位置相对准确位置略有偏差,故合理地假设方向信息角度偏差不超过±5°。另外,假设偏差不超过±5°,接收信号无人机可以根据接收到的角度推断出该角的理想值。例如,假设无人机接受到47°的方向信息,那该角的理想值即为50°。

3.5假设无人机位置调整可以沿任意方向

无人机的飞行方向与设计性能相关[3]。正常无人机在空中拥有了12个自由度,可以任意飞行:然而如果是四轴无人机,基本上只能有限角度倾斜着飞。

3.6假设无人机不可以沿某一方向移动指定距离

在对问题三模型进行求解时,设置搜索邻域、搜索步长是为了对无人机实际飞行情况进行仿真模拟。实际情况是无人机在原来位置附近任意移动,搜索目标函数最小值。

3.7假设当误差小于一定值时,可以认为无人机以正九边形遂行编队飞行

考虑到实际情况,无人机群构成严格正九边形是不可能的,总会有一定的误差。所以我们认为,当无人机群构成的九边形与正九边形误差小于一定值时,即认为无人机群构成正九边形。

四、 符号说明

符号

说明

α₁

被动机关于前两架主动机的方位角

C₂

被动机关于一、三两架主动机的方位角

α₃

被动机关于二、三两架主动机的方位角

(R₁θ)

极坐标下第三架主动机的位置

(r,φ)

极坐标下被动机的位置

f₁,9(,,..,v₄

Eₖ

局部最优模型的目标函数

半径误差

6.                          角度误差

η                  局部最优模型循环次数阈值

σ                  局部最优模型总循环次数

μ₁                        误差函数

                     最小值平面化检验函数

(R₁,θ₂)                     点A₄的精确位置

五、  模型的建立与求解

5.1问题一:被动接受信号无人机的定位调整模型

根据题意将该问题分为两个步骤。首先在极坐标下建立方程,分两种情况讨论并计算被动接受信号无人机的方位角,得出无人机方位角关于发射信息的解析解:其次从几何角度给出位置稍有偏差的无人机的调整方案,从而建立被动接受信号无人机的定位调整模型。

5.1.1被动机定位模型的建立

由于无人机的分布呈辐射对称的状态,故圆周上第一架主动发出信号的无人机(主动机) 的选取具有任意性,不妨FY01为第一架主动机。以 FY00为原点,FY00与FY01连线方向为极轴,逆时针为正方向建立极坐标系。

定义变量环境:设极轴与原点和另一架主动机的连线的夹角为θ,与原点和被动接受信号无人机(被动机) 的连线夹角为φ:用编号的大小来衡量主动机的次序,编号越小次序越低。被动机关于前两架主动机的方位角为α₁,被动机关于一、三两架主动机的方位角为α₂,被动机关于二、三两架主动机的方位角为α₃。由于主动机的位置无偏差,被动机的位置略有偏差,故设圆周上两架主动机的位置分为(R,0).(R,θ), 被动机的位置为(r,φ)。

故该无人机定位问题可化归为方程问题进行求解。两架圆周上的被动机的分布有两种情况, 即φ>θ与θ>φ。而θ与φ的取值范围则有四种情况, 即θ∈[0,π)∩φ∈[0,π) . θ∈[0,π)∩φ∈[π,2π) .  θ∈[π,2π)∩φ∈[0,π) .θ∈[π,2π)∩φ∈[π,2π)。易证θ与φ的取值范围不影响数值解的大小,仅影响解的

5

正负, 故仅从θ与φ的大小关系出发进行讨论。以θ∈[0,π)∩φ∈[0,π)                为例,设两架第二架主动机分为FY02,FY04: 两架被动机分为FY04,FY02, 具体图示见图2-3。

根据正弦定理,可列得方程如下:

5.1.2被动机定位模型的求解

两式相除,得

 tan-cosα1+cosα2sinα1sinα2θ-sinα2

则上述方程的解为

上述两组解为被动机位置的解析解,其极坐标为(           (n₁,φ₁)与(r₂,φ₂).   在几何上这两组解对应的被动机位置以三架主动机对应圆心角的角平分线为轴对称分布,如图4所示。特殊地,当被动机与相应角平分线的延长线重合时,方程的两个解相等,如图5所示。

为了准确知道被动机的具体位置,故应提出假设:被动接收信号的无人机已知自己对应的编号。基于此假设,可以确定被动机位置的唯一解。在实际情况中,一定

编号的无人机对应的遥控设备往往固定,故此假设是合理的。

在图5的情况中, FY07为被动机, FY00, FY04, FY01为主动机。当被动机位置略有偏差时,α₁与α₂近似相等。由于传感器的无源性,且仅能接收到方向信息,故FY07 并不知道α₁与α₂对应的主动机编号。因此,FY07 的实际位置可能有两个,即如图5所示的M,N两点。

为找出 FY07 位置的真实点,可假设信号源发射的次序已知,即信号源发射信号并非同时,则FY07 接收到的信号并非无序的集合。基于此可知角α₁与α₂对应的主动机,从而可剔除FY07位置的虚假点,确定其真实位置。

5.1.3被动接收信号无人机位置的调整方案

定位被动机后可更明确地知道其偏离程度。为了尽可能地减小这种偏离程度,故在此提出被动机位置的调整方案。由于圆的高度对称性,主动机的排布共分四种,如图6所示:

7

图6 主动机的四种排布

以排布方式 1为例讨论被动机位置的调整方案,其余三种排布同理。如图 7所示, FY00, FY01, FY02为主动机, P点为被动机所在位置, 根据5.1.1 中方位角的定义,  ∠PFOF]=α₁,∠PF0F2=α₂,∠F1PF2=α₃,易知    ∠F1FOF2=40°,若P的位置无偏差,则各无人机对应的方向角如表1所示。

表1 无偏差时P的方位角

FY03

FY04

FY05

FY06

FY07

FY08

FY09

α₁

50°

30°

10°

10°

10°

30°

50°

α₂

α₃

70°

20°

50°

20°

30°

20°

20°

10°

30°

20°

50°

20°

70°

20°

若P的位置有偏差,则可将被动机的位置分为两种情况讨论。

1. 当P点在圆周上时,方位角满足:

2. 当P点不在圆周上时,根据圆的性质:同弧所对的圆外角<圆周角<圆内角,则在图6中,对于       F1F2,P在圆外时,     α₃<20°;P在圆内时,     α₃>20°

因此,若要将有偏差的被动机调至无偏差,应按以下步骤进行:

Step1:观测被动机接收到的方位角信号,利用α₁与α₂计算出α₃。

Step2:比较α₃与20°的大小,若          α₃>20°,跳至    Step3:     α₃<20°,跳至Step4: 若    α₃=20°, 跳至 Step5。

Step3:被动机在圆内,应沿径向背离圆心飞行,直至               α₃=20°

Step4:被动机在圆外,应沿径向朝向圆心飞行,直至               α₃=20°,

Step5:被动机在圆周上,进行角度微调。应沿切线方向飞行(无人机不施加朝向圆心的力),直至α₁与α₂和无偏差的方向角重合。

5.2问题二:主动发出信号无人机的数目确定

为确定在已知位置无偏差的FY00,FY01为主动机外,还需几架位置无偏差的主动机才能准确定位被动机,可以考虑从圆形编队的性质出发。首先提出引理1,得出正九边形圆周角与伪圆周角的数学规律:其次基于该规律,结合两集合相等的判定,即可以推测出未知主动机的编号,从而将其转化为5.1中被动接收信号无人机的定位模型,确定主动发出信号无人机的数目。

5.2.1定义与引理

定义 1:记正九边形为         A1A2A0,圆心为O,称      ∠A₁AⱼOi≠j为正九边形的伪圆周角, ∠A₁A₂A₄(i,j,k互不相等)为正九边形的圆周角.            ∠A₁OA₁i≠j为正九边形的圆心角,如图8所示。

引理 1:对于正九边形的圆周角α,存在正整数k,使得α=20°k:对于正九边形的伪圆周角β,存在正整数l,使得           β=10°2l-1,

引理 1 是显然的。因为正九边形的圆心角∠A₁OA₃(i≠j)可以表示为40°k(k为正整数), 那么其对应的圆周角∠A₁A₁A₃(i≠j,k与i,j不相等)就可以表示为20°k(k为正整数),并且其对应的伪圆周角。                ∠OA,A,i+j可以表示为 180°-40°k/2=90°-20°k=10°2l-1(l为正整数),如图9,引理1得证。

5.2.2未知编号无人机数目的确定

下面我们证明:除FY00和FY01外,只需要一架无人机发射信号,就可以实现无人机的有效定位。

不妨设发射信号的无人机为0,1,i(i待定),接收信号的无人机为j; 无人机0,1,j形成的圆心角为θ:无人机j收到来自无人机0,1,i的方向信息为α,β₁γ。

易知,α,β₁γ三个角中必有一个为正九边形的圆周角,不妨设α为该角。从而i 的位置可能有两个,记为t₁,i₂。

1)   α<90°-θ/2时,利用几何关系可以得到,无人机0,1,i₁发射给j的方向信息为集合I₁:

 I1=α1802180-θ-2α2

9

同样可求,无人机0,1,i₂发射给j的方向信息为集合       I₃:

 I2=α1802α+180-θ2

 I₁≠I₂,   在模型假设3.4误差      ±5°下,    I₂中的元素

 α+1802≠α,1802,180-θ-2α2

此处不相等指在±5°误差波动下,上式不等号左右取值无交集。

 I₁不可能等于    I₂,从而可以根据无人机j实际接收到的方向信息确定出无人机i₂,i₂哪个发射的信号,不妨设i₁发射的信号。这样,发射信号的无人机0,1,i₂位置无偏差且编号已知,根据5.1中被动接收信号无人机的定位模型,即可实现无人机j的有效定位。

2)当α>90°-θ/2时,t₁,i₂的位置可能与上述略有不同,但无本质区别。不过是,无人机0,1,i₁发射给j的方向信息集合I₁变为

 I1'=α1802α-180-θ2

无人机0,1,i₂发射给j的方向信息集合I₁变为

 I2'=α1802α+180-θ2

同样,在模型假设3.4误差±5°下,仍有         I₁≠I₂,同上所证,可实现无人机j的有效定位。

综上所述,在假设3.4误差±5°内,除FY00和FY01外,只需要一架无人机发射信号,就可以实现无人机的有效定位。

5.3问题三:圆形编队的具体调整方案

可将此问题分为四个步骤进行。首先基于一般的模型,对无人机初始位置进行预处理,证明通过无人机径向的调整后,可使得距离误差缩小。其次,分两种方案建立局部最优模型,即每次选取圆周上两或三架无人机发射信号。以两种方案中对应的方位角向量和标准值向量的范数平方的最小值作为目标函数。随后,以两个方案中每个点最后一次调整后对应目标函数的和作为误差函数,来评估无人机的调整方案。最后代入题目中已给的初始数据,并利用计算机模拟生成初始位置的随机数来衡量模型的灵敏性。

5.3.1无人机初始位置的预处理

记理想无人机所围成圆的半径为R。由于图形的相似性(两个相似的图形,对应角相等),故必须有一架无人机距圆心距离为R。记极坐标下无人机位置分别为 00,R0,(R+εk,40k-1+ξ∪,k=2,3,⋯,9,其中Eₖ与b₀分别为半径误差与角度误差。由于初始时刻无人机的位置略有偏差,故不妨设eₖ∈(-15%R, 15%R), &∈{-0.5°, 0.5°},k=2,3,…,9。

对初始时刻无人机的位置进行预处理,使得对                         距离误差eₙ可缩小至(-5%R, 5%R)。预处理过程如下:

对任意无人机j∈{2,3,……,9}, 其极坐标为(              R+ϵₙ40j-1+ξᵢ,将其沿径向调整,使其从无人机0,1接收到的方向信息角调整为              α₃-90°-20°j-1,

沿径向调整是因为,无人机j只知道来自0,1无人机的方向信息角,不知道其极角为  40°j+ξ,沿其他方向调整很可能会使其极角更大程度的偏离40°j。

下面我们证明,通过对无人机初始位置预处理,可以将距离误差缩小至 ε₄∈(-5

由正弦定理可得

 0j'sin180-90-20j-1-40j-1+ξ3=Rsin90-20∘j-1

整理得

11

 H0y'=cos20j-1cos20j-1=cosξ-tan20ksinξ (关于k,ξ,单调递减)

 ≤cos-0-tan20°ᵉ⁺4sin-05°

≈1.049

从而距离误差

 ε,=|R-0j|R≈0.049<5%

由此可见,对无人机初始位置预处理是必要的。一方面,预处理可使距离误差缩小至更小的范围,如图13 所示。更重要的是,通过下面局部最优模型可以看出,初始位置预处理将大大减小目标函数最优值搜索次数。我们知道,一次搜索对应k次无人机向外发射电磁波信号。初始位置预处理意味着将大大减少无人机向外发射电磁波信号的次数。

5.3.2局部最优模型的建立

由于无人机定位系统的无源性,各无人机之间的信息不共享,故无法通过全局对无人机位置进行调整。下面通过局部最优模型,实现无人机位置尽可能均匀分布在以R为半径的圆周,且无人机向外发射电磁波信号的总次数尽可能小。

以无人机0为原点,01方向为x轴正方向建立平面直角坐标系xOy,并假设1的位置(R,0)是准确的。

下面介绍两种调整方案,一种是每轮调整仅选取圆周上三架无人机发射信号,其余无人机被动接收信号并作出调整:另一种是每轮调整仅选取圆周上两架无人机发射信号,其余无人机被动接受信号并做出调整。最后,定义误差函数,量化两种方案调整的好坏。

方案一:每次选取圆周上三个无人机发射信号

考虑到正九边形的对称性,258、369、471三组无人机均近似构成等边三角形,将他们依次作为发射信号的无人机,其余无人机(除无人机1) 接收信号根据局部最

优模型做出调整。注意,无人机1的位置是准确的,始终不调整。

Step1:选取0258 为发射信号无人机,134679 无人机被动接受信号并作出调整(1不需要调整)。由于对称性,以无人机3为例(其余无人机与3无本质区别),其调整方式如下:

记∠530=α,∠038=β, ∠032=γ。           由正九边形几何关系易知,α,β₁γ三个角的理想值分别为50°,10°, 70°.记x=[α,β₁γ]°,y=[50°, 10°, 70°]°, 建立目标函数

 J₃αβγ=||x-y||²=α-50°²+β-10°²+γ-70°²

f₃下标为对应无人机编号。依此,其余待调整无人机目标函数为f₄,f₀,f₀,f₀。以无人机 3为中心,在边长为a的正方形区域内以步长b进行搜索,使目标函数达到最小值。设置邻域边长、搜索步长只是为了利用 Python对无人机实际调整进行仿真模拟。实际情况是无人机在其原来位置附近任意搜索。

注意到,此处(包括下面及方案二) 定义的目标函数不是全局函数,其仅通过待调整飞机接受到的信息α建立的,y是根据模型假设3.4在α的基础上推断出来的。

Step2:选取0369 为发射信号无人机,124578无人机被动接受信号并作出调整(1不需要调整)。调整方式同Step1,无人机2的目标函数记为g₂。其余待调整无人机目标函数为g₄,g₀,97,98。

Step3:选取0471 为发射信号无人机,235689 无人机被动接受信号并作出调整(1不需要调整)。调整方式同Step1,无人机2的目标函数记为h₂。其余待调整无人机目标函数为h₃,h₅, ho, ha, ho.

Step4:设置循环次数阈值η,以控制无人机调整结束。记总循环次数为σ,一次循环指先选取选取0258为发射信号无人机,其他无人机作出调整,然后选取0369为发射信号无人机,其他无人机作出调整,最后选取0471为发射信号无人机,其他无人机作出调整。一次循环每架无人机(无人机0,1除外)均被一次选做发射信号无人机与选做两次被动接受信号无人机做出调整。也即,若总循环次数为σ,各无人机调整次数如表2所示:

13

表2 步骤一循环时各无人机调整次数

飞机编号                  0              1             2~9

调整次数                 0              0            

总调整次数为2σ×3×8=48σ。若每架无人机(0,1 除外)调整次数超过η,即σ>η/2.  则该飞机调整结束。否则,       σ≤η/2.  返回Step1继续调整。

Step5:定义误差检测函数

 μ=h₂+h₃+g₄+h₅+h₆+gr+h₅+hₐ

量化无人机趋于正九边形程度。

注意,g₄,h₃均为无人机i,j最后做出调整时对应的目标函数。定义全局误差函数以衡量无人机调整方案的好坏是合理的。因为,无人机并没有根据全局误差函数做出位置调整,这并不违反无人机间信息不共享的前提。

综上所述,方案一对应的流程图可表示如下:

方案二:每次选取圆周上两个无人机发射信号

分别选取027、038、049、015、016无人机发射信号,调整方案与方案一本质相同。仅以025无人机发射信号为例。

Step1:选取027 为发射信号无人机,1345689无人机被动接受信号并作出调整(1不需要调整)。以无人机9接收信号为例(其余无人机与3大同小异,目标函数见表3),其调整方式如下:

依次保持根据经营

记∠709=α,∠902=β。由正九边形几何关系易知,α,β三个角的理想值均为 50°  (不同发射信号的无人机,不同接受信号的无人机确切指导见表3)。记x=[α,β]ᶻ,γ=[50°, 50°]ᶻ, 建立目标函数

 f₀αβγ=||x-y||²=α-50°²+β-50°²

f₀下标为对应无人机编号。依此,其余待调整无人机目标函数为f₀,f₄,f₀,f₀,f₀。以无人机9为中心,在边长为a的正方形区域内以步长b调整,使目标函数达到最小值。

表3 目标函数序列

2

3

4

5

027

(70°,10°)

(30°,50°)

(30°,50°)

038

(70°,30°)

(70°,10°)

(50°,30°)

049

015

(50°,50°)

(70°,30°)

(70°,10°)

(70°,30°)

(50°,50°)

(70°,30°)

016

(70°,10°)

(50°,30°)

(50°,30°)

(70°,10°)

续表3 目标函数序列

6

7

8

9

027

038

(70°,10°)

(70°,30°)

(50°,50°)

(50°,30°)

(70°,10°)

(70°,30°)

049

(50°,30°)

(50°,30°)

(70°,10°)

015

016

(70°,10°)

(50°,30°)

(70°,30°)

(50°,30°)

(50°,50°)

(70°,10°)

(70°,30°)

Step2:选取038三架为发射信号无人机,无人机1245679被动接受信号并作出调整(1不需要调整)。调整方式同Step1,目标函数记为g₁。

Step3:选取049三架为发射信号无人机,无人机1235678被动接受信号并作出调整(1不需要调整)。调整方式同Step1,目标函数记为h₁。

Step4:选取015三架为发射信号无人机,无人机2346789被动接受信号并作出调

15

整。调整方式同Step1,目标函数记为t₄。

Step5:选取016三架为发射信号无人机,无人机2345789被动接受信号并作出调整。调整方式同Step1,目标函数记为v₁。

Step6:设置循环次数阈值η,以控制调整结束。仍记总循环次数为σ。σ参数含义同步骤一所述相同。各无人机调整次数如下表

表4 步骤二循环时各无人机调整次数

飞机编号                 0             1              2~9

调整次数                 0             0               

总调整次数为4σ×2×8=64σ次。从而若每辆无人机(0,1除外) 调整次数超过η, 即σ>η/4, 则该飞机调整结束。否则,σ≤η/4, 返回Step1继续调整。

Step7:定义误差检测函数

 μ-v₂+v₃+v₄+v₃+u₆+v₇+v₈+v₉

量化无人机趋于正九边形程度。

注意,u₁. v,含义均为无人机i,j最后做出调整时对应的目标函数。定义全局误差函数以衡量无人机调整方案的好坏同样是合理的。无人机并没有根据全局误差函数做出位置调整,同样不违反无人机间信息不共享的前提。

综上所述,方案二对应的流程图可表示如下:

5.3.3模型的检验与仿真

通过仿真模拟对局部最优模型进行检验。无人机实际情况是可以沿任意方向微

调的,为了对无人机进行仿真模拟,取搜索区域正方形边长a=0.2、搜索步长b=0.01(这对应无人机在原来位置微调),编写 Python程序求解模型。

仿真求解模型实际是求如下函数的最优值对应的(i,j):

其中,f。是无人机.    A.(u=2,3,…,9)的目标函数, Angle<A, B, O)表示边AO与边BO的的夹角,Ideal。。表示无人机v,0发射信号u接收方向信息的理想值。方案一选取三架无人机,v取三个值; 而方案二选取两架无人机,v取两个值。

对题目中已给的原始坐标的调整方案求解结果如下:

通过方案一(每次选取圆周上三个无人机发射信号) 与方案二(每次选取圆周上上两个无人机发射信号) 调整完后的无人机极坐标对比见表4:

表5 原始坐标、方案一与方案二调整完后的坐标对比

无人机编号

原始值

方案一

方案二

0

(0,0)

(0,0)

(0,0)

1

2

(100,0)

(100,0)

(100,0)

3

(98,40.10)

(99.9932,40.0051)

(100.0009,40.0015)

(112,80.21)

(99.9969,80.0075)

(99.9987,80.0019)

4

5

(105, 119.75)

(99.9967,120.0052)

(100.0004,119.9974)

(98, 159.86)

(99.9959,160.0013)

(99.9993,159.9959)

6

7

(112,199.96)

(99.9953,200.0066)

(100.0013, 199.9993)

8

(105,240.07)

(99.9986,240.0064)

(100.0036,240.0014)

9

(98,280.17)

(112,320.28)

(100.0037,280.0031)

(100.0055.320.0043)

(100.0019,279.9975)

(99.9979,320.0007)

无人机原始位置、预处理后的位置与方案一、方案二调整完后的位置见极坐标图18:

17

图 18 是预处理前原始位置、预处理后局部调整前位置、两种方案分别调整后位置对比图。可以看出,预处理后,无人机位置已经很接近正九边形了。所以调整前后的图是十分相似的,没有很明显的区别。无人机5可以较明显地看出两种方案调整后的位置。

方案一与方案二的全局检验误差值函数              μ₁,μ₂如图19所示:

两种方案全局检验误差关于总循环次的具体值见表5:

表6 两种方案全局检验误差关于总循环次的具体值

次数       1       2       3        4       5        6       7        8

方案二      0.0969    1.90c-06    1.24c-06    8.36c-07     7.26e-06    5.96c-06     5.96c-06    5.96c-06

方案一      0.0956     0.0523     0.0446      0.0302      0.0254     0.0160      0.0067      0.0009

续表6 两种方案全局检验误差关于总循环次的具体值

次数      9       10      11       12        13      14      15      16

方案二     5.96e-06     5.96e-06     5.96e-06     5.96e-06   5.96e-06   5.96e-06     5.96e-06     5.96e-06

方案一      0.0002     5.35c-05     5.35c-05     5.35c-05   5.35c-05   1.01c-05     7.42c-05     7.42e-05

对比两个方案可以得出如下两点结论:

1) 方案二的收敛速度要明显优于方案一的收敛速度

方案二在循环1次后,全局检验误差就从0.1降到了1.901e-06,而方案二需要循环7次才能进全局检验误差从0.1缩小至0.0067。即方案二所有无人机调整64σ=64次,全局检验误差就可以缩小至很小的收敛值;而即方案一所有无人机通过调整48σ=48×7=336次,全局检验误差才可以缩小至较小的收敛值,收敛值约为前者十倍。

2) 方案二的全局检验误差的收敛值远远小于方案一的全局检验误差的收敛值

方案二的全局检验误差在循环6次后达到稳定值5.961e-06,方案二的全局检验误差循环15次才达到稳定值7.42e-05。

究其原因,我们推测,求解模型是一个离散化的过程,即以一定步长在待调整点

代码部分

#以258为发射点, 点p作为接收点的调整策略,调整策略仅依据三个接收角,该调

整为一轮调整中的第一部分

deff258_p(p):

#局部调整一个点(以258为发射点调整接收点3)

#一次调整的过程

#三个接收角度

angle0p2= calculate _ angle(x_ lst[p]. y_ lst[p]. x_ lst[0]. y_ lst[0]. x_ lst[2]. y_ lst[2])

angle0p5= calculate _ angle(x_ lst[p]. y_ lst[p]. x_ lst[0]. y_ lst[0]. x_ lst[5]. y_ lst[5])

angle0p8= calculate _ angle(x_ lst[p]. y_ lst[p]. x_ lst[0]. y_ lst[0]. x_ lst[8]. y_ lst[8])

angle0p2_ ac c=angle0p2

angle0p5_ acc=angle0p5

angle0p8_ acc=angle0p8

 objective _ fp=( max(angle0p2,angle0p5,angle0p8)-

70)**2+( mid(angle0p2,angle0p8)-50)**2+( min(angle0p2,angle0p5,angle0p8)-

10)**2

 objective _ min _ fp= objective _ fp

 objective _ fp _ lst=[]

i_ min=10

j_ min=10

 for i in range(0,21):

 for j in range(0,21):

 tmp _x=x_ lst[p]+0.01*(i-10)

 tmp _y=y_ lst[p]+0.01*(j-10)

angle0p2= calculate _ angle( tmp _x, tmp _y,x_ lst[0], y_ lst[0], x_ lst[2], y_ lt[2])

angle0p5= calculate _ angle( tmp _x, tmp _y,x_ lst[0], y_ lst[0], x _ lst[5],y_ lt[5])

angle0p8= calculate _ angle( tmp _x, tmp _y,x_ lst[0],y_ lst[0], x_ lst[8], y_ lst[8])

 objective _ tmpp=( max(angle0p2,angle0p5,angle0p8)-

70)**2+( mid(angle0p2,angle0p5,angle0p8)-50)**2+( min(angle0p2,angle0p5,angle0p8)-

10)**2

# objective  f3   lst. append(( max(angle032,angle035,angle038)-

70)**2+( mid(angle032,angle035,angle038)-50)**2+( min(anglc032,angle035,anglc038)-10)**2)

 if objective   tmpp< objective   min   fp:

 objective   min   fp- objective   tmpp

j  min=j

i  min=i

angle0p2  acc=angle0p2

angle0p5  acc=angle0p5

angle0p8  acc=angle0p8

x  lst[p]+=0.01*(i  min-10)

y  lst[p]+=0.01*(j  min-10)

# print(& apos;f& apos;. p,angle0p2  acc, angle0p5  acc, angle0p8  acc, objective   fp, obj  ective   min   fp)

附录4

引理1仿真定位。完整代码见支撑材料

 import numpy as np

#三维坐标初始化 ABCD 列表第一列为空值验证

#顺序 0ABCD

#自己设计一组原始数据

x_ lst=[0,175/10-1,0,173/10, 174/10+1]

y_ lst=[0,99/10+1,0,-100/10+1,0]

z_ lst=[0,0.1,0,0.15,-0.15]

x_ lst _ origin= tuple(x_ lst)

y_ lst _ origin= tuple(y_ lst)

z_ lst _ origin= tuple(z_ lst)

 print(& apos;原始坐标x& apos;,x_ kst)

 print(& apos;原始坐标y& apos;,y_ lst)

 print(& apos;原始坐标z& apos;,z_ lst)

#角度计算

 def calculate _ angle _ dimension _3(x0,y0,z0,x1,y1,z1,x2, y2,z2):

dis0=(x1-x2)**2+(y1-y2)**2+(z1-z2)**2

dis1=(x2-x0)**2+(y2-y0)**2+(z2-z0)**2

dis2=(x1-x0)**2+(y1-y0)**2+(z1-z0)**2

 cos _ angle=(dis2+dis1-dis0)/(2* np. sqrt(dis1)* np. sqrt(dis2))

 angle= np. arccos( cos _ angle)

 return angle/ np. pi* 180

 angle _BAC- calculate _ angle _ dimension _3(x_ lt[1],y_ lst[1],z_ kt[1], x_ lst[2],y_ lst[2].

z_ lst[2],x_ lst[3], y_ lst[3].

z_ lst[3])

 angle _BCA= calculate _ angle _ dimension _3(x_1st[3],y_ lst[3],z_ lst[3], x_ lst[1],y_ lst[1].

z_ lst[1],x_ lst[2], y_ lst[2],_

z_ lst[2])

angleD= calculate _ angle _ dimension _3(x_ lst[4]. y_ lst[4]. z_ lst[4]. x_ lst[1]. y_ lst[1]. z_ ls

t[1],x_ lst[3].

y_ lst[3],z_ lst[3])

 def mid(x,y,z):

 if x!= max(x,y,z) and x!= min(x,y,z):

 return x

 elify != max(x,y,z) and y != min(x,y,z):

 returny

 else:

 return z

#原始角度

 print(& apos;原始角度

 angle _BCA, angle _BAC, angleD& apos;, angle _BCA, angle _BAC, angleD)

#调整D点 目标角ADC=180

def fD_180(p):

angleD- calculate _ angle _ dimension _3(x_ lst[4], y_ lst[4],z_ lst[4],x_ lst[1], y_ lst[1],z

_ lst[1],x_ lst[3].

y_ lst[3],z_ lst[3])

angleD_ acc=angleD.

 objective _fD=(angleD-180)**2

 objective _ min _fD= objective _fD

 objective _fD_ lst=[]

i_ min=10

j_ min=10

k_ min=10

 for i in range(0, 21):

 for j in range(0,21):

 for k in range(0,21):

 tmp _x=x_ lst[p]+0.01*(i-10)

 tmp _y=y_ lst[p]+0.01*(j-10)

 tmp _z=z_ lst[p]+0.01*(k-10)

angleD= calculate _ angle _ dimension _3( tmp _x, tmp _y, tmp _z, x_ lst[1], y_ lst[1

]. z lst[1].

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值