2024年深圳杯东三省数学建模联赛A题论文首发+问题一代码分享

深圳杯A题论文+代码分享资料链接:链接:https://pan.baidu.com/s/1L2NVgoefSW-yuqZjEB3wcw 
提取码:sxjm 

基于优化模型的多个火箭残骸的准确定位

摘要

在现代航天技术中,火箭是实现空间探索的关键工具。由于火箭发射过程中的高成本和复杂性,对火箭残骸的回收与重用变得越来越重要。本文将基于题目给出数据构建优化模型对火箭残骸进行准确定位。

问题一,单个残骸音爆定位分析。首先需要将设备的地理坐标(经度、纬度)转换为一个更适合计算的坐标系统,残骸发生音爆的位置(x,y,z) 和时间t,使用多边测量技术建立方程组。为了提高计算精度构建一个优化模型进行求解,以预测时间和实际时间差的平方和为目标函数。应用 BFGS 方法进行最小化,找到最小化 objective_function 的变量值,这些值代表了音爆源的最佳估计位置和时间。

问题二、三,多残骸音爆的监测和定位,确定每个监测设备接收到的不同音爆数据属于哪个具体的残骸。涉及到了最优值的求解,属于优化模型。建立一个数学模型来解决多源定位问题。设置一个优化问题,以确定该残骸的位置和音爆时间。目标是最小化预测的音爆抵达时间和实际记录时间之间的误差。以时间差约束、速度约束、高度约束、声速随高度变化、考虑风速和风向的影响作为约束条件,使用非线性最优化方法差分进化进行求解。通过三维可视化验证了模型的有效性,并展示了监测设备和残骸的空间分布。

问题四,误差修正和精准定位,考虑到设备记录时间可能存在高达0.5秒的随机误差。首先,为每个设备记录的时间添加一个随机误差,模拟实际条件中可能的测量不准确性。这个误差可以通过添加一个均值为0,标准差为0.5秒的高斯(正态)噪声来模拟。优化目标函数为计算了预测的音爆抵达时间和观测时间之间的加权平方差之和。模型生成的结果通过三维可视化和时间分析进行了展示和验证,表明模型能够在存在随机测量误差时有效地估计残骸位置。

整体而言,通过建立数学模型并利用差分进化算法的全局优化能力,解决了复杂的火箭残骸定位问题,即便在存在测量误差的挑战下也能给出准确的位置估计。这为类似问题提供了一个强大的求解框架和验证方法。

关键词优化模型,火箭残骸准确定位,坐标转化,模型修正

23页论文 1万字+ 十页无水印照片

一、模型的建立与求解

5.1 问题一模型的建立与求解

5.1.1 数据分析

为了更加直观地展示原始位置,利用python以及题目给出的数据,绘制了可视化如下所示

表1问题一给出数据

设备经度(°)纬度(°)高程(m)音爆抵达时间(s)
A110.24127.204824100.767
B110.78027.456727112.220
C110.71227.785742188.020
D110.25127.825850258.985
E110.52427.617786118.443
F110.46727.921678266.871
G110.04727.121575163.024

图1可视化结果

在这个坐标系中,设备A位于图中较高的位置,而设备G位于相对较低的位置。这种布局说明设备被布置在具有不同高度的地形上。通过这种三维分布,设备能够探测和追踪从不同高度和方向传来的音爆信号。

这张图也展示了设备之间的相对距离,这对于后续的分析很重要,比如利用声波到达的时间差来定位音爆发生的位置。再利用音爆抵达时间增加了声波传播球体的三维可视化,它展示了以七个监测设备为圆心,音爆抵达时间转换为半径(考虑声速)的球体。如下所示

图2可视化结果

每个球体用不同的颜色表示,以区分它们是从哪个设备中心展开的,与设备的颜色标记相对应。这些彩色的透明球体在三维空间中相互重叠。

l 监测设备位置图中显示了每个监测设备的位置,用大小相等且颜色不同的点表示,每个点的具体位置都标记在了对应的坐标上。

l 声波传播球体每个设备的声波传播球体通过一个半透明的网状结构表示,球体的大小(半径)与音爆抵达各设备的时间成比例。球体的交点是关键区域,因为这些区域表示了可能的音爆源位置。

l 球体交叉在图中,可以看到这些球体在某些区域相交。这些交点(或交叉区域)有助于确定音爆的原始位置。理论上,所有球体的交点将形成一个或多个共同的交集区域,即是音爆的发生位置。

l 三维空间理解在三维空间中,Z轴的伸展有助于了解球体高程方面的差异。球体的覆盖层和重叠区域的大小和形状提供了音爆源位置可能的高度信息。

5.1.2 单个残骸定位的建立

首先需要将设备的地理坐标(经度、纬度)转换为一个更适合计算的坐标系统,如笛卡尔坐标系。可以使用下列近似方法

将纬度转换为Y坐标=纬度×111263Y=纬度×111263米(纬度每度的距离)

将经度转换为X坐标=经度×97304X=经度×97304米(经度每度的距离,取决于纬度)

高程(Z坐标)直接使用给定的米值

最终具体的转化结果为表1转化结果

设备X (米)Y (米)Z (米)时间 (秒)
A10,726,890.263,026,798.65824100.767
B10,779,337.123,054,836.93727112.22
C10,772,720.453,091,442.46742188.02
D10,727,863.303,095,892.98850258.985

残骸发生音爆的位置(x,y,z) 和时间t。给定7台设备的三维坐标和音爆抵达时间,可以使用多边测量技术建立以下方程组,对于每个设备i:

这里,(xi,yi,zi)和ti分别是第i台设备的坐标和音爆抵达时间。需要解这个方程组来找出(x,y,z,t)。

对于四个变量的方程组求解,最少需要四个方程,即至少需要布置四台监测设备,即可完成后续验证。这里题目给出了七台监测设备,因此,构建一个优化模型进行求解,以预测时间和实际时间差的平方和为目标函数,定义了一个 objective_function,该函数接受四个变量(x, y, z 位置坐标和音爆发生的时间 t),计算了预测的音爆抵达各个设备的时间,并将其与实际抵达时间进行比较。应用 BFGS 方法进行最小化,找到最小化 objective_function 的变量值,这些值代表了音爆源的最佳估计位置和时间。

具体模型如下所示

目标函数

其中,

l v 是包含x,y,z,t 的向量。

l t 是音爆发生时间。

l (x,y,z) 是音爆发生的位置。

l c 是声速。

l (xi,yi,zi,ti) 是第 i 个设备的坐标和音爆抵达时间。

l n 是设备数量。

目标是最小化f(v),即预测时间和实际时间的平方差的和。

5.1.3 单个残骸定位的求解

最小化过程

5.2 问题二三模型的建立与求解

5.2.1 数据分析

声波从音爆源到监测设备的传播是一个球面波,其半径随时间增加而扩大。对于每个残骸,它在空中发生音爆时会产生一个扩散的声波球。与问题一给出数据相同,为了更加直观的展示给出数据,首先以A为例绘制了二维平面、三维平面的声波球。

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

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

相关文章

matlab新手快速上手3(差分进化算法)

本文用经典差分进化框架模板,对matlab新手友好,快速上手看懂matlab代码,快速应用实践,源代码在文末给出。 差分进化算法定义: 差分进化算法(Differential Evolution,简称DE算法)是…

RD77MS2 三菱iQ-R系列2轴简单运动模块(SSCNETⅢ/H型)

RD77MS2 三菱iQ-R系列2轴简单运动模块(SSCNETⅢ/H型) RD77MS2用户手册,RD77MS2外部连接,RD77MS2规格。RD77MS2参数说明:2轴;SSCNETⅢ/H连接,位置控制、同步控制、速度.转矩控制、轨迹控制;控制单位mm、inch、degree、pulse;定位数据600数据轴。 RD77MS2图…

导出JVM的线程信息

1. 查询出Java应用的进程的PID ps -ef|grep java 此时的PID是 33 2. 使用JDK自带的工具jstack导出日志 jstack -l 33 > 2022jstack.log 3.然后直接下载

Python 基础、流程、容器、函数

一、基础语法 1.1 前言 1.1.1 Python简介 Python是一门编程语言,Python的作者是Guido van Rossum(龟叔) Python优点:简单易学 Python与嵌入式、集成电路行业 强大的库和工具生态系统:Python拥有广泛而强大的库和…

免费GPU Google Colab保姆级使用攻略,实现数据集快速下载

Colab(Colaboratory)是一个基于云的交互式开发环境,专为数据科学、机器学习和人工智能任务设计。Colab 由 Google 提供,允许用户在浏览器中直接编写、运行、共享和协作处理 Python代码,特别是那些涉及大数据处理、计算…

semaphore信号量使用+原理分析

1.概述 Semaphore 信号量,相当于一个计数器,通常用来限制线程的数量。 每个线程操作前会先获取一个许可证,逻辑处理完成之后就归还这个许可证。 通俗的解释:相当于一个停车场,有10个停车位,进来一个车&am…

比较器仿真PSS+PNOISE测噪声

没有目录标题 一、参考二、PSSPnoise测输入噪声电压三、具体步骤:1.设置PSS:2.设置pnoise:3.根据仿真结果计算输出噪声电压 4.计算比较器的gain和输入噪声电压4.1 计算gain的方式一和对应的输入噪声电压4.2 计算gain的方式二和对应的输入噪声…

电脑提示msvcp110.dll是什么意思?7个实测有效方法教你搞定

在使用Windows操作系统的过程中,用户难免会遭遇与动态链接库(DLL)文件相关的问题,其中MSVCP110.dll便是其中之一。作为Microsoft Visual C Redistributable Package的重要组成部分,MSVCP110.dll对于许多基于C开发的应用…

【MySQL 数据宝典】【磁盘结构】- 005 Undo log 撤销日志

一、基本介绍 ​ 每当我们要对一条记录做改动时(这里的改动可以指 INSERT 、 DELETE 、 UPDATE ),都需要留一手 -> 把回滚时所需的东西都给记下来 ​ 你插入一条记录时,至少要把这条记录的主键值记下来,之后回滚的…

用于便携可穿戴设备的RX8130CE

用于便携可穿戴设备的时钟芯片模块:RX8130CE。时钟芯片模块RX8130CE,其特点是3225小尺寸和电池控制,可应用于可穿戴设备RX8130CE具有自动电源切换功能,可监视电源电压,并通过自动操作切换到备用电源,备用电源的开关电压…

PPT设置日期随改动而更新

点击插入——点击日期和时间 弹出的新窗口中勾选自动更新日期和时间

电脑上怎么调照片尺寸?这几个方法方便又好用

平时我们在制作幻灯片演示时,调整图片的大小可以确保图片适应幻灯片的布局,并提供清晰的展示效果,单张处理起来的话就比较浪费时间,但是通常我们需要批量去修改图片尺寸大小,这就需要用到比较专业的图片处理工具了&…

40-50W 1.5KVDC 隔离 宽电压输入 DC/DC 电源模块 ——TP40(50)DC 系列

TP40(50)DC系列电源模块额定输出功率为40-50W、应用于2:1、4:1电压输入范围 9V-18V、18V-36V、36V-75V、9V-36V、18V-75V的输入电压环境,输出电压精度可达1%,可广泛应用于通信、铁路、自动化以及仪器仪表等行业。

视频不够清晰怎么办?教你几种有效方法

在我们日常生活中,有时候我们会遇到不清晰的视频,这给我们带来了很多不便。那么,怎么将不清晰的视频变清晰呢?本文将为您介绍一些常用的软件工具,帮助您提升视频的清晰度。 方法一:使用AI技术 AI技术可以通…

Python写个二维码

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、进入官网下载二、下载一下三.输入代码 前言 提示:以下是本篇文章正文内容,下面案例可供参考 一、进入官网下载 官网 pip insta…

【C++庖丁解牛】C++11---右值引用和移动语义

🍁你好,我是 RO-BERRY 📗 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 🎄感谢你的陪伴与支持 ,故事既有了开头,就要画上一个完美的句号,让我们一起加油 目录 1 左值引用和右值引用2 左…

牛客NC179 长度为 K 的重复字符子串【simple 哈希,滑动窗口 C++、Java、Go、PHP】

题目 题目链接: https://www.nowcoder.com/practice/eced9a8a4b6c42b79c95ae5625e1d5fd 思路 哈希统计每个字符出现的次数。没在窗口内的字符要删除参考答案C class Solution {public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改&#xff0c…

Day08-Java进阶-递归异常及其处理自定义异常

1. 递归 package com.itheima.recursion;public class RecursionDemo3 {/*不死神兔(斐波那契额数列)*/public static void main(String[] args) {int sum getSum(20);System.out.println(sum);}public static int getSum(int n) {if (n 1 || n 2) {return 1;} else {return …

【nginx】nginx启动显示80端口占用问题的解决方案

目录 🌅1. 问题描述 🌊2. 解决方案 🌅1. 问题描述 在启动nginx服务的时候显示内容如下: sudo systemctl status nginx 问题出现原因: 根据日志显示,Nginx 服务启动失败,主要原因是无法绑定…

day1c++基础

const char*p;//值不可以改变,地址可以改变 const (char*)p; //值不可以改变,地址可以改变 char* const p; //值可以改变,地址不可以改变 const char* const p; //值不可以改变,地址不可以改变 char co…