Main Content

複合歯車列のモデル化

モデルの概要

遊星歯車列は、産業用システム、自動車システムおよび航空宇宙システムで広く使用されています。典型的な用途は、自動車のオートマチック トランスミッション システムです。運動学的な視点から見ると、この機構の特徴はギアの対の間に設定される運動学的拘束にあります。これらの拘束によってギアの対の角速度比が固定され、対になった各ギアが同期して作動します。

Simscape™ Multibody™ では、Gears サブライブラリのブロックを使用して、噛み合ったギア間の運動学的拘束を表します。このチュートリアルでは、これらのブロックを使用して遊星歯車列をモデル化する方法を説明します。歯車列には 4 つのボディが含まれています。

  • 太陽歯車

  • 遊星歯車

  • 輪歯車

  • 遊星枠

遊星枠を含め、各ボディは中心軸の周りを回転できます。さらに、各遊星歯車は太陽歯車の周りを回ることができます。ジョイント ブロックによって必要な自由度を与える一方で、ギア拘束ブロックによって、ギアが噛み合っているかのような動きを確保します。

太陽・遊星歯車セットのモデル化

ギアのボディをモデル化し、適切な自由度で接続します。後の手順で、このモデルにギア拘束を追加します。

  1. 以下のブロックを新しいモデルにドラッグします。

    ライブラリブロック
    Body ElementsExtruded Solid2
    JointsRevolute Joint1
    JointsPlanar Joint1
    Frames and TransformsRigid Transform1
    Frames and TransformsWorld Frame1
    UtilitiesMechanism Configuration1
    [Simscape][Utilities]Solver Configuration1

  2. 図に示すようにブロックを接続して、名前を付けます。

  3. Sun Gear ブロックのダイアログ ボックスで、以下のパラメーターを指定します。

    パラメーター設定
    [Geometry][Cross-Section]

    simmechanics.demohelpers.gear_profile(2*Sun.R,Sun.N,A)」と入力する。単位 cm を選択する。

    [Geometry][Length]T」と入力する。単位 cm を選択する。
    [Inertia][Density]Rho」と入力する。
    [Graphic][Visual Properties][Color]Sun.RGB」と入力する。

    関数 simmechanics.demohelpers.gear_profile は、インボリュート歯形をもつ外接歯車の断面行列を生成します。断面は近似です。この関数は、例としてのみ使用してください。

  4. Planet Gear ブロックのダイアログ ボックスで、以下のパラメーターを指定します。

    パラメーター設定
    [Geometry][Cross-Section]simmechanics.demohelpers.gear_profile(2*Planet.R,Planet.N,A)」と入力する。単位 cm を選択する。
    [Geometry][Length]T」と入力する。単位 cm を選択する。
    [Inertia][Density]Rho」と入力する。
    [Graphic][Visual Properties][Color]Planet.RGB」と入力する。

  5. Rigid Transform ブロックのダイアログ ボックスで、次のパラメーターを指定します。

    パラメーター設定
    [Translation][Method][Standard Axis] を選択する。
    [Translation][Axis][+Y] を選択する。
    [Translation][Offset]Sun.R + Planet.R」と入力する。単位 cm を選択する。

  6. モデル ワークスペースで、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;

  7. モデルのシミュレーションを実行します。運動を誘導するには、ジョイント ブロックのダイアログ ボックスで速度の状態ターゲットを調整してみます。太陽歯車と遊星歯車がそれぞれ独立して動くことに注意してください。ギアの運動に制約を加えるには、ギアの固体ブロックの間に Gear Constraint ブロックを追加しなければなりません。

結果のモデルのコピーを開くことができます。MATLAB コマンド ラインで「smdoc_planetary_gear_a」と入力します。

太陽・遊星歯車の運動の制約

太陽歯車と遊星歯車の間に働く運動学的拘束を指定します。これらの拘束によって、ギアが必ず噛み合った状態で動くようになります。

  1. 以下のブロックを、太陽・遊星歯車のモデルにドラッグします。

    ライブラリブロック
    ConstraintsDistance Constraint
    [Gears and Couplings][Gears]Common Gear Constraint

  2. 以下に示すように、ブロックを接続します。新しいブロックが強調表示されます。

  3. Common Gear Constraint ブロックのダイアログ ボックスで、以下のパラメーターを指定します。

    パラメーター設定
    Specification Method[Pitch Circle Radii] を選択する。
    [Specification Method][Base Gear Radius]Sun.R」と入力する。単位 [cm] を選択する。
    [Specification Method][Follower Gear Radius]Planet.R」と入力する。単位 [cm] を選択する。

  4. Distance Constraint ブロックのダイアログ ボックスで、次のパラメーターを指定します。

    • Distance — 「Sun.R + Planet.R」と入力する。単位 [cm] を選択する。

  5. モデルのシミュレーションを実行します。運動を誘導するには、ジョイント ブロックのダイアログ ボックスで速度の状態ターゲットを調整してみます。太陽歯車と遊星歯車が同期して動くようになったことに注意してください。

結果のモデルのコピーを開くことができます。MATLAB コマンド ラインで「smdoc_planetary_gear_b」と入力します。

輪歯車の追加

輪歯車のボディをモデル化し、適切な自由度で接続して、遊星歯車に対するその動きを制約します。

  1. 以下のブロックを、太陽・遊星歯車のモデルに追加します。

    ライブラリブロック
    Body ElementsExtruded Solid
    JointsRevolute Joint
    [Gears and Couplings][Gears]Common Gear Constraint

  2. 図に示すようにブロックを接続して、名前を付けます。新しいブロックが強調表示されます。

  3. Ring Gear ブロックのダイアログ ボックスで、以下のパラメーターを指定します。

    パラメーター設定
    [Geometry][Cross-Section]Ring.CS」と入力する。単位 [cm] を選択する。
    [Geometry][Length]T」と入力する。
    [Inertia][Density]Rho」と入力する。
    [Graphic][Visual Properties][Color]Ring.RGB」と入力する。

  4. Common Gear Constraint1 ブロックのダイアログ ボックスで、以下のパラメーターを指定します。

    パラメーター設定
    Type[Internal] を選択する。
    Specification Method[Pitch Circle Radii] を選択する。
    [Specification Method][Base Gear Radius]Planet.R」と入力する。単位 cm を選択する。
    [Specification Method][Follower Gear Radius]Ring.R」と入力する。単位 cm を選択する。

  5. モデル ワークスペースで、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)];

  6. モデルのシミュレーションを実行します。運動を誘導するには、ジョイント ブロックのダイアログ ボックスで速度の状態ターゲットを調整してみます。太陽歯車、遊星歯車および輪歯車が噛み合った状態で動くことに注意してください。

結果のモデルのコピーを開くことができます。MATLAB コマンド ラインで「smdoc_planetary_gear_c」と入力します。

歯車枠の追加

ここまでは、Distance Constraint ブロックを使用して、太陽歯車と遊星歯車を固定距離に維持してきました。実際の遊星歯車では、歯車枠がこの拘束を課します。歯車枠をモデル化し、太陽歯車と遊星歯車の間に接続します。

  1. 次のブロックを遊星歯車モデルから削除します。

    • Planar Joint

    • Rigid Transform

    • Distance Constraint

  2. 以下のブロックを遊星歯車モデルに追加します。

    ライブラリブロック
    Body ElementsExtruded Solid1
    JointsRevolute Joint2
    Frames and TransformsRigid Transform2

  3. 図に示すようにブロックを接続して、名前を付けます。

    Rigid Transform ブロックの向きによく注意してください。B 座標系端子は Solid ブロックに面していなければなりません。新しいブロックが強調表示されます。

  4. Carrier ブロックのダイアログ ボックスで、以下のパラメーターを指定します。

    パラメーター設定
    [Geometry][Cross-Section]Carrier.CS」と入力する。単位 [cm] を選択する。
    [Geometry][Length]Carrier.T」と入力する。
    [Inertia][Density]Rho」と入力する。
    [Graphic][Visual Properties][Color]Carrier.RGB」と入力する。

  5. Rigid Transform ブロックのダイアログ ボックスで、次のパラメーターを指定します。

    パラメーター設定
    [Translation][Method][Cartesian] を選択する。
    [Translation][Offset][Carrier.L/2 0 -(Carrier.T+T)/2]」と入力する。単位 cm を選択する。

  6. Rigid Transform1 ブロックのダイアログ ボックスで、以下のパラメーターを指定します。

    パラメーター設定
    [Translation][Method][Cartesian] を選択する。
    [Translation][Offset][-Carrier.L/2 0 -(Carrier.T+T)/2]」と入力する。単位 cm を選択する。

  7. モデル ワークスペースで、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)];

  8. モデルのシミュレーションを実行します。運動を誘導するには、ジョイント ブロックのダイアログ ボックスで速度の状態ターゲットを調整してみます。歯車枠が Distance Constraint ブロックのタスクを実行するようになったことに注意してください。

結果のモデルのコピーを開くことができます。MATLAB コマンド ラインで「smdoc_planetary_gear_d」と入力します。

遊星歯車の追加

遊星歯車をさらに追加して、モデルを試します。追加の遊星歯車を受け入れるには、Carrier ボディを変更しなければなりません。4 つの遊星歯車をもつ例を確認するには、MATLAB コマンド ラインで「smdoc_planetary_gear_e」と入力します。