资源描述:
《lingo求解飞行管理问题.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一、问题的提出1、背景飞机在空中飞行时,常采用分区域管理。为了避免同一区域内的飞机相互碰撞,地面导航台必须时刻记录各飞机的飞行速度、高度及航向,对所记录的数据计算后向各飞机发出控制信号,以便飞机能及时调整其速度、高度或航向。飞机一进入某区域,就受该区域的地面导航台控制,当一区域内投放多架飞机时,要求有一个良好的飞行调度方案。2、问题在约10000米高空的某边长160km的正方形区域内,经常有若干架飞机作水平飞行。区域内飞行的每架飞机的位置和速度向量均由计算机记录其数据,以便进行飞行管理。当一架欲进入该区域的飞机到达区域的边界时,记录其数据后,须立即判断是否将与区域内的飞机相
2、碰撞。若可能发生碰撞,则应计算如何调整各架飞机的飞行的方向角,以避免碰撞。作如下假设:(1)任意两架飞机的安全飞行距离为8公里;(2)所有飞机的飞行速度为800公里/小时;(3)进入该区域的飞机在到达区域边界时,与区域内的飞机的距离应在60公里以上;(4)最多考虑6架飞机;(5)不必考虑飞机离开此区域后的情况。请你对这个避免碰撞的飞行管理问题建立数学模型,列出计算步骤,对以下数据进行计算(方向角误差不超过0.01),要求飞机飞行方向角调整的幅度尽量小。设该区域四个顶点的坐标为:(0,0),(160,0),(160,160),(0,160)。记录数据为:飞机编号横坐标x纵坐标
3、y方向角(度)1150140243285852363150155220.54145501595130150230新进入0052注:方向角指飞行方向与x轴正向的夹角。二、问题分析本文研究的飞机都是高空水平飞行,并且只考虑在一个160160的正方形区域内的情况。在该区域内已经有5架飞机,此时有第6架飞机欲进入,针对这个飞行管理问题,我们需要做以下四方面工作:1、建立平面直角坐标系那么正方形区域4个顶点为:(0,0)(160,0)(160,160)(0,160)将飞机视为质点,飞行路线简化为直线,建立飞机位置和平面坐标的一一对应关系。2、判断新进入飞机是否符合进入该区域的条件由两
4、点间的距离公式:(i=1、2、3、4、5)计算得到1~5架飞机和第6架飞机的距离见下表:飞机编号1~62~63~64~65~6距离205.182120.208215.696153.378198.494从上表可以看出,第6架飞机与任意一架飞机都超过60公里,所以该飞机可以进入正方形区域。3、分析避免引起碰撞的各种约束无碰撞约束是针对调整各架(包括新进入的)飞机飞行的方向角之后的情况:(1)方向角调整的幅度不应超过30度;(2)正方形区域的对角线长度为160km,飞机速度为800km/h,因此一架飞机在该区域的最大飞行时间是160/800小时,约为17分钟;(3)飞行时,各飞机
5、的坐标不断变化,任意时刻两架飞机的距离大于8公里。4、方向角转化因为方向角指飞行方向与X轴正向的夹角,所以调整方向为逆时针时,调整角度为正;调整方向为顺时针时,调整角度为负。在解答过程中,对所有角度都采用弧度描述,所以首先将6架飞机的初始方向角进行转化,结果如下:飞机编号123456度243236220.515923052弧度4.24124.11903.84852.77514.01430.9076三、模型的建立及求解1、约束层1)方向角调整的幅度dθi不应超过30度:-π/6≤dθi≤π/62)该区域内一架飞机的最大可能飞行时间:160/800×60=173)对飞机飞行时刻
6、的描述:飞行时间是连续的,但这求解时会产生无穷多的变量,因此我们把时间离散化,将最大可能飞行时间分为N段,第k个时刻表示为。4)飞行中任意两架飞机的距离不超过8公里第i架飞机的初始坐标为Ai0(Xi,Yi),飞机在不同时刻对应不同的坐标,(单位:分钟)时刻坐标是Aik(Xik,Yik);各架飞机的初始方向角是θi0,调整后的方向角是θik=θi0+dθi。初始位置和时刻位置的距离是
7、Ai0,Aik
8、=v=800/60,据坐标变换公式,将时刻坐标Aik(Xik,Yik)以初始坐标Ai0(Xi,Yi)表示为:上式可以表示任意一架飞机在时刻的坐标,所以第i架到第j架飞机之间的距离
9、可以表示为:,其中:那么,任意两架飞机在任意时刻的距离不超过8公里可以表示成:2、目标层———调整的角度越小越好由于调整方向有负有正,本文取各架飞机调整角度的绝对值之和3、模型的建立与求解从飞行操控难易程度的角度出发,以所有的飞机调整角度最小为目标,建立非线性规划模型,以调整角度dθi为决策变量(规定逆时针调整时dθi>0,顺时针方向调整时dθi<0),模型如下:4、模型求解Lingo程序如下:model:sets:fj/p1..p6/:xi0,yi0,zt0,dzt,zt;time/k1..k1001/:t;en