為什麼魚在流動的水中能保持不動而不會被流水沖走?


魚在水中遊動的機理屬於動物運動學(animal locomotion)的範疇,是仿生學的一個研究分支。

========================= 魚兒水中游 ======================

  • 各種遊動方式

俗話說「沒見過豬跑還沒吃過豬肉嗎」,咱不知道魚怎麼游泳還能不知道人怎麼游泳嗎。簡單來說,遊動就是靠作用力反作用力嘛。以蛙泳為例,手臂划水,腳蹬水,都是向後推水,水流可以施加一個反作用力在人身上,推動人向前游。但這個辦法還是有弊端,等你手划到後面了,總得再返回到前面吧?要不然下一步怎麼辦?向前送手的時候,無論如何縮小水流對手的正面面積,總是免不了會受到向後的反作用力。聰明如人類,自然是不會服輸的,所以發明了如自由泳,蝶泳這樣向前送手的時候把手拿出水面,減少和避免向後作用力的游泳方式。正因如此,自由泳一般都會比蛙泳快一點。人類有靈活的肩部,而且一般在水面遊動,所以有這樣的方法。那動物怎麼辦呢?分別看看在水面游的和在水裡游的。在水面遊動的禽類,一般都進化出了可以收放的腳蹼,向後划水的時候盡量展開,增加對水面積;而收回來時會收起腳蹼,減少對水面積來最小化向後的反作用力(阻力)。照這個思路,在水裡游的似乎應該長出一對大翅膀才對,向後扇水再縮回來豈不是超給力?然而我們都知道,事實上在水裡游的,除了海龜這樣不趕時間可以慢慢游的(海龜君:游著也中槍,怪我咯?)是靠划動(扇動)這樣的方式前進,魚類大多是靠擺動身體來達到向前遊動的目的。為了減小阻力,魚兒們在進化過程中甚至壓根就放棄了上肢(手臂,翅膀)這個技能點,側面的魚鰭非常小,只起到方向調節等輔助作用。

說了這麼多,總算得到了一個地球人都知道的結論,那就是「魚類靠擺動來前游」(廢話……)。那接下來就看看為什麼魚兒擺一擺,就可以在水裡游得那麼歡騰。

  • 推力與反卡門渦街

莫急,一切還要從著名的卡門渦街說起。

眾所周知,卡門渦街是流體遇到障礙物時在障礙物後產生兩道非對稱地排列的旋渦,其中一側的旋渦循時針方向轉動,另一旋渦則反方向旋轉,這兩排旋渦相互交錯排列,各個旋渦和對面兩個旋渦的中間點對齊,如街道兩邊的街燈般,這種現象,因匈牙利裔美國空氣動力學家西奧多·馮·卡門最先從理論上闡明而得名卡門渦街。圖一中即為圓柱障礙物後(下游)的卡門渦街。一方面,卡門渦街會引發障礙物的震動,在橋樑設計,高層建築設計中都必須要考慮到;另一方面卡門渦街會使障礙物後方流體形成一個反向的流動,根據作用力反作用力原理(動量守恆),這會使障礙物受到一個阻力。在空氣中因為氣體密度很小這股流動的作用力不是很顯著,但換成水流這個力就不可小視了。一個直觀的理解就是如果人在水裡把水往懷裡抱,水向自己流,自然就會受到一個與水流方向相反的力。

可是這跟魚有什麼關係?有人一定想說,「我知道了,魚要避免這樣的情況產生,所以都進化出了流線型,不會在身後產生卡門渦街。」對了一半,魚的流線型的確避免了產生阻力的卡門渦街,但是它瞄準了這個力,想要為自己所用。怎麼用呢?我們來幫魚想一想,首先,肯定是想要一個推力,而不是阻力,所以造成的水流的方嚮應該是向後,而不是向前;然後,聯繫之前關於卡門渦街的分析,正常方向的卡門渦街內的漩渦會產生向前的水流,那想要向後的水流是不是把旋轉方向反一下就好了?Bingo!就是這樣。魚兒正是通過不斷擺尾來在身後製造了「反卡門渦街(reverse Karman vortex street)」,使身後的水流向後,對自身施加向前的推力。這就相當於魚兒給自己裝了一個噴射裝置,不斷地向後噴水,以達到將自身向前推進的目的。

其實不光是魚類,很多浮游生物,甚至細菌,細胞(你猜我說的哪種細胞?),(經 @劉佳鑫 提醒在細胞尺度表面力起主導作用,可能無法形成反卡門渦街)都是通過類似的擺動來讓自身前行。這樣產生向後的水流來推進自己前進,比「愚蠢的人類」靠手劃不知道要高明到哪裡去了。

(這張圖上U的方向有一點混亂。簡單說明一下(a)中U指水流方向,圓柱固定。(b)中U指魚前進速度方向。(c)和(d)中橫軸是下游水流速度。(c)中下游水流方向向左,會對圓柱產生向後作用力(阻力)。(d)中下游水流方向向右,對魚產生向左的推力。)

  • 推力與擺尾的關係

去年一個研究組在《自然》雜誌物理子刊上發表了一個適用於小到昆蟲,大到藍鯨的關於擺尾和遊動速度之間關係的關係式。這個研究組收集並整理了超過1000種動物(包括魚,哺乳動物,鳥,爬行動物,兩棲動物和昆蟲)的研究數據,發現了一個普適的關係。並且這個關係式就像愛因斯坦著名的質能方程E=mc^2一樣簡單而美妙。 研究組發現,如果前進速度參數用雷諾數Re表示,擺尾用遊動參數(Swimming number)Sw表示。他們之間的關係就是

Resim Sw^{alpha }

alpha 在層流時等於4/3,在湍流時等於1。更令人吃驚的是這個關係式的推導非常簡單,有一點基礎的流體力學知識就能看懂。在這裡我把文中的推導過程轉述如下,不感興趣可以直接跳過。

首先將三維問題簡化為二維,重力方向不做特殊考慮,在之後的推導中表示為每單位深度(per unit depth)。相當於圓柱擾流問題中不考慮圓柱長度方向(或認為圓柱無限長)。

參數定義如下:

U: 魚前進的速度; L: 魚的特徵長度;delta :水流在魚表面的邊界層厚度;

流體參數:mu (粘度),
ho (密度),upsilon (動粘度)

擺尾參數:A(擺幅),varpi (頻率)

雷諾數的定義是基於魚前進的速度和魚的特徵長度Re=UL/
u

推力(thrust):為了估計擺尾向後推水產生的向前反作用力,我們需要估計被擊退的水的質量和加速度(F_{thrust}=ma )。其質量近似為m=
ho L^{2} 每單位深度(垂直紙面方向),其加速度為a=Aomega ^{2},所以其反作用力為兩者之積F_{thrust}=
ho L^{2}Aomega ^{2}。考慮到擺尾和前進方向角度為A/L,所以延前進方向的推力更新為F_{thrustot}=
ho LA^{2}omega ^{2}

摩擦阻力(skin drag):層流時,水流作用在魚表面的阻力可以近似為mu UL/delta每單位深度,其中邊界層厚度可以用雷諾數估計delta sim LRe^{-1/2}。帶入Re的定義可得摩擦阻力為
ho (
u L)^{1/2}U^{3/2}。阻力等於推力整理可得:

Resim Sw^{4/3}

其中遊動係數Sw=omega AL/
u,可以看做是截面方向的雷諾數。

湍流阻力(pressure drag):在湍流中,阻力的主要組成部分是滯止阻力(pressure drag),可以近似為
ho U^{2}L每單位深度,與推力平衡可以得出

Resim Sw

下圖為研究組整理的數據點。

這個關係式告訴我們:

1)如果同樣大小的魚,擺尾越快,擺幅越大,游得越快;(廢話…擺得越使勁當然游得越快)

2)如果擺尾情況相同(擺尾頻率,擺幅),在層流中魚越大游得越快;在湍流中大魚小魚游得也是一樣快的(不過要讓小魚跟大魚的擺尾幅度一樣也是蠻拼的…)。

雖然以上的分析是針對左右擺動的魚所得出的結論,但這個結論可以推廣到上下擺尾的藍鯨。至於鳥類的數據點是怎麼得出的就不是很清楚了……

  • 關於擺尾方向和身體平面方向

在寫這個短文時,我想到一個問題,在水裡游的魚一般身體平面是和重力方向平行的;而天上飛的鳥一般身體平面是和重力方向垂直的,這是為什麼呢?我覺得這也跟它們不同的運動機理相關。對於魚兒來說,左右擺動才能保證產生對稱的反卡門渦街,達到產生推力的目的。如果變成了上下擺動,那麼兩組渦街在重力的作用下一定會有不一樣的變形,就無法保證向前的推力了。(很多朋友指出海里的哺乳動物如海豚和藍鯨都是上下擺尾的,所以我的猜想不是很能站住腳。不過在最後一張圖上可以看到哺乳動物遊動的雷諾數一般都很大,所以我進一步猜想在雷諾數大的時候重力作用不再明顯,故有上下擺尾。)在『奔跑吧兄弟』孫楊秀泳技的一期可以明顯看到,孫楊剛入水的時候是側著身子像魚一樣左右擺動的,游速之快令人震驚!(有誰能當面問問孫楊為啥要左右擺?)而對於鳥兒而言,一方面它們需要向前的推力,但向上的推力也非常重要,所以需要向下閃動翅膀,同時與重力方向垂直的翅膀也可以利用向上的氣流承托,等等。

( By @外向的孤獨患者 鳥為啥上下扇?魚為啥左右?因為水的浮力可以支撐它不下沉,而空氣不行。至於鯨魚,那是因為它的進化來源,你看有人左右擺的么。鯊魚很大,也是左右擺,在深水,哪個方向擺並沒有影響。而孫楊,可能是因為在很淺的水,上下擺的阻力不一樣,而左右擺會一樣,也可能是他為了展現身姿給觀眾而裝逼,因為據我觀察,比賽里選手潛泳那段都是上下擺的。)

(感謝在本文發出後 @袁霖@劉佳鑫@榆城海盜@王不綠@王銳@沈華麗 提出的內容和行文結構上的意見和建議~~)

PS: 請專業人士不吝賜教,大刀斧正;另外,文中如果有艱深晦澀之處,也請大家多提意見和建議,我會爭取改正,在以後的文章中注意。

PPS:做了一周的調研,完成渣製圖,在知乎公式編輯器裡面打了半天之後發現有點文不對題…按高考作文應該0分算…捨不得刪掉,勉強放在這裡看一看吧,嚶嚶嚶~~~

關於轉載:

歡迎個人分享到朋友圈等私人平台。公眾號和媒體請署名轉載,歡迎打賞 。

參考條目:

1. https://en.wikipedia.org/wiki/K%C3%A1rm%C3%A1n_vortex_street

2. Eloy, Christophe. "Optimal Strouhal number for swimming animals." Journal of Fluids and Structures 30 (2012): 205-218.

3. Gazzola, Mattia, Médéric Argentina, and Lakshminarayanan Mahadevan. "Scaling macroscopic aquatic locomotion." Nature Physics (2014).


樓主太專業了,看得我拍手叫絕,哪敢和流體力學PHD叫板。

早晨 @王洪浩 轉發我的時候,我們探討的是孫揚在『奔跑吧兄弟』里游泳的那段,然後我就被帶溝里了,呵呵。心裡想著這些理論的時候,突然發現都忘了自己是怎麼游泳的啦。

為了更好的回答這個問題,晚上我特意去游泳體會下,又把問題拋給了一個很厲害的群,那個群里全是游泳屆大咖,有前世界冠軍、前奧運會銀牌得主、現任國家游泳隊教練、國家級游泳裁判。牛人們紛紛解說。

現在匯總一下

(1)視頻里,孫揚出發是在水下,不是一個常規的競賽出發姿勢,可專業運動員訓練時,這種蹬邊出發是很平常很平常的姿態。儘管這是一個非競賽動作,但一個專業游泳運動員練習這個動作的機會比競賽出發還要多得多。

而且,如果你每天游15000米,堅持10多年之後,就會不自覺的把這個蹬邊出發的動作與轉身蹬邊的動作融為一體。

所以我們要探討的不是出發技術,而是游泳的轉身技術。

這是我從網上截的孫揚轉身之後的姿態,他需要從仰面轉為面朝下的姿態。最高效的辦法,就是在行進過程中完成兩者的轉換。

(2)競技游泳有4種姿勢,蝶泳、仰泳、蛙泳、自由泳。

非常清楚的是側面轉身技術完全不適合蛙泳、仰泳,因為這兩項泳姿的定義非常嚴格。稍有差遲就犯規取消成績。蝶泳打腿的姿勢很像魚兒,適合側身,但同樣國際泳聯有標準,肩膀角度與水面不得超過90度,萬一側的太多,會被視為在游仰泳,取消成績。然後只有孫楊游得自由泳適合側面打腿。

(3)國家隊教練明確指出,正面打腿才是主流技術,是每一個專業運動員必須掌握的技能。這也是基於對競賽規則的考慮。

(4)比賽中的側面打腿,通常用於游泳轉身蹬邊後,這樣可以更快、更高效地銜接轉身和行進間的動作。 我沒有特別的流體力學依據證明側面打腿快(據說早年間美國游泳隊利用Nasa的流體力學技術,分析過運動員游泳姿態的效率,也許他們有相關資料),但是可以特別確切的告訴你,側面轉身在銜接兩個動作時效率最高。

(5)孫揚有沒有在作秀?孫揚來參加跑男本就是作秀,但是就游泳技能來說,他只是做了一個游泳運動員習慣做的事情,並沒有特別的去怎麼樣(當你游泳能力達到一定程度的時候,真的不需要太怎麼樣,就可以輕鬆去做這些事)。而且我敢說,他連比賽時候一半的力氣都沒有用出來。

補充回答:

有朋友說我沒回答魚兒的部分,我也覺得我跑題了。

其實如果你不去想那些流體力學、高深公式,僅從現象來觀察,答案就簡單多了。因為魚兒在遊動呀,它們與水流是有相對速度的,與岸上的你是想對靜止的。

我也恰好試過在有在水下和魚兒一起遊動的經歷,那天遇到水下大流,結果是我拚命打腿但是不但沒有往前,還往後退,而魚兒歡快地迎著湍流地方向,張開嘴等洋流把食物送到嘴邊上。


表示看不懂Jennyfool的答案。

題主問的是為什麼河裡的水在嘩啦啦的流,

而小魚能在在原地不被沖走啊?

我感覺,簡單來說,

因為魚有魚泡和魚鰭。

魚泡,就是魚鰾啦。魚會調節裡面的空氣,來控制浮力大小,所以可以上上下下沉沉浮浮。

魚鰭,就是魚用來控制平衡的,包括胸鰭背鰭尾鰭還有臀鰭,各種鰭!小魚兒不運動的時候,就是靠各種鰭來保持身體平衡,垂直波動(上下沉浮)。

所以我們只是看到小魚兒們在水裡悠閑的不動,殊不知,它們用盡全身各個部位在暗暗使勁保持一派悠然,心裡吐槽你這個蠢貨別再看著我了。

我觀察過我家的小金魚,這不是我家的,百度的圖片。

當它在水裡不動的時候背鰭和尾鰭,就是有點半透明那個部位啊,會隨著水波一直在輕輕、微微地浮動。所以大概就是這樣啦,這素一個不專業滴答案。╮(╯▽╰)╭


原理與下面說的紅繩子的原理是一樣的。

紅繩子為什麼會升起?_土豆_高清視頻在線觀看 http://www.tudou.com/programs/view/mP5asxwIQmQ/?bid=03pid=24resourceId=419439358_03_0_24


看了Jennyfool的答案表示…╭(°A°`)╮已經暈了,那個圖研究了半天,然後公式看的眼花繚亂。

我感覺樓主的問題主要是,為什麼能定在水裡不動(身體不動,水在流,而對地也沒有位移)。

小時候住在農村,門前有條小河,河裡會有小河魚,老爸也經常釣魚來養在家裡的大缸里,所以特意觀察過。

首先…當魚在缸里的時候,他基本上是保持靜止的(當然,這個魚不是魚缸里好奇心爆棚的小金魚),魚泡的作用嘛,讓它能懸浮在水中。那魚在流水中呢?好吧,當河流在河道寬流速慢的時候,魚在裡面很自然的游,看不出水流對他有啥影響,但是!前提是!他在游!如果是一條被釣上來幹了很久,命不久矣的魚,放在水裡他是會隨波逐流的。當然我也看過小河魚在面對急流時逆流而上,但是好像更多時候是在原地游((?? . ??)並不知道在做什麼)。

然後總結一下,樓主應該是一個錯覺,把遊動卻保持與地沒有相對位移的魚和靜止在水中不動的魚的感覺混亂了~


那是因為阻力太小(物理意義上的阻力不一定是對物體產生阻礙效果的力),就像你在冰上往前走卻實則沒有前進一樣。魚的身體構造是水流可以無阻力的從魚周身經過還幾乎不施加動力。


大吃省的人民只想到了「脆肉鯇」


子非魚,安知魚未游?

PS:別人大晚上的睜著眼不睡覺,就是擔心睡著了不知道被沖哪去了嘛。


剛來知乎的時候,答案全是最高票這個范兒的,能漲不少知識。

可是現在看看除了最高票的那些答案,我覺得是時候離開了。


半離合上坡起步


你在大風天里也沒有被颳走呀( ????? )


你在風裡也是保持不動而沒有被風吹走


就像在問為什麼人在跑步機的履帶上能保持不動而不會被履帶捲走?


魚在動~你的心不動罷了~


同樣的問題還有:

為什麼鳥在風中飛,沒有被刮跑?

為什麼高速旋轉的地球沒有把人甩出天外?


說魚是水平擺尾才能前進,那麼鯨,海豚都哭了,海豚比大多數魚游得要快


推薦閱讀:

螃蟹鉗子的工作原理是什麼?
初學編程,如何設計模擬一個螞蟻群體的小程序?求幫助?
為什麼仿生機器人(仿動物、人形)的反應遲鈍?

TAG:流體力學 | 仿生學 |