飞行管理问题优化模型.docx
- 文档编号:16614939
- 上传时间:2023-07-15
- 格式:DOCX
- 页数:15
- 大小:63.88KB
飞行管理问题优化模型.docx
《飞行管理问题优化模型.docx》由会员分享,可在线阅读,更多相关《飞行管理问题优化模型.docx(15页珍藏版)》请在冰点文库上搜索。
飞行管理问题优化模型
Corporationstandardizationoffice#QS8QHH-HHGX8Q8-GNHHJ8
飞行管理问题优化模型
飞行管理问题的优化模型
摘要
根据问题我们知道,飞机如果要避免在区域内发生碰撞,则需要调整各自的飞行角,并强调要使调整幅度尽量小,所以这是个最优控制问题。
首先,我们根据本题所给的数据,利用matlab软件绘制出图形,对正方形区域内有可能发生的碰撞做一个大致的估计,并利用lingo软件找出了碰撞发生的飞机、碰撞发生的点和时间。
同时寻找判断两架飞机是否会相撞的方法,经探讨,我们发现可以在飞机飞出区域之前每隔一段较短的时间对飞机进行监控,看是否与别的飞机相撞。
然后,我们根据问题讨论了飞行方向角的调整时间和次数对最优解的影响,发现调整时间越早,调整角度就越小,所以我们决定在第六架飞机刚飞到区域边缘的时候就进行飞行角度的调整;同时我们发现调整次数是越少,调整角度总和就越小,所以我们决定只在第六架飞机刚飞到区域边缘时对所有的飞机的飞行角度进行一次调整。
我们由此简化了飞机碰撞模型,使飞机在区域内的飞行轨迹更加明了,同时找到了我们的优化目标——调整角度总和最小。
针对优化目标,我们找到约束条件,然后把这些约束条件在lingo中用语言描述出来,再针对运算方面进行改进,得到我们的lingo程序,运行后我们得到了飞机调整的飞行方向角和方案。
最后我们考虑模型的改进和推广。
针对模型求解过程中,lingo程序运行时间过长,我们对6架飞机的飞行方向角改变的大小进行预估,然后代入程序中的角度约束,使程序运行量减少。
同样我们发现在对飞机进行实时监控时的间隔时间可以加大,这样可加快程序运行速度,减少运行时间。
这样就对模型进行了优化。
关键词:
简化,最小调整幅度,最优
一、问题重述
在约10000米的高空某边长为160公里的正方形区域内,经常有若干架飞机作水平飞行。
区域内每架飞机的位置和速度向量均由计算机记录其数据,以便进行飞行管理。
当一架欲进入该区域的飞机到达区域边缘时,记录其数据后,要立即计算并判断是否会与区域内的飞机发生碰撞。
如果会碰撞,则应计算如何调整各架(包括新进入的)飞机飞行的方向角,以避免碰撞。
现假定条件如下:
1)不碰撞的标准为任意两架飞机的距离大于8公里;
2)飞机飞行方向角调整的幅度不应超过30度;
3)所有飞机飞行速度均为每小时800公里;
4)进入该区域的飞机在到达区域边缘时,与区域内飞机的距离应在60公里以上;
5)最多需考虑6架飞机;
6)不必考虑飞机离开此区域后的状况。
请你对这个避免碰撞的飞机管理问题建立数学模型,列出计算步骤,对以下数据进行计算(方向角误差不超过度),要求飞机飞行方向角调整的幅度尽量小。
设该区域内4个顶点的坐标为(0,0),(160,0),(160,160),(0,160)。
记录数据为:
飞机编号
横坐标x
纵坐标y
方向角(度)
1
150
40
243
2
85
85
236
3
150
155
4
145
50
159
5
130
150
230
新进入
0
0
52
注:
方向角指飞行方向与x轴方向的夹角。
试根据实际应用背景对你的模型进行评价与推广。
二、问题分析
根据问题我们知道,飞机如果会在区域内发生碰撞,则发生碰撞的两架飞机间的距离不大于8
,所以为了避免发生碰撞,在飞行区域内需要调整飞机的飞行方向角,使得所有飞机在以后任何一个时间任意两架之间的距离都超过8
。
这是最根本的要求,在这个基础上再对模型进行优化,使所有飞机调整的飞行角度总和最小。
此题讨论碰撞问题,对象有6个,而碰撞有可能发生在任一时刻任意两架飞机之间,所以我们可能要不止一次地改变不止一架飞机的飞行方向角,这样的话调整方案可以说非常多,要找出最优方案无疑难度过大。
所以我们的任务就是先进行简化,然后再分析问题得出优化模型。
简化模型,我们首先考虑飞行方向的改变次数和时间的问题。
确定只在第六架飞机刚飞入区域时进行一次飞行方向的改变后,模型就简化成一个好控制和调整的模型,飞机飞行过程中的每个时间的位置也就能好用带飞机飞行角度的表达式表达出来,这样针对目标函数——飞行方向角度改变总和,就能制定出最重要的约束条件——飞行过程中任意两架飞机的距离不能小于8公里。
再针对目标函数设定别的约束条件,用lingo程序求解。
但程序运行求解时间过长,所以对模型中的飞行角度进行预估,对函数中的飞行角度进行更好的约束,同时加大实时监控的时间间隔,这样就从程序运行量和程序运行速度两方面进行了优化,大大缩短了模型求解的时间,对模型进行了优化。
三、模型假设与符号约定
(1)假设飞机进入控制区域后完全服从地面控制台的调度,其他任何因素或人都不能改变飞机的飞行方向角。
(2)假设从飞机管理处发出的信息飞机马上可以接收并执行(此处忽略飞机在执行过程中所需耗费的时间),不存在滞后或延迟,即可以实现实时控制。
(3)不考虑本组设计的程序在实时控制中运行的时间。
(4)不碰撞的标准为任意两架飞机的距离大于8km。
(5)所有飞机飞行速度均为每小时800km。
(6)飞机在区域外靠雷达自动与其他飞机保持距离大于60km,进入区域后由地面控制台进行统一控制,保证飞机距离大于8km。
(7)假设飞机在区域内改变方向,在飞出区域后驾驶人员会自觉调整方向回归原航线继续飞行。
(8)为了表达清晰,我们对符号作出以下说明:
符号
含义
备注
区域内的第
架飞机
第
架飞机在时刻
时的坐标
此处记第6架飞机进入区域时为
=0
飞机飞行速度
按题中所给条件为800
各飞机未调整方向前的的方向角
飞机头与
轴正向间的夹角
第
架飞机方向角的调整值
四、模型的建立和求解
1、问题简化
根据问题我们知道,飞机如果要避免在区域内发生碰撞,则需要调整各自的飞行方向角,并强调要使调整幅度尽量小,所以这是个优化问题。
从形式上看,本题属于最优控制问题,而且有6个可控制对象,相当复杂。
因为可以在第6架飞机进入该正方形区域起至碰撞前发生前任一时刻调整6架飞机中任一架、任两架、甚至六架飞机的飞行方向,可以一次、两次、多次甚至不断地调整飞机的飞行方向角,因而调整方案太多了,要进行优化无疑是大海捞针。
所以首先要简化方案。
[1]
对于调整的次数和时间,我们可以很肯定地知道,次数自然是越少越好,调整力求一步到位,这样不仅可以减少飞机管理处的工作量和降低飞机相撞的风险,而且一次调整到位才能使飞机方向调整总和最小。
而对于调整的时间,在第6架飞机进入的时候就应该进行调整,这一定是优于晚调整的。
如图:
飞机原来在A点飞向C点,现已知会在点C处与别的飞机发生碰撞,要飞到D点才能避开,若在A点进行调整,只需调整角度
,在B点进行调整,则必须调整角度
,角
是角
的外角,所以角
肯定比角
小。
所以越早调整越好。
并且,当所有6架飞机都进入区域时要整体控制就比较难了,因为相当于又多了一个对象,所以在第6架还在边缘时就应该考虑让其他飞机进行飞行方向角调整。
这样最优的方式应该是在第6架飞机进入时对其进入区域后可能发生的碰撞进行计算,在计算出来后制定方案使飞机马上进行调整,在调整过后飞出区域前飞机再也不改变飞行方向角。
2、模型建立
根据题目要求和数据分析,我们首先判断在第6架飞机进入正方形区域后会否发生飞机碰撞。
我们依照数据,对每一架飞机的航线都求解了一个函数,用matlab画出大致的航线图形(程序见附录)。
其中灰线代表飞机向上飞行,黑线代表飞机向下飞行。
(如图1)
图1:
把飞机速度
转化成
,由此我们可以知道飞机在5秒内仅飞行1km多,根据这个我们将飞机飞行时间分成5秒一段,由这种分段来达到近乎实时监控的目的,知晓每一架飞机每一个5秒的飞行情况,尽可能精确地求出有可能发生碰撞的飞机及碰撞发生的时间段,方便调整。
我们对这个思路整合后用lingo编出程序(程序见附录1),运行得出结果:
如果飞机在区域内按照原飞行方向角沿原航线继续飞行,那么是会发生飞机碰撞的,碰撞一共有两次。
在第88个5秒时,第5架和第6架飞机会发生碰撞;在第95个5秒时,第6架和第3架飞机会发生碰撞。
需要调整飞机的飞行方向角来避过这两次相撞。
下面进行模型求解:
根据题意,目标函数应该为飞行方向角的调整幅度取最小值,所以我们可以得到目标函数:
即各架飞机的调整幅度和最小(我们默认每架飞机都需要进行调整,最佳方案是不调整的飞机调整角度为0)。
题目告诉我们,不碰撞的标准为任意两架飞机的距离都大于8
。
我们将飞机看做一个质点,求出两个质点之间的欧式距离:
即为两架飞机间的距离(如图2):
图2
可得到:
,
为了方便计算并且更加直观,我们对本题理解为在第6架飞入时飞机管理处便进行计算,将得出的最优调整方案马上提供给飞机执行,即每架飞机最多在t=0时改变一次躲过碰撞,之后在区域内便不再改变方向角。
根据这种理解,我们又得到一个约束条件:
综上分析,可以得到第一个模型:
,
由此编写lingo程序(见附录2),若只改变一架飞机的飞行方向角,则解得第六架飞机改变度;若只改变两架飞机的飞行方向角,则解得第四架飞机改变1,9615度,第六架飞机改变度;若改变三架飞机的飞行方向角,则解得第六架飞机改变度,第四架飞机改变度,第三架飞机改变度。
五、模型改进与推广
模型缺点:
在这个模型中我们没有考虑飞机接受命令到执行命令之间的时间,事实上这段时间是存在且不可忽略的。
在实际的飞机航行中,改变飞行角度后,飞机便离开了原航线,在以后的飞行中是要矫正过来的,但是在我们的模型中这个问题并没有列入考虑范围。
并且在模型求解过程中用lingo求解最优解时,程序运行时间有些长,这在现实中是没有那么多的等待时间,因为飞机也在飞行,坐标还在改变,所以模型求解时间应越短越好。
模型优点:
模型将飞机的数量限定为6架,可以说这个数量足够多了。
以世界上最繁忙的国际航空港之一希斯罗机场附近区域为例,因假设飞机在区域内作水平飞行,即知该区域内无机场。
设在希斯罗机场起降的飞机有一半穿过该区域,在本题出来的之前年份其起降架次约为万次[2],则平均每小时有15架飞机穿过该区域,而穿越该区域最场需要
小时,则任一时刻该区域的飞机架数期望值不超过架。
另外,事实上不同飞机的高度是不同的,我们现在都假设在同以水平面上,所以事实上飞机飞行在此平面内的飞机还要少。
模型改进:
模型求解过程中求解时间过长,我们决定先对模型进行预估,把对模型中各架飞机飞行方向角的改变大小进行预估,这样就大大减少了程序的运行时间,对模型进行优化改进。
如我们可看出第一架飞机不会与任何飞机相撞,可使第一架飞机的飞行方向角改变量为0°。
同样我们可以肯定,飞机飞行方向角的改变肯定不超过20°。
这样就可以缩小飞机飞行方向角该变量的取值范围,使程序运行量减少,求解过程时间也就大大减少。
同时,我们发现在对飞机是否相撞的判断时,对飞机进行实时监控,其中的间隔时间可以缩小,不必每隔秒监控一次,因为飞机的飞行速度为公里每秒,而相撞的标准是距离在8公里之内,所以我们可以每隔5秒监控一次,这样使运行速度大大提升,减少了求解时间。
模型推广:
总体来说这个模型比较简单易懂,符合一般的调整需要,对飞机的数量也是可以随意做调整的,但是模型需要强大的实时数据支持。
六、参考文献
[1]朱道元,《数学建模精品案例》,南京:
东南大学出版社,1999
[2]程极泰,《最优设计的数学方法》,北京:
国防工业出版社,1994
附录
(1)
x1=150;
y1=40;
a1=243;
b1=y1-x1*tan(a1/180*pi);
xa=1:
5:
160;
ya=xa*tan(a1/180*pi)+b1;
plot(xa,ya,'r',x1,y1,'+')
holdon
x2=85;
y2=85;
a2=236;
b2=y2-x2*tan(a2/180*pi);
xb=1:
5:
160;
yb=xb*tan(a2/180*pi)+b2;
plot(xb,yb,'r',x2,y2,'+')
holdon
x3=150;
y3=155;
a3=;
b3=y3-x3*tan(a3/180*pi);
xc=1:
5:
160;
yc=xc*tan(a3/180*pi)+b3;
plot(xc,yc,'r',x3,y3,'+')
holdon
x4=145;
y4=50;
a4=159;
b4=y4-x4*tan(a4/180*pi);
xd=1:
5:
160;
yd=xd*tan(a4/180*pi)+b4;
plot(xd,yd,'g',x4,y4,'+')
holdon
x5=130;
y5=150;
a5=230;
b5=y5-x5*tan(a5/180*pi);
xe=1:
5:
160;
ye=xe*tan(a5/180*pi)+b5;
plot(xe,ye,'r',x5,y5,'+')
holdon
x6=0;
y6=0;
a6=52;
b6=y6-x6*tan(a6/180*pi);
xf=1:
5:
160;
yf=xf*tan(a6/180*pi)+b6;
plot(xf,yf,'g',x6,y6,'+')
axis([01600160])
holdon
(2)
model:
sets:
jiaodu/1..6/:
a,a1,b,k,s,c,x,y;
bianhua/1..204/:
t;
zuobiao(jiaodu,bianhua):
x1,y1;
chongdie(jiaodu,jiaodu):
cu;
juli(bianhua,jiaodu,jiaodu):
ju;
jiao/1..3/:
ja;
endsets
@for(bianhua(i):
t(i)=5*i;
);
@for(jiaodu(i):
@free(k(i));
@free(s(i));
@free(c(i)););
@for(jiaodu(i):
@free(a1(i));
@free(b(i)););
@for(jiaodu(i):
@for(bianhua(j):
@free(x1(i,j));
@free(y1(i,j));););
min=(@sum(jiaodu(i):
a1(i)));
@for(jiaodu(i):
@bnd(-30,a1(i),30););
@for(jiao(e):
a1(6)=-3+e;
@for(jiao(z):
a1(3)=-2+z;
@for(jiaodu(i):
a(i)=a(i)+a1(i);
k(i)=@tan(a(i)/180*;
c(i)=@cos(a(i)/180*;
b(i)=y(i)-x(i)*k(i);
);
@for(jiaodu(i):
@for(bianhua(j):
x1(i,j)=x(i)+c(i)*t(j)*800/3600;
y1(i,j)=k(i)*x1(i,j)+b(i);
);
);
@for(bianhua(i):
@for(chongdie(j,p):
cu(j,p)=@if(j#eq#p,66,1);
ju(i,j,p)=(cu(j,p)*((x1(j,i)-x1(p,i))^2+(y1(j,i)-y1(p,i))^2+1))^(1/2);
);
);
););
data:
x=150851501451300;
y=4085155501500;
a=24323615923052;
enddata
(3)
model:
sets:
feiji/1..6/:
a,a1,a2,x,y,v;
shijian/1..204/:
t;
zuobiao(feiji,shijian):
xt,yt;
ok(feiji,feiji):
f;
endsets
min=@sum(feiji(i):
@abs(a2(i)););
@for(feiji(i):
a1(i)=a(i)/180*;);
@for(shijian(i):
t(i)=i/720;);
@for(shijian(k):
@for(ok(i,j)|i#lt#6#and#j#gt#i:
(x(i)+v(i)*t(k)*@cos(a1(i)+a2(i))-(x(j)+v(j)*t(k)*@cos(a1(j)+a2(j))))^2+(y(i)+v(i)*t(k)*@sin(a1(i)+a2(i))-(y(j)+v(j)*t(k)*@sin(a1(j)+a2(j))))^2>64;
);
);
@bnd(0,a2
(1),0);
@bnd(0,a2
(2),0);
@bnd,a2(3),0);
@bnd(0,a2(4),;
@bnd(0,a2(5),0);
@bnd(0,a2(6),;
data:
x=150851501451300;
y=4085155501500;
a=24323615923052;
v=800800800800800800;
enddata
end
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 飞行 管理 问题 优化 模型
![提示](https://static.bingdoc.com/images/bang_tan.gif)