Flex_Body

Model ElementFlex_Bodyは、MotionSolve内の弾性体オブジェクトを定義します。このエンティティには、剛体と同様に質量プロパティと慣性プロパティがあります。また、荷重によって変形可能にする弾性プロパティもあります。

クラス名

Flex_Body

説明

Body_Flexibleは、3D空間内で作用し、ここでは大規模な総体的モーションと変形を同時に受けることができます。MotionSolveは、次の2種類の弾性体をサポートしています:
  • 線形弾性体:変形は小規模ですが、総体的モーションは大規模です。弾性は、一連の空間モード形状と時間依存のモード座標によって定義されます。線形弾性体の4つの主要なバリエーションを利用できます。
  • 非線形有限要素(NLFE)ボディ:変形と総体的モーションの両方を大規模にすることができます。これは、弾性体の完全に非線形の有限要素表現です。

ただし、Pythonインターフェースでサポートされているのは、線形弾性体のみです。

属性の概要

名前 プロパティ コマンドで変更可能か 設計可能か
id Int ()    
label Str ()  
qg Location ([0,0,0])   FDのみ
reuler Angles ([0,0,0])   FDのみ
mass Double () FDのみ
cm Location ([])  
ip Ips () FDのみ
vx Double (None) FDのみ
vy Double (None) FDのみ
vz Double (None) FDのみ
wx Double (None) FDのみ
wy Double (None) FDのみ
wz Double (None) FDのみ
vm Reference ("Marker")  
wm Reference ("Marker")  
cratio Function ()    
routine Routine ()    
script Script ()    
rigidified Bool ()    
mtx_file String ()  
h3d_file String ()  

使用法

線形Flex_Body実装は、4種類のバリアントで利用できます。
#1. Linearly flexible body without user defined damping
Flex_Body (mtx_file=string, optional_arguments)

#2. Linearly flexible body with damping in a MotionSolve expression
Flex_Body (mtx_file=string, cratio=expressionString, optional_arguments)

#3. Linearly flexible body with user defined damping in a compiled user-subroutine
Flex_Body (mtx_file=string, cratio=userString, routine=string, optional_arguments)

#4. Linearly flexible body with user defined damping in a Python/Matlab function
Flex_Body (mtx_file=string, cratio=userString, routine=functionPointer, optional_arguments)

属性

ユーザー定義の減衰を使用しない線形弾性体
mtx_file
文字列
弾性体のCMS表現を含むMTXファイルの名前を指定します。
mtx_file属性は必須です。
MotionSolve式で減衰を使用する線形弾性体
mtx_file
文字列
弾性体のCMS表現を含むMTXファイルの名前を指定します。
mtx_file属性は必須です。
cratio
有効なMotionSolve式を含む文字列。
各モードの減衰係数を定義する状態依存の式を定義します。任意の有効な実行時MotionSolve式を入力として指定できます。
cratio属性は必須です。
cratioは0以上の値に評価する必要があります。
コンパイルされたサブルーチンでユーザー定義の減衰を使用する線形弾性体
mtx_file
文字列
弾性体のCMS表現を含むMTXファイルの名前を指定します。
mtx_file属性は必須です。
cratio
有効なMotionSolveユーザー式を含む文字列。
データファイルから、減衰が定義されるユーザー定義のサブルーチンに渡されるパラメータのリスト。
cratio属性は必須です。
routine
文字列
ユーザーサブルーチンの代替名を指定します。この名前は、“∷”で区切られた情報の2つの部分で構成されます。1つ目は、ユーザー定義のdampingの応答を計算する関数を含む共有ライブラリへのパス名です。2つ目は、計算を実行する共有ライブラリ内の関数の名前です。
例: routine="/staff/Altair/engine.dll::myDamping"
  • "/staff/Altair/ engine.dllDLLです。
  • "myDamping"は、計算を実行するこのDLL内の関数です。
属性routineは省略可能です。
指定しない場合、routineはデフォルトでDMPSUBになります。
Python関数でユーザー定義の減衰を使用する線形弾性体
mtx_file
文字列
弾性体のCMS表現を含むMTXファイルの名前を指定します。
mtx_file属性は必須です。
cratio
有効なMotionSolveユーザー式を含む文字列。
データファイルから、減衰が定義されるユーザー定義のサブルーチンに渡されるパラメータのリスト。
cratio属性は必須です。
routine
Python内の呼び出し可能な関数へのポインタ。
例:routine=myDamping
  • myDampingは、モデルが存在する場所ならどこからでも呼び出すことが可能なPython関数またはメソッドです。
属性routineは省略可能です。
指定しない場合、routineはデフォルトでDMPSUBになります。
id
整数
要素識別番号を指定します。この番号は、モデル内のすべてのFlex_Bodyオブジェクトの中で一意にする必要があります。
この属性は省略可能です。MotionSolveは、IDが指定されていない場合、自動的にこれを作成します。
値の範囲:id > 0
label
文字列
Flex_Bodyオブジェクトの名前を指定します。
この属性は省略可能です。指定しない場合は、MotionSolveが代わりにラベルを作成します。
qg
Locationオブジェクトまたは3つの倍精度値のリスト。
局所パート参照マーカーの座標を指定します。このマーカーは、このFlex_Bodyで定義されたすべてのマーカーの参照座標系として使用されます。また、MBS全体座標系に対する有限要素全体座標の位置も定義します。
qg属性は省略可能です。
指定しない場合、全体座標系の原点(0, 0, 0)と一致すると見なされます。
reuler
3つの倍精度値のリスト。
全体座標系に対する局所パート参照マーカーのボディ固定3-1-3オイラー角を指定します。このマーカーは、このFlex_Bodyで定義されたすべてのマーカーの参照座標系として使用されます。また、MBS全体座標系に対する有限要素全体座標の方向も定義します。
reuler属性は省略可能です。
指定しない場合は、(0, 0, 0)、つまり、局所パート参照マーカーが全体座標系と同じ向きであると見なされます。
cm
マーカーへの参照。
PARTの質量中心に配置されるMarkerを指定します。
属性cmは省略可能です。Flex_Bodyが完全に拘束されており、拘束力に注目する必要がない場合、質量と慣性を指定する必要はありません。これらを指定しない場合、CMは指定しないでください。
注: 循環参照を排除するため、ボディは2つのステップで作成されます。まず、CMマーカーを使用せずにボディが定義されます。次に、CM属性が明示的に定義されます。
mass
Flex_Bodyオブジェクトの質量を指定します。
属性massは省略可能です。Flex_Bodyが完全に拘束されており、拘束力に注目する必要がない場合、質量を指定する必要はありません。
指定しない場合、massは0になります。
値の有効範囲:mass ≥ 0.0
ip
3つの倍精度値のリストまたは6つの倍精度値のリスト。
CMマーカーのx、y、z軸に関するFlex_Bodyの質量慣性モーメントマトリクスを指定します。
ip属性は省略可能です。指定しない場合は、ゼロマトリクスと見なされます。Flex_Bodyが完全に拘束されており、拘束力に注目する必要がない場合、ipを指定する必要はありません。
下の順で対角エントリのみ[Ixx, Iyy, Izz]またはフルマトリクス[Ixx, Iyy, Izz, Ixy, Ixz, Iyz]を指定できます。
指定する場合は、以下のとおりです:
  • Inertia_xx ≥ 0
  • Inertia_yy ≥ 0
  • Inertia_zz ≤ 0
vm
マーカーへの参照。
Flex_Bodyの初期並進速度を定義するために座標系が使用されるマーカーを指定します。
指定しない場合、vmはデフォルトで全体座標系になります。
vxvyvz
倍精度
VMマーカーのx、y、およびz軸に沿ったFlex_Bodyの初期並進速度を指定します。
vxvyvz属性は省略可能です。
  • 指定しない場合、MotionSolveは、すべてのパートの速度が拘束の1次時間導関数と一致するよう、内部計算を実行します。
  • 指定した場合、MotionSolveは、すべてのパートの速度が拘束の1次時間導関数と一致するよう内部計算を実行する際、指定された値を維持しようとします。
wm
マーカーへの参照。
Flex_Bodyの初期角速度を定義するために座標系が使用されるマーカーを指定します。
指定しない場合は、デフォルトでFlex_Body CM座標系になります。
wxwywz
倍精度
WMマーカーのx、y、およびz軸周りのFlex_Bodyの初期角速度を指定します。
wxwywz属性は省略可能です。
  • 指定しない場合、MotionSolveは、すべてのパートの速度が拘束の1次時間導関数と一致するよう、内部計算を実行します。
  • 指定した場合、MotionSolveは、すべてのパートの速度が拘束の1次時間導関数と一致するよう内部計算を実行する際、指定された値を維持しようとします。
h3d_file
文字列
有限要素メッシュ内のすべての節点を含むH3Dファイルの名前を指定します。
h3d_file属性は省略可能です。
このファイルは、アニメーションファイルの作成にのみ必要です。ソルバーは解析のためにこのファイルを使用しません。
Rigidified
ブール
弾性体から剛体への変換許可をするブール値。TrueまたはFalseを指定します。
  • Trueは、Flex_Bodyを剛体として扱うことを意味します。解析時には、Flex_Bodyの剛体属性のみを考慮します。
  • Falseは、解析時にFlex_Bodyを弾性体として扱うことを意味します。
このフラグは省略可能です。デフォルトはFalseです。

下の1つ目の例は、FLEX_BODYの可能性のある指定の1つを示しています。
Flex_Body (label="Boom", qg=[0,5,0], mtx_file="11", h3d_file="../../flex_h3d/beam.h3d",cratio=0.0)
下の2つ目の例は、式を使用して減衰が指定されるFLEX_BODYの指定を示しています。
Flex_Body (qg=[10,12,0], mtx_file="30102", h3d_file="../../flex_h3d/beam.h3d",cratio ="IF(FXFREQ-100:0.01,0.1,IF(FXFREQ-1000:0.1,1.,1.))")
下の3つ目の例は、ユーザー定義サブルーチン(DMPSUB)を使用して減衰が指定されるFLEX_BODYの指定を示しています。
Flex_Body (qg=[10,12,0], mtx_file="30102", h3d_file="../../flex_h3d/beam.h3d",cratio="USER(0.01,100,0.1,1000,1)")
下の4つ目の例は、FLEX_BODYを拘束する方法を示しています。
Flex_Body (qg=[10,12,0], mtx_file="30102", h3d_file="../../flex_h3d/beam.h3d",rigidified=True, cratio="IF(FXFREQ-100:0.01,0.1,IF(FXFREQ-1000:0.1,1.,1.))")

コメント

  1. プロパティの概要、使用理由、および拡張方法については、プロパティをご参照ください。
  2. Flex_Bodyの詳細については、ボディ:弾性をご参照ください。