黃家庚,徐 愷,封丁路
(河南科技大學(xué) 機(jī)電工程學(xué)院,河南 洛陽 471003)
隨著人們對(duì)于制導(dǎo)彈藥的綜合需求日益增強(qiáng),制導(dǎo)彈藥在未來將會(huì)向遠(yuǎn)程化、精確化、智能化、隱形化、通用化、模塊化和低成本的趨勢(shì)發(fā)展[1-2]。舵機(jī)的功能是根據(jù)飛行控制系統(tǒng)的控制信號(hào)調(diào)節(jié)舵面偏轉(zhuǎn)角度,從而控制導(dǎo)彈在空中飛行的姿態(tài)。舵機(jī)的性能好壞將直接影響導(dǎo)彈飛行的品質(zhì)和制導(dǎo)的精度[3-4]。因此,如何快速精確地對(duì)舵機(jī)的性能指標(biāo)進(jìn)行測試是一個(gè)非常重要的問題。
目前,舵機(jī)的性能測試多采取人工測試的方法。由于舵機(jī)需要測量的性能參數(shù)較多,人工測量方法工作量大,過程繁瑣,在測量過程中工作人員難免有操作失誤或執(zhí)行不當(dāng)?shù)那闆r,從而容易產(chǎn)生測量誤差,影響測量的效率和準(zhǔn)確性[5-6]。搭建智能化測控系統(tǒng)完成舵機(jī)的性能測試,從而替代傳統(tǒng)的人工測量方式,對(duì)舵機(jī)測試具有重要的實(shí)踐意義[7]。文獻(xiàn)[8]提出一種基于USB 的舵偏角采集系統(tǒng)設(shè)計(jì)方案,雖然USB 方便使用,但是通訊可靠性還需提高;文獻(xiàn)[9]設(shè)計(jì)了一個(gè)通用舵機(jī)測試系統(tǒng),能夠測量多種舵機(jī)性能,但是沒有加載裝置,無法全面測試舵機(jī)的負(fù)載性能;文獻(xiàn)[10]設(shè)計(jì)了一個(gè)加載測試系統(tǒng),但是加載裝置為單通道且能夠加載的力矩較小,無法滿足較高力矩的加載測試需求。
LabWindows/CVI 是NI 公司(美國國家儀器公司)推出的交互式C 語言開發(fā)平臺(tái)。它將功能強(qiáng)大、使用靈活的C語言平臺(tái)與用于數(shù)據(jù)采集分析和顯示的測試工具巧妙地結(jié)合起來,利用其集成化開發(fā)環(huán)境、交互式編程方法、函數(shù)面板和豐富的庫函數(shù)大大增強(qiáng)了C 語言的功能。與傳統(tǒng)開發(fā)軟件相比,LabWindows/CVI 能夠方便地協(xié)調(diào)和調(diào)用外部采集設(shè)備,通過GUI 設(shè)計(jì)能夠讓用戶更加方便地進(jìn)行人機(jī)交互,縮短開發(fā)人員的研發(fā)時(shí)間。
針對(duì)舵機(jī)測試過程繁瑣、測試項(xiàng)目繁多的問題,本文設(shè)計(jì)了一套舵機(jī)性能測試系統(tǒng)。該系統(tǒng)能利用程控電源為舵機(jī)提供工作所需的功率電源和信號(hào)電源,上下位機(jī)通過RS422 協(xié)議通訊,穩(wěn)定可靠。系統(tǒng)上位機(jī)通過軟件控制指令來模擬彈載計(jì)算機(jī)控制指令,利用加載系統(tǒng)來模擬導(dǎo)彈飛行過程中舵機(jī)需要克服的空氣鉸鏈力矩。該系統(tǒng)使用LabWindows/CVI 編寫主要程序,能夠?qū)π盘?hào)采集模塊采集的舵機(jī)控制信號(hào)、反饋信號(hào)以及加載系統(tǒng)的力矩信號(hào)進(jìn)行數(shù)據(jù)的讀取、顯示、存儲(chǔ)及處理,實(shí)現(xiàn)了舵機(jī)性能測試的自動(dòng)化和數(shù)據(jù)采集處理的智能化,提高了舵機(jī)測試的效率,同時(shí)降低了測試人員的工作強(qiáng)度,確保通過測試的舵機(jī)能夠滿足使用要求。
舵機(jī)性能測試系統(tǒng)主要由軟件控制單元、程控電源、數(shù)據(jù)采集單元、舵機(jī)力矩加載單元、舵機(jī)驅(qū)動(dòng)控制單元組成。測試系統(tǒng)整體結(jié)構(gòu)如圖1所示。
Fig.1 Structure of the test system圖1 測試系統(tǒng)結(jié)構(gòu)
控制主機(jī)主要由軟件控制單元與數(shù)據(jù)采集單元構(gòu)成,軟件控制單元為基于LabWindows/CVI 編寫的測試軟件,數(shù)據(jù)采集單元由多個(gè)數(shù)據(jù)采集卡和串口卡組成??刂浦鳈C(jī)的主要功能是根據(jù)用戶的測試需求,向下位機(jī)發(fā)送相應(yīng)的測試波形,同時(shí)獲取下位機(jī)的運(yùn)動(dòng)信號(hào)反饋,通過對(duì)發(fā)送信號(hào)和反饋信號(hào)的比較分析,確定舵機(jī)性能是否符合要求。同時(shí)能夠生成數(shù)據(jù)波形以供用戶直觀地了解舵機(jī)的性能。下位機(jī)主要由程控電源、舵機(jī)驅(qū)動(dòng)控制單元(舵控盒)、被測舵機(jī)組成,主要功能是接受上位機(jī)的控制指令,完成相應(yīng)的動(dòng)作,其中舵控盒與上位機(jī)軟件是通過串口卡進(jìn)行RS422 通信;力矩加載單元主要由四通道加載測試臺(tái)、扭矩傳感器、光電編碼器組成,主要功能是模擬舵機(jī)在飛行過程中需要克服的空氣鉸鏈力矩。
由于舵機(jī)參數(shù)繁多,根據(jù)測試需要,舵機(jī)性能測試系統(tǒng)主要實(shí)現(xiàn)了以下功能:①電源控制。被測舵機(jī)所需電源為+56V 功率電源與+28V 信號(hào)電源,測試軟件通過程控電源對(duì)舵控系統(tǒng)進(jìn)行供電。供電邏輯為信號(hào)電源上電成功后功率電源才能上電;下電邏輯為功率電下電成功后信號(hào)電源才能下電。通過這兩種供電邏輯保證被測舵機(jī)能夠在舵控系統(tǒng)的可控范圍內(nèi)操作,避免因錯(cuò)誤信號(hào)指令導(dǎo)致舵機(jī)機(jī)械結(jié)構(gòu)損壞;②舵機(jī)空載測試。在舵機(jī)空載的情況下對(duì)舵機(jī)性能進(jìn)行測試,主要涉及到舵機(jī)的極性測試、額定速度測試、極限行程測試、控制精度測試、零位精度測試與零位調(diào)整測試;③舵機(jī)加載測試。在彈性負(fù)載的情況下測試舵機(jī)帶負(fù)載能力以及在額定負(fù)載下舵機(jī)性能是否達(dá)標(biāo),主要對(duì)舵機(jī)的動(dòng)態(tài)特性、頻率特性以及負(fù)載速度測試;④下位機(jī)通訊。實(shí)現(xiàn)上位機(jī)軟件與下位機(jī)舵系統(tǒng)之間的通訊,在進(jìn)行性能測試之前能夠進(jìn)行系統(tǒng)的上電自檢、軟件版本檢查、位置信息檢查;⑤手動(dòng)測試。區(qū)別于空載測試與加載測試,手動(dòng)測試是用戶在舵機(jī)能夠承受的范圍內(nèi)進(jìn)行自定義測試,包括自定義波形、周期、零位偏移、幅值、頻率等,提高軟件的拓展性和適用性;⑥數(shù)據(jù)顯示。在測試過程中,將控制信號(hào)與位置反饋信號(hào)分別顯示在軟件示波器中,方便用戶進(jìn)行數(shù)據(jù)分析及數(shù)據(jù)存儲(chǔ);⑦零位調(diào)整。零位是舵機(jī)的默認(rèn)位置,修改零位可以改變舵機(jī)的初始位置,滿足不同測試需求。
在系統(tǒng)開始測試時(shí),需要進(jìn)行測試準(zhǔn)備,通過軟件控制程控電源對(duì)舵控系統(tǒng)上電,上電結(jié)束后在軟件主界面進(jìn)行測試項(xiàng)目選擇。確定測試項(xiàng)目后即可向舵控系統(tǒng)發(fā)送控制指令,舵控系統(tǒng)在接收到控制指令之后會(huì)執(zhí)行測試動(dòng)作并會(huì)產(chǎn)生對(duì)應(yīng)的反饋數(shù)據(jù)。上位機(jī)對(duì)反饋的數(shù)據(jù)進(jìn)行采集和處理,將數(shù)據(jù)以波形圖的形式顯示在軟件中。在用戶選擇是否存儲(chǔ)數(shù)據(jù)之后返回主界面,若停止測試則通過退出鍵退出測試系統(tǒng),若不停止測試則需要用戶選擇接下來的測試項(xiàng)目??傮w軟件的測試流程如圖2所示。
Fig.2 Flow of test圖2 測試流程
控制主機(jī)與舵控系統(tǒng)之間通過串口進(jìn)行通信,控制主機(jī)向舵控系統(tǒng)發(fā)送自檢、作動(dòng)控制或調(diào)零指令,舵機(jī)根據(jù)控制指令執(zhí)行相應(yīng)動(dòng)作,并反饋執(zhí)行結(jié)果。在控制主機(jī)與舵控系統(tǒng)通信過程中,以RS422 總線為載體,通過串口卡傳輸帶有協(xié)議規(guī)定的有效數(shù)據(jù)的幀格式。通訊幀格式如圖3所示。
Fig.3 Communication frame format圖3 通訊幀格式
通訊幀中各部分含義如表1所示。
Table 1 Communication frame meaning表1 通訊幀含義
舵控系統(tǒng)上電后,舵控系統(tǒng)每5 ms 自動(dòng)以消息ID 為0x00 向控制主機(jī)發(fā)送啟動(dòng)等待狀態(tài)消息??刂浦鳈C(jī)根據(jù)用戶選擇向舵控系統(tǒng)發(fā)送自檢及控制數(shù)據(jù)幀。其中,自檢數(shù)據(jù)幀中消息ID 值為0x11,控制指令數(shù)據(jù)幀中消息ID 值為0x22,調(diào)零指令數(shù)據(jù)幀中消息ID 值為0x23。各類消息ID 所代表的數(shù)據(jù)幀類型以及幀長度如表2所示。
Table 2 Frame type and data length表2 幀類型及數(shù)據(jù)長度
自檢、調(diào)零、控制數(shù)據(jù)幀都是由控制主機(jī)向舵控系統(tǒng)發(fā)送的控制指令,主要通過消息ID 來區(qū)分指令幀。反饋數(shù)據(jù)幀包含了舵機(jī)目前狀態(tài)的所有參數(shù),包括四路舵機(jī)的霍爾狀態(tài)、位置超限狀態(tài)、接受到的控制信號(hào)、舵反饋位移、舵反饋電流、功率電源電壓、功率電源電流、舵控軟件版本等信息。為保證通訊高效可靠,通訊波特率設(shè)置為614 400 bps,同時(shí)對(duì)數(shù)據(jù)幀進(jìn)行校驗(yàn)和計(jì)算,對(duì)不滿足校驗(yàn)結(jié)果的數(shù)據(jù)包不作響應(yīng)。校驗(yàn)方法選擇循環(huán)冗余法(Cyclic Redundancy Check,CRC)進(jìn)行校驗(yàn),使用基于Xmodem 協(xié)議的CCITT CRC-16 校驗(yàn)方式。通過查表法編寫校驗(yàn)程序,部分CRC 校驗(yàn)程序如下所示。
軟件是測試系統(tǒng)的重要組成部分,測試系統(tǒng)的性能很大程度上取決于軟件設(shè)計(jì)[11]。系統(tǒng)軟件設(shè)計(jì)采用美國NI公司開發(fā)的虛擬儀器編程語言LabWindows/CVI,其是一套面向計(jì)算機(jī)測控領(lǐng)域的軟件開發(fā)平臺(tái),能夠?yàn)闇y試數(shù)據(jù)采集、過程監(jiān)控及監(jiān)理自動(dòng)測試系統(tǒng)提供一個(gè)理想的開發(fā)環(huán)境[12-14]。
測試軟件可分為舵機(jī)通訊、信號(hào)生成以及數(shù)據(jù)顯示3個(gè)關(guān)鍵部分。舵機(jī)通訊的主要功能為接收舵控系統(tǒng)的自檢結(jié)果、軟件版本、舵機(jī)位置,確保舵機(jī)在測試開始前狀態(tài)良好。舵機(jī)自檢狀態(tài)字在第13、14 號(hào)字節(jié)處,涉及到舵機(jī)的霍爾狀態(tài)與舵位置超限狀態(tài),自檢位為0 時(shí)代表自檢正常,自檢位為1 時(shí)代表自檢異常。48、49 號(hào)字節(jié)代表舵控軟件版本,當(dāng)上位機(jī)需要獲取軟件版本時(shí)則可通過解析這兩個(gè)字節(jié)的數(shù)據(jù)得到現(xiàn)有的舵控軟件版本。25-32 字節(jié)為四路舵機(jī)的舵機(jī)位置信號(hào),通過這8 個(gè)字節(jié)可以解析到四路舵機(jī)各自的實(shí)時(shí)位置。舵機(jī)通訊的數(shù)據(jù)解析均可通過舵機(jī)反饋數(shù)據(jù)幀函數(shù)“analyze_steeringgear”獲取。通訊函數(shù)如表3所示。
Table 3 Communication function表3 通訊函數(shù)
以生成舵機(jī)控制數(shù)據(jù)幀函數(shù)為例,該函數(shù)的功能是通過串口卡發(fā)送數(shù)據(jù)幀,按照通訊幀格式將相關(guān)字節(jié)數(shù)據(jù)寫入待發(fā)送的數(shù)組,相關(guān)程序如下所示:
由于舵機(jī)性能測試參數(shù)繁多,涉及到多種信號(hào)的生成,使用的是虛擬儀器自帶的波形生成函數(shù),具體如表4所示。
Table 4 Signal generation function表4 信號(hào)生成函數(shù)
以正弦信號(hào)為例,LabWindows/CVI 中產(chǎn)生正弦信號(hào)的函數(shù)為SinePattern,該函數(shù)的作用是生成具有正弦模式的數(shù)組。采用公式(1)可以獲得雙精度輸出數(shù)組的第i 個(gè)元素。
其中,amp為生成函數(shù)的幅值,cycle 為周期數(shù),phase為相位差,n為想要生成的函數(shù)點(diǎn)個(gè)數(shù)。通過該函數(shù)可以生成一系列元素點(diǎn),這些函數(shù)點(diǎn)組成數(shù)組,生成了舵控信號(hào)。若為固定測試,函數(shù)相關(guān)變量由測試按鈕的回調(diào)函數(shù)寫入相應(yīng)結(jié)構(gòu)體中;若為手動(dòng)測試,變量由用戶自己設(shè)定,設(shè)定完成后點(diǎn)擊開始測試后再將變量注入。行程測試舵控信號(hào)生成程序如下:
由于測試過程需要同時(shí)進(jìn)行數(shù)據(jù)發(fā)送、采集和顯示,如果使用單線程,當(dāng)點(diǎn)擊用戶界面時(shí)線程就會(huì)持續(xù)處理用戶界面事件,影響數(shù)據(jù)讀取和顯示,使用多線程則可以通過線程切換來保證數(shù)據(jù)采集和顯示不會(huì)受到影響[15]。LabWindows/CVI 中有兩種多線程實(shí)現(xiàn)方法,分別為線程池與異步定時(shí)器[16]。本設(shè)計(jì)選用異步定時(shí)器來執(zhí)行多線程任務(wù)。相較于普通定時(shí)器而言,其優(yōu)點(diǎn)是線程分里,在產(chǎn)生用戶事件時(shí),其他線程不會(huì)被打斷,保證程序能夠連續(xù)穩(wěn)定運(yùn)行[17]。同時(shí)還具有很高的精度,能夠滿足測試過程中大量的信號(hào)點(diǎn)采集需求。使用異步定時(shí)器步驟如下:
(1)AThandle=NewAsyncTimer(0.005,G_pointcount,0,AsyncTimer_callback,0);//創(chuàng)建異步定時(shí)器并配置間隔觸發(fā)次數(shù)與定時(shí)器名稱
(2)INT CVICALLBACK AsyncTimer_callback(INT reserved,INT timerId,INT event,VOID *callbackData,INT eventData1,INT eventData2)
{ComWrt(comport,info,sizeof(info));
ComRd(comport,frame_data,55);
analyze_steeringgear(frame_data,&stdata);}//創(chuàng)建異步定時(shí)器回調(diào)函數(shù),并將數(shù)據(jù)采集發(fā)送指令寫入回調(diào)函數(shù)
(3)SetAsyncTimerAttribute(AThandle,ASYNC_ATTR_ENABLED,1);//使能異步定時(shí)器,根據(jù)不同測試項(xiàng)執(zhí)行相應(yīng)任務(wù)
(4)SetAsyncTimerAttribute(AThandle,ASYNC_ATTR_ENABLED,0);//關(guān)閉異步定時(shí)器
系統(tǒng)力矩加載單元采用四路力矩加載通道,采用十字型加載結(jié)構(gòu),通過彈簧桿被動(dòng)加載方式實(shí)現(xiàn)模擬舵面所受到的負(fù)載力矩。彈簧桿加載是以扭矩為被調(diào)整量的加載系統(tǒng),是一個(gè)典型的被動(dòng)式扭矩控制系統(tǒng),主要用于模擬導(dǎo)彈飛行時(shí)的舵面負(fù)載力矩,它對(duì)舵面或舵片的測試有著非常重要的實(shí)際意義。系統(tǒng)可通過調(diào)整彈簧桿的有效長度對(duì)被測舵機(jī)施加一定梯度的扭矩,根據(jù)彈簧桿的材料、機(jī)械特性、測試標(biāo)定情況確定有效長度對(duì)應(yīng)的加載梯度。原理圖如圖4所示。
Fig.4 Torque loading schematic diagram圖4 力矩加載原理
調(diào)整剛度調(diào)節(jié)裝置,使彈簧桿的有效長度為l,對(duì)應(yīng)梯度為k。被測舵機(jī)旋轉(zhuǎn)α角度時(shí),彈簧桿施加給舵機(jī)的扭矩為kα,即扭矩大小與舵機(jī)偏轉(zhuǎn)角度成正比例關(guān)系。
根據(jù)實(shí)際需求設(shè)計(jì)了一個(gè)四通道舵機(jī)加載臺(tái),可以同時(shí)進(jìn)行四路舵機(jī)的加載測試。加載臺(tái)外形如圖5所示。
Fig.5 Loading table shape圖5 加載臺(tái)外形
角度編碼器選用成都某公司生產(chǎn)的DT005D-7200P/r增量型光電編碼器,精度能夠達(dá)到0.05°。扭矩傳感器采用AKC-98 扭矩傳感器,該傳感器采用電阻應(yīng)變式原理,精度高、性能可靠穩(wěn)定、安裝使用方便,能夠滿足量程與精度的要求。
角度編碼器和扭矩傳感器可以實(shí)時(shí)測量被測舵機(jī)的偏轉(zhuǎn)角度和彈簧桿施加的扭矩大小。兩個(gè)傳感器安裝在彈簧桿兩端,如圖6所示。
Fig.6 Sensor location圖6 傳感器位置
在測試之前首先將舵控系統(tǒng)與控制主機(jī)和電源進(jìn)行組裝,以空載測試為例,系統(tǒng)硬件如圖7所示。
Fig.7 System hardware diagram圖7 系統(tǒng)硬件
根據(jù)測試需求設(shè)計(jì)了舵機(jī)性能測試程序,主界面如圖8 所示,主要包括舵機(jī)信號(hào)電與功率電的啟停,舵機(jī)測試通道的選擇,零位調(diào)整,常用測試項(xiàng),如極性檢查、行程測試、精度測試等。在舵機(jī)信號(hào)電與功率電上電成功后,即可通過舵機(jī)通訊頁面進(jìn)行舵機(jī)自檢與位置信息反饋,界面效果如圖9 所示,由于本次測試時(shí)僅測試了單路舵機(jī),所以其他通道反饋為0mm。
Fig.8 System main interface圖8 系統(tǒng)主界面
Fig.9 Communication interface圖9 通訊界面
自檢成功后即可開始項(xiàng)目測試,在點(diǎn)擊測試項(xiàng)后,通過按鍵的回調(diào)函數(shù)向函數(shù)中注入對(duì)應(yīng)的信號(hào)生成數(shù)據(jù),信號(hào)生成數(shù)據(jù)通過異步定時(shí)器的回調(diào)函數(shù)發(fā)送給舵控系統(tǒng),舵控系統(tǒng)控制舵機(jī)運(yùn)動(dòng)并將實(shí)時(shí)位置數(shù)據(jù)反饋給控制主機(jī)。圖10展示了系統(tǒng)產(chǎn)生的5種信號(hào)。
Fig.10 Generation of 5 kinds of signal圖10 5種信號(hào)的產(chǎn)生
以方波測試為例,當(dāng)啟動(dòng)測試時(shí),上位機(jī)將生成的方波控制信號(hào)通過串口傳遞給舵控盒,舵控盒控制舵機(jī)動(dòng)作并將舵機(jī)位置的反饋信號(hào)反饋給上位機(jī),上位機(jī)接收到反饋信號(hào)后通過PlotPoint 函數(shù)畫出反饋信號(hào)點(diǎn)。效果如圖11所示。
Fig.11 Feedback signal display圖11 反饋信號(hào)顯示
同時(shí),用戶可以根據(jù)自己的需求通過數(shù)據(jù)保存按鈕將反饋數(shù)據(jù)保存起來,以供后期查看。保存的部分?jǐn)?shù)據(jù)如表5所示。
Table 5 Partial feedback data of square wave表5 方波信號(hào)部分反饋數(shù)據(jù)
反饋數(shù)據(jù)點(diǎn)之間的間隔時(shí)間為5ms,通過數(shù)據(jù)處理計(jì)算可以得出被測舵機(jī)的相關(guān)性能數(shù)據(jù),如舵機(jī)空載速度等。
通過方波測試實(shí)例可以證明,控制主機(jī)與舵控系統(tǒng)通訊良好,能夠正常發(fā)送和接收控制指令。同時(shí)系統(tǒng)可以正常生成待測信號(hào),能快速采集反饋信號(hào)并將反饋信號(hào)展現(xiàn)出來,達(dá)到了預(yù)期的設(shè)計(jì)標(biāo)準(zhǔn)。
為提高舵機(jī)參數(shù)性能測試的效率與準(zhǔn)確率,本文利用虛擬儀器軟件LabWindows/CVI 設(shè)計(jì)了一種能夠進(jìn)行多參數(shù)測量的導(dǎo)彈舵機(jī)綜合測試系統(tǒng)。該系統(tǒng)不僅能夠完成對(duì)導(dǎo)彈舵機(jī)空載性能的全面測試,還設(shè)計(jì)了四通道十字加載臺(tái),同時(shí)完成對(duì)四路舵機(jī)的加載測試需求,在測試過程中能夠直觀動(dòng)態(tài)地顯示舵機(jī)的實(shí)時(shí)反饋數(shù)據(jù)。同時(shí)根據(jù)用戶需要可完成多種自定義非常規(guī)測試,大大提升了舵機(jī)測試速度與準(zhǔn)確率。后續(xù)改進(jìn)工作為優(yōu)化軟件代碼,同時(shí)提供更多測試項(xiàng)目來滿足用戶的多種需求。