当前位置:文档之家› 2012高教社杯全国大学生数学建模竞赛一等奖论文D

2012高教社杯全国大学生数学建模竞赛一等奖论文D

承诺书我们仔细阅读了中国大学生数学建模竞赛的竞赛规则.我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。

我们知道,抄袭别人的成果是违反竞赛规则的, 如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。

我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。

如有违反竞赛规则的行为,我们将受到严肃处理。

我们授权全国大学生数学建模竞赛组委会,可将我们的论文以任何形式进行公开展示(包括进行网上公示,在书籍、期刊和其他媒体进行正式或非正式发表等)。

我们参赛选择的题号是(从A/B/C/D中选择一项填写): D我们的参赛报名号为(如果赛区设置报名号的话):所属学校(请填写完整的全名):参赛队员(打印并签名):1.2.3.指导教师或指导教师组负责人(打印并签名):日期: 2012 年 9 月 10 日赛区评阅编号(由赛区组委会评阅前进行编号):编号专用页赛区评阅编号(由赛区组委会评阅前进行编号):全国统一编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号):机器人避障问题模型摘要本文主要研究了机器人行走避障最短(时间)路径问题,使机器人能够更好地接受人类指挥,从而更好地协助或取代人类的工作。

问题一:根据两点间直线段最短,最终我们建立了以直线路径为主,圆弧为辅的路径模型,以保证总距离最短。

其中,所经圆弧的半径都取最小转弯半径(10个单位)。

其模型为:∑∑==+=mj j n i i l s l 11min⎩⎨⎧≥≥1010..d r t s问题二:结合问题一,我们从路线相切与对称方面入手建立最短时间路径模型:0021/)2^*1.010(^1(***2/)(min v r e r v r r -+∠++=α利用LINGO 软件编程求解得最短时间路径,其总时间为94.22830秒,总距离为471.1293。

本文在问题一中只建立一个模型就可求解所有可能最短路径的总距离和总时间 ,使模型简洁、精确度高,而在问题二中,通过巧妙运用相切与对称的相关性质建立模型求得最短时间路径。

关键词: 线圆结构 最短路径 总距离 总时间一、问题重述图1是一个800×800的平面场景图,在原点O (0, 0)点处有一个机器人,它只能在该平面场景范围内活动。

图中有12个不同形状的障碍物是机器人不能与之发生碰撞定与障碍物距离至少超过10个单位的目标点。

其中机器人不能折线转弯,只能以圆弧路径转弯。

转弯路径由与直线路径相切的一段圆弧组成,也可以由两个或多个相切的圆弧路径组成,但每个圆弧的半径最小为10个单位。

为了不与障碍物发生碰撞,同时要求机器人行走线路与障碍物间的最近距离为10个单位,否则将发生碰撞,若碰撞发生,则机器人无法完成行走。

机器人直线行走的最大速度为50=v 个单位/秒。

机器人转弯时,最大转弯速度为21.0100e1)(ρρ-+==v v v ,其中ρ是转弯半径。

如果超过该速度,机器人将发生侧翻,无法完成行走。

以下需要我们建立避障最短路径和最短时间路径的数学模型,对场景图中4个点O (0, 0),A (300, 300),B (100, 700),C (700, 640),求:(1)从O (0, 0)出发,O→A 、O→B 、O→C 和O→A→B→C→O 的最短路径。

(2)从O (0, 0)出发,到达A 的最短时间路径。

图1 800×800平面场景图二、问题分析问题一,要求从原点O 按照一定的行走规则绕过障碍物到达目标点的最短路径。

我们首先考虑在各个拐角处画出若干个半径为10个单位的圆弧,然后建立线圆结构,再通过拉绳子的方法找出可能的最短路径,同时利用穷举法列出从原点O 到每个目标点的可能路径,最后通过比较大小得出最短路径。

若要求从原点O 按照一定的行走规则绕过障碍物到达目标点的最短路径的过程中需要经过中间若干个点,那我们将不仅要考虑如何避开障碍物,同时也要考虑在途中转弯的问题。

最后通过建立模型求解比较,最终得出最短路径。

问题二,要求机器人从O (0, 0)出发,到达A 的最短时间路径,要考虑到机器人走直线和避开障碍物走圆弧路径问题,这是一种路线的组合问题。

也就是要考虑行走过程中要走的直线段和圆弧的段数,而这些直线和圆弧又要怎么组合才能使得机器人以最短的时间到达目标点,依据题目我们可以知道圆弧的速度是其半径的函数,走圆弧的半径越大(在一定范围内)机器人转弯速度就越快,转弯所用的时间就越短,所以我们考虑到要么全以圆弧走,直线和圆弧混合走两种情况,但由于机器人走圆弧半径和圆弧圆心没有确定,要求出最短时间优化模型是非常困难的,所以为了简化模型我们设想在机器人执行转弯时圆弧与以该点障碍物为圆心,半径为10的圆内切,再设想把所求圆弧圆心假设在已知直线段上,再利用圆弧上两个切点坐标来确定圆弧弦的中点坐标,最后根据相切与对称原理求得最优化模型。

三、基本假设1.假设机器人能够抽象成一个点来处理。

2.假设机器人拐弯时所走的圆弧弧长无论多小都可转弯成功。

3.假设机器人以最大速度50 v 个单位/秒直线匀速行走,且转弯时匀速行走。

四、符号说明五、模型建立(一)问题一模型:已知两点间直线段最短,所以为了实现机器人从原点行走到达目地的路径最短这一目标,我们首先考虑机器人行走时以走直线段为主。

同时考虑到行走过程中需要转弯且转弯时只能走圆弧路线,为了使得总行走路径最短,还要求尽可能的减少走圆弧,保证机器人在整个行走过程中能顺利进行,机器人随时要与障碍物保持至少10个单位的距离,基于路径最短目标我们首先考虑转弯时的圆弧的半径都取最小拐弯半径(10个单位),另外假设途经的所有圆弧都以障碍物的拐角点为圆心。

目标函数:由于路径是由直线段和圆弧组成,即可设有m 条直线段,n 条圆弧,那么目标函数即可表示为:∑∑==+=mj j n i i l s l 11min⎩⎨⎧≥≥1010..d r t s用此模型就可以求出原点O (0,0)到目标点之间的最短路径。

(二)问题二模型:分析以上表格的数据可得:当12≥r 时,转弯速度越来越接近5。

机器人从O (0, 0)出发,到达A (300,300)的最短时间路径的有三种可能:情况一:在问题一中我们已经知道从O 到达A 的最短路径如图1:图 1从问题一结果进行分析我们知道机器人在转弯时的速度是关于圆弧半径的函数,圆弧半径越大,21.0100e1)(ρρ-+==v v v 就越大,机器人转弯就越快,而情况一是用圆弧半径最小来求路径最短问题,并不适用于解决时间最短问题的优化模型。

所以我们不对它进行具体考虑。

情况二:我们已经设想到圆弧半径大小会影响到机器人行走最终时间长短问题,所以我们假设机器人行走经过障碍物P 点时转弯的圆弧圆心在直线HP 上。

决策目标:设圆弧圆心Q 为(x,y ),圆弧半径为r,分别连接QO 、QA ,其中圆弧上两个切点坐标分别为),(11y x 、),(22y x 位于P 点左右圆弧上,长度分别为21,r r ,QO 、QA 的长度分别为43,r r ,设),(33y x 为圆弧弦的中点坐标,α∠为圆弧夹角的一半。

具体做法如图2所示:图 2目标函数:)2^*1.010(^1/(**2/)(min 021r e r v r r -+∠++=α 从O 到A 机器人行走总距离:α∠++=**221r r r l直线HP 的方程:)23080/()60210()230/()60(--=--x y 圆弧半径长度:2)^210(2)^80(10-+-+=y x r切线21,r r ,QO 、QA 的长度43,r r 的长度:⎪⎪⎪⎩⎪⎪⎪⎨⎧-+-=+=-+-=+=2)^300(2)^300(2^2^2)^300(2)^300(2^2^43222111y x r y x r y x r y x r约束条件:)5/arccos(2)^(2)^(2/)(2/)(0)*()*(2^2)^(2)^(0)(*)300()(*)300(2^)(2)^(2^2^2^2^2^2^53352132131111222222114231r y y x x r y y y x x x y y y x x x r y y x x y y y x x x r y y x x r r r r r r =∠-+-=+=+==-+-=-+-=--+--=-+-=+=+α210802308021><<<y x x 情况三:用同样的方法假设机器人绕过障碍物H 点处转弯的圆弧圆心也在直线HP 上。

决策目标:设圆弧圆心M (x,y ),圆弧半径为r,分别连接MO 、MA ,其中圆弧上两个切点坐标分别为 、 位于H 点左右圆弧上,长度分别为 ,MO 、MA 的长度分别为 ,设),(33y x 为圆弧弦的中点坐标,α∠为圆弧夹角的一半。

具体做法如下图3所示:图 3目标函数:)2^*1.010(^1/(**2/)(min 021r e r v r r -+∠++=α 从O 到A 机器人行走总距离:α∠++=**221r r r l 直线HP 的方程:)23080/()60210()230/()60(--=--x y 圆弧半径长度:2)^60(2)^230(10-+-+=y x r切线21,r r ,MO 、MA 的长度43,r r 的长度:⎪⎪⎪⎩⎪⎪⎪⎨⎧+=-+-=+=-+-=2^2^2)^300(2)^300(2^2^2)^300(2)^300(43222111y x r y x r y x r y x r约束条件:)5/arccos(2)^(2)^(2/)(2/)(0)*()*(2^2)^(2)^(0)(*)300()(*)300(2^2)^(2)^(2^2^2^2^2^2^53352132132222221111114231r y y x x r y y y x x x y y y x x x r y y x x y y y x x x r y y x x r r r r r r =∠-+-=+=+==-+-=-+-=--+--=-+-=+=+α 602302308021<><<y x x六、模型求解(一)问题一模型求解:1.原点O (0,0)到达目标点A (300,300)可能的最短路径(如图4)图 4 图 5我们通过MATLAB 软件进行求解比较得出从原点O (0,0)到达目标点A (300,300)的最短路径为路径一(具体程序见附录)。

(1)路径一总距离L 的求解(如图5)()⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎧++=→∠⨯=-=-=∠∠∠⨯=∠=∠=∠⨯⨯+=∠=====)()()(R )(c L(AE)b L(OD)A --OPD -2 )c R arccos(A )b R arccos(OPD )2a -c b arccos(PE PD R AP c OP b OA a 2222222DE S AE L OD L A O L DPE DE S PE PD PE OPA DPE PE c b OPA π(2)路径一总时间T 的求解(如图5)⎪⎪⎪⎩⎪⎪⎪⎨⎧+==+=-+===21200100/)(/)(/)())2^*1.010(^1/()(5T T T V DE S T V AE L V OD L T e V V V V ρρ (ρ为转弯半径) (3)路径一中圆弧的起点坐标D 和终点坐标E 的求解(如图5)先根据圆心到切线的距离等于半径求出切线的斜率k ,再根据互相垂直的两条直线斜率的乘积等于1-可得到一个关于切点()y x ,的关系表达式,再与该切点所在圆的方程联立方程组,最后通过Matlab 求解。

相关主题