【全部更新】2024数维杯A题完整成品代码文章思路结果分享

news2024/11/20 9:11:12

A题 多源机会信号建模与导航分析
摘要
全球卫星定位系统(GPS)虽广泛应用于全球定位与导航,但其在室内、隧道以及建筑密集区等复杂环境中的有效性受限。为解决这一局限性,本研究探讨了一种基于机会信号的自主定位导航方法。
机会信号导航利用无线电信号实现飞行器的精确定位,特别是在GPS不可用的情况下。本研究首先对机会信号的五类信息(TOA, TDOA, DFD, AOA, RSSI)建立了精确的数学模型,并设计了包含简单移动平均(SMA)算法的定位系统以实现实时位置估计。
为进一步优化预测精度,引入了带有局部逃逸算子的海洋捕食者算法(MPA)。此算法模仿海洋捕食者的狩猎行为,通过动态调整搜索策略,有效逃避局部最优解,从而提高全局寻优能力。使用了包含SMA(简单移动平均)算法的实时位置估计方法。SMA算法帮助我们平滑数据,减少瞬时噪声的影响,并提高定位精度。
通过比较不同信号源的数据和实现对信号误差的深入分析,我们能够在不同接收情况下提供准确的飞行器定位。我们开发了一种机会信号的实时筛选方法来识别并排除那些具有较大偏差的信号。
对于接收情况2中存在的随机性偏差和常值飘移,我们设计了评价判断方法,并据此进行了数据调整。这一策略显著提高了信号处理的准确性,从而优化了飞行器的定位结果。我们成功地处理了随机性偏差和常值飘移,显著减少了预测误差。对比优化前后的数据显示,飞行轨迹变得更加光滑,误差进一步降低。实验结果表明,使用SMA算法和筛选方法后,飞行器的位置预测在0秒至10秒内极为准确。

关键词 SMA,LEOMPA,机会信号

问题二
不考虑数据偏差的情况我们采用混合的信息来预测飞行器导航定位结果。
发射源4的到达角度信息AOA和达到时间信息 TOA来处理。
求解结果见excel文件:‘导航定位结果.xlsx’。其中部分内容见表1
表1问题二部分结果
时间/s X坐标/m Y坐标/m Z坐标/m
0.01 80.62727 -29.3188 1116.417
0.02 72.76079 25.74116 1114.589
0.03 10.4081 -8.38121 1100.086
0.04 37.90999 78.65837 1114.397
0.05 33.6431 -13.6943 1103.762
0.06 93.01123 -71.8146 1116.176
0.07 90.45526 0.231349 1117.563
0.08 45.8248 24.46634 1107.898

图1问题二导航结果可视化

图2问题二导航结果据时间可视化

图2展示了根据数值结果预测的飞行器轨迹路线其中较早的时间用浅色表示,较晚的时间用较深的颜色表示。这种可视化帮助观察者理解随时间演变的趋势或模式。可以看出飞行器大致是朝着xy减小,高度大致不变的方向运动

在这里插入图片描述

问题三
实时筛选机会信号:
机会信号中的TOA(Time of Arrival)和 RSSI(Received Signal Strength Indicator)分析:
TOA和RSSI都是在无线通信和定位系统中使用的技术,用于估计设备的位置。尽管它们的目的相同,但这两种技术在实现、准确性和受环境影响的方式上有显著差异。

面对数据误差的处理
处理带有误差的数据确定导航位置时,RSSI可能更具挑战性,因为它受环境因素的影响更大,而这些环境因素往往难以预测和量化。相比之下,尽管TOA也需要高精度的时间测量设备和良好的同步,但它的误差类型通常更容易通过技术手段(如改进硬件或使用更精确的时钟)进行控制和补偿。
由于RSSI与TOA的数据能够同时转换为距离数据,因此两者不同的数据会使得预测的困难。因此我们可以给它们同样的评价方式来选取每次获取的新信号中偏差更小的机会信号。因为DFD和AOA的信息无法独立或者联合求解出导航器的位置,同时我们将TDOA与TOA归纳为同一类机会信号(统一用TOA代表)。图3展示了数据1中发射源123的TOA与RSSI距离数据之差的数据。
图3:发射源1,2,3TOA-RSSI差距比较

从图中看出发射源1的误差最小,发射源2的误差较小,发射源3的误差最大,所以某种程度上,发射源3的信息并不可靠。图4展示了问题二结果的最大误差范围。
通过图4我们可以通过问题二的数据获取的最大误差范围叠加图,我们可以从图中看出,数据的偏差十分巨大,导致误差范围已经远大于飞行器运动的范围,这说明某些机会信号参数收到各种因素影响,导致整体的偏差十分巨大。因此,必须去除这些因素的影响。
图5展示了问题二求解结果所带来的最大误差,从中我们可以看出误差的整体走向是先增高后降低,并且总是保持较高水平这说明,数据的偏差存在一部分是常值飘移的。同时误差的振动也保持一个相对固定的幅度,这说明误差中也存在随机性偏差。图6问题二结果所带来的各项误差,通过图6可以看出,虽然发射源3的RSSI和TOA差距较大,但是产生最大的误差的数据来源于发射源1。同时通过对发射源3TOA数据的修正对比见图7可以知道发射源3TOA数据确实带来了巨大的误差,因此可以筛除。

图4最大误差范围叠加图、

在这里插入图片描述

在这里插入图片描述

在相关的论文中[
Oszust, Mariusz. “Enhanced marine predators algorithm with local escaping operator for global optimization.” Knowledge-Based Systems 232 (2021): 107467.]已经说明LEO-MPA的性能由于PSO,因此我们选取LEO-MPA来求解该问题。由于LEO-MPA算法的捕食者数目参数过高会导致计算时间过长,因此,我们选取相比PSO更少的捕食者数目,并增加最大迭代次数。实际上,这样配置下的LEO-MPA算法具有更快的速度以及更好的结果。
算法配置:捕食者数目:10000
最大迭代次数:2500
算法结果:误差函数值:0.553图8展示了LEOMPA求解所获得的轨迹图像,可以看出轨迹比之前问题二的结果更加集中并且有明显的方向信息。因此,通过对大偏差数据的处理,我们可以获取更准确的飞行器轨迹预测。

表2问题三LEOMPA求解部分结果
时间/s X坐标/m Y坐标/m Z坐标/m
0.01 48.91986 1.920731 218.4599
0.02 55.54527 5.703577 171.2798
0.03 42.5561 3.960683 158.8403
0.04 46.24115 17.63549 219.0505
0.05 44.39085 6.711485 208.9762
0.06 55.72649 -0.96734 102.17
0.07 40.50974 15.96831 174.7587
0.08 33.4839 26.37803 89.122

图8 问题三LEOMPA求解轨迹
在这里插入图片描述
问题四

随机偏差的处理
我们采用简单移动平均(Simple Moving Average,SMA)。SMA是一种常用的数据平滑技术,特别适用于时间序列数据,用于降低数据中的随机波动并揭示潜在的趋势。这种方法通过计算一定时间窗口内数据点的算术平均值来实现数据平滑。
工作原理
简单移动平均的计算过程非常直接:
选择窗口大小:确定包含多少个连续数据点的平均值。窗口大小(N)是一个重要的参数,因为它决定了平滑的程度和反应速度。窗口越大,平滑效果越明显,但对数据中变化的反应速度越慢。
计算平均值:对于时间序列中的每个点,取该点及其前N-1个数据点的平均值。对于序列的开始部分,直到累积到足够的数据点,才能开始计算移动平均。
滑动窗口:窗口沿着数据序列逐步滑动,每次向前移动一个数据点,并重新计算当前窗口内的平均值。
在这里插入图片描述

在这里插入图片描述

##【腾讯文档】2024数维杯助攻合集
## https://docs.qq.com/doc/DVVBER216eHJKc29y

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1663534.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

json返回工具类|世界协调时间(UTC)

一、问题 世界协调时间(UTC)是一个标准的时间参考,通常被用于跨越不同时区的时间标准。要将 UTC 时间转换为中国时间(中国标准时间),你需要将时间加上8个小时,因为中国位于 UTC8 时区。 初中知…

C++类和对象(5)static修饰的静态成员变量函数

1.静态成员函数和静态成员变量的引入 (1)我们通过以下面的这个例子逐步引出静态的成员变量和成员函数: 我们自己定义一个类,使用这个类创建对象,我们应该如何判断在这个程序执行的过程中,创建了多少个对象…

Measurement and Analysis of Large-Scale Network File System Workloads——论文泛读

ATC 2008 Paper 分布式元数据论文阅读笔记整理 问题 网络文件系统在当今的数据存储中发挥着越来越重要的作用。使用网络文件系统可以降低管理成本,从多个位置可靠地访问的数据。这些系统的设计通常以对文件系统工作负载和用户行为的理解为指导[12,19&a…

Windows密码破解常见手段

mimikatz导出lsass破解 如果域管在成员机器上登录过,那么密码机会保存到lsass.exe进程当中,可以通过mimikatz读取密码 用本地管理员登录本地机器 导出hash reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCred…

四十九坊股权设计,白酒新零售分红制度,新零售策划机构

肆拾玖坊商业模式 | 白酒新零售体系 | 新零售系统开发 坐标:厦门,我是易创客肖琳 深耕社交新零售行业10年,主要提供新零售系统工具及顶层商业模式设计、全案策划运营陪跑等。 不花钱开3000多家门店,只靠49个男人用一套方法卖白酒…

使用scrollIntoView滚动元素到可视区域

1. 实现效果 点击顶部标签栏,让对应的内容出现在可视区域: 2. scrollIntoView () scrollIntoView 是一个内置的 JavaScript 方法,用于将元素滚动到视口可见的位置。它通常用于用户界面中,以便用户能轻松看到特定的元素。此方…

搭建Docker私服镜像仓库Harbor

1、概述 Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。 Harbor 的所有组件都在 Dcoker 中部署,所以 Harbor 可使用 Docker Compose 快速部署。 …

实战中使用 QEMU 进行内网穿透

前言 阅读 https://xz.aliyun.com/t/14052 《使用 QEMU 进行内网穿透?》 https://securelist.com/network-tunneling-with-qemu/111803/ 《Network tunneling with… QEMU?》 我将此项技术应用到实战中,取得不错的效果,但是也遇到很多坑&am…

Redis 实战之监视器

监视器 成为监视器向监视器发送命令信息总结 成为监视器 发送MONITOR 命令可以让一个普通客户端变为一个监视器, 该命令的实现原理可以用以下伪代码来实现: def MONITOR():# 打开客户端的监视器标志client.flags | REDIS_MONITOR# 将客户端添加到服务器…

【LeetCode:2391. 收集垃圾的最少总时间 + 二分】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

用python进行接口测试(详细教程)

前言 其实我觉得接口测试很简单,比一般的功能测试还简单,现在找工作好多公司都要求有接口测试经验,也有好多人问我什么是接口测试,本着不懂也要装懂的态度,我会说:所谓接口测试就是通过测试不同情况下的入…

4.5网安学习第四阶段第五周回顾(个人学习记录使用)

本周重点 ①部署域环境(Win2008) ②域组策略 ③域内信息收集 ④(重点)哈希传递攻击PTH ⑤MS14-068 提权漏洞 ⑥黄金票据伪造 ⑦白银票据伪造 ⑧ZeroLogon (CVE-2020-1472) 漏洞复现 本周主要内容 ①部署域环境(Win2008)…

【信道编码】2 卷积码、状态转移图、状态转移表、网格表示和码字路径

【信道编码】2 卷积码、状态转移图、状态转移表、网格表示和码字路径 写在最前面例题先行,原理随后示例:输入为01011100状态转移表状态转移图 卷积码的原理原理与结构工作流程误差纠正 (2,1,2)卷积编码器工作原理结构和示例状态转…

微信小程序按钮去除边框线

通常我们去掉按钮边框直接设置 border:0 但是在小程序中无效,设置outline:none也没用,当然可能你会说加权重无效 实际上该样式是在伪元素::after内,主要你检查css 还看不到有这个关系,鹅厂就是坑多 类样式::after {border: non…

odoo16 图标替换系列

1、网友标签标签 修改文件:addons/web/static/src/webclient/webclient.js 修改内容: 我把 "odoo" 替换成了 "RH" this.title.setParts({ zopenerp: "RH" }); // zopenerp is easy to grep2、修改登陆界面 技术/视图/L…

代码复现|subprocess.run()导致报错“FileNotFoundError: [WinError 2] 系统找不到指定的文件“

一 问题描述 记录复现(windows平台下,机器学习算法)代码遇到的问题。 根据控制台信息提示,定位到问题所在:sp.run()导致报错“FileNotFoundError: [WinError 2] 系统找不到指定的文件“。 定位报错位置如下&#xff0c…

PyQt5中的组件

文章目录 1. 简介2. QCheckBox3. QPushButton4. QSlider5. QProgressBar6. QCalendarWidget7. QPixmap8. QLineEdit9. QSplitter10. QComboBox11. 总结 1. 简介 在PyQt5中,有许多不同类型的组件,可以用于构建各种GUI界面。以下是一些常见的PyQt5组件&am…

读写备份寄存器BKP与实时时钟RTC

文章目录 读写备份寄存器接线图代码 RTC实时时钟接线图代码 读写备份寄存器 接线图 即接个3.3v的电源到VBT引脚 代码 代码效果:第一次写入备份寄存器,下载程序后再注释掉,再进行下载,之前写入的数据还会保存在备份寄存器中&am…

Java基础入门day48

day48 JDBC调用关系 tomcat 简介 tomcat是Apache下的一个核心项目,免费开源,支持servlet和jsp。 tomcat技术先进,性能稳定,目前比较流行的web应用服务器 安装 官网: Apache Tomcat - Welcome! 下载 tomcat8.5 解压&a…

leetcode——链表的中间节点

876. 链表的中间结点 - 力扣(LeetCode) 链表的中间节点是一个简单的链表OJ。我们要返回中间节点有两种情况:节点数为奇数和节点数是偶数。如果是奇数则直接返回中间节点,如果是偶数则返回第二个中间节点。 这道题的解题思路是&a…