2023年五一杯数学建模A题无人机定点投放问题求解全过程论文及程序

2023年五一杯数学建模

A题 无人机定点投放问题

原题再现:

  随着科学技术的不断发展,无人机在许多领域都有着广泛的应用。对于空中执行定点投放任务的无人机,其投放精度不仅依赖于无人机的操作技术,而且还与无人机执行任务时所处状态和环境有关,例如在接近投放点时无人机的高度、速度,无人机所处位置的风速、投放点周围地理环境等因素。在本题中仅考虑喷气式无人机,请查阅相关资料,研究以下问题:
  问题1: 假设无人机以平行于水平面的方式飞行,在空中投放物资(物资为球形,半径20cm,重量50kg)到达地面指定位置。
  (1)建立数学模型,给出无人机投放距离(投放物资时无人机与地面物资指定落地点之间的直线距离)与无人机飞行高度、飞行速度、空气阻力等之间的关系。
  (2)假设无人机的飞行高度为300m,飞行速度为300km/h,风速为5m/s,风向与水平面平行。建立数学模型,分别给出无人机飞行方向与风向相同(夹角为0度)、相反(夹角为180度)、垂直(夹角为90度)情况下无人机的投放距离。
  问题2:无人机不仅能定点投放物资,而且还可以通过安装在无人机前端的发射筒发射爆炸物疏通河道。其大致过程是:无人机首先水平飞行接近障碍物所处区域,然后俯冲找准时机发射爆炸物,发射结束后无人机随即拉升飞走。现有一处河流被冰块堆积阻断,需要用无人机发射爆炸物(爆炸物为球形,半径8cm,重量5kg)对目标进行爆破。假设无人机的初始点到目标的水平距离为10000m。受环境影响,无人机必须俯冲发射,并且发射方向与无人机的飞行方向一致。
  (1)建立数学模型,给出无人机发射距离(发射点与目标的直线距离)与无人机的飞行高度、飞行速度、俯冲角度及发射速度等因素之间的关系。
  (2)假设风速为6m/s,无人机接近目标时的飞行高度为800m、飞行速度为300km/h,爆炸物的发射速度为600km/h(相对于无人机的速度)。要求发射爆炸物时无人机与目标的距离在1000 m-3000 m之间,且无人机的高度不低于300m,请给出无人机击中目标的发射策略。
  问题3:无人机发射爆炸物命中目标的精度与无人机飞行的稳定性有很大关系。相同条件下,无人机发射爆炸物时越稳定,命中目标的精度越高。开始俯冲后,无人机操控员需要不断调整无人机的飞行姿态以修正风向、风速对无人机的影响。
  (1)在飞行速度、发射速度一定的情况下,综合考虑各种因素,建立数学模型,量化无人机飞行的稳定性,给出稳定性与命中精度之间的关系,并利用数值仿真等方法对无人机的稳定性进行分析验证。
  (2)假设风速为6m/s,无人机的飞行速度范围为300 km/h -400 km/h,爆炸物的发射速度为500km/h(相对于无人机的速度)。无人机在800m高度开始俯冲,初始俯冲角度为45°,发射爆炸物时的飞行高度不低于300m,请给出为尽量保持无人机稳定而采取的飞行姿态最优调整策略。

整体求解过程概述(摘要)

  本文研究了喷气式无人机在执行空中物资投放和爆破任务过程中的数学建模问题。我们分析了无人机投放距离与飞行高度、飞行速度、空气阻力等因素之间的关系,以及无人机发射爆炸物时飞行姿态、飞行速度、发射速度等因素对命中精度的影响。本文主要包括三个问题,分别为无人机在平行于水平面飞行时投放物资的数学模型,无人机在不同风向条件下的投放距离,以及无人机在执行爆炸物疏通河道任务时的发射策略和飞行姿态最优调整策略。
  在问题1中,我们建立了一个简化的数学模型,描述了无人机投放距离与飞行高度、飞行速度、空气阻力之间的关系。我们发现,投放物资的水平距离D可以通过飞行时间t和水平速度v计算得出,而飞行时间t可以通过竖直方向的加速度运动方程计算。我们将已知条件代入数学模型,分别计算了无人机在顺风、逆风和横风情况下的投放距离。
  在问题2中,我们考虑了无人机在执行爆破任务时的发射策略。我们建立了一个数学模型,描述了无人机发射距离与飞行高度、飞行速度、俯冲角度及发射速度等因素之间的关系。我们通过已知条件计算出了无人机在满足一定限制条件下的发射策略,包括最佳发射角度和发射速度。
  在问题3中,我们关注了无人机在发射爆炸物过程中飞行稳定性对命中精度的影响。我们建立了一个综合考虑各种因素的数学模型,量化了无人机飞行的稳定性与命中精度之间的关系,并利用数值仿真等方法对无人机的稳定性进行了分析验证。我们发现,在飞行速度、发射速度一定的情况下,通过调整无人机的飞行姿态可以显著提高命中精度。我们给出了在特定条件下为尽量保持无人机稳定而采取的飞行姿态最优调整策略。
  本文的研究成果为喷气式无人机在执行空中物资投放和爆炸物疏通河道任务时提供了一种有效的数学建模方法。通过对无人机的飞行状态和环境因素的综合分析,我们为无人机在不同任务场景下的操作策略提供了理论指导。这些成果对于提高无人机在执行各种任务时的效率和安全性具有重要意义。随着科学技术的不断发展,无人机将在更多领域发挥更大的作用。通过深入研究无人机的数学建模问题,我们可以为实际应用提供更为精确和高效的指导,推动无人机技术的进一步发展和应用。

模型假设:

  针对本文提出的问题,我们做了如下模型假设:
  1.假设空气阻力仅对水平方向运动产生影响。
  2.假设地球为平面模型,忽略重力对物体的影响。
  3.假设无人机发射爆炸物时的发射方向与无人机的飞行方向一致。
  4.假设无人机的飞行速度和爆炸物的发射速度不变。
  5.爆炸物和物资的质量分布均匀,并且没有其他外部干扰因素影响其飞行。
  6.无人机和发射筒之间的物理接触和磨损可以忽略不计。
  7.爆炸物爆炸的威力可以忽略不计,对周围环境和人员不会造成实质性的影响。

问题分析:

  问题一分析
  问题一主要关注无人机在执行空中物资投放任务时,投放距离与飞行高度、飞行速度、空气阻力等因素之间的关系。为了解决这个问题,我们需要考虑在平行于水平面飞行时,物资从无人机投放到达地面的运动轨迹。物资受到重力和空气阻力的影响,在竖直方向上会出现加速度,而在水平方向上会受到风速的影响。因此,我们需要建立一个包含这些因素的数学模型,描述物资在空中的运动过程。
  我们需要考虑物资的质量、形状和尺寸对空气阻力的影响。此外,无人机的飞行高度和速度也会影响投放距离。我们需要对这些因素进行定量分析,以便为无人机在不同风向条件下的投放任务提供指导。
  问题二分析
  问题二主要关注无人机在执行爆破任务时的发射策略,包括发射距离与飞行高度、飞行速度、俯冲角度及发射速度等因素之间的关系。为了解决这个问题,我们需要分析无人机在俯冲过程中,如何根据目标位置、飞行状态和环境条件来调整发射角度和速度,以保证爆炸物能够准确地命中目标。
  我们需要考虑无人机在俯冲过程中受到的空气阻力和重力的影响,以及发射爆炸物时受到的反作用力。此外,我们还需要分析无人机在不同飞行姿态下的动力学特性,以便为实际操作提供指导。最后,我们需要通过数值计算和仿真方法,验证我们的模型在满足一定限制条件下的可行性和有效性。
  问题三分析
  问题三主要关注无人机在执行爆破任务过程中,飞行稳定性对命中精度的影响。为了解决这个问题,我们需要建立一个综合考虑各种因素的数学模型,量化无人机飞行的稳定性与命中精度之间的关系。要考虑无人机的飞行姿态、飞行速度和发射速度等因素对飞行稳定性的影响。此外,我们还需要研究风速和风向对无人机飞行稳定性的影响,以便为实际操作提供指导。在建立数学模型时,我们可以通过引入一些度量飞行稳定性的指标,如姿态角变化速度、飞行速度波动等,来描述无人机在飞行过程中的稳定性。同时,我们还需要考虑无人机在不同飞行状态下的控制策略,如姿态调整、速度调节等,以提高命中精度。
  通过对无人机飞行稳定性和命中精度的关系进行分析,我们可以为实际应用提供有针对性的操作建议。我们还可以利用数值仿真等方法对无人机的飞行稳定性进行分析验证,以验证我们的模型和操作策略的有效性。

模型的建立与求解整体论文缩略图

在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

程序代码:

部分程序如下:

clear
clc% 遗传算法参数设置
pop_size = 100; % 种群大小
num_var = 10; % 决策变量个数
num_gen = 200; % 最大迭代次数
p_crossover = 0.8; % 交叉概率
p_mutation = 0.1; % 变异概率
ub = [500, 500, 500, 500, 500, 1000, 1000, 1000, 1000, 1000]; % 决策变量上界
lb = [0, 0, 0, 0, 0, 500, 500, 500, 500, 500]; % 决策变量下界% 目标函数
fitness_fun = @(x) -(x(6)*cos(x(7))*cos(x(8)) + x(6)*sin(x(7))*sin(x(8))*cos(x(9)) - x(5))^2 - (x(6)*sin(x(7))*cos(x(8))*cos(x(9)) - x(4))^2 - (x(6)*sin(x(8)) + x(3))^2;% 初始化种群
pop = rand(pop_size, num_var) .* (ub - lb) + lb;% 计算适应度
fitness = zeros(pop_size, 1);
for i = 1:pop_sizefitness(i) = fitness_fun(pop(i,:));
end% 迭代
for gen = 1:num_gen% 选择probs = fitness / sum(fitness);[pop_new, ~] = roulette_wheel_selection(pop, probs);% 交叉pop_new = crossover(pop_new, p_crossover);% 变异pop_new = mutation(pop_new, p_mutation, ub, lb);% 计算适应度fitness_new = zeros(pop_size, 1);for i = 1:pop_sizefitness_new(i) = fitness_fun(pop_new(i,:));end% 合并种群
clear
clc% 遗传算法参数设置
pop_size = 100; % 种群大小
num_var = 10; % 决策变量个数
num_gen = 200; % 最大迭代次数
p_crossover = 0.8; % 交叉概率
p_mutation = 0.1; % 变异概率
ub = [500, 500, 500, 500, 500, 1000, 1000, 1000, 1000, 1000]; % 决策变量上界
lb = [0, 0, 0, 0, 0, 500, 500, 500, 500, 500]; % 决策变量下界% 目标函数
fitness_fun = @(x) -(x(6)*cos(x(7))*cos(x(8)) + x(6)*sin(x(7))*sin(x(8))*cos(x(9)) - x(5))^2 - (x(6)*sin(x(7))*cos(x(8))*cos(x(9)) - x(4))^2 - (x(6)*sin(x(8)) + x(3))^2;% 初始化种群
pop = rand(pop_size, num_var) .* (ub - lb) + lb;% 计算适应度
fitness = zeros(pop_size, 1);
for i = 1:pop_sizefitness(i) = fitness_fun(pop(i,:));
end% 迭代
for gen = 1:num_gen% 选择probs = fitness / sum(fitness);[pop_new, ~] = roulette_wheel_selection(pop, probs);% 交叉pop_new = crossover(pop_new, p_crossover);% 变异pop_new = mutation(pop_new, p_mutation, ub, lb);% 计算适应度fitness_new = zeros(pop_size, 1);for i = 1:pop_sizefitness_new(i) = fitness_fun(pop_new(i,:));end% 合并种群pop_all = [pop; pop_new];fitness_all = [fitness; fitness_new];% 精英保留[~, idx] = sort(fitness_all, 'descend');pop = pop_all(idx(1:pop_size),:);fitness = fitness_all(idx(1:pop_size));% 输出结果[~, idx] = max(fitness);x_opt = pop(idx,:);fval = fitness(idx);fprintf('第%d代,最优解:', gen);disp(x_opt);fprintf('第%d代,最优目标函数值:%.4f\n', gen, -fval);
end% 选择操作
function [pop_new, idx] = roulette_wheel_selection(pop, probs)[N, ~] = size(pop);cum_probs = cumsum(probs);pop_new = zeros(N, size(pop,2));for i = 1:Nr = rand();idx = find(cum_probs > r, 1);pop_new(i,:) = pop(idx,:);end
end% 交叉
function pop_new = crossover(pop, pc)
[N, n_var] = size(pop);
pop_new = zeros(N, n_var);
for i = 1:N/2
p1 = pop(2i-1, :);
p2 = pop(2i, :);
r = rand();
if r < pc
% 单点交叉
c_point = randi([1, n_var-1]);
pop_new(2i-1, :) = [p1(1:c_point), p2(c_point+1:end)];
pop_new(2i, :) = [p2(1:c_point), p1(c_point+1:end)];
else
pop_new(2i-1, :) = p1;
pop_new(2i, :) = p2;
end
end
end% 确保个体数量为偶数
if mod(N, 2) ~= 0pop = pop(1:end-1,:);
end% 交叉
pop_new = zeros(size(pop));
for i = 1:2:Np1 = pop(i, :);p2 = pop(i+1, :);if rand() < p_crossover% 两点交叉c = randi(size(pop, 2) - 1);pop_new(i,:) = [p1(1:c), p2(c+1:end)];pop_new(i+1,:) = [p2(1:c), p1(c+1:end)];else% 不交叉pop_new(i,:) = p1;pop_new(i+1,:) = p2;end
end% 变异
function pop_new = mutation(pop, pm, lb, ub)
[N, n_var] = size(pop);
pop_new = zeros(N, n_var);
for i = 1:N
p = pop(i, :);
r = rand();
if r < pm
% 随机变异
idx = randi(n_var);
p_new = p;
p_new(idx) = lb(idx) + (ub(idx)-lb(idx)) * rand();
pop_new(i, :) = p_new;
else
pop_new(i, :) = p;
end
end
end
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM 虚拟机 ----> Java 类加载机制

文章目录 JVM 虚拟机 ----> Java 类加载机制一、概述二、类的生命周期1、类加载过程&#xff08;Loading&#xff09;&#xff08;1&#xff09;加载&#xff08;2&#xff09;验证&#xff08;3&#xff09;准备&#xff08;4&#xff09;解析&#xff08;5&#xff09;初始…

IMU+摄像头实现无标记运动捕捉

惯性传感和计算机视觉的进步为在临床和自然环境中获得精准数据带来了新可能。然而在临床应用时需要仔细地将传感器与身体对齐&#xff0c;这减慢了数据收集过程。 随着无标记运动捕捉的发展&#xff0c;研究者们提出了一个新的深度学习模型&#xff0c;利用来自视觉、惯性传感…

【Linux常用命令】

编程不良人 Linux 笔记 一、防火墙相关 1、查看防火墙状态 systemctl status flrewalld2、如果防火墙是开启状态的&#xff0c;需要关闭 systemctl stop firewalld3、永久行关闭操作&#xff08;禁止开机自启动&#xff09; 因为防火默认是开启状态的&#xff0c;如果只是手…

idea把项目打成jar包步骤详解

最近产品需要预研一个小功能&#xff0c;开始后在本地开发测试好之后&#xff0c;需要打成jar提供出去&#xff0c;今天弄完了&#xff0c;决定把这个步骤记录下来&#xff0c;便于以后轻车熟路。 打成jar要有mian方法的入口&#xff0c;所以我们在代码中需要定义一个main方法&…

工业机器人仿真参考

最近有一些朋友看到我做的关于Unity3d仿真机器人的项目&#xff0c;本次我在平台做以分享&#xff0c;希望的朋友或者有需要在此基础做开发的可以参考下。 开发工具&#xff1a; 下位机&#xff1a;Unity3D 上位机&#xff1a;Visual Studio 机械臂模型&#xff1a;TH6-QKM…

【已解决】您所使用的密钥ak有问题,不支持jsapi服务,可以访问该网址了解如何获取有效密钥。

您所使用的密钥ak有问题&#xff0c;不支持jsapi服务&#xff0c;可以访问该网址了解如何获取有效密钥。详情查看&#xff1a;http://lbsyun.baidu.com/apiconsole/key#。 问题 百度密钥过期 思路 注册成为开发者 如果还没注册百度地图api账号的&#xff0c;点击以后就进入…

LeetCode(力扣)452. 用最少数量的箭引爆气球Python

LeetCode452. 用最少数量的箭引爆气球 题目链接代码 题目链接 https://leetcode.cn/problems/minimum-number-of-arrows-to-burst-balloons/description/ 代码 class Solution:def findMinArrowShots(self, points: List[List[int]]) -> int:if len(points) 0:return 0…

无涯教程-JavaScript - SHEETS函数

描述 SHEETS函数返回参考中的页数。 语法 SHEETS (reference) 争论 Argument描述Required/OptionalReference 参考是您想知道其包含的页数的参考。 如果省略"引用",SHEETS将返回工作簿中包含该功能的页数。 Optional Notes SHEETS包括所有其他工作表类型(宏,图表…

飞行动力学 - 第25节-特征根与动稳定性 之 基础点摘要

飞行动力学 - 第25节-特征根与动稳定性 之 基础点摘要 1. 特征根2. 实根3. 复根4. 参考资料 1. 特征根 动稳定性考虑的是扰动后飞机的时间响应&#xff0c;即 x 0 ≠ 0 x_0 \ne 0 x0​0, u 0 u 0 u0 2. 实根 x x 0 e λ t x x_0 e^{\lambda t } xx0​eλt 3. 复根 4.…

驱动开发,stm32mp157a开发板的led灯控制实验

1.实验目的 编写LED灯的驱动&#xff0c;在应用程序中编写控制LED灯亮灭的代码逻辑实现LED灯功能的控制&#xff1b; 2.LED灯相关寄存器分析 LED1->PE10 LED1亮灭&#xff1a; RCC寄存器[4]->1 0X50000A28 GPIOE_MODER[21:20]->01 (输出) 0X50006000 GPIOE_ODR[10]-&g…

Cglib代理和JDK代理原理的区别

一、JDK Jdk动态代理&#xff0c;拿到目标类所继承的接口&#xff0c;生成代理类&#xff0c;并且代理类也会实现和目标类一样的接口。 二、Cglib Cglib代理功能更强&#xff0c;无论目标类是否实现接口都可以代理&#xff0c;他是基于继承的方式类代理目标类&#xff0c;如果…

数学实验-数列与级数(Mathematica实现)

一、实验名称&#xff1a;数列与级数 二、实验环境&#xff1a;Mathematica 10.3软件 三、实验目的&#xff1a;本实验通过Mathematica 10.3软件编程演示Fibonacci数列、调和级数的函数图像及函数关系式&#xff0c;通过Mathematica 10.3软件发现数列与极限状态的性质&#x…

STM32F103VET6基于ENC28J60移植LWIP1.4.1(标准库,无RTOS)

目录 环境引脚连接1.准备LWIP2.新建arch3.网卡驱动4.新建分组5.项目头文件路径6.LWIIP头文件编写7.ethernetif.cvoid low_level_init(struct netif *netif)err_t low_level_output(struct netif *netif, struct pbuf *p)struct pbuf *low_level_input(struct netif *netif)void…

ChatGPT 网站合集/NovelAI tag生成器/Novel资源大全

ChatGPT 网站合集 https://github.com/xx025/carrot NovelAI tag生成器 https://wolfchen.top/tag/ Novel资源大全 https://wolfchen.top/tag/doc.html 简单地说&#xff0c;Stable Diffusion被修改后做出了NovelAI&#xff0c;NovelAI离家出走便有了Naifu Naifu简单好上手&am…

基于红黑树对map和set容器的封装

本章代码gitee仓库&#xff1a;map和set模拟实现、stl_map_set_tree源码 文章目录 &#x1f431;1. 红黑树的泛型&#x1f408;1.1 红黑树节点&#x1f408;1.2 红黑树迭代器&#x1f408;1.3 仿函数 &#x1f42f;2. 对set的封装&#x1f984;3. 对map的封装 &#x1f431;1. …

CRM系统销售自动化功能如何提高销售效率

销售效率对企业的盈利能力有着至关重要的联系。提高销售效率&#xff0c;就是要提高销售人员的工作效率和销售转化率。那么&#xff0c;企业如何提高销售效率呢&#xff1f;CRM销售自动化功能可以帮助企业实现这一目标。 一、线索管理 线索是指有潜在购买意向的客户&#xff…

基于STM32F407ZET6的环境温湿度监控系统(粤嵌GEC-M4)

注意使用事项&#xff1a; 开发板如下 由于外部晶振是8M&#xff0c;需要修改setup和stm32f4头文件的晶振值。 操作如下&#xff1a; system_stm32f4xx.c的254行 #define PLL_M 8stm32f4xx.h的127行 #define HSE_VALUE ((uint32_t)8000000) /*!< Value of the Ex…

2023/9/14 -- C++/QT

作业&#xff1a; 仿照Vector实现MyVector&#xff0c;最主要实现二倍扩容 #include <iostream>using namespace std;template <typename T> class MyVector { private:T *data;size_t size;size_t V_capacity; public://无参构造MyVector():data(nullptr),size(…

【深度学习 AIGC】stablediffusion-infinity 在无界限画布中输出绘画 Outpainting

代码&#xff1a;https://github.com/lkwq007/stablediffusion-infinity/tree/master 启动环境&#xff1a; git clone --recurse-submodules https://github.com/lkwq007/stablediffusion-infinity cd stablediffusion-infinity conda env create -f environment.yml conda …

如何开启Win10虚拟机Hyper-V功能

操作步骤: 使用前提&#xff1a; 1、确保系统是 Windows 10 专业版/企业版/教育版&#xff0c;且必须是64位操作系统才支持。 提示&#xff1a;Win10家庭版不支持hyper-v。 2、使用Hyper-V需要cpu支持虚拟化并处于开启状态。 3、硬件要求及如何验证硬件兼容性&#xff1a; 硬件…