OS-T:4020 複合材から成る自転車のフレームの最適化

本チュートリアルでは、複合材構造の積層方向を最適化します。


4020_frame_model
図 1. 自転車のフレームのモデル
本チュートリアルにおける最適化問題の設定は以下の通りです:
目的関数
体積の最小化
制約条件
最大節点変位
設計変数
積層板厚

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

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

モデルのオープン

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

モデルのセットアップ

荷重コレクターの作成

  1. Modelブラウザで右クリックしコンテキストメニューからCreate > Load Collectorを選択します。
    デフォルトの荷重コレクターがエンティティエディターに表示されます。
  2. Nameにcrankと入力します。
  3. Colorをクリックし、カラーパレットから色を選択します。
  4. Card ImageをNoneに設定します。
  5. もう1つの荷重コレクターを作成します。
    1. Nameにspcsと入力します。
    2. Card Imageに、Noneを選択します。

作成-荷重

  1. ModelブラウザのCollectorsフォルダーでcrankを右クリックし、コンテキストメニューからMake Currentを選択します。
  2. 集中荷重を作成します。
    1. Analysisページからパネルforcesをクリックします。
    2. createサブパネルを選択します。
    3. エンティティセレクターをnodesにセットし、剛体スパイダーの中央にある節点を選択します。
    4. coordinate systemのトグルはglobal systemにセットします。
    5. magnitude=欄に-100.0と入力します。
    6. 方向定義をz-axisに設定します。
    7. createをクリックします。
    8. returnをクリックします。
    ペダルの位置にポイント集中荷重が作成されます。
  3. モーメントを作成します。
    1. Analysisページからパネルmomentsをクリックします。
    2. createサブパネルを選択します。
    3. エンティティセレクターをnodesにセットし、剛体スパイダーの中央にある節点を選択します。
    4. coordinate systemのトグルはglobal systemにセットします。
    5. magnitude=欄に100.0と入力します。
    6. 方向定義をx-axisに設定します。
    7. createをクリックします。
    8. returnをクリックします。
    ペダルの位置にモーメントが作成されます。
注: これは、pedal.20上の人の足からの移動された荷重を示す簡略化された荷重状況です。

4020_loads_applied_lower
図 2. 自転車の底部ブラケットに適用された荷重

制約条件の作成

  1. ModelブラウザのCollectorsフォルダーでspcsを右クリックし、コンテキストメニューからMake Currentを選択します。
  2. Analysisページからパネルconstraintsをクリックします。
  3. createサブパネルを選択します。
  4. エンティティセレクターをnodesにセットし、剛体スパイダーの中央にある節点をクリックすることで、構造を拘束するための節点を選択します。


    図 3. フレームの後輪に適用されたSPC


    図 4. ヘッドチューブの上部および下部に適用されたSPC
  5. dof1からdof6まですべてを拘束します。
    チェックマークのついている自由度は拘束され、ついていないものはフリーとなります。Dofs 1、2および3は、x、y、z方向の並進自由度を表します。Dof 4、5、6 はそれぞれ全体座標系の x、y、z 軸周りの回転自由度です。
  6. createをクリックします。
  7. returnをクリックします。
制約条件が選択された節点に適用されます。

荷重ステップの作成

  1. Modelブラウザで右クリックしコンテキストメニューからCreate > Load Stepを選択します。
    デフォルトの荷重ステップがエンティティエディターに表示されます。
  2. Nameにcrankと入力します。
  3. 解析のタイプをlinear staticに設定します。
  4. SPCを定義します。
    1. SPCに、Unspecified > Loadcolをクリックします。
    2. Select Loadcolダイアログでspcsを選択し、OKをクリックします。
  5. LOADを定義します。
    1. LOADに、Unspecified > Loadcolをクリックします。
    2. Select Loadcolダイアログでcrankを選択し、OKをクリックします。

寸法設計変数の作成

  1. 2DページからパネルHyperLaminateをクリックします。
    HyperLaminateが開きます。
  2. 設計変数thk1を作成します。
    1. Laminateブラウザで、Design Variableを展開し、DESVARを右クリックしてコンテキストメニューからNewを選択します。
      デフォルトでNewDv1と命名される新規の設計変数が追加されます。
    2. Desvar欄にthk1と入力します。
    3. Initial value欄に1.0と入力します。
    4. Lower bound欄に0.0と入力します。
    5. Upper bound欄に2.0と入力します。
    6. Applyをクリックします。
  3. thk1と同じ値を使用し、さらに4つの設計変数をそれぞれthk2thk3thk4thk5と名付けて作成します。
    ヒント: 同等の設計変数を素早く作成するには、thk1を右クリックし、コンテキストメニューからDuplicateを作成します。
  4. PCOMPブランチを開き、モデル内のすべてのPCOMPを確認します。
  5. seat_tube PCOMPを選択します。
    積層の詳細が現われます。
  6. パネル上部中央にあるOptimizationの横のチェックボックスをクリックします。
    Ply lay-up orderテーブルに新しい欄が現われ、設計変数を複合材積層板厚または複合材配向角に関連付けすることが可能となります。
  7. Ply lay-up orderテーブル内で、Thickness Designvarをthk1に設定します。
  8. その他の行のThickness Designvarを図 5のように変更します。

    4020_designvar
    図 5.
  9. Update Laminateをクリックします。
    これで、設計変数thk(i)がこの積層材のply(i)の板厚に関連付けされました。ここでは、ply(11-i)も対称性積層材であるために同じです。
  10. この手順を、seat_tubeプロパティと同じ設計変数を使って、TOP_tubeとdown_tubeについても繰り返します。
  11. メニューバーFile > Exitをクリックします。

最適化のセットアップ

最適化の応答の作成

  1. Analysisページからoptimizationをクリックします。
  2. Responsesをクリックします。
  3. 設計空間の体積率を定義する体積の応答を作成します。
    1. responses=欄に、volumeと入力します。
    2. response typeの下で、volumeを選択します。
    3. regional selectionをtotalno regionidに設定します。
    4. createをクリックします。
  4. 変位の応答を作成します。
    1. responses=欄に、dispと入力します。
    2. response typeの下で、static displacementを選択します。
    3. 節点セレクターを使って、node at the bottom of the bracket where the loads were appliedを選択します。
    4. displacement typeをtotal dispに設定します。
      dof1、dof2、dof3
      X、Y、Z方向の並進自由度
      dof4、dof5、dof6
      X、Y、Z方向の回転自由度
      total disp
      x、y、z方向の並進変位の結果
      total rotation
      x、y、z方向の回転変位の結果
    5. createをクリックします。
  5. returnをクリックし、Optimization panelに戻ります。

設計制約条件の作成

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

制約条件が応答dispに定義されました。これは、1.8 mm未満の変位を有する結果が必要であることを示しています。

目的関数の定義

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

最適化の実行

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

結果の表示

ここでは、設計変数と目的関数の履歴を確認します。
  1. Page ControlsツールバーでpageNew-24をクリックし、HyperViewのセッションを開きます。
  2. メニューバーFile > Open > Sessionをクリックします。
  3. Open Session Fileダイアログで作業ディレクトリに移動し、bicycle_frameOPT_hist.mvwファイルを開きます。

このファイルには、各反復計算における目的関数、制約条件、設計変数のプロットが納められています。

最初のページは目的関数を示しています:

4020_objective_function
図 6. 各反復計算における目的関数(体積)
2番目のページは最も大きな制約条件の違反を示しています:

4020_iteration
図 7. 各反復計算における最も大きな制約条件の違反(% [disp > 1.8 mm])
次のページは設計変数 (DVs)を示しています。設計変数はグループ化されており、異なる層の挙動を比較することができます。このプロットは、bicycle_frameOPT.hgdataファイルを開くことによって作成できます。

4020_dvs
図 8. 各反復計算における設計変数値