<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 基于 C++ builder 的高采樣率動(dòng)態(tài)信號(hào)實(shí)時(shí)繪圖研究

          基于 C++ builder 的高采樣率動(dòng)態(tài)信號(hào)實(shí)時(shí)繪圖研究

          作者: 時(shí)間:2016-12-09 來源:網(wǎng)絡(luò) 收藏

          顫振飛行試驗(yàn)是新機(jī)或有重大改型飛機(jī)都必須進(jìn)行的試飛科目,是世界公認(rèn)的Ⅰ類風(fēng)險(xiǎn)試飛科目,所以必須通過實(shí)時(shí)監(jiān)控保障飛行安全。顫振試飛與其他試驗(yàn)科目相比,具有風(fēng)險(xiǎn)高、參數(shù)采樣率高的特點(diǎn),對(duì)實(shí)時(shí)監(jiān)控系統(tǒng)的實(shí)時(shí)性、可靠性以及精確性都要求較高。

          在開發(fā)顫振試飛實(shí)時(shí)監(jiān)控軟件過程中,為了在屏幕上實(shí)時(shí)精確繪制高采樣率顫振參數(shù)時(shí)間歷程曲線,對(duì)高采樣率動(dòng)態(tài)信號(hào)實(shí)時(shí)繪圖技術(shù)做了深入研究,并采用C++++ builder進(jìn)行編程實(shí)現(xiàn)。通過軟件測(cè)評(píng)和實(shí)時(shí)系統(tǒng)驗(yàn)證,該監(jiān)控軟件運(yùn)行穩(wěn)定、可靠,能實(shí)時(shí)精確顯示高采樣顫振參數(shù)時(shí)域曲線。

          1 開發(fā)平臺(tái)介紹

          C++ Builder是由Borland公司繼Delphi之后又推出的一款高性能可視化集成開發(fā)工具[7],它具有快速的可視化開發(fā)環(huán)境:只要簡單地把控件拖到窗體上,定義它的屬性,設(shè)置它的外觀,就可以快速地建立應(yīng)用程序界面。它內(nèi)置了100 多個(gè)完全封裝了Windows 公用特性且具有完全可擴(kuò)展性(包括全面支持ActiveX控件)的可重用控件。C++ Builder具有一個(gè)專業(yè)C++開發(fā)環(huán)境所能提供的全部功能:快速、高效、靈活的編譯器優(yōu)化,逐步連接,CPU透視,命令行工具等,實(shí)現(xiàn)了可視化的編程環(huán)境和功能強(qiáng)大的編程語言(C++)的完美結(jié)合。利用C++ Builder 開發(fā)實(shí)時(shí)監(jiān)控軟件,可以充分利用可視化編程語言的高效、靈活等優(yōu)點(diǎn),使得開發(fā)出來的應(yīng)用程序具有更好的用戶界面,適合飛行監(jiān)控使用。

          2 高采樣率動(dòng)態(tài)信號(hào)實(shí)時(shí)繪圖算法研究及實(shí)現(xiàn)

          顫振試飛實(shí)時(shí)監(jiān)控軟件通過接收服務(wù)器發(fā)送過來的數(shù)據(jù),對(duì)軟件界面上參數(shù)進(jìn)行實(shí)時(shí)顯示,并對(duì)關(guān)鍵參數(shù)數(shù)據(jù)進(jìn)行自動(dòng)或者手動(dòng)采集。由于顫振參數(shù)為高采樣率速變參數(shù),如果按照常規(guī)緩變參數(shù)那樣接收每點(diǎn)數(shù)據(jù)都畫圖的方法在屏幕上實(shí)時(shí)繪制時(shí)間歷程曲線,發(fā)現(xiàn)軟件數(shù)據(jù)顯示常有遲滯現(xiàn)象,并且嚴(yán)重影響軟件數(shù)據(jù)采集精度,因此對(duì)數(shù)據(jù)繪圖方法進(jìn)行優(yōu)化研究,將顫振數(shù)據(jù)實(shí)時(shí)采集到內(nèi)存里,并且用數(shù)組來存放采集數(shù)據(jù),然后利用TChart控件使用翻頁方式來實(shí)時(shí)顯示時(shí)間歷程曲線,每個(gè)頁面顯示一段時(shí)間內(nèi)的數(shù)據(jù)曲線,其中翻頁時(shí)間間隔(由采樣頻率決定)由定時(shí)器控制,也可以通過利用接收服務(wù)器發(fā)送數(shù)據(jù)點(diǎn)數(shù)到達(dá)定值后進(jìn)行翻頁的繪圖算法來實(shí)現(xiàn)。

          2.1 C++ builder控件介紹

          2.1.1 TTimer控件

          TTimer控件是C++ builder提供的一個(gè)普通計(jì)時(shí)器,使用簡單方便,但具有兩大缺陷:定時(shí)精度差和消息優(yōu)先權(quán)低。首先,基于Windows計(jì)時(shí)器的硬件計(jì)時(shí)器每隔54.925 ms走1次(約18.2 次/s),也就是說,這種方式的定時(shí)器只能精確到大約55 ms,對(duì)于55 ms以下的時(shí)間精度便無能為力;另外,由于Windows是基于消息機(jī)制的系統(tǒng),任何事件的執(zhí)行都是通過發(fā)送和接收消息來完成的。

          TTimer控件的優(yōu)先權(quán)太低,這樣一旦計(jì)算機(jī)的CPU被某個(gè)進(jìn)程占用,或系統(tǒng)資源緊張時(shí),發(fā)送到消息隊(duì)列中的WM_TIMER消息就被暫時(shí)掛起,得不到實(shí)時(shí)處理。

          2.1.2 多媒體定時(shí)器

          多媒體定時(shí)器是由Windows系統(tǒng)提供的毫秒級(jí)定時(shí)器,其定時(shí)精度可達(dá)1 ms.從運(yùn)行基理來看,多媒體定時(shí)器提供的是硬件中斷服務(wù),不傳送任何消息,優(yōu)先級(jí)很高。多媒體定時(shí)器使用自己獨(dú)立的線程,調(diào)用回調(diào)函數(shù)進(jìn)行處理,但在多媒體定時(shí)器的使用過程中需要注意的是:在多媒體定時(shí)器處理的線程結(jié)束之前不要再次啟動(dòng)定時(shí)器,否則會(huì)造成死機(jī)。在使用之后一定要?jiǎng)h除定時(shí)器及響應(yīng)的參數(shù),否則系統(tǒng)的響應(yīng)會(huì)變得很慢。

          2.1.3 TChart控件

          C++ Builder嵌入了Borland公司產(chǎn)品Delphi的控件TeeChart[10],可以方便地實(shí)現(xiàn)曲線繪制,繪圖功能強(qiáng)大,界面友好。本文利用C++ Builder 自帶的畫圖控件TChart,它是TeeChart類庫中最主要的類,具有11 種標(biāo)準(zhǔn)的Series 類型,325 個(gè)屬性,125 個(gè)方法以及28 個(gè)事件,這使得TChart具有非常強(qiáng)大的繪圖功能。

          2.2 繪圖算法具體實(shí)現(xiàn)

          將顫振數(shù)據(jù)實(shí)時(shí)采集到內(nèi)存里,并且用數(shù)組Show-Buff []來存放采集數(shù)據(jù),然后利用TChart控件使用翻頁方式來實(shí)時(shí)顯示其時(shí)間歷程曲線。TChart 控件中Ad-dXY 函數(shù)和AddArray 函數(shù)都可以來實(shí)現(xiàn)繪圖功能,但是AddXY 函數(shù)每次調(diào)用都要刷新屏幕,當(dāng)需要實(shí)時(shí)繪圖參數(shù)較多時(shí)會(huì)引起監(jiān)控軟件界面數(shù)據(jù)顯示遲滯現(xiàn)象,因此本文采用用于繪制數(shù)組數(shù)據(jù)曲線的AddArray函數(shù)進(jìn)行繪圖,經(jīng)過實(shí)時(shí)系統(tǒng)驗(yàn)證表明,AddArray 函數(shù)比AddXY函數(shù)能夠有效提高繪圖效率。

          動(dòng)態(tài)信號(hào)實(shí)時(shí)繪圖關(guān)鍵代碼如下:

          兩種算法實(shí)時(shí)繪圖效果相同,如圖1所示為應(yīng)用于ARJ21 飛機(jī)飛行試驗(yàn)實(shí)時(shí)監(jiān)控的動(dòng)態(tài)信號(hào)實(shí)時(shí)繪圖效果:

          該段動(dòng)態(tài)參數(shù)事后處理數(shù)據(jù)繪圖效果如圖2所示。

          由圖1、圖2對(duì)比可知,利用本文中高采樣率動(dòng)態(tài)信號(hào)實(shí)時(shí)繪圖算法能有效還原真實(shí)信號(hào),滿足任務(wù)監(jiān)控需求。

          3 結(jié)語

          文中基于C++ Builder開發(fā)的顫振試飛實(shí)時(shí)監(jiān)控軟件已經(jīng)成功應(yīng)用于ARJ21飛機(jī)顫振飛行試驗(yàn)中,對(duì)保障飛行安全和任務(wù)完成發(fā)揮了重要作用。實(shí)踐表明,軟件中涉及到的高采樣率動(dòng)態(tài)信號(hào)實(shí)時(shí)繪圖算法能有效還原顯示動(dòng)態(tài)參數(shù)真實(shí)信號(hào),可應(yīng)用于其他用戶群體中,如電力系統(tǒng)的振動(dòng)檢測(cè)系統(tǒng)等。



          關(guān)鍵詞: 基于C++builder高采樣

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();