一种基于在线网络实时交互的空中交通管制模拟训练方法与流程
- 国知局
- 2024-06-21 13:52:22
本发明属于空中交通管制模拟训练领域,具体涉及一种基于在线网络实时交互的空中交通管制模拟训练方法。
背景技术:
1、空中交通管制模拟训练系统是一种以虚拟仿真技术为基础主要用于培训空中交通管制员的训练系统。在现代民航飞行中,空管雷达操作对于航空器的安全和顺利执行具有重要的作用;因此,空管人员需要掌握航空器管制技巧和应对突发情况的能力。在这个背景下,空中交通管制模拟训练得到了广泛的应用。
2、目前的空中交通管制模拟训练系统主要由以下几个组成部分构成:
3、仿真软件:主要用于模拟空中交通仿真场景,包括航空器起降、飞行轨迹、航线、高度等信息,并且可以生成各种异常情况,例如天气突变、飞机故障等。
4、控制台:用于让空管管制员进行操作控制,主要由显示器、键盘和鼠标等设备组成。
5、硬件设备:包括主机、显示器、声卡、网络接口卡等硬件组件。
6、数据库系统:用于存储和管理航空器数据、机场数据、天气数据、飞行计划等信息。
7、在使用空中交通管制模拟训练系统时,管制员通过控制台对仿真软件进行操作,对模拟场景中的航空器进行管制,例如指挥飞机起飞、降落、改变航线,应对异常情况等。然后,系统将管制员的操作结果传输到主机,主机根据管制员的操作和模拟场景计算出航空器的飞行轨迹、速度、高度等信息,并将结果返回到显示器上进行展示。
8、现有的空中交通管制模拟训练系统存在以下缺点:
9、成本高:系统需要购买昂贵的硬件设备、软件授权和网络服务等资源,并且要定期进行更新、维护和检修等工作。每个训练中心都要配备完整的需要购置昂贵的硬件设备、软件及网络基础设施,并且要占用大量物理空间来存放服务器、显示器等设备。
10、效率低:系统只能在固定位置进行模拟训练,并且受限于预定时间表。学员不能根据自己的进度安排灵活地选择合适的课程内容、难度水平和教学方式。也不能有效利用学员的碎片时间,如课间休息、下班后等,来进行随时随地的模拟训练。
11、耗时长:系统需要花费很多时间来准备、启动、关闭以及调试各种参数设置等操作。如果出现故障或异常情况,则可能导致整个训练过程被中断或延迟,并且还要耗费额外人力物力去修复,需要专门的人员投入大量时间。由于各地训练中心独立进行升级,统一升级的难度也随之增大,给维护工作带来了更多的挑战。
12、可扩展性差:系统难以适应不断变化发展的空中交通管制业务需求与规范标准,并且对新技术与新功能支持有限。
13、综上所述,现有的空中交通管制模拟训练系统在成本、维护、升级及培训方式方面均存在问题和缺陷;为解决这些问题,有必要提出一种基于在线网络实时交互的空中交通管制模拟训练方法,以提高空中交通管制模拟训练的效率和便利性。
技术实现思路
1、针对于上述现有技术的不足,本发明的目的在于提供一种基于在线网络实时交互的空中交通管制模拟训练方法,本发明方法采用在线远程方式进行交互训练,实现了地点和时间的解耦,使得学员可以在任何时间、任何地点都能够参与到训练中来,灵活性降低了学员的时间和空间成本,提高了学员参与训练的积极性和便利性。
2、为达到上述目的,本发明采用的技术方案如下:
3、本发明的一种基于在线网络实时交互的空中交通管制模拟训练方法,应用于空中交通管制模拟训练的客户端和服务端中,步骤如下:
4、1)将客户端与服务端中交通训练数据进行加密、解密的更新并同步;
5、2)基于步骤1)中同步后的数据,服务端进行仿真环境的构建;
6、3)基于步骤2)中构建的仿真环境,实时计算和更新航空器飞行姿态信息;
7、4)将步骤3中计算得到的航空器飞行姿态结果数据下发。
8、进一步地,所述步骤1)具体包括:
9、11)客户端读取本地软件和数据的版本信息,方法定义为getclientcurrentversion,将获取的结构赋值给客户端版本信息结构体clientversioninfo,其中包含元素clientversioninfo={macaddr,versioninfo},同时将版本信息传输至服务端进行问询,方法定义为send_version(r),其中r为clientversioninfo,macaddr为mac地址,versioninfo为客户端版本信息;
10、12)服务端获取数据库最新软件和数据版本信息,方法定义为getservicenewversion,将获取的结构赋值给数据库最新版本信息newversioninfo,其中包含元素serviceversioninfo={newversion,preversion,remark},服务端将最新版本信息传输至客户端,方法定义为respond_version(a),其中a为serviceversioninfo,newversion为新版号,preversion为新版本的上一个版本,remark为更新说明;
11、13)客户端和服务端进行版本比对,如果有更新需求,则将更新的版本顺序生成更新列表updateversionlist,列表对象结构定义updateversioninfo,其中包含元素updateversioninfo={currentversion,newversion,updatefilepath,remark},currentversion为当前版本号,updatefilepath为更新文件的路径;
12、14)客户端按照更新列表结构的updatafilepath,下载服务端存储的更新包,更新包中包含敏感信息(包括全国空域图、机场信息、跑道信息、全国航路图、报告点信息、雷达信息及各类区域信息等)的文件均为加密文件;
13、15)服务端对步骤14)中更新包中包含敏感信息的原始文件f进行加密,定义密钥加密算法a,加密使用的密钥为p,客户端授权的密钥为k,加密后的敏感信息文件为f’。
14、进一步地,所述步骤15)具体包括:
15、151)服务端定义加密文件生成过程f’=a(f,p);
16、152)密钥加密算法a定义加密方法encrypt_data(b,p)>c,其中b为原始二进制流,p为密钥,c为加密后的二进制流;该加密方法使用加密运算e(b)=x’xor p,其中,x’为原始文件中的字节,p为密钥p中的字节,xor为根据密钥p进行的异或运算,使用基于feistel网络的迭代过程,对输入数据的x’进行加密或解密操作;
17、153)客户端定义解密文件成功过程f=a^-1(f',k),其中a^-1表示a的逆操作,k为授权给客户端的密钥;
18、154)解密算法a^-1定义解密方法decrypt_file(g,k)>b’,其中g为下载的加密文件,k为授权客户端的密钥,b’为解密后软件可识别的二进制流;该解密方法使用加密运算d(y)=y’xor k;其中,y’为解密文件中的字节,k为密钥k中的字节;
19、155)密钥管理:如果发现信息数据泄露,更改密钥p为新的服务端密钥p',使得授权给客户端的密钥立即失效。
20、进一步地,所述步骤152)具体包括:
21、1521)对原始文件的某一字节x1应用一个伪随机方法prf(aes-cmac方法),得到一个等长的数据输出字节y1,读取下一条数据;
22、1522)将输出字节y1与原始文件的x1的下一个字节x2进行异或运算(xor),得到一个新的部分字节y2;
23、1523)交换两个部分的位置,将y1作为新的x2,将y2作为新的x1;
24、1524)重复步骤1521)-步骤1523),直到达到预设的轮数n;
25、1525)将最后一轮得到的两个部分再次交换位置,得到最终的输出数据y’。
26、进一步地,所述伪随机方法prf使用一个基于分组密码模式的迭代过程,将数据m分成多个块m1,m2,…,mn,并对每个块应用aes加密算法,然后将结果与下一个块进行异或运算;过程重复多次,直到处理完所有的块;最后一个块会根据消息长度进行补位处理,以避免填充攻击;方法表示为:prf(k,m)=aes-cmac(k,m),m为字节x’数据块。
27、进一步地,所述服务端中包含有空中交通仿真运算服务进程atg和动态分组管理服务进程group;
28、所述空中交通仿真运算服务进程atg,用于根据一次仿真训练请求中的数据,构建仿真运算环境,包括但不限于计划和航迹的初始化;根据计划中每个航空器不同高度层对应的飞行参数,实时仿真计算航空器的飞行姿态数据包括但不限于高度、速度、航向、位置、上升下降率、转弯坡度,同时对航空器的姿态改变做出响应;
29、所述动态分组管理服务进程group,用于根据客户端的仿真训练请求,实时监测服务器资源,识别空闲的空中交通仿真运算服务进程atg和空闲的消息传输队列,并将识别到的空闲的空中交通仿真运算服务进程atg和空闲的消息传输队列进行动态配对,用于当前次客户端请求的仿真训练。
30、进一步地,所述步骤2)具体包括:
31、21)客户端将选择仿真请求集合r发送至服务端,由服务端的空中交通仿真运算服务进程atg接收,r={controllist,pilotlist,sectorlist,mapname,exerciseid},其中controllist为虚拟管制列表;pilotlist为虚拟机长列表;sectorlist为扇区列表,每个扇区配置包含扇区号、扇区名称、扇区边界坐标、扇区颜色;mapname为地图名称;exerciseid为训练唯一标识;
32、22)atg根据仿真请求集合r中的地图名称和训练唯一标识读取训练信息,初始化训练结构体exercisegroup,g={exerciseid,groupno,exercisename,mapno,mapname,positionlist,planlist,exercisetime,exercisespeed,runwayinfo,ilsstand,topicaddr,sequenceaddr,radarlist},g为训练结构体exercisegroup的元数据;其中,exerciseid为训练唯一标识;groupno为训练组号;exercisename为训练名称;mapno为地图编号;mapname为地图名称;exercisetime为仿真的utc时间;exercisespeed为训练运行倍速;runwayinfo为训练使用跑道信息;ilsstand为训练使用的盲降标准;topicaddr为改组训练使用的mq消息队列topic的地址,sequenceaddr为改组训练使用的mq消息队列sequence的地址,radarlist为导航设备列表,positionlist为当前次训练的席位信息列表;planlist是当前次训练的所有航空器原始计划的集合;
33、当前次训练所有航空器原始计划的集合planlist,每个航空器原始计划包含出现位置(point)和飞行航路(route),解析航空器的出现位置信息point和航路信息route,定义方法parseroute,将航空器的出现位置和航路字符输出到航路点的集合points;
34、parseroute(r)->r,其中r={point,route}表示输入参数,r表示航路点的集合;触发splitroute方法,splitroute方法将航路字符按照空格或逗号分割成单个航路点或航路段;
35、23)组装计划信息,定义方法assembleplan,将航空器信息组装成客户端可识别的航空器计划信息;assembleplan(p)->plan,其中plan={planid,acid,ssr,adep,ades,planetype,turb,sector,nextsector,cfl,aat,sppmac,current_rpt_no,route,pointname,pointtime,points};planid为计划唯一标识,acid为航班号,ssr为二次代码,adep为起飞机场,ades为落地机场,planetype为机型,turb为尾流,sector为当前扇区,nextsector为下一扇区,cfl为指令高度,aat为出现时间,appmac为对应机长席的mac地址,current_rpt_no为当前航路号,route为航路,pointname为出现位置,pointtime为下一个过点时间;
36、24)组装航迹信息,定义方法assembletrack,将航空器的位置轨迹组装成客户端可识别的航迹信息;assembletrack(t)->track,track={planno,hjh,acid,ssr,current_altitude,aim_altitude,current_gs,current_cas,aim_cas,current_gs,mach,current_heading,aim_heading,current_rate,aim_rate,fly_status,plan_status,x,y,sector,nextsector,handflag,qnhflag,spi,exist,cloud,ice,bump,sppmac,stca,clam,msaw,daiw,hij,rad,emg};其中planno为计划号,hjh为航迹号,acid为航班号,ssr为二次代码,current_altitude为当前高度,aim_altitude为目的高度,current_gs为当前地速,current_cas为当前表速,aim_cas为目的表速,mach为马赫,current_heading为当前航向,aim_heading为目的航向,and current_rate为当前上升下降率,fly_status为飞行状态,plan_status为航空器状态,x为当前位置的x坐标,y为当前位置的y坐标,sector为当前扇区,nextsector为下一扇区,handflag为移交标识,qnhflag为是否qnh修正标识,spi为特殊位置标识,exist为是否出现标识,cloud为是否处于云图范围,ice为是否处于结冰区域,bump为是否处于颠簸区区域,sppmac为所属机长mac地址,stca为冲突告警标识,clam为高度与指令高度不一致告警标识,msaw为低高度告警标识,daiw为危险区告警标识,hij为劫机告警,rad为紧急情况告警,emg为通信异常告警。
37、进一步地,所述步骤22)具体包括:
38、positionlist中单项position结构p={macaddr,role,roomno},macaddr为席位对应的mac地址,该mac地址是唯一标识数据交互的接收方凭证;role为席位角色,包括管制和机长;roomno为训练对应的虚拟教室的房间号;
39、planlist中单项plan结构体plan={acid,ssr,planetype,adep,etd,ades,eta,runway,route,aat,point,speed,altitude},其中acid为航班号;ssr为二次代码;planetype为机型;adep为起飞机场;ades为降落机场;etd为预计起飞时间;eta为预计降落时间;runway为跑道;route为航路;aat为出现时间;point为出现位置;speed为速度;altitude为高度。
40、进一步地,所述步骤3)具体包括:
41、31)利用包线方法确定航空器的性能边界,并结合飞行参数包括但不限于航空器的速度、高度、转弯坡度对训练中的所有航空器进行位置更新;
42、32)根据航空器的飞行速度、转弯坡度、上升/下降的速率、运动周期(1秒更新1次)实时计算航空器的高度、速度、航向的曲线变化;
43、33)预测基于飞行参数的航空器位置。
44、进一步地,所述步骤31)具体包括:
45、311)根据设定的航空器机型和飞行高度,匹配对应飞行速度,定义方法matchspeed(t,h)->s,其中t为机型参数,h为高度参数,s为匹配的飞行速度,使用线性模型s=f(t,h)=a*t+b*h+c,系数a,b,c通过实际飞行数据拟合得到,f表示速度的线性模型计算方法;
46、312)根据航空器的飞行速度和高度确定其转弯坡度,定义方法calculatebank(s,h)->a,其中a为转弯坡度,使用线性模型a=g(s,h)=d*s+e*h+f,系数d,e,f通过实际飞行数据拟合得到,g表示坡度的线性计算方法;
47、313)根据航空器的飞行速度和高度确定其上升或下降的速率,定义方法calculaterate(s,h)->r,r为上升或下降的速率,使用线性模型r=h(s,h)=i*s+j*h+k,系数i,j,k通过实际飞行数据拟合得到,h表示升降率的线性计算方法。
48、进一步地,所述步骤32)具体包括:
49、321)考虑二维正态分布描述航空器的实际位置与预期位置之间的差异,表达式为:
50、
51、其中,x,y为航空器在某一时间点的预期位置;μ1,μ2为航空器在某一时间点的预期位置坐标;σ1和σ2分别为x和y方向上的标准差;σ12为σ1的平方,σ22为σ2的平方;ρ为x和y的相关系数,描述了x和y方向之间的线性相关性相关公式如下;
52、
53、其中,cov(x,y)是x,y的协方差,表示x和y变化趋势的相互关系,计算公式为:
54、cov(x,y)=e[(x-μ1)(y-μ2)]
55、其中,e表示自定义的期望值;通过上式为每个预测的位置点计算一个位置不确定性或置信区间。
56、进一步地,所述步骤33)具体包括:
57、根据航空器飞行速度、转弯坡度、上升下降率和运动周期,计算航空器的经度、纬度、高度、速度和航向的变化,表达式如下:
58、currentx=x0+v*cos(h)*t
59、currenty=y0+v*sin(h)*t
60、ccurrentz=z0+r*t
61、v=v0+q*t
62、h=h0+a*t
63、其中,currentx,currenty,currentz分别表示航空器的实时经度、纬度和高度坐标;v表示航空器的实时速度;h表示航空器的实时航向角;x0,y0,z0,v0,h0分别表示航空器的的初始经度、初始纬度、初始高度、初始速度、初始航向;v*cos(h),v*sin(h)分别表示速度在北方向和东方向的分量;r表示上升或下降率;q示加速度;a表示航向角的变化率。
64、进一步地,所述步骤4)具体包括:
65、41)在接收到创建虚拟教室的请求后,根据消息队列池(mq)的使用情况动态分配队列地址;定义方法f(e)→addr,其中e表示创建虚拟教室的请求;动态分组管理服务进程group接收到新训练请求后,检查消息队列池并返回一个空闲的队列地址(freequeue);
66、42)检测到空闲队列时,启动新的空中交通仿真运算服务进程atg,动态分组管理服务进程group进程检查atg的状态,确保其正常运行,并将初始化训练指令传递给atg进行仿真计算;
67、43)当atg启动时,从主任务队列中取出一个任务子集tasksubset;
68、
69、其中,tasksubset为atg需要处理的任务子集,totaltasks为待处理的总任务数量,n为总的atg数量;
70、44)atg将仿真数据动态分割为若干子集,动态分割根据当前的线程状态和负载进行调整,定义方法:
71、
72、其中,datasubseti为分配给线程i的数据子集,totaldata为所有的仿真数据,n为当前活跃的线程数量;
73、45)atg根据仿真数据的大小和复杂性,动态地唤醒或休眠线程;定义方法如下:若datasubseti>threshold,唤醒线程;反之进行休眠;其中threshold为一个预先设定的值,用于判断是否需要唤醒或休眠线程;
74、46)atg中某一个线程完成其任务后,该线程将结果存储于一个共享的数据结构中,并通知其他线程;其他线程定期检查共享的数据结构,以获取最新的仿真结果;
75、47)确保多线程的工作负载均匀分布,以防止某个线程过载或闲置。
76、进一步地,所述步骤44)具体包括:
77、定期检查每个线程的处理速度和队列长度,如果某个线程处理速度迅速,队列长度短,则增加其数据分割的粒度,使其处理更多的数据;如果线程处理速度缓慢,队列长度长,则减少其数据分割的粒度,减轻其负载。
78、进一步地,所述步骤47)具体包括:
79、471)如果某个线程的工作负载loadi超出预设的上限loadmax,则从该线程中取出部分数据,再重新分配到其他负载低的线程中;
80、472)如果某个线程的工作负载loadi低于预设的下限loadmin,则将其他线程中的部分数据分配到该线程中;
81、473)如果某个线程的工作负载持续低于loadmin一段时间,则该线程进入休眠状态,等待新的数据或任务。
82、本发明的有益效果:
83、(1)本发明提高了空中交通管制人员的培训效率和质量;传统的空中交通管制人员培训方法通常需要在模拟器或者实际操作环境下进行,这需要大量的物力、人力和财力投入,并且操作环境的受控程度不高。而本发明方法可以在任何地点和任何时间进行,不受时间和空间的限制,大大提高了培训效率和质量。
84、(2)本发明方法可以减少硬件设备和服务器的使用,降低了培训成本,避免实际操作环境的建设和维护成本,同时也可以避免实际操作带来的风险和损失。
85、(3)本发明提高了训练内容的可控性和可定制性;可以灵活地设置训练内容和难度,根据不同的培训需求和目标进行定制,提高了训练内容的可控性和可定制性。
86、(4)本发明方法不需要进行本地化安装和升级,同时具有良好的兼容性和易用性,简化了培训流程,提高了培训效率。
87、(5)本发明可以对数据进行有效的保护,防止未经授权的访问和修改;同时,由于其使用了异或运算和feistel网络,具有良好的混淆和扩散特性,能够抵抗各种常见的密码攻击。此外,由于其使用了伪随机方法和aes加密算法,该方法还具有很高的安全性和效率,适合在各种需要数据保护的场景中使用。
88、(6)本发明能够利用包线方法确定飞行器的性能边界,再结合其他参数如速度、高度、转弯坡度等对对练习中的所有航空器进行位置更新;还能够结合二维正态分布模型实时预测航空器位置,考虑位置的不确定性。该方法能够有效地模拟飞行器的运动特性和状态变化,提高仿真运算的准确性和实时性。
89、(7)本发明利用多线程和多进程技术实现数据传输的高并发和低延迟,同时也引入了自适应数据分割、动态线程管理、线程间数据同步、自适应负载均衡等方法,确保系统资源的充分利用和数据处理的高准确性。还能够根据不同情况动态调整数据分割的粒度,以适应不同复杂度的仿真数据,有效地解决了数据传输过程中可能出现的各种问题,提高系统的稳定性和可靠性。
本文地址:https://www.jishuxx.com/zhuanli/20240618/34939.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表