本項では、structural internal forceの代わりに“deformable displacement joint”を用いてバネとダンパーを表現し、前項で作成したバネ‐マス‐ダンパー系のシミュレーションモデルと同等なモデルを作成します。
ジョイントは通常、ハードな拘束条件を付加して系の自由度を減らしますが、次の3つの“deformable”ジョイントは例外です。
これらのジョイントは“deformble”の名の通り、2つのnodeを弾性力や粘性力で結びつけます。“ゴムの塊”のようなもので2つの剛体を接続することをイメージすると良いでしょう。diformable displacement jointは並進方向のみ、deformable hingeは回転方向のみ、そしてdeformable jointは並進方向と回転方向の両方に弾性力や粘性力を働かせることができます。弾性力や粘性力の特性は“constitutive law”によって定義します。constitutive lawはとても多くの種類がありますので、詳しくは公式のInput manualを参照してください。
このジョイントは、2つのnode(またはオフセットした点)の間に並進方向の弾性力や粘性力を働かせます。deformable displacement jointを定義する基本的なステートメントの型は次のようになります。
joint: <label> deformable displacement joint, <node 1>, <relative offset 1>, [ hinge, <relative orientation matrix 1>, ] <node 2>, <relative offset 2>, [ hinge, <relative orientation matrix 2>, ] <constitutive law>;
<constitutive law>はnode1の座標系を参照します。
一般に、deformable displacement jointを用いてバネとダンパーを表現することができます。本例題の場合、次のようにdeformable displacement jointを定義します。(図1参照)
set: integer JoDfmd_SpringDamper = 4; joint: JoDfmd_SpringDamper, deformable displacement joint, Node_Ground, null, # relative offset Node_Mass, null, # relative offset linear viscoelastic isotropic, K, # stiffness C, # viscosity coefficient prestrain, single, 0., 0., -1, const, L;
ここで、バネとダンパーは線形なので、constitutive lawは“linear viscoelastic isotropic”を使用します。また、バネは自然長 L > 0 を持つので、“prestrain”でこれを定義します。
deformable displacement jointを用いてバネとダンパーを表現した場合の、例題8のバネ‐マス‐ダンパー系の入力ファイルを以下のコード1に示します。
# spring_mass_damper_2.mbd #----------------------------------------------------------------------------- # [Data Block] begin: data; problem: initial value; end: data; #----------------------------------------------------------------------------- # [<Problem> Block] begin: initial value; initial time: 0.; final time: 5.; time step: 1.e-3; max iterations: 10; tolerance: 1.e-6; end: initial value; #----------------------------------------------------------------------------- # [Control Data Block] begin: control data; skip initial joint assembly; output frequency: 10; structural nodes: 2; rigid bodies: 1; joints: 4; gravity; end: control data; #----------------------------------------------------------------------------- # Design Variables set: real M = 1.; #[kg] Mass set: real L = 1.; #[m] Spring Natural Length set: real K = 20.; #[N/m] Spring Stiffness Coefficient set: real C = 1; #[Ns/m] Damper Damping Coefficient #----------------------------------------------------------------------------- # Node Labels set: integer Node_Ground = 1; set: integer Node_Mass = 2; # Body Labels set: integer Body_Mass = 1; # Joint Labels set: integer JoClamp_Ground = 1; set: integer JoInLin_Ground_Mass = 2; set: integer JoPrism_Ground_Mass = 3; set: integer JoDfmd_SpringDamper = 4; #----------------------------------------------------------------------------- # [Nodes Block] begin: nodes; #----------------------------------------------------------------------------- # Nodes structural: Node_Ground, static, null, # absolute position eye, # absolute orientation null, # absolute velocity null; # absolute angular velocity structural: Node_Mass, dynamic, 0., 0., -L, # absolute position eye, # absolute orientation null, # absolute velocity null; # absolute angular velocity end: nodes; #----------------------------------------------------------------------------- # [Elements Block] begin: elements; #----------------------------------------------------------------------------- # Bodies body: Body_Mass, Node_Mass, M, # mass null, # relative center of mass eye; # inertia matrix #----------------------------------------------------------------------------- # Joints joint: JoClamp_Ground, clamp, Node_Ground, null, # absolute position eye; # absolute orientation joint: JoInLin_Ground_Mass, in line, Node_Ground, null, # relative line position eye, # relative line orientation Node_Mass; joint: JoPrism_Ground_Mass, prismatic, Node_Ground, Node_Mass; joint: JoDfmd_SpringDamper, deformable displacement joint, Node_Ground, null, # relative offset Node_Mass, null, # relative offset linear viscoelastic isotropic, K, # stiffness C, # viscosity coefficient prestrain, single, 0., 0., -1, const, L; #----------------------------------------------------------------------------- # Gravity gravity: 0., 0., -1., const, 9.81; end: elements;
図2は、structural internal forceとdeformable displacement jointのそれぞれを用いて作成した、2つのバネ‐マス‐ダンパー系シミュレーションモデルのシミュレーション結果の比較です。これより、2つのモデルが全く同等であることが確認できます。