孫克誠 王琪
摘要:文章介紹了一種無人機(jī)飛行半物理仿真平臺的控制系統(tǒng),本系統(tǒng)是以ARM處理器為核心控制器,采用模塊化設(shè)計的方法,設(shè)計了一個三軸轉(zhuǎn)臺控制系統(tǒng)。系統(tǒng)采用PC機(jī)與下位機(jī)兩級控制,使用積分分離式的PID控制算法,對三軸轉(zhuǎn)臺進(jìn)行精確控制??刂葡到y(tǒng)能控制三軸轉(zhuǎn)臺轉(zhuǎn)動并對平臺上捷聯(lián)慣導(dǎo)系統(tǒng)姿態(tài)信息進(jìn)行實時測量,保存和顯示。
關(guān)鍵字:三軸轉(zhuǎn)臺;PID算法;STM32;姿態(tài)控制;捷聯(lián)慣導(dǎo)系統(tǒng);
近些年來,隨著現(xiàn)代戰(zhàn)爭的日益發(fā)展,無人機(jī)也因其無人駕駛的獨特性能得到各國的重視與關(guān)注。飛行仿真轉(zhuǎn)臺能夠真實地模擬出無人飛行器的動力學(xué)特性,在實驗室中就能對飛行器的飛行姿態(tài)進(jìn)行仿真,是檢測無人飛控系統(tǒng)性能以及進(jìn)行半物理仿真實驗的重要裝置。三軸轉(zhuǎn)臺的控制精度直接影響了仿真或調(diào)試、檢測的結(jié)果,因此,三軸轉(zhuǎn)臺的控制系統(tǒng)設(shè)計往往決定了轉(zhuǎn)臺的質(zhì)量。本文結(jié)合實際設(shè)計了一種可實時測量平臺上傳感器數(shù)據(jù)的飛行仿真轉(zhuǎn)臺控制系統(tǒng)。
1系統(tǒng)結(jié)構(gòu)及總體方案設(shè)計
本三軸轉(zhuǎn)臺控制系統(tǒng)由慣性傳感器模塊、STM32微控制電路、OLED顯示模塊、按鍵輸入模塊、步進(jìn)電機(jī)驅(qū)動模塊、RS 232串口通信模塊、編碼器數(shù)據(jù)采集模塊等部分組成。系統(tǒng)整體結(jié)構(gòu)框圖如圖1所示。慣性傳感器系統(tǒng)采集到原始信號,通過I2C總線發(fā)送給STM32微控制器,STM32控制器運用捷聯(lián)慣導(dǎo)算法處理慣性傳感器獲得的數(shù)據(jù),解算出轉(zhuǎn)臺的實時姿態(tài)。在LCD液晶顯示屏上實時顯示姿態(tài)參數(shù),另外使用MAX3232將TTL電平轉(zhuǎn)換成RS232電平,再與PC機(jī)的COM口連接,并將姿態(tài)數(shù)據(jù)打包成固定格式的串口數(shù)據(jù)包,通過串口發(fā)送給上位機(jī)軟件,在PC端上位機(jī)軟件實時動態(tài)顯示姿態(tài)參數(shù)和波形曲線。在上位機(jī)軟件上可以控制三軸平臺的狀態(tài),模擬無人機(jī)的俯仰、翻滾、航向三軸方向上的姿態(tài)控制,控制信息通過COM口發(fā)送給STM32控制器,編碼器模塊采集三軸平臺的轉(zhuǎn)動數(shù)據(jù)經(jīng)過PID算法處理后反饋給驅(qū)動電路控制步進(jìn)電機(jī)轉(zhuǎn)動,提高了三軸轉(zhuǎn)臺的轉(zhuǎn)動精度。三軸平臺與控制系統(tǒng)之間的數(shù)據(jù)采用光電隔離,防止電機(jī)干擾和損壞控制系統(tǒng)。
2硬件設(shè)計
2.1步進(jìn)電機(jī)驅(qū)動部分
步進(jìn)電機(jī)驅(qū)動部分電路原理如圖2所示。步進(jìn)電機(jī)的控制信號主要是CLK,CW,ENABLE,分別控制步進(jìn)電機(jī)的速度和轉(zhuǎn)角、電機(jī)的正反向轉(zhuǎn)動以及電機(jī)的使能,3個信號均須用光耦隔離電路隔離后與控制臺連接。光耦的主要作用是防止電機(jī)干擾和損壞微控制器接口電路,其次光耦還起到對控制信號進(jìn)行整形的作用。對于CLK與CW信號,要選擇高速光耦,以保證信號經(jīng)過光耦后不會發(fā)生滯后或者畸變而影響電機(jī)驅(qū)動的性能。CLK與CW信號采用6N137高速光耦隔離,而ENABLE信號采用TLP521普通光耦隔離。
驅(qū)動電路電源采用12V開關(guān)電源供電,VMB和VMA是步進(jìn)電機(jī)驅(qū)動電源引腳,為達(dá)到穩(wěn)壓的目的,VMB和VMA應(yīng)當(dāng)接入瓷片去耦電容和電解電容。OUTAP,OUTAM,OUTBP,OUTBM引腳為步進(jìn)電機(jī)兩相輸出接口。NFA,NFB為電機(jī)兩相最大驅(qū)動電流定義引腳,由于實際步進(jìn)電機(jī)每相的最大驅(qū)動電流為2.5A,則取串聯(lián)電阻為0.2Ω,PGNDA,PGNDB和SGND根據(jù)定義分別接電機(jī)兩相驅(qū)動引腳地和邏輯電源地。
邏輯控制電路的電源為5V,VDD為邏輯電源輸入引腳,應(yīng)當(dāng)接入去耦電容和旁路電容來減小干擾噪聲的影響。RESET為芯片復(fù)位腳,低電平有效。步進(jìn)電機(jī)在低頻工作時,存在振動大、噪聲大的缺點,細(xì)分驅(qū)動的細(xì)分功能可以解決這些問題,M1,M2是TB6560的細(xì)分設(shè)置引腳,外接撥碼開關(guān)可以設(shè)置不同的細(xì)分值,譬如整步、半步、1/8細(xì)分、1/16細(xì)分等。步進(jìn)電機(jī)由于自身狀況、電源狀況和脈沖頻率等其他因素的影響,可能會產(chǎn)生高頻噪聲,通過電流衰減模式的設(shè)置可減小這種噪聲,DCY1和DCY2為電源衰減模式定義引腳,外接撥碼開關(guān)以進(jìn)行模式設(shè)置。
2.2基于STM32的外圍接口電路設(shè)計
基于Cortex M3內(nèi)核的STM32F103ZET6是意法半導(dǎo)體生產(chǎn)的高性能嵌入式微處理芯片,該芯片內(nèi)核最高可達(dá)72MHz工作頻率,有512K的閃存程序存儲器和64K字節(jié)的SRAM,有多達(dá)80個標(biāo)準(zhǔn)IO口,有3個12位模數(shù)轉(zhuǎn)換器,11個定時器,同時有13個通信接口,其中有2個I2C接口、5個串行接口、3個SPI接口,并支持USB2.0,SDIO和CAN總線接口,是一款專門為滿足高性能、低功耗、實時應(yīng)用系統(tǒng)而設(shè)計的嵌入式微處理器,并且該芯片能很好地滿足本控制系統(tǒng)的控制、處理、數(shù)據(jù)采集、傳輸、顯示等功能?;谝陨蟽?yōu)點,本控制系統(tǒng)采用STM32F103ZET6作為微控制系統(tǒng)的核心處理器,STM32微處理器外圍接口電路如圖3所示。
2.2.1捷聯(lián)慣導(dǎo)模塊
捷聯(lián)慣導(dǎo)模塊使用的是MPU6050,其為一款集成了三軸陀螺儀和三軸加速度計的六軸運動傳感器,含有可擴(kuò)展的數(shù)字運動處理器DMP,可通過I2C接口與其他數(shù)字傳感器連接。傳感器內(nèi)部集成16位AD,測量到的三軸角速率和三軸加速度模擬量信號經(jīng)過AD轉(zhuǎn)換為數(shù)字量信號,將數(shù)字信號存儲到傳感器的寄存器中,STM32通過I2C總線接收到角速率和加速度數(shù)字信號。應(yīng)用捷聯(lián)慣導(dǎo)算法將陀螺儀測量的載體角速度解算成姿態(tài)矩陣,從中提取載體的姿態(tài)信息,并用姿態(tài)矩陣把加速度計的輸出從載體坐標(biāo)系變換到導(dǎo)航坐標(biāo)系,進(jìn)行導(dǎo)航解算。微控制將解算得到的姿態(tài)信息打包成固定格式的串口數(shù)據(jù)發(fā)送給上位機(jī)軟件,并在上位機(jī)上實時顯示。
2.2.2LCD液晶接口設(shè)計
本控制系統(tǒng)采用2.8英寸320×240分辨率的TFT-LCD液晶顯示屏對姿態(tài)數(shù)據(jù)進(jìn)行顯示,系統(tǒng)采用STM32的FSMC接口來控制LCD液晶的顯示,能夠在不增加外部器件的情況下同時擴(kuò)展多種不同類型的靜態(tài)存儲器。使用FSMC接口訪問外部設(shè)備的時序可以編程,可把液晶顯示屏當(dāng)作外部存儲設(shè)備來使用,能夠根據(jù)不同的外部存儲器類型,發(fā)出相應(yīng)的數(shù)據(jù)、控制、地址信號類型來匹配信號的速度,更好滿足本控制系統(tǒng)設(shè)計對LCD接口、控制器體積以及成本的綜合要求。
2.2.3編碼器模塊
本系統(tǒng)采用ZSP3806增量式旋轉(zhuǎn)編碼器,具有體積小、重量輕、結(jié)構(gòu)緊湊等優(yōu)點。編碼器的使用使整個控制系統(tǒng)構(gòu)成一個閉環(huán)系統(tǒng),主控制器采集到編碼器采集到的轉(zhuǎn)動數(shù)據(jù)經(jīng)過數(shù)據(jù)處理,采用PID算法反饋給控制輸出,構(gòu)成精準(zhǔn)的轉(zhuǎn)動控制。
2.2.4電源管理模塊設(shè)計
本系統(tǒng)采用I2V直流電源供電,通過LM7805芯片獲得5V電壓輸出,5V電壓再經(jīng)過LMS1117輸出3.3V電壓,電源電路中并聯(lián)電解電容和瓷片電容來達(dá)到濾除干擾的目的。
2.2.5串口通訊模塊設(shè)計
本系統(tǒng)中的串口通訊電路采用MAX3232芯片,完成TTL電平與RS232電平之間的轉(zhuǎn)換,串口通訊電路主要用于控制器與PC之間的通信。
3基于STM32的軟件實現(xiàn)
3.1載體姿態(tài)采集
設(shè)計中STM32控制器采用I2C總線協(xié)議對傳感器進(jìn)行數(shù)據(jù)采集。MPU6050的初始化包括電源管理、陀螺儀自檢及測量范圍、加速度自檢及測量范圍、陀螺儀采樣頻率、濾波頻率等的設(shè)置。采集到飛行器的三軸加速度數(shù)據(jù)和角加速度數(shù)據(jù),然后經(jīng)過數(shù)據(jù)處理和一些相關(guān)算法進(jìn)行結(jié)算,就能夠得到三軸平臺的姿態(tài)、速度等信息。
3.2控制器算法及實現(xiàn)
PID(比例-積分-微分)調(diào)節(jié)是連續(xù)控制系統(tǒng)技術(shù)成熟、應(yīng)用廣泛的一種控制技術(shù),因此被廣泛地應(yīng)用于各種控制系統(tǒng)中。它的特點是結(jié)構(gòu)簡單,參數(shù)設(shè)定及調(diào)節(jié)方便,結(jié)構(gòu)改變靈活,適應(yīng)性強(qiáng)。
A為門限值,當(dāng)有大偏差值存在時,積分項不起作用,偏差在門限范圍之內(nèi),才會引入積分項,這樣減少超調(diào)現(xiàn)象發(fā)生。
系統(tǒng)通過定時器每隔t時間中斷一次,隨即完成一次PID計算,每次采集到的u(k)都保存到緩存中,在緩存中,u(k1),u(k-2)的值不斷更新,然后,通過這2個值計算出e(k-1),e(k-2),把值代入公式中,就可以得到u(k)的值,即為控制輸出。中斷PID程序流程如圖4所示。
4結(jié)語
本文介紹了一種基于STM32的三軸平臺控制器設(shè)計。在對仿真轉(zhuǎn)臺的控制系統(tǒng)進(jìn)行研究后,選用合適的運動控制器件和控制算法實現(xiàn)飛行仿真轉(zhuǎn)臺的模擬運動。系統(tǒng)設(shè)計是在滿足系統(tǒng)的各項功能要求的前提下,還有下述優(yōu)點:(1)采用積分分離式的PID算法,控制精度高,同時顯著降低了被控制變量的超調(diào)量和過渡過程時間。(2)具有廣泛的適應(yīng)性、可擴(kuò)展性和互換性。所有部件均具有符合業(yè)界標(biāo)準(zhǔn)的接口。(3)系統(tǒng)集成度高,可靠性高,維護(hù)簡單。