摘? 要: 介紹了三軸慣性陀螺測試轉(zhuǎn)臺的工作方式" title="工作方式">工作方式及其控制系統(tǒng)" title="控制系統(tǒng)">控制系統(tǒng)的功能,研究了以8051單片機為系統(tǒng)控制核心的轉(zhuǎn)臺控制器的硬件及軟件設(shè)計問題,提出了采用8051單片機及Intel 8254定時/計數(shù)器對步進電機" title="步進電機">步進電機進行開環(huán)位置及速度控制的解決方案。
關(guān)鍵詞: 陀螺測試轉(zhuǎn)臺? 單片機? 步進電機? 運動控制
?
導(dǎo)航系統(tǒng)是飛行器的重要組成部分。慣性陀螺儀表普遍應(yīng)用于各種類型的飛行器的導(dǎo)航系統(tǒng)中,它反映了飛行器的飛行姿態(tài)以及其它重要導(dǎo)航信息,保證了人為或自動駕駛儀對飛行器進行控制的安全性與準確性。為了確保慣性陀螺儀表工作的可靠性,需要對儀表進行定期的校驗,用測試轉(zhuǎn)臺測試陀螺儀表是比較常用的方法。某機場所使用的測試轉(zhuǎn)臺大部分存在老化嚴重以及功能單一的問題,尤其是部分轉(zhuǎn)臺還是老式的手動轉(zhuǎn)臺,很難保證校準精度,所以需要研制新型數(shù)字化的低成本的高精度陀螺測試轉(zhuǎn)臺及其控制系統(tǒng)。
1 陀螺測試轉(zhuǎn)臺及其控制系統(tǒng)介紹
陀螺測試轉(zhuǎn)臺主要由高精度轉(zhuǎn)臺及其控制系統(tǒng)組成。三軸轉(zhuǎn)臺由ψ軸轉(zhuǎn)臺、θ軸轉(zhuǎn)臺、φ軸轉(zhuǎn)臺三個子系統(tǒng)組成,分別實現(xiàn)三個軸的轉(zhuǎn)動。各子系統(tǒng)由臺體、驅(qū)動系統(tǒng)、轉(zhuǎn)動系統(tǒng)以及執(zhí)行機構(gòu)組成。選用步進電機作為各子系統(tǒng)驅(qū)動裝置,經(jīng)蝸輪蝸桿及齒輪減速后輸出旋轉(zhuǎn)運動。轉(zhuǎn)臺的三個子系統(tǒng)中,θ軸轉(zhuǎn)臺固定在ψ軸轉(zhuǎn)臺的轉(zhuǎn)盤上,φ軸轉(zhuǎn)臺固定在θ軸轉(zhuǎn)臺的轉(zhuǎn)盤上。將被測試陀螺儀表固定于φ軸轉(zhuǎn)臺的轉(zhuǎn)盤上,按測試要求控制轉(zhuǎn)臺各軸進行旋轉(zhuǎn),模擬飛機飛行中的各種姿態(tài),陀螺儀表則輸出相應(yīng)的姿態(tài)信息,比較轉(zhuǎn)臺的姿態(tài)與儀表的輸出即可校對儀表偏差。
各子系統(tǒng)的運轉(zhuǎn)由其控制器控制。控制器的主要功能是接收操作人員的控制指令,對控制面板輸入的控制參數(shù)進行計算或轉(zhuǎn)換,變?yōu)椴竭M電機的運轉(zhuǎn)控制信號,輸出到測試轉(zhuǎn)臺;轉(zhuǎn)臺在控制器的控制下可工作在速度、轉(zhuǎn)角、自動等模式;轉(zhuǎn)臺控制器能夠與上位計算機進行串行通訊,并執(zhí)行上位計算機的控制指令。轉(zhuǎn)臺與控制器之間通過航空插頭連接起來,其傳輸?shù)男盘柊ú竭M電機的驅(qū)動信號和慣性陀螺儀的反饋信號。
2 轉(zhuǎn)臺控制系統(tǒng)的硬件設(shè)計
轉(zhuǎn)臺控制系統(tǒng)主要由面板控制模塊、控制面板及液晶顯示屏、各子系統(tǒng)軸控模塊、步進電機驅(qū)動器和機箱、電源等組成,圖1為系統(tǒng)硬件組成示意圖。面板控制模塊和各子系統(tǒng)軸控模塊均采用Atmel AT89C52單片機作為控制核心。液晶屏采用SEIKO EPSON公司生產(chǎn)的SED1335液晶顯示屏及其控制電路,其顯示RAM具有字符和圖形顯示特區(qū),通過字符發(fā)生器不僅可以調(diào)用固化的160種點陣字符,還可以擴展其它需要的字符。步進電機驅(qū)動器采用RORZE公司的RD-023MS兩相步進電機驅(qū)動器。
?
2.1 控制面板的管理
面板控制模塊選用四片8255通用擴展并口作為單片機與各子系統(tǒng)軸模塊和面板按鍵、指示燈之間的接口。單片機的P0口作為數(shù)據(jù)傳輸端口,P2口作為各8255的片選及端口選擇地址。與各子系統(tǒng)軸模塊通訊的三片8255的A口和B口分別作為數(shù)據(jù)的發(fā)送口和接收口,C口提供握手信號。AT89C52單片機的串口" title="串口">串口通過1488-1489 RS232電平轉(zhuǎn)換電路與上位計算機的串口連接。
2.2 面板模塊與軸控模塊的通信
面板模塊與軸控模塊之間通過兩片8255完成運轉(zhuǎn)參數(shù)和狀態(tài)信息的傳遞。圖2所示為軸控模塊8255與面板模塊8255的接口電路示意圖。電路中使用了RS觸發(fā)器74LS74,通過發(fā)送、查詢、接收、置位等方式,控制數(shù)據(jù)在兩片8255之間傳輸。觸發(fā)器1的輸出信號Q1作為面板模塊8255向軸控模塊8255傳送數(shù)據(jù)的狀態(tài)標志位,當Q1為“1”時表示面板模塊所要傳送的數(shù)據(jù)已經(jīng)準備好,為“0”時表示數(shù)據(jù)已被軸控模塊接收或數(shù)據(jù)未到達狀態(tài)。觸發(fā)器1由面板模塊8255的C0和軸控模塊8255的C4共同控制,由面板8255的C4和軸控模塊8255的C0查詢Q1的狀態(tài)。同理,觸發(fā)器2控制由軸控模塊8255發(fā)送到面板模塊8255的數(shù)據(jù),Q2的輸出值表示數(shù)據(jù)傳送的狀態(tài)。
?
2.3 步進電機脈沖產(chǎn)生及控制電路
系統(tǒng)采用8254定時/計數(shù)器產(chǎn)生控制步進電機運轉(zhuǎn)的方波脈沖,并對輸出脈沖進行計數(shù)。將8254的計數(shù)器0設(shè)定在方波發(fā)生器工作方式,計數(shù)器2設(shè)定在計數(shù)器方式。圖3為用8254分頻" title="分頻">分頻產(chǎn)生控制脈沖的原理圖。由AT89C52內(nèi)部定時/計數(shù)器2產(chǎn)生的方波脈沖送入8254計數(shù)器0進行分頻并輸出控制脈沖。計數(shù)器2對輸出的脈沖進行計數(shù)。當脈沖數(shù)與計數(shù)器2的計數(shù)值相等時, 計數(shù)器2的輸出端產(chǎn)生電平變化,并被AT89C52的P1.1口監(jiān)測查詢。當AT89C52的晶體振蕩頻率為24MHz時,通過調(diào)節(jié)其RCAP2H和RCAP2L的值可使其定時/計數(shù)器2產(chǎn)生92Hz~6MHz的方波脈沖。通過對8254計數(shù)器0的數(shù)據(jù)寄存器寫入分頻值N,使其輸出相應(yīng)頻率的方波脈沖, 來控制步進電機的轉(zhuǎn)速,計數(shù)器2通過記錄計數(shù)器1輸出的脈沖數(shù)量來控制電機的轉(zhuǎn)角。步進電機的輸出轉(zhuǎn)速由下式?jīng)Q定:
?
?
式中,步進電機旋轉(zhuǎn)一周的步數(shù)為200;
?????i為轉(zhuǎn)臺傳動機構(gòu)減速比;
?????m為步進電機驅(qū)動器細分數(shù);
?????f0為輸入8254的脈沖源頻率;
?????N為分頻數(shù),即寫入8254計數(shù)器0的值。
各子系統(tǒng)寫入8254計數(shù)器0的分頻值如表1所示。由于對8254計數(shù)器寫入的分頻值只能為正整數(shù),而通過計算得出的分頻值N不一定為正整數(shù),因此要對輸入8254計數(shù)器0的分頻值進行四舍五入。產(chǎn)生的驅(qū)動脈沖頻率大小具有舍入誤差,其大小不超過:
?
?
三軸的最小分頻值N=90(θ軸),轉(zhuǎn)速最大誤差為0.56%。
3 轉(zhuǎn)臺控制系統(tǒng)的軟件設(shè)計
3.1面板模塊軟件的設(shè)計
面板模塊程序流程圖如圖4所示。上電開始后,軟件首先對AT89C52的內(nèi)部寄存器、液晶顯示屏以及8255并口進行初始化。程序用一個字節(jié)作為系統(tǒng)工作狀態(tài)寄存器,寄存器中各標志位分別記錄串口以及面板的鎖定及解鎖情況以及各運轉(zhuǎn)軸的當前運轉(zhuǎn)方向和高低速狀態(tài)。液晶顯示初始化設(shè)定LCD的顯示邊界及范圍,以及清空液晶顯示模塊顯存。串行通訊的波特率定為9600bit/s。
?
面板初始化完成后,軟件將同時檢測面板各按鍵信號并等待串口的中斷信號,當檢測到一種信號后,將另一種信號屏蔽。在“ψ軸(或θ軸、φ軸)”鍵按下后,系統(tǒng)鎖定在面板工作方式,并關(guān)閉串口中斷。進入面板工作方式后,軟件按流程執(zhí)行轉(zhuǎn)軸選擇、模式設(shè)定、參數(shù)設(shè)定、運轉(zhuǎn)執(zhí)行等功能??刂泼姘灏存I包括ψ、θ、φ軸選擇鍵,運轉(zhuǎn)模式選擇鍵,數(shù)字鍵,確定、停止鍵以及手動控制鍵。讀取控制面板按鍵信號后,將選取的運轉(zhuǎn)軸、運轉(zhuǎn)模式以及設(shè)定的速度角度等參數(shù)記錄于指定的寄存器中。待軟件檢測到“運行”鍵按下后,將數(shù)據(jù)送入與相應(yīng)軸通訊的8255寄存器中,并將該8255的C0位置高,通知軸控模塊讀取。
面板控制模塊與上位計算機之間制定了串行通訊協(xié)議。串行通訊指令采用ASCII碼的形式,上位計算機指令和控制器返回信息都以“$”字符開頭。面板模塊檢測到串口接收到字符“$”時,則認為上位計算機開始發(fā)送信息,信息以回車符結(jié)束?!啊纭焙竺媸寝D(zhuǎn)軸標識符,用“X”或“Y”或“Z”表示,分別對應(yīng)ψ、θ、φ三個轉(zhuǎn)軸。轉(zhuǎn)軸標識符后依次為速度、轉(zhuǎn)角、時間的ASCII碼表示值。程序?qū)⒔邮盏降纳衔豢刂浦噶钪械腁SCII碼參數(shù)值轉(zhuǎn)換為軸控模塊可識別的十六進制參數(shù)值,并發(fā)送到相應(yīng)的軸控模塊。
3.2 軸控模塊軟件的設(shè)計
子系統(tǒng)軸控模塊程序流程圖如圖5所示。程序開始后先初始化8255各I/O口和8254各計數(shù)器的工作方式。軟件通過查詢8255的C0口,檢測是否得到了由面板模塊發(fā)送來的數(shù)據(jù)。軸控模塊接收到面板模塊發(fā)來的指令后,將速度、角度數(shù)據(jù)經(jīng)計算轉(zhuǎn)換成為8254計數(shù)器0的分頻值N和計數(shù)器2所需要記錄的脈沖數(shù)。參數(shù)轉(zhuǎn)換完成后,程序根據(jù)設(shè)定指令進入相應(yīng)運轉(zhuǎn)模式。
當各轉(zhuǎn)軸轉(zhuǎn)速達到或超過1°/s時,為了使步進電機在有外加負載及高速運轉(zhuǎn)下不丟步,確保在高速啟動或停止時保持穩(wěn)定,程序?qū)Σ竭M電機的高速啟動和停止進行了加減速控制。程序采用勻加減速方法。由式(1)可知,分頻值N是角速度ω的反比例函數(shù),設(shè)定ω1=1°/s為加速過程的初始速度和減速過程的最終速度,并設(shè)定加減速過程中每隔10ms速度差值△ω=1°/s,所以有:
即每經(jīng)過10ms延時循環(huán)送給8254定時器0的分頻值Ni就是將ω=1°/s對應(yīng)的分頻值N1除以當前的循環(huán)次數(shù)得到的。程序?qū)⒚恳徊郊訙p速送入8254的Ni值保存到起始地址為2000H的內(nèi)存單元中,制成分頻值Ni的數(shù)表。在加速過程中,依次將分頻值Ni送入8254計數(shù)器0中,一直到從數(shù)表中讀入的分頻數(shù)不大于設(shè)定速度對應(yīng)的分頻值Nmax,并將Nmax作為最終分頻值為止。減速過程則與加速過程相反。
4 性能指標及結(jié)論
表2列出了控制器控制轉(zhuǎn)臺運轉(zhuǎn)的模式及技術(shù)指標。經(jīng)過調(diào)試運行,測試轉(zhuǎn)臺能夠在規(guī)定模式下按要求運轉(zhuǎn)。轉(zhuǎn)臺控制器交互性良好,每次輸入指令前液晶屏上都有信息提示相應(yīng)操作。各軸子系統(tǒng)在高速下經(jīng)加減速后均運轉(zhuǎn)平穩(wěn),無丟步現(xiàn)象。同時,能夠利用上位計算機的圖形界面設(shè)定運轉(zhuǎn)指令參數(shù),并通過串口發(fā)送指令給轉(zhuǎn)臺控制器,控制轉(zhuǎn)臺運轉(zhuǎn)。以51單片機為控制核心的三軸慣性陀螺測試轉(zhuǎn)臺及其控制系統(tǒng)的研制,不僅使測試設(shè)備成本降低,而且在測試功能、測試指標及測試精度上均滿足了儀表校驗的要求。
?
?
參考文獻
1 周海濤.三位陀螺測試轉(zhuǎn)臺控制器研制[學(xué)士學(xué)位論文]. 北京:清華大學(xué),2002
2 何立民.MCS-51系列單片機應(yīng)用系統(tǒng)設(shè)計.北京:北京航空航天大學(xué)出版社,1990
3 余永權(quán).ATMEL89系列單片機應(yīng)用技術(shù).北京:北京航空航天大學(xué)出版社,2002