2008-07-24

單車路線分析 part 2

騎乘方式的標準化(繼續...)

接下來的問題是,航程是由許多航段組成的,我們如何評估整個航程的費力指數。從上一篇文章我們得這個公式:

 P = ( Rr + Ra + Fg) x V

其中滾動阻力是由總重及輪胎而定,重力的分力是依照地形條件,這兩者都視為已知。但速度卻是未知的,而空氣阻力又跟速度有關。所以letsbike大的想法是正確的,必須要設定一個「標準的速度」代入。但怎麼樣得到標準的速度呢?

開始標準化之前要先了解兩件事。

理論上,我們可以透過改變齒輪比(變速)、以及改變踩踏迴轉速,來使得輸出的動力恆定(心跳速維持一定)。所以不管是什麼樣的坡度,理論上騎起來都可以「一樣輕鬆」,只是前進的速度不一樣。

那為什麼我們會覺得「騎平地很輕鬆,騎山路很累呢?

可能的原因是,我們在平路或下坡時其實可以騎得更快,但通常不這麼做,以便得到休息。反而在上坡時「選擇」出比較多的力氣。也就是所謂的「配速」。

這時另一件有趣的事又來了。在一段看得到盡頭的爬坡,我們能夠預知還需要出多少力,因此比較容易維持均衡的出力,甚至會增加出力一口氣抽車上去。但是在看不見終點的漫漫長坡就不一樣了。大部份人一開始可能會利用平緩路段先加速衝一段,然後會「慢慢沒力」而逐漸降檔。一開始可能在五六檔,到坡頂時已經打到變速器的極限,但踩踏迴轉速卻也不見得按比例提昇。也就是說,實際輸出的動力會一直下降。

這已經不在「意志力」能控制的範圍了,而跟「體力」有關。什麼是「體力」呢?根據我遙遠的記憶,我高中生物老師是這樣說的(非我專長,如有誤請指正):人體活動的能量並不直接來自葡萄糖與脂肪酸,而是由粒線體把這些能源轉化成ATP ,以化學能的方式暫存。ATP所帶的能量被消耗掉以後就會轉成ADP和AMP(磷酸基一個一個用掉),需要再靠粒線體再合成ATP,其「粒線體的數量」和「合成速率」就是問題的所在。如果你輸出的動力(消耗能量的速率)超過身體產生能量(以下簡稱「補血」)的速率,你能輸出的動力就會下降。當你輸出的動力等於補血的速率,你的動力就能源源不絕。

拿受過訓練的運動員和一般人做比較,運動員可以長時間維持一個較高的動力輸出,而一般人可能只能持續輸出不到一半的動力。NASA對此做過實驗。一個健康的普通人大概只能維持200W的動力大約一小時;但如果是以100W的動力輸出,騎個三、四小時不成問題;如果想騎到八小時,動力輸出大概只能有70W。相對地,一流的運動員可以有兩倍以上的動力輸出。這裡指的都是平均出力,而非最大出力。人可以在短時間內提昇出力,但接下來勢必得降低出力來使體力恢復。

除了補血的速率以外,乳酸的堆積也會使人感到腿好重抬不起來,導致動力的輸出降低。運動員排除乳酸的能力也優於普通人。

回到我們一開始的問題,騎一段坡度固定的斜坡,在理論上我們可以維持一定的動力爬坡(踩踏迴轉速和腿力可能變化,但維持一定心跳速),但通常我們並不會這樣做,原因在於配速的習慣。所以我們有以下兩種假設條件:

一、假設有一個完美車手,具備了完美的變速技巧及踩踏技巧,能夠在任何情況之下維持完全一樣的輸出動力。


二、假設有一個普通人,有著正常人的慾望和衝動,也有著不甚睿智的判斷力和固執的配速策略。在能省力時他會偷懶,在要爬坡時又會賣力演出。


前者的完美車手可以使問題變得單純化,因為各航段的坡度不管怎麼變,我們都假設其輸出動力是固定的。但是後者更接近於實際的「體感困難度」,因為人非聖賢,經常會做些無謂衝刺來消耗體力。這就使得速度的設定變得複雜,因為在不同的坡度時可能有策略上的配速導致輸出動力並非總是100%。就算在同一段坡上,長坡、短坡也會因配速及體力因素使得輸出動力會在100%上下波動。

為了使計算能繼續進行下去,即使人非聖賢,我們還是必須做一些標準化設定。方法其實就跟letsbike大所說的一樣,自己實驗記錄一下。當然,在不同的情況之下其變異是很大的,而且條件也不可能很理想地標準化(比方說,6%的坡,長100m與長1km的騎乘速度大概不可能一樣)。但是這一切都只是為了使分析結果「比較」接近真實的感受,就算不太準也無妨。只要有一個標準的設定,我們就能使所有的路線都站在一樣的標準做比較,這才是最重要的。

因此我先用我自己的資料輸入試算,在平地時,我大概可以維持25kph的速度騎七、八個小時。在8%或更陡的陡坡,我多半會努力維持5kph的速度,但可能只能維持二十分鐘就得休息一下。這並不是我的最大動力,只是在我的體力、腿力、耐力的條件下,我通常會採取的速度。



由試算表得知,在平地時只要90.4W就能維持25kph,但爬8%的坡我需要輸出118.4W的動力才能達到5kph,大約是增加了30%的出力,蠻符合實際情況和身體感受。

於是我假設在不同坡度時,我的動力輸出是按線性比例增加輸出動力(如圖中那條細細的紅線)。由「理論動力圖」上查出騎乘速度。


坡度

騎乘速度(kph)

0%

25.0

1%

18.5

2%

14.0

3%

11.0

4%

8.8

5%

7.4

6%

6.4

7%

5.5

8%

5.0

9%

5.0

10%

5.0


那麼,當下坡(坡度為負)的時候呢?代入同樣的算式,得到另一張理論動力圖。

從圖中可以發現,當坡度為-2%,速度為25kph時,功率值是負的!這表示不但不用踩就能前進,還得要按煞車才不會愈衝愈快。而當坡度為-4%時,大約可以在53kph時與空氣阻力達到平衡,維持定速。當坡度比-4%陡時,基本上不按煞車就有可能衝到破錶了。

通常在緩下坡時我仍然會順勢稍微踩踏以提昇速度,但是到不用踩也能以35kph前進的坡度,乾脆就休息吧。超過這個坡度,就不需要動力輸出了。所以下坡的情況我設定如下:

坡度

騎乘速度(kph)

0%

25.0

-1%

29.5

-2%

34.5

-3%

Not necessary


明明下坡沒有出力,卻因為有位移而被算了進去,是不合理的。以功率來計算「費力程度」,就可以避免掉這個問題。有了上述的假設速度,就可以算出每一種坡度的功率,進而計算出一個航段的「費力程度」。


GPS坡度計算小撇步

航段長度愈短,計算的平均坡度愈接近實際情況(微分的概念)。但是電子氣壓計的最小刻度是1m,而且也不是那麼精準。以5%的坡來說,要前進20m才會上昇1m。如果航段長度太短的話,算出來的坡度誤差會很大。

為了使平均坡度盡量接近實際情況,但同時減少誤差,不妨把GPS記錄航跡的設定選為「依距離間隔(固定航段的距離)」,間隔設為0.01km。(GPS其實也不會準準地每隔10m記一次啦,只是讓各航段長度比較接近而已)。用Excel處理時則以3或5個航段來來計算平均坡度,誤差會小一點,也比較能反應實況。

有的時候電子氣壓計會突槌,使得航段坡度算出20~30%的跨張數字。以公路設計的角度來看當然是不合理的。所以在試算表裡也應該加入一個過濾的式子,我設定為坡度超過±15%時,改取前後兩航段坡度的平均。

當航程較長,騎乘時間超過半天,可能天氣(氣壓)已經發生變化。如果路線是O行或是原路折返,當回到起點時會發現高度不閉合的情況。實際上這並沒有多大影響,因為平均攤到各航段計算平均坡度時,其小小影響已經被分散且四捨五入給消除掉了。

整個航程的費力程度


把數字都代入後,即可算出每一「航段」的費力程度,但要如何加總成整個「航程」的費力程度呢?

把各航段的「功率」直接加起來是沒有意義的,「功率」只是「做功的速率」。我們必須把「功率」乘上「時間(用設定騎速算出來的理論時間)」,得到「功」。然後把各航段的「功」加起來,就可以得到全部航程的「總做功」。「功」的單位是「焦耳(能量)」,所以我們也可以把它稱作路線的「總耗能」。這樣一來即便是100km的平路和10公里的山路,也可以放在一樣的平台上來比較費力程度。

這裡的「功」與caf大剛開始想到的「功」有一點不同。只看位移,而把所施的力假設為固定是不合理的,這一點後來caf大也發現了。因為有空氣阻力的存在,所施的力會一直隨著速度改變。就算硬保持速度不變,在不同的坡度上,所施的力也會改變。而下坡時只靠重力做功就能前進,有位移卻不需要出力。所以不能把施力視為常數而忽略

「疲勞」的影響


到此為止,我們已經試著把「費力」的程度用一個指數表示出來。但是在上一篇文章的最前頭,我們提到「困難度」包括了「費力」和「疲勞」兩個層面。

那如何反應「疲勞」呢? 「疲勞」對路線「困難度」的影響可以舉Never Stop系列路線的比較來說明,以下這三條路線的記錄都是三個小時出頭。


路線

陽明山
P
字山道

水里
塔塔加

埔里
武嶺


總長度

72.8km

71.5km

53.9km


總爬昇高度

3200m

2572m

2998m


總下降高度

2510m

245m

204m

(取自網路資料,不一定準)

從中不難發現,陽明山跟塔塔加的總長度很接近,而塔塔加的爬昇高度不及陽明山,可是許多人卻認為這兩條路線差不多難。陽明山P字山道在不到45km內要爬昇3200m,而武嶺則是在54km內爬昇3000m,可是大多數人卻認為武嶺比較難。

主要的原因可能是塔塔加跟武嶺幾乎是一路直上,而陽明山則有多段下滑休息的機會(當然也有一些是因為高海拔空氣稀薄)。所以路線之中是否有休息的機會,對困難度有很大影響。雖說騎完全程所消耗的總能量大致可以客觀地計算出來,但卻不見得跟「困難度」的感受相吻合。

然而每個人補血的速率、排除乳酸的速率差異很大,要用數學模型去描述這樣生理反應並不容易。在還沒有想到更好的方法之前,不妨加上一兩個額外的指標來輔助描述這種路況。例如Caf大把坡度分級後用比例表示是個不錯的方法。當路線總耗能相近時,可以比較坡度比例就可以分出高下。但是當兩者都不同時,就很難分出高下了,這個後續再慢慢研究。

範例:陽明山"O"字山道


路線名稱:陽明山"O"字山道(至善公園→仰德大道→陽金公路→金山→大鵬國小加投路→大坪國小→風櫃嘴→至善公園)
路線總長度:65.42km
路線總爬昇:1728m
路線總下滑:1780m(理論上應與總爬昇相同,但有誤差使高程未閉合)
>1%爬坡段長度:25.29km
>1%爬坡段比例:38.65%
>5%陡坡長度:14.21km
>5%陡坡比例:21.72%
路線總耗能:182萬7191焦耳

上 圖是用顏色來區分坡度的距離-高度圖,愈深色愈陡,愈淺色愈緩,綠色則是接近平坦,藍色是下坡。另外因為每條路線不一樣長,同樣都放在A4大小的圖上時, 距離方向的比例會不同,而產生「這條路看起來比較緩/陡」的錯覺。所以我習慣把距離-高度圖分成每20km一張,如此一來每張圖的距離比例是一樣的,光看 圖就可以判斷哪條路陡、哪條路緩。


Excel試算表檔案

結語

也許仍有錯誤的地方,請看倌不吝指正。

如果大家覺得這個方法還行,也呼籲大家把GPS航跡記錄方式設為「依距離間隔0.01km」。比較有利於資料的標準化,減少誤差。


2008-07-23

單車路線分析 part 1

前言

mobile01單車版爬文,偶然發現了這篇文章↓↓↓(其實這篇文章被置頂,想忽略都很難)

[分享] 登山路線分析資料


在單車版指的當然是單車登山,而非健行登山。我也曾經想要把健行登山路線用一些指標來描述其難易度,但所牽涉的變數太複雜,不但難以記錄,也難以用簡單的方式表達。例如說,同樣是15%的平均坡度,輕裝重裝走起來就不一樣。此外還要考慮是否有人工台階、還是只有前人踩出來的步階?甚至根本就得要自己找腳點?每一步階的落差?路面是枕木棧道、硬土、爛泥、碎石、亂石、巨石、落葉層覆蓋?(闊葉、針葉、箭竹?)是否濕滑?有無樹根?有無青苔?是否需鑽行(箭竹、倒木、低矮喬木)?路徑是否明顯?路幅寬度?每一項都會影響抬腿爬昇和保持平衡所需的力量、以及前進的速度,不同速度對體力的消耗也不同。單一航段都這麼複雜了,就別提從登山口到山頂會遇到多少種狀況。所以不管爬哪座山,距離和爬昇高度都只能做參考,千萬別小看中級山或是不高的高山,其路線可能非常硬斗。

但單車就不一樣了,大部份的單車路線都是在公路上(多半是柏油路)。公路本身除了坡度急緩之外,其他變因對難度的影響並不大。所以用一個簡單的指標來表示困難度應該是可行的!

mobile01上caf667大的這串文章引起廣泛的討論,利用Excel來分析GPS的航跡資料,得到一個簡化的指標值。其算法也經過多次的改版修正。不過總是會有人感到分析值與實際體會不同,而提出質疑。事實上,該算法確實有一些問題,使得它與事實不符:

一開始caf大直接採用高度-距離圖上的面積,但這有點無厘頭,它不只是誤差很大,而是根本就沒有意義。簡單地舉例,10公里的平路高差是0,所以高度乘以距離也是0。而10公尺長爬1公尺高的坡道,乘起來的面積是10,所以困難度比10公里的平路難無限多倍?同樣坡度的坡爬兩次,難度變成4倍?

後來caf大試著用「功」的概念去表達困難度,但只簡單地採用W = F x S。不過也出現問題,因為:

 W:功
 F:在斜面上所施的力
 S:在斜面上的位移

caf大先假設使單車前進的力為固定(問題之所在),所以困難度只取決於位移。但是拿距離和高度的平方和再開根號就會發現,這只是斜坡道的斜面長而已,完全不能反應困難度。而且在下坡路段仍然有位移,但卻完全不需要出力,理論上應該不需要做功才對(交給重力做功即可)。

接著同樣以功的概念,但又加入了「垂直爬昇 = 位能增量」的觀念。不過隨即又發現變成只算了位能(只跟高度有關)而沒有算水平運動所做的功。

最後最後實在不得已,又增加了一個「施力指數」的概念。這個施力指數更神奇了,先是假設在垂直爬昇方面,所施的力會正比於坡度斜率(以百分比表示)。但隨即又發現,平路沒有坡度,可是也需要用力啊!那那那……用最平緩的坡度1%來表示水平移動所需要用的力好了。結果得到以下算式:
 
 騎乘一個坡道所需做的功約等於 水平方向作的功 + 垂直方向做的功
 
 = {水平距離(公里) * 1} + {垂直距離(公尺) * 坡度}
 
 = 水平距離(公里) + {垂直距離(公尺) * 坡度}
 
 = 騎乘距離(公里) + {爬升距離(公尺) * 坡度}


這當然是一個莫名其妙的式子,把不該乘在一起的東西乘在一起,然後把平路的施力指數1%無緣無故地乘上100之後省略掉。又因為爬昇的施力指數算起來無關痛癢,所以乘上了1000倍,擴大它的影響力……後來又出現了「肌力需求」和「體力需求」,再後面的修正就沒有說明原因了。不過似乎分析的結果大家「還算滿意」,終於有個工具可以事先評估路線之間的相對困難度,所以也沒有再進一步的進化了。

寫到這裡我必須要聲明,我完全沒有嘲諷的意思。事實上我非常佩服caf大的態度和精神,不斷地接受批評、發現錯誤、嘗試改正。而他所整理的航跡資料也都非常具有參考價值,讓我非常感動。所以當天一回到家吃飽飯就馬上撿起計算紙,重拾十年沒用過的數學。也希望補上這篇文章能讓caf大由肉身菩薩變成金身菩薩。

有沒有一個可以表達路線困難度的簡單方法呢?


首先先整理一個概念,到底什麼叫作「」?在單車運動裡,「難」大概可以跟和「」畫上等號。更精準一點,「累」其實包含了「費力」跟「疲勞」兩個意義。前者指的是肌肉收縮運動消耗身體能量;後者則是指身體組織因為工作而產生各種廢物堆積而給人的疲累感,會造成再出力的阻礙。注意這裡所稱的「費力」並不是指肌肉出的力道大小,而是指一段運動行為對人體來說的「負載」。

再來解析「費力」。「費力」這兩個中文字其實又有兩個層面的意義。騎同樣的坡,我們可以慢慢地輕踩龜行,也可以氣喘噓噓地硬衝上去。騎上的是同一個坡,花的時間不同,其「費力」的感受也不一樣。此時的「費力」指的不只是瞬間的腿力,也跟「一段時間內出了多少力」有關。所以「費力」程度有「功率」的概念。

我們也經常在騎完全程之後回想「這條路花了我很多體力」、「那條路我騎起來很輕鬆」,這層意義跟「一天下來累計消耗了多少能量」有關,是「」的概念。

究竟哪一種概念比較符合「費力」的感受呢?其實兩者都有。比方說我在這條路線用野餐速度慢騎(騎了一整天),跟另一條路線用競賽標準狂飇(兩小時就結束了),事後來比較這兩條路線的「困難度」,是不準確、不客觀的。所以,大概可以得到一個簡單的結論:

我們必須在接近的「騎乘方式」下,才能比較不同路線所消耗的「體力多寡」,並藉此表達路線的困難度。

騎乘方式的標準化


所以首先要來決定用「多費力」的騎乘方式,但先得把「費力」程度給量化。對騎單車來說,我們常藉由心跳速度來了解運動的「強度」,也就是所謂的「費力」程度。騎乘動作會影響「費力」程度的因素只有兩個:踩踏腿力踩踏迴轉速。假設每分鐘踩踏60轉,小力踩一分鐘比用力踩一分鐘要輕鬆。如果踩踏的腿力一樣大的話,每分鐘踩踏60轉比較輕鬆,但是每分鐘踩到120轉就會心跳加速氣喘噓噓了。單位時間內由心肺所輸送的氧、身體產生的能量,與肌肉所產生的運動能量是成正比的。而單位時間所輸出的能量就是「功率」,所以我們應該可以用「功率」來表示「費力」的程度。 接下來看功率的式子:

 P1 = F1 x V1
 P2 = F2 x V2

  F1:踩踏的腿力。一般踩踏動作的出力接近於雙缸引擎,但使用卡踏並受過訓練的車手其出力比較均勻、接近多缸引擎(或電動馬達:P)。這裡取一個平均腿力(就把它當作是一顆馬達吧)。
  V1:踩踏的迴轉速。
  P1:踩踏輸出的功率,就是一般所稱的「動力」,汽車常用「馬力」作單位。
  P2:系統(連人帶車)在道路上依某速度前進的「負載」(單位同功率)。

如果忽略系統內的損失(傳動損失),「馬達」的輸出功率應該等於「系統」的負載,系統的負載取決於單車前進的速度和系統所需要輸出的力。這個力指的不是腿力,而是腿力經過踏板、曲柄、大盤、鏈條、飛輪、輪組,透過輪胎與地面產生的反力,使系統前進。

 P1=P2=F2 x V2

  V2:就是單車前進的速度,速度得愈快(V↑)就愈費力(P↑)→合理!
  F2:是騎車所產生的力,要產生愈大的前進力(F↑)就愈費力(P↑)→合理!
  當上坡要出比較大的力時(F↑),必須放慢速度(V↓),才不會比較費力→合理!
  下坡時速度可以很快(V↑),卻只要出一點點力(F↓),感覺並不會比較費力→合理!

為什麼要把F1跟V1轉換成F2跟V2呢?因為F1(踩踏腿力)非固定的值,也不好量(得從鏈條張力倒推)。而V2可以由速度表測得,F2可以由外在的反力來倒推,參考下圖:
單車在平地上前進時,要維持一個固定的速度(先不考慮加減速),則所出的力就是所有阻力的總和。(若出力大於阻力,則速度會加快,反之會減速)這些阻力包括:

 Rr:滾動阻力(rolling resistance
 Ra:風阻力(air resistance
 Rt:傳動阻力(transmission resistance)

若是在坡道上的話,重力在斜面上的分力也會阻止單車前進,所以要加上:

 Fg:重力 於斜面方向的分力


因此功率的式子可以改寫成:

 P = ( Rr + Ra + Rt + Fg) x V


分別來看Rr、Ra、Rt和Fg:

Rr(滾動阻力)是來自於滾動物與地面的變形與還元過程。與「滑動磨擦」不同,滾動阻力所牽涉的因素非常多。對單車來說,滾動阻力主要原因是來自輪胎橡膠的變形。所以輪胎的溝痕、氣壓、胎寬、胎寬高比、胎壁厚、輪徑、輪胎重、車重、騎士體重等等都會影響滾動阻力的大小。國外有專業單車雜誌曾經對各廠牌輪胎作過測試,由該資料可以發現,同一種輪胎在40psi時,滾動阻力可能比100psi高78%。在同樣的胎壓下,胎寬和溝痕設計也可能使滾動阻力的差距達一倍之多。滾動阻力可以用以下公式求得:

 Rr = Crr x Nf
 

  Nf:正向力,可看作一顆輪胎的載重加上其自重。單車路線的坡度通常不會太大,所以先忽略坡度對正向力的影響。  
  Crr:滾動磨擦係數,由實驗得知  

Ra(空氣阻力)是所有阻力中影響最大的。扣除傳動阻力不算,在某個實驗裡,滾動阻力和空氣阻力的比例可以達到12:88!(車手重75kg,騎乘姿勢的前投影面積0.45m2,車重9kg,車速44kph)而車手本身的空氣阻力大約佔75%,車子只佔25%。空氣阻力的算法如下:

 Ra = (ρ x Cw x A x V^2) / 2  

  ρ:空氣密度  
  Cw:風阻係數,由風洞試驗測得  
  A:有效截面積,也是由試驗測得  
  V:速度

注意到空氣阻力正比於速度的平方!車速愈快,空氣阻力上升得愈快!

Rt(傳動阻力)
指的是齒動、鏈條、花鼓等等傳動系統的阻力,大約會消耗車手3~5%的動力。比例上不是很多,先忽略它。

Fg(重力在斜坡面上的分量)
在坡度提昇之後,其影響力會大符超越空氣阻力。它的算法是:

 Fg = Wt x G x sinθ = G x sin(arctan(r))  

  Wt:連車帶人的質量
  G:重力加速度
  θ:坡度(度)
  r:坡度(以百分比表示的坡度,等於高度除以距離)

好,真是落落長。如果我們忽略傳動阻力,式子整理一下會變成:

 P = ( Rr + Ra + Fg) x V


只要代入右邊的數字,就可以得到一個功率值,來表示該旅段的「費力」程度。但這裡有點頭大,因為風阻係數和有效截面積都得由實驗取得(跟車手身材及騎乘動作關係很大,與車架、輪組的設計也有關),而我一時之間在網路上找不到堪用的數據……orz(請熱心網友提供)。

小結


到這裡暫時告一段落。回顧一下,我們以「功率」值來表示一個航段的「費力程度」,因為「輸出動力」與「身體產生能量、肌肉收縮運動的速率」是接近的。在固定單車設定(同一輛單車、同一個車手、同樣的姿勢)且忽略外在風速風向的情況下,這個指數只跟騎乘速度、坡度、和空氣阻力有關。其中空氣阻力又跟騎乘速度有關,所以不能忽略速度的因素。藉由已經量化的「費力程度」,就可以把「騎乘方式」給標準化,待下一篇文章說明。

後記

閉門造車在計算紙上塗塗改改,整理算式。等到車造好了,開始在網上搜尋必要的參數時,發現了一堆早就整理好的網頁(搜尋bicycle science就會有一大把),尤其是有這個動力計算機這個,挺方便的。當然它們都已經做了一些假設來簡化了。驗証了一下並沒有什麼出入,所以前述拉里拉紮談的一大堆應該是合理的。

待續......