史曉虎,文小玲
(武漢工程大學(xué) 電氣信息學(xué)院,武漢 430205)
21 世紀(jì)是海洋的世紀(jì),仿生機(jī)器魚融合魚類推進(jìn)機(jī)理和機(jī)器人技術(shù),不僅具備移動靈活、速度快和適應(yīng)復(fù)雜環(huán)境下工作等優(yōu)勢,而且還可以有效減少對環(huán)境的影響,因此在海洋領(lǐng)域中具有巨大的應(yīng)用前景和潛在價值。
仿生機(jī)器魚具有獨(dú)特的機(jī)械結(jié)構(gòu)和推進(jìn)模式[1],其運(yùn)動控制是整個機(jī)器魚的核心。 目前仿生機(jī)器魚常用的運(yùn)動控制方法主要有擬合魚體波法、正弦控制器法和基于中樞模式發(fā)生器(CPG)的控制方法[2]。文獻(xiàn)[3]總結(jié)了擬合魚體波法、正弦控制器法和基于中樞模式發(fā)生器模型的控制方法的基本原理和優(yōu)缺點(diǎn)。 文獻(xiàn)[4]對采用擬合魚體波控制的機(jī)器魚的運(yùn)動學(xué)模型進(jìn)行了優(yōu)化,有效抑制了機(jī)器魚頭部的擺動。 文獻(xiàn)[5]從柔性機(jī)器魚的動力學(xué)模型出發(fā),初步探索了魚體動力學(xué)參數(shù)與其游動性能之間的關(guān)系。文獻(xiàn)[6]基于機(jī)器魚的動力學(xué)模型構(gòu)建CPG 網(wǎng)絡(luò),根據(jù)不同模態(tài)的原理設(shè)置控制參數(shù),使CPG 網(wǎng)絡(luò)輸出不同的信號,實現(xiàn)機(jī)器魚的各種運(yùn)動。
在機(jī)器魚的運(yùn)動控制中,頻率、幅值等控制參數(shù)的改變都會影響控制信號的輸出,進(jìn)而影響機(jī)器魚的游動速度、平穩(wěn)性等性能。 控制參數(shù)的整定對機(jī)器魚的性能至關(guān)重要,卻很少有人對控制參數(shù)的選擇進(jìn)行討論。 本文為了合理選擇頻率、幅值等控制參數(shù)、使機(jī)器魚的性能更佳,首先對采用正弦振蕩器控制的仿生機(jī)器魚進(jìn)行了運(yùn)動學(xué)建模和水動力學(xué)分析, 然后利用PSO 算法進(jìn)行控制參數(shù)的優(yōu)化,最后對機(jī)器魚的運(yùn)動學(xué)模型及控制參數(shù)優(yōu)化方法進(jìn)行仿真驗證。
本文基于BCF 推進(jìn)模式,設(shè)計了一種采用三關(guān)節(jié)尾鰭推進(jìn)的仿生機(jī)器魚,利用3 個舵機(jī)來控制尾鰭的擺動,從而實現(xiàn)機(jī)器魚的游動,3 個舵機(jī)的擺動采用正弦控制器來控制,其機(jī)械結(jié)構(gòu)如圖1 所示。
圖1 機(jī)器魚結(jié)構(gòu)示意圖Fig.1 Schematic diagram of the structure of the robotic fish
正弦控制器法是一種基于運(yùn)動學(xué)的控制方法。大多數(shù)魚類的身體或鰭的推進(jìn)波形接近正弦運(yùn)動,該方法將仿生機(jī)器魚中每個關(guān)節(jié)看作一個正弦控制器,通過改變正弦控制器的頻率、幅值以及彼此之間的相位差便可產(chǎn)生不同的游動模態(tài)。 控制方程可以表述為
式中:φi(t)為每個關(guān)節(jié)在t 時刻的擺動角度;A 為每個關(guān)節(jié)的最大擺動幅值;ω 為頻率;Ψ 為角偏移量;φ0為相鄰關(guān)節(jié)間的相位滯后角。
仿生機(jī)器魚在游動的過程中,尾鰭擺動頻率、幅值的變化影響著魚類的游動性能。 本文采用正弦控制器控制機(jī)器魚尾鰭的擺動,因此尾部關(guān)節(jié)的擺動規(guī)律為
仿生機(jī)器魚依靠尾鰭擺動進(jìn)行游動,推力由尾鰭擺動伴隨產(chǎn)生的流體推力和尾渦提供。 由于尾鰭擺動時, 尾鰭沿展向的不同位置具有不同的線速度,因此采用“微元積分”的方法對尾鰭在擺動過程中的受力情況進(jìn)行分析。 如圖2 所示,仿生機(jī)器魚尾鰭分四步完成一個擺動周期。
圖2 尾鰭擺動示意圖Fig.2 Schematic diagram of tail fin swing
以尾鰭擺動第一步為例,分析擺動過程中的受力情況。 任取尾鰭上一微元G,其受力情況如圖3所示。 圖中,v0為水流相對于機(jī)器魚沿X 方向的速度,v 為尾鰭相對來流的速度,r 為微元G 到轉(zhuǎn)動軸的距離。 微元G 沿尾鰭的法向速度vn和切向速度vt分別為
圖3 尾鰭擺動示意圖Fig.3 Force analysis diagram of caudal fin
尾鰭上微元G 受到周圍流體沿尾鰭的法向的推力dFn和沿切向的推力dFt分別為
式中:ρ 為流體密度;Cn為法向升力系數(shù);Ct為切向阻力系數(shù);dA 為微元G 的面積。
通過力的分解與合成,尾鰭上微元G 受到周圍流體的推力可等效為沿X 方向的推力dFx和沿Y方向的推力dFy。 進(jìn)一步對尾鰭沿展向積分(R 為展長), 得到尾鰭所受周圍流體沿X 方向的推力Fx和沿Y 方向的推力Fy分別為
任何處于流體中的物體運(yùn)動都會形成一連串尾隨其后的渦流,即卡門渦街。 卡門渦街為機(jī)器魚的游動提供了前進(jìn)的推力。 卡門渦街對機(jī)器魚的推力FSt為
式中:ω 為尾鰭的擺動頻率;A 為尾鰭擺動的幅值;v為機(jī)器魚的游動速度;k 為卡門渦街力系數(shù)。
機(jī)器魚所受阻力主要由魚身提供,與流體密度、流體作用與魚身的有效面積以及機(jī)器魚的速度有關(guān)。
式中:FD為機(jī)器魚受到的阻力;ρ 為流體密度;vx為機(jī)器魚在X 方向的游動速度;CD為阻力系數(shù);S 為機(jī)器魚在流體中的有效作用面積。
設(shè)機(jī)器魚質(zhì)量為m,則根據(jù)上式可得機(jī)器魚在X 方向的動力學(xué)方程為
為驗證所建運(yùn)動學(xué)模型的有效性,對仿生機(jī)器魚的直線游動及其性能進(jìn)行了仿真分析。
機(jī)器魚在直游時,主要考慮游動速度和平穩(wěn)性這2 個性能指標(biāo)。 本文中,用X 方向的平均速度表示游動速度,用Y 方向受到的最大偏轉(zhuǎn)力表示機(jī)器魚的平穩(wěn)性,機(jī)器魚所受偏轉(zhuǎn)力越大、平穩(wěn)性越差。
設(shè)直游狀態(tài)下第一、二、三關(guān)節(jié)的擺動幅值比為1∶1.2∶1.44,擺動頻率相同。 圖4 為此模型直游狀態(tài)下相同運(yùn)動時間內(nèi)平均速度和最大偏轉(zhuǎn)力與尾部第一關(guān)節(jié)擺動幅值和頻率的關(guān)系。
圖4 直游性能與控制參數(shù)的關(guān)系Fig.4 Relationship between swimming performance and control parameters
由圖4 可看出,當(dāng)尾鰭擺動幅值相同時,擺動頻率越大,機(jī)器魚游動速度越大,其所受偏轉(zhuǎn)力也越大,平穩(wěn)性越差;當(dāng)尾鰭擺動頻率相同時,所受偏轉(zhuǎn)力隨著擺動幅值的增加逐漸增加,平穩(wěn)性逐漸變差, 而速度與幅值的關(guān)系因頻率的不同有所差異;當(dāng)擺動頻率較小時,超過一定擺幅,機(jī)器魚游動速度隨著擺動幅值的增加而減??; 當(dāng)擺動頻率較大時,擺動幅值越大,機(jī)器魚游動速度越大。
速度和平穩(wěn)性是衡量仿生機(jī)器魚運(yùn)動狀態(tài)是否最優(yōu)的2 個非常重要的性能指標(biāo),并且兩者會相互制約。 因此,將二者融合得到機(jī)器魚直游控制參數(shù)的優(yōu)化函數(shù)為
式中:k1,k2表示在優(yōu)化函數(shù)中平均速度和所受偏轉(zhuǎn)力FY的權(quán)重系數(shù), 通過調(diào)節(jié)它們的大小關(guān)系,可以選擇出最優(yōu)控制參數(shù),并且它們兩者間的正負(fù)關(guān)系應(yīng)取相反,表示兩者間的相互制約關(guān)系。
PSO(粒子群算法)是源自于鳥群捕食行為的一種優(yōu)化算法,其基本思想是通過群體中個體之間的協(xié)作和信息共享來尋找最優(yōu)解, 具有收斂速度快、效率高等優(yōu)點(diǎn),因此被廣泛應(yīng)用到各種領(lǐng)域。
PSO 算法在n 維空間內(nèi)進(jìn)行迭代尋優(yōu),每個粒子根據(jù)當(dāng)前所處的最優(yōu)位置和全局最優(yōu)位置來迭代更新自己的位置,每個粒子都有自己的位置向量和速度向量,以及由一個目標(biāo)函數(shù)所決定的適應(yīng)度值。
在每一次的迭代中,粒子都要按以下迭代算法更新自己的位置:
式中:f 為目標(biāo)函數(shù),通過比較不同位置的適應(yīng)度值,更新最優(yōu)位置。
PSO 參數(shù)優(yōu)化算法的流程可分為以下5 步,如圖5 所示。
圖5 PSO 優(yōu)化算法流程Fig.5 Flow chart of PSO optimization algorithm
步驟1:初始化粒子群參數(shù),設(shè)置粒子個數(shù)M、最大迭代次數(shù)N、位置界限和速度界限。
步驟2:隨機(jī)初始化粒子位置以及它們各自的速度。
步驟3:計算每個粒子的適應(yīng)度值,并更新每個粒子的個體最優(yōu)位置以及全局最優(yōu)位置。
步驟4:更新粒子速度及位置,并轉(zhuǎn)到步驟3。
步驟5:判斷是否達(dá)到最大迭代次數(shù),或者達(dá)到最優(yōu)解,若達(dá)到,輸出最優(yōu)解,否則轉(zhuǎn)到步驟4。
在本文的PSO 優(yōu)化算法中,直線游動狀態(tài)下的粒子的位置表示為第一關(guān)節(jié)的擺動頻率ω 和幅值A(chǔ)。
為了驗證PSO 控制參數(shù)優(yōu)化算法的有效性,基于上述運(yùn)動學(xué)模型,首先隨機(jī)選取機(jī)器魚直游的兩組控制參數(shù), 然后利用PSO 算法求得了一組兼顧速度和平穩(wěn)性的最優(yōu)控制參數(shù),最后對三組控制參數(shù)下機(jī)器魚的性能進(jìn)行了仿真分析。 三組控制參數(shù)的取值如表1 所示,機(jī)器魚游動性能仿真結(jié)果如圖6 所示。
圖6 直游性能與控制參數(shù)的關(guān)系Fig.6 Comparison diagram of swimming performance
表1 機(jī)器魚直游狀態(tài)下的控制參數(shù)Tab.1 Control parameters of the robotic fish in the state of direct swimming
從仿真結(jié)果可以看出,對應(yīng)隨機(jī)控制參數(shù)1,2及PSO 優(yōu)化控制參數(shù),機(jī)器魚的平均速度分別為0.176 m/s、0.187 m/s、0.185 m/s,最大偏轉(zhuǎn)力分別為51.3 N、132.1 N、92.0 N。 仿真結(jié)果表明,采用PSO 算法進(jìn)行控制參數(shù)的優(yōu)化后,機(jī)器魚既擁有較快的游動速度又具備更好的平穩(wěn)性。
為了準(zhǔn)確控制機(jī)器魚獲得最佳游動性能,本文首先結(jié)合正弦控制器的驅(qū)動原理建立了機(jī)器魚的運(yùn)動學(xué)模型,并分析了其控制參數(shù)(頻率和幅值)與機(jī)器魚直線游動性能間的關(guān)系;然后,利用PSO 算法對運(yùn)動學(xué)模型中的控制參數(shù)進(jìn)行了優(yōu)化; 最后,對機(jī)器魚的直線游動進(jìn)行了實驗研究,實驗結(jié)果表明所建立的運(yùn)動學(xué)模型符合魚類的生物學(xué)特征,并且采用PSO 算法對控制參數(shù)進(jìn)行優(yōu)化后,可使機(jī)器魚的直游性能達(dá)到更佳。