鄭鵬斌,李昭春
(1.海南省氣象探測中心,海口 570203;2.海南省南海氣象防災減災重點實驗室,???570203)
天氣雷達在短臨預報、災害性天氣預警等方面發(fā)揮著重要的作用,而天氣雷達的故障診斷一直是存在的難題。文獻[1-10]基于多年的天氣雷達故障診斷經驗,提出了針對天氣雷達發(fā)射機、接收機、伺服的故障診斷及維修方法。在雷達故障診斷和定標中,儀表有著重要的作用。文獻[11-20]從實際應用出發(fā),對示波器、功率計、頻譜儀、信號源等測試儀表進行了研究及設計,在各行各業(yè)得到了充分的應用。由于島礁天氣雷達保障的需要,海南省氣象局研制了便攜式天氣雷達故障測試平臺(以下簡稱“測試平臺”),其是集示波器、功率計、頻譜儀、信號源4種測試儀表于一體的設備,主要用于天氣雷達定標和故障診斷,其中示波器用以測量發(fā)射射頻脈沖包絡;功率計用以測量發(fā)射機輸出功率;頻譜儀用以測量發(fā)射脈沖射頻頻譜、發(fā)射機極限改善因子、接收機噪聲系數;信號源用以動態(tài)范圍測量、回波強度定標和速度測量檢驗。
在實際使用的過程中,發(fā)現由于缺少遠程控制手段,使測試平臺在使用方面存在一定的局限性,所以針對海南省天氣雷達站網的布局特征、保障特點和需求,結合海南省已經擁有一部測試平臺的實際情況,開發(fā)出可遠程控制此平臺的軟件,用以提高島礁雷達保障水平,縮短故障維修時間。
本設計的軟件可遠程控制測試平臺中的示波器、功率計、頻譜儀、信號源進行雷達指標測量,采用了標準C/S架構的設計方法,主要由用戶層、驅動管理層、儀表驅動層三部分組成,總體框架如圖1所示。
圖1 總體框架
用戶層負責與用戶進行交互和向用戶展示數據,包括示波器軟面板、信號源軟面板、頻譜儀軟面板和功率計軟面板。用戶層通過TCP/IP協議與驅動管理層進行通信,將用戶設置的參數發(fā)送到驅動管理層,驅動管理層將采集到的儀表數據發(fā)送到用戶層中,用戶層將接收到的數據按不同的數據類型進行展示。
驅動管理層作為用戶層與儀表驅動層的中間層,主要負責儀表驅動程序的管理,因此驅動程序管理模塊是驅動管理層最重要的功能模塊。儀表硬件發(fā)現模塊負責搜索系統(tǒng)中所有的硬件資源和網絡資源,其中硬件資源主要是系統(tǒng)中存在的儀表板卡,包括示波器、功率計、信號源和頻譜儀。儀表硬件發(fā)現模塊將收集到的所有儀表板卡信息發(fā)送給驅動管理模塊,驅動管理模塊根據儀表板卡類型的不同調用相關驅動程序,并將系統(tǒng)中正在運行的驅動程序統(tǒng)一進行管理。網絡通信模塊負責與用戶層的所有通信,將用戶層的設置參數發(fā)送給驅動管理模塊以設置相關儀表驅動程序,同時將儀表驅動程序采集到的數據發(fā)送給用戶層。驅動管理層還有負責完成其他功能的功能模塊,如用來支持信號源網絡控制指令的模塊,通過此模塊可以用來替代信號源完成接收機的動態(tài)范圍測試、回波強度測試、最小可測功率測試等測試項。
儀表驅動層為測試平臺儀表驅動實現層,負責儀表具體的參數設置與數據采集,儀表驅動層主要包括了示波器驅動程序、信號源驅動程序、頻譜儀驅動程序、信號源驅動程序,根據不同的儀表類型,驅動程序的實現方式也不同。為保證兼容性,驅動程序全部采用各板卡的官方驅動程序:使用了NI PXIe-5114板卡作為示波器的硬件模塊,因此示波器的儀表驅動采用了NIScope驅動;使用了M9391A板卡作為頻譜儀的硬件板卡,因此M9391A的頻譜驅動采用了AgM9391驅動程序,而噪聲系數測試采用了KtXSAnNoiseFigure驅動程序;使用了NI PXIe-5652板卡作為信號源的硬件模塊,因此信號源的儀表驅動采用了niRFSG驅動;使用了NRP-Z81功率計探頭作為功率計的硬件模塊,因此功率計的儀表驅動采用了rsnrpz驅動。
故障測試平臺包含示波器、功率計、頻譜儀、信號源4種儀表,遠程控制軟件需分別對各儀表的軟面板和驅動管理層進行設計。
示波器軟面板的主界面主要可劃分為數據顯示和參數設置兩個區(qū)域。其中在參數設置區(qū)域可通過選項頁切換到不同的頁面:垂直偏移電壓用于設置示波器通道垂直偏移電壓,可調整示波器的測量范圍;幅度用于設置示波器通道的測量范圍;波形垂直位置用于設置本參數可在垂直方向上移動波形;耦合方式用于設置示波器通道耦合方式,支持值為AC、DC和GND;觸發(fā)通道用于設置示波器觸發(fā)通道,支持值為CH0、CH1;觸發(fā)邊沿用于設置示波器觸發(fā)邊沿,支持值為上升沿、下降沿;觸發(fā)電平用于設置示波器的觸發(fā)電平;時基用于設置示波器的時基,即時間軸;CH0、CH1輸入阻抗設置示波器CH0、CH1的輸入阻抗,支持值為50 Ω、1 MΩ;波形水平位置用于設置示波器的水平觸發(fā)位置,輸入值范圍為10%~90%。
示波器驅動管理層通過調用官方驅動NIScope對外接口來控制NI PXIe-5114板卡,如圖2所示。其調用niScope_ConfigureChanCharacteristics設置通道阻抗;調用niScope_ConfigureVertical設置垂直通道參數;調用niScope_ConfigureHorizontalTiming設置水平參數;調用niScope_ConfigureTriggerEdge設置示波器為模擬邊沿觸發(fā);調用niScope_ConfigureTriggerImmediate設置示波器觸發(fā)方式為立即觸發(fā),調用niScope_InitiateAcquisition設置示波器采集狀態(tài);調用niScope_ActualRecordLength獲取每個通道數據量;調用niScope_ActualNumWfms獲取示波器已啟用的通道數據;調用niScope_Fetch采集示波器數據。
圖2 示波器設計流程及調用接口
示波器在天氣雷達定標中最重要的作用是測量發(fā)射機輸出的脈寬,其脈寬的定義為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();//求已知數據平均數并賦值; } } 遠程控制軟件的功率計模塊能測量輸入信號的平均功率與峰值功率。在遠程控制軟件的功率計用戶界面功能項包含信號中心頻率、總損耗、脈寬、重復頻率、占空比、單位轉換、波形鎖定、校零等。用戶界面將功率計參數發(fā)送給驅動程序后,由驅動程序根據注入信號采集功率數據,采集完成后將采集到的功率數據發(fā)送到用戶界面顯示。當輸入信號小于閾值時,為了提高小信號的測量精度,功率測量模塊能自動切換運行模式。 功率計驅動管理層通過調用rsnrpz對外接口來控制NRP-Z81功率計,如圖3所示。調用rsnrpz_chan_mode設置功率計工作模式;調用rsnrpz_chan_setCorrectionFrequency設置功率計頻率;調用rsnrpz_scope_configureScope設置功率計采集參數;調用rsnrpz_trigger_setSource和rsnrpz_trigger_configureInternal設置功率計觸發(fā)方式;調用rsnrpz_meass_fetchBufferMeasurement采集功率計數據。 圖3 功率計設計流程及調用接口 為保證功率計能準確測量實際功率,此模塊還做了濾波后比對功能:當濾波后功率值在±0.2 dBm范圍內變化時直接輸出;當濾波后功率值在0.2~0.5 dBm范圍內變化時,保持值不變,但需在第二位小數上加一個隨機數;當濾波后功率值變化超過0.5 dBm且連續(xù)出現5次時認為測量功率已發(fā)生變化。 功率計模塊可顯示輸入脈沖調制信號的脈沖波形,可根據輸入信號的不同自動調整波形大小,并能測量出脈沖調制信號的重復頻率、脈寬和占空比,用以輔助檢測功率測量是否準確,其具體代碼如下: set.Scope_time = d.Pulse_Duration* 4;//示波器時間設置; set.Getwavedata = true;//設置狀態(tài); set.Offset = -0.2;//設置偏置電壓; set.Scope_point = 1000;//設置采樣點數; set.Trigger_level = d.peak - 2;//設置觸發(fā)電平; 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;//功率計參數整體賦值; 故障測試平臺的頻譜儀模塊具有頻譜測量功能和噪聲系數測試功能,所以遠程控制軟件也需要對這兩種功能分別進行設計。頻譜測量功能設有多級菜單,其功能項包括雷達中心頻率、峰值搜尋、單位轉換、頻譜鎖定、span、rbw、amp、trace、trigger、reset、marker等;噪聲系數功能包含了測量模式(放大器、上變頻器、下變頻器)、邊帶模式、本振頻率、中頻頻率、校準功能等,另外還在固定頻率的基礎上增加了掃頻功能。 在設計頻譜儀驅動程序時,為了提高驅動程序的兼容性,所有頻譜儀模塊的控制功能均采用安捷倫官方驅動程序。其官方驅動程序可分為3個部分,分別為AgM90XA驅動、AgM9391驅動和KtXSAnNoiseFigure驅動。AgM90XA驅動為頻譜儀模塊的中間驅動層,無法直接調用此驅動完成頻譜儀驅動程序的編寫,但需要此驅動完成所有控制指令的轉發(fā),因此在驅動程序初始化時必須啟動此驅動程序;AgM9391驅動程序為頻譜儀模塊實際控制程序,所有的頻譜儀模塊的操作最終均需由此完成,但此驅動未實現噪聲系數測試功能,噪聲系數測試功能由AgM90XA驅動實現;KtXSAnNoiseFigure驅動通過連接到AgM90XA驅動實現了噪聲系數功能。3個驅動程序關系如圖4所示。 圖4 頻譜儀驅動程序間關系 在頻譜模式下,驅動管理程序需先進行設置頻譜中心頻率、參考電平、采集參數(Span、RBW)、觸發(fā)方式等才能得到頻譜數據。下面給出了驅動管理層在頻譜模式下調用驅動程序的部分代碼: 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;//關閉采集觸發(fā)延遲 agM9391.RF.IFBandwidth = 160000000;//設置頻譜儀IF帶寬,M9391A的IF最大帶寬為160M agM9391.Triggers.AcquisitionTrigger.TimeoutMode=AgM9391TriggerTimeoutModeEnum.AgM9391TriggerTimeoutModeAutoTriggerOnTimeout;//設置頻譜儀觸發(fā)的超時模式 agM9391.Triggers.AcquisitionTrigger.Mode=AgM9391Acqu- isitionTriggerModeEnum.AgM9391AcquisitionTriggerModeImmed- iate;//設置頻譜儀觸發(fā)模式為立即觸發(fā) 在噪聲系數模式下,本頻譜儀模塊除可提供冷熱噪功能測量整個雷達接收通道的噪聲系數外,還可通過DUT模式測量模擬接收通道的噪聲系數,其設計流程如圖5所示。目前雷達系統(tǒng)一般采用超外差式接收機,所以在測量模式中設計了上變頻和下變頻模式,另外為了測量在接收系統(tǒng)中極為重要的低噪聲放大器的性能,還設計了放大器模式。 圖5 噪聲系數測量功能設計流程 本軟件的信號源模塊可控制信號源輸出標準的連續(xù)波信號和調制信號。故障測試平臺擁有兩個網口,網口1用于普通接入網絡,網口2專門用于信號源模塊接收雷達控制主機的網絡控制,所以在設計信號源軟面板時,除了設計信號頻率、幅度、調制方式外,還需要設計信號源模塊的IP地址設置、遠程控制是否打開。 本模塊將用戶設置的參數發(fā)送到信號產生模塊驅動程序中,同時信號產生模塊驅動程序實時監(jiān)聽網口2的網絡控制指令,當監(jiān)聽到網絡控制指令后,信號產生模塊驅動程序按照控制指令設置信號產生模塊,同時將接收到的控制指令反饋到用戶界面中,此時用戶界面禁止用戶控制信號產生模塊,并將信號產生模塊的控制權移交給網絡控制,控制流程如圖6所示。 圖6 信號源控制流程 其網絡外部設備控制信號源監(jiān)聽主程序如下: voidSingallistener(TcpListener listener) {while (!MainTokenSource.IsCancellationRequested) {try {TcpClienttcpclient = listener.AcceptTcpClient();//監(jiān)聽TCP指針獲取 tcpclient.ReceiveTimeout = 500;//監(jiān)聽時間設置 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). 遠程控制軟件可控制測試平臺完成天氣雷達故障診斷和所有的天氣雷達機外儀表標定項測量。在保證測試平臺和裝有遠程控制軟件的電腦網絡可連接的情況下,以東方天氣雷達故障以及脈沖測試和頻譜測試為例,來說明本軟件的功能和性能。 天氣雷達故障測試平臺在東方新一代天氣雷達站進行長時間機外參數測量的測試。機務人員在巡查東方雷達時發(fā)現雷達無回波顯示,正在空轉。位于海口的省級保障人員在接到故障報警后,利用本軟件遠程控制天氣雷達故障測試平臺進行了故障診斷。利用測試平臺的功率計模塊測量發(fā)射機輸出,讀數為0 kW,意味著發(fā)射機未發(fā)射電磁波,根據發(fā)射機的工作原理,首先檢查高頻放大鏈路中速調管的輸入是否滿足要求,經測試平臺的功率計模塊測量得速調管的輸入為33.47 dBm,滿足使用要求,則意味著整個高頻方法鏈路沒有故障。再用測試平臺的示波器模塊測量3A12調制組件的XS1口,測得電壓為0 V,由于此口是根據人工線電壓1:1 000的采樣值,則意味著人工線電壓為0。再用測試平臺的示波器模塊測量3A10開關組件的充電觸發(fā)信號ZP1,無波形,則意味著開關組件出現故障,更換開關組件后故障得以排除。 采用遠程控制軟件的示波器功能對發(fā)射機輸出脈沖進行測量。發(fā)射機輸出端經定向耦合器、固定衰減器以及測試線纜連接至測試平臺的示波器輸入端CH0,雷達控制終端發(fā)射重復頻率為322 Hz的窄脈沖信號并打開高壓,即可在示波器軟面板上顯示窄脈沖的波形,并可通過添加測量項,直接測試脈沖的正脈寬,上升時間、下降時間、頂降等。表1給出了遠程測量值與現場測量值的比較,其可以看出測量值之間的差異很小。 表1 遠程測量值與現場測量值的比較 采用遠程控制軟件的頻譜儀功能對發(fā)射機輸出頻譜進行測量。發(fā)射機輸出測試端連接至測試平臺的頻譜儀的RF_IN端。雷達開機的情況下,輸入雷達的中心頻率為2.96 GHz,Span為50 MHz,分辨率帶寬RBW為30 kHz,即可讀取頻譜。為防止頻譜儀內部的放大器飽和,一般設置參考電平為15 dBm。本設計的頻譜儀功能帶有自動測量譜寬的功能,即可自動測量功率偏移-10~-60 dB的左、右譜寬,進而計算出整個譜寬值,如圖7所示。 圖7 頻譜儀自動測量發(fā)射機輸出頻譜 本設計的測試平臺遠程控制軟件可成功控制天氣雷達故障測試平臺內的示波器、功率計、頻譜儀、信號源進行雷達指標的測量,且遠程測量的值與現場測量的值誤差極小,具有相當的可靠性,可在天氣雷達故障診斷和定標中發(fā)揮一定的作用。在設計中,由于程序架構和數據處理算法不完善,導致頻譜儀模塊的底噪會比較大,可能會導致有用信號的丟失,后續(xù)還待改進。2.2 功率計設計
2.3 頻譜儀設計
2.4 信號源設計
3 實際應用
3.1 故障診斷
3.2 示波器測量發(fā)射機輸出脈沖
3.3 頻譜儀測量發(fā)射機輸出頻譜
4 結束語