OS-T: 2090 押し出し制約条件

本チュートリアルでは、押し出し制約法を使って、押し出し制約条件を伴う最適化問題を実施し、指定したパスに沿って一定の断面を持つような設計を生成します。特に、押し出しプロセスで製造する部品がこの状況に該当します。

トポロジー最適化で押し出しの製造用制約条件を適用することにより、初期メッシュ、境界条件、荷重に関係なく、一定の断面を持つソリッドモデルの設計が可能です。

本チュートリアルでは、湾曲した梁を、その上で車両が動くレールとみなし、トポロジー最適化を定義する手順について解説します。梁の両端は支持されています。レールの全長上にかかる点荷重を7つの独立した荷重ケースとして表し、車輌の動きをシミュレートします。レールは押し出し成型で製造されます。手順としては、HyperMeshを用いてトポロジー設計空間、押し出し製造制約条件および最適化パラメータ(応答、目的関数および制約条件)の定義を行います。

この最適化には、DTPL(Design Variable for Topology Optimization: トポロジー最適化の設計変数)カードが使用されます。

本演習では、押し出し製造されたレールの剛性が増し、材料が最小限で済むよう、湾曲した梁についてトポロジー最適化を実施します。

最適化問題の設定は次の通りです:
目的関数
重み付きコンプライアンスの最小化
制約条件
体積率 < 0.3
設計変数
設計空間内の各要素の密度

2090_model
図 1. 荷重および境界条件を示した湾曲した梁の有限要素メッシュ

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

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

モデルの読み込み

  1. File > Import > Solver Deckをクリックします。
    Importタブがタブメニューに追加されます。
  2. File typeにOptiStructを選択します。
  3. Filesアイコンfiles_panelを選択します。
    Select OptiStruct Fileブラウザが開きます。
  4. 自身の作業ディレクトリに保存したrail_complete.femファイルを開きます。モデルファイルへのアクセスをご参照ください。
  5. Open をクリックします。
  6. Import、続いてCloseをクリックし、Importタブを閉じます。

    疲労解析のセットアップの大筋は、以下のステップで得られます。

最適化のセットアップ

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

ここでは、トポロジー設計空間定義design_solidを作成します。designプロパティコレクターに属す要素はすべて、設計空間内に含まれるようになります。

  1. Analysisページからoptimizationをクリックします。
  2. topologyをクリックします。
  3. createサブパネルを選択します。
  4. desvar=欄にdesign_solidと入力します。
  5. type:をPSOLIDにセットします。
  6. プロパティセレクターを使って、new_solidを選択します。
  7. createをクリックします。

押し出し問題と押し出しパスの定義

  1. モデリングウィンドウで、節点71559および70001について、数値を表示します。
    1. Displayツールバーでをクリックし、Numbersパネルを開きます。
    2. nodes > by idをクリックし、id=欄に71559.70001と入力します。
    3. displayを選択します。
    4. onをクリックします。
    5. returnをクリックします。
  2. 押し出しパスの定義
    1. topologyサブパネルで、extrusionサブパネルを選択します。
    2. desvar =をダブルクリックし、design_solidを選択します。
    3. noneからno twistに切り替えます。
      押し出し制約条件は、NOTWISTパラメータを使用してねじれのない断面を持つドメインに適用でき、同様にTWISTパラメータを使用してねじれのある断面を持つドメインに適用できます。
    4. node list > by pathをクリックし、まず節点71559を、次に節点70001を選択します。
    5. updateをクリックします。

    節点71559で始まり節点70001で終わる一連の節点がハイライト表示され、押し出しパスを示します。

    カーブの定義に多くの節点を選ぶ必要はありません。この演習は、nodes by pathオプションによる節点も使用できることを示すためのものです。

    一連の節点を入力して、'離散的'な押し出しパスを定義する必要があります。

    その後、これらの節点間は、パラメトリックスプラインを使用して曲線で補間されます。最低限必要な節点の数は、押し出しパスの複雑さで決まります。直線状のパスに必要な節点は2つのみですが、もっと複雑な曲線には少なくとも5~10以上の節点を使用することをお奨めします。

    2090_extrusion_path
    図 2. 押し出しパスの定義
  3. returnをクリックし、Optimizationパネルに戻ります。

最適化の応答の作成

  1. Analysisページからoptimizationをクリックします。
  2. Responsesをクリックします。
  3. 体積率の応答を作成します。
    1. responses=欄に、Volfracと入力します。
    2. response typeの下で、volumefracを選択します。
    3. regional selectionをtotalno regionidに設定します。
    4. createをクリックします。
  4. 重み付けコンプライアンスの応答を作成します。
    1. responses=欄に、wcomp1と入力します。
    2. response typeの下で、weighted compを選択します。
    3. loadstepsをクリックし、すべての荷重ステップを選択します。
    4. returnをクリックします。
    5. createをクリックします。
  5. returnをクリックし、Optimizationパネルに戻ります。

設計制約条件の作成

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

目的関数の定義

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

最適化の実行

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

結果の表示

結果ファイルの読み込みとポスト処理

  1. OptiStructパネルから、HyperViewをクリックします。
  2. Resultsブラウザから、リストされている最終反復計算を選択します。
    最適化の最初における結果を示すIteration 0がデフォルトで選択されます。最終反復計算は、この最適化の最終解析結果を示します。

    os_2090_iteration41
    図 3.
  3. ResultsツールバーでresultsIso-24をクリックし、Iso Valueパネルを開きます。
  4. Result type:をElement Densitiesに設定します。
  5. Applyをクリックします。
  6. Current value欄に0.3と入力します。
  7. Applyをクリックします。
押し出し製造制約条件を与えた場合の結果は、モデルの全体の長さについて、一定の断面が可能となります。

2090_isosurface_plot_beam
図 4. 湾曲した梁のレールのアイソサーフェスプロット. 押し出し制約条件を用いたトポロジー最適化

押し出しコンポーネントの断面の表示

Section Cutパネルでは、モデルの断面を表示します。これは、モデルの内側の詳細を見たい場合に役立ちます。
  1. DisplayツールバーでvisualizationSectionCut-24をクリックし、Section Cutパネルを開きます。
  2. Addをクリックし、新しい断面を作成します。
  3. Define planeをY Axisに設定します。
  4. Baseセレクターを使用し、モデルの中央に位置する任意のコーナーをクリックします。
  5. Applyをクリックします。
  6. Define planeの下のスライダーを動かして、モデルをスクロールします。
  7. Display optionsの下で、Widthの横のスライダーバーを使用し、断面の幅を変更します。
押し出し製造制約条件を与えた場合の結果は、モデルの全体の長さについて、一定の断面が可能となります。

2090_contour_plot_section_cut
図 5. 断面のコンタープロット. 湾曲した梁のx-z平面上