肖秋霞,池慶,黃昌文,陳冠華
(廈門理工學院電氣工程與自動化學院,福建 廈門 361024)
當前我國智能制造產(chǎn)業(yè)正處于新一輪技術(shù)革命的10年周期起點上,而無人飛行器特別是四旋翼飛行器站在了這場變革的前沿,越來越受到人們的關(guān)注。進入新世紀以來,我國無人飛行器產(chǎn)業(yè)得到了空前發(fā)展,不同于傳統(tǒng)的固定翼飛行器,四旋翼飛行器不僅體積小、而且質(zhì)量輕,更重要的是有著對起飛場地要求不高、零部件容易更換等一系列突出優(yōu)勢。
基于傳統(tǒng)PID控制理念本文設計了飛行器閉環(huán)調(diào)速控制系統(tǒng),通過內(nèi)外環(huán)串級PID控制電機轉(zhuǎn)速從而改變相應旋翼產(chǎn)生的升力并最終達到飛行器飛行姿態(tài)控制的目的。首先,在MATLAB中搭建閉環(huán)調(diào)速系統(tǒng)仿真模型并得到相應變量輸出曲線,在理論層面驗證本文所提方案的可行性。其次,在對飛行器硬件平臺進行整體設計的同時對其組成部件進行選型與組裝,同時進行調(diào)速系統(tǒng)原理圖繪制工作,為系統(tǒng)軟件實現(xiàn)做好準備。最后,編寫閉環(huán)調(diào)速系統(tǒng)軟件相應算法以及進行飛行器試飛調(diào)試,在實際調(diào)試中驗證整體方案可行。本文的研究為四旋翼飛行器在自動飛行領(lǐng)域的擴展提供了基礎(chǔ)。
飛行器飛行時以直流無刷電機作為驅(qū)動源,所需全部驅(qū)動力由螺旋槳提供。飛行控制板通過采集外設傳感器模塊反饋來的數(shù)據(jù)并通過無刷電機驅(qū)動器將其輸入到四個無刷電機中,因4個電機固定在各旋翼軸的頂點處,各旋翼的傾斜角、螺距角均相同因此要實現(xiàn)飛行器姿態(tài)控制只能通過改變電機轉(zhuǎn)速使得旋翼升力改變來獲得。在無人飛行器領(lǐng)域中飛行器的運動狀態(tài)通過機體坐標系(o-xyz)中沿著坐標軸方向的平動和繞著坐標軸的轉(zhuǎn)動來描述。其中平動運動有前后運動、左右運動和升降運動;轉(zhuǎn)動運動有橫滾運動、俯仰運動和偏航運動,各自形成的姿態(tài)角分別稱為橫滾角、俯仰角和偏航角。
在目前的工業(yè)領(lǐng)域里PID控制是最常用的控制算法之一。圖1為控制器原理框圖,其中e(t)為給定的期望值;d(t)是控制輸入偏差,作為PID控制器的輸入;u(t)為PID控制器的輸出;y(t)是控制對象的實際控制輸出量。PID控制的原理是通過偏差計算得到給定期望與實際輸出之間的差值,這個差值輸入到控制器中經(jīng)變換得到一個輸出值作用于對控制對象,同時這個輸出值又返回控制器輸入端進行再一次的偏差調(diào)節(jié),最終使得整個控制系統(tǒng)的輸出值達到或保持在期望值附近,從而達到穩(wěn)定控制的效果。
圖1 PID控制器原理框圖
四旋翼飛行器有4個輸入、6個自由度的輸出,對其進行數(shù)學建模之前必須首先確立2種坐標系:地理坐標系(O-XYZ)和機體坐標系(o-xyz)。(OXYZ)的作用是確立重心坐標(x,y,z)在地理坐標系中的坐標值從而用來體現(xiàn)飛行器在地理空間中的具體位置;(o-xyz)的作用則是用來確定飛行器飛行時兩坐標系之間形成姿態(tài)角從而用來描述相應的飛行狀態(tài)。建模時用6個相互獨立的坐標變量(x,y,z,α,β,γ)來描述飛行器的運動。其中飛行器機體在地理空間中的具體位置通過平動坐標變量ξ=(x,y,z)來體現(xiàn),轉(zhuǎn)動坐標變量η=(α,β,γ)則用來描述飛行器具有的飛行姿態(tài)。確定飛行器在地理空間中的具體位置時通過歐拉角法計算兩坐標系間的旋轉(zhuǎn)變換矩陣的方式來獲得。
仿真模型如圖2所示:
圖2 無刷電機SIMULINK 仿真模型
圖3 空間坐標系各坐標軸姿態(tài)角變化速率曲線
外環(huán)控制的輸入量為通過偏差計算得到給定期望與飛行器模型的實際輸出兩者之差,外環(huán)控制的輸出為水平面上橫滾、俯仰角位移和飛行器總升力U1。
內(nèi)環(huán)控制輸入量為外環(huán)控制輸出量即飛行器各旋翼產(chǎn)生的總升力和機體坐標系(o-xyz)各坐標軸上的角速度ang_xs,ang_ys,ang_zs,各軸的角速度分量經(jīng)分配后作用到各無刷電機中實現(xiàn)預期的控制效果。利用上述串級PID的內(nèi)外環(huán)控制算法在simulink中完成四旋翼飛行器控制系統(tǒng)搭建,經(jīng)過仿真,得到圖3所示仿真結(jié)果。仿真結(jié)果表明本文所設計的閉環(huán)調(diào)速系統(tǒng)能保證四旋翼飛行器的飛行穩(wěn)定,并且在外界有一定程度的干擾時仍能保持自穩(wěn),達到了姿態(tài)控制的目的,各參數(shù)具體數(shù)值表1所示。
表1 各PID控制器參數(shù)具體數(shù)值
本文所設計的閉環(huán)調(diào)速系統(tǒng)能保證四旋翼飛行器的飛行穩(wěn)定,并且在外界有一定程度的干擾時仍能保持自穩(wěn),達到了姿態(tài)控制的目的。四旋翼閉環(huán)調(diào)速系統(tǒng)硬件平臺搭建,它是檢驗建模仿真結(jié)果可行性的驗證環(huán)節(jié),同時也為軟件平臺搭建提供實物基礎(chǔ)。飛行器硬件平臺整體框架如圖4所示,工作時MCU對遙控器發(fā)來的PWM控制信號進行接收與處理,同時通過C接口采集各外設傳感器模塊的數(shù)據(jù)。
圖4 飛行器硬件平臺框架
在硬件平臺包括下列各個器件選型:
⑴ 機架結(jié)構(gòu):四旋翼飛行器旋翼軸選用尼龍加碳纖維復合材料,強度高耐摔適合多次試飛調(diào)試;無刷電機選用新西達2212/1400KV系列,其中第一個數(shù)字代表電機轉(zhuǎn)子直徑與高度,即線圈外徑22 mm,長度12 mm,第二個數(shù)字代表當外界供給電壓值為1 V時電機的空轉(zhuǎn)轉(zhuǎn)速為1400 r/min;螺旋槳選用8045全碳纖維系列,突出優(yōu)點是質(zhì)量輕且韌度大,保證四旋翼飛行器飛行穩(wěn)定。
⑵ 微處理器(MCU):微處理器理念于上世紀70年代提出,是一種集成度高的整合多種功能的單芯片微型計算機。本文MCU最終STM32F407VGT6高性能信號控制器核心板系列。
⑶ 外設傳感器模塊:由于飛行器機體的載重及放置空間有限,因此所選擇的傳感器模塊體積與質(zhì)量不能過于龐大,故將范圍確定在微電子機械系統(tǒng)(Micro Electro Mechanical System,MEMS)慣性傳感器范圍內(nèi)。表2為最終選擇的外設傳感器模塊。
STM32 最小系統(tǒng)板由電源、時鐘、復位、JTAG下載、啟動5 部分電路組成,是指讓STM32 芯片能正常工作所需的最基本組成電路。
電源電路進行降壓轉(zhuǎn)化,將高電平5 V信號轉(zhuǎn)化成低電平3.3 V信號用來給最小系統(tǒng)板核心芯片供電,同時在高電平端并入一個二極管為的是防止出現(xiàn)電源正負極反接而燒壞最小系統(tǒng)板的情況;時鐘電路由外接的晶振及電容組成,作為最小系統(tǒng)板各組成電路正常工作的驅(qū)動力通過晶振產(chǎn)生時鐘周期使最小系統(tǒng)板執(zhí)行操作;復位電路連接最小板核心芯片上的NRST管腳,由電容、電阻、按鍵帽組成。上電時給核心芯片發(fā)送信號讓其開始執(zhí)行程序直至斷電,同時電阻給電容充電此時NRST之間無高電平電壓信號,斷電復位時通過按鍵帽按壓重新對核心芯片NRST管腳供電;JTAG下載電路用于調(diào)試及燒錄仿真程序;啟動電路BOOT0/BOOT1模式,具體模式的選擇是通過跳線帽在3.3V和接地端間的引接來完成。
四旋翼飛行器閉環(huán)調(diào)速系統(tǒng)軟件部分由主程序和中斷程序2部分組成,下圖5為閉環(huán)系統(tǒng)軟件整體框架。四旋翼飛行器系統(tǒng)對實時控制要求很高,因此必須設定好系統(tǒng)響應時間,故采用5 ms更新一次的中斷處理作為整個系統(tǒng)的時間基準,所有的控制算法都在中斷時間里分時段完成,主函數(shù)的作用則是進行中斷優(yōu)先組別設置、外設傳感器模塊初始化以及接收遙控器傳來的姿態(tài)控制指令。
圖5 程序控制流程圖
表2 外設傳感模塊產(chǎn)品參數(shù)
系統(tǒng)工作時主程序首先進行初始化環(huán)節(jié),而后通過期望值輸入進入PID控制器調(diào)節(jié)得到實際值輸出,微處理器MCU對實際值進行PWM 調(diào)制最終作用于電機進行調(diào)速。同時輸出值經(jīng)PID閉環(huán)控制反饋回輸入端及中斷處理程序中,實現(xiàn)電機閉環(huán)調(diào)速功能;定時中斷處理實時更新各外設傳感器模塊測量數(shù)據(jù)以及對各傳感器測量數(shù)據(jù)進行融合并輸入到PID控制器中。
閉環(huán)調(diào)速系統(tǒng)初始化環(huán)節(jié)包含了2部分,分別是微處理器(MCU)內(nèi)部模塊的初始化以及外設傳感器模塊的初始化。其中串口初始化、C接口和GPIO接口初始化、定時器初始化、PWM輸入捕捉、輸出初始化共同組成MCU內(nèi)部模塊初始化;外設傳感器模塊的初始化主要是三維角度傳感器MPU6050初始化和電子羅盤AK8975初始化。串口初始化是上位機通信與SPL06模塊讀取數(shù)據(jù)所需,上位機通信的實時性要求高故波特率采用115200 bps,SPL06波特率設置較低,為9600 bps;GPIO用來控制指示燈;PWM輸入捕獲用來捕捉遙控器初始化信號,PWM輸出用來驅(qū)動電調(diào)給無刷電機供電;I2C端口主要是用來給外設傳感器讀取數(shù)據(jù)。
閉環(huán)調(diào)速系統(tǒng)中總中斷程序的作用主要是收集各外設傳感器模塊測得的數(shù)據(jù)而后進行數(shù)據(jù)融合并最終作用于無刷電機進行調(diào)速。四旋翼飛行器起飛時系統(tǒng)初始化環(huán)節(jié)完成后系統(tǒng)總中斷程序也開始工作,且根據(jù)需要設置系統(tǒng)中斷固定掃描周期5 ms。在收集各外設傳感器模塊所測數(shù)據(jù)前必須進行鎖定狀態(tài)下的校準工作,主要是對三維角度傳感器MPU6050進行校準。校準完成后進行數(shù)據(jù)融合并最終傳送到PID控制器對無刷電機進行調(diào)速。
四旋翼飛行器閉環(huán)調(diào)速系統(tǒng)里需用到多個中斷,因此需要根據(jù)任務的先后和重要性設置中斷優(yōu)先級。共4個中斷源:TIM IN用于執(zhí)行單片機的輸入捕獲,以便獲取遙控器輸入指令;USART2用于執(zhí)行數(shù)據(jù)接收串口通信功能;TIM OUT用于執(zhí)行單片機的輸出比較,以便輸出4個PWM值控制無刷電機;TIM用于執(zhí)行單片機5 ms更新中斷,實現(xiàn)計數(shù)功能,優(yōu)先級由高至低。
PID閉環(huán)控制系統(tǒng)中通過期望值輸入到PID控制器進行偏差計算和控制器各組成環(huán)節(jié)運算后輸入到無刷電機實現(xiàn)調(diào)速的功能。同時輸出值又反饋回控制器輸入端為下一次期望值輸入進行偏差計算時做準備。在控制算法中對輸入變量設置限幅標志以防止變量積分時出現(xiàn)過飽和的現(xiàn)象。每次控制時在PID控制器各組成單元中均會進行本次計算偏差與上次保留偏差之間的大小比較以確定最新一次的各環(huán)節(jié)輸出值。這樣層層往復使得控制更為精準與穩(wěn)定。
PWM(Pulse Width Modulation)稱為脈沖寬度調(diào)制,在四旋翼飛行器中PWM輸出波形的占空比越大,則施加在無刷電機兩端等效的電壓越高,從而對應的電機轉(zhuǎn)速就越大。STM32F407VGT6系列核心板微處理器模塊(MCU)接收來自遙控器和串級PID控制器的信號通過配置GPIO接口而輸出PWM信號,PWM信號經(jīng)無刷電機驅(qū)動器中的MOS管放大電路放大電壓后驅(qū)動無刷電機工作。
PWM波形輸出通過RIGOL DS1102E示波器測量。為能在示波器上能有直觀顯示變化情況,本文設計的四旋翼飛行器PWM波形輸出占空比范圍為40%~75%,測量PWM波形輸出時引出STM32單片機上輸入到對應無刷電機驅(qū)動器的信號線及接地引線,分別與示波器的正負引線相連,測得的PWM波形如圖6中所。
圖6 PWM輸出波形顯示(占空比40%)
飛行器飛行時通過施加油門輸入增大PWM波形占空比從而改變無刷電機兩端等效電壓最終實現(xiàn)電機轉(zhuǎn)速的改變。圖7兩幅圖是實際測試過程中增加油門輸入時對應的PWM波形變化情況。
本文針對四旋翼飛行器無刷電機調(diào)速,設計了一種比現(xiàn)有控制策略更為簡便的控制算法為其在自動飛行方面的擴展提供基礎(chǔ),通過內(nèi)外環(huán)串級控制的方式解決了飛行器在變量耦合方面的問題,可大范圍用于無刷電機調(diào)速。確立四旋翼飛行器閉環(huán)調(diào)速系統(tǒng)整體框架,設計系統(tǒng)初始化初始化環(huán)節(jié)、中斷環(huán)節(jié)、PID閉環(huán)調(diào)速系統(tǒng)算法,并進行最終的試飛調(diào)試,驗證了本文所提的方案。
圖7 實際測試加以油門輸入的PWM波形變化情況