Model ElementFlex_Bodyは、MotionSolve内の弾性体オブジェクトを定義します。このエンティティには、剛体と同様に質量プロパティと慣性プロパティがあります。また、荷重によって変形可能にする弾性プロパティもあります。
説明
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.dllはDLLです。
- "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の初期並進速度を指定します。
- vx、vy、vz属性は省略可能です。
- 指定しない場合、MotionSolveは、すべてのパートの速度が拘束の1次時間導関数と一致するよう、内部計算を実行します。
- 指定した場合、MotionSolveは、すべてのパートの速度が拘束の1次時間導関数と一致するよう内部計算を実行する際、指定された値を維持しようとします。
- wm
- マーカーへの参照。
- Flex_Bodyの初期角速度を定義するために座標系が使用されるマーカーを指定します。
- 指定しない場合は、デフォルトでFlex_Body CM座標系になります。
- wxwywz
- 倍精度
- WMマーカーのx、y、およびz軸周りのFlex_Bodyの初期角速度を指定します。
- wx、wy、wz属性は省略可能です。
- 指定しない場合、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.))")
コメント
- プロパティの概要、使用理由、および拡張方法については、プロパティをご参照ください。
- Flex_Bodyの詳細については、ボディ:弾性をご参照ください。