關於Unity中動摩擦力與靜摩擦力的一些小實驗
23.3.31 物理材質球中動與靜摩擦力的區別
以上課教材做數據測試,並且為了測試球體滑行距離我將底下的地板大幅擴展至1000000的寬度
在這個狀態下去測試小球的X軸位移量
並且為了測試方便
我先以Power = 10,靜摩擦力為0,動摩擦力只有0.05 的數據下測得小球位移量為101.83
將位移量102視為最接近無重力阻力狀態(太空狀態)的數據
因此本文進行的任何實驗在小球位移量超過102以後的現象都視為無重力阻力狀態
懶人包:
動摩擦力(Dynamic Friction)決定物體用同樣的力可以在這個表面上移動的距離
靜摩擦力(Static Friction)可以理解在物體遇到靜摩擦力時,會被吃掉一部分的力(Power)
以下是各種實驗與結論
第一項實驗、測試靜摩擦力與Power和Mass的關係:
## 以下實驗中動摩擦力皆為0.2 ##
在實驗中我為了先釐清Mass質與靜摩擦力的關係
先將Power = 10,靜摩擦力 = 10,Mass = 1
結果:位移量為24.036
隨後Power = 10,靜摩擦力 = 10,Mass = 10
結果:位移量為24.036
最後Power = 10,靜摩擦力 = 10,Mass = 0.1
結果:位移量為24.036
沒錯,不管Mass質是多了10倍還是只有1/10,位移量都絲毫不差
因此我得到的第一個結論是:
Mass的值與靜摩擦力沒有任何關聯。
排除了Mass以後就可以來測試靜摩擦力與Power的關聯了
以下我將會開始測試Power與靜摩擦力的值個別為多少時,小球的位移量
並且有一個我已經測試出來的大前提,靜摩擦力的值 > Power的五倍時,不管大多少
小球的位移量都會只剩0.0016,這個現象與下面順移的現象應該是相同的原理。
如果靜摩擦力的值等於或略小於Power五倍時,小球不會用滾的,而是變成順移
因此這個現象出現時可以回來注意一下靜摩擦力與Power的值
Ex . Power = 10 , 靜摩擦力 = 49~50 , 位移量皆為0.1995
推測可能是因為靜摩擦力的值到達會or不會動的閥值,因此給的力只夠讓小球動一偵就得停
注意::這個現象意味著今天如果把Power設為100000000之類高到破表的數字,此時就算你的靜摩擦力是他的五倍以上,那他就算動個那麼一偵也會飛出去,因此靜摩擦力是擋不住這種高到很白癡的數值的。 (實際測試過,確實擋不住)
上面兩個現象會讓我在製作表格測試時,靜摩擦力的值最高只會設定到Power的4倍,因為對5倍測試的價值並不大
正式開始實驗,我將會製作一個表格,測試各種Power的情況下,小球會動多遠
透過上面的數據我們可以知道,他不是靜摩擦力:Power然後透過單純的+-*/去做力的輸出
而是真的有一個Unity內建的靜摩擦係數
因此我們不會看到
Power = 5,靜摩擦力 = 5,位移量 = 5;
Power = 10,靜摩擦力 = 10,位移量 = 5 or 10;
這種這麼簡單膚淺的數據,而是真的有一個複雜的摩擦力算式在對你的給的Power進行處理
給出適當的力輸出去推你的小球
第二項實驗:動摩擦力與Power關聯
你說為什麼動摩擦力就不測試一下Mass有沒有差了?
對沒錯,我測了,沒有差,因此以下省略10行證明
直接下結論:Mass值也不會對動摩擦力產生任何有效可見的影響
之後就是對Power與動摩擦力之間,愉快愉快Tanoshii的測試時間了
## 以下實驗靜摩擦力皆設定為5 ##
透過上面靜摩擦力的實驗我們可以了解,物體的位移量的這個結果,是會與Power和靜摩擦力相掛都的,不管是那一項數據太過分都不行
那麼可以省我很多時間的好問題來了,請問動摩擦力是否也與Power有關,在制定的時候需要依照Power的值來規範一個【合理範圍】呢?
沒錯,與上面的靜摩擦力>Power的五倍一樣,動摩擦力在>Power的五倍時,小球動起來像沒在動,但確實是有動個那麼0.00幾,且動摩擦力對於Power的影響是更大的
因為我就算已經把Power定在50,且動摩擦力同樣設為50,小球的位移量居然也只有2.057,因此確定我如果目前想要在測試時把Power的值定在5、10、15、20的話,那動摩擦力的值大概要定在0.05、0.1、0.15、0.2倍的Power值,動摩擦力大概要定成這樣才有辦法好好的測出有意義的數據,當然,如果我發現就算這樣制定規則了,數據還是小的太過分的話,我會再調整的
以下就話不多說,直接給出我的實驗結果表吧~~
沒錯,動摩擦力跟Power的關係,可以說是和靜摩擦力十分相似,不過數據上肯定是有差距的,那麼動摩擦力與靜摩擦力除了數據和算法不一樣以外,到底有什麼區別呢?
這時候就要祭出我們第三項實驗:靜摩擦力與動摩擦力某項為0
我們都知道,如果動摩擦力與靜摩擦力皆為0的時候,那顯然就是我們所稱的無重力阻力狀態,也就是俗稱太空狀態。
那麼如果其中只有一項為0下去做測試呢?
以下我先將動摩擦力設為0,用靜摩擦力來進行測試:
首先統一將Power設置為5,並且沿用之前實驗的設定分別將靜摩擦力按Power的倍數設為5、10、15、20,隨後開始實驗
馬上就可以發現不管四種靜摩擦力數值產生的位移量跑到150以上了還在無止盡的跑下去,基本呈現太空狀態,也就是只要小球進入移動狀態,靜摩擦力就沒辦法讓小球停住
此時我心血來潮將靜摩擦力的值設定為瀕臨之前提到的閥值,這邊就是23,在這個狀態下,雖然小球也是為無止盡的跑下去,但是我能肉眼可見的感覺到它的速度變慢很多,為何小球會變慢,以正常物理現象來說,變慢的原因最有可能是推小球移動的力變小了,但是我的Power始終定在5,實驗的變因只有靜摩擦力的值
因此我在這個現象中推測出一個最有可能的結論,靜摩擦力吃掉了Power這個值去推動小球的力,讓推動小球的力變小,這可能就是靜摩擦力存在的意義。
此外我要再說明,靜摩擦力23可以造成肉眼可見的速度變慢,但這並不代表20、15、10之類更小的值,就不會讓小球變慢,很有可能只是變慢的程度不大,以上面的結論來簡而言之的話就是,20以下的那些數值吃掉的力可能沒有那麼明顯,但並不代表就沒有力被吃掉。
做完動摩擦力歸零,純粹測試靜摩擦力的實驗了
再來就是靜摩擦力歸零,純粹測試動摩擦力
此時我們的實驗數據設為Power = 5,動摩擦力 = 0.05、0.1、0.15、0.2
因為Power只有一個值,所以我這邊就不做表格了,直接來上結果數據
動摩擦力分別為:
0.05 ,位移量為25.434
0.1 ,位移量為12.692
0.15 ,位移量為8.444
0.2 ,位移量為6.321
加碼測試動摩擦力為:
0.025,位移量為50.971
0.01 ,位移量為127.36
0.005,位移量為254.79
什麼?你說為什麼動摩擦力我就願意為了他加碼測試0.005這種小到很白癡的數值,甚至還願意等到他跑了將近3分鐘才停?
這就要直接進入我們的結論環節了,從上面的數據可以看到,Power跟靜摩擦力都固定,動摩擦力的值就算小到這麼誇張,只要他不要是0,那小球也終究是會有停下來的一天
因為這涉及到一個很基本的物理學:
靜摩擦力:即是物體在靜止狀態下受到的摩擦力
動摩擦力:即是物體在移動時所受到的摩擦力
因此只要動摩擦力是0,且靜摩擦力沒辦法阻止物體移動,那麼物體只要開始移動了,就不會再受到任何摩擦力,直接進入太空狀態,因為動摩擦力是0
如何驗證?要驗證這個超花時間的喔,所以我留在最後
動摩擦力 = 0,Power = 5,靜摩擦力 = 5,這次我放小球隨便跑了,放著他給他跑到位移量高達100000還在繼續跑,沒有要停的意思,想驗證的也可以自己試試看,會挺花時間的,不過結會證明,只要沒有動摩擦力,那麼就算靜摩擦力再大,只要Power有辦法稍微推動物體,讓物體開始移動,那麼移動中的物體就會呈現【動者恆動】的狀態
因此可以得到結論:
動摩擦力是在物體移動時才會作用,也是決定物體能跑多遠,決定物體什麼時候停下來的關鍵
靜摩擦力是在你想用Power推動物體時,他會在一開始把你Power給的力吃掉一部分
留言
張貼留言