謝 檬,南 洋
(西安交通大學城市學院,西安 710018)
1901年,Breguet兄弟開始研發“旋翼機1號”四旋翼飛行器[1-3]?!靶頇C1號”采用四根鋼管組成的“十字架”形狀結構,于1907年的年底,首次實現四旋翼飛行器載人升空,這一突破性的進展極大促進了四旋翼飛行器的發展[4-9]。而后幾十年,德國公司研發的MD4型號四旋翼飛行器、美國斯坦福大學研發出STARMAC四旋翼飛行器、法國派諾特公司研制的AR.Drone四旋翼飛行器、奧克蘭大學推出帶有飛控系統的四旋翼飛行器、我國的“大疆”公司和“零度智控”公司推出的ZERO1600系列無人機在民用無人機領域得到了推廣[10-14]。世界各國無一不把四旋翼飛行器列為重點研究對象。

圖1 監測系統結構框圖

圖2 傳感器驅動電路圖
四旋翼飛行器可以實現各種方位和角度的飛行、且能對目標區域進行遠距離的實時低空偵察和觀測,同時向地面監測站傳送實施的影像信息;得益于四旋翼飛行器多種靈活的飛行姿態[15]。在現代戰爭中,四旋翼飛行器可以攜帶現代武器,比如遠程操控投放炸彈等等[16-19]。在民用方面,四旋翼飛行器可以執行各種復雜環境的任務,比如環境監測,大氣監測,地貌監測,森林防火等??刂葡到y是四旋翼飛行器的核心技術,主要在飛行過程中操控著四旋翼飛行器的飛行姿態、實時通信和位置導航等任務[20]。
四旋翼無人機主要由飛控手目視操控飛行過程,難免存在人為誤差,為了減少飛控手目視檢查所產生的誤差,可以通過LabVIEW平臺進行四旋翼飛行器飛行控制模擬及仿真,在軟件平臺上實現四旋翼飛行器飛行狀態信息的實時采集和性能評估。本文所設計的四旋翼飛行器姿態監測系統,下位機采用STM32F103RBT6單片機和MPU-9250九軸傳感器采集四旋翼飛行器的實時飛行高度、飛行速度、俯仰角和滾轉角,將采集到的數據通過WiFi傳輸給上位機,上位機界面對采集的數據進行顯示、記錄、存儲、報警和回放等功能。打開子面板,可以查詢歷史數據,且對其數據進行誤差分析。
四旋翼飛行器姿態監測系統結構框圖如圖1所示,姿態監測的四個參數分別是:飛行高度、飛行速度、俯仰角和滾轉角。
MPU-9250九軸傳感器將采集到的參數傳輸給STM32F103RBT6單片機進行處理,WIFI通信模塊連接上位機LabVIEW監測平臺,完成實時數據顯示、歷史數據查詢和閾值觸發報警等功能。
MPU-9250傳感器采用SPI通信方式和STM32單片機進行通信,驅動電路圖如圖2所示。在STM32單片機中將PA1管腳配置成SPI1_SCK,將PA6配置成SPI1_MOSI,將PA7配置成SPI1_MISO,PA2管腳配置成片選管腳來選中MPU-9250傳感器。
單片機最小系統包括電源電路、時鐘電路、復位電路和啟動電路。
1.2.1 電源電路
供電電路圖3所示,電源供電部分采用3.7 V鋰電池進行供電,由于MCU和MPU九軸傳感器為3.3 V供電,所以電源電路中采取SP6205將3.7 V電壓輸入進行降壓至3.3 V給其供電。

圖3 電源電路
1.2.2 時鐘電路
時鐘電路共提供兩個時鐘源,其中Y2為32.768 kHz晶振,為RTC提供時鐘,Y1為8 MHz晶振,為整個系統提供時鐘。
1.2.3 復位電路
復位電路采用按鍵和保護電容構成復位電路,在CPU無法正常工作時,按下按鍵,可以進行物理復位CPU。
1.2.4 啟動電路
啟動電路如圖4所示,BOOT1和BOOT2來決定啟動模式,BOOT1接電平,并且和BOOT2通過插針連接,通過跳線可以配置三種不同的模式。

圖4 啟動電路
WIFI通信模塊電路圖如圖5所示,其中,PA9是串口1的發送管腳,PA10是串口1的接收管腳。

圖5 WIFI通信模塊電路圖
四旋翼飛行器姿態監測系統設計采用圖形化編程軟件LabVIEW,主要實現功能:(1)實時采集飛行姿態四個關鍵參數,并對參數進行顯示、處理、存儲、報警和回放;(2)若采集到的數據超過預先設置的閾值,觸發報警;(3)對歷史數據進行回放,方便查詢不同時刻的歷史記錄。
監測系統主程序流程如圖6所示,系統設置數據采集時間間隔、參數閾值,將采集到的數據實時顯示在軟件界面,系統軟件對實時數據進行處理。當飛行高度、速度值超過預先設定的閾值,則觸發報警并顯示,軟件系統重新發送飛行控制指令;當飛行高度、速度值沒有超過預先設定的閾值,則飛行繼續并進行數據采集、顯示等。

圖6 監測系統主程序流程圖
姿態監測系統分為兩個子面板,實時數據采集顯示子面板和歷史數據查詢回放子面板。
實時數據采集顯示子面板由三個模塊組成:參數設置模塊、數據顯示模塊和指令發送模塊。主要包括參數設置、實時顯示波形、閾值設定及報警系統、開始保存按鈕、歷史數據回放按鈕和停止按鈕、指定參數設置及發送按鈕。
3.1.1 參數設置模塊
參數設置模塊包括端口號、波特率和數據位。建立與四旋翼飛行器通信的前提是必須設置好端口號,波特率設定為9 600 bps,數據位選擇為8位,讀取8位數據。連接無人機,指示燈亮,并顯示連接正常。此時數據采集開始,接受來自下位機的數據。
3.1.2 數據顯示模塊
數據顯示模塊包括閾值設定、實時數據波形和報警指示。飛行高度顯示單位為m,閾值設定范圍0~6 000 m,每一小格代表500 m的高度變化,保留兩位有效數字。飛行速度顯示單位為km/h,閾值設定范圍0~400 km/h,每一小格代表25 km/h的速度變化,保留兩位有效數字。俯仰角和滾轉角顯示單位為(°),閾值設定范圍-180°~180°,每一小格代表10°的角度變化。四個參數的縱軸數值最大值會隨著采集到的數據值進行改變,觸發閾值時數值不再改變且相應報警指示燈亮起,四旋翼飛行器停止飛行并等待下一步指令,采集時間單位為s,設定采集時間間隔為1 s,橫軸每一小格代表20 ms的時間變化。采集時間間隔為1 s,每一小格代表20 ms的時間變化。
3.1.3 指令發送模塊
用戶可以在上位機界面自行設定四旋翼飛行器的參數,但是不能設定閾值,輸入的參數數值有效數字為兩位,飛行高度可輸入范圍為0~6 000.00 m,飛行速度可輸入0~400.00 km/h,俯仰角可輸入范圍為-180.00~180.00°,滾轉角可輸入范圍為-180.00~180.00°,相應參數設置完成后點擊數值下方的按鈕即可將設定的參數數值發送給下位機,在完成指令發送之后,點擊“開始保存”按鈕,上位機開始對下位機采集到的數據進行實時保存,如果需要對歷史數據進行查看,點擊“歷史數據回放”,即可調用歷史數據查詢回放子面板,完成對歷史數據的回放和查看操作。
歷史數據查詢回放子面板包括四個參數的歷史數據記錄及波形、讀取歷史數據表格按鈕及返回主頁按鈕。主要完成調取存儲在根目錄文件里的歷史數據的excel表格,同時顯示飛行高度、飛行速度、俯仰角和滾轉角的歷史數據變化波形。
監測系統工作步驟:
1)在實時數據采集顯示子面板上點擊“歷史數據回放”按鈕,即歷史數據查詢回放子面板開始工作。
2)點擊“點擊打開數據文件”按鈕,開始調取相應的歷史數據,歷史數據以excel表格的形式存儲在文件里,同時以波形圖的形式顯示在前面板。
3)點擊“主頁”按鈕,返回實時數據采集顯示子面板,可以在觀察歷史數據的同時觀察實時數據的變化。
四旋翼飛行器起飛姿態模式如圖7所示,點擊“連接無人機”按鈕,設置上位機端口號和網絡測試助手端口號,選擇傳輸協議為“TCP Client”,設置實驗數據采集時間間隔為100 ms,開始采集實時數據。點擊“停止”按鈕,歷史數據以excel表格的形式自動保存至文件。由圖可見,四旋翼飛行器正處于起飛模式,飛行高度、飛行速度、俯仰角和滾轉角都呈遞增的趨勢。

圖7 四旋翼飛行器起飛姿態模式
四旋翼飛行器平穩飛行姿態模式如圖8所示,當四旋翼飛行器加速起飛之后,說明系統運行正常,從177 s時刻開始給四旋翼飛行器發送指令,使其減緩加速上升,指令發送間隔為1 s,178 s時刻之后四旋翼飛行器減緩加速上升。當時間到達198 s時刻,飛行高度從3 033.95 m緩慢增加至3 036.23 m,飛行速度由230.00 km/h緩慢增加至231.99 km/h保持不變,俯仰角由73.00°緩慢增加至74.79°保持不變,滾轉角由81.00°緩慢增加至82.77°保持不變,四旋翼飛行器呈平穩飛行的趨勢,處于平穩飛行姿態模式。

圖8 四旋翼飛行器平穩飛行姿態模式
四旋翼飛行器降落姿態模式如圖9所示,系統給四旋翼飛行器發送指令,使其減速下降,指令發送間隔為1 s,199 s時刻起四旋翼飛行器逐漸減速。當時間到達220 s時刻,飛行高度從3 036.23 m緩慢降低至3 014.51 m,飛行速度由231.99 km/h緩慢減小至207.46 km/h,俯仰角由74.79°緩慢增加至-13.01°,滾轉角由82.77°緩慢減小至-23.54°。四旋翼飛行器呈減速下降的趨勢,處于降落姿態模式。

圖9 四旋翼飛行器降落姿態模式
四旋翼飛行器報警模式如圖10所示,觸發報警模式需要等待四旋翼飛行器一直加速上升,因此從303 s時刻開始采集數據。并記錄數據至324 s時刻,飛行高度從5 820.25 m增加至6 000.01 m,此時飛行高度大于預先設定的閾值。觸發報警,報警指示燈亮,四旋翼飛行器不再上升,上位機數據采集停止,飛行速度由381.25 km/h增加至400.01 km/h,此時飛行速度也大于預先設定的閾值,觸發報警,報警指示燈亮,不再提供加速動力,俯仰角由121.16°增加至139.54°,滾轉角由132.54°增加至149.21°。由于飛行高度和飛行速度觸發報警,上位機停止采集數據,此時四旋翼飛行器處于報警模式。

圖10 四旋翼飛行器報警模式
四旋翼飛行器在四種不同的姿態監測模式下,其飛行高度、飛行速度、俯仰角和滾轉角的實時監測數據見表1。

表1 四旋翼飛行器姿態監測模式下的實時數據
歷史數據回放模式如圖11所示,可以實現對采集到的數據進行存儲和回放,進而對歷史數據進行統計分析。在前面板中運行程序,點擊“開始保存”,采集結束后,打開“歷史數據回放”,即完成對歷史數據的回放。

圖11 四旋翼飛行器歷史數據回放模式
歷史數據回放模式顯示的四個參數的波形圖橫軸從第1格至第4格為起飛姿態模式,此時這四個參數均為遞增的趨勢;橫軸從第5格至10格為平穩飛行姿態模式,此時四個參數的數值基本保持不變;橫軸從第11格至15格為降落姿態模式。此時四個參數的數值均為遞減趨勢;橫軸從橫軸第16格至19格為報警模式,此時四個參數的數值均為遞增趨勢,且飛行高度和飛行速度都超出閾值,觸發報警,數據停止采集。
實時數據進行采集的同時,監測系統會以excel表格的形式自動將實時數據保存在相應的根目錄。打開文件中的表格,四旋翼飛行器在姿態監測模式下飛行高度、飛行速度、俯仰角和滾轉角的歷史數據如表2所示。

表2 歷史數據
在完成系統軟件測試后,打開保存在文件夾中的歷史數據excel表格,見表3。8組連續的歷史監測數據,飛行高度從2 696.35 m至2 895.31 m,飛行速度從186.65 km/h至194.65 km/h,俯仰角從44.96°至50.64°,滾轉角從50.96°至57.21°。

表3 四旋翼無人機飛行姿態監測數據(8組)
為了使誤差分析更為精準,所以取多次采集到的數據的算術平均作為真實值,計算出各參數的絕對偏差和相對偏差的大小。飛行高度、飛行速度、俯仰角和滾轉角的誤差分析見表4~7。

表4 飛行高度誤差分析

表5 飛行速度誤差分析
為了使誤差分析更為精準,取多次采集到的數據的算術平均作為真實值,計算出各參數的絕對偏差的大小。飛行高度、飛行速度、俯仰角和滾轉角的絕對偏差擬合見圖13。

表6 俯仰角誤差分析

表7 滾轉角誤差分析

圖13 絕對偏差擬合圖
由圖13(a)可知,飛行高度從2 696.35 m變化至2 895.31 m時,其絕對偏差由-1.12%遞增至+1.07%;由圖13(b)可知,飛行速度從186.65 km/h變化至194.65 km/h時。其絕對偏差由-0.05%遞增+0.04%;由圖13(c)可知,俯仰角從44.96°變化至50.64°時,其絕對偏差由-0.03%遞增至至+0.03%;由圖13(d)可知,滾轉角從50.96°變化至57.21°時,其絕對偏差由-0.04%遞增至+0.04%。綜合分析,四個參數的絕對偏曲線圖差都呈遞增的趨勢,但是任一參數的相鄰兩組絕對偏差之間的差值小于0.5%,說明采集到的參數值接近于真實值。
本文研究的基于LabVIEW的四旋翼飛行器姿態監測系統設計,下位機采用MPU-9250九軸傳感器和STM32F103RBT6單片機,上位機面板使用了數據顯示,波形圖表,報警指示燈等控件,利用WiFi通信 將上位機和下位機連接,下位機采集飛行高度、飛行速度、俯仰角和滾轉角,并將信號傳入上位機中。本系統測量范圍飛行高度:0~6 000 m;飛行速度:0~400 km/h;俯仰角:-180°~180°;滾轉角:-180°~180°。當采集到的數據值超過預先設定的閾值時,觸發報警,用戶可以在上位機子面板隨時查看和調取歷史數據。系統經過測試,設定采集時間間隔1 s,完成對采集數據的記錄、顯示、保存和回放,采集數據的絕對偏差值小于0.5%,實現了無人機的姿態監測,滿足了控制小型四旋翼無人機的實際需要。