高佩川 楊秋鋒
(南京工程學院 江蘇南京 211112)
乒乓球作為一種打法多樣且易于普及的運動,受到了我國人民高度熱愛。在競技體育中,乒乓球運動更是占有十分重要的地位。隨著乒乓球運動員能力的不斷提高,乒乓球運動器械功能的提高也成為一個急需解決的問題。
乒乓球機器人一直是一個研究熱點,雖然很早就有學者提出了乒乓球機器人的原型[1-2],并且近年來也不斷有學者在做乒乓球機器人的設(shè)計[3-4],但由于各種各樣的技術(shù)上的難題,乒乓球機器人還遠沒有達到實戰(zhàn)的能力。
由于在比賽中乒乓球的飛行速度很快,乒乓球機器人需要提前到位,才能進行下一步的接球動作。為了能夠提前到位,乒乓球機器人就需要在對手擊出乒乓球后的一瞬間,準確預(yù)測乒乓球的運動。
為了能夠完成這樣的任務(wù),一種思路是從實時跟蹤預(yù)測的角度進行研究[5-6],有學者取得了一定的成果;另一種思路是從求解初值問題的角度進行研究,也就是在知道乒乓球的初始條件下,利用一定的模型求得乒乓球的運動。
針對乒乓球飛行運動模型建立的這一問題,已有許多學者做出了一定的研究。有學者基于已經(jīng)開發(fā)的工業(yè)軟件預(yù)測了乒乓球的飛行運動,也有學者利用物理模型和數(shù)學方法單獨建立了乒乓球的飛行模型,還有學者利用物理模型和數(shù)學方法單獨建立了乒乓球的碰撞模型。暫時還缺少一種基于物理模型和數(shù)學方法的融合乒乓球飛行和碰撞的預(yù)測方法。
首先,該文考慮了馬格努斯力,利用牛頓第二定律建立了乒乓球飛行模型,并且利用沖量定理和沖量矩定理建立了乒乓球碰撞模型。其次,利用數(shù)值方法進行matlab 編程求解,最終得到仿真結(jié)果。該方法可以為乒乓球機器人的設(shè)計提供參考,同時也可以為乒乓球運動員的接球策略提供參考。
乒乓球在空中的飛行過程中,有不同的運動方式。復(fù)雜的運動方式可以由基本的運動方式疊加而成。最基本的飛行運動方式有六種,分別為左旋、側(cè)旋、上旋、下旋和順旋以及逆旋[7](見圖1)。
在乒乓球飛行過程中,由于乒乓球的變形基本為零,可以把乒乓球簡化成一個球狀剛體模型。在運動過程中,該剛體除了有隨質(zhì)心的平移運動,還有繞質(zhì)心的旋轉(zhuǎn)運動,因此形成了一個空間中的速度分布。由于速度分布不均勻,根據(jù)流體力學的伯努利方程可知,每點受到空氣的壓強也不一樣。不均勻的壓強分布使得運動中的乒乓球受到大氣對它的一種特有的力的作用,也就是馬格努斯力。而這樣一種空氣對在空中運動的類似剛性球體的力的作用效應(yīng)就稱為馬格努斯效應(yīng)[8](見圖2)。
1.2.1 乒乓球飛行模型
乒乓球飛行的過程中主要受到重力、空氣阻力以及馬格努斯力的作用。重力的大小與乒乓球的質(zhì)量和當?shù)氐闹亓铀俣扔嘘P(guān),其方向是豎直向下??諝庾枇Φ拇笮『涂諝怵禂?shù)與速度成正比,其方向與速度方向相反。馬格努斯力的大小與質(zhì)心速度和繞質(zhì)心角速度有關(guān),其方向是垂直于速度矢量和角速度矢量形成的平面。圖3為乒乓球在運動當中的運動分析和受力分析圖[9]。
根據(jù)牛頓第二定律,可以得到乒乓球運動方程的矢量形式:ma=mg+Fd+Fm。其中,m是乒乓球的質(zhì)量,a是乒乓球的加速度矢量,g是當?shù)刂亓铀俣?,是Fd為空氣阻力,F(xiàn)m是馬格努斯力。又有:
其中,S是乒乓球的面積,ν是乒乓球的運動速度,ω是乒乓球的角速度,ρ是空氣的密度,Cd和Cm分別是空氣阻力系數(shù)和馬格努斯力系數(shù)。θ1和φ1代表了矢量v的方向,θ2和φ2代表了矢量ω的方向。
把矢量形式的乒乓球運動方程轉(zhuǎn)換成矩陣形式的運動方程,具體如下:
1.2.2 乒乓球碰撞模型
根據(jù)規(guī)則,必須在乒乓球撞擊桌面反彈之后,運動員才可以擊打乒乓球。為了預(yù)測乒乓球彈起之后的運動軌跡,建立乒乓球與乒乓球桌的碰撞模型非常必要。圖4 展示了乒乓球碰撞過程中,三維碰撞過程的X-Z平面和Y-Z平面的投影[10]。
根據(jù)剛體沖量定理和沖量矩定理可以得到:
在X-Z平面帶入具體數(shù)值并且在二維形式下展開成分量形式,可以得到:
化簡后利用消元法可以解得最終結(jié)果:
其中,當A 點速度大于零時,取正號;當A 點速度小于零時,取負號。
在Y-Z平面帶入具體數(shù)值并且在二維形式下展開成分量形式,經(jīng)過化簡可以得到:
其中,當A 點速度大于零時,取正號;當A 點速度小于零時,取負號。
由于三維乒乓球運動方程較為復(fù)雜,求解其常微分線性方程組使用的方法也較為困難,所以采用由低維度到高維度的處理方法,在求得二維情況下運動方程解的情況之后,再考慮三維乒乓球運動方程的求解。同時,在低維情況下求得乒乓球運動方程解的情況更加簡潔明了,易于獲得乒乓球飛行運動物理上直覺化的理解。
在二維情況下,乒乓球運動如圖5所示。
三維運動方程可化簡為:
將矩陣形式的乒乓球二維運動方程展開成常微分方程組形式可得:
由于在實際比賽中,下旋球和上旋球會對乒乓球的運動產(chǎn)生不同的影響?,F(xiàn)分別在這兩種情況之下,考慮乒乓球的速度情況和軌跡情況。
二維空間中考慮下旋球的情況,ω0=2π,將上式代入運動方程中后化簡可得:
在得到上述質(zhì)心速度的表達式之后,將速度對時間積分,就可以得到坐標關(guān)于時間t的參數(shù)方程:
其中,初始條件假設(shè)如下:
使用數(shù)值方法和Matlab 編程求解常微分方程組,得到如下乒乓球二維運動速度圖(見圖6)[11]。
首先考慮長度方向的速度vy,在乒乓球碰撞桌面前,它的速度不斷減慢,但減小的速率也在變慢,這是因為受到了馬格努斯力的作用。在乒乓球碰撞桌面中,前后兩點的速度發(fā)生了突變,是因為碰撞帶來的沖量矩的作用。在乒乓球碰撞桌面后,它的速度也不斷減慢,但此時減小的速率越來越快了,這是因為在碰撞之后,乒乓球的角速度發(fā)生了改變,馬格努斯力的方向產(chǎn)生了變化,因此乒乓球運動速度的斜率發(fā)生了改變。
其次考慮高度方向的速度,在乒乓球碰撞桌面前,它的速度不斷減慢,同時由正值下降到負值,這也就意味著乒乓球從上升運動轉(zhuǎn)變到了下降運動。在乒乓球碰撞桌面中,前后兩點的速度也發(fā)生了突變,這是由于沖量的作用,并且乒乓球的速度由負值突變成了正值,這樣就意味著乒乓球從下落經(jīng)碰撞之后彈起,但碰撞后一點的速度的絕對值小于碰撞前一點的絕對值,這是因為碰撞產(chǎn)生了能量的損失。在乒乓球碰撞桌面后,重力成為主導的作用力,從而乒乓球高度方向的速度不斷減小。
在將乒乓球兩個方向的速度對時間積分之后,可以得到如下二維乒乓球運動軌跡(見圖7)。
由圖7 分析可知,乒乓球經(jīng)歷了兩次飛行運動和一次碰撞運動。在第一次飛行運動中,由下旋運動帶來的斜向上的馬格努斯力使得乒乓球有更大的弧線,這也就解釋了乒乓球運動員在擊打近網(wǎng)且弧度較低的球時經(jīng)常使用削球的原因。在碰撞之后,由于能量的損失,明顯可以注意到乒乓球的最大高度沒有碰撞前高,同時由乒乓球的疏密可以看出碰撞之后的速度明顯小于碰撞之前的速度。
接下來考慮在二維空間中考慮上旋球的情況,假設(shè)角速度ω0=-2π,將角速度帶入二維乒乓球運動方程后化簡得到:
在得到上述質(zhì)心速度的表達式之后,將速度對時間積分,就可以得到坐標關(guān)于時間t的參數(shù)方程:
其中,初始條件假設(shè)如下:
使用數(shù)值方法和Matlab 編程求解常微分方程組,得到如下乒乓球二維運動速度(見圖8)。
相對于一般的拋體運動而言,乒乓球、網(wǎng)球等球類的飛行運動除了重力、空氣阻力和浮力還會產(chǎn)生一種馬格努斯力。而影響馬格努斯力的因素主要是乒乓球質(zhì)心速度和繞質(zhì)心的角速度?,F(xiàn)在采用控制變量法,在其他的物理量相同的情況下,考慮角度想法的兩種情況,分析這兩種情況下運動速度和運動軌跡的差別來考慮馬格努斯效應(yīng)影響方式和影響大小。
由圖9 可知,下旋球的球速明顯高于上旋球的球速,同時可以觀察到下旋球的最大高度和碰撞前長度距離都明顯大于上旋球的最大高度和碰撞前長度距離。從考慮馬格努斯力的角度可以得出原因:下旋球的馬格努斯力斜向上,而上旋球的馬格努斯力斜向下,下旋球能獲得更多的升力,走出更大的弧度,到達更遠的距離。
這樣的一種現(xiàn)象也給控制乒乓球機器人接球算法和策略產(chǎn)生了一定的啟發(fā),如果來球是靠近球網(wǎng)且弧度較低的球,機器人可以使用下旋球也就是削球擊打回去。
如果來球是遠離球網(wǎng)且弧度較高的球,機器人可以使用上旋球也就是拉球擊打回去。這樣的策略使得乒乓球越過球網(wǎng)并且落在臺內(nèi)的可能性大大增大。
在三維空間情況下,由于此時乒乓球運動方程過于復(fù)雜,為了在滿足求解精度的情況下更加方便求得乒乓球運動方程的數(shù)值解,現(xiàn)在做出這樣的化簡:將阻力系數(shù)簡化成常數(shù),將馬格努斯力系數(shù)也簡化成常數(shù)??梢缘玫剑?/p>
將上式帶入三維乒乓球運動方程可得:
將乒乓球的質(zhì)量,當?shù)刂亓铀俣?,空氣密度,空氣密度,空氣黏性系?shù)等參數(shù)帶入上述線性常微分方程組中可以得到:
將已經(jīng)獲得的乒乓球質(zhì)心速度對時間積分得到乒乓球質(zhì)心關(guān)于時間t的參數(shù)方程:
考慮乒乓球上下旋的情況,同時使用Matlab 仿真求解。
其中,數(shù)值條件如下所示:
使用數(shù)值方和matlab 編程求解常微分方程組,得到如下乒乓球三維運動速度(見圖10)。
將已經(jīng)得到的速度曲線對時間積分,便可以得到乒乓球的軌跡線(見圖11)。
分析圖11 可以發(fā)現(xiàn),右側(cè)的旋轉(zhuǎn)可以使乒乓球飛出更大的X-Y平面的弧線,這樣的弧線有利于乒乓球在寬度方向上落在乒乓桌的范圍上,減少失誤的可能性。
為了分析不同大小的角速度ωz對乒乓球飛行軌跡的影響,取ωz分別等于-2π、0和2π。圖12展示了不同角速度ωz的乒乓球軌跡線。
分析圖12可以發(fā)現(xiàn),在角速度ωz由負值到正值的變化過程中,右側(cè)的旋轉(zhuǎn)使乒乓球在X-Y平面弧線的二階導數(shù)從負值到正值變化。正的角速度有利于乒乓球落在寬度范圍內(nèi),負的角速度有利于打出反斜線的弧線,不同的角速度可以使乒乓球的打法更加多樣。
為了觀察不同角速度在X-Y平面的軌跡產(chǎn)生的影響,取不同角速度ωz,得到三維乒乓球左右旋的俯視軌跡(見圖13),發(fā)現(xiàn)在寬度方向的距離為0 到0.7 左右時,不同的角速度對弧線的影響較小,但在寬度方向的距離大于0.7 之后不同角速度ωz的弧線發(fā)生了極大的差別。這表明不同旋轉(zhuǎn)的球在剛開始運動時不容易被發(fā)現(xiàn)差別,但在某個距離之后弧線發(fā)生了急劇變化,這給運動員擊打不同旋轉(zhuǎn)的乒乓球增加了許多困難。
該文求解的思路是先建立數(shù)學模型,再使用數(shù)值方法和matlab進行求解。這樣的思路必定存在一定的誤差。為了驗證上述模型和數(shù)值方法的可靠性,一般有兩種方法可以選擇:第一種是實驗驗證;第二種是工業(yè)軟件仿真驗證。由于實驗室設(shè)備有限,難以精確測量乒乓球的初矢徑、初速度和初角速度,所以該文選擇第二種方法來驗證模型的正確性。同時,由于這款工業(yè)軟件ODE 已經(jīng)受到許多學者的使用和驗證,它的準確性和可靠性可以受到保障。所以在該小節(jié)中考慮乒乓球上下旋的情況,用同時使用Open Dynamic Engineering仿真軟件求解[5]。其中,數(shù)值條件設(shè)為:
同時引用其他學者已經(jīng)完成的工作,結(jié)果如圖14所示。
通過比較ODE 仿真結(jié)果和matlab 數(shù)值結(jié)果,可以發(fā)現(xiàn)兩種結(jié)果十分相似。這也就間接證明了該文求解思路的正確性。
在考慮重力、空氣阻力和馬格努斯力的情況下,利用空氣動力學和剛體動力學的知識構(gòu)建了乒乓球飛行運動和碰撞運動的物理模型和數(shù)學方程。
利用數(shù)值方法中的常微分方程組解法和數(shù)值積分,仿真了乒乓球在二維和三維情況下的運動。
該研究為深入構(gòu)建乒乓球機器人的接球策略和控制方法提供了一定的參考。同時,也為乒乓球運動員的訓練方法和技術(shù)打法的提高提供了一定的理論依據(jù)。