剡熠琛 李雅梅 拜兵虎
(西安电子工程研究所 西安 710100)
某跟踪雷达作为某武器系统中的一个单体,与其他单体之间通过CAN总线进行通信,因为总线上单体较多,CAN总线分配给雷达的只有两帧数据。在雷达样机研制以及调试过程中,涉及到信号处理、微波前端、伺服系统等多个分机,为了能够在雷达调试过程中及时发现问题、解决问题,仅用两帧CAN内容是不够的,额外增加CAN命令可能增加总线负担、引起系统混乱。
因此,为了兼顾雷达单体调试以及武器系统通讯链路的稳定,雷达样机研制中,在满足总体CAN总线通讯要求的基础上增加了网络通讯方式,调试显控终端需要同时具备这两种通讯方式的命令下发及状态采集。
此外,为了便于调试过程中的雷达状态分析,调试终端具备数据分析功能也尤为重要。对于该雷达系统而言,首先,需要对雷达状态、雷达跟踪数据、伺服编码及全量数据进行解析;其次,在系统联调时,搜索雷达通过CAN总线将目标信息发送给跟踪雷达,导引跟踪雷达完成对目标的截获和跟踪。由于调试中受雷达摆放位置的影响,经常需要对导引角度做修正。因此在联调时,需要对导引精度进行分析,以便偏差较大时能够进行修正;最后,跟踪雷达作为武器系统的重要组成部分,其跟踪精度直接影响了整个武器系统的作战效能,因此在终端中进行动飞精度分析,是非常必要的。
我们希望设计一款调试软件,能够同时实现上述功能,即集雷达控制、状态显示及数据分析功能于一体。Matlab是一款功能强大的科研软件,具有丰富的信号处理工具、强大的数据计算能力与实时绘图功能,而且编程非常简单,此外Matlab也有自己的界面设计模块——用户图形界面(Graphical User Interface,GUI),GUI模块可方便设计出图形用户界面。适用于在雷达总站调试过程中实现数据分析、控制、显示等融为一体的软件设计[1-2]。本文将借助Matlab GUI来实现该雷达的调试显控终端设计。
根据雷达调试需求,为了Matlab GUI界面的清晰简洁与操作简便,可将其主要功能分为UDP网络通讯模块、CAN指令控制模块、网络指令控制模块、雷达状态显示模块、目标信息显示模块、目标AR显示模块、数据录取模块、数据分析模块。组成框图如图1所示。
图1 软件组成框图
Matlab中创建GUI界面通常有两种方式:一是使用m文件直接动态添加控件,利用程序编写产生对象(如uicontrol、uimenu)来开发GUI界面;二是通过Matlab自带的GUIDE来快速建立GUI对象,事件处理的代码可以再m文件中进行编写,需修改程序代码时可快捷地在m文件中修改[3]。显然第二种可视化编辑方法更适合编写设计大型程序。本文中选择第二种方法对调试显控终端进行设计。使用GUIDE来建立GUI的设计过程如下:
1)在Matlab命令行窗口中输入GUIDE、或者从菜单栏新建app选择GUIDE创建GUI界面文件,新建且保存后,会生成相应的fig文件和m文件。
2)可以通过在命令行输入guide+文件名.fig进入编辑界面,可以在编辑界面中按照程序功能设计将所需要的控件添加到编辑界面中。常用控件有按钮(Pushbutton)、弹出式菜单(Popup Menu)、坐标轴(Axes)、复选框(CheckBox)、可编辑文本框(Edit Text)、静态文本(Static Text)、面板(Panel)等。
3)每一个控件都有自己的属性,可以在编辑界面中双击该控件进入属性编辑器来设置或修改控件属性,包括控件的名称(Name)、文本(String)、标签(Tag)、位置(Position)、使能状态(Enable)、回调函数(Callback)等各种属性。在m文件中可以通过使用set、get等函数来设置和获取控件属性值。
4)回调函数(Callback)是连接界面和整个程序系统的实质性功能纽带,利用回调函数实现Matlab GUI界面与数据计算的相互交互。编辑某控件回调函数时,右击该控件,在弹出菜单中点击Callback子菜单,激活系统自动生成的hName_Callback(hObject,eventdata,handles)函数,hName表示该控件的Tag属性,hObject表示当前控件的的句柄。在该回调函数下完成相应的功能程序编写即可。
5)在界面设计完毕后,可以对程序进行封装。首先在Matlab命令行窗口输入deploytool,按下回车后弹出窗口,选择第一项“Application Compiler”。在打开的窗口里,点击“加号”,选择打开要生成exe文件的代码,然后选中Runtime included in package,最后点击Package按钮,完成打包,生成可执行exe文件。
该雷达与调试终端之间通过UDP网络进行通讯。利用Matlab进行UDP通信的主要程序指令如下:
1)新建UDP对象与连接
u1=udp(remote_ip); %新建一个udp通信对象
set(u1,‘RemotePort’,remote_port);
set(u1,‘LocalHost’,local_ip);
set(u1,‘LocalPort’,local_port);
set(u1,‘DatagramReceivedFcn’,{@udp_read,handles});
fopen(u1); %打开终端与雷达之间的网络连接
2)通过UDP发送信息和读取
fwrite(u1,data _frame,‘uint8’); %发送
num=u1.BytesAvailable;
udp_read_buf=fread(u1,num,‘uint8’); %读取
3)关闭UDP
fclose(u1);
delete(u1);
为了雷达调试的便捷性,这里借助通用计算机外设CANET-2E-U将CAN-bus数据转换为以太网数据,CANET-2E-U设备具有一路10M/100M/1000M自适应以太网接口,2路CAN-bus接口, 实现CAN-bus网络和以太网网络互连互通。在接入该设备后,雷达调试时的拓扑结构如图2所示。
图2 拓扑图
调试终端通过该设备可以将CAN命令通过UDP帧发送出去。一个UDP帧可以包含若干CAN帧(最多40个,最少1个),一个CAN帧包含13个字节,CAN帧数据格式如图3所示。
图3 CAN帧格式示意图
其中:Byte1用于标识该CAN帧的类型和长度;Byte2~Byte5用于表示该CAN帧的帧ID;Byte6~Byte13表示CAN帧内容。在调试界面CAN指令控制模块程序编写的时候,只需在回调函数中将协议中的CAN指令内容转换为图3格式,便可以通过UDP帧将CAN指令发送出去。
该雷达的数据分析主要包括雷达状态、雷达跟踪数据、伺服编码及全量的解析,导引精度分析,动态检飞精度分析等。对于雷达状态、雷达跟踪数据、伺服编码及全量、导引精度分析而言,不涉及过多运算,按照协议对相应参数进行解析,再按照需求进行一些计算即可。动态检飞精度分析中涉及到数据插值、时间对准、坐标系转换[4-5]等,较为复杂。
本小节中主要对动态检飞精度分析的实现进行说明。图4为动态检飞精度分析流程图,其具体步骤如下:
图4 精度分析流程图
1)步骤1:获取雷达站心位置数据,目标靶机GPS轨迹数据,雷达探测到的目标数据,雷达车体的姿态数据等。其中,雷达站心数据,目标轨迹数据主要包括时间、经度、纬度、高度等信息,该数据基于大地坐标系,可标记为LLA(Longtitude、Latitude、Altitude)坐标;车体姿态数据包括横滚角、纵摇角、偏航角;雷达观测数据包含距离、方位角、俯仰角,该数据基于雷达极坐标。
2)步骤2:步骤1中获取的四组数据采样率不同,为了精度分析的准确性,需要将数据进行插值、平滑滤波处理,然后将四组数据的时间进行对齐,以便于做出更加客观准确的对比。
3)步骤3:将LLA坐标下的雷达站心数据和目标轨迹数据转换到地心地固直角坐标系,标记为ECEF(Earth-Centered Earth-Fixed)坐标,然后旋转平移得到目标相对于雷达站心东北天(East-North-Up,ENU)直角坐标系下的数据,最后将数据转换到ENU极坐标系。
4)步骤4:将雷达极坐标下的雷达观测数据转换到直角坐标,再通过旋转将其转到ENU直角坐标系下,最后将数据转换到ENU极坐标系。
5)步骤5:通过步骤3和步骤4的坐标系转换操作,已将目标真值数据和雷达观测数据转换到同一坐标系下,即可对受检雷达的检飞精度进行计算,得到精度分析结果。
雷达调试显控终端的设计,其控件组织要简洁、合理,且操作使用要方便。最终设计的该雷达调试显控终端界面如图5所示。
图5 调试显控终端界面
1)UDP通信模块:采用“终端网络”复选框控件,当选中“终端网络”复选框后,回调函数会按照预先设置好的IP地址、端口号打开UDP网络,雷达与终端之间开始有数据交互,取消选中“终端网络”复选框时,该UDP网络断开,数据传输中断。
2)网络指令控制模块:当按下“发送”按钮时,回调函数会调用get函数从各交互控件中获取用户设置雷达参数,然后按照通信协议格式使用UDP协议将设置的参数打包发送给雷达信号处理机。按下“模拟”按钮时,会将目标模拟设置的参数下发给雷达信号处理机。
3)CAN指令控制模块:按下相应功能的控件,回调函数会按照CAN协议将CAN帧转换为图3格式发送给信号处理机。
4)雷达状态、目标信息、AR显示模块:主要采用可编辑文本框和坐标轴控件,当终端网络连通后,回调函数会实时读取雷达信号处理机回报的数据,并按照协议对其进行解析,调用set函数将其回报内容显示在调试终端上。
5)数据录取模块:选择存储路径后,点击“存储”按钮,就开始实时录取雷达回报的数据,点击“停止”按钮,停止存储。
6)数据分析模块:菜单栏中的“导引精度分析”、“CAN数据分析”和“动飞精度分析”是对录取的雷达数据进行分析的模块,当选中这三个菜单时,会弹出三个子界面。图6为导引精度分析子界面,图7为CAN数据分析子界面,图8为动态检飞精度分析子界面。按下“文件选择”按钮选择录取的数据文件,回调函数会对该录取数据进行解析,按下参数显示控件,会对相应参数进行计算并绘图输出。
图6 导引精度分析子界面图
图7 CAN数据分析子界面
图8 动态检飞精度分析子界面
目前该调试显控终端已经应用到了该雷达总站调试中,为发现问题、分析问题、解决问题提供了有力支持。正常工作时的调试终端主界面如图9所示。控制主界面左边的参数,雷达会响应终端下发的指令,右边显示栏会发生相应变化。
图9 调试终端主界面
图10为某次调试过程中自检状态下的方位路幅度,图10中可见其幅度为97,而正常工作时自检状态下,和路、方位路、俯仰路幅度均应该在115左右,由此可见方位路信号有大幅衰减,通过分析查找发现方位路有一处线缆不通,整改之后幅度恢复,雷达自检正常。
图10 自检方位路幅度
某次跟飞试验中,为了跟飞过程中导引的准确性,在雷达站标定完成后,对一组数据进行导引精度分析,结果如图11、图12所示。图11为距离导引精度,图12为角度导引精度。可根据图11的距离导引误差对其距离进行修正。由图12可见,俯仰误差较大,在标定准确的前提下,出现大误差是不合理的,通过分析发现跟踪雷达俯仰零位没进行标定,重新标完零位后,导引精度在正常范围。
图11 距离导引精度图
图12 角度导引精度
某次跟飞试验中,利用图8子界面对跟踪雷达的检飞精度进行分析,在Y轴数据选择栏选择方位误差,得到方位精度分析结果如图13所示。选择俯仰误差和距离误差同样会出现相应精度分析结果,这里不再罗列。
图13 方位精度分析结果
基于Matlab GUI的界面设计,编程简单,开发快速、且界面友好,而且Matlab自身强大的数据处理能力和绘图功能有助于数据分析[6]。在调试显控界面中集成了主要的总站调试功能,能够为分析问题和系统改进提供有力支持,可以大幅提高雷达的调试效率,有一定的实际工程意义。