OS-T:5050 4節バーリンク機構

本チュートリアルでは、HyperMeshでマルチボディダイナミクス(MBD)構造最適化問題をセットアップし、OptiStructで形状最適化ジョブを実行します。

システムの質量は12個の形状設計変数をコントロールすることによって最小化し、応力を許容し得る値より小さくします。左側のリンクは角速度が50 rad/secである駆動リンクです。単位: kg、N、cm、s

リンク機構
図 1. 4節バーリンク機構
本チュートリアルにおける最適化問題の設定は以下の通りです:
目的関数
質量の最小化
制約条件
応力の上限
設計変数
3つの弾性体の形状設計変数

HyperMeshの起動とOptiStructユーザープロファイルの設定

  1. HyperMeshを起動します。
    User Profilesダイアログが現れます。
  2. OptiStructを選択し、OKをクリックします。
    これで、ユーザープロファイルが読み込まれます。ユーザープロファイルには、適切なテンプレート、マクロメニュー、インポートリーダーが含まれており、OptiStructモデルの生成に関連したもののみにHyperMeshの機能を絞っています。

モデルのオープン

  1. File > Open > Modelをクリックします。
  2. optistruct.zipファイルから自身の作業ディレクトリに保存した4bar_design.hmファイルを開きます。モデルファイルへのアクセスをご参照ください。
  3. Openをクリックします。
    4bar_design.hmデータベースが現在のHyperMeshセッションに読み込まれます。

モデルのセットアップ

駆動モーションの定義

本チュートリアルでは、ジョイント位置における駆動モーションMOTNJが定義されます。ただし、MOTNJは現時点ではHyperMeshでサポートされていないため、カードは手動で入力する必要があります。
  1. Analysisページからパネルcontrol cardsをクリックします。
  2. Card Imageダイアログで、BULK_UNSUPPORTED_CARDSをクリックします。
  3. Control Cardダイアログで、以下を入力し、OKをクリックします。

    5050_control_card

    5050_rev_66299
    図 2. 50 Rad/sの一定速度がジョイント66299に適用されます。
  4. returnをクリックします。

境界条件とMOTIONの更新

  1. ModelブラウザのLoad Stepsフォルダーで、SUBCASE1をクリックします。
    エンティティエディターが開き、荷重ステップカードの詳細が表示されます。
  2. Analysis typeをMultibody dynamicsに設定します。
  3. MBSIMにMBSIM1を選択します。
  4. SUBCASE_UNSUPPORTEDを選択します。
  5. table_pencilをクリックし、MOTION = 1と入力します。

ジョブのサブミット

  1. AnalysisページからOptiStructパネルをクリックします。

    OS_1000_13_17
    図 3. OptiStructパネルへのアクセス
  2. save asをクリックします。
  3. Save Asダイアログで、OptiStructモデルファイルを書き出す場所を指定し、ファイル名として4bar_design_analysisと入力します。
    OptiStruct入力ファイルには、拡張子 .femが推奨されます。
  4. Saveをクリックします。
    入力ファイル欄には、Save Asダイアログで指定されたファイル名と場所が表示されます。
  5. export optionsのトグルをallにセットします。
  6. run optionsのトグルをanalysisにセットします。
  7. memory optionsのトグルはmemory defaultにセットします。
  8. OptiStructをクリックし、OptiStructジョブを開始します。
ジョブが成功した場合、4bar_design_analysis.femが書き出されたディレクトリに新しい結果ファイルがあるはずです。何らかのエラーがある場合、4bar_design_analysis.outファイルはデバッグを手助けするエラーメッセージを探すのに良い場所です。

結果の表示

  1. OptiStructパネルから、HyperViewをクリックします。
    HyperViewが起動され、結果が読み込まれます。HyperViewにモデルと結果が正しく読み込まれたことを示すメッセージウィンドウが現われます。
  2. ResultsツールバーでresultsContour-16をクリックし、Contour panelを開きます。
  3. Result typeをElement Stresses (2D & 3D) (t)に設定します。
  4. Applyをクリックします。
  5. Legendタブをクリックします。
  6. Edit Legendをクリックします。
  7. Typeを Dynamic scaleに設定します。
    希望するレジェンドを作成するために、その他のプロパティをここで変更して構いません。
  8. Page Controlsツールバーで、ページレイアウトを縦2つのウィンドウを作成するpageLayout2Vertical-24に切り替えます。
  9. 2つ目のウィンドウをクリックしてアクティブにします。
  10. クライアントセレクターから、clientHyperGraph-24HyperGraph 2D)を選択します。
  11. 1つ目のウィンドウをクリックしてアクティブにします。
  12. AnnotationsツールバーでannotateMeasures-24をクリックし、Measuresパネルを開きます。
  13. Measure Groupsリストで、Dynamic MinMax Resultを選択します。
  14. Resolvedの下のリストで、Maxをクリックします。
  15. Create Curveをクリックします。
  16. Place curve onをExisting Plotに設定します。
    このレポートのプロットウィンドウのリストが表示されます。
  17. Live linkを選択します。
  18. window 2をクリックしてアクティブとします。
  19. Applyをクリックします。
    Maximum von Mises stress (t)がプロットされます。

    5050_mbd_stress
    図 4. MBD応力結果(Max = 56996 N/cm2)
  20. 最適化された結果に適用されるよう、テンプレートとしてこのファイルを保存します。
    1. メニューバーFile > Save As > Sessionをクリックします。
    2. Save Session Asダイアログで、ファイルをStress_report.tplとして保存します。
  21. アプリケーションの上部右側にあるpagePrevious-24/pageNext-24をクリックしてPage 1とHyperMeshクライアントに戻ります。

最適化のセットアップ

構造解析用境界条件の定義

このモデルの弾性体の構造解析および最適化は、ESL最適化で実行されます。したがって、弾性体の境界条件を定義する必要があります。
  1. 荷重コレクターBCforOptを作成します。
    1. Modelブラウザで右クリックしコンテキストメニューからCreate > Load Collectorを選択します。
      デフォルトの荷重コレクターがエンティティエディターに表示されます。
    2. NameにBCforOptと入力します。
    3. Colorをクリックし、カラーパレットから色を選択します。
    4. Card ImageをNoneに設定します。
  2. coincident pickingを有効にします。
    1. メニューバーPreferences > Graphicsをクリックします。
    2. coincident pickingを選択します。
    3. returnをクリックします。
  3. 境界条件の作成
    1. Analysisページからパネルconstraintsパネルをクリックします。
    2. すべての自由度(1から6まで)を選択します。
      各弾性体ボディの6つの剛体のモーションを削除するために、すべての自由度(1から6まで)は固定されていなければなりません。constraintsパネルでdof1からdof6までにすべてチェックマークが入っていることを確認してください。
    3. コンポーネントLeftの下部スパイダーの中央をクリックします。1つの位置に2つの節点番号が確認できるはずです。節点番号288を選択します。
    4. コンポーネントMiddleの左スパイダーの中央をクリックし、節点番号143を選択します。
    5. コンポーネントRightの下部スパイダーの中央をクリックし、節点番号441を選択します。
    6. load typesをSPCに設定します。
    7. createをクリックします。

    6dof
    図 5. 剛体モーションを拘束するために制約されるべき節点

予め定義されているMBDサブケース内の境界条件とMOTIONの更新

  1. ModelブラウザのLoad Stepsフォルダーで、SUBCASE1を選択します。
    エンティティエディターが開き、荷重ステップカードの詳細が表示されます。
  2. Analysis typeをMulti-body dynamicsに設定します。
  3. MBSIMにMBSIM1を選択します。
  4. SPCに、BCforOptを選択します。

形状設計変数の定義

形状基底ベクトルは、このデータベース内に既に作成されています。形状基底ベクトル作成の詳細については、HyperMorphに関連した他のチュートリアルをご参照ください。ここでは、予め定義されている形状基底ベクトルで形状設計変数を定義します。
  1. Analysisページからパネルoptimizationをクリックします。
  2. shapeパネルをクリックします。
  3. desvarサブパネルを選択します。
  4. single desvarからmultiple desvarsに切り替えます。
  5. 形状セレクターを使用し、すべての形状を選択します。
  6. lower bound=欄に-1.0と入力します。
  7. upper bound=欄に1.2と入力します。

    5050_bounds
    図 6.
  8. createをクリックします。
  9. returnをクリックし、optimizationパネルに移動します。
12個の設計変数が作成されます。

最適化の応答の作成

  1. Analysisページからoptimizationをクリックします。
  2. Responsesをクリックします。
  3. モデルの全体積について定義される質量の応答を作成します。
    1. responses=欄に、massと入力します。
    2. response typeの下で、massを選択します。
    3. regional selectionをとno regionidに設定します。
    4. createをクリックします。
  4. 静的応力の応答を作成します。
    1. responses=欄に、Stressと入力します。
    2. response typeをstatic stressに設定します。
    3. プロパティセレクターを使って、Middle, Left, Rightを選択します。
    4. response セレクターをvon misesにセットします。
    5. von misesの下で、both surfacesを選択します。
    6. createをクリックします。
  5. returnをクリックし、Optimization panelに戻ります。

目的関数の定義

  1. objectiveパネルをクリックします。
  2. minが選択されていることを確認します。
  3. responseをクリックし、Massを選択します。
  4. createをクリックします。
  5. returnを2回クリックし、Optimization panelを終了します。

設計制約条件の作成

  1. dconstraintsパネルをクリックします。
  2. constraints=欄にConstrと入力します。
  3. response =をクリックしStressを選択します。
  4. upper boundの横のボックスにチェックマークを入れ、30000と入力します。
  5. 荷重ステップセレクターを使って、SUBCASE1を選択します。
  6. createをクリックします。
  7. returnをクリックし、Optimization panelに戻ります。

制約条件が応答Stressに定義されます。制約条件は、SUBCASE1の最大応力が30000.0 N/cm2以下となるよう課します。

最適化の実行

  1. AnalysisページからOptiStructをクリックします。
  2. save asをクリックします。
  3. Save Asダイアログで、OptiStructモデルファイルを書き出す場所を指定し、ファイル名として4bar_design_optと入力します。
    OptiStruct入力ファイルには、拡張子 .femが推奨されます。
  4. Saveをクリックします。
    入力ファイル欄には、Save Asダイアログで指定されたファイル名と場所が表示されます。
  5. export optionsのトグルをallにセットします。
  6. run optionsのトグルをoptimizationにセットします。
  7. memory optionsのトグルはmemory defaultにセットします。
  8. OptiStructをクリックして最適化を実行します。
    ジョブが完了すると、ウィンドウ内に次のようなメッセージが現れます:
    OPTIMIZATION HAS CONVERGED.
    FEASIBLE DESIGN (ALL CONSTRAINTS SATISFIED).
    エラーがある場合、OptiStructはエラーメッセージも出します。エラーに関する詳細は、テキストエディタでファイル 4bar_design_opt.outを開いて確認することができます。このファイルは同じディレクトリ内に.femファイルとして書き出されます。
  9. Closeをクリックします。

結果の表示

応力結果の確認

  1. OptiStructパネルから、HyperViewをクリックします。
    HyperViewが起動され、結果が読み込まれます。HyperViewにモデルと結果が正しく読み込まれたことを示すメッセージウィンドウが現われます。
  2. レポートテンプレートStress_report.tplを開きます。
    1. メニューバーFile > Open > Report Templateをクリックします。
    2. Open Report Fileダイアログで、Stress_report.tplファイルを開きます。
  3. GRAPHIC_FILE_1とRESULT_FILE_1に、最適化を実行したディレクトリから4bar_design_opt_mbd_0#.h3dを選択します(最も大きい#が最終反復計算)。
    Element Stresses (2D & 3D)結果が存在しないというメッセージが現れます -- これは、MBDシミュレーションについての結果がStressと呼ばれているためです。
  4. Message Logウィンドウを閉じます。
  5. window 1をクリックしてアクティブとします。
  6. ResultsツールバーでresultsContour-16をクリックし、Contour panelを開きます。
  7. Result typeをStress (t)に設定します。
  8. traffic lightアイコンをクリックし、アニメーションを開始します。

5050_von_mises_contour
図 7. von Mises応力コンター(Max < 30000 N/cm2

形状変化のコンター表示

  1. Page ControlsツールバーでpageNew-24をクリックし、セッションに新しいページを作成します。
  2. StandardツールバーでfileOpenResults-24をクリックし、最適化が実行されたディレクトリから4bar_design_opt_des_0#.h3dの最終反復計算(最も大きい)番号の結果ファイルを開きます。
  3. Applyをクリックします。
  4. ResultsツールバーでresultsContour-16をクリックし、Contour panelを開きます。
  5. Result typeをShape Change (v)に設定します。
  6. Applyをクリックします。

5050_shape_change_contour
図 8. 形状変化のコンター

ファイル4bar_design_opt.dsvarを開き、最適化中にOptiStructがどのように設計変数を変更したかを確認します。

これは、右側と中央のアームの設計変数がすべて上限の1.2に達し、これら2つのアームの質量の最小化がStressを小さくするキーとなっていることを示しています。