複合歯車列のモデル化
遊星歯車列は、産業用システム、自動車システムおよび航空宇宙システムで広く使用されています。典型的な用途は、自動車のオートマチック トランスミッション システムです。運動学的な視点から見ると、この機構の特徴はギアの対の間に設定される運動学的拘束にあります。これらの拘束によってギアの対の角速度比が固定され、対になった各ギアが同期して作動します。
Simscape™ Multibody™ では、Gears サブライブラリのブロックを使用して、噛み合ったギア間の運動学的拘束を表します。このチュートリアルでは、これらのブロックを使用して遊星歯車列をモデル化する方法を説明します。歯車列には 4 つのボディが含まれています。
太陽歯車
遊星歯車
輪歯車
遊星枠
遊星枠を含め、各ボディは中心軸の周りを回転できます。さらに、各遊星歯車は太陽歯車の周りを回ることができます。ジョイント ブロックによって必要な自由度を与える一方で、ギア拘束ブロックによって、ギアが噛み合っているかのような動きを確保します。
太陽・遊星歯車セットのモデル化
ギアのボディをモデル化し、適切な自由度で接続します。後の手順で、このモデルにギア拘束を追加します。
以下のブロックを新しいモデルにドラッグします。
図に示すようにブロックを接続して、名前を付けます。
Sun Gear ブロックのダイアログ ボックスで、以下のパラメーターを指定します。
関数 simmechanics.demohelpers.gear_profile
は、インボリュート歯形をもつ外接歯車の断面行列を生成します。断面は近似です。この関数は、例としてのみ使用してください。
Planet Gear ブロックのダイアログ ボックスで、以下のパラメーターを指定します。
Rigid Transform ブロックのダイアログ ボックスで、次のパラメーターを指定します。
モデル ワークスペースで、MATLAB® コードを使用してブロック パラメーターを定義します。
% Common Parameters Rho = 2700; T = 3; A = 0.8; % Gear Addendum % Sun Gear Parameters Sun.RGB = [0.75 0.75 0.75]; Sun.R = 15; Sun.N = 40; % Planet Gear Parameters Planet.RGB = [0.65 0.65 0.65]; Planet.R = 7.5; Planet.N = Planet.R/Sun.R*Sun.N;
モデルのシミュレーションを実行します。運動を誘導するには、ジョイント ブロックのダイアログ ボックスで速度の状態ターゲットを調整してみます。太陽歯車と遊星歯車がそれぞれ独立して動くことに注意してください。ギアの運動に制約を加えるには、ギアの固体ブロックの間に Gear Constraint ブロックを追加しなければなりません。
結果のモデルのコピーを開くには、MATLAB コマンド ラインで次のように入力します。
openExample('sm/DocPlanetaryGearExample','supportingFile','DocPlanetaryGearA.slx')
太陽・遊星歯車の運動の制約
太陽歯車と遊星歯車の間に働く運動学的拘束を指定します。これらの拘束によって、ギアが必ず噛み合った状態で動くようになります。
以下のブロックを、太陽・遊星歯車のモデルにドラッグします。
以下に示すように、ブロックを接続します。新しいブロックが強調表示されます。
Common Gear Constraint ブロックのダイアログ ボックスで、以下のパラメーターを指定します。
Distance Constraint ブロックのダイアログ ボックスで、次のパラメーターを指定します。
Distance — 「Sun.R + Planet.R
」と入力する。単位 cm
を選択する。
モデルのシミュレーションを実行します。運動を誘導するには、ジョイント ブロックのダイアログ ボックスで速度の状態ターゲットを調整してみます。太陽歯車と遊星歯車が同期して動くようになったことに注意してください。
結果のモデルのコピーを開くには、MATLAB コマンド ラインで次のように入力します。
openExample('sm/DocPlanetaryGearExample','supportingFile','DocPlanetaryGearB.slx')
輪歯車の追加
輪歯車のボディをモデル化し、適切な自由度で接続して、遊星歯車に対するその動きを制約します。
以下のブロックを、太陽・遊星歯車のモデルに追加します。
図に示すようにブロックを接続して、名前を付けます。新しいブロックが強調表示されます。
Ring Gear ブロックのダイアログ ボックスで、以下のパラメーターを指定します。
Common Gear Constraint1 ブロックのダイアログ ボックスで、以下のパラメーターを指定します。
モデル ワークスペースで、MATLAB コードを使用して Ring Gear ブロックのパラメーターを定義します。
% Ring Gear Parameters
Ring.RGB = [0.85 0.45 0];
Ring.R = Sun.R + 2*Planet.R;
Ring.N = Ring.R/Planet.R*Planet.N;
Ring.Theta = linspace(-pi/Ring.N,2*pi-pi/Ring.N,100)';
Ring.RO = 1.1*Ring.R;
Ring.CSO = [Ring.RO*cos(Ring.Theta) Ring.RO*sin(Ring.Theta)];
Ring.CSI = simmechanics.demohelpers.gear_profile(2*Ring.R,Ring.N,A);
Ring.CSI = [Ring.CSI; Ring.CSI(1,:)];
Ring.CS = [Ring.CSO; flipud(Ring.CSI)];
モデルのシミュレーションを実行します。運動を誘導するには、ジョイント ブロックのダイアログ ボックスで速度の状態ターゲットを調整してみます。太陽歯車、遊星歯車および輪歯車が噛み合った状態で動くことに注意してください。
結果のモデルのコピーを開くには、MATLAB コマンド ラインで次のように入力します。
openExample('sm/DocPlanetaryGearExample','supportingFile','DocPlanetaryGearC.slx')
歯車枠の追加
ここまでは、Distance Constraint ブロックを使用して、太陽歯車と遊星歯車を固定距離に維持してきました。実際の遊星歯車では、歯車枠がこの拘束を課します。歯車枠をモデル化し、太陽歯車と遊星歯車の間に接続します。
次のブロックを遊星歯車モデルから削除します。
Planar Joint
Rigid Transform
Distance Constraint
以下のブロックを遊星歯車モデルに追加します。
図に示すようにブロックを接続して、名前を付けます。Rigid Transform ブロックの向きによく注意してください。B 座標系端子は Solid ブロックに面していなければなりません。新しいブロックが強調表示されます。
Carrier ブロックのダイアログ ボックスで、以下のパラメーターを指定します。
Rigid Transform ブロックのダイアログ ボックスで、次のパラメーターを指定します。
Rigid Transform1 ブロックのダイアログ ボックスで、以下のパラメーターを指定します。
モデル ワークスペースで、MATLAB コードを使用して Carrier ブロックのパラメーターを定義します。
% Gear Carrier Parameters Carrier.RGB = [0.25 0.4 0.7]; Carrier.L = Sun.R + Planet.R; Carrier.W = 2*T; Carrier.T = T/2; Theta = (90:1:270)'*pi/180; Beta = (-90:1:90)'*pi/180; Carrier.CS = [-Carrier.L/2 + Carrier.W/2*cos(Theta) ... Carrier.W/2*sin(Theta); Carrier.L/2 + Carrier.W/2*cos(Beta), ... Carrier.W/2*sin(Beta)];
モデルのシミュレーションを実行します。運動を誘導するには、ジョイント ブロックのダイアログ ボックスで速度の状態ターゲットを調整してみます。歯車枠が Distance Constraint ブロックのタスクを実行するようになったことに注意してください。
結果のモデルのコピーを開くには、MATLAB コマンド ラインで次のように入力します。
openExample('sm/DocPlanetaryGearExample','supportingFile','DocPlanetaryGearD.slx')
遊星歯車の追加
遊星歯車をさらに追加して、モデルを試します。追加の遊星歯車を受け入れるには、Carrier ボディを変更しなければなりません。
4 つの遊星歯車をもつモデルを確認するには、MATLAB コマンド ラインで次のように入力します。
openExample('sm/DocPlanetaryGearExample','supportingFile','DocPlanetaryGearE.slx')