2024国赛A问题5

news2024/12/27 5:53:38

问题五

龙头最大速度优化模型的建立

问题五在问题四的曲线的基础上对速度进行了约束,即在逐步改变龙头速度的情况下,各个龙身的速度也会依次改变,给出龙头的最大行进速度,使得舞龙队各把手的速度均不超过 2 m/s。即可依此构建一个龙头速度的优化模型,将各把手的速度范围与计算公式作为约束条件。下面的具体的建立过程:

目标函数

问题五需求解最大的龙头速度,故将龙头速度 v v v作为目标函数,使用 V V V表示,其数学表示为:
max ⁡ V \max V maxV

约束条件
  1. 根据问题五的要求,舞龙队各把手的速度均不得超过 2 m / s 2m/s 2m/s,依据前文, v i v_i vi表示第 i i i个把手的速度,则该约束条件的数学表示为:
    v i ≤ 2 ,   i = 1 , 2 , … , 22 v_i \leq2,\space i=1,2,\dots,22 vi2, i=1,2,,22

  2. 根据问题四求解的结果,在 v ≥ 1 v \geq 1 v1的情况下,龙身不会出现速度大于 2 m / s 2 m/s 2m/s的情况,故可用数学表示为:
    V ≥ 1 V \geq1 V1

  3. 速度的求解基于在时间的极小步长下的位置变化量,其计算公式为:
    v i = lim ⁡ Δ t → 0 ( x i 1 − x i 2 ) 2 + ( y i 1 − y i 2 ) 2 Δ t v_i=\lim_{\Delta t\to0}\frac{\sqrt{(x_{i1}-x_{i2})^2+(y_{i1}-y{_{i2}})^2}}{\Delta t} vi=Δt0limΔt(xi1xi2)2+(yi1yi2)2

其中 ( x i 1 , y i 1 ) (x_{i1},y_{i1}) (xi1,yi1)为在 t t t时刻下的位置坐标, ( x i 2 , y i 2 ) (x_{i2},y_{i2}) (xi2,yi2)为在 t + 2 ⋅ Δ t t+2\cdot \Delta t t+2Δt下的速度,其中 Δ t = 0.001 s \Delta t=0.001s Δt=0.001s.

综上所述,龙头最大速度优化模型建立如下:
max ⁡ V s . t . { v i ≤ 2 , V ≥ 1 , v i = lim ⁡ Δ t → 0 ( x i 1 − x i 2 ) 2 + ( y i 1 − y i 2 ) 2 Δ t , i = 1 , 2 , … , 22 , \begin{aligned}&\max V\\&\mathrm{s.t.}\begin{cases}v_i\leq2,\\V\geq1,\\v_i=\lim_{\Delta t\to0}\frac{\sqrt{(x_{i1}-x_{i2})^2+(y_{i1}-y_{i2})^2}}{\Delta t},&\end{cases}i=1,2,\ldots,22,\end{aligned} maxVs.t. vi2,V1,vi=limΔt0Δt(xi1xi2)2+(yi1yi2)2 ,i=1,2,,22,

模型的求解

由于第五问模型比较简单,求解起来较为容易,故可采取二分变步长搜索策略与小步长时间数值模拟结合的办法进行求解,具体步骤如下:

Step1 设定初始解与搜索步长

设定初始解为前四问中的初始速度 v 0 = 1 m / s v_0=1m/s v0=1m/s,初始搜索步长为 Δ v = 0.1 m / s \Delta v=0.1m/s Δv=0.1m/s,开始进行搜索。

Step2 大步长快速搜索

从初始速度 v 0 v_0 v0开始搜索,以 Δ v = 0.1 m / s \Delta v=0.1m/s Δv=0.1m/s为步长开始遍历,快速搜索解空间直达搜索到不满足约束条件 v i ≤ 2 v_i\leq2 vi2,设该点为 V i V_i Vi,则该点前一个搜索点为 V i − 1 V_{i-1} Vi1为最后一个满足约束条件的解。

Step3 二分精细搜索

取两点中点值 v i + v i − 1 2 \frac{v_i+v_{i-1}}{2} 2vi+vi1进行计算,若仍不满足约束条件则搜索空间 [ v i − 1 , v i + v i − 1 2 ] [v_{i-1},\frac{v_i+v_{i-1}}{2}] [vi1,2vi+vi1],若满足则搜索空间 [ v i + v i − 1 2 , v i ] [\frac{v_i+v_{i-1}}{2},v_i] [2vi+vi1,vi],修改步长为 Δ v 2 \frac{\Delta v}{2} 2Δv。仍然搜索各解空间中点,按照上述二分法则精细搜索空间。

Step4 导出搜索结果

当搜索步长抵达 Δ v ≤ 0.001 m / s \Delta v\leq 0.001m/s Δv0.001m/s时,抵达搜索误差容限,导出此时解空间的中点作为最终搜索结果 v b e s t v_{best} vbest

误差检验

各个搜索模型的检验(注,把几个模型前面的问题几去掉)

由于本文对于问题三,问题四与问题五的求解涉及到定步长,变步长与双重模拟退火算法等搜索模型,模型搜索的正确性和可靠性直接影响了本题最后结果是否正确,故需要对搜索模型进行检验。

首先检验定步长搜索模型,在满足约束条件的情况下,本文遍历了问题四的所有解空间,绘制了自变量 θ C \theta_C θC θ D \theta_D θD与最终结果弧长 L L L的图像,如下图所示。

通过对整个图像的观察可知,该函数的最终应为在 θ C = 16.63 r a d \theta_C=16.63 rad θC=16.63rad θ D = − 16.63 r a d \theta_D=-16.63rad θD=16.63rad的情况下取得,即整个图像左下角递减区间的最底处,与定步长搜索模型求得的结果几乎完全相同,证明了定步长搜索模型的可靠性。

其次是对变步长搜索模型的检验,在问题三与问题五的结果分析中均对结果进行了遍历与可视化,可视化图可见图多少,多少,均处于图像的最小值处,可证明该模型的可靠性。

最后是对模拟退火算法进行检验,本文在问题三中采取了双重模拟退火算法与变步长搜索模型进行比对的策略,其中模拟退火算法的结果 0.4680 0.4680 0.4680,而变步长搜索算法的结果是 0.45 0.45 0.45,两者相对误差 δ \delta δ计算结果为:
δ = ∣ 0.4680 − 0.45 ∣ 0.45 = 3.96 % < 5 % \delta=\frac{|0.4680-0.45|}{0.45}=3.96\%<5\% δ=0.45∣0.46800.45∣=3.96%<5%
故认为模拟退火算法搜索得到的结果较为可靠,证明了该模型的可靠性。

灵敏度检验

根据题意,板凳的尺寸大小是恒定不变。但考虑到实际生活中板凳龙板凳尺寸大小并不固定,为对模型进行灵敏度检验并探究板凳大小的改变对舞龙队行进轨迹等影响,令板凳长度 L a L_a La [ 1.8 m , 3.4 m ] [1.8m,3.4m] [1.8m,3.4m]内以 0.2 m 0.2m 0.2m为步长变化;板凳宽度 L b L_b Lb [ 0.1 m , 0.6 m ] [0.1m,0.6m] [0.1m,0.6m]内,以 0.1 m 0.1m 0.1m为步长变化。遍历由 [ L a , L b ] [L_a,L_b] [La,Lb]组成的向量空间,计算得到在不同板凳尺寸下板凳龙出现碰撞的时间,可视化如下图所示:

由图可知,在板凳龙长度 L a L_a La减小且 L b L_b Lb长度在 [ 0.1 m , 0.4 m ] [0.1m,0.4m] [0.1m,0.4m]以内的情况下,板凳龙的出现碰撞时间 t C t_C tC出现了明显延长,而板凳宽度 L b L_b Lb增大直接导致了碰撞时间 t C t_C tC的减小,尤其是 L b > 0.5 m L_b>0.5m Lb>0.5m后,可发现板凳龙无法成功进入问题一的螺线模型中,说明了在最开始就出现了碰撞。

上述结果不仅符合实际情况,即板凳的长度 L a L_a La L b L_b Lb尺寸越小,越不容易出现碰撞,同时也说明了本文模型的灵敏性高,能够对板凳微小的变化作出正确的输出。

结果分析

问题一结果分析

观察图可知,随着时间增加,各个把手的速度整体上呈现为下降趋势。下降幅度 随螺线的几何性质变化。观察把手轴可以知道,龙头到龙尾的速度呈增长趋势。

观察结果可视化图可得出如下结论:

  • 对于单个把手而言,虽然速度呈现波动的趋势,但是其整体速度呈现下降趋势,这与其运动轨迹在螺线上,螺线曲率半径越来越小相对应。
  • 对于整个队伍而言,龙头到龙尾的速度呈现递减的趋势,其原因应为龙头的运动速度虽为1m/s,但是在运动固定位移后,由于运动轨迹为螺线,运动的传递存在迟滞与消耗,故后面的龙身速度会存在减小。

问题二结果分析

观察图可知,问题二除了龙头到龙尾速度仍然满足递减趋势外,还可以发现,板凳龙中板凳的最近距离呈现出一个类似周期性的变化规律,即在某个时间最近距离突然增大,然后再减小,重复这个周期,但是整体呈现减小的趋势,可以推断:

  • 随着板凳龙进入螺线的推进,螺线的曲率半径减小,板凳之间的最近距离应该是呈现减小的趋势。
  • 最近距离的求得与板凳之间的实际位置相关,运动过程中螺线每一圈存在板凳对角突出的情况,导致最近距离呈现类周期的变化规律,这与螺线本身呈现一圈圈环绕的形状相关。

问题四结果分析

在求解出问题四的结果之外,通过对问题四所有板凳的速度进行可视化,可发现在 t < 10 s t<10s t<10s时,所有的板凳速度几乎保持一致,趋近于 1 m / s 1m/s 1m/s,但是在 t = 10 s t=10s t=10s处,几乎所有板凳出现了一个速度的突变,且在此之后板凳的速度分别出现变化,通过对该时间的板凳龙位置进行可视化,得出了如下结论:

  • t = 10 s t=10s t=10s时候板凳龙前把手刚好进入后段圆弧,由于求解得到的后段圆弧半径仅有 1.50 m 1.50m 1.50m左右,故板凳龙前把手几乎可以在 1 s − 2 s 1s-2s 1s2s内越过,此时会出现较大的弧度变化,导致板凳龙前把手的运动对后面龙身的运动产生了较大的影响,进而影响了其他所有龙身的速度。
  • 龙身后面的部分逐步通过该圆弧,每个龙身通过过程均会产生较大的弧度变化,进而导致速度出现波动,最终出现速度热力图中的现象。

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

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

相关文章

Linux快速入门-Linux的常用命令

Linux的常用命令 1. Linux的终端与工作区1.1 终端概述1.2 切换终端 2. Shell语言解释器2.1 Shell概述 3. 用户登录与身份切换3.1 su 命令3.2 sudo 命令 4. 文件、目录操作命令4.1 pwd 命令4.2 cd 命令4.3 ls 命令4.3.1 ls 指令叠加使用 4.4 mkdir 命令4.5 rmdir 命令4.6 cp 命令…

ASP.NET Web应用程序出现Maximum request length exceeded报错

一、问题描述 在ASP.NET的web应用中&#xff0c;导出数据时出现500 - Internal server error.Maximum request length exceeded。 二、原因分析 这个错误通常出现在Web应用程序中&#xff0c;表示客户端发送的HTTP请求的长度超过了服务器配置的最大请求长度限制。这可能是因为…

【JDBC】使用原生JDBC,数据量很大且内存空间较小的情况下,JavaHeap溢出

文章目录 使用原生JDBC&#xff0c;数据量很大且内存空间较小的情况下&#xff0c;JavaHeap非常容易溢出问题背景java.lang.OutOfMemoryError: Java heap space错误分析解决方案1. **优化数据库查询**2. **调整 JVM 堆内存**3. **批量处理数据**4. **线程池优化** 总结**Result…

uniapp 微信小程序 数据空白展示组件

效果图 html <template><view class"nodata"><view class""><image class"nodataimg":src"$publicfun.locaAndHttp()?localUrl:$publicfun.httpUrlImg(httUrl)"mode"aspectFit"></image>&l…

12.26 学习卷积神经网路(CNN)

完全是基于下面这个博客来进行学习的&#xff0c;感谢&#xff01; ​​【深度学习基础】详解Pytorch搭建CNN卷积神经网络LeNet-5实现手写数字识别_pytorch cnn-CSDN博客 基于深度神经网络DNN实现的手写数字识别&#xff0c;将灰度图像转换后的二维数组展平到一维&#xff0c;…

【团标】《信息工程造价政务信息化项目造价评估方法》(TCQAE11021-2023)-费用标准解读系列33

《信息工程造价政务信息化项目造价评估方法》&#xff08;TCQAE11021-2023&#xff09;是中国电子质量管理协会2023年发布&#xff0c;2023年12月16日开始实施的标准&#xff08;了解更多可直接关注我们咨询&#xff09;。该标准适用于政务信息化项目的造价评估&#xff0c;政务…

mybatisplu设置自动填充

/*** mybatisplus的自动化填充*/public class JboltMetaObjectHandler implements MetaObjectHandler {Overridepublic void insertFill(MetaObject metaObject) {LocalDateTime now LocalDateTime.now(ZoneId.of("Asia/Shanghai"));this.strictInsertFill(metaObje…

音视频入门基础:MPEG2-TS专题(23)——通过FFprobe显示TS流每个packet的信息

一、引言 通过FFprobe命令&#xff1a; ffprobe -of json -show_packets XXX.ts 可以显示TS流/TS文件每个packet&#xff08;也称为数据包或多媒体包&#xff09;的信息&#xff1a; 对于TS流&#xff0c;上述的“packet”&#xff08;数据包或多媒体包&#xff09;是指&…

Linux电源管理——CPU Hotplug 流程

目录 一、相关概念 二、基本原理 三、代码分析 1、CPU_ON 2、CPU_OFF References Linux Version&#xff1a;linux-5.4.239 一、相关概念 在单核操作系统中&#xff0c;操作系统只需管理一个CPU&#xff0c;当系统有任务需要执行时&#xff0c;所有的任务会在该CPU的就绪…

探索数据的艺术:R语言与Origin的完美结合

探索数据的艺术&#xff1a;R语言与Origin的完美结合 R语言统计分析与可视化从入门到精通内容简介获取方式 Origin绘图深度解析&#xff1a;科研数据的可视化艺术内容简介获取方式 R语言统计分析与可视化从入门到精通 内容简介 本书循序渐进、深入讲解了R语言数据统计分析与应…

python基础训练之元组的基本操作

主页包含元组基础知识点 【练习要求】 针对于元组的知识点进行常用的创建、定义、查询元素、查看元组长度等操作。效果实现如下 (注&#xff1a;特别要注意一下切片的用法) #创建元组的两种方法 T1 () T2 tuple() #定义一个元组并存储数据张三, 李四, 王五 T3 (张三, 李四…

选煤厂可视化技术助力智能化运营

通过图扑 HT 可视化搭建智慧选煤厂管理平台&#xff0c;优化了选煤生产流程&#xff0c;提高了资源利用率和安全性&#xff0c;助力企业实现智能化运营和可持续发展目标。

C语言基础:指针(数组指针与指针数组)

数组指针与指针数组 数组指针 概念&#xff1a;数组指针是指向数组的指针&#xff0c;本质上还是指针 特点&#xff1a; 先有数组&#xff0c;后有指针 它指向的是一个完整的数组 一维数组指针&#xff1a; 语法&#xff1a; 数据类型 (*指针变量名)[行容量][列容量]; 案…

接口测试Day03-postman断言关联

postman常用断言 注意&#xff1a;不需要手敲&#xff0c;点击自动生成 断言响应状态码 Status code&#xff1a;Code is 200 //断言响应状态码为 200 pm.test("Status code is 200", function () {pm.response.to.have.status(200); });pm: postman的实例 test() …

01- 三自由度串联机械臂位置分析

三自由度串联机械臂如下图所示&#xff08;d180mm&#xff0c;L1100mm&#xff0c;L280mm&#xff09;&#xff0c;利用改进DH法建模&#xff0c;坐标系如下所示&#xff1a; 利用改进DH法建模&#xff0c;该机器人的DH参数表如下所示&#xff1a; 对该机械臂进行位置分析&…

lxml 解析xml\html

from lxml import etree# XML文档示例 xml_doc """ <root><book><title>Python编程指南</title><author>张三</author></book><book><title>Python高级编程</title><author>李四</autho…

用Python写炸金花游戏

文章目录 **代码分解与讲解**1. **扑克牌的生成与洗牌**2. **给玩家发牌**3. **打印玩家的手牌**4. **定义牌的优先级**5. **判断牌型**6. **确定牌型优先级**7. **比较两手牌的大小**8. **计算每个玩家的牌型并找出赢家**9. **打印结果** 完整代码 以下游戏规则&#xff1a; 那…

基于 SpringBoot微信小程序的医院预约挂号系统

摘 要 时代在飞速进步&#xff0c;每个行业都在努力发展现在先进技术&#xff0c;通过这些先进的技术来提高自己的水平和优势&#xff0c;医院预约挂号系统当然不能排除在外。医院预约挂号系统是在实际应用和软件工程的开发原理之上&#xff0c;运用微信开发者、java语言以及…

高仿CSDN编辑器,前端博客模板

高仿CSDN编辑器纯前端模板&#xff0c;使用的js、html、vue、axios等技术&#xff0c;网络请求库已进行封装&#xff0c;可以按需调整界面,需要源码联系(4k左右)。 1.支持代码高亮 2.支持目录点击定位 3.支持文件上传、图片上传&#xff08;需要自己写后端接口&#xff09; 4.M…

【C++11】类型分类、引用折叠、完美转发

目录 一、类型分类 二、引用折叠 三、完美转发 一、类型分类 C11以后&#xff0c;进一步对类型进行了划分&#xff0c;右值被划分纯右值(pure value&#xff0c;简称prvalue)和将亡值 (expiring value&#xff0c;简称xvalue)。 纯右值是指那些字面值常量或求值结果相当于…