1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

オープンCAEAdvent Calendar 2024

Day 21

OpenFOAMのrigidBodyMotionによる二重振り子

Last updated at Posted at 2024-12-21

rigidBodyMotion

 OpenFOAMのrigidBodyMotionでは、複雑な物体の動きを表現することができます。

 例えば、OpenFOAMのチュートリアル
$FOAM_TUTORIALS/multiphase/overInterDyMFoam/rigidBodyHullでは、船体と一緒に動くプロペラの回転をrigidBodyMotionで模擬しています。

 この機能を使用して、二重振り子の計算を行ってみました。

doublePendulum.gif

ケースファイル

 こちらにOpenFOAM v2212で動作確認をしたケースファイルが置いてあります。

dynamicMeshDictの設定

 物体は上の動画の赤い物体「box1」と青い物体「box2」の2つが定義されています。「box1」は絶対座標系で$(0, 0, 1)$の位置に紐でつながっていて、「box2」は「box1」に紐でつながっています。(もちろん、紐と言っても剛体を想定しています。)
 まず、「box1」の設定から見てみましょう。

box1の設定

box1
{
    type cuboid;
    parent root;

    mass 5;
    L (0.1 0.1 0.1);
    centerOfMass (-1.0 0.0 0.0);
    joint
    {
        type Ry;
    }
    transform (1 0 0 0 1 0 0 0 1) (0.0 0.0 1.0);

    patches (box1);
    innerDistance 100;
    outerDistance 200;
}

 物体は、「cuboid」というタイプで定義されていて、massで物体の質量、Lで直方体の各方向の長さを定義します。これらの設定を使って、慣性モーメントの値は自動的に計算されます。

 transformは、この物体の運動についての原点の位置の設定です。parentrootに指定されているので、絶対座標系に対してこの値を定義します。設定の最初のカッコが回転移動を表すテンソル、次のカッコが並進移動を表すベクトルになっています。「box1」は$(0, 0, 1)$の位置で固定された紐につながっているので、transformの2つ目のカッコの設定が(0.0 0.0 1.0)になっています。

 centerOfMassは重心位置の設定です。この物体の運動の原点位置$(0, 0, 1)$からの相対座標値で設定します。「box1」の初期位置は、振り子の中心位置から$x$方向に$-1$離れた点ですので、(-1.0 0.0 0.0)に設定しています。

box2の設定

box2
{
    type cuboid;
    parent box1;

    mass 5;
    L (0.1 0.1 0.1);
    centreOfMass (-1.0 0.0 0.0);
    joint
    {
        type Ry;
    }
    transform (1 0 0 0 1 0 0 0 1) (-1.0 0.0 0.0);

    patches (box2);
    innerDistance 100;
    outerDistance 200;
}

 「box2」は、「box1」と紐でつながっています。つまり、「box2」は移動する「box1」まわりに回転するように定義する必要があるので、parentbox1に設定します。

 transformで設定する「box2」の運動の原点は「box1」のある位置です。parentbox1に設定されているので、transformは「box1」の運動の原点位置に対する相対座標値で設定します。「box1」の初期位置は「box1」の運動の原点に対して$x$方向に-1離れた点ですので、transformの2つ目のカッコの設定は(-1.0 0.0 0.0)にします。

 centerOfMassは「box1」と同じように、この物体の運動の原点位置からの相対座標値で設定するので、(-1.0 0.0 0.0)にします。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?