朱曉明,趙曉麗,李 欣,徐 巖
(哈爾濱工程大學 工程訓練中心,哈爾濱 150001)
頭盔測試轉臺是用于防空飛行器中飛行員頭盔火力瞄準系統(tǒng)的測試系統(tǒng),對于頭盔瞄準系統(tǒng)的研究起到很重要的作用。
該系統(tǒng)的機械主體由三部分結構組成:頭盔支撐平臺、相機支撐平臺和底座。頭盔支撐平臺用于固定頭盔,由三個轉動自由度和一個移動自由度組成:方位軸、俯仰軸、橫滾軸和Y軸,分別模擬頭部的左右轉動、前后擺動、左右擺動以及Y向移動。相機支撐平臺用于固定相機,由兩個移動自由度組成:X軸和Z軸,驅動相機前后和上下移動,以便在適當位置取得頭盔各種信息并反饋給主控系統(tǒng)以便其進行記錄。
根據(jù)系統(tǒng)的應用需要,確定轉臺測試系統(tǒng)的功能如下:
1) 實現(xiàn)轉臺方位軸、俯仰軸、橫滾軸的精確位置控制,轉動范圍在160度內,精度20角秒內。三個轉動軸可單獨或者同步控制;
2) 實現(xiàn)轉臺Y向的精確移動位置控制,定位精度0.1mm;
3) 實現(xiàn)相機平臺Z向的精確位置控制,定位精度1mm;
4) 實現(xiàn)相機平臺與轉臺零點間的X向精確位置控制,定位精度0.1mm;
5) 實時顯示各個軸的狀態(tài)信息,便于用戶查看;
6) 各軸運行與操作具有安全防護措施;
7) 出于保密需要,控制功能進行封裝,便于用戶定制特殊系統(tǒng);
8) 可通過其他計算機通過串口通訊,控制轉臺運動。
控制系統(tǒng)硬件平臺采用上下位機結構。高可靠性工業(yè)計算機為上位機,主要完成非實時任務,如人機界面交互、系統(tǒng)狀態(tài)監(jiān)控和發(fā)送指令等,下位機采用基于PCI的固高多軸運動控制器,依靠其內置高速DSP的計算能力,完成實時控制功能,如移動計算、指令處理等。這種通用結構,可以充分利用通用硬件平臺上的通用軟件資源,大大縮短設計周期,提高效率[1]。下位機的主要控制對象,即轉臺的頭盔支撐平臺,如圖1所示。
圖1 轉臺的頭盔支撐平臺
軟件平臺采用微軟公司的Windows XP系統(tǒng),軟件開發(fā)環(huán)境采用基于Windows的VC++6.0可視化程序設計軟件,可以快捷、高效地建立程序結構,設計友好的圖形界面,簡化了用戶界面的設計過程[2]。同時,可以方便快捷的進行函數(shù)功能的動態(tài)鏈接庫封裝,實現(xiàn)用戶的定制需要。它具有很強的圖形設計功能,可以用來設計人機交互的虛擬儀表和三維仿真環(huán)境,提高用戶體驗效果[3]。
為了保證系統(tǒng)運行的穩(wěn)定性,便于用戶進行功能定制,控制軟件的設計應遵循如下原則:
1) 模塊化。先設計出軟件的總體功能結構、數(shù)據(jù)結構以及公共接口,然后按功能將各部分劃為功能模塊,再分別為各功能模塊設計程序流程,分別設計,最后統(tǒng)一組裝調試。模塊化設計方法有利于提高軟件的可擴展性,并且可以做到良好的數(shù)據(jù)和代碼封裝,加強了軟件的可靠性,后期維護也相對方便。
2) 安全可靠性。作為控制軟件,保證安全性和可靠性相當關鍵。通過對可能出現(xiàn)的安全問題,盡可能通過軟件設計,設計正確的邏輯控制和安全防護,使其避免發(fā)生。
根據(jù)系統(tǒng)的功能需求,將控制系統(tǒng)功能設計為如圖2所示的軟件模塊結構。下面對模塊的設計予以論述。
圖2 軟件模塊結構
3.2.1 自動定位模塊設計
自動定位是用戶在設置選定軸的精確目標位置和速度后,讓選定軸自動完成運動控制的方式。這種方式也是用戶最主要的操作方式,因此對該模塊的設計要保證其易操作性、安全可靠性。
在功能設計時,考慮到用戶可能選擇多個軸運動,為達到最大運行效率,考慮多個選擇軸實現(xiàn)同啟同停。為此在人機界面中給用戶留兩個速度設置接口。一個是移動軸的速度接口,供三個移動軸使用。令一個是轉動軸的速度接口,供三個轉動軸使用。這種設計的原理是當用戶選擇三個轉動軸時,判斷出轉動行程最大的軸,將轉動速度設為該軸速度,從而可以計算出運行時間,然后將該時間作為其他兩個轉動軸的運行時間,從而計算出其他兩個軸的轉動速度,最終使三個轉動軸保持時間同步。同理,移動軸也采用這種策略。
自動定位操作時很容易出現(xiàn)的安全問題是用戶沒有設定正確的目標位置,導致運動超程發(fā)生碰撞,或者速度設置過大導致超限。為此在用戶啟動自動模式前,需要判斷每個選擇軸的目標位置和速度。如果超出范圍,則不啟動軸運動,并提示用戶。
為了提高易用性,將轉動軸目標位置設置形式設計為度分秒獨立設置方式,并可采用鍵盤或者鼠標點擊加減號的直觀輸入兩種方式,界面如圖3所示。鼠標點擊加減號時,度分秒會自動變化1個單位。為了增加可靠性,當達到最大范圍時,自動判斷并停止變化,防止超限。
3.2.2 手動定位模塊設計
手動定位是用戶想實現(xiàn)對某個軸估計位置的調整而采用的位置調整方法,也是用戶經常使用的功能。在該種方式下,只能選擇一個軸作為控制軸,并事先設定該軸的運行速度。用戶鼠標點擊人機界面上目標軸的加減號按鈕,該軸就會相應移動。抬起鼠標即可實現(xiàn)停止,直觀易用,界面如圖4所示。
手動定位時容易發(fā)生的安全問題是用戶調整目標軸的運動位置過大,達到限位開關位置,觸發(fā)電氣限位。雖然電氣限位可以保證軸停止,但是急停會造成機械部件振動過大,造成損害。因此,系統(tǒng)為每個軸設定了軟限位,比最大行程小5度(轉動軸)或者5毫米(移動軸)。手動定位開始后,控制系統(tǒng)啟動定時器,實時檢測運動軸當前位置。一旦達到軟限位,主動平滑停止軸運動,實現(xiàn)安全保護。
圖3 轉動軸目標值設定界面
圖4 手動定位操作界面
3.2.3 狀態(tài)監(jiān)控模塊設計
狀態(tài)監(jiān)控模塊將系統(tǒng)內部各種狀態(tài)導出,是用戶對系統(tǒng)狀態(tài)進行了解的主要途徑。通過狀態(tài)監(jiān)控模塊,用戶才能對系統(tǒng)的狀態(tài)進行判斷,以便進行正確的操作和處理。
系統(tǒng)的狀態(tài)參數(shù)非常繁雜,必須根據(jù)用戶的需要選擇關鍵參數(shù)作為監(jiān)控對象,才能達到監(jiān)控效果。根據(jù)功能需要,選擇的監(jiān)控參數(shù)包括:限位狀態(tài)、伺服報警(用于系統(tǒng)安全狀態(tài)監(jiān)控),位置和速度(用于正常運行狀態(tài)監(jiān)控)、伺服狀態(tài)(用于伺服系統(tǒng)狀態(tài)監(jiān)控)、頭盔和轉臺的距離(用于碰撞干涉監(jiān)控)等參數(shù)。
狀態(tài)監(jiān)控模塊的設計原理,是利用運動控制器為每個軸提供的一個16位狀態(tài)寄存器。該寄存器實時記錄了每個軸的當前狀態(tài)。通過VC++6.0為每個窗口提供的定時事件處理函數(shù)OnTimer(UINT nIDEvent),定時讀取該寄存器的狀態(tài),并將其更新至人機界面,完成監(jiān)控任務。而頭盔碰撞干涉監(jiān)控則需要建立頭盔的數(shù)學模型,然后采集當前六個運動自由度的位置,將其輸入頭盔的模型,從而計算出導致碰撞干涉的距離信息并定時更新至人機界面,及時提示用戶。
狀態(tài)監(jiān)控模塊的人機界面設計也是系統(tǒng)設計的一個重要方面。設計優(yōu)秀的人機界面,具有親和力和觀感舒適度,符合人體的使用習慣,具有良好的用戶體驗。根據(jù)上述理念,設計了多種形式的監(jiān)控界面,包括:1)盤形虛擬儀表,顯示轉動軸角度,2)直尺形虛擬儀表,顯示移動軸位置,3)狀態(tài)指示燈,具有兩個顏色狀態(tài)(常態(tài)與觸發(fā)態(tài)),顯示伺服開關、伺服報警開關、限位開關,4)實時趨勢曲線顯示,顯示六個軸的實時位置變化,5)數(shù)字顯示面板,實時顯示運動軸的速度。
其中最重要的盤形虛擬儀表采用面向對象的程序設計方法,繼承了VC++6.0中的MFC類,即靜態(tài)文本框類CStatic,并對其進行函數(shù)擴充,利用其強大的圖形繪制功能,完成了虛擬儀表的外形設計,同時設計了用戶接口UpdateNeedle(double dValue),接受雙精度數(shù)值型的角度值,并實時更新為指針的顯示。為了滿足用戶需要,該虛擬儀表可以精確到小數(shù)點后面4位,如圖5所示。
3.2.4 網(wǎng)絡通訊模塊設計
為了實現(xiàn)其他計算機通過串口通訊,發(fā)送指令控制本系統(tǒng)進行軸運動,必須先建立二者通訊。VC++6.0集成環(huán)境中的通訊控件Microsoft Communications Control本身封裝了串口通訊的底層協(xié)議,并給用戶提供了串口通訊的各種設置方法和數(shù)據(jù)傳送接口。設計時在控制計算機和被控計算機應用程序中各植入了一個該通訊控件,并進行相同設置m_ctrlComm.SetSettings("9600,n,8,1"),即通訊數(shù)據(jù)的傳輸波特率為9600,無校驗,8個數(shù)據(jù)位,1個停止位。通過統(tǒng)一設置保證數(shù)據(jù)的同步傳送。
為了實現(xiàn)通訊,必須建立兩臺計算機的通訊協(xié)議,才能保證指令的正確傳送、接收與解析。為此設計通訊協(xié)議“n ppp vv”。協(xié)議由三個字段組成。第一個字段n為一位正整數(shù)表示控制的目標軸號,范圍為1-6。第二個字段ppp為三位整數(shù)(可負),指定運動目標值。第三個字段vv為兩位正整數(shù),指定運行速度。字段間用一位空格隔開??刂朴嬎銠C的串口控制界面如圖6所示。
圖5 盤形虛擬儀表
圖6 串口控制系統(tǒng)
3.2.5 其他模塊
安全防護模塊主要用于處理安全問題,比如限位觸發(fā)后的處理和提示。開機尋零模塊用于用戶開機后尋找事先標定的工作零點。尋偏移量模塊用于測量物理原點與工作原點的精確偏移,以便標定工作原點。軟件補償模塊則用于補償由于機械制造形成的誤差。坐標置零模塊將當前任意位置置零,用于系統(tǒng)的調試。
本文以防空飛行員的頭盔測試轉臺為控制對象,介紹了其基本組成與應用,分析了該系統(tǒng)的功能需求,并對該系統(tǒng)的軟硬件平臺進行設計。在此基礎上,對軟件控制系統(tǒng)的設計原則進行了討論,建立了模塊化結構。然后著重對自動定位模塊、手動定位模塊,狀態(tài)監(jiān)控模塊和網(wǎng)絡通訊模塊等重要模塊的設計進行了論述。
根據(jù)本文軟件設計方法所建立的轉臺軟件控制系統(tǒng),經過與電機和驅動器連線后,經過自準直儀的測量結果證明,轉動和移動精度達到了預期的設計要求,并且定位穩(wěn)定可靠、操作和運行的安全性高,界面清晰易用,達到了非常滿意的效果,對于該類控制系統(tǒng)具有很高的推廣價值。
[1] 董海瑞, 高連生. 三軸仿真轉臺上位機控制軟件的研究[J]. 工業(yè)控制計算機, 2007, 20(12): 52-54.
[2] 楊睿. 基于VC++的通用伺服仿真轉臺測試軟件[J]. 伺服控制, 2008(8): 48-50.
[3] 袁立鵬, 盧紅影, 崔淑梅. 三維加速度模擬轉臺系統(tǒng)及控制策略研究[J]. 2010, 38(7): 1-4.