這個“長著三個觸角”的水下機器人看上去是不是很萌?它使用的是一種新型的由三個球形磁耦合矢量推進器組成的推進系統(tǒng)。與傳統(tǒng)的水下機器人使用多個固定推進器來實現(xiàn)多自由度(DOF)推進相比,矢量推進器具有多自由度、寄生推力小,以及效率高等優(yōu)勢。
在設(shè)計包含多個矢量推進器的水下機器人時,為了實現(xiàn)機器人在水下三維空間中對運動軌跡的精準跟蹤,如何設(shè)計多推進器的推力布局、運動控制和控制分配等算法,顯得十分重要且極具挑戰(zhàn)!
面對這些挑戰(zhàn),來自西南石油大學三位研究生黃宇杰、劉里宵和張又文所組成的 MTGA 團隊,在王宇副教授的指導下,利用 MATLAB 設(shè)計、仿真和實現(xiàn)的水下機器人(如上動畫)。他們的作品在 2022 年獲得第十七屆中國研究生電子設(shè)計競賽 MathWorks 企業(yè)專項獎的第一名以及全國二等獎。
讓我們來進一步看看這個作品的設(shè)計和實現(xiàn)細節(jié)!
算法設(shè)計
針對所采用的磁耦合矢量推進器,團隊設(shè)計了一種基于遺傳算法的推力布局算法(如下圖)。這個算法在矢量推進器的復雜非線性約束下,優(yōu)化三個矢量推進器的安裝位置和角度,實現(xiàn)了最大的六自由度解耦廣義推力。
利用這個推力布局算法確定三個推進器的安裝位置和角度后,團隊接下來需要考慮的是如何實現(xiàn)這個水下機器人多個自由度的運動和矢量推進,為此他們需要設(shè)計運動控制系統(tǒng)對三個電機和六個舵機的進行協(xié)同控制。
為了達到穩(wěn)定的運動控制,團隊將水下機器人多自由度運動解耦到水平面和垂直深度上分別進行:在垂直深度上,采用PID控制算法;在水平面上采用的是基于Lyapunov函數(shù)的反步法,并采用RBF神經(jīng)網(wǎng)絡(luò)對執(zhí)行器輸出飽和進行補償。最后利用推進器推力分配模型對每個推進器的電機和舵機進行單獨控制,輸出所需要的推力。
這其中一個關(guān)鍵步驟是如何得到推進器推力分配模型,也就是由六自由度期望廣義推力得到協(xié)同控制三個電機和六個舵機的九個控制量。為此,團隊定義了一個如下的凸優(yōu)化問題,其目標是在之前確定的最優(yōu)推進器布局下,考慮可重構(gòu)磁耦合推進器的最大重構(gòu)角和最大推力限制,最小化誤差和能量消耗的總和。
團隊使用傳統(tǒng)的拉格朗日方法來求解這個帶有非線性約束條件的凸優(yōu)化問題,實時得到最優(yōu)的控制分配方案。他們在MATLAB中進行算法參數(shù)調(diào)整和實時性優(yōu)化,保證算法能在可控的迭代次數(shù)內(nèi)實現(xiàn)較好的收斂情況。
系統(tǒng)仿真
MTGA 團隊在 MATLAB 中實現(xiàn)了推力布局、運動控制和控制分配等算法后,并建立了 Simulink 模型進行仿真。這使得他們可以在不利用原型進行實驗的情況下調(diào)試、測試和驗證所設(shè)計的算法,從而節(jié)省時間和成本。
他們所構(gòu)建的 Simulink 模型包括三個主要模塊:控制器、控制分配和基于機器人動力學的被控對象。
每個模塊都是使用 Simulink 庫提供的模型和少量手寫的 MATLAB 函數(shù)來構(gòu)建的。例如,下圖展示了他們在 Simulink 中建立的水下機器人的動力學模型。
他們利用 Simulink 仿真得到的水平面下軌跡跟蹤結(jié)果,您可以看到通過反步法控制得到的運動軌跡基本與參考軌跡重合。
原型開發(fā)
團隊不僅構(gòu)建了 Simulink 仿真系統(tǒng),還采用如下模塊化和基于總線的設(shè)計開發(fā)了水下機器人原型。他們使用了 Holybro Pixhawk 4(PX4)作為通信和控制計算平臺,該平臺是基于 Pixhawk FMUv5 項目的開源硬件。PX4 是一個廣泛用于開發(fā)自主系統(tǒng)的開源平臺,特別是用于開發(fā)無人機。它最初由 Lorenz Meier 于 2011 年開發(fā),并已發(fā)展成為一個龐大的開源社區(qū)。
團隊并沒有再從頭手寫控制分配算法的 C 代碼,而是使用 MATLAB Coder 將 MATLAB 下編寫控制分配算法自動轉(zhuǎn)換為 C 代碼,然后對代碼進行少量修改后將其部署到 PX4 控制器上。這種使用 MATLAB Coder 進行自動代碼生成的開發(fā)方式節(jié)省了他們的開發(fā)時間并提高了效率。
水下實驗
最后,團隊利用所開發(fā)的原型進行了一些水下實驗來檢測算法性能。下圖展示了水下機器人原型在泳池中自主跟蹤所設(shè)定參考軌跡的實驗結(jié)果。
小結(jié)
MTGA 團隊利用 MATLAB 設(shè)計、仿真和實現(xiàn)了水下機器人。他們結(jié)合磁耦合推進器的矢量輸出特性,創(chuàng)新性的采用遺傳算法為水下機器人布局推進器提供了新思路。在此基礎(chǔ)上,通過建立高效的推力分配模型,實現(xiàn)了上層運動控制與底層推進器控制的模塊化分離設(shè)計。
創(chuàng)新性的設(shè)計和富有成果的工作使得 MTGA 團隊不僅贏得了第十七屆研究生電子設(shè)計競賽的獎項,還同時向我們展示了當代中國研究生的風采!
對于未來的工作,同學們可以試著了解 UAV Toolbox Support Package for PX4 Autopilots。
下載并安裝這個支持包后,大家可以直接從 MATLAB 和 Simulink 訪問 PX4 的外設(shè),非常方便!此外,借助 Embedded Coder,可以自動將代碼或者模型生成 C/C++ 代碼,并使用 PX4 工具鏈構(gòu)建和部署專門針對 Pixhawk 以及 Pixracer 飛行管理單元的算法。這將有助于同學們運用業(yè)界廣泛使用的基于模型的設(shè)計的開發(fā)流程,來實現(xiàn)更高效的系統(tǒng)設(shè)計和軟件部署。
再次祝賀該團隊成員以及他們的指導老師!也希望同學們的參賽經(jīng)驗和 MATLAB 技能可以幫助到大家之后的就業(yè)或深造!
后浪
時間荏苒,2023 年第十八屆中國研究生電子設(shè)計大賽也剛剛落下帷幕,讓我們看看今年哪些隊伍獲得了 MathWorks 企業(yè)專項獎,并期待來自這些優(yōu)秀團隊的經(jīng)驗/技術(shù)分享!
MathWorks 企業(yè)專項獎
隊伍名 | 學校 | 作品名 |
一等獎 | ||
超高效率喵 | 西安交通大學 | 面向未來配電網(wǎng)的模塊化電力電子變壓器設(shè)計 |
二等獎 | ||
原芯光電 | 華中科技大學 | 面向?400G?長距相干通信的國產(chǎn)集成調(diào)諧光模塊 |
信心滿滿 | 南京信息工程大學 | 基于?5G?外輻射源雷達的低空目標探測系統(tǒng) |
三等獎 | ||
怎么才三陳 | 浙江理工大學 | 基于毫米波雷達的人體動作實時識別裝置 |
勇往“直”前 | 江西理工大學 | 直線感應電機全局優(yōu)化及測控平臺設(shè)計 |
還在等什么,點擊“閱讀原文”,立即下載安裝?UAV Toolbox Support Package 支持包開始吧!??
審核編輯:湯梓紅
評論