APP下载

天气雷达故障测试平台远程控制软件设计

2021-11-01郑鹏斌李昭春

计算机测量与控制 2021年10期
关键词:示波器信号源驱动程序

郑鹏斌,李昭春

(1.海南省气象探测中心,海口 570203;2.海南省南海气象防灾减灾重点实验室,海口 570203)

0 引言

天气雷达在短临预报、灾害性天气预警等方面发挥着重要的作用,而天气雷达的故障诊断一直是存在的难题。文献[1-10]基于多年的天气雷达故障诊断经验,提出了针对天气雷达发射机、接收机、伺服的故障诊断及维修方法。在雷达故障诊断和定标中,仪表有着重要的作用。文献[11-20]从实际应用出发,对示波器、功率计、频谱仪、信号源等测试仪表进行了研究及设计,在各行各业得到了充分的应用。由于岛礁天气雷达保障的需要,海南省气象局研制了便携式天气雷达故障测试平台(以下简称“测试平台”),其是集示波器、功率计、频谱仪、信号源4种测试仪表于一体的设备,主要用于天气雷达定标和故障诊断,其中示波器用以测量发射射频脉冲包络;功率计用以测量发射机输出功率;频谱仪用以测量发射脉冲射频频谱、发射机极限改善因子、接收机噪声系数;信号源用以动态范围测量、回波强度定标和速度测量检验。

在实际使用的过程中,发现由于缺少远程控制手段,使测试平台在使用方面存在一定的局限性,所以针对海南省天气雷达站网的布局特征、保障特点和需求,结合海南省已经拥有一部测试平台的实际情况,开发出可远程控制此平台的软件,用以提高岛礁雷达保障水平,缩短故障维修时间。

1 总体设计

本设计的软件可远程控制测试平台中的示波器、功率计、频谱仪、信号源进行雷达指标测量,采用了标准C/S架构的设计方法,主要由用户层、驱动管理层、仪表驱动层三部分组成,总体框架如图1所示。

图1 总体框架

用户层负责与用户进行交互和向用户展示数据,包括示波器软面板、信号源软面板、频谱仪软面板和功率计软面板。用户层通过TCP/IP协议与驱动管理层进行通信,将用户设置的参数发送到驱动管理层,驱动管理层将采集到的仪表数据发送到用户层中,用户层将接收到的数据按不同的数据类型进行展示。

驱动管理层作为用户层与仪表驱动层的中间层,主要负责仪表驱动程序的管理,因此驱动程序管理模块是驱动管理层最重要的功能模块。仪表硬件发现模块负责搜索系统中所有的硬件资源和网络资源,其中硬件资源主要是系统中存在的仪表板卡,包括示波器、功率计、信号源和频谱仪。仪表硬件发现模块将收集到的所有仪表板卡信息发送给驱动管理模块,驱动管理模块根据仪表板卡类型的不同调用相关驱动程序,并将系统中正在运行的驱动程序统一进行管理。网络通信模块负责与用户层的所有通信,将用户层的设置参数发送给驱动管理模块以设置相关仪表驱动程序,同时将仪表驱动程序采集到的数据发送给用户层。驱动管理层还有负责完成其他功能的功能模块,如用来支持信号源网络控制指令的模块,通过此模块可以用来替代信号源完成接收机的动态范围测试、回波强度测试、最小可测功率测试等测试项。

仪表驱动层为测试平台仪表驱动实现层,负责仪表具体的参数设置与数据采集,仪表驱动层主要包括了示波器驱动程序、信号源驱动程序、频谱仪驱动程序、信号源驱动程序,根据不同的仪表类型,驱动程序的实现方式也不同。为保证兼容性,驱动程序全部采用各板卡的官方驱动程序:使用了NI PXIe-5114板卡作为示波器的硬件模块,因此示波器的仪表驱动采用了NIScope驱动;使用了M9391A板卡作为频谱仪的硬件板卡,因此M9391A的频谱驱动采用了AgM9391驱动程序,而噪声系数测试采用了KtXSAnNoiseFigure驱动程序;使用了NI PXIe-5652板卡作为信号源的硬件模块,因此信号源的仪表驱动采用了niRFSG驱动;使用了NRP-Z81功率计探头作为功率计的硬件模块,因此功率计的仪表驱动采用了rsnrpz驱动。

2 仪表功能设计

故障测试平台包含示波器、功率计、频谱仪、信号源4种仪表,远程控制软件需分别对各仪表的软面板和驱动管理层进行设计。

2.1 示波器设计

示波器软面板的主界面主要可划分为数据显示和参数设置两个区域。其中在参数设置区域可通过选项页切换到不同的页面:垂直偏移电压用于设置示波器通道垂直偏移电压,可调整示波器的测量范围;幅度用于设置示波器通道的测量范围;波形垂直位置用于设置本参数可在垂直方向上移动波形;耦合方式用于设置示波器通道耦合方式,支持值为AC、DC和GND;触发通道用于设置示波器触发通道,支持值为CH0、CH1;触发边沿用于设置示波器触发边沿,支持值为上升沿、下降沿;触发电平用于设置示波器的触发电平;时基用于设置示波器的时基,即时间轴;CH0、CH1输入阻抗设置示波器CH0、CH1的输入阻抗,支持值为50 Ω、1 MΩ;波形水平位置用于设置示波器的水平触发位置,输入值范围为10%~90%。

示波器驱动管理层通过调用官方驱动NIScope对外接口来控制NI PXIe-5114板卡,如图2所示。其调用niScope_ConfigureChanCharacteristics设置通道阻抗;调用niScope_ConfigureVertical设置垂直通道参数;调用niScope_ConfigureHorizontalTiming设置水平参数;调用niScope_ConfigureTriggerEdge设置示波器为模拟边沿触发;调用niScope_ConfigureTriggerImmediate设置示波器触发方式为立即触发,调用niScope_InitiateAcquisition设置示波器采集状态;调用niScope_ActualRecordLength获取每个通道数据量;调用niScope_ActualNumWfms获取示波器已启用的通道数据;调用niScope_Fetch采集示波器数据。

图2 示波器设计流程及调用接口

示波器在天气雷达定标中最重要的作用是测量发射机输出的脉宽,其脉宽的定义为0.1~0.9 Um(Um为幅度)所占用的时间。本设计在使用示波器驱动自带的autoset算法快速找到信号的频率、最大值、最小值信息后,首先根据采集到的波形数据计算信号大概脉冲宽度,再根据所测量到的大概脉冲宽度值对测量处的信号进行放大后再进行精确测量,由此自动得出脉宽值。示波器在测量某些信号时,由于计算结果跳动过大导致测量结果不准确,例如通过调制组件的XS1测量人工线电压,故在测量此类信号时引入了多点平均算法,具体代码如下:

void MultipointAverage(ref double[] wavedata,int radius)//示波器多点平均算法函数;

{

if (radius == 0 || radius == 1 || wavedata.Length<= radius) return;//判断数据是否为空,空则结束;

double[]tempwavedata=wavedata.ToArray();

//读取需要计算的数据;

for (inti = 0; i

{

int start = i - radius / 2;//开始位置记录;

int end = i + radius - radius / 2;//结束位置记录;

if (start < 0) start = 0;//起始位置判断防止数组越界;

if (end >tempwavedata.Length) end = tempwavedata.Length;//结束位置判断防止数组越界;

double[] selectdata = new double[end - start];//记录数据大小;

Array.Copy(tempwavedata, start, selectdata, 0, selectdata.Length);//拷贝指定大小指定位置;

wavedata[i] = selectdata.Average();//求已知数据平均数并赋值;

}

}

2.2 功率计设计

远程控制软件的功率计模块能测量输入信号的平均功率与峰值功率。在远程控制软件的功率计用户界面功能项包含信号中心频率、总损耗、脉宽、重复频率、占空比、单位转换、波形锁定、校零等。用户界面将功率计参数发送给驱动程序后,由驱动程序根据注入信号采集功率数据,采集完成后将采集到的功率数据发送到用户界面显示。当输入信号小于阈值时,为了提高小信号的测量精度,功率测量模块能自动切换运行模式。

功率计驱动管理层通过调用rsnrpz对外接口来控制NRP-Z81功率计,如图3所示。调用rsnrpz_chan_mode设置功率计工作模式;调用rsnrpz_chan_setCorrectionFrequency设置功率计频率;调用rsnrpz_scope_configureScope设置功率计采集参数;调用rsnrpz_trigger_setSource和rsnrpz_trigger_configureInternal设置功率计触发方式;调用rsnrpz_meass_fetchBufferMeasurement采集功率计数据。

图3 功率计设计流程及调用接口

为保证功率计能准确测量实际功率,此模块还做了滤波后比对功能:当滤波后功率值在±0.2 dBm范围内变化时直接输出;当滤波后功率值在0.2~0.5 dBm范围内变化时,保持值不变,但需在第二位小数上加一个随机数;当滤波后功率值变化超过0.5 dBm且连续出现5次时认为测量功率已发生变化。

功率计模块可显示输入脉冲调制信号的脉冲波形,可根据输入信号的不同自动调整波形大小,并能测量出脉冲调制信号的重复频率、脉宽和占空比,用以辅助检测功率测量是否准确,其具体代码如下:

set.Scope_time = d.Pulse_Duration* 4;//示波器时间设置;

set.Getwavedata = true;//设置状态;

set.Offset = -0.2;//设置偏置电压;

set.Scope_point = 1000;//设置采样点数;

set.Trigger_level = d.peak - 2;//设置触发电平;

Dynamometer_data d1 = Set_Config(set, out isError, true);//功率计参数读取;

d1.data = d1.data ??new Dynamometer_wavedata();//判断是否有数据结构,有则新建数据结构;

d1.data.wave = d1.data.wave ??new List();//判断是否有数据结构,没有则新建数据结构;

d1.data.wave = d1.data.wave.Select(x => x + tempconfig.offset).ToList();//计算波形数据;

d1.peak += tempconfig.offset;//峰值计算;

d1.Duty_Cycle = (d1.Pulse_Duration / d.Pulse_Period) * 10000;//占空比计算赋值;

d1.Pulse_Period = d.Pulse_Period;//脉宽赋值;

d.average += tempconfig.offset;//加上补偿(线损);

d1.controlbyte = tempconfig.controlbyte;//测试标志位置赋值;

d1.meas_Type = tempconfig.Meas_type;//测试类型赋值;

d1.UI = tempconfig.UI;//是否是界面数据标志位型赋值;

d1.unit = tempconfig.unit;//单位数据赋值型赋值;

d1.hardware_name = this.hardlocalinfo.hardname;//所用仪表名称;

Data = d1;//功率计参数整体赋值;

2.3 频谱仪设计

故障测试平台的频谱仪模块具有频谱测量功能和噪声系数测试功能,所以远程控制软件也需要对这两种功能分别进行设计。频谱测量功能设有多级菜单,其功能项包括雷达中心频率、峰值搜寻、单位转换、频谱锁定、span、rbw、amp、trace、trigger、reset、marker等;噪声系数功能包含了测量模式(放大器、上变频器、下变频器)、边带模式、本振频率、中频频率、校准功能等,另外还在固定频率的基础上增加了扫频功能。

在设计频谱仪驱动程序时,为了提高驱动程序的兼容性,所有频谱仪模块的控制功能均采用安捷伦官方驱动程序。其官方驱动程序可分为3个部分,分别为AgM90XA驱动、AgM9391驱动和KtXSAnNoiseFigure驱动。AgM90XA驱动为频谱仪模块的中间驱动层,无法直接调用此驱动完成频谱仪驱动程序的编写,但需要此驱动完成所有控制指令的转发,因此在驱动程序初始化时必须启动此驱动程序;AgM9391驱动程序为频谱仪模块实际控制程序,所有的频谱仪模块的操作最终均需由此完成,但此驱动未实现噪声系数测试功能,噪声系数测试功能由AgM90XA驱动实现;KtXSAnNoiseFigure驱动通过连接到AgM90XA驱动实现了噪声系数功能。3个驱动程序关系如图4所示。

图4 频谱仪驱动程序间关系

在频谱模式下,驱动管理程序需先进行设置频谱中心频率、参考电平、采集参数(Span、RBW)、触发方式等才能得到频谱数据。下面给出了驱动管理层在频谱模式下调用驱动程序的部分代码:

agM9391.AcquisitionMode=AgM9391AcquisitionModeEnum.AgM9391AcquisitionModeSpectrum;//设置频谱仪采集模式为频谱模式

agM9391.SpectrumAcquisition.Averaging.Mode=AgM9391SpectrumAveragingEnum.AgM9391SpectrumAveragingOff;//关闭频谱仪内部平均功能,平均功能由自设计的算法来实现

agM9391.RF.Frequency = config.Center_Ferquery;//设置频谱仪中心频率

agM9391.RF.Power = reflevel;//设置频谱仪参考电平agM9391.SpectrumAcquisition.Configure(config.Span,config.RBW,AgM9391FFTWindowShapeEnum.AgM9391FFTWindowShapeFlatTop);//设置频谱仪Span和RBW,并设置FFT窗函数为FlatTop窗

agM9391.Triggers.AcquisitionTrigger.Period = 0;//关闭采集触发延迟

agM9391.RF.IFBandwidth = 160000000;//设置频谱仪IF带宽,M9391A的IF最大带宽为160M

agM9391.Triggers.AcquisitionTrigger.TimeoutMode=AgM9391TriggerTimeoutModeEnum.AgM9391TriggerTimeoutModeAutoTriggerOnTimeout;//设置频谱仪触发的超时模式

agM9391.Triggers.AcquisitionTrigger.Mode=AgM9391Acqu-

isitionTriggerModeEnum.AgM9391AcquisitionTriggerModeImmed-

iate;//设置频谱仪触发模式为立即触发

在噪声系数模式下,本频谱仪模块除可提供冷热噪功能测量整个雷达接收通道的噪声系数外,还可通过DUT模式测量模拟接收通道的噪声系数,其设计流程如图5所示。目前雷达系统一般采用超外差式接收机,所以在测量模式中设计了上变频和下变频模式,另外为了测量在接收系统中极为重要的低噪声放大器的性能,还设计了放大器模式。

图5 噪声系数测量功能设计流程

2.4 信号源设计

本软件的信号源模块可控制信号源输出标准的连续波信号和调制信号。故障测试平台拥有两个网口,网口1用于普通接入网络,网口2专门用于信号源模块接收雷达控制主机的网络控制,所以在设计信号源软面板时,除了设计信号频率、幅度、调制方式外,还需要设计信号源模块的IP地址设置、远程控制是否打开。

本模块将用户设置的参数发送到信号产生模块驱动程序中,同时信号产生模块驱动程序实时监听网口2的网络控制指令,当监听到网络控制指令后,信号产生模块驱动程序按照控制指令设置信号产生模块,同时将接收到的控制指令反馈到用户界面中,此时用户界面禁止用户控制信号产生模块,并将信号产生模块的控制权移交给网络控制,控制流程如图6所示。

图6 信号源控制流程

其网络外部设备控制信号源监听主程序如下:

voidSingallistener(TcpListener listener)

{while

(!MainTokenSource.IsCancellationRequested)

{try

{TcpClienttcpclient = listener.AcceptTcpClient();//监听TCP指针获取

tcpclient.ReceiveTimeout = 500;//监听时间设置

System.IO.StreamReaderreader=newSystem.IO.StreamReader(tcpclient.GetStream());//新建TCP

stringtcpipdata = reader.ReadToEnd();//读取外部仪表控制

WriteDebugInfo(“外部信号源控制指令:” + tcpipdata, “”, true);//日志现实设置

stringip=tcpclient.Client.LocalEndPoint.ToString().Split(':')[0];//读取外部仪表信息

tcpclient.Close();//关闭TCP

reader.Dispose();//读取数据

if (tcpipdata.Trim().Length == 0) continue;//判断时间是否结束

tcpipdata = tcpipdata.Trim();//获取连接时间

int index = running_hard_list.FindIndex(x =>x.Hard.type == Hardware_type.信号源);//获取信号源数据

if (index == -1) continue;//判断是否获取到数据

RFSG.IRFSGrfsg = (RFSG.IRFSG)running_hard_list[index].Hard;//获取驱动

rfsg.Config.IP = ip;//设置信号源IP

Matchmatch=Regex.Match(tcpipdata,“(:OUTP){1}(ut){0,1}(:STAT){0,1}(e){0,1}(ON|OFF|1|0)”,RegexOptions.

IgnoreCase).

3 实际应用

远程控制软件可控制测试平台完成天气雷达故障诊断和所有的天气雷达机外仪表标定项测量。在保证测试平台和装有远程控制软件的电脑网络可连接的情况下,以东方天气雷达故障以及脉冲测试和频谱测试为例,来说明本软件的功能和性能。

3.1 故障诊断

天气雷达故障测试平台在东方新一代天气雷达站进行长时间机外参数测量的测试。机务人员在巡查东方雷达时发现雷达无回波显示,正在空转。位于海口的省级保障人员在接到故障报警后,利用本软件远程控制天气雷达故障测试平台进行了故障诊断。利用测试平台的功率计模块测量发射机输出,读数为0 kW,意味着发射机未发射电磁波,根据发射机的工作原理,首先检查高频放大链路中速调管的输入是否满足要求,经测试平台的功率计模块测量得速调管的输入为33.47 dBm,满足使用要求,则意味着整个高频方法链路没有故障。再用测试平台的示波器模块测量3A12调制组件的XS1口,测得电压为0 V,由于此口是根据人工线电压1:1 000的采样值,则意味着人工线电压为0。再用测试平台的示波器模块测量3A10开关组件的充电触发信号ZP1,无波形,则意味着开关组件出现故障,更换开关组件后故障得以排除。

3.2 示波器测量发射机输出脉冲

采用远程控制软件的示波器功能对发射机输出脉冲进行测量。发射机输出端经定向耦合器、固定衰减器以及测试线缆连接至测试平台的示波器输入端CH0,雷达控制终端发射重复频率为322 Hz的窄脉冲信号并打开高压,即可在示波器软面板上显示窄脉冲的波形,并可通过添加测量项,直接测试脉冲的正脉宽,上升时间、下降时间、顶降等。表1给出了远程测量值与现场测量值的比较,其可以看出测量值之间的差异很小。

表1 远程测量值与现场测量值的比较

3.3 频谱仪测量发射机输出频谱

采用远程控制软件的频谱仪功能对发射机输出频谱进行测量。发射机输出测试端连接至测试平台的频谱仪的RF_IN端。雷达开机的情况下,输入雷达的中心频率为2.96 GHz,Span为50 MHz,分辨率带宽RBW为30 kHz,即可读取频谱。为防止频谱仪内部的放大器饱和,一般设置参考电平为15 dBm。本设计的频谱仪功能带有自动测量谱宽的功能,即可自动测量功率偏移-10~-60 dB的左、右谱宽,进而计算出整个谱宽值,如图7所示。

图7 频谱仪自动测量发射机输出频谱

4 结束语

本设计的测试平台远程控制软件可成功控制天气雷达故障测试平台内的示波器、功率计、频谱仪、信号源进行雷达指标的测量,且远程测量的值与现场测量的值误差极小,具有相当的可靠性,可在天气雷达故障诊断和定标中发挥一定的作用。在设计中,由于程序架构和数据处理算法不完善,导致频谱仪模块的底噪会比较大,可能会导致有用信号的丢失,后续还待改进。

猜你喜欢

示波器信号源驱动程序
VR技术在船舶通信系统天线信号源驻波检测中的应用
避免Windows系统更新反复安装显示驱动
好马配好鞍,洞察靠真探
阻止Windows Update更新驱动程序
高档宽带示波器的发展近况
浅析发射机房前段信号源故障
SS—5702示波器扫描电路分析与故障排除方法
一种基于DDS的信号源的设计与实现
基于FPGA的多功能信号源生成系统设计与实现
高速光学示波器