OS-T:2098 掘削機アーム

本チュートリアルでは、等価静的荷重法(ESL)を用いたMBDシステムの最適化問題をセットアップします。

HyperMeshでモデルをセットアップし、トポロジー最適化ジョブをOptiStructで実行します。

最適化の目的は、掘削機モデルのロアーアームの質量を許容値未満に抑えつつ、剛性を最大にすることです。モデルの単位には、kg、N、m、sを使用します。

os_2098_model
図 1. 掘削機モデル
本チュートリアルにおける最適化問題の設定は以下の通りです:
目的関数
ESL荷重ステップ内の最大コンプライアンスの最小化
制約条件
体積率の上限
設計変数
ロアーアーム(弾性体)コンポーネント内の要素の要素密度

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

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

モデルのオープン

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

ジョブのサブミット

モデルでは既にMBD解析のセットアップがなされ、すべてのボディが剛体として定義されています。

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

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

結果の表示

  1. ダイアログ内にANALYSIS COMPLETEDというメッセージが現れたら、ダイアログを閉じます。
  2. OptiStructパネルから、HyperViewをクリックします。
    現在の実行結果がHyperViewに自動的に読み込まれます。
  3. AnimationツールバーからanimationStart-24をクリックしてアニメーションを開始し、MBDモデルを確認します。
  4. Page ControlsツールバーでpageDelete-24をクリックしてページを削除し、HyperViewを閉じてHyperMeshに戻ります。

最適化のセットアップ

剛体の弾性体への変更

本ステップでは、ボディLower_Armについてトポロジー最適化を定義します。この部品は当初剛体としてモデル化されていましたが、最適化のために弾性体に変換する必要があります。
  1. Analysisページからパネルbodiesをクリックします。
  2. updateサブパネルを選択します。
  3. body=をダブルクリックし、Lower_Armを選択します。
  4. reviewをクリックします。
    ロアーアームのコンポーネントがハイライト表示されます。ボディタイプPRBODYがtype=に表示され、これは、ロアーアームが剛体としてモデル化されていることを示しています。このボディを弾性体タイプに更新し、さらにこのボディについてトポロジー最適化を定義します。
  5. type=をクリックしPFBODYを選択します。
  6. nmodes=欄に20と入力します。
    CMS法に含まれるモードの数を20に増やします。

    os_2098_updating_lower_arm
    図 3. Lower_Armのボディタイプの更新
  7. updateをクリックします。
    ボディが新しいタイプに更新されたことを示すメッセージが、画面下部左側に表示されます。
  8. returnをクリックします。

トポロジー設計変数の作成

  1. Analysisページからoptimizationをクリックします。
  2. topologyをクリックします。
  3. createサブパネルを選択します。
  4. desvar=欄にL_Arm_Topologyと入力します。
  5. type:をPSOLIDにセットします。
  6. プロパティセレクターを使って、lowerarmを選択します。
  7. createをクリックします。
  8. 設計変数のパラメータを更新します。
    1. parametersサブパネルを選択します。
    2. minmemb offからmindim=に切り替え、0.05と入力します。
    3. updateをクリックします。
  9. returnをクリックします。

最適化の応答の作成

  1. Analysisページからoptimizationをクリックします。
  2. Responsesをクリックします。
  3. 体積率の応答を作成します。
    1. responses=欄に、Volfracと入力します。
    2. response typeの下で、volumefracを選択します。
    3. regional selectionをby entityno regionidに設定します。
    4. プロパティセレクターを使って、lowerarmを選択します。
    5. createをクリックします。
  4. コンプライアンスの応答を作成します。
    1. responses=欄に、Compと入力します。
    2. response typeの下で、complianceを選択します。
    3. regional selectionをとno regionidに設定します。
    4. createをクリックします。
  5. returnをクリックし、Optimization panelに戻ります。

設計制約条件の作成

  1. dconstraintsパネルをクリックします。
  2. constraints=欄にVol_Constrと入力します。
  3. response =をクリックしVolfracを選択します。
  4. upper boundの横のボックスにチェックマークを入れ、0.5と入力します。
  5. createをクリックします。
  6. returnをクリックし、Optimization panelに戻ります。

制約条件が応答Volfracに定義されました。この制約条件は、設計空間に使用される体積率が0.5未満となるよう強制します。

目的関数の参照値の定義

  1. Analysisページからパネルobj referenceをクリックします。
  2. dobjref=欄にMAX_Compinと入力します。
  3. pos referenceを選択し、1.0と入力します。
  4. neg referenceを選択し、-1.0と入力します。
  5. responseをクリックしCompを選択します。
  6. 荷重ステップの選択オプションをallに設定します。

    これは、設計目的の参照にESL法で計算されたすべての荷重ステップからのコンプライアンスが含まれることを確実にします。

  7. createをクリックします。
  8. returnをクリックし、Optimization panelに戻ります。

目的関数の定義

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

データベースの保存

  1. メニューバーFile > Save As > Modelをクリックします。
  2. Save Asダイアログでファイル名欄にexcavator_MBD_Topology.hmと入力し、自身の作業ディレクトリに保存します。

最適化の実行

  1. AnalysisページからOptiStructをクリックします。
  2. save asをクリックします。
  3. Save Asダイアログで、OptiStructモデルファイルを書き出す場所を指定し、ファイル名としてexcavator_MBD_Topologyと入力します。
    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はエラーメッセージも出します。エラーに関する詳細は、テキストエディタでファイル excavator_MBD_Topology.outを開いて確認することができます。このファイルは同じディレクトリ内に.femファイルとして書き出されます。
  9. Closeをクリックします。

結果の表示

  1. コマンドウィンドウ内にメッセージOPTIMIZATION HAS CONVERGEDが表示されたら、DOSウィンドウを閉じます。
  2. OptiStructパネルから、HyperViewをクリックします。
    結果がHyperViewに読み込まれます。
  3. Resultsブラウザ内で最終Outerloop反復計算を選択し、最適化されたトポロジー結果を読み出します。

    os_2098_outerloop
    図 4.
  4. ResultsツールバーでresultsIso-24をクリックし、Iso Valueパネルを開きます。
  5. Result typeをElement densities (s)に設定します。
  6. Applyをクリックします。
    Current value欄よりも要素密度が大きい要素のみが表示されます。

    os_2098_current_value
    図 5.
  7. 密度しきい値を変更します。
    • Current value欄に0.5と入力します。
    • Current valueの下のスライダーを動かします。
  8. Show valuesをAboveにセットします。
  9. ModelブラウザのComponentフォルダーでLower_Armを右クリックし、コンテキストメニューからIsolateを選択します。
  10. Iso ValueパネルのClipped geometryの下でFeaturesを選択し、設計空間全体を可視化します。

    os_2098_features
    図 6.