Main Content

ボディ要素の複合化

モデリング手法としての複合化

多くの場合、単純な固体の属性を複数指定する方が、単一の複雑なボディの属性を指定するよりも簡単です。複合化は、ボディを、より単純なボディ要素の組み合わせとしてモデル化することができるモデリング手法です。複合化を使用すると、他の方法では (または簡単には) 指定できない複雑なジオメトリと慣性を得ることができます。たとえば、sm_cam_flapping_wing モデルの RightWing ボディは、このモデリング手法で作成されたものです。

複合ボディの例

実践: 複合ジオメトリの作成

Rigid Transform ブロックを使用して固体の基準座標系間で共有される固定空間関係を指定し、3 つの一般的な Extruded Solid 形状を組み合わせます。この例の結果は、単に複合固体ジオメトリであるだけでなく、複合ボディでもあります。Simscape Multibody インストールに既定で付属する、意図的に未完成にされているモデル smdoc_compound_link を使用しなければなりません。

複合ボディ モデルの確認

はじめに、smdoc_compound_link モデルとそのワークスペースで定義されているジオメトリ変数を調べます。

  1. MATLAB コマンド プロンプトで、モデル例の名前「smdoc_compound_link」を入力します。モデルが開きます。その中に未接続の 6 つのブロックがあります。3 つの固体ブロック、2 つの Rigid Transform ブロック、1 つの Solver Configuration ブロックです。

    固体ブロックはバイナリ リンクの基本セクションを表し、Rigid Transform ブロックは固体の基準座標系間の空間関係を表します。Solver Configuration ブロックは、Mechanics Explorer での可視化にのみ必要です。

  2. [モデル化] タブで、[モデル エクスプローラー] をクリックします。モデル エクスプローラーは、モデル ワークスペースの確認に使用できる Simulink ツールです。そこには、一般的な Extruded Solid 断面など、関連するすべての固体寸法が定義されています。

  3. 左側にある [モデルの階層構造] ペインで、モデルの名前が付いたノードを展開し、[モデル ワークスペース] サブノードを選択します。数行の MATLAB コードがあらかじめ入力された [モデル ワークスペース] ペインが右側に開きます。

    % Body Geometry Parameters
    l = 20;     % Hole-to-hole distance
    w = 2;      % Link width
    d = 1.2;    % Hole diameter
    t = 1;      % Link thickness
    
    % Main Solid Cross-section:
    A = linspace(-pi/2,pi/2)';
    B = linspace(pi/2,-pi/2)';
    csRight = [l/2+w/2*cos(A) w/2*sin(A)];
    csLeft = [-l/2 w/2; -l/2 + d/2*cos(B) d/2*sin(B); -l/2 -w/2];
    csMain = [csRight; csLeft];
    
    % Hole Solid Cross-section:
    C = linspace(pi/2,3*pi/2)';
    D = linspace(3*pi/2,pi/2)';
    csHole = [w/2*cos(C) w/2*sin(C);
    d/2*cos(D) d/2*sin(D)];

    このコードは、一般的な Extruded Solid 断面の [x, y] 座標を定義しています。断面は、関連する固体の寸法、すなわち長さ、幅、および穴径でパラメーター化されています。コードで指定されたリンクの寸法に注意してください。リンクの穴の間の距離 (変数 l) は 20 で、これは後で [cm] 単位になります。同じ単位で、リンクの幅 (w) は 2、穴径 (d) は 1.2 です。

  4. 各固体ブロックのダイアログ ボックスを開きます。可視化ペインには、モデル ワークスペース内のコードから部分的に導出された、それぞれのブロックに対応する固体ジオメトリが表示されます。固体のうち 2 つは一般的な Extruded Solid ブロック、1 つは Cylindrical Solid ブロックです。

    可視化ペインのツールストリップで、[Toggle visibility of frames] ボタンをクリックします。可視化ペインに固体の基準座標系が表示されます。固体ジオメトリに対する基準座標系の配置は、固体のさまざまな基準座標系間に適用しなければならない剛体変換を考慮するときに重要となります。

剛体変換を介した固体の結合

固体を剛結合し、その空間関係を指定してモデルを完成させます。

  1. 次の図のように固体ブロックを接続します。固体の基準座標系は、今のところ、互いに一致しています。

  2. 図に示すように、接続ラインに Rigid Transform ブロックをドロップします。Simulink により、座標端子が接続ラインに自動接続されます。

    端子の位置には特に注意してください。両方の B 端子が Main という名前の Extruded Solid ブロックに面している必要があります。端子接続を反転させると、最終的なボディにおける固体の相対配置が変わります。

  3. Main-to-Hole Transform という名前の Rigid Transform ブロックのダイアログ ボックスで、以下にリストされた [Translation] パラメーターを指定します。これらのパラメーターは、base (B) 座標系の -x 軸に沿った、バイナリ リンクの半分の長さの並進を記述しています。このモデルでは、この座標系は Main という固体の基準 (B) 座標系と一致したままとなります。

    • Method: Standard Axis

    • Axis: -X

    • Offset: l/2[cm] 単位

  4. Main-to-Peg Transform という名前の Rigid Transform ブロックのダイアログ ボックスで、以下にリストされた [Translation] パラメーターを指定します。これらのパラメーターは、base (B) 座標系の +x 軸に沿ったバイナリ リンクの長さの半分の並進と、+z に沿ったバイナリ リンクの厚さと等しい並進を記述しています。

    • Method: Cartesian

    • Offset: [l/2 0 t][m] 単位

  5. [モデル化] タブで、[モデルの更新] を選択します。Mechanics Explorer が開き、バイナリ リンク モデルの可視化が表示されます。ボディは複合的であり、複数の固体で構成されているため、Mechanics Explorer の使用によってのみ全体を可視化できます。強調のために、固体は異なる階調のグレーで表示されます。

より詳細な断面の例

一般的な Extruded Solid 断面の指定方法を示す例は、実践: 単純な断面の定義を参照してください。その例の断面は、同一ではありませんが、類似のバイナリ リンクのモデルに基づいています。そのリンクは、単一の固体としてモデル化された単純なボディとして扱われ、ペグも穴もありません。しかし、そこで示されている手法は、他の一般的な Extruded Solid 断面にも適用されます。その例を発展させた、断面に穴を含める方法を示す例は、実践: 2 つの穴のある断面の定義を参照してください。

実践: 複合慣性の作成

一般的に、複合化は複雑なジオメトリの表現のために使用されますが、複雑な慣性の表現にも役立ちます。特に、正の質量の慣性を負の質量の慣性と組み合わせて、一方を他方から実質的に差し引くことができます。

この手法を使用して、元々はボアなしでモデル化された円柱固体から、ボアに関連付けられた慣性を差し引きます。高密度の領域と中空の領域は、Cylindrical Solid ブロックを使用して表現します。円柱の長さを 1 m、半径を 0.25 m に設定します。

  1. MATLAB コマンド プロンプトで、「smnew」と入力します。Simscape Multibody テンプレートをベースとした新規モデルが開きます。モデルは、よく使用されるブロックを含んでおり、マルチボディ モデルに適したソルバー設定で構成されています。

  2. Cylindrical Solid ブロックを 2 つ追加して、Solver Configuration ブロックに接続します。ブロック間の座標系接続ラインにより、各ブロックの基準座標系が空間内で一致します。残りのブロックは削除できます。

  3. 左端の Cylindrical Solid ブロックのダイアログ ボックスで、[Radius] パラメーターを 0.25 m に、[Length] パラメーターを 1 m に設定します。このブロックの名前を Dense にします。

  4. 右端の Cylindrical Solid ブロックのダイアログ ボックスで、[Radius] パラメーターを 0.20 m に、[Length] パラメーターを 1 m に設定します。このブロックの名前を Hollow にします。

  5. Hollow ブロックの [Inertia][Density] パラメーターを、Dense ブロックで使用されている値の負値 -1000 kg/m^3 に設定します。Cylindrical Solid ブロックで表される複合ボディが、半径 0.2 m のボアのある中空円柱の慣性をもつようになります。

  6. [Inertia][Derived Values] ノードを展開し、[Update] ボタンをクリックして、[Hollow] 固体の慣性パラメーターを表示します。[Dense] 固体にも同じことを行います。質量および慣性モーメントは、密度の入力から予想されるように符号が逆になります。

関連するトピック