引言 由于小型無人直升飛機具有的使用價值,目前世界主要發(fā)達國家都在積極進行研制。國外具有代表性的機型是日本雅馬哈公司生產(chǎn)的RMAX。國內(nèi)也有幾家研究所和企業(yè)在研制無人直升飛機,國內(nèi)一些院校也對無人直升機的遙控飛行和自主飛行進行了研究,都處于實驗階段[1-3]。昆明南天精密機電設備制作所經(jīng)過多年研究,開發(fā)出了FG-10 B無人直升機,該機具有完全的自主知識產(chǎn)權,在昆明1 900 m海拔高度基礎上,具有500 mn以上的使用上限,10 kg以上的載荷能力,這就為搭載多種機載航電設備和其他應用設備提供了實用平臺[4]。然而,由于小型遙控直升機操作困難、遙控距離短,極大地限制了其應用。為解決這一問題,關鍵在于研制實用、可靠的增穩(wěn)系統(tǒng),實現(xiàn)水平姿態(tài)的自動平衡,將遙控直升機升級為無人直升機。 本文采用帶8路10位A/D轉(zhuǎn)換的STC12C5410單片機編程來實現(xiàn)機載系統(tǒng)俯仰傾斜姿態(tài)及方向信號采集,給出了直升機A/D轉(zhuǎn)換C程序關鍵代碼。同時本文還指出并糾正了宏晶科技“STC12C5410AD系列單片機器件手冊”中的錯誤。 1小型無人直升機研制的難點與增穩(wěn)試驗系統(tǒng)構建 1.1小型無人直升機研制的難點 小型無人直升機研制的最大難點在于飛行姿態(tài)的自動穩(wěn)定控制[5]。 直升機在飛行中,有六個空間自由度,其平衡都是由旋翼旋轉(zhuǎn)產(chǎn)生的升力面的矢量分量和尾翼產(chǎn)生的力矩來進行控制,其控制難度遠遠大于固定翼飛行器[6]。在世界坐標系中,設X軸的正方向為飛行器向前的飛行方向, Z軸的正方向為向上的方向。空間飛行器在空間飛行時,有六個自由度,即沿X、Y、Z軸的平移運動和繞X、Y、Z軸的轉(zhuǎn)動。 X軸的平移為向前向后飛行,Y軸平移為左右移動,而Z軸為上下移動。繞X軸的轉(zhuǎn)動為橫滾變化,繞Y軸的轉(zhuǎn)動為俯仰變化,而繞Z軸的轉(zhuǎn)動為方向變化。繞機體Z軸的轉(zhuǎn)動已經(jīng)采用鎖定陀螺儀對尾槳產(chǎn)生的力矩進行控制,保證了穩(wěn)定,而Z軸的平移平衡,由旋翼的升力和機體重力平衡,X、Y軸的軸向平行移動遙控起來難度不大。因此只要XY軸繞軸轉(zhuǎn)動能夠自動平衡,就能在很大程度上穩(wěn)定直升機的整體平衡,從而大大減少操縱難度,所以應重點解決遙控直升機水平(XZ軸)姿態(tài)自動平衡控制問題。 為解決這一問題,可采用對優(yōu)秀操縱手控制操縱進行模擬的方式,通過試驗來確定控制模型的模糊算法,來實現(xiàn)對小型直升機的俯仰、傾斜自動增穩(wěn)控制。要實現(xiàn)這一目的,需要對小型直升機的俯仰傾斜姿態(tài)進行遙測,對操縱手在發(fā)生傾斜誤差(X軸向轉(zhuǎn)動)、俯仰誤差(Y軸向轉(zhuǎn)動)時的操作進行遙測,以獲取必要的數(shù)據(jù)進行分析[7]。 1.2小型無人直升機增穩(wěn)試驗系統(tǒng)構建 為實現(xiàn)上述要求,研制了一套小型無人直升機增穩(wěn)試驗系統(tǒng)。 
小型無人直升機增穩(wěn)控制系統(tǒng)的框架如圖1所示。本系統(tǒng)由PC機應用系統(tǒng)與機載系統(tǒng)共同組成,由PC機上的虛擬場景中虛擬直升機來模擬實際飛行的無人直升機。機載系統(tǒng)采用STC12C5410AD單片機,完成傾角傳感器、磁阻傳感器、GPS模塊數(shù)據(jù)的采集、編碼及與PC機的通信。 2機載系統(tǒng)STC單片機編程 2.1STC系列單片機 STC系列單片機是美國STC公司在8051單片機標準內(nèi)核結構基礎上對芯片內(nèi)核進行較大改進后推出的一種增強型功能的8051單片機,是具有全新流水線和精簡指令集結構的高速率、低功耗的新一代單片機。在8051系列單片機中,STC系列單片機在指令系統(tǒng)、硬件結構和片內(nèi)資源上與標準8051單片機完全兼容,同時還帶有4路PWM/PCA (可編程計數(shù)器陣列)以及SPI同步通信口,內(nèi)部還集成有MAX810專用復位電路和看門狗電路。這些特點不但增加了開發(fā)者的使用靈活性,同時還可以幫助用戶減小PCB尺寸和系統(tǒng)成本。此外,STC系列單片機還可以通過串口(P3.0/P3.1)直接下載用戶程序,從而使其適合于在系統(tǒng)(ISP)可編程和在應用(IAP)可編程,無需專用編程器,無需專用仿真器。其中STC12C5410AD單片機還可以實現(xiàn)八路10位精度的AD轉(zhuǎn)換,使用極為方便靈活,具有極高的性價比[8]。 2.2機載系統(tǒng)單片機主程序框圖 機載系統(tǒng)中單片機主要是對俯仰傾斜姿態(tài)、方向等模擬信號進行A/D轉(zhuǎn)換,對GPS的串行信號和遙控數(shù)字信號進行接收和發(fā)送。 主程序首先要完成系統(tǒng)的初始化,對單片機的A/D口、串口、定時器等資源進行設置,系統(tǒng)自檢,初始化成功以后,主程序會通過數(shù)碼管顯示,提示初始化是否完成。其機載系統(tǒng)單片機主程序流程圖如圖2所示。 
2.3俯仰傾斜及方位檢測A/D轉(zhuǎn)換框圖 STC12C5410AD單片機自帶八路10位高速A/D轉(zhuǎn)換器,其A/D轉(zhuǎn)換口在P1口( P1. 7-P1. 0 )。 STC12C5410AD單片機的P1口可通過軟件將其編程為準雙向輸出、推挽輸出、高阻輸入、開漏等四種模式。其中在作A/D轉(zhuǎn)換時應使用高阻輸入和開漏模式,轉(zhuǎn)換速度可達100kHz。 A/D轉(zhuǎn)換結果計算公式如下: 結果(ADC_DATA[7∶0],ADC_LOW2[1∶0])=1 024*Vin/Vcc 上式中:Vin為模擬通道輸入電壓;Vcc為單片機實際工作電壓,即用單片機工作電壓作為模擬參考電壓。取ADC_DATA的8位作為ADC轉(zhuǎn)換的高8位,取ADC_LOW2的低2位作為ADC轉(zhuǎn)換的低2位,則A/D轉(zhuǎn)換結果為10位精度。 本系統(tǒng)中選擇P1.3作為俯仰角A/D轉(zhuǎn)換通道,選擇P1.7作為傾斜角A/D轉(zhuǎn)換通道,選擇P1.2作為X方向角A/D轉(zhuǎn)換通道,選擇P1.4作為Y方向角A/D轉(zhuǎn)換通道,其A/D轉(zhuǎn)換程序流程圖如圖3所示。 
2.4直升機A/D轉(zhuǎn)換C程序關鍵代碼 宏晶科技在其“STC12C5410AD系列單片機器件手冊”[8]中說明了Timer0、1可通過AUXR寄存器設置成工作在12T或1T模式。但該手冊上關于單片機系統(tǒng)管理特殊功能寄存器AUXR中T1、T0的位置說明是錯誤的: 
該說明誤導了很多編程人員,位T1x12為0則定時器1是12T模式,傳統(tǒng)8051的速度,所用到的C語言程序語句為AUXR=AUXR&0xbf,這個錯誤的語句顯然得不到正確的結果。正確的AUXR寄存器的第7位即最高位 MSB應該是T1x12,而第6位應該是T0x12,從而正確的C語言程序語句為AUXR=AUXR&0x7f。 本系統(tǒng)中直升機俯仰角、傾斜角以及方向角的模擬信號檢測中就要用到A/D轉(zhuǎn)換C程序,下面以俯仰角檢測的A/D轉(zhuǎn)換為例給出其中C程序關鍵代碼。 //*******俯仰角A/D轉(zhuǎn)換******* ****/ void fyzh() { ADC_CONTR=0xe3;//選擇P1.3為轉(zhuǎn)換通道 delay(10);//延時 ADC_DATA=0;//清A/D轉(zhuǎn)換結果寄存器 ADC_LOW2=0; ADC_CONTR=ADC_CONTR|0x08; //啟動A/D轉(zhuǎn)換 do { ; } while((ADC_CONTR & 0x10)==0); //等待轉(zhuǎn)換 ADC_CONTR=0xe3; //轉(zhuǎn)換結束,清位,停止 p=ADC_DATA*4 + ADC_LOW2; //存放10位AD轉(zhuǎn)換結果 } //*******主函數(shù)********** **/ void main() {unsigned char i; ADC_CONTR = ADC_CONTR|0x80; //1000,0000 打開A/D轉(zhuǎn)換電源 delay(100); //開A/D轉(zhuǎn)換電源后要加延時 P1M0=0x88; //設置A/D通道所在的P1.3,P1.7為開漏模式 P1M1=0x88; AUXR=AUXR&0x7f; PCON=0x80;//PCON=0x80設置波特率加倍 SCON=0x50;//設置串行方式1 TMOD=0x20;//設置定時器方式2 TH1=0xfa;//外部時鐘頻率fosc= 11.0592 MHz,選擇波特率為9 600 b/s TL1=0xfa; TR1=1;//啟動定時器 while(1) { //其它程序 fyzh(); //調(diào)用俯仰角A/D轉(zhuǎn)換子程序 delay(300); //延時 } } 3增穩(wěn)試驗系統(tǒng)數(shù)據(jù)顯示 小型無人直升機地面系統(tǒng)的試驗數(shù)據(jù)顯示使用Delphi開發(fā)的程序來進行,其顯示界面如圖4所示。當程序開始接收數(shù)據(jù)時,數(shù)值顯示框?qū)⒎謩e顯示俯仰和傾斜兩組數(shù)據(jù),分別為偏移角、操舵量和校正量。偏移角為沒有處理過十進制顯示的原始數(shù)據(jù);操舵量為舵機控制信號脈沖寬度,單位是μS;校正量為添加在舵機控制信號上的脈沖寬度,單位也是μS。在傾斜、俯仰顯示圖下方的是數(shù)據(jù)顯示區(qū),顯示的是經(jīng)過計算轉(zhuǎn)換的俯仰、傾斜的偏移角度。 
4結論 該增穩(wěn)試驗系統(tǒng)已經(jīng)通過地面聯(lián)機測試,能夠快速準確地采集俯仰角、傾斜角、方向角等模擬信號,以及遙控接收機的控制信號和傳輸試驗所需數(shù)據(jù),圖形和數(shù)據(jù)顯示均正常,待完成與小型直升機的整合以后,即可開始飛行試驗,為獲得真實準確的姿態(tài)參數(shù),分析研究控制方法,確定控制算法奠定了基礎。 摘自:中國計量測控網(wǎng)
|