2014年11月29日土曜日

Rの非線形回帰分析によるスポークテンションの推計

スポークテンションメーター(TM-1)

2014年11月29日 文章を修正

Park Tool のスポークテンションメーターは、ポインターが指示した目盛りの数字を換算表で張力(kgf)に変換して使いますが、一々換算表と首っ引きで作業するのは面倒だし、16.75のような半端な値は変換できません。そこで、表計算ソフトでTM-1の指示値を自動で換算値に変換できるように、指示値と換算値の対応関係を基にして近似モデルを作る事にしました。



参考ページ

サイクルベース名無し
[ホイール工具] Park Tool TM-1・・・実用編(GlennGouldさんの投稿)
換算表が整数表記である事を考慮しても5次関数で充分正確に近似できると説明されています。

フォトポタ日記
ParkToolのスポークテンションメーター「TM1」
エクセルのグラフの「近似曲線」機能を使って式を導く方法を紹介されています。



私はエクセルを持っていないので、代わりに無料の(しかしエクセル以上に強力な)統計処理ソフトの「R」を使って近似式を求める事にしました。

Shimano WH-RS21

このホイールのスポークテンションを計測します。スポーク(ブレード型)の厚みと幅は、シンワのプラノギスで実測したところ、1.1 x 2.6 mm でした。但し、ノギスの精度が怪しい(嘴を完全に閉じても 0.1 mm 辺りを指示する)のであまり当てになりませんが。

過去の関連記事
シンワ プラノギス ポッケ 10cm のレビュー



スポークテンションを計測し、指示値を1/4目盛り(0.25)単位で読み取ってメモしました。

spoke # reading
Front R1 14.50
Front R2 15.25
Front R3 14.25
Front R4 15.25
Front R5 14.75
Front R6 15.50
Front R7 14.00
Front R8 15.75

(前輪の右側のスポークのみ。他は省略します。)



これを換算します。根拠になる換算表ですが、TM-1に付属している紙の換算表では
  • 対応していない寸法のスポークが有る;
  • 換算値は時々改訂されるので、最新でない場合が有る
ので、ParkToolのウェブサイトで提供されている計算機で換算表を生成しました。

ステンレス・ブレード型スポーク(1.1 x 2.6 mm)の換算表
reading tension (kgf)
8 52
9 56
10 61
11 66
12 72
13 79
14 87
15 96
16 106
17 118
18 131
19 146
20 164



このデータを元に「R」で近似式を求めます。

まずはコンソール画面に、

目盛りの値を数列型のデータとして入力して、

Enter「ッターン!」

換算値(kgf)も数列として入力して、

Enter「ッターン!」 

二つの数列を一つのデータ・フレームに格納して、

Enter「ッターン!」

最後に非線形モデルを計算させるコマンド「nls()」を入力します。

このコマンドでは、Rにどのようなモデルを作らせるか指定する必要が有ります(言い換えれば、モデルの形を自由に指定できます)。コマンドの詳しい仕様はこちら

最初に参照したウェブページでは5次関数のモデルを使っていましたが、
  • TM-1は製造工程の品質管理が徹底しておらず、個体差が大きい;
  • 測定場所の温度や、測定位置、測定角度(重力)などが結果に影響する;
  • 目盛りは人間の目で読み取るの誤差が生じる
ので、あまり厳密にしても意味が無いだろうと思い——


過去の関連記事
Park Tool TM-1 の精度
Park Tool TM-1 の精度(続き)


——3次関数のモデルを指定しました。
y = a + bx + cx2 + dx3
(コード上では「y~a+b*x+c*x^2+d*x^3」)

あ、次数が低い順に書いちゃった。まいっか。
モデルの係数の初期値も適当に全部“1”にしました。


Enter「ッターン!」

計算結果が出ました。


着色した部分がモデルの係数です。

この係数を書き写して Apache OpenOffice Calc で計算させてみると、


モデル式が予測する数値がParkToolの換算表の値とほぼ一致しました。これで大丈夫だと分かったので、モデル式を Calc のセルに入力して、計測値を自動で kgf 単位に変換できるようにすると、

spoke # reading tension (kgf)
Front R1 14.50 91
Front R2 15.25 98
Front R3 14.25 88
Front R4 15.25 98
Front R5 14.75 93
Front R6 15.50 100
Front R7 14.00 86
Front R8 15.75 103

ほいっ! 出ました。便利!

  • 平均 94.625 kgf
  • 最低値 86 kgf
  • 最高値 103 kgf
  • 標準偏差 5.66

そして WH-RS21、なかなか優秀な数値ではないでしょうか。もう 3300 km 乗っていますが、ちゃんと張力がバランス良く保たれていますね。(7番目のスポークがちょっと低いかな?)

他の結果も合わせて見ると、


平均 (kgf) 最低 (kgf) 最高 (kgf) 標準偏差
前輪・右 94.625 86 103 5.66
前輪・左 94.500 91 100 3.00
後輪・右 122.875 119 127 3.33
後輪・左 64.875 58 70 3.48
※前輪は 0.25 目盛り単位、後輪は 0.1 目盛り単位で読み取っています。

あ、やっぱり前輪の右側はバラツキが大きかった。
そして後輪は、テンションは安定してますが左右の差が酷いですね。ほぼ2倍の差です。


WH-RS21の11速用のハブ

左のフランジ、もうちょっと頑張って外側に出せたんじゃないかと思ってましたが、11速化でオチョコがかなり厳しくなったので、左右のスポークのテンション差を2倍以内に抑えるには、これがギリギリの設計だったんでしょうね。

左のスポーク本数を右の半分にする設計(2 to 1、OptBalなど)も有りますが、WH-RS21は採用していません。DURA-ACE WH-9000-C24-CL もそうですね。これについてシマノの方に伺ったところ、C24-CL は OptBal よりこの設計の方が剛性が高いという実験結果が出たので、敢えて旧来のスポークパターンを維持したそうです。


過去の関連記事
Shimano WH-RS21のレビュー