• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      高精度定時(shí)器在數(shù)字式隨動(dòng)系統(tǒng)測(cè)試中的應(yīng)用

      2015-05-06 03:11:55袁江華盛小波
      兵器裝備工程學(xué)報(bào) 2015年8期
      關(guān)鍵詞:調(diào)轉(zhuǎn)數(shù)字式測(cè)試軟件

      袁江華,盛小波,劉 虹

      (重慶望江工業(yè)有限公司,重慶 400071)

      【信息科學(xué)與控制工程】

      高精度定時(shí)器在數(shù)字式隨動(dòng)系統(tǒng)測(cè)試中的應(yīng)用

      袁江華,盛小波,劉 虹

      (重慶望江工業(yè)有限公司,重慶 400071)

      針對(duì)WINDOWS系統(tǒng)中的普通定時(shí)器定時(shí)精度低,不能準(zhǔn)確測(cè)量數(shù)字式隨動(dòng)系統(tǒng)調(diào)轉(zhuǎn)時(shí)間的特點(diǎn),利用串口事件進(jìn)行定時(shí)觸發(fā)的測(cè)量機(jī)制,結(jié)合 Windows 高精度時(shí)間函數(shù),設(shè)計(jì)出一種測(cè)量數(shù)字式隨動(dòng)系統(tǒng)大角度調(diào)轉(zhuǎn)時(shí)間的機(jī)制,解決了用傳統(tǒng)定時(shí)器所產(chǎn)生的記時(shí)不準(zhǔn)和誤差較大的問題,提高了隨動(dòng)系統(tǒng)指標(biāo)的測(cè)試精度。

      定時(shí)器;數(shù)字式隨動(dòng)系統(tǒng);大角度調(diào)轉(zhuǎn);測(cè)試精度

      在火炮數(shù)字式隨動(dòng)系統(tǒng)的生產(chǎn)調(diào)試過程中,通常需要用 PC 機(jī)作為調(diào)試設(shè)備,通過在 PC 機(jī)上運(yùn)行專用的調(diào)試軟件,來(lái)實(shí)現(xiàn)對(duì)系統(tǒng)通信協(xié)議的驗(yàn)證,對(duì)隨動(dòng)指標(biāo)的測(cè)試,并對(duì)測(cè)試數(shù)據(jù)進(jìn)行后處理,繪出火炮相應(yīng)指標(biāo)測(cè)試的位置、速度及誤差曲線。由于基于離散采樣,因此對(duì)采樣周期的準(zhǔn)確性的要求很高,如在火炮隨動(dòng)系統(tǒng)的各項(xiàng)指標(biāo)測(cè)量中,大角度調(diào)轉(zhuǎn)(如調(diào)轉(zhuǎn)角度為 180°)的時(shí)間指標(biāo)就直接與時(shí)間精度有關(guān)。而一般Windows 程序中采用的普通定時(shí)器,定時(shí)精度在1/18 s(55 ms)[1],達(dá)不到隨動(dòng)系統(tǒng)指標(biāo)測(cè)試所要求的時(shí)間精度,造成了較大的測(cè)量誤差。因此,需要一種更精確的定時(shí)方法。

      Windows 是基于消息機(jī)制的系統(tǒng),任何事件的執(zhí)行都是通過發(fā)送和接收消息來(lái)完成的[2]。這樣就會(huì)帶來(lái)一些問題,一旦計(jì)算機(jī)的 CPU 被某個(gè)進(jìn)程占用或系統(tǒng)資源緊張時(shí),發(fā)送到消息隊(duì)列中的消息就暫時(shí)被掛起得不到實(shí)時(shí)處理。因此不能簡(jiǎn)單地通過 Windows 消息引發(fā)一個(gè)對(duì)定時(shí)要求嚴(yán)格的事件。由于在 Windows 中已經(jīng)封裝了計(jì)算機(jī)底層硬件的訪問,所以,要想通過直接利用訪問硬件來(lái)完成精確定時(shí)是比較困難的[3]。定時(shí)器是 WINDOWS 系統(tǒng)中非常寶貴的資源,它的精度越高,越占用系統(tǒng)資源。因而在使用定時(shí)器時(shí)應(yīng)根據(jù)實(shí)際需要,設(shè)定合適的定時(shí)精度。

      1 定時(shí)方法確定

      在 WINDOWS 系統(tǒng)中,定時(shí)器的用法概括起來(lái)有以下幾種,下面介紹各種定時(shí)器的用法以及每種定時(shí)方案的精度指標(biāo)。

      最常用的定時(shí)器是 SetTimer(),它可以實(shí)現(xiàn)周期性的函數(shù)調(diào)用[2]。首先調(diào)用函數(shù) SetTimer()設(shè)置定時(shí)間隔,然后在應(yīng)用程序中增加定時(shí)響應(yīng)函數(shù) OnTimer(),并在該函數(shù)中添加響應(yīng)的處理語(yǔ)句,用來(lái)完成到達(dá)定時(shí)時(shí)間的操作。它的主要特點(diǎn)是使用簡(jiǎn)單,定時(shí)精度很低,不小于 55 ms,系統(tǒng)資源占用低。定時(shí)器消息在多任務(wù)操作系統(tǒng)中的優(yōu)先級(jí)很低,得不到及時(shí)響應(yīng),不能滿足實(shí)時(shí)控制環(huán)境下的應(yīng)用,只可以用在對(duì)定時(shí)精度要求不高的場(chǎng)合。

      在定時(shí)精度要求較高的情況下,可以使用多媒體定時(shí)器 timeSetEvent[4],該函數(shù)可以實(shí)現(xiàn)周期性的函數(shù)調(diào)用,下面的代碼說(shuō)明了相關(guān)函數(shù)的用法。

      MMRESULT timeGetDevCaps(LPTIMECAPS ptc,UINT cbtc); //獲取系統(tǒng)的時(shí)間分辯率。

      timeBeginPeriod(resolution) ; //設(shè)置定時(shí)精度, 起動(dòng)定時(shí)器, 單位:毫秒。timeEndPeriod(resolution);//清除定時(shí)精度,停止定時(shí)器,要求它必須和 timeBeginPeriod()匹配成對(duì)使用。

      MMRESULT timeSetEvent ( UINT uDelay,UINT uResolution,LPTIMECALLBACKlpTimeProc,WORD dwUser,UINT fuEvent )//函數(shù)調(diào)用成功后返回事件的標(biāo)識(shí)符代碼,否則返回 NULL。

      具體應(yīng)用時(shí),可以通過調(diào)用 timeSetEvent()函數(shù),將需要周期性執(zhí)行的任務(wù)定義在LpTimeProc 回調(diào)函數(shù)中(如:定時(shí)采樣、控制等),從而完成所需處理的事件。需要注意的是,在定時(shí)器使用完畢后, 應(yīng)及時(shí)調(diào)用 timeKillEvent()將之釋放。 多媒體定時(shí)器定時(shí)的特點(diǎn)是精度高,理論上可以達(dá)到毫秒級(jí),任務(wù)處理的時(shí)間不能大于周期間隔時(shí)間,當(dāng)精度設(shè)置較高時(shí),系統(tǒng)資源占用也比較高,使用相對(duì)較為復(fù)雜[5]。

      對(duì)于精確度要求更高的定時(shí)操作, 則使用QueryPerformanceFrequency() 和QueryPerformanceCounter()函數(shù)[4]。 這兩個(gè)函數(shù)是 VC 提供的僅供 Windows 95 及其后續(xù)版本使用的精確時(shí)間函數(shù),并要求計(jì)算機(jī)從硬件上支持精確定時(shí)器,QueryPerformanceFrequency()函數(shù)和 QueryPerformanceCounter()函數(shù)的原型如下:

      BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);BOOL QueryPerformanceCounter(LARGE_INTEGER *lpCount)。

      數(shù)據(jù)類型 ARGE_INTEGER 既可以是一個(gè) 8 字節(jié)長(zhǎng)的整型數(shù), 也可以是兩個(gè) 4 字節(jié)長(zhǎng)的整型數(shù)的聯(lián)合結(jié)構(gòu),其具體用法根據(jù)編譯器是否支持 64 位而定。該類型的定義如下:

      typedef union _LARGE_INTEGER

      {

      證明 已知(xi)A→RSθ,η(A,D),則有conf((xi)A→Dk)≥θ和R((xi)A→Dk)≥η。又(xi)B→Dk?(xi)A→Dk,則由定義8知conf((xi)B→Dk)=conf((xi)A→Dk)≥θ。又因B?A,故有(xi)A?(xi)B。由式(3)得

      struct

      {

      DWORD LowPart ;// 4 字節(jié)整型數(shù)

      LONG HighPart;// 4 字節(jié)整型數(shù)

      };

      LONGLONG QuadPart ;// 8 字節(jié)整型數(shù)

      }LARGE_INTEGER。

      在進(jìn)行定時(shí)之前,先調(diào)用 QueryPerformanceFrequency()函數(shù)獲得機(jī)器內(nèi)部定時(shí)器的時(shí)鐘頻率, 然后在需要嚴(yán)格定時(shí)的事件發(fā)生之前和發(fā)生之后分別調(diào)用 QueryPerformanceCounter()函數(shù),利用兩次獲得的計(jì)數(shù)之差及時(shí)鐘頻率,計(jì)算出事件經(jīng)歷的精確時(shí)間。

      2 定時(shí)器應(yīng)用

      在隨動(dòng)指標(biāo)的測(cè)試中,針對(duì)實(shí)際測(cè)試情況,采用了 Windows 高精度時(shí)間函數(shù),并利用串口事件進(jìn)行定時(shí)觸發(fā)的測(cè)量機(jī)制。 在測(cè)試軟件初始化時(shí), 先利用QueryPerformanceFrequency()函數(shù)獲得機(jī)器內(nèi)部定時(shí)器的時(shí)鐘頻率,當(dāng)上機(jī)位測(cè)試軟件發(fā)出調(diào)轉(zhuǎn)命令后,記下系統(tǒng)時(shí)間記數(shù)值,同時(shí)隨動(dòng)系統(tǒng)開始調(diào)轉(zhuǎn),當(dāng)隨動(dòng)系統(tǒng)調(diào)轉(zhuǎn)到位后,再次記下系統(tǒng)時(shí)間記數(shù)值,最后把兩次系統(tǒng)記數(shù)值相減,得到記數(shù)差值。再測(cè)出計(jì)時(shí)頻率,根據(jù)下面的公式就可以計(jì)算出隨動(dòng)系統(tǒng)的調(diào)轉(zhuǎn)時(shí)間

      T=lCount/dfFreq

      其中,T為時(shí)間(s);lCount 為兩次系統(tǒng)記數(shù)之差;dfFreg為處理器頻率。

      下面是說(shuō)明測(cè)試軟件的設(shè)計(jì)過程以及部分代碼。

      進(jìn)入測(cè)試軟件時(shí),調(diào)用 QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency)函數(shù),將系統(tǒng)頻率存儲(chǔ)在變量在 lpFrequency 中,其中,系統(tǒng)頻率是與硬件相關(guān)的。當(dāng)用戶按隨動(dòng) 調(diào) 轉(zhuǎn) 按 鍵 時(shí), 測(cè) 試 軟 件 發(fā) 出 隨 動(dòng) 調(diào) 轉(zhuǎn) 命 令, 程 序 調(diào) 用QueryPerformanceCounter(LARGE_INTEGER *lpCount1),將系統(tǒng)計(jì)數(shù)值存儲(chǔ)在 lpCount1 變量中,隨動(dòng)系統(tǒng)開始調(diào)轉(zhuǎn),不斷回傳當(dāng)前位置數(shù)據(jù),對(duì)接收到的隨動(dòng)數(shù)據(jù)進(jìn)行分析,如果發(fā)現(xiàn)回傳當(dāng)前位置數(shù)據(jù)跟目標(biāo)位置一致(通常存在允許的系統(tǒng)誤差),就認(rèn)為隨動(dòng)系統(tǒng)調(diào)轉(zhuǎn)到位了?,F(xiàn)在再次調(diào)用 QueryPerformanceCounter(LARGE_INTEGER *lpCount2),將系統(tǒng)記數(shù)存儲(chǔ)在lpCount2 中,根據(jù)下面的公式,隨動(dòng)系統(tǒng)的調(diào)轉(zhuǎn)時(shí)間

      T= (lpCount2- lpCount1)/ lpFrequency×1 000

      T為兩次記數(shù)之間所經(jīng)過的時(shí)間。

      其中,lpCount2 和 lpCount1 分別是第一次和第二次系統(tǒng)記數(shù)結(jié)果;1 000是時(shí)間系數(shù),將時(shí)間單位換算為毫秒。

      通過這種記時(shí)方式,測(cè)試軟件資源占用低,記時(shí)精度高,滿足了產(chǎn)品測(cè)試要求。

      3 應(yīng)用效果

      通過對(duì)定時(shí)方法的修改,數(shù)字式隨動(dòng)系統(tǒng)大角度調(diào)轉(zhuǎn)指標(biāo)測(cè)量精度得到很大程度的提高,在實(shí)際產(chǎn)品調(diào)試和交驗(yàn)中得到總體單位和軍方的認(rèn)可。其分辨精度可達(dá)到微秒,而測(cè)量誤差在包含串行通信延時(shí)和串口中斷響應(yīng)時(shí)間的情況下在20 ms以內(nèi),其中還包括隨動(dòng)控制器對(duì)到位的判斷時(shí)間。與用示波器測(cè)量的速度曲線比較,有一個(gè) 50~100 ms固定的時(shí)間差,從實(shí)際系統(tǒng)控制原理上是可以解釋的。數(shù)字式隨動(dòng)系統(tǒng)大角度0~180°和180~0°的調(diào)轉(zhuǎn)測(cè)試數(shù)據(jù)如表1。

      表1 調(diào)轉(zhuǎn)時(shí)間指標(biāo)測(cè)試

      4 結(jié)論

      通過對(duì)WINDOWS定時(shí)器的定時(shí)精度、原理和機(jī)理分析,并結(jié)合數(shù)字式隨動(dòng)系統(tǒng)大角度調(diào)轉(zhuǎn)時(shí)間測(cè)量方式和精度要求,設(shè)計(jì)出一種對(duì)數(shù)字式隨動(dòng)系統(tǒng)大角度調(diào)轉(zhuǎn)時(shí)間進(jìn)行準(zhǔn)確測(cè)量的機(jī)制,實(shí)踐證明,采用該機(jī)制設(shè)計(jì)出的軟件運(yùn)行穩(wěn)定,定時(shí)精度高,適應(yīng)性好,能夠滿足火炮數(shù)字式隨動(dòng)系統(tǒng)的產(chǎn)品調(diào)試以及交驗(yàn)的需要。

      [1] 劉春鳳,田延嶺.Windows操作系統(tǒng)下的軟件定時(shí)器的設(shè)計(jì)與應(yīng)用[J].機(jī)電一體化,2004(5):38-41.

      [2] 楊紫千,張繼永,岳陽(yáng).Windows消息機(jī)制及其在軟件系統(tǒng)設(shè)計(jì)中的應(yīng)用[J].艦船電子工程,2004(5):81-85.

      [3] 周綠漪,秦衛(wèi)仕,柴力,等.MS Windows定時(shí)器性能分析及在定時(shí)-計(jì)數(shù)系統(tǒng)設(shè)計(jì)中的應(yīng)用[J].核電子學(xué)與探測(cè)技術(shù),2003(5):433-436.

      [4] 劉欽彥,李勇.一種高精度定時(shí)器的設(shè)計(jì)及其應(yīng)用[J].電測(cè)與儀表,2001(9):32-34.

      [5] 張志明,孫廣清,王磊.Windows下高精度定時(shí)的研究與實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2003(1):55-57.

      [6] 楊洋,李鐘慎,范偉.高精度數(shù)據(jù)采集系統(tǒng)定時(shí)器的仿真分析[J].華僑大學(xué)學(xué)報(bào):自然科學(xué)版,2013(6):610-612.

      (責(zé)任編輯 楊繼森)

      Application of High Precision Timer in Digital Servo System Test

      YUAN Jiang-hua, SHENG Xiao-bo, LIU Hong

      (Chongqing Wangjiang Industial Co., Ltd, Chongqing 400071, China)

      Aiming at that the common timer timing precision in WINDOWS system is low and cannot be accurately measured with the characteristics of digital dynamic system switch time, using measure mechanism to have timing trigger of serial events and combined with high precision time function of Windows, we designed a mechanism for measuring the digital servo system of large angle maneuver time, and solved the problem of big error and incorrect timing generated by traditional timer, which improves the test precision of pneumatic system index.

      timer; digital servo system; large angle maneuver; test accuracy

      2015-01-15

      袁江華(1978—),男,高級(jí)工程師,主要從事武器裝備理論與技術(shù)研究。

      10.11809/scbgxb2015.08.027

      袁江華,盛小波,劉虹.高精度定時(shí)器在數(shù)字式隨動(dòng)系統(tǒng)測(cè)試中的應(yīng)用[J].四川兵工學(xué)報(bào),2015(8):109-111.

      format:YUAN Jiang-hua, SHENG Xiao-bo, LIU Hong.Application of High Precision Timer in Digital Servo System Test [J].Journal of Sichuan Ordnance,2015(8):109-111.

      TP311.1

      A

      1006-0707(2015)08-0109-03

      猜你喜歡
      調(diào)轉(zhuǎn)數(shù)字式測(cè)試軟件
      家用單相數(shù)字式電能表研制
      網(wǎng)絡(luò)自適應(yīng)測(cè)試軟件運(yùn)行方法設(shè)計(jì)
      “調(diào)轉(zhuǎn)”“突圍”及其限度
      羅馬
      火控雷達(dá)跟蹤目標(biāo)系統(tǒng)響應(yīng)時(shí)間的研究
      自動(dòng)化檢測(cè)EPU10A板卡系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
      基于MCS-51單片機(jī)的數(shù)字式定時(shí)器設(shè)計(jì)
      電子制作(2016年23期)2016-05-17 03:53:26
      基于ARM的數(shù)字式光伏電池模擬器
      小麥且種且看 “調(diào)轉(zhuǎn)”在所難免
      種子科技(2015年11期)2015-05-24 16:15:06
      遠(yuǎn)程開放教育學(xué)生自主學(xué)習(xí)能力評(píng)價(jià)的研究
      深圳市| 合水县| 莆田市| 延吉市| 酉阳| 驻马店市| 洛阳市| 汕头市| 东乡族自治县| 黄梅县| 邵阳市| 东乡| 巴南区| 渑池县| 呼和浩特市| 洪雅县| 蓬莱市| 浑源县| 饶阳县| 南投县| 乌兰察布市| 南乐县| 云龙县| 盐山县| 运城市| 根河市| 乐都县| 公主岭市| 宜丰县| 绍兴市| 景泰县| 天津市| 西平县| 邹城市| 永德县| 若羌县| 江华| 会同县| 新绛县| 浠水县| 资源县|