Reference: 2DCluster

Model ElementReference_2DClusterは、特定のボディのセットを、3つの主平面XY、YZ、またはZXのいずれかの平面内を動くように拘束することを指定します。

説明

このようなボディは、平面内の並進に対応する2つの自由度と、平面に垂直な軸の周りの回転に対応する1つの自由度の3つの自由度のみです。ボディのタイプはBody_RigidまたはBody_Pointにできます。平面ボディの一般的な用途には、ベルトドライブやチェーンドライブ、および一般的な平面機構があります。

フォーマット

<Reference_2DCluster
    id                  = "integer"      
    planar_type         = { "XY" | "YX" | "YZ" | "ZY" | "ZX" | "XZ" }      
    num_body            = "integer">            
       integer integer integer integer            
       
       integer integer integer integer  
</Reference_2DCluster>

属性

id
要素識別番号(整数 > 0)。この番号は、すべてのReference_2DCluster要素の中で一意です。
planar_type
全体座標系の3つの平面XYYZ、またはZXから1つを選択します。2Dクラスターのすべてのメンバーが、この平面内を動くように拘束されます。
num_body
2Dクラスター内のボディの数。この引数の後に、すべてのボディのIDのリストが続きます。

エアホッケーのテーブルについて考えます。パックがテーブルのエアクッション上をスライドし、互いに衝突したり、テーブルのエッジと衝突したりするモーションのモデル化に注目することにします。テーブルから跳ね返るケースは考慮しません。このような状況では、パックを平面ボディとしてモデル化すると好都合です。

ボディを平面として定義するには、次の2ステップのプロセスが必要です:
  1. 以下のようにReference_2DCluster要素を定義します。基本的には、IDが30101、30301、30401のパックが、ID 1の2Dクラスターに属しており、その3つのメンバーはYZ平面内を動くように拘束されるということを指定します。
    <Reference_2DCluster
      id                  = "1"
      planar_type         = "YZ"     
      num_body            = "3">
      30101 30301 30401 
    </Reference_2DCluster>
  2. 上で定義されたReference_2DCluster要素を、以下に示すようにSubsystem_Planar要素で参照します:
    <Subsystem_Planar
        num_2d_cluster      = "1">
        1 
    </Subsystem_Planar> 

この要素はID 1の1つの2Dクラスターをアクティブにするよう指定します。ボディが平面内で動くように拘束されない場合にモデルがどのように振る舞うかを確認する場合は、Subsystem_Planar要素を削除するかコメントアウトするだけです。

コメント

  1. 平面ボディは、質量中心マーカーの原点で指定して選択した平面からの一定のオフセットを持つことができます。
  2. 別の平面に拘束された別のボディの集合がある場合は、集合ごとに1つの2Dクラスターを使用します。また、1つのSubsystem_Planar要素で複数の2Dクラスターを参照することもできます。
  3. 運動学的な観点からすると、平面ボディは、平面ジョイントで地面に拘束された3D剛体のように振る舞います。ただし、数学的にはこの2つは異なります。平面ボディは、3つの自由度を拘束するのではなく、完全に排除します。これにより、解く必要のある方程式の総数が少なくてすみ、シミュレーションが高速になります。ただし、これには、平面拘束に対応する反力を計算できないという欠点もあります。これらの力およびモーメントに注目する場合は、3Dの剛体を平面ジョイントと共に使用してください。