近幾年很多研究機構和公司開始進行船舶無人化研究,這種應用未來會有廣闊的前景,比如海上救助打撈、海底設備檢修、海洋考察等,無人潛水艇能有效減少人員費用的支出并提高航行的安全性。
作為新興的先進海洋裝備,無人潛水艇需要攻克動力、導航、通訊和船體控制等技術難題。一方面需要成熟的路徑規劃算法,靈巧的操作和避障能力,可以按照既定的路線自主航行躲避障礙,另一方面需要遠距離水下數據采集和通訊
能力,確保作業任務的質量。在這一領域,借助 MATLAB 和 Simulink 強大的物理建模和仿真能力,可以為您的船舶設計,系統設計和人工智能開發大幅提高效率。
在本文中,我們將描述如何在 Simulink 里對一個假想的六推進器無人艇進行動力學建模,海底環境建模,以及對一個未知位置的海底黑匣子搜索任務的算法開發。我們假想的無人艇裝配了 6 個推進器和 7 個傳感器:
1)一左一右兩個主螺旋槳,高效率地提供向前的推動力以及橫向轉向。
2)兩個上下方向的小推進器,輔助無人艇的上浮,下潛和縱向轉向。
3)左右貫通的兩個側向推進器,輔助無人艇橫向轉向以及側向平移。
4)慣性傳感器(IMU),輔助測速定位5)朝向向下的多波束聲吶(Multibeam sonar),負責海底測繪,輔助定位
6)朝向向前、向左和向右的三個普通聲納,負責障礙物規避
7)多普勒流速儀(Doppler Velocity Logger),負責測速
8)水下麥克風一枚,負責監聽來自于目標黑匣子的 ping 聲波信號下面讓我們一起來試試在 Simulink 里建模和仿真這個無人艇任務吧。
潛水艇的動力學模型
要實現無人艇的靈巧控制,首先需要建立動力學模型,這是設計的基礎。MATLAB 提供了多種動力學仿真手段和常用的運算工具,可以自己推導動力學方程,然后使用基礎的 Simulink 模塊搭建成系統控制框圖(control block diagram)。或者更便捷的方式是將 CAD 模型直接導入到 Simulink 后加工成自由體受力圖(free body diagram),這樣可以大大提高動力學建模的效率。
這里我們簡單介紹下怎么把 CAD 模型變成 Simulink 里的自由體受力圖。通過常規的 CAD 軟件,如 Solidworks,Autodesk Inventor 和 Pro/E,用戶可以畫出完整的機械裝配,并且定義所有的質量、慣性、3D 幾何和裝配關系等物理參數。
然后通過 MATLAB 提供的針對特定 CAD 軟件的插件 Simscape Multibody Link(https://www.mathworks.com/help/physmod/smlink/ug/installing-and-linking-simmechanics-link-software.html),用戶可以從 CAD 軟件中把完整的模型,包括所有物理參數自動導入到 Simulink 中。
在 CAD 轉換完成并生成相應的 .xml文件后,可以使用 smimport() 函數自動創建 Simscape Multibody 模型,這樣船體的力學模型就搭建完成了。有了這個力學模型,用戶可以做好些仿真測試。譬如,
1)用戶讓某些部件動起來,比如螺旋槳,同時觀察在螺旋槳旋轉時產生的慣性對無人艇穩定性的影響。
2)用戶也可以連接一個控制算法模塊,來仿真無人艇的操作靈巧性,比如最小轉彎半徑。
3)用戶還可以連接一個外力模塊,來仿真無人艇在海浪里保持穩定所必需的動力要求。
接下來我們具體看看怎么讓潛水艇在螺旋槳的推動下動起來。用戶可以使用 simscape 里的 Joint 模塊來定義螺旋槳的動力軸。Joint 模塊連接兩個剛體并施加主要的運動學約束,以確定這些物體如何相對彼此移動。
該模塊是根據提供的自由度來參數化的,所有關節都提供了執行(力或力矩或運動軌跡)和感知相應自由度的方法。用在螺旋槳上時,用戶可以定義旋轉方向,旋轉速度或者功率。External Force and Torque 模塊可用于對連接的剛體施加力或力矩。這些力可以是有自定義方程式的外力,或者是一個電機馬達模型的輸出力。
完成了這樣一個基礎的無人艇力學模型后,用戶已經可以做些設計優化了。譬如優化無人艇的在水平方向上的恢復力矩(self correcting moment),保證船體穩定。要實現這個目標,我們一般要浮心在重心的正上方。
而一般情況下,在設計過程中,無人艇內部零件是需要經常調整以確保這個重心和浮心的位置關系。在Simulink里,實現這一點很方便。Inertia Sensor 模塊提供了測量慣性屬性的方法,包括質量、重心和慣性張量。
在已有的力學模型里,Inertia Sensor 模塊能自動測得無人艇整體重心和浮心的位置。把內部部分零件的 XYZ 坐標值作為優化變量, 重心和浮心的 XY 坐標值相等作為優化目標,使用 Response Optimization App 這款插件進行優化計算,可以很方便地調整重心位置, 得到能實現船體穩定性的最優內部零件排列。
添加環境模型
2.1 靜水力—重力和浮力效應為了保持穩定的平衡,水下的潛艇的重心必須位于浮力中心的正下方,這會產生一個恢復力矩,抵消任何外部力量或干擾圍繞本體滾動或俯仰軸產生的旋轉,并將幫助潛艇回到水平方向。
2.2 水動力---附加質量的慣性力及科里奧利力,重力和浮力的恢復力,水阻尼等水下無人艇動力學的基本方程為:
其中
是體坐標速度矢量,
是地固坐標系的位置和姿態矢量,
是剛體質量矩陣和科里奧利效應,
是附加質量的慣性矩陣,
是科里奧利力和向心力矩陣,
是水阻尼矩陣,
是恢復力/力矩,表示重力和浮力的共同作用。Simscape Multibody 負責實現剛體動力學,考慮重力影響。Simscape Multibody 同時也有坐標軸轉換模塊,自動、實時、準確地完成體坐標系和地固坐標系的轉換。其他所有效應都需要作為外力和力矩由用戶自定義的方程式來施加。阻力和升力是由于流體在潛水艇表面周圍流動而產生的壓力和摩擦力的結果。
升力垂直于流動方向,阻力平行且與流動方向相反。這兩種力都是速度平方的函數,并且高度依賴于潛水艇的形狀、雷諾數定義的流動中層流和湍流狀態之間的過渡、表面摩擦、到海洋底部的距離以及許多其他復雜因素。
在 Simulink 中,用戶可以簡單地定義一個固定的阻力和浮力系數,也可以做得更精準些。譬如,導入一個阻力和浮力系數和雷諾數對應的數據庫,然后以查找表(look up table)的形式,在 Simulink 仿真的過程中動態改變阻力和浮力系數,達到精度更高的仿真效果。
附加質量是由周圍流體的慣性特性產生的壓力作用于潛艇的力和力矩,當潛艇加速或減速時必須帶動周圍一定質量的流體一同運動,這種效應對于水中運動的物體是很重要的,它的作用可認為是對潛艇實際質量的明顯增加。
計算附加質量矩陣系數是一個復雜的問題,需要使用 CFD 方法解決并通過實驗驗證。有幾種簡化的方法可以為一般形狀(球體、圓柱體、平板等)的潛艇提供適當的一階近似。
例子中,潛艇是典型的細長 myring 形狀,假設圍繞x軸旋轉對稱,應用細長理論和 Lamb’s k-factors 的組合來估計扁長球體的附加質量矩陣的系數,將其簡化為:
對應水下潛艇,這些系數常被視為常數,并假設自上而下和左右舷對稱,可以得出:
和
編輯:jq
-
仿真
+關注
關注
51文章
4231瀏覽量
135273
原文標題:無人潛水艇的設計與仿真(上)
文章出處:【微信號:MATLAB,微信公眾號:MATLAB】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
《聊一聊ZXDoc》之CAN總線仿真、面板仿真


《手把手教你做星閃無人機—KaihongOS星閃無人機開發實戰》系列課程課件匯總
康謀應用 | 基于多傳感器融合的海洋數據采集系統

鐳神智能與上海交通大學等聯合項目榮獲中國航海學會科技進步一等獎

DIY了一臺無人機,用全志T113芯片
無人艇勇闖米爾頓颶風中心 這樣的技術我們也有!

無人機飛行仿真模擬訓練系統
無人叉車的在線仿真功能你覺得有必要嗎?不了解這點勸你不要用?

無人機通過什么傳輸信號
無人機信號傳輸技術的原理及分類
無人機干擾器對網絡的影響
開源項目!用ESP8266 DIY會爬墻的無人機
Saab UK 為深海勘探實現創新,降低潛水員及環境風險

評論