祁曉鵬,朱洪翔,吉陳力
(中國飛行試驗研究院,西安 710089)
?
IRIG標(biāo)準(zhǔn)顫振信號的在線監(jiān)測方法研究
祁曉鵬,朱洪翔,吉陳力
(中國飛行試驗研究院,西安710089)
顫振試飛是飛行試驗中的一項重要課題;顫振參數(shù)的實時在線顯示為顫振參數(shù)在線校準(zhǔn)的最重要環(huán)節(jié),基于此提出了一種基于IRIG標(biāo)準(zhǔn)的顫振信號的在線實時監(jiān)測方法;首先對飛行數(shù)據(jù)的IRIG記錄標(biāo)準(zhǔn)進行了研究,并介紹了其中顫振參數(shù)的記錄格式;然后對BCB界面化設(shè)計和Matlab數(shù)據(jù)分析的混合編程進行了研究,利用混合編程和多線程的組合方式,完成了網(wǎng)絡(luò)數(shù)據(jù)提取、數(shù)據(jù)包獲取、通道數(shù)據(jù)獲取與顯示和FFT變換與顯示;通過對標(biāo)準(zhǔn)信號的在線實時監(jiān)測,驗證了軟件的正確性和可行性,滿足顫振參數(shù)校準(zhǔn)的需求,最終實現(xiàn)了對顫振信號的在線監(jiān)測。
IRIG; BCB; Matlab;混合編程;在線監(jiān)測
顫振飛行試驗是目前飛機試飛的重要科目,通過試飛驗證,最終確定飛機的顫振特性和顫振余量[1]。目前的顫振數(shù)據(jù)分析多是事后處理,給前期的參數(shù)校準(zhǔn)帶來了諸多的不便。本文利用BCB的界面化和Matlab的數(shù)據(jù)分析進行混合編程,對顫振信號進行在線提取和分析,利用快速傅立葉變換(FFT)[2]對顫振信號進行分析,解算出相應(yīng)的模態(tài)參數(shù)。經(jīng)過對顫振信號進行在線的顯示和監(jiān)測,驗證了本文的方法和所編寫的軟件的可行性。
基于IRIG[3]標(biāo)準(zhǔn)的記錄器以太網(wǎng)端口是一個多種用途的IEEE802.3u(即“以太網(wǎng)”和“100基時”)端口,具有很多不同的功能,包括:系統(tǒng)監(jiān)視和配置、控制、狀態(tài)、升級和進入某些確定的運行環(huán)境、數(shù)據(jù)傳送等,這些端口都符合IRIG106網(wǎng)絡(luò)標(biāo)準(zhǔn)。記錄器能將一個控制網(wǎng)絡(luò)端口中的TCP端口當(dāng)作一個記錄數(shù)據(jù)源,而不需備用的mR-X01多路傳輸適配器。端口5510至端口5519都可以用作于數(shù)據(jù)端口。這些數(shù)據(jù)端口同樣可以用作于提取記錄中的數(shù)據(jù)。
IRIG106數(shù)字記錄標(biāo)準(zhǔn)的數(shù)據(jù)是由基本包元素構(gòu)成的,其中包元素數(shù)據(jù)包括:包頭、包體和包尾,還有一個可選的第二包頭。包頭:對包內(nèi)的數(shù)據(jù)類型、長度、狀態(tài)信息等進行詳細的說明。其中包的同步標(biāo)示為固定值0xEB25。包體:不同的數(shù)據(jù)類型在包體中有不同的數(shù)據(jù)結(jié)構(gòu),例如模擬量的包體包括了通道信息(通道號和通道總數(shù))和通道對應(yīng)的有效數(shù)據(jù)。包尾:用于包的數(shù)據(jù)校驗。模擬量基本包元素的數(shù)據(jù)格式如表1所示。
表1 數(shù)據(jù)包信息
其中模擬量包體部分分為兩塊:通道信息和通道對應(yīng)的有效數(shù)據(jù)。比如通道數(shù)為3,則通道信息為4001 0300 4003 0300 4006 0300,對應(yīng)分別是第一通道、總通道數(shù)、第三通道、總通道數(shù)、第六通道、總通道數(shù)。包頭信息包含了判斷的所有信息,通過包頭可以獲取整個包的長度,也可以獲取包的數(shù)據(jù)長度,然后通過Channel Specific Data來確定對應(yīng)的通道號與通道數(shù)據(jù),將不同通道的數(shù)據(jù)分別存儲在不同文件中,以便于后續(xù)對數(shù)據(jù)進行回放。
2.1混合編程
Matlab具有強大的數(shù)據(jù)處理功能,但Matlab程序的執(zhí)行效率非常低,而且其平臺上開發(fā)的程序不能脫離本身的運行環(huán)境;C++builder具有強大的用戶界面開發(fā)功能,程序執(zhí)行效率高,但程序編寫相對繁瑣,結(jié)合兩者的優(yōu)勢可以快速開發(fā)出功能強大的應(yīng)用系統(tǒng)。Matcom是Mathtool公司開發(fā)的第三方控件,它可以將m腳本文件和m函數(shù)轉(zhuǎn)化為具有相同功能的.h和.cpp文件。相比Matlab自帶的編譯器,使用Matcom轉(zhuǎn)化代碼要簡單許多。而且使用Matcom工具可以方便生成動態(tài)鏈接庫文件(dll)、.h頭文件和可執(zhí)行文件.cpp,這樣程序可以脫離Matlab環(huán)境,提高了代碼的復(fù)用率和執(zhí)行速度[4]。本文將利用Matlab中的快速傅立葉變換編寫.m腳本文件,通過Matcom將.m腳本文件轉(zhuǎn)換為.h和.cpp文件,最后完成傅立葉變換計算。
2.2程序內(nèi)容
軟件內(nèi)程序包括網(wǎng)絡(luò)數(shù)據(jù)獲取、數(shù)據(jù)包獲取、通道數(shù)據(jù)獲取和FFT變換。
網(wǎng)絡(luò)數(shù)據(jù)獲取程序如下:
allcount=ClientSocket1->Socket->ReceiveLenght(); //網(wǎng)絡(luò)包數(shù)據(jù)長度
tes=ClientSocket1->Socket->ReceiveBuf((Char*)recdatabuf,allcount); //讀取網(wǎng)絡(luò)數(shù)據(jù),數(shù)據(jù)存入recdatabuf數(shù)組中
網(wǎng)絡(luò)數(shù)據(jù)獲取完畢后,需要提取出其中完整的數(shù)據(jù)包,才能正確的提取出通道數(shù)據(jù)。
數(shù)據(jù)包提取程序如下:
if(k1>=12)
{
packetdata[k1]=recdatabuf[i];
k1++;
if(packetdata[3]!=0&&packetdata[5]!=0&&packetdata[7]/256!=33)
{
yupan=true;//BOOL控制信息
}
if(k1==15)
{
packetlength=packetdata[2]/2;
//數(shù)據(jù)包長度
}
}
if(k1<12)
{
packetdata[k1]=recdatabuf[i];
k1++;
}
當(dāng)提取出完整的數(shù)據(jù)包后需要對要顯示的數(shù)據(jù)進行提取。
通道數(shù)據(jù)提取程序為:
if(packetdata[1]==channel1p&&J1->Checked)
{
for(intk2=12+channelnum[0]*2;k2 { if((k2-12-channelnum[0]*2)%channelnum[0]==channel1show&&J1->Checked) { array1c[nNum]=packetdata[k2]; nNum++; } } } 當(dāng)通道數(shù)據(jù)達到一定數(shù)目的時候然后對數(shù)據(jù)進行FFT變換。 Mm psdcal1=mypsd(array1,1024,1024); //對array1中數(shù)據(jù)進行FFT變換 以上程序從數(shù)據(jù)提取到最后的數(shù)據(jù)顯示和FFT變換進行了詳細的介紹,完成了整個軟件的工作流程。 基于C++builder與Matlab混合編程實現(xiàn)了對基于IRIG106標(biāo)準(zhǔn)的記錄器進行在線監(jiān)測的方法。軟件的整體分為操作區(qū)和顯示區(qū):其中操作區(qū)的功能為設(shè)置通道信息和顯示通道選擇功能,分別為控制區(qū)、板卡通道信息區(qū)、數(shù)據(jù)回放、系統(tǒng)時間和采樣率,其中控制區(qū)包括顫振信號的實時顯示開始、停止、數(shù)據(jù)回放和關(guān)閉程序的按鈕;板卡通道區(qū)包括通道ID設(shè)置、板卡通道、板卡通路、實時數(shù)據(jù)通路控件,其中ID為板卡對應(yīng)的ID,例如:0x9014,板卡通道需要同相應(yīng)板卡的設(shè)置相同,以便于正確選擇相應(yīng)的通道數(shù)據(jù),板卡通路和實時數(shù)據(jù)通路用于選擇實時顯示相應(yīng)通道數(shù)據(jù);數(shù)據(jù)回放區(qū)包括數(shù)據(jù)回放起始時間、結(jié)束時間控件;系統(tǒng)時間顯示設(shè)備的系統(tǒng)時間;采樣率為板卡的采樣頻率,用于FFT變換。顯示區(qū)分別顯示選擇通道實時數(shù)據(jù)和通道數(shù)據(jù)的FFT變換,可以實現(xiàn)多路數(shù)據(jù)的在線顯示。 本文應(yīng)用了C++builder的網(wǎng)絡(luò)編程[5]和多線程功能完成對本軟件的設(shè)計。本文中所實現(xiàn)的軟件的工作流程如圖1所示。 圖1 工作流程圖 首先完成Telnet命令輸入,使記錄器處于監(jiān)控狀態(tài),然后打開模擬量監(jiān)控軟件,對相應(yīng)的通道進行在線監(jiān)測,同時對監(jiān)測的通道進行快速傅立葉變換。 為了驗證軟件的可行性,本文進行了大量的實驗,利用信號發(fā)生器分別產(chǎn)生正弦波、方波、三角波等信號,然后用記錄器對產(chǎn)生的信號進行記錄,同時用模擬量監(jiān)控軟件對相應(yīng)通道進行監(jiān)測,圖2為監(jiān)測軟件的不同信號波形圖和對應(yīng)的FFT圖。 圖2 信號波形圖和FFT 本文利用C++builder和Matlab混合編程實現(xiàn)了對基于IRIG106標(biāo)準(zhǔn)記錄器中模擬量的在線監(jiān)測,驗證了對標(biāo)準(zhǔn)記錄器在線監(jiān)測的可行性,為后續(xù)的其它類型信號的在線監(jiān)測提供了依據(jù)。對標(biāo)準(zhǔn)記錄器的信號進行在線監(jiān)測,通過實時的觀看可以提供很多便利條件,提高日常的工作效率。 [1] 管德.飛機氣動彈性力學(xué)手冊[M].北京:航空工業(yè)出版社,1994. [2] 王濟,胡曉.Matlab在振動信號處理中的應(yīng)用[M].北京:中國水利水電出版社,2006. [3] RCC Document 106-07.Telemetry Standard[S].September 2007(9). [4] Mathews J H,F(xiàn)ink K D.?dāng)?shù)值方法[M].北京:電子工業(yè)出版社,2002. [5] 袁輝.C++Builder網(wǎng)絡(luò)編程核心技術(shù)[M].北京:機械工業(yè)出版社,2003. On-line Monitoring for IRIG Standard Chatter Singal Qi Xiaopeng,Zhu Xongxiang,Ji Chenli (Chinese Flight Test Establishment,Xi′an710089,China) The flutter test is an important topic in flight test. The real-time online display of the flutter parameters is the most important part of the on-line calibration of the flutter parameters.Based on this.an on-line real-time monitoring method based on IRIG standard is proposed.Firstly,the standard of IRIG recording of flight data is studied,and the recording format of the flutter parameters is introduced. Then the BCB interface design and Matlab data analysis of mixed programming are studied,using the combination of programming and multi thread combination,completed the network data extraction,data packet capture,channel data acquisition display and display FFT. The accuracy and feasibility of the software are verified by on-line real-time monitoring of the standard signal,and the requirement of the flutter parameters calibration is met. IRIG; BCB; Matlab; mixed programming; on-line monitoring 1671-4598(2016)04-0042-03DOI:10.16526/j.cnki.11-4762/tp.2016.04.013 TP274 A 2015-10-27; 2015-11-23。 祁曉鵬(1987-),男,河北衡水人,碩士,工程師,主要從事飛行試驗、測試系統(tǒng)方向的研究。3 采集軟件
4 軟件驗證
5 結(jié)束語