MV-2010:Flex PrepとOptiStructを使った弾性体の作成

本チュートリアルでは、FlexBodyPrep、MotionViewおよびOptiStructを用いた弾性体生成の基礎について学習します。

チュートリアルの目的

  • MotionViewおよびOptiStructで利用可能な弾性体作成テクニックの習得
  • 弾性体作成についてFlexBodyPrepで使用できる全ての機能の理解
  • ファイルのサイズ縮小のためにOptiStructで使用できる各種オプションの理解
HyperWorksにおけるMBDシミュレーション用弾性体の作成には、以下の2つの方法があります:
  1. MotionViewインターフェース内のFlexPrepユーティリティの使用
  2. OptiStructソルバー用入力デック(*.fem)の手動による編集

Flex Prepの概要

Flex Prepは、下記の目的に使用できるMotionView内のツールです:
  • OptiStructを使用して弾性体H3Dファイルを作成
  • ADAMS MNFおよびNastran PCHから弾性体H3Dファイルを作成
  • 弾性体H3DファイルをADAMS MTX、Altair H3D(mirrored)、ADAMS MNF、DADS FDF、およびnCode FESに変換

演習:弾性体LCAの作成とシミュレーション

先の演習では、FlexPrepを使った弾性体の生成について学習しました。弾性体は、入力FEMファイルを編集し、OptiStructから弾性体を生成するカードを追加することによって、OptiStructから直接作成することが可能です。以下のStep 1~4は、これらのカードについて簡単に説明しています。

本演習では、左フロントSLAサスペンションのロアコントロールアーム(LCA)について弾性体を作成します。入力ファイルはあらかじめ用意された.femファイル(sla_flex_left.fem)で、これにはLCAの有限要素モデリング情報(要素および節点)が含まれています。弾性体の結合点群は:
  • フロントおよびリアブッシュマウントにおける中央節点群
  • スプリングが取り付けられている位置
  • ナックルに結合している下部ボールジョイントの中央

上記の入力ファイル内で、結合点群は既に、ブッシュマウントの中央とスプリングアタッチメント位置に作成されています。本演習では、下部ボールジョイント位置の結合点とLCAへの結合を作成します。

FlexBodyPrepの使用

必要とされる入力事項をユーザーが提供すると、Flex Prepは、必要なすべてのカードを含んだOptiStructソルバー用入力デック(_prp.fem)を生成し、OptiStructをコールしてジョブを実行します。入力およびプロセスについては、チュートリアルMV-2000:弾性体についてをご参照ください。

注: mbd_modeling\flexbodiesフォルダーにあるsla_flex_left.femファイルをまず作業ディレクトリにコピーしてから、演習を進めてください。
  1. 新しいMotionViewセッションを開きます。
  2. Flex ToolsメニューからFlex Prepを選択します。
  3. OptiStruct Flexbody generationを選択します。
  4. プルダウンメニューからオプションCreate Optistruct prp (preparation) file and generate the h3d flexbodyを選択します。
  5. Select Bulk Data file の横のファイルブラウザアイコンをクリックし、作業ディレクトリから入力バルクデータファイルsla_flex_left.femを選択します。
    注: ユーザーは、OptiStruct (FEM)またはNastran.nas.dat.bdf)バルクデータファイルを使用できます。
  6. Save the *.h3d file asに、<working directory>内の出力H3Dファイル名としてsla_flex_left.h3dと入力します。
  7. Component mode synthesis typeに、Craig-Bampton部分モード合成を実行するCraig-Bamptonを選択します。
  8. Specify Interface Node List欄に、10001+10002+10003と入力します。
    注: 結合点のIDが1つの範囲内にある場合、10001:10003のように指定します。

    結合点は、MBD解析において拘束条件または荷重が適用される節点です。

  9. Cutoff type and valueにHighest Mode #を選択し、値10を入力します。

モード情報の制限

MotionViewでは、H3Dファイルに含まれるモード情報について制限を設けることができます。これらの制限の設定には、下記の2つの方法が使用できます:
  • H3Dファイルに含まれるモードデータについて、固有モードの最大数を指定
  • 固有モードについてのアッパーカットオフ周波数を指定。カットオフ周波数が指定されている際には、ノーマルモード解析は、Lanczosまたは自動マルチレベル サブストラクチャリング固有値ソリューションであるAMSESのいずれかを用いて実行できます。

1つ目の方法が、この演習で用いられます。

  1. Additional Optionsをクリックし、ダイアログを表示させます。
    1. Perform stress recoveryを有効にします。
      このオプションを設定すると、Flex Prepは適切なカードをOptiStruct入力デックに書き出し、バルクデータファイルの処理中にモーダル応力を計算します。
    2. Perform strain recoveryを有効にします。

      このオプションを設定すると、Flex Prepは適切なカードをOptiStruct入力デックに書き出し、バルクデータファイルの処理中にモーダルひずみを計算します。

      注: Create Recovery H3Dオプションは、疲労解析で役立ちます。MotionSolveでのMBDシミュレーションに必要な最小限の情報を含んだ、より小さなH3D弾性体ファイルが生成されます。変位、速度、加速度、応力およびひずみについての追加の情報を含んだ、より大きなファイル*_recov.h3dも生成されます。疲労解析での手法の使用について、詳細は、Recovering MBD Analysis Results in OptiStructをご参照ください。
  2. Specify units in bulk data fileに、以下のとおり選択します:
    質量単位
    Kilogram
    Length
    Millimeter
    Force
    Newton
    Time
    Second
    注: HyperMeshはユニットレスであり、ユーザーは正しいユニットを使用する必要があります。そうでないと、生成される弾性体は正しくないモード周波数をもってしまう可能性があります。用意されている入力ファイルでは、使用されている密度の単位はkg/mm^3です。したがって、本演習では、質量の単位にkgを使用します。

    一般的に、長さ、力、時間の単位にmm-N-secを使用するFE解析では、質量の単位をN-sec^2/mm(tonne/mm^3/MEGAGRAMSと同等)に指定する必要があります。将来ユーザーが使用するモデルがそのような単位を使っている場合、FlexBodyPrepでの質量の単位にMEGAGRAMS を使用してください。

    sla_flex_left.femには既に3つのRBE2スパイダーが用意されています。4つ目のRBE2スパイダーは、次のステップで説明するCreate RBE2 Spidersオプションを使って作成します。

RBE2スパイダーの作成

有限要素(FE)モデル内に円形の穴が存在し、穴の中心を結合点として使用する必要がある場合、荷重を中央の節点から外周上の節点に伝達しなければなりません。この機能では、FEモデル内の穴の位置にRBE2スパイダーを作成し、荷重を結合点から穴の外周上の節点へ伝達します。

注: 有限要素モデル定義が完了している(全ての結合点と結合が既に存在する)場合は、このステップは必要ありません。

RBE2は、独立自由度が1つのグリッドポイントに、従属自由度が任意の数のグリッドポイントに指定された剛体要素です。RBE2は通常、比較的スティフな結合をモデル化するために使用されます。

  1. Create RBE2 Spiderをクリックします。
    HyperMeshが起動します。入力ファイルsla_flex_left.femHyperMeshにインポートされ、画面のモデリングウィンドウ内にFEモデルが表示されます。
  2. HyperMeshがユーザープロファイルを求めてきた場合、Cancelをクリックし、ブラウザ領域のUtilityメニューに進みます。


    図 1.
    タブ領域では、ユーザー定義のページを含んだUtilityタブで、3つのボタン(Step 1 - 3)が表示されています。
  3. Note3つのボタンを含んだユーザー定義ページが表示されない場合、次の手順に従ってそれらを表示させてください:
    1. ViewメニューからUtilityメニューを選択します。
    2. Utilityメニューで、ページの下部にあるUserをクリックします。
  4. Infoをクリックし、RBE2スパイダー作成手順の詳細が表示されます。


    図 2.
  5. 下の図に示す下部ボールジョイント位置の領域にズームインします。


    図 3.
  6. Step 2: Superspiderをクリックし、スパイダーを一度に1つずつ作成します。
  7. 穴の外周上の節点を1つ選択し、Proceedをクリックします。
    スクリプトは、下の図に示すとおり、RBE2スパイダーを自動的に作成します。


    図 4.
  8. 修正されたファイルを保存し、中央(インターフェース)節点のIDを自動的に捕捉するためのStep 3: Save and Closeをクリックします。新しいファイルに名称sla_flex_left_complete.fem を与え、結合点のIDがFlex Prepに追加されているかどうかを確認します。
    新しい結合点のIDが、下の図に示すとおり、FlexBodyPrep内のインターフェースリストに自動的に追加されます。


    図 5.
  9. OKをクリックし、コマンドウィンドウ内でOptiStructを起動します。
    ここで与えられた入力に基づいて、FlexBodyPrep は入力ファイル名に_prpを付加して新しいFEMファイルを生成し、OptiStructにサブミットします。ここでは、sla_flex_left_complete_prp.femが生成されます。

    Outputウィンドウ内に、FlexBodyPrepトランスレータからのメッセージが表示されます。OptiStruct実行のステータスを確認し、エラーメッセージがないかチェックします。

  10. Outputウィンドウ内でOKをクリックして閉じます。

モデルの確認と結果の検証

本演習では、HyperViewで弾性体コントロールアームを見ることによって、Step 1での作業を検証します。

  1. ツールバーのSelect window modeドロップダウンメニューでHyperViewを選択します。
    Load model and resultsパネルが表示されます。
  2. Load modelファイルブラウザをクリックし、H3D弾性体ファイル<working directory>/sla_flex_left.h3dを選択します。
    HyperViewは自動的に、Load resultsファイルを同じファイル名で更新します。弾性体アームモデルとモード結果は、Flex Prepウィザードを使って作成されたH3D弾性体ファイルに含まれています。


    図 6. Load Model and Results欄
  3. Applyをクリックし、モデルをHyperViewに読み込みます。


    図 7. 弾性体LCAモデル
  4. Select animation modeをクリックしSet Transient Animation Mode を選択します。
  5. Start Animation をクリックして、結果をアニメーション表示します。
    HyperViewは、弾性体コントロールアームのモード形状を繰り返し連続アニメーション表示します。モード数と振動数は、ウィザードの上部右側に表示されます。
  6. Pause Animation をクリックして、モードの繰り返し表示を停止します。
  7. Select animation modeの矢印をクリックし、ドロップダウンリストからSet Modal Animation Modeを選択します。
  8. 特定のモード形状をアニメーション表示するには、Resultsブラウザに進み、モードをUndeformed Model FrameからMode 7に変更します。


    図 8. Simulationパネルを使って特定のモードを選択
    注: 直接相関の可能性はありませんが、最初の6つのモードがほとんどゼロに近い値であることから、剛体であることが認識できます。ほとんどゼロに近いモードが6つ以上ある場合は通常、モデルの信頼性の問題を示しています(1つまたは複数の要素がフリーで要素同士で結合されていない)。
  9. Animation をクリックして、選択したモードをアニメーション表示します。


    図 9.

    同様に、弾性体の他のモードもアニメーション表示できます。

  10. 同じボタンをクリックすることで、アニメーションをオンにしたりオフにしたりします。
  11. Contour をクリックし、弾性体の応力を確認します。
  12. Result Typeドロップダウンメニューから、StressvonMisesを選択します。下の図に示すとおり、Entity with layersに、Z1を選択します:


    図 10.
  13. Applyをクリックし、モデリングウィンドウ内にレジェンドとコンターを表示させます。


    図 11. モデルについて表示されたVonMises応力コンター
上述の演習は、MotionViewを使った弾性体の生成について説明しています。弾性体は、HyperMeshOptiStructを使っても作成することが可能です。さらに深く学習したい場合は、“OS-1930 - MotionSolveで使用するための弾性体の作成”をご参照ください。

バッチモードでのFlexPrepの起動

Flex Prepユーティリティは、バッチモードでも起動できます。

Unixでコマンド行からFlexPrepを実行するには、次のように入力します:

<install_path>/altair/scripts/flexprep 
DOSでコマンド行からFlexPrepを実行するには、次のように入力します:
<install_path>\io\translators\bin\<os>\flexprep.exe

ここで、<os>はwin32またはwin64のいずれかです。

上記のコマンドが引数なしで与えられた場合、使用オプションと対応するシンタックスがリストされます。

先の演習で作成されたsla_flex_left.h3d弾性体は、左フロントSLAサスペンションのロアコントロールアームです。ここで、バッチモードでFlexPrepを起動し、右フロントSLAサスペンションについて対称な弾性体を作成します。

注: 本演習では、Windowsオペレーションシステムについて、MS DOSプロンプトからFlexPrepトランスレータを実行します。Unix端末の場合、アナログ的手順に従ってかまいません。
  1. スタートメニューからMS DOSプロンプトウィンドウを開きます。
  2. cdコマンドを使って、作業ディレクトリをナビゲートします。
  3. FlexPrepを起動するコマンド<install_path>\translators\flexprep.exeを入力します。
  4. バッチモードでFlexPrepトランスレータを実行するための使用オプションを選択します。
  5. 以下のコマンドを入力します:<install_path>\io\translators\bin\<os>\flexprep.exe sla_flex_left.h3d sla_flex_right.h3d -MIRROR_XZ
    FlexPrepは、鏡面ロアコントロールアームsla_flex_right.h3d弾性体ファイルを作成します。

演習:手動で弾性体のサイズを縮小するための方法

先の演習では、FlexPrepを使った弾性体の生成について学習しました。弾性体は、入力FEMファイルを編集し、OptiStructから弾性体を生成するカードを追加することによって、OptiStructから直接作成することが可能です。以下のStep 1~4は、これらのカードについて簡単に説明しています。

弾性体生成のためのOptiStruct入力ファイルの理解

任意のテキストエディタでsla_flex_left_complete_prp.femファイルを開きます。
FEMファイルの最初の数行と各行の説明を下に示します:

Line 1: SUBCASE 1

Line 2: OUTFILE, sla_flex_left

Line 3: CMSMETH 1

Line 4: STRESS=ALL

Line 5: STRAIN=ALL

Line 6: BEGIN BULK

Line 7: DTI, UNITS, 1, KG, N, MM, S

Line 8: PARAM COUPMASS -1

Line 9: PARAM CHECKEL YES

Line 10: CMSMETH, 1, CB, , 10

Line 11: ASET1, 123456, 10001

Line 12: ASET1, 123456, 10002

Line 13: ASET1, 123456, 10003

Line 14: ASET1, 123456, 10004

SET DATA FOLLOWS

BULK DATA FOLLOWS

生成された入力デック(femファイル)は、OptiStructから弾性体を作成するための上記で指定されたカードが必要です。各行の定義は以下のとおりです:

Line 1: SUBCASE – 新しいサブケース定義の始まりを示します

Line 2: OUTFILE – H3Dファイルのベース名の指定に用いられます

Line 3: CMSMETH – OptiStructでの弾性体作成に使用される区分モード合成ソリューション法を定義するカード

Line 4: STRESS=ALL – モデル内のすべての要素についてOptiStructによって計算されるべきモーダル応力の指定に用いられます

Line 5: STRAIN=ALL – モデル内のすべての要素についてOptiStructによって計算されるべきモーダルひずみの指定に用いられます

Line 6: BEGIN BULK – モデル内のFEエンティティの始まりを定義します

Line 7: DTI, UNITS – 弾性体の単位を定義します

Line 8: PARAM COUPMASS -1 – OptiStructによって弾性体の生成に使用されるパラメータの値を定義します。この場合、OptiStructにより固有値解析用として質量マトリックスアプローチが使用されます。

Line 9: PARAM CHECKEL YES – ジョブの実行前に要素品質チェックを実行するためのパラメータ。NOと指定すると、ソルバーは要素チェックをスキップします。品質が悪い要素の場合、正確ではない結果となる可能性があります。

Line 10: CMSMETH CB 10 – 選択される部分モード合成法はCraig Bramptonで、10のモードが要求されます

Lines 11 to 14: ASET1 –結合点について境界自由度を定義します。

これらのカードが指定されていると、OptiStructは弾性体h3dファイルを作成します。弾性体のサイズは、バルクデータファイル、結合点の数、モードおよび応力 / ひずみの詳細に基づき大きくなり得ます。以下の方法でサイズを縮小することが可能です:
  • MODEL Set – グラフィカル表示に使用されるモデル情報を縮小します
  • STRESS/STRAIN Set – 応力またはひずみ計算が要求される要素の数を削減します
  • OUTLINE – 境界のエッジのみを表示するようモデル情報を縮小します
  • Reduced DOF – 弾性体情報に寄与するDOFの数を削減します

弾性体にStress/Strain Set、Model Set、Outline、Released DOFを統合するための入力デックの修正

有限要素モデリングでは、節点または要素をグループ化して1つのセットを作ることができます。これらのグループは、節点と要素を入力として集合的に捉えて、他のモデリングカード内で使用することができます。弾性体生成では、これらのセットをOptiStruct入力デック内に統合するニーズは:
  • 弾性体のサイズを縮小
  • マルチボディプリポスト、シミュレーションおよびアニメーションのスピードを加速

OptiStructでの応力 / ひずみセットの定義

カードSTRESSおよびSTRAINは、応力とひずみの計算が弾性体の生成中に行われるべき要素を指定します。自身の解析内のボディについて、応力結果の可視化に興味がある場合は、このカードを使用します。弾性体の使用の目的がボディの弾性を取り込むためで、応力の計算ではない場合、このカードを使用しなければ、H3Dのサイズは大幅に縮小されます。
STRESSカードおよびSTRAINカードのシンタックス:
STRESS=[setid|ALL|NONE]
STRAIN=[setid|ALL]

setid は、要素のセットのIDです。

または、ALLが指定されている場合、応力 / ひずみはすべての要素について計算されます。

NONEが指定されている場合、応力はどの要素についても計算されません(STRESSカードなしの場合も同じ影響を及ぼします)。

開かれているFEMファイル内で、節点(キーワードGRID)および要素(キーワードELEM)について定義されたSETカードを確認することができます。

  1. カードSTRESS=ALLおよびSTRAIN=ALLをそれぞれSTRESS=5STRAIN=5に修正します。
  2. OUTFILEを、OUTFILE, sla_flex_left_stress_setとなるよう修正します。
  3. ファイルをsla_flex_left_stress_set.femとして保存し、閉じます。
  4. FlexBodyPrepを使って弾性体を生成します。
    1. OptiStruct Flexbody Generation ドロップダウンメニューからオプションCreate h3d flexbody using pre-existing prp fileを選択します。
      注: OptiStructを使って弾性体を生成することが可能です。コマンドプロンプトからOptiStructを実行するには、<install>\hwsolvers\bin\win32\Optistruct.bat sla_left_stress_strain_set.femと入力します。
  5. 新しいMotionViewセッションを開始し、ウィンドウタイプをHyperViewに変更します。
  6. OptiStructによって生成されたH3Dファイルsla_flex_left_stress_set.h3dを読み込みます。
  7. Contourパネルに進み、Stress and Strain contoursを適用します。
    コンターでは、いくつかの要素のみが表示されます。これらは、要素セットを用いて応力およびひずみ計算に選択された要素です。

OptiStructでのモデルセットの定義

このカードでは、MotionViewでのプリおよびポスト処理中にH3Dを使用する際、H3D内で弾性体の要素の表示をコントロールします。
MODELカードのシンタックス:
MODEL=setid|PLOTEL

ここで、MODELは結果ファイル(H3D)に書き出される要素を決定するOptiStructカード。setidは表示される要素を定義するセットのID。

PLOTELオプションについては、本チュートリアルの後半で説明します。

  1. テキストエディタで、FEM入力デックsla_flex_left_stress_set.femを開きます。
  2. STRESS=5の上に、モデルカードをMODEL=4として追加します。
  3. OUTFILE行をOUTFILE, sla_flex_left_model_setとなるよう変更します。
  4. ファイルsla_flex_left_model_set.femを作業ディレクトリに保存して閉じます。
  5. OptiStructでFEMデックを実行します。または、FlexBodyPrepを使って弾性体を生成します。
    1. OptiStruct Flexbody Generation ドロップダウンメニューからオプションCreate h3d flexbody using pre-existing prp fileを選択します。
  6. HyperViewで、OptiStructにより生成されたH3Dファイルを読み込みます。
    弾性体の一部のみが表示されている点にご注目ください。セットに含まれ、MODELカードと使用されている要素のみがここでは表示されています。

OptiStructでのPLOTEL要素の使用

弾性体のサイズは、弾性体生成についてOptiStruct入力デック内でPLOTEL要素を使用することによって、大幅に縮小できます。弾性体のエッジのみをMotionViewで表示させたい場合、PLOTEL要素を入力デック内で定義し、MODELカードを使って表示させることが可能です。PLOTELは、表示のみに使用される1次元のダミー要素です。この要素は、パートに質量は剛性を与えません。

PLOTEL要素のシンタックス:

PLOTEL EID G1 G2

ここで、PLOTELは要素タイプ、EIDは要素ID、G1G2は要素の定義に使用される節点です。以下に例を示します。
PLOTEL 8786 4698 1702

現在作業しているFEMには既にPLOTEL要素が含まれています。

PLOTELフィーチャーを含める手順は以下のとおりです:
  • モデルのフィーチャーエッジのPLOTEL要素を自動的に生成するには、HyperMeshでfeaturesオプションを使用できます。featuresオプションは、HyperMeshのToolページに用意されています。
  • 下の図は、featuresオプションで作成されたPLOTEL要素を含む弾性体モデルです。


    図 12.
  • MODELカードを使用し、PLOTELオプションを指定します。

    MODEL=PLOTEL (plotelの一部であるRBE2のように剛体要素を書き出すことをスキップするには、オプションのキーワードNORIGIDを使用します)

  • FEMファイルを保存してOptiStructで実行し、PLOTEL要素のみを表示する弾性体を生成します。
  1. 先に作業ディレクトリに保存していたFEMデックsla_flex_left_model_set.femを開きます。
  2. MODEL=4MODEL=PLOTELと置き換えます。
    バルクデータ内に、多くのPLOTEL要素を見ることができます。
  3. OUTFILE行をOUTFILE, sla_flex_left_plotel_setとなるよう変更します。
  4. ファイルをsla_flex_left_plotel_set.femとして保存します。
  5. OptiStructでFEMデックを実行します。または、FlexPrepから弾性体を生成します。
    1. OptiStruct Flexbody Generation ドロップダウンメニューからオプションCreate h3d flexbody using pre-existing prp fileを選択します。
  6. HyperViewで、OptiStructにより生成されたH3Dファイルを読み込みます。
    弾性体は、PLOTEL要素によって定義されたエッジまたはラインによってのみ表示されています。

OptiStructにおける結合点用Released DOF法

Released DOF機能では、結合点の一部の自由度をフリーにすることができます。特定の結合点について適切なDOF(MBDモデル内でフリーである対応するDOF)が解放されると、シミュレーションはいかなる影響も受けません。モデル内の運動学的拘束条件および実行されるMBDシミュレーションの種類に応じて、ユーザーは結合点内の適切な自由度を解放し、生成されるh3dファイルのサイズを縮小することができます。

弾性体の結合点の境界自由度を定義するには、ASET1カードが使用されます。

ASET1カードのシンタックス:

ASET1 C G1 or ASET1, C, G1

ここで、ASET1はカード名、Cは拘束される自由度、G1は節点IDです。以下に例を示します。
ASET1, 123456, 4927

すなわち、ID 4927の結合点は、すべての自由度について拘束されます。ここで123456は順に、3つの並進および3つの回転節点を表わします。 したがって、結合点から自由度を解放すると(例えば軸周りの回転)、C値は12356となります。

  1. デック内の、結合点10004に対応するASET1カードを次のように修正します:
    ASET1, 123,   10004
  2. OUTFILEを、OUTFILE, sla_flex_left_rdofとなるよう変更します。
  3. ファイルをsla_flex_left_rdof.femとして作業ディレクトリに保存して閉じます。
  4. OptiStructでFEMデックを実行します。または、FlexPrepから弾性体を生成します。
    1. OptiStruct Flexbody generationドロップダウンメニューからオプションCreate h3d flexbody using pre-existing prp fileを選択します。
  5. 生成されたH3Dファイルのサイズを確認すると、縮小されていることがわかります。これは、弾性体に統合された解放された自由度のせいです。
  6. このステップで出てきたカードを使って、生成されたすべてのh3dファイルのサイズを比較し、ファイルサイズの減少を確認します。