基于C++语言的雷达系统组件化建模与仿真

2020-12-08 03:15张晓东
计算机测量与控制 2020年11期
关键词:信号处理组件调度

张晓东,李 想

(中国飞行试验研究院,西安 710089)

0 引言

目前,世界各国都高度重视雷达仿真技术的发展。利用计算机仿真技术对雷达系统的设计、测试和评估进行模拟,可以有效缩短雷达研制周期,降低成本,提高试验的成功率。近几十年以来,计算机技术不断发展革新,依托的雷达仿真技术也在不断与时俱进。20世纪90年代以前,雷达建模仿真系统大多遵循的是模块化的软件设计思想,而模块化设计思想是典型的面向过程的开发方法。20世纪90年代后,面向对象的软件设计思想逐渐应用到雷达仿真系统的开发上。21世纪以来,组件化软件体系成为软件开发的主流技术,极大地促进了模型和代码的重用。欧美军方已经开发了多种复用组件库,包含了CARDS、ASSET、DSRS等多种成熟的组件仿真系统。

国内的雷达仿真技术经过多年的发展已经取得了许多成果,具有了一定的技术积累。但是国内现有的雷达系统仿真平台大都是基于国外软件进行的二次开发,尤其以Matlab为平台开发的雷达仿真系统居多,这样带来了系统内部各模块之间功能耦合,代码冗余的问题,当测试或更新某项功能时,需要重新编译和调试整个工程项目,耗时久,系统开发起来效率低,难度大。

针对以上问题,本文采用C++语言面向对象编程的特性和软件工程中组件复用的思想,设计实现了一部完整的雷达仿真系统。仿真实验结果表明,雷达仿真系统运行正确,效率高,并且各组件具有较好的复用性和移植性,降低了对雷达仿真系统进行测试和更新功能的难度,为设计功能复杂和不同平台的雷达仿真系统奠定了良好的基础。

1 雷达系统组件化仿真设计方案

1.1 系统框架结构

组件化建模的核心思想是将系统功能抽象分解为独立的组件,并将组件的接口关系规范标准化,从而实现组件间去耦合的最大化,最理想的就是任意替换一个组件,而接口不变,整个系统依然能够正常运行。按照组件化建模与仿真的思想,本文将雷达仿真系统分为雷达系统和环境设置两大部分,其中雷达系统部分由资源调度、发射机、天线、接收机、信号处理和数据处理六大功能组件组成,环境设置部分由目标回波、杂波、干扰和传输损耗4个功能模块组成,用来生成回波信号。各功能组件按照雷达工作顺序通过标准输入输出接口链接成一个完整的雷达仿真系统,系统框架如图1所示。

图1 雷达仿真系统框架图

1.2 系统层次划分

现代雷达是一个庞大复杂的系统,如果按照其工作流程对雷达仿真系统进行结构化设计开发,将会变得异常困难。将软件工程中的分层和组件化思想引入到雷达系统仿真中,便可以有效地解决这个问题。依据分层和组件化思想可将雷达仿真系统分为基础运算层、算法模块层、功能组件层和系统集成层4个层次,然后对每个层次分别进行实现。系统层次划分如图2所示。

图2 系统设计层次图

基础运算层:包含了矩阵运算库和一些补充的基础函数,为算法模块层提供正确、快速、稳定的基础运算函数。

算法模块层:算法模块层是构成雷达仿真系统的基础,并为功能组件层提供逻辑算法和服务功能的支持。

功能组件层:根据高内聚、低耦合的核心思想将雷达仿真系统软件的功能进行划分,保证各功能组件间耦合度最低。功能组件以算法模块层提供的算法为支撑,实现其所需的功能。

系统层:根据某一型雷达系统的运行流程,操作各功能组件实现对其仿真系统的构建。

2 雷达功能组件的设计、实现与管理

2.1 组件设计

组件设计的核心思想是逻辑封装和标准接口,设计者需要将雷达系统的各个功能抽象为组件,组件对外只提供标准的输入输出接口,即组件内部的运算逻辑对外是封闭的,这样既保证了组件之间的去耦合性,又利于组件功能的拓展和升级。

构建组件时,将雷达系统中的各个功能组成部分定义为C++里的类。所有的组件类继承自基类baseModel,基类封装了组件类共有的属性和方法,包括矩阵运算库、基础运算函数、系统时间、网络传输接口、数据格式转换函数和数据库读写函数等。组件类具有标准的输入输出接口参数,输入参数经过主体运行函数的计算后将运算结果传递给输出参数。这样的设计简化了组件类的创建过程,对于共有的属性和方法直接继承自基类即可,当需要对共有属性和方法修改时,只需要修改基类即可,不同的组件根据不同的功能编写不同的主体运行函数,组件之间互不影响。类的继承关系如图3所示。

图3 组件类关系图

雷达仿真系统依赖于各个组件模型的正确性,各个组件是雷达仿真系统建模的基础。本文将一个完整的雷达仿真系统按功能将其抽象为七大组件,分别为资源调度、发射机、天线、回波生成、接收机、信号处理和数据处理。其中资源调度组件管总,是控制雷达系统运行的核心组件。下面将以资源调度组件为例,重点介绍其实现方法,并对其他组件进行简要介绍。

2.1.1 资源调度

资源调度用来实现对雷达事件的调度,其根据设计约束和雷达限制范围,对系统的操作优先级进行划分,约束条件包括时间约束、能量约束、计算能力约束和硬件约束。根据操作优先级对数据处理组件传来的任务请求按照一定的调度算法安排雷达事件,并分配相应的波束指向,最后将执行事件信息输出到其他的组件。仿真系统主要考虑了搜索、确认、跟踪和小搜4个事件。

资源调度组件类继承自基类baseModel,按照软件分层的思想,将资源调度组件分成波位编排、实时任务调度和主体运行函数等算法模块实现。

现代雷达通常采用搜索加跟踪(TAS)的工作模式,即对空域搜索的同时也能保持对重点目标的跟踪,根据时间分割原理可将其理解为雷达在特定时刻对某一空间位置的照射动作,原理如图4所示。

图4 时间分割原理图

雷达系统的资源是有限的,会受到时间、能量、计算能力和硬件的约束,而雷达系统往往是多任务系统,即在同一时刻会执行多个任务,从而会出现多个事件对同一时间槽的竞争,此时,就需要资源调度组件依据事先约定的优先级准则对请求执行的事件队列进行安排。其执行逻辑框架如图5所示。

图5 资源调度执行逻辑框架图

自适应任务调度算法框图如图6所示。

图6 自适应任务调度算法框图

资源调度组件实现如下:

class rdSchedule: public baseModel

{

public: //基本方法

rdSchedule ();

void beamArrange(); /波位编排

void taskManage(); //实时任务调度

void run(); //主体运行函数

~ rdSchedule ();

public: //输入参数

int in_mode; //工作模式

mwin_DetectRange; //探测区域

mwin_ReqList; //请求列表

public: //输出参数

mwout_ScheduleDat; //输出事件安排

};

2.1.2 发射机

发射机用来模拟雷达的发射信号波形。发射机组件根据资源调度组件输出的任务指令对发射信号功率、载频、中心频率、带宽、脉宽等参数进行配置,调制产生脉内信号。组件构成如图7所示。

图7 发射机组件构成

2.1.3 回波生成

回波生成组件用来模拟发射信号经过天线传播后,接触到外部环境产生的多种类型的回波信号,主要包括:目标回波信号、干扰信号和杂波信号。组件构成如图8所示。

图8 回波生成组件构成

2.1.4 天线

天线的功能是用来完成天线方向图的模拟,从而为目标回波、干扰和杂波信号天线增益的计算提供依据。

天线组件根据天线方向图及资源调度组件输出的波束指向,将接收到的目标回波、杂波和干扰信号,分别进行调制并合成出和通道、方位差通道、俯仰差通道三路信号。天线组件构成如图9所示。

图9 天线组件构成

2.1.5 接收机

接收机的功能是对雷达接收机滤除噪声、抑制杂波和干扰的一系列处理过程的模拟。

首先将回波信号送入带通滤波模块,实现对噪声和压制式干扰的抑制。然后进行近程增益控制(STC)和线性-对数放大处理,实现对近程强地物杂波的抑制和接收机动态范围的扩大。执行完一系列增益控制之后,放大了目标回波信号,最后通过数字下变频将中频实信号变为基带复信号,送信号处理组件进行旁瓣相消处理。接收机组件构成如图10所示。

图10 接收机组件构成

2.1.6 信号处理

信号处理的功能是用来模拟雷达对接收机输出信号的处理过程,其能进一步对回波中存在的干扰、杂波等无用信号进行滤除,从而只保留有用的目标信号,获得目标点迹信息。信号处理组件包括了旁瓣相消、脉冲压缩、动目标显示(MTI)、动目标检测(MTD)、恒虚警检测(CFAR)、旁瓣匿影、距离测量和角度测量等几个算法模块。当在进行MTI、MTD与CFAR时,差通道信号的幅度会受到影响,从而影响后面测角的精度,所以俯仰差与方位差通道信号在信号处理时只做旁瓣相消和脉冲压缩处理。信号处理组件构成如图11所示。

图11 信号处理组件构成

2.1.7 数据处理

数据处理组件用来对目标进行判断其是否已经起批,并对目标的轨迹进行预测,以便雷达能够对其保持跟踪。数据处理组件将信号处理得到的点迹信息与已有航迹进行关联,并通过滤波器进行预测,得到目标航向和径向速度,通过滤波提高了目标测量参数的精度。数据处理组件包括了数据预处理、数据关联、航迹更新和跟踪滤波4个算法模块,组件构成如图12所示。

图12 数据处理组件构成

2.2 组件管理

上述各个功能组件开发测试成功后,每个组件以动态链接库的形式放入雷达组件管理库中,然后根据雷达系统的工作顺序将各个组件链接成一个完整的雷达仿真系统。当需要搭建新的雷达系统时,可以直接从雷达组件管理库中调用所需的功能组件,并按照预定的功能需求和软件框架,对雷达系统进行搭建、更新和维护,具有快速、方便的优点。

3 仿真系统实例

本节以舰载相控阵雷达为例,给出了一个完整的组件化雷达仿真系统实例。仿真所用的计算平台型号如下,中央处理器为英特尔酷睿i7-8700处理器。具体参数如表1所示。

表1 仿真平台硬件参数

雷达系统开始工作前,首先要对雷达和环境参数进行初始化,初始化参数存放于数据库中,通过对数据库的读取,完成仿真系统的初始化。典型的舰载相控阵雷达参数如表2所示。

表2 典型舰载相控阵雷达参数表

图13 目标真实信息与雷达探测信息对比图

雷达仿真系统运行过程中的运行结果存储于数据库中,同时可在综合显示界面上将雷达运行结果进行直观地显示。在数据库中取CFAR后回波信号的最大值所在位置,由目标距离计算公式R=0.5nc/fs,可求出目标的距离;由单脉冲测角可得出目标角度信息;由数据滤波可得出目标的径向速度。

取数据库中存储的目标的105次探测值对雷达仿真系统的测量精度进行分析,目标真实信息与雷达探测到的目标信息对比图及雷达探测误差如图13所示。

由图分析可知,目标进入稳态跟踪后,雷达的测距误差在15m以内,测角误差在0.02°以内。速度值在滤波初期,误差较大,但随着滤波次数的增加,速度误差稳定在5m/s以内。这是因为在首次滤波时并没有速度信息,而是通过对距离信息的滤波才产生速度信息,并在后续过程中不断用距离滤波值对速度信息进行修正,提高了滤波速度的精度,间接实现了对速度的准确测量。分析可见雷达探测到的目标的运动信息是正确的。

雷达探测到的目标信息会以规定的格式保存到数据库中,并在综合显示界面上直观地显示出目标航迹信息,如图14~15所示。

图14 目标信息存储文件格式

图15 雷达仿真系统综合显示界面

4 结束语

本文针对基于面向过程式语言的雷达仿真系统开发难度大、模块复用度低、运行速度慢的问题,提出了一种基于C++语言的组件化雷达系统建模与仿真方法,给出了雷达各功能组件的建模方法和完整的仿真系统实例。经过实际仿真的验证,这种方法明显地降低了雷达仿真系统的开发难度,提高了运行速度,降低了开发成本,能够很好地满足现代雷达仿真系统开发的需求,具有光明的应用前景。

猜你喜欢
信号处理组件调度
基于智慧高速的应急指挥调度系统
专题征稿启事
——信号处理
无人机智能巡检在光伏电站组件诊断中的应用
包装过程称量信号处理方法研究
Kistler全新的Kitimer2.0系统组件:使安全气囊和安全带测试更加可靠和高效
基于增益调度与光滑切换的倾转旋翼机最优控制
3月光伏组件出口量增长164.6%至7.49GW!单价创新低
一种嵌入式软件组件更新方法的研究与实现
基于强化学习的时间触发通信调度方法
基于MATLAB的语音信号处理