


[摘 要]文章針對無人機在各種復雜環境下飛行控制模型的不確定性問題,設計了基于閉環系統辨識算法、校正控制算法參數整定技術的智能飛行控制系統,并設計了一套虛擬樣機仿真系統,保證無人機高速、高精度、高魯棒性飛行控制性能的同時,避免調參帶來的巨大工作量,同時,通過虛擬樣機仿真對該算法進行了驗證。
[關鍵詞]飛行控制;閉環系統辨識算法;校正控制算法;參數整定
[中圖分類號]V249 [文獻標志碼]A [文章編號]2095–6487(2024)03–0165–03
1 閉環系統辨識算法
針對閉環控制系統中噪聲與干擾信號隨著反饋環節傳遞變為不可預估和建模的干擾信號,從而使得辨識無法得到系統參數的無偏估計值的問題,設計了一種有效的閉環系統辨識算法,其分為以下3步。
(1)預處理濾波。利用廣義泊松矩泛函(GPMF)的方法構造濾波器,利用GPMF 濾波器的特性,在保留輸入輸出數據中與傳遞函數有關信息的同時,濾除高頻噪聲。
(2)迭代調用輔助變量法。輔助變量法通過構造特定的輔助變量,可以得到任何傳遞函數的無偏估計。通過迭代的方式,所構造的輔助變量中包含的傳遞函數本身的響應信息越來越多,噪聲干擾信息越來越少,使其逐漸接近理想化的輔助變量。
(3)線性優化。通過線性尋優方法減小方程誤差,有效地提高系統參數的辨識結果所計算的輸出與真實輸出的擬合度。
2 虛擬樣機仿真技術
在三維建模軟件SolidWorks 中建立無人機的模型,其中各個零件的尺寸、材料,以及各零件之間的配合約束都完全按照真實無人機進行設計,以保證其動力學模型的真實性。然后將其導出為Simulink 可調用的三維可視化動力學模型。
利用MathWorks 官方插件smlink(SimscapeMultibody Link), 可以快速地將SolidWorks 中的裝配體模型轉化為MATLAB 運算兼容的SimulinkMultibody 模型。在以下網址或MathWorks 首頁搜索smlink, 下載SolidWorks 與Simulink 相關聯的插件,并運行相應的代碼進行關聯:https ://ww2.mathworks.cn/campaigns/offers/download_smlink.html?s_tid=srchtitle( 命令窗口輸入install_addon 安裝插件;輸入smlink_linksw 以關聯SolidWorks);將matlab 與SolidWorks 關聯成功后,SolidWorks 軟件的裝配體界面中就會出現相對應的導出選項。在建立好的三維裝配體模型中,通過選擇工具- simscapeMultibody Link - Export - Simscape Multibody 選項,可以將三維模型快速導出為matlab 可調用的文件類型STEP 及xml 文件。在MATLAB 命令窗口中輸入命令smimport('***.xml'),將模型導入為Simulink/Multibody 文件(.slx),即為初始化Multibody 模型。
Multibody 是Simulink 中的一個庫函數,主要負責機器人可視化動力學模型的建立和仿真。Multibody模型包含了無人機模型的運動學和動力學屬性,并且可以利用Simulink 圖形化編程進行控制和運算過程的添加。
3 模型調整與坐標系建立
無人機動力學模型建立后,還需要建立與世界坐標系之間的坐標轉換關系,以計算與反饋無人機在世界坐標系下的運動狀態,所以添加各個運動副來實現坐標轉換。
先根據模型的實際情況,設置正確的重力加速度方向,然后進行模型的調整。由于SolidWorks 等三維建模軟件中通過各個零件組成裝配體時,需要在各個零件之間添加配合,即自由度約束。在利用smlink 插件將SolidWorks 模型轉換為Multibody 動力學模型時,這些配合會自動生成相應的運動副。而SolidWorks 模型的配合與Multibody 動力學模型中的運動副的不同之處在于,SolidWorks 中的零件在未添加配合之前,其各個自由度都是不受約束的,即如果不添加配合,則零件可以進行六自由度自由旋轉和平移;而在Multibody 中,零件之間未添加任何運動副,意味著這兩個零件是固結的,無法發生位移和旋轉。同時,SolidWorks 中的高級配合,如距離配合、對稱配合等,在轉化過程都是無法識別的。所以在進行轉化過程中,各個零件之間的配合、運動副會出現錯誤,需要進行調整。
在通過運動副調整和坐標變換調整,使得動力學模型成為一個合理的、最簡化的模型后,需要對其添加運動自由度。對于伴飛無人機的動力學模型,由于合理化調整后的模型與地面之間不存在任何運動副,所以無人機目前是與地面固結的、不可移動的,需要合理添加與地面之間的運動副,使得無人機獲得全空間六自由度的運動能力。
由于無人機是個欠驅動不穩定的系統,其6 個自由度需要分層次進行控制。為了保證無人機在空間內的穩定飛行,需要先保證無人機3 個姿態角的穩定及高度方向的穩定控制,再通過俯仰和橫滾角保證xy方向的位置控制。所以無人機的自由度設置也應分層次。先添加最外環的xy 方向位置自由度,然后添加高度方向自由度,最后按照歐拉角的表示方法,一次建立3 個姿態角度的自由度。
還需要添加狀態的反饋接口及控制力的輸入接口。添加xyz 3 軸方向的移動運動副,使得無人機可以平動;在運動副上添加狀態輸出,作為四旋翼位置的反饋。然后在此基礎上,依次添加3 個單自由度轉動副,依次代表四旋翼的偏航、滾轉和俯仰3 個歐拉角(用歐拉角表示機器人的姿態時,需要規定一定的順序);分別在3 個轉動副上添加狀態輸出,獲取四旋翼的姿態角度反饋。
將四旋翼模型的運動自由度與虛擬傳感器建立完成后,需要搭建對4 個電機的控制線路。對電機的PWM(脈沖寬度調制)模擬輸入同樣接在轉動副上,在仿真建模中直接設置為扭矩輸入。另外,由于Multibody 工具箱中沒有空氣動力學仿真,所以在螺旋槳轉動時,只通過模型內部的解算,是不會給四旋翼提供升力的,只能提供反扭矩。所以需要通過外力和扭矩模塊,手動添加螺旋槳升力。升力與螺旋槳的轉速呈二次函數關系,所以在轉動副中導出電機的轉速,通過函數f(u)計算得到升力,作用在4 個臂上。圖1 為其中一個轉子的控制接口與升力模塊設置。
至此,四旋翼無人機的動力學模型及輸入輸出接口設計完成。然后在此虛擬樣機模型基礎上,添加了控制算法,來控制四旋翼的飛行動作。
4 建立聯合仿真控制系統
四旋翼無人機是一個耦合的復雜機電系統,但由于在控制時,其3 個旋轉自由度與高度方向自由度的控制相對獨立,而xy 軸方向的自由度又是通過橫滾和俯仰兩個旋轉自由度控制的,所以可以將四旋翼無人機系統視為一個具有4 個相對獨立自由度的系統。4 個自由度進行獨立控制。設置4 個PID 控制器,分別控制高度、偏航、橫滾和俯仰4 個自由度。另外,在xy 軸方向自由度上設置兩個PID 控制器,分別作為橫滾和俯仰姿態控制的外環。對各個PID 控制器進行有效的調參后,四旋翼的控制系統對于各個自由度的期望響應達到快速、準確、穩定的效果。
在添加控制器之前,需要先搭建系統的控制回路?;芈泛突炜仄髟O置完畢后,在回路中添加控制器??刂葡到y框圖如圖2 所示。
控制響應的性能決定了四旋翼無人機對于規劃算法的執行能力。通過調節控制器性能,在執行過程中,無人機能夠及時、準確地響應規劃算法對于下一時刻的位置期望;在一些常數期望的自由度上,即第一階段的高度方向位置期望,以及第二階段的水平方向位置期望,控制器保證了四旋翼無人機穩態的穩定控制。
5 最終控制和虛擬樣機模型
最終控制和四旋翼無人機Simulink 模型如圖3 所示。其可以對仿真過程與模型的運動狀態進行可視化的觀測與優化。
6 結束語
文章針對無人機在各種復雜環境下飛行控制模型的不確定性問題,提出了基于閉環系統的辨識算法,該方法通過預處理濾波、迭代調用輔助變量法、線性優化,有效提高了系統參數的辨識結果;通過虛擬樣機仿真技術,設計了虛擬樣機仿真系統,建立了三維可視化四旋翼無人機動力學模型;建立了包含高度、偏航、橫滾和俯仰4 個自由度獨立的仿真控制系統,最終形成控制和虛擬樣機模型,實現對仿真過程與模型的運動狀態進行可視化的觀測與優化。
參考文獻
[1] KRISHNAKUMAR K,GONSALVES P,SATYADAS A,et al . Hybrid fuzzy logic flight controller synthesis via pilot modeling[J].Journal of Guidance Controland Dynamics,2015,18(5):1098-1105.
[2] 姜長生,郭樹軍. 先進武裝直升機一種新型組合智能飛控系統和火/飛綜合系統的設計與仿真[J]. 航空學報,1998,19(6):719-725.
[3] 劉廣萍,張漢杰. 遺傳算法在模糊控制器參數尋優中的應用[J]. 哈爾濱建筑大學學報,2000,33(3):78-81.