无人机编队飞行定位分析与讨论
Posted YouCans
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无人机编队飞行定位分析与讨论相关的知识,希望对你有一定的参考价值。
建议收藏,顺手点赞一下吧。。。
文章目录
2. 算法讨论
2.1 定点定角模型的轨迹是圆或圆弧,平面上几个圆可以确定坐标呢?不能再多说了~
参见 某乎 问题,或者在 某度 搜一下:
- 【一动点P到两定点的夹角是定值,请问 P 点的运动轨迹是什么?】(https://www.-----.com/question/542665419)
- 【特殊的动点轨迹专题二之到两定点连线夹角问题】(https://zhuanlan.-----.com/p/248497065)
定弦定角,顾名思义,弦是固定的,也就是弦的长度是不变的。定角的意思,是弦所对应的角度大小固定,也就是不变的意思。 根据圆周角定理,我们知道圆周角等于圆心角的一半,那么这个圆周角的顶点不是固定的,它旋转的轨迹是圆或者圆弧。
线段定,角度大小定(因此要求发射源位置无偏差,这很重要)。
2.2 脑筋急转弯:朝三暮四还是朝四暮三?
两定点与动点成一夹角,决定一个圆(圆弧)。能不能确定平面上的一个点?
如果不能的话,至少需要几个点,几个圆?
前问已经证明几个定点可以确定平面上的一个点?
至少要几个定点才能确定一个点的坐标,且只要有几个定点就能确定一个点的坐标?
2.3 1+3 的调整方案?
多读几遍题目,否则很容易误解。
提示:
(1)另外有 9架,“每次”选择 3架。
(2)每次不一定选相同的 3架。
2.4 这个编队很酷,不过也容易误解
提示:
(1)这不是锥形——没错,这句话是提示。
(2)解放东南,如果需要100架,1000架,你的方案还有效吗?也就是说,好的方案不是只针对 10架,15架。
2.5 规划问题参考例程——以下程序不是问题例程
Python数模笔记-PuLP库(1)线性规划入门 PuLP库(1)线性规划入门
Python数模笔记-PuLP库(2)线性规划进阶 PuLP库(2)线性规划进阶
Python数模笔记-PuLP库(2)线性规划进阶 PuLP库(3)线性规划实例
import pulp # 导入 pulp库
# 1.建立优化问题 AlloyLP: 求最小值(LpMinimize)
AlloyLP = pulp.LpProblem("合金生产材料优化", sense=pulp.LpMinimize) # 定义问题,求最小值
# 2.定义决策变量 x1~x7
x1 = pulp.LpVariable('废料1#', lowBound=0, upBound=75.0, cat='Continuous') # 定义 x1
x2 = pulp.LpVariable('废料2#', lowBound=0, upBound=250., cat='Continuous') # 定义 x2
x3 = pulp.LpVariable('废料3#', lowBound=0, cat='Continuous') # 定义 x3
x4 = pulp.LpVariable('废料4#', lowBound=0, cat='Continuous') # 定义 x4
x5 = pulp.LpVariable('原料镍', lowBound=0, cat='Continuous') # 定义 x5
x6 = pulp.LpVariable('原料铬', lowBound=0, cat='Continuous') # 定义 x6
x7 = pulp.LpVariable('原料钼', lowBound=0, cat='Continuous') # 定义 x7
# 3.定义目标函数 cost
AlloyLP += (16*x1 + 10*x2 + 8*x3 + 9*x4 + 48*x5 + 60*x6 + 53*x7) # 投料成本
# 4.设置约束条件
AlloyLP += (x1 + x2 + x3 + x4 + x5 + x6 + x7 == 1000) # 等式约束
AlloyLP += (0.8*x1 + 0.7*x2 + 0.85*x3 + 0.4*x4 >= 0.65*1000) # 不等式约束
AlloyLP += (0.8*x1 + 0.7*x2 + 0.85*x3 + 0.4*x4 <= 0.75*1000) # 不等式约束
AlloyLP += (18.0*x1 + 3.2*x2 + 100.0*x5 >= 3.0*1000) # 不等式约束
AlloyLP += (18.0*x1 + 3.2*x2 + 100.0*x5 <= 3.5*1000) # 不等式约束
AlloyLP += (12.0*x1 + 1.1*x2 + 100.0*x6 >= 1.0*1000) # 不等式约束
AlloyLP += (12.0*x1 + 1.1*x2 + 100.0*x6 <= 1.2*1000) # 不等式约束
AlloyLP += (0.1*x2 + 100.0*x7 >= 1.1*1000) # 不等式约束
AlloyLP += (0.1*x2 + 100.0*x7 <= 1.3*1000) # 不等式约束
AlloyLP += (x1 + x2 + x3 + x4 + x5 + x6 + x7 == 1000) # 等式约束
# 5.求解线性规划问题
AlloyLP.solve()
# 6.输出优化结果
print(AlloyLP) # 输出问题设定参数和条件
# print("求解状态:", pulp.LpStatus[AlloyLP.status]) # 输出求解状态
for v in AlloyLP.variables():
print(v.name, " = ", v.varValue) # 输出每个变量的最优值
print("最小材料成本 = ", pulp.value(AlloyLP.objective)) # 输出最优解的目标函数值
# = 关注 Youcans,分享原创系列 https://blog.csdn.net/youcans =
2.6 选址问题参考例程——以下程序不是问题例程
Python小白的数学建模课-07.选址问题 Python小白的数学建模课-07.选址问题
# mathmodel09_v1.py
# Demo08 of mathematical modeling algorithm
# Solving set covering problem with PuLP.
# Copyright 2021 Youcans, XUPT
# Crated:2021-06-06
# Python小白的数学建模课 @ Youcans
import pulp # 导入 pulp 库
# 主程序
def main():
# 问题建模:
"""
决策变量:
x(j) = 0, 不选择第 j 个消防站
x(j) = 1, 选择第 j 个消防站, j=1,8
目标函数:
min fx = sum(x(j)), j=1,8
约束条件:
sum(x(j)*R(i,j),j=1,8) >=1, i=1,8
变量取值范围:
x(j) = 0,1
"""
# 消防站的选址问题 (set covering problem, site selection of fire station)
# 1.建立优化问题 SetCoverLP: 求最小值(LpMinimize)
SetCoverLP = pulp.LpProblem("SetCover_problem_for_fire_station", sense=pulp.LpMinimize) # 定义问题,求最小值
# 2. 建立变量
zones = list(range(8)) # 定义各区域 youcans
x = pulp.LpVariable.dicts("zone", zones, cat="Binary") # 定义 0/1 变量,是否在该区域设消防站
# 3. 设置目标函数
SetCoverLP += pulp.lpSum([x[j] for j in range(8)]) # 设置消防站的个数
# 4. 施加约束
reachable = [[1, 0, 0, 0, 0, 0, 0, 0],
[0, 1, 1, 0, 0, 0, 0, 0],
[0, 1, 1, 0, 1, 0, 0, 0],
[0, 0, 0, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 0, 0, 0],
[0, 0, 0, 0, 0, 1, 1, 0],
[0, 0, 0, 0, 0, 0, 1, 1],
[0, 0, 0, 0, 0, 0, 1, 1]] # 参数矩阵,第 i 消防站能否在 10分钟内到达第 j 区域
for i in range(8):
SetCoverLP += pulp.lpSum([x[j]*reachable[j][i] for j in range(8)]) >= 1
# 5. 求解
SetCoverLP.solve()
# 6. 打印结果
print(SetCoverLP.name)
temple = "区域 %(zone)d 的决策是:%(status)s" # 格式化输出
if pulp.LpStatus[SetCoverLP.status] == "Optimal": # 获得最优解
for i in range(8):
output = 'zone': i+1, # 与问题中区域 1~8 一致
'status': '建站' if x[i].varValue else '--'
print(temple % output)
print("需要建立 个消防站。".format(pulp.value(SetCoverLP.objective)))
return
if __name__ == '__main__': # Copyright 2021 YouCans, XUPT
main() # Python小白的数学建模课 @ Youcans
3. 参考文献——不一定有参考价值
[1]邹先雄. 无人机目标无源定位方法研究[D].电子科技大学,2018.
摘要:近年来,无人机行业迅猛发展。在无人机为人们带来便利的同时,也成为了不法分子手中的犯罪工具。对无人机实现管制已经势在必行,而管制的前提是能够对黑飞无人机实现精确定位。基于无源定位的方法具有抗干扰能力强,可以全天候工作,在无人机起飞前就能实现对无人机和操作手的定位等诸多优点。首先,本文对跳频通信进行了理论研究,并在实验室采集无人机信号(包括控制信号和图传信号)进行分析。然后,结合无人机的特点,本文研究了交叉定位算法和无源定位算法在较小区域(一般考虑半径为2000m)内对无人机的定位性能。实现精确的交叉定位的前提是多个测向基站测得无人机准确方位角(和俯仰角),然后通过定位算法解得无人机的平面(或空间)坐标。接下来,本文研究了幅度搜索法测向、全向振幅单脉冲测向、相位干涉仪测向、相关干涉仪测向和空间谱测向五种常用测向算法在小区域内对无人机的测向性能,并对影响每种测向算法测向精度的因素进行了仿真分析。在总结分析上述算法的优劣之后,本文提出基于微带天线的幅度比值查表法测向。对FFT变换、包络检波和直接平均三种幅度提取算法进行仿真分析以确定最佳的幅度提取算法,并对算法的可行性进行了验证,为工程实现提供理论技术准备。最后,本文对二维平面、三维空间下的双站、多站交叉定位分别进行了分析仿真,对影响定位精度的因素也做了仿真研究,并对二维平面双站定位的模糊区域面积,二维平面、三维空间交叉定位精度的GDOP都进行了研究。本文在分析了无源时差定位的定位原理之后,对常用的Chan定位算法和Taylor定位算法进行了分析及仿真,验证了其定位能力。并以Chan算法为基础进行了不同布站方式下的定位精度的GDOP的仿真分析。现阶段,对无人机跳频信号进行时差估计的精度难以保证,以及在小区域内采用时差定位对时差测量精度要求更为苛刻。结合以上研究,本文认为现阶段在实际工程中采用交叉定位成本更低,系统实现更容易,精度也可以得到保证。
[2]屈小媚,刘韬,谈文蓉.基于多无人机协作的多目标无源定位算法[J].中国科学:信息科学,2019,49(05):570-584.
基于多无人机协作的无源目标定位是无人机在军事侦察等领域应用的关键技术.现有研究大部分针对单目标的无源定位,本文研究利用到达时间差观测对多目标进行无源定位的高效算法.将已有的两步加权最小二乘方法中辅助变量与目标位置的非线性关系作为约束,建立约束加权最小二乘多目标定位模型,并化简为含多个二次不定等式约束的二次规划问题.这是一个NP-hard的非凸优化问题.本文提出一种CWLS (constrained weighted least squares)近似迭代算法,在迭代过程中用线性等式约束近似二次不定等式约束,使其近似优化问题有解析解.理论分析表明,该算法收敛的极限一定是原问题的全局最优解. Monte Carlo实验表明,该算法在绝大部分情况下能快速收敛,且对多目标定位的精度优于两步加权最小二乘方法.
[3]王仁军. 基于UWB定位的无人机集群系统[D].杭州电子科技大学,2019.
摘要:随着无人机技术的日趋成熟,无人机应用趋势逐渐由单机执行任务转为多机协同执行任务,朝着集群化的方向快速发展,并在军事和民用领域都呈现出广阔的应用前景。而无人机集群的关键技术点在于实现无人机的精确定位,目前多数采用GNSS或双目视觉的定位方案。但在复杂的室内场景中,仍很难获取到高精度、高稳定性的定位信息。因此,本文对UWB定位和无人机集群编队技术进行了研究,提出了基于UWB定位的无人机集群系统方案,并软硬件全自主设计了适用于UWB定位的微型四旋翼无人机,搭建了无人机集群编队平台。主要包含如下几个方面的内容:(1)对UWB的技术特点进行了分析,尤其是在无人机定位方面的优势,研究了几种常用的UWB定位方法,并结合无人机应用场景,提出了基于RTOF定位方法的优化方案。(2)分析几种常用的无线组网通信技术,提出了一种适用于微型无人机的WiFi自适应组网通信方案,并通过实验验证了方案的有效性。(3)主要研究了无人机的运动模型和集群编队模型。针对无人机编队形成与保持问题,研究了优化人工势场算法应用于无人机集群编队的可行性,仿真验证了该方法能够保证无人机编队在虚拟无人机的带领下,完成跟踪其轨迹并保持稳定的队形。(4)软硬件全自主设计了适用于UWB定位的微型四旋翼无人机,研究了无人机的姿态解算算法和PID控制算法,为基于UWB定位的无人机集群研究提供平台基础。(5)从无人机的基本飞行功能、空间定位效果、集群编队三个方面进行了系统综合测试与分析,验证方案的可行性。本文通过对无人机集群编队技术的研究和分析,有针对性的提出了基于UWB的室内定位解决方案。经过大量的测试验证,该方案具有高可靠和高精度的特性,对室内环境下无人机集群研究提供了一定的参考价值。
[4]李晓辉,方坤,樊韬,刘佳文,吕思婷.基于支持向量机的无人机定位信号分离算法研究[J].电子与信息学报,2021,43(09):2601-2607.
摘要:为了解决无人机(UAV)无源定位中难以从多径干扰严重的环境中提取无人机定位信号的问题,该文提出一种基于支持向量机(SVM)的无人机定位信号分离算法,在SVM模型训练时,通过计算无人机相邻数据集之间的欧氏距离获取信息熵,为SVM映射高维空间提供模型数据。在此基础上,加入映射函数阈值软边界,使模型具有参数自适应调整能力,来适应无人机运动灵活所导致的数据差异。最后构建了观测者操作特性曲线获取无人机定位信号分离结果。仿真结果表明所提算法能够有效分离无人机定位信号与噪声,在多径干扰严重的情况下具有较高的信号分离准确率。
以上是关于无人机编队飞行定位分析与讨论的主要内容,如果未能解决你的问题,请参考以下文章
无人机群编队分析的定位问题 分析与思考-2(数学建模竞赛2022年B题)
无人机群编队分析的定位问题 分析与思考-2(数学建模竞赛2022年B题)
无人机群编队分析的定位问题 分析与思考-1(数学建模竞赛2022年B题)
数学建模国赛B题 完整思路与代码分享 无人机遂行编队飞行中的纯方位无源定位