一种基于双缓存的高速测控目标视图控制算法

2020-11-05 06:11刘宏建王明孝吴超辉蔡中祥
兵器装备工程学报 2020年10期
关键词:控制算法测控视图

刘宏建,王明孝,吴超辉,蔡中祥

(1.信息工程大学 地理空间信息学院, 郑州 400052; 2. 32178部队科创中心, 北京 100020)

常规武器装备靶场试验中,无人机、直升机、导弹等由地面测控网跟踪、测量和控制的飞行目标称为高速测控目标[1]。有别于常规运动目标,高速测控目标的运动速度快,地面测控网测量获得的武器目标实时数据帧率高,单个试验目标帧率可高达20帧/秒[2-3]。高速测控目标视图控制是指:在靶场指控显示系统中,通过对目标在地图活动视图进行实时控制,使测控试验目标在场景中获得最佳显示效果[1]。

高速测控目标视图自适应控制是靶场试验指控显示系统的核心功能,目前国内外对目标视图控制算法的研究归纳起来可总结如下:1) 大部分应用基于不同的空间索引技术(四叉树、BSP树、KDB树、CELL树等),实现了单目标视图控制算法,但较少涉及多目标全局视图控制[4-7]。2) 有少部分应用实现了单目标和多目标的视图自适应控制,但在实现时多采用单级地图缓存和动态目标显示技术相结合的方法[8],这种方法在北斗、GPS动态监控导航应用中效果良好,但难以支持强实时性的高速测控目标视图控制应用。因此,本文提出并实现了一种基于双缓存模型的高速测控目标视图自适应控制算法,较好地解决了上述方法的种种弊端,在实际应用中具有较大意义。

1 视图自适应控制算法

高速测控目标视图实时控制包括两种情况:一是焦点目标跟踪,即当试验目标接近当前地图活动视图地理范围的边界时,根据目标的运动趋势,进行地图数据的预加载,当运动目标达到活动视图边界时,将目标切换至视图中央位置;二是多目标全局视图,即同时有多个被试或参试目标时,既要保证所有目标在当前的地图视图内,又不能使其过于拥挤,需自适应调整地图显示比例尺,从而使多目标显控达到最佳效果。

从靶场试验指控显示的具体需求来看,焦点目标跟踪和多目标全局视图是两个不同的概念,操作方式也不相同,但在算法实现的过程中,可以将焦点目标跟踪和多目标全局视图算法进行融合处理,即采用统一的地图视图自适应算法进行一致处理。其原因如下:1) 从本质上来讲,焦点目标跟踪是多目标全局视图的特殊形式。当多目标全局视图模式中的目标数量n=1时,多目标全局视图即退化成为焦点目标跟踪的情况。2) 不管是焦点目标跟踪还是多目标全局视图,其核心都是对地图数据的快速调度算法,即通过快速的基础地理数据调度与刷新显示来进行视图的动态切换。

高速测控目标视图自适应控制算法的主要思路是:首先从靶场试验测控网解析实时目标信息,并判断当前数据帧是否合法,然后通过目标轨迹判断目标运动趋势,确定目标活动视图是否需要调整,最后预加载地图数据,当目标达到视图阈值参数时,切换当前视图窗口并刷新地图。

本文以AE(ESRI ArcGIS Engine)为试验开发平台,在Intel Core i7 CPU,主频2.70GHz,内存16GB,Win7操作系统环境下,对上述算法进行了统计,结果如表1、表2所示。

根据表1、表2的统计数据,可发现两种现象:1) 在焦点目标跟踪的情况下,初始的地图活动视图比例尺大小是影响算法性能的一个重要因素,当初始地图活动比例尺大于1∶50 000时,对内存和CPU资源的消耗迅速增大,逐渐累积至地图无法再进行刷新,同时导致界面无任何响应。当初始地图活动比例尺小于1∶250 000时,算法运行过程中地图刷新不受影响。这是由于比例尺的减小使当前地图活动视图的地理范围变大,进而使地图刷新的频率大大下降,但这造成的结果就是使目标显示时无法观察细部的地形地物。2) 在多目标全局视图的情况下,如果参试目标数量n≥3,视图自适应控制算法运行3~4 min就会崩溃,而且随着参试目标的增加,算法可正常执行的时间会越来越短。

表1 焦点目标跟踪运行统计表

表2 多目标全局视图运行统计表

产生这两种现象的根本原因在于地图的调度与刷新机制,AE的地图刷新机制如下:首先获取屏幕区域的地理范围,利用空间索引从地理数据库中快速获取当前屏幕范围内的地理实体要素,再将地理实体要素的坐标转换为屏幕坐标,然后用当前屏幕窗口对地理实体数据进行剪裁,剔除不需要绘制的地理实体,并将经过剪裁的地物直接绘制至当前屏幕。这种地图调度与刷新机制,在实时性要求不是很高的情况下是可行的,但对于高速测控目标视图自适应控制,目标数据帧率高、运动速度快、视图切换非常频繁,就导致了地图数据的调度和刷新成为算法的瓶颈。

综上分析,AE的地图调度与刷新机制已不适应于高速测控目标的视图控制要求,为解决上述问题,本文提出并实现了基于双缓存技术的目标视图自适应控制算法。

2 双缓存模型

显示缓存技术的实质是将大量数据的渲染从CPU端转移到显卡上,以充分利用显卡的性能,减少CPU处理负荷,使得大量的动态数据以及高频率刷新的操作可以在瞬间完成[2]。本文将显示缓存分为地图显示缓存M和虚拟显示缓存D1、D2。地图显示缓存M并不是一个实际的存储区域,而是一个屏幕显示接口指针,其作用是在缓存之间进行切换。D1、D2是两个和活动视图屏幕显示范围相同的显示缓存空间,如图1所示。

图1 双缓存模型结构框图

TargetsExtent和TargetsExtent’为范围小于虚拟屏幕的一个内边界。以焦点目标跟踪为例,假设地图显存M指向虚拟显存D1,则当试验目标移动到TargetsExtent边界时,通过遍历试验目标图形缓存容器Graphics Containter中的轨迹数据,计算其相对于目标视图边界的运动趋势,如果目标仍然向视图边界继续运动,则通过IScreenDispaly接口开始重新组织地理数据,并将其放入虚拟显存D2;同时,在缓存D1上,试验目标的移动仍然在进行,当试验目标移动到地地图活动视图范围GeoExtent0时,虚拟显存D2上新的地理数据组织已经准备完毕,此时将地图显存M指向虚拟显存D2,就可以实现地图视图的快速切换(见图2)。对于多目标全局视图,其过程类似,但在判断目标运动趋势时,需要考虑两个边界,即目标边界TargetsExtent和目标视图最小边界TargetsExtent’。

图2 缓存切换与调度过程框图

3 算法优化

基于双缓存的视图自适应控制算法实现流程如图3所示。

图3 目标视图自适应控制算法流程框图

步骤1利用UDP组播协议从靶场试验测控通信网获取目标实时数据帧,解析目标当前数据帧,获取试验目标的目标编号、经纬度坐标、靶场坐标、姿态角、数据时间等信息;判断实时数据帧是否合法,并进行野值剔除与数据平滑(野值点剔除是通过对不同数据段设定不同的“振荡阈值”,去除随机测量误差和野值点对算法的影响[2];平滑处理是利用正交函数系最小二乘拟合的方法[3]对实时数据帧进行平滑,野值剔除与数据平滑的目的是为了提高算法鲁棒性)。

步骤2计算目标视图范围TargetsExtent,方法如下:

① 获取地图活动视图范围GeoExtent0,得到四个角点{G1,G2,G3,G4}={ (b1,l1),(b2,l2),(b3,l3),(b4,l4)},均为地理坐标系中的坐标,需将其转换为屏幕坐标系下的像素坐标,设其为{S1,S2,S3,S4}= {(x1,y1),(x2,y2),(x3,y3),(x4,y4)},设目标视图范围TargetsExtent在屏幕上的像素宽度和高度为ws,hs,则:

(1)

式(1)中的dw和dh是指目标地图符号的宽度和高度,由于目标符号占据有一定大小的屏幕区域,GeoExtent0的范围要大于TargetsExtent的范围。在多目标情况下,dw和dh取所有试验目标地图符号宽度和高度的最大值。

步骤3通过接口查询获取当ActiveMapView的地图显示缓存控制接口和屏幕缓存控制接口初始化D1、D2,为D1、D2分配存储存储空间,并通过地图显示缓存控制接口,将当前活动地图窗口所有地理实体要素像素化,存入D1。

步骤4判断当前模式是焦点目标跟踪或是多目标全局视图,如果是焦点目标跟踪模式,转步骤5处理;如果是多目标全局视图模式,则转步骤8处理;如果未启动地图自适应控制,则转步骤1。

步骤5将当前目标数据帧中的目标编号和焦点目标编号进行比对,如果当前目标是焦点目标,则遍历试验目标图形缓存容器(Graphics Containter),获取并更新目标运动的位置数据和轨迹数据。

步骤6通过接口查询,获取当前活动视图范围的空间拓扑操作算子(ITopyOperator接口对象),利用空间拓扑操作算子判断试验目标是否在目标视图的地理范围区域内。如果目标在TargetsExtent之内,转步骤1;否则,计算焦点目标轨迹的切线(偏航角),从而判断试验目标的运动趋势,如果试验目标继续向TargetsExtent之外移动,则转步骤7。

步骤7利用GeoExtent0的宽度、高度以及当前目标位置重新构造地图视图活动范围,并转步骤11;

步骤8设武器装备试验目标数量为n,遍历试验目标图形缓存容器,获取所有目标的当前位置信息序列{P0,P1,P2,…,Pn},利用点集构造多边形Polygon,并计算其外接矩形Env′。获取n个试验目标的运动轨迹曲线,同时计算所有试验目标偏航角序列{φ1,φ2,…,φn}。

步骤9获取Env′的空间拓扑操作算子,判断Env′同目标视图范围TargetsExtent的关系,循环遍历n个试验目标,判断是否需要进行虚拟显存D1和D2的切换,方法如下:

①Env′ TargetsExtent,这种情况下,需判断Env′与TargetsExtent的面积比值,本文从多次试验中总结出了比例阈值为1/15,即外接矩形大小占据目标视图范围的比例小于1/15时,则转步骤10,启动数据预加载;

②Env′ TargetsExtent,这种情况说明至少有一个目标飞出了当前视图阈值边界,继续根据偏航角φ判断目标运动趋势,进而确定是否需要进行地图数据组织和显示缓存切换。

步骤10启动后台线程,利用IScreenDisplay接口的地图数据调度方法开始组织新的地理数据,并将其拷贝至D2;

步骤11变换地图缓M存指向的显示缓存对象由D2指向D1,自动调整地图比例尺,算法结束。

表3及表4是优化后视图自适应控制算法的运行统计数据。

表3 优化后焦点目标跟踪运行统计数据

表4. 优化后多目标全局视图运行统计数据

4 结论

1) 在焦点目标跟踪的情况下,经过双缓存算法优化,初始地图活动视图比例尺同算法性能没有明显相关性,其对资源的累积消耗现象也得到了消除。

2) 在多目标全局视图的情况下,参试目标数量n的大小同算法性能也无明显相关性,不会随着目标的增多使算法变得不稳定(相同硬件条件下,系统最大可承载参试目标数量n≥8)。

3) 经过双缓存技术的优化,目标视图自适应控制算法在资源的初始消耗上有一定增加,这是用内存资源换取地图刷新时间的结果,这个代价是完全可以接受的。

4) 经优化后,目标视图自适应控制算法鲁棒性大大增强,8个目标情况下,连续运行240 min,共显示2 304 000个轨迹点,PF使用率从282 M增至301 M,增速平缓,整个过程中CPU使用率一直在20%上下浮动。

猜你喜欢
控制算法测控视图
扬州英迈克测控技术有限公司
星载测控终端型谱化研究
昆山祺迈测控设备有限公司
基于dSPACE和PLC的控制算法测试系统设计
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
《投影与视图》单元测试题
Django 框架中通用类视图的用法
基于DCS的过程实时控制平台的研究
卫星姿控系统半物理仿真中转台控制算法的实现