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