周明,胡士强,张军
(上海交通大学 航空航天学院,上海 200240)
当前,我国民用航空业正以迅猛势头发展,在带来巨大经济和社会效益的同时,也对航空安全提出了越来越高的要求。根据国际民航事故报告显示,在世界航空业务中,死亡人数事故率总的趋势在减少,但因气象原因造成的飞行事故已经上升到总事故的三分之一[1]。大型民用客机需要安装具有气象、湍流、低空风切变探测等功能的机载气象雷达。雷达仿真系统具有经济,灵活等特点,可以解决外场试验成本高,受天气影响等问题,满足雷达系统研发的需要,因此开发一套机载气象雷达仿真系统对于雷达研制,生产都具有非常重要的意义。
目前国外雷达模拟技术已较为成熟,功能全面而深入。如美国Camber公司的Radar Toolkit雷达模拟器,它提供了陆地环境、气象环境、敌我识别等多种模块。可以模拟雷达高度/姿态、折射与地球球面影响、表面反射/折射等多种雷达效果。国内关于雷达仿真系统的公开研究报道相对较少。文献[2]设计了一款机载雷达探测及其资料处理仿真软件,通过输入雷达探测频率,大气状态参数以及水成物相态、分布、含量或混合比,便可以模拟出水成物的雷达回波,并且可以对回波进行衰减订正。文献[3]设计了一个机载气象雷达回波信号仿真系统,可用于高保真雷达回波信号的生成与演示。
由于现有机载气象雷达仿真系统存在计算强度大、非实时性仿真和飞行范围小等局限性,且过于依赖工作站级的高性能计算机作为硬件设备,本文提出了一种机载气象雷达回波仿真系统的总体框架和实现方法,详细介绍了各个模块的算法与工作流程,并针对雷达仿真系统数据处理量大,以及雷达扫描过程中并行化特点提出了CPU+GPU异构并行的解决方案,仿真结果表明,该方法在仿真系统系统的实时性等方面取得了良好的效果。
图1 机载气象雷达仿真系统流程图
机载气象雷达仿真系统流程如图1所示。
具体工作流程如下:
(1)读取环境激励模块生成的气象数据。
(2)对雷达参数、载机参数,波束参数等进行初始化,同时加载飞行航迹。
(3)判断每个天线波束有效照射体内的散射点数,计算每个点的回波强度并累加得到该天线波束的雷达回波强度。
(4)更新载机位置,气象数据和天线扫描角度。
(5)判断扫描是否完成,若完成,绘制雷达回波;若未完成,返回步骤(3),继续进行。
气象雷达通过探测载机前方气象目标的回波强度来判断前方的气象情况,由于真实的气象数据难以获取,因此本文采用基于卫星图像的三维云重建的方法来构建气象雷达环境激励模块。如图2所示的卫星云图中,大地、海洋和云层分别呈现绿色、蓝色和白色,通过颜色差法[4]即可提取出其中的云层区域,图3为通过该算法提取出的云层区域,从图中可以看出,云层区域被很好的提取出来了。由于得到的云层数据是二维的,而我们需要三维的云场体数据,所以还需要二维到三维的重建过程,本文采用马尔科夫链随机场算法。
图2 原始卫星图像
图3 提取的云层区域
马尔科夫链是在数学领域中具有马尔科夫性质的离散时间随机过程,常用在基于观察数据的二维到三维离散变量的随机模拟。利用马尔科夫链思想,认为云层中任何一点的数据都是它周围27个点(包括自身)强度的平均值,通过N次逐层遍历计算每个点,我们可以得到重建后的三维云场体数据,如图4所示。
图4 三维云场体数据
气象雷达探测云和降水等气象目标时,回波强度是云和降水粒子群散射的总和。由于雷达发出的探测脉冲具有一定的持续时间,即脉冲宽度τ,所以在空间的电磁波列就有一定的长度,即脉冲长度h=τc,如图5所示,其中c为电磁波在真空中的传播速度。位于雷达波束和探测脉冲长度范围内的所有大气粒子都可以同时被雷达波所照射。如果雷达发射的圆锥形波束,其水平波瓣宽度θ和垂直波瓣宽度φ近似相等,则距离雷达天线R处波束的横截面积近似为π(R(θ/2))2,于是雷达有效照射体积可以近似地表示为式(1)[5]:
气象目标属于体分布弥散目标,在整个云场范围内由大量微粒子组成。每个散射点的雷达回波由幅度和相位组成,由雷达知识[6]可知,对于云场中处于雷达照射范围内的第k个粒子,雷达回波可表示为式(2):
图5 天线波束有效照射体积示意图
其中Ak(t)表示该微粒回波的幅度,φk(t)表示该微粒回波的相位。将有效照射体积内所有散射粒子的回波强度累加,即可得到该有效照射体的雷达回波数据,如式(3)所示:
雷达仿真系统在计算回波强度数据时,需要大规模的数据计算。在当前主要以PC机为主要仿真平台的情况下,当云场数据增大以及扫描精度提高时,系统很难满足实时性要求。依靠图形处理器灵活的可编程特性以及强大的并行化处理能力,可以摆脱单靠提高CPU性能来提升系统性能的方式,极大的降低了系统的负担和成本。
NVIDIA公司于2007年正式发布的CUDA(Compute Unified Device Architecture,计算统一架构设备)是一种全新的基于GPU流处理器的通用并行计算编程模型[7],通过采用 CPU+GPU异构并行模式,即由CPU负责执行复杂的逻辑处理和事务管理等不适合数据并行的计算,由GPU负责大规模密集型的数据并行计算,来发掘计算机潜在的性能,在成本和性价比方面都有显著的优势。
如图6所示,为CPU+GPU并行化解决方案的流程图。
图6 CPU+GPU异构并行解决方案流程图
首先,在CPU端加载云场数据,并将其拷贝到GPU的纹理存储器中。纹理存储器是一种只读存储器,位 于GPU显存中,可以通过纹理缓存加速读取。其次,设置雷达参数并更新雷达扫描面,将更新的载机位置数据拷贝到GPU的共享存储器中,GPU中的每一个线程根据不同的位置数据来计算当前有效照射体积内的雷达回波强度,并将计算得到的回波强度数据传回CPU端。最后,系统判断扫描是否完成,若完成,则显示雷达回波。
仿真在 Intel Core2 E7400 2.8 GHz CPU,4G 内存,GeForce GTX 550Ti显卡,Visual Studio 2008平台上进行,设置雷达天线的扫描方位角范围为-90 deg~90 deg,俯仰角扫描范围为0 deg~4 deg。
图7中实线表示飞机的飞行路径,此时飞机正要穿越密集的云层区域,图8显示的是雷达探测到前方航路的回波图,通过不同的颜色表示回波强度的大小。
在仿真中,通过设置不同大小的雷达扫描网格,并分别采用CPU和CPU+GPU异构并行的方式运行系统,可以得到如表1所示的结果。
图7 载机飞行轨迹
由表1数据可以看出,并行算法明显优于串行算法。并且随着扫描网格大小的不断增大,加速比也不断增加,这充分说明了基于CUDA的并行计算在处理大规模并行化数据的优势。基于CPU+GPU异构并行的雷达仿真系统在实时性方面取得了良好的效果。
图8 雷达回波显示
表1 仿真结果对比
本文详细介绍了一款机载气象雷达仿真系统的设计过程,针对系统实时性差的特点,提出了GPU加速处理的解决方案,取得了良好的效果。由于雷达系统仿真与建模是一项复杂的研究,本文所做的工作只是初步的试探,还需要进一步的完善。
[1]胡家美,李萍.国际航空气象预报的发展趋势[J].广东气象,2009,36(8):11-13.
[2]纪雷,王振会,滕煦,等.机载雷达探测及其资料处理仿真软件平台设计与实现[C].第27届中国气象学会年会雷达技术开发与应用分会场论文集,2010.
[3]吴仁彪,胡鹏举,卢晓光.机载气象雷达回波信号仿真系统[J].中国民航大学学报,2012,30(2):1 -5.
[4]Somporn Chuai-Aree,Willi Jager,Hans Georg Bock.3D Cloud and Storm Reconstruction from Satellite Image[C].Modeling,Simulation and Optimization of Complex Processes,2008:187 -206.
[5]胡明宝.天气雷达探测与应用[M].北京:气象出版社,2007.
[6]Cheong B L,Palmer R D,Xue M.A Time Series Weather Radar Simulator Based on High - Resolution Atmospheric Models[J].Journal of Atmospheric and Oceanic Technology,2008,25(2):230 -243.
[7]NICKOLLS J.Scalable Parallel Programming with CUDA [J].ACM Queue.2008,6(2):40-53.