飞行管理摘要本文主要研究了避免飞机撞击的飞行管理问题。在边长为160km的正方形区域内,为了保证欲进入该区域的飞机避免碰撞,对刚进入该区域的飞机记录其数据,然后立即计算并判断是否会与区域内的飞机发生碰撞。若发生碰撞,则做出调整。本文对避免碰撞的飞行管理有一定的意义。避免碰撞的飞行管理是一个在一定约束条件下的最优化问题,但是约束条件是非线性的,难以化为线性规划问题。由此本文将其转化为求极值,引用惩罚函数将该问题化为无约束极值问题求解。通过步长加速法求极值,得到一个局部最优解。本文运用相对运动的观点建立飞机两两不相撞的约束条件,确定出相对速度和相对位置,求出相撞的三种可能。建立相对运动模型,确定每个可调的方向角,使它在不违反判据cos82r所规定的限制下实现子目标。本文运用惩罚函数法将非线性规划问题转化为无约束极值问题求解。进而运用步长加速法求极值,由于步长加速法求出的是局部最优解,为了尽量求出全局最优解,本文选用几组不同的初值代入,求出极小值,再从中选出最优者。取刚进入的飞机左偏1度为初始值,得出一个解为第三架飞机左偏约2.68度,第六架飞机左偏约0.94度,总改变角为约3.629693度。即各机新方向角为243度,236度,223.18度,159度,230度,52.94度。关键词非线性规划相对运动步长加速法飞行管理一、问题重述在约10,000米高空的某边长160公里的正方形区域内,经常有若干架飞机作水平飞行。区域内每架飞机的位置和速度向量均由计算机记录其数据,以便进行飞行管理。当一架欲进入该区域的飞机到达区域边缘时,记录其数据后,要立即计算并判断是否会与区域内的飞机发生碰撞。如果会碰撞,则应计算如何调整各架(包括新进入的)飞机飞行的方向角。以避免碰撞。现假定条件如下:1)不碰撞的标准为任意两架飞机的距离大于8公里。2)飞机飞行方向角调整的幅度不应超过30度。3)所有飞机飞行速度均为每小时800公里。4)进入该区域的飞机在到达区域边缘时,与区域内飞机的距离应在60公里以上。5)最多需考虑6架飞机。6)不必考虑飞机离开此区域后的状况。请你对这个避免碰撞的飞行管理问题建立数学模型。列出计算步骤,对以下数据进行计算(方向角误差不超过0.01度)。要求飞机飞行方向角调整的幅度尽量小。设该区域4个顶点的座标为(0,0),(160,0),(160,160),(0,160)记录数据为:飞机编号横座标X纵座标Y方向角(度)1150140243285852363150155220.54145501595130150230新进入0052注:方向角指飞行方向与X轴正向的夹角。试根据实际应用背景对你的模型进行评价与推广。二、问题分析2.1问题背景的分析在一个正方形区域内,每架飞机的位置和速度向量均由计算机记录其数据。当飞机到达区域的边缘时,计算机立即计算并判断是否会与区域内的飞机发生碰撞。若发生碰撞,则计算出如何调整各架飞机飞行的方向角以避免碰撞。流程如图一所示:图一:飞行管理流程图2.2对问题一的分析在一个某边长为160km的正方形区域内,要求飞机飞行方向角度调整的幅度不应超过30度,飞机飞行速度均为每小时800km,进入该区域的飞机在到达区域边缘时与区域内的飞机的距离应在60km以上。在以上条件下,求最小的飞机飞行方向角调整的幅度。避免碰撞的飞行管理是一个在一定约束条件下的最优化问题,初步分析题意后可知约束条件是非线性的,难以化为线性规划问题。由此我们或许可以将其转化为求极值,引用惩罚函数将该问题化为无约束极值问题求解。之后打算通过步长加速法求极值,可能会得到一个局部最优解。要得到一个全局最优解,估计需要选不同初值带入,进而从中选出最优者。三、模型假设与约定(1)假设飞机作水平飞行,高度约为10000m,不考虑飞行高度不同的情况。(2)假设飞机匀速飞行,飞行速度800/kmh为常数,不考虑速度不均匀的情况。(3)不考虑飞机在该区域外的情况。(4)假设该区域为边长160km的正方形区域,飞机的位置坐标不计误差。(5)不计飞机进入该区域到计算并判断出是否会发生碰撞的时间。(6)不碰撞的标准为任意两架飞机的距离大于8km。四、符号说明iP第i架飞机坐标i第i架飞机方向角ijd第i架和第j架飞机间的距离v飞机飞行速度800/kmhi第i架飞机的调整角度进入离去飞机计算并判断是否相撞调整飞行路线正方形区域五、模型建立与求解5.0模型准备在如下正方形区域内,有编号为1、2、3、4、5的五架飞机和一架刚进入的飞机,区域内每架飞机的位置和速度向量均由计算机记录其数据,以便进行飞行管理。当一架欲进入该区域的飞机到达区域边缘时,记录其数据后,要立即计算并判断是否会与区域内的飞机发生碰撞。如果会碰撞,则调整各架(包括新进入的)飞机飞行的方向角,以避免碰撞。图二:飞机飞行区域图5.1模型的建立5.1.1目标函数的建立根据题目要求,飞行管理的目标是达到总航向的改变最小,即:61min()ii5.1.2飞机相撞的判断根据相对运动原理iP相对jP的速度方向为coscos,sinsinijijvvt时刻iP相对jP的位置为coscos,sinsinijijijijavtbvt令vtl,则有:22222max4sinsincos4sin,02222ijijijijijijijijijPPflablablll由上可知,iP与jP若相撞仅有三种可能:1)064f,但这与初始条件不符,故无须考虑;2)22max()64,cos642ijijijflr且max30sin2sin22ijijpijijlrl/所以当fl满足(2)或者(3)时,iP与jP相撞,否则不相撞。通过上述问题分析,可以看出这个模型的总目标就是确定每个可调的方向角,使它在不违反判据cos82r所规定的限制下,实现前述子目标,因此从本质上这是一个非线性规划问题。5.1.3非线性规划法解决问题根据前面的分析,我们已把问题转化为求如下极值minmin,68,0iiiijtfPtlvΔΔ/用惩罚函数法可以将其作为无约束极值问题求解,也即求minhfMcM是一个很大的常数因子,c在满足约束条件时为0,否则为正值,这样,h的极值通常只能在满足约束条件处取得,并且是f的极值。取ccbcrcos8cos2,,016022sin()020,6,6ijijijijijijijijiiiirrcrcbΔΔΔ本文用步长加速法求极值。由于步长加速法求出的是局部最优解,为尽量求出全局最优解,我们选用几组不同的初值代入,求出极小值,再从中选出最优者。取刚进入的飞机左偏1度为初始值,得出一个解为第三架飞机左偏约2.68度,第六架飞机左偏约0.94度,总改变角为约3.629693度,即各机新方向角为243,236,223.18,159,230,52.94。六、模型的评价6.1模型的优点(1)将非线性规划转化为线性规划。(2)采用相对速度体现了碰撞的本质,是比较合理的。6.2模型的不足(1)我们的模型得到的不一定是最优解。(2)飞机转弯是曲线,需要一段时间。(3)非线性规划计算时间比线性规划略长。6.3模型的改进提高计算的精度,将飞机刚进入该区域到计算出其是否相撞的时间考虑在内,减少模型的误差。参考文献:[1]胡运权.运筹学基础及运用(第四版)[M],高等教育出版社,2008。[2]孙艳彬,张景春,宋丽丽,胡鸿奎.Delphi7下医院网络排队系统的研究与开发[J],计算机与数字工程,2005,33(6):66-68。[3]刘飚,蔡淑琴,李波,彭志伟.运用排队论评价业务流程效率的方法及模型研究[J],商业研究,2004,(17):90-94。[4]汪浩,严伟.典型AQM算法的性能评价模型[J],计算机学报,2006,29(4):552-560。[5]茆诗松,程依明,濮晓龙.概率论与数理统计教程[M],高等教育出版社,2008。[6]宗大华,宋涛.操作系统教程[M],人民邮电出版社,2008。[7]邹志康,刘巽明.战时医院船床位利用排队系统研究[J],海军医学杂志,2003,24(2):139-142。附录程序1:飞行管理程序p1=[150140243];p2=[8585236];p3=[150155220.5];p4=[14550159];p5=[130150230];p6=[0052];w=zeros(15,1);A=[-1-10000;-10-1000;-100-100;-1000-10;-10000-1;0-1-1000;0-10-100;0-100-10;0-1000-1;00-1-100;00-10-10;00-100-1;000-1-10;000-10-1;0000-1-1;]foro=1:5forj=o+1:1:6l=[X(j)-X(o)Y(j)-Y(o)];qq=[cos(T(o))-cos(T(j))sin(T(o))-sin(T(j))];a(k)=asin(8/norm(1));ll=angle(l(1)+l(2)*i);mmmmm=ll*180/pi;qqq=angle(qq(1)+qq(2*i));mmmmmm=qqq*180/pi;b(k)=qqq-ll;ifb(k)=0w(k,1)=2*b(k)-2*a(k);endifb(k)0A([k],:)=-A([k],:);w(k,1)=-2*b(k)-2*a(k);endk=k+1;endendf=[0,0,0,0,0,0];R=eye(6,6);rr=[Aw]LB=[-pi/6,-pi/6,-pi/6,-pi/6,-pi/6,-pi/6];UB=[pi/6,pi/6,pi/6,pi/6,pi/6,pi/6];XF=quadprog(R,f,A,w,[],[],LB,UB);adjustment=XFA=-1-10000-10-1000-100-100-1000-10-10000-10-1-10000-10-1000-100-100-1000-100-1-10000-10-1000-100-1000-1-10000-10-10000-1-1程序2:飞行区域图示程序:x=[015085150145130160];y=[01408515550150160];plot(x,y,'b+')h=gtext('X');i=gtext('Y');j=gtext('1');k=gtext('2');l=gtext('3');m=gtext('4');n=gtext('5');title('·É»ú·ÉÐÐÇøÓòͼʾ')grid