これはrogy Advent Calendar 14日目の記事です.
機械系の記事が少ないので機構系の話を書いていきますぞ.
どーも.今年NHKロボコンチームMaquinistaを定年退職しましたおにぎりです,
現在は卒論研究をしながらきままに卒論研究する毎日を送っています.
1. 前置き
僕は2年前,工大祭やMakerFaireTokyoなどで非円形歯車を展示していました.非円形歯車とは,名前の通り「丸くない歯車」です.丸くなくても設計次第では回るんです.不思議ですよね.現在,少しデザインを変えてものつくりセンターの入り口にて展示させて頂いてます.
そこで先日,この展示を見て頂いた東工大天文部の後輩K君という子が僕を訪ねてきました.話によると,どうやら来年の工大祭に向けてある出し物を製作中だそうで,その一部に非円形歯車を用いたいとのこと.それも,「仕様通りの角速度比で伝達」したい,という相談でして,僕の以前使っていたソフトを使う場合は有料版(高い)を買わねばできません,さて困った.うーん,手軽なソフトだけでなんとかできないかな……ん?そうだこれだ!
Matlabさんがいるじゃないか!!!!
※東工大生にとっては無料でインストールできる手軽なソフトです
さて,ここからが本編です,
そんなこんなで,Matlabを用いて,一度は挫折した完全自作の非円形歯車製作をしましょう,という風になりました.(全くもってMatlabである必要はない.ほんとにただそこにあったから.)
第2,3項ではこの設計手法を簡単にかいていきます.
注意事項
~読むのが面倒な方へ~2,3項はできるだけ分かりやすくかつ必要最低限のことを書いているつもりですが,やや専門的で長い説明になってしまっているので,作った結果だけ知りたいという人は飛ばして次の記事の結果編だけ見てくださっても構わないです.
~しっかり読んでくださる方へ~一部怪しいこと書いてるので,正しい表現とは限りません.また,そういった表現をもし見つけたらこっそりコメントで教えてください.
~専門の方へ~許してください.
2. 非円形摩擦車の作成
まずは歯のついていない,非円形摩擦車を考えていきます.つまり,つねに転がり接触をする2つの曲線を作ろうというわけです.転がり接触点の定義(?)を簡単に表すと,
①運動中,その点で物体同士が接触している
②運動中,それぞれの物体上でのその点の速度が一致している
の2つです.
2つの曲線がそれぞれ$\phi_1$,$\phi_2$だけ回転中心$O_1$,$O_2$(すなわち回転軸)で回った時の,接触点における転がり半径を$r_1$,$r_2$とします.また,その回転中心間の距離(軸間距離)を$a$とします.このとき,条件②を満たすように,接触点の速度方向を一致させるには図1のように接触点は2つの回転中心を通る直線上になければなりません.今後,図の左にある歯車を駆動側,右にある歯車を従動側とします.すなわち,左から右に動力を伝達しているとします.
すると,条件①より,
$r_1+r_2=a \tag1$
となります.また,条件②より,それぞれの点での速さ$\upsilon_1$,$\upsilon_2$も一致するので
$\upsilon_1=\upsilon_2 \tag2$
となります.ここで,$\upsilon_1$,$\upsilon_2$はそれぞれ,
$\upsilon_1=\frac{d\phi_1}{dt}r_1 \tag3$
$\upsilon_2=\frac{d\phi_2}{dt}r_1 \tag4$
で表されるので,式(2)~(4)より,
$\frac{d\phi_2}{d\phi_1}=\frac{r_1}{r_2} \tag5$
であると分かります.すなわち,2つの物体の転がり運動の角速度比はその時のころがり半径比である,ということになります.(言われりゃ当たり前だよね)
あとは設計関数である$d\phi_2/d\phi_1$(以下$f(\phi_1)$)と軸間距離$a$を決めてあげることで式(1)(4)より極座標として摩擦車の外形形状が次のように決まります.
$\int_{0}^{2\pi}f(\phi_1)d\phi_1=2\pi \tag8$
これは,例えば設計関数を式(8)を満たすように定数倍してあげることで解決しますね.
てなわけでこれをMatlabで実装してみました.プログラミングなんてほとんどしない僕はこれだけでも少々手こずりました.
例えば軸間距離を50mm,設計関数を
$f(\phi_1)=1+\frac{\sin 4\phi_1}{4} \tag9$
それっぽいですね.よりそれっぽさを確かめるために,回してみましょう.
うん.それっぽい.
しかし,このままでは摩擦による動力伝達なので,途中ですべってしまうとうまく接触しなくなる可能性がありますね.というわけでここに歯をつけていきましょう.
3. 摩擦車に歯をつける
はい,ここからが僕の知っている限りオリジナリティのある方法です.2年前はここで挫折しました.
注意事項2
ここまではほぼただの転がり接触理論の話で,解析的に正しい方法でしたが,ここから下は僕が考えた「怪しい方法」です.レーザー加工機での加工を前提としているので,「この加工精度ならバックラッシは多少あっても引っかかりはなしに動くっしょww」というノリです.接触理論をまじめに考えているわけではないです.ご了承ください.
3.1. 歯の位置と向き
先ほど作った摩擦車の外形を製作する非円形歯車のピッチ曲線とします.ピッチ曲線とは,歯車同士のかみ合い点をつないだ曲線で,円形歯車ではピッチ円と呼ばれるものです.まずはこのピッチ曲線を,決められた歯数zだけ等分割する点を求めます.ここに歯を置いていくわけです.まずは左の駆動側の歯車において,この等分割する反時計周りで$k$番目の点の座標を$\boldsymbol{P_{z1}} [k]$ $(k=1,2,⋯z)$とします.この点に歯を生やすわけですが,生やす向きが重要です.かみ合い点において,2つの歯車のピッチ曲線は常に接線が共通であるため,ここではピッチ曲線の法線方向に歯を生やすことにします.てなわけで数値微分を行って歯の向きの座標変換用に接線単位ベクトル$\boldsymbol{t_1} [k]$と法線単位ベクトル$\boldsymbol{n_1} [k]$を数値計算で求めます.従動歯車においても同様です.これで,歯を置く位置と向きが決まります(図4参照).
で,実際に先ほどの例に当てはめてみると図5のような感じ.歯車っぽくなってきた.
3.2. 歯の形
次は歯の形です.これがやっかいです.ここでは簡単に,そこでのピッチ曲線の曲率にあったインボリュート歯形を採用することにしましょう.まずは歯の大きさであるモジュール$m$をどうするか.これは,円形歯車でのモジュールの定義を拡張し,$m=\frac{L}{\pi z} \tag{10}$
とします.なお,$L$はピッチ曲線長を指します.当然この$m$は,2つの歯車の全ての歯において共通とします.モジュールの次にインボリュート歯形を決定するのに重要なパラメータが,ピッチ円直径です.しかし,当然非円形歯車にピッチ円直径という概念はありません.そこで,ピッチ円直径の代わりにそこでのピッチ曲線の曲率半径×2の値を用いるわけです.曲率半径は,$\boldsymbol{P_{z1}} [k-1]$,$\boldsymbol{P_{z1}} [k]$,$\boldsymbol{P_{z1}} [k+1]$の3点を通る円の半径$R$とします(図6).この$R$は正弦定理とかで簡単に求まります.この円の中心が$\boldsymbol{P_{z1}} [k]$について$O_1$と反対側にある場合,$R<0$とします.要するに,凹んでる部分は曲率半径が負だよってことです.
曲率半径によって変わる歯形の様子を図7に示します.$1/R\to 0$の時はラックのような,$R<0$の時は内歯車のような歯形になります.なお,インボリュート歯形の基礎円以下のところは適当に直線でつないでます.
3.3. 歯のあてはめ
これらを当てはめてつなぐとようやく外形の完成です.お疲れ様です.
先ほどの例における元のピッチ曲線と歯を当てはめて作った非円形歯車の外形を図8に示します.
いやー,かっちょいいですね.まわしてちゃんとかみ合うか確かめてみましょう.
おぉ!良い!良いぞぉ!
(僕の他の変な歯車作ったよ~記事がこちら→双葉車,非円形タイヤラジコン)