祁曉鵬,朱洪翔,吉陳力
(中國飛行試驗(yàn)研究院,西安 710089)
?
IRIG標(biāo)準(zhǔn)顫振信號(hào)的在線監(jiān)測方法研究
祁曉鵬,朱洪翔,吉陳力
(中國飛行試驗(yàn)研究院,西安710089)
顫振試飛是飛行試驗(yàn)中的一項(xiàng)重要課題;顫振參數(shù)的實(shí)時(shí)在線顯示為顫振參數(shù)在線校準(zhǔn)的最重要環(huán)節(jié),基于此提出了一種基于IRIG標(biāo)準(zhǔn)的顫振信號(hào)的在線實(shí)時(shí)監(jiān)測方法;首先對(duì)飛行數(shù)據(jù)的IRIG記錄標(biāo)準(zhǔn)進(jìn)行了研究,并介紹了其中顫振參數(shù)的記錄格式;然后對(duì)BCB界面化設(shè)計(jì)和Matlab數(shù)據(jù)分析的混合編程進(jìn)行了研究,利用混合編程和多線程的組合方式,完成了網(wǎng)絡(luò)數(shù)據(jù)提取、數(shù)據(jù)包獲取、通道數(shù)據(jù)獲取與顯示和FFT變換與顯示;通過對(duì)標(biāo)準(zhǔn)信號(hào)的在線實(shí)時(shí)監(jiān)測,驗(yàn)證了軟件的正確性和可行性,滿足顫振參數(shù)校準(zhǔn)的需求,最終實(shí)現(xiàn)了對(duì)顫振信號(hào)的在線監(jiān)測。
IRIG; BCB; Matlab;混合編程;在線監(jiān)測
顫振飛行試驗(yàn)是目前飛機(jī)試飛的重要科目,通過試飛驗(yàn)證,最終確定飛機(jī)的顫振特性和顫振余量[1]。目前的顫振數(shù)據(jù)分析多是事后處理,給前期的參數(shù)校準(zhǔn)帶來了諸多的不便。本文利用BCB的界面化和Matlab的數(shù)據(jù)分析進(jìn)行混合編程,對(duì)顫振信號(hào)進(jìn)行在線提取和分析,利用快速傅立葉變換(FFT)[2]對(duì)顫振信號(hào)進(jìn)行分析,解算出相應(yīng)的模態(tài)參數(shù)。經(jīng)過對(duì)顫振信號(hào)進(jìn)行在線的顯示和監(jiān)測,驗(yàn)證了本文的方法和所編寫的軟件的可行性。
基于IRIG[3]標(biāo)準(zhǔn)的記錄器以太網(wǎng)端口是一個(gè)多種用途的IEEE802.3u(即“以太網(wǎng)”和“100基時(shí)”)端口,具有很多不同的功能,包括:系統(tǒng)監(jiān)視和配置、控制、狀態(tài)、升級(jí)和進(jìn)入某些確定的運(yùn)行環(huán)境、數(shù)據(jù)傳送等,這些端口都符合IRIG106網(wǎng)絡(luò)標(biāo)準(zhǔn)。記錄器能將一個(gè)控制網(wǎng)絡(luò)端口中的TCP端口當(dāng)作一個(gè)記錄數(shù)據(jù)源,而不需備用的mR-X01多路傳輸適配器。端口5510至端口5519都可以用作于數(shù)據(jù)端口。這些數(shù)據(jù)端口同樣可以用作于提取記錄中的數(shù)據(jù)。
IRIG106數(shù)字記錄標(biāo)準(zhǔn)的數(shù)據(jù)是由基本包元素構(gòu)成的,其中包元素?cái)?shù)據(jù)包括:包頭、包體和包尾,還有一個(gè)可選的第二包頭。包頭:對(duì)包內(nèi)的數(shù)據(jù)類型、長度、狀態(tài)信息等進(jìn)行詳細(xì)的說明。其中包的同步標(biāo)示為固定值0xEB25。包體:不同的數(shù)據(jù)類型在包體中有不同的數(shù)據(jù)結(jié)構(gòu),例如模擬量的包體包括了通道信息(通道號(hào)和通道總數(shù))和通道對(duì)應(yīng)的有效數(shù)據(jù)。包尾:用于包的數(shù)據(jù)校驗(yàn)。模擬量基本包元素的數(shù)據(jù)格式如表1所示。
表1 數(shù)據(jù)包信息
其中模擬量包體部分分為兩塊:通道信息和通道對(duì)應(yīng)的有效數(shù)據(jù)。比如通道數(shù)為3,則通道信息為4001 0300 4003 0300 4006 0300,對(duì)應(yīng)分別是第一通道、總通道數(shù)、第三通道、總通道數(shù)、第六通道、總通道數(shù)。包頭信息包含了判斷的所有信息,通過包頭可以獲取整個(gè)包的長度,也可以獲取包的數(shù)據(jù)長度,然后通過Channel Specific Data來確定對(duì)應(yīng)的通道號(hào)與通道數(shù)據(jù),將不同通道的數(shù)據(jù)分別存儲(chǔ)在不同文件中,以便于后續(xù)對(duì)數(shù)據(jù)進(jìn)行回放。
2.1混合編程
Matlab具有強(qiáng)大的數(shù)據(jù)處理功能,但Matlab程序的執(zhí)行效率非常低,而且其平臺(tái)上開發(fā)的程序不能脫離本身的運(yùn)行環(huán)境;C++builder具有強(qiáng)大的用戶界面開發(fā)功能,程序執(zhí)行效率高,但程序編寫相對(duì)繁瑣,結(jié)合兩者的優(yōu)勢可以快速開發(fā)出功能強(qiáng)大的應(yīng)用系統(tǒng)。Matcom是Mathtool公司開發(fā)的第三方控件,它可以將m腳本文件和m函數(shù)轉(zhuǎn)化為具有相同功能的.h和.cpp文件。相比Matlab自帶的編譯器,使用Matcom轉(zhuǎn)化代碼要簡單許多。而且使用Matcom工具可以方便生成動(dòng)態(tài)鏈接庫文件(dll)、.h頭文件和可執(zhí)行文件.cpp,這樣程序可以脫離Matlab環(huán)境,提高了代碼的復(fù)用率和執(zhí)行速度[4]。本文將利用Matlab中的快速傅立葉變換編寫.m腳本文件,通過Matcom將.m腳本文件轉(zhuǎn)換為.h和.cpp文件,最后完成傅立葉變換計(jì)算。
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ù)包后需要對(duì)要顯示的數(shù)據(jù)進(jìn)行提取。
通道數(shù)據(jù)提取程序?yàn)椋?/p>
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ù)達(dá)到一定數(shù)目的時(shí)候然后對(duì)數(shù)據(jù)進(jìn)行FFT變換。 Mm psdcal1=mypsd(array1,1024,1024); //對(duì)array1中數(shù)據(jù)進(jìn)行FFT變換 以上程序從數(shù)據(jù)提取到最后的數(shù)據(jù)顯示和FFT變換進(jìn)行了詳細(xì)的介紹,完成了整個(gè)軟件的工作流程。 基于C++builder與Matlab混合編程實(shí)現(xiàn)了對(duì)基于IRIG106標(biāo)準(zhǔn)的記錄器進(jìn)行在線監(jiān)測的方法。軟件的整體分為操作區(qū)和顯示區(qū):其中操作區(qū)的功能為設(shè)置通道信息和顯示通道選擇功能,分別為控制區(qū)、板卡通道信息區(qū)、數(shù)據(jù)回放、系統(tǒng)時(shí)間和采樣率,其中控制區(qū)包括顫振信號(hào)的實(shí)時(shí)顯示開始、停止、數(shù)據(jù)回放和關(guān)閉程序的按鈕;板卡通道區(qū)包括通道ID設(shè)置、板卡通道、板卡通路、實(shí)時(shí)數(shù)據(jù)通路控件,其中ID為板卡對(duì)應(yīng)的ID,例如:0x9014,板卡通道需要同相應(yīng)板卡的設(shè)置相同,以便于正確選擇相應(yīng)的通道數(shù)據(jù),板卡通路和實(shí)時(shí)數(shù)據(jù)通路用于選擇實(shí)時(shí)顯示相應(yīng)通道數(shù)據(jù);數(shù)據(jù)回放區(qū)包括數(shù)據(jù)回放起始時(shí)間、結(jié)束時(shí)間控件;系統(tǒng)時(shí)間顯示設(shè)備的系統(tǒng)時(shí)間;采樣率為板卡的采樣頻率,用于FFT變換。顯示區(qū)分別顯示選擇通道實(shí)時(shí)數(shù)據(jù)和通道數(shù)據(jù)的FFT變換,可以實(shí)現(xiàn)多路數(shù)據(jù)的在線顯示。 本文應(yīng)用了C++builder的網(wǎng)絡(luò)編程[5]和多線程功能完成對(duì)本軟件的設(shè)計(jì)。本文中所實(shí)現(xiàn)的軟件的工作流程如圖1所示。 圖1 工作流程圖 首先完成Telnet命令輸入,使記錄器處于監(jiān)控狀態(tài),然后打開模擬量監(jiān)控軟件,對(duì)相應(yīng)的通道進(jìn)行在線監(jiān)測,同時(shí)對(duì)監(jiān)測的通道進(jìn)行快速傅立葉變換。 為了驗(yàn)證軟件的可行性,本文進(jìn)行了大量的實(shí)驗(yàn),利用信號(hào)發(fā)生器分別產(chǎn)生正弦波、方波、三角波等信號(hào),然后用記錄器對(duì)產(chǎn)生的信號(hào)進(jìn)行記錄,同時(shí)用模擬量監(jiān)控軟件對(duì)相應(yīng)通道進(jìn)行監(jiān)測,圖2為監(jiān)測軟件的不同信號(hào)波形圖和對(duì)應(yīng)的FFT圖。 圖2 信號(hào)波形圖和FFT 本文利用C++builder和Matlab混合編程實(shí)現(xiàn)了對(duì)基于IRIG106標(biāo)準(zhǔn)記錄器中模擬量的在線監(jiān)測,驗(yàn)證了對(duì)標(biāo)準(zhǔn)記錄器在線監(jiān)測的可行性,為后續(xù)的其它類型信號(hào)的在線監(jiān)測提供了依據(jù)。對(duì)標(biāo)準(zhǔn)記錄器的信號(hào)進(jìn)行在線監(jiān)測,通過實(shí)時(shí)的觀看可以提供很多便利條件,提高日常的工作效率。 [1] 管德.飛機(jī)氣動(dòng)彈性力學(xué)手冊(cè)[M].北京:航空工業(yè)出版社,1994. [2] 王濟(jì),胡曉.Matlab在振動(dòng)信號(hào)處理中的應(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].北京:機(jī)械工業(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-),男,河北衡水人,碩士,工程師,主要從事飛行試驗(yàn)、測試系統(tǒng)方向的研究。3 采集軟件
4 軟件驗(yàn)證
5 結(jié)束語