OS-T:4080 回転バー最大応力の最小化

本チュートリアルでは、回転バーのマルチボディダイナミクス(MBD)寸法最適化のセットアップと実行を行います。

バーの左端に定義された回転ジョイントの角速度は、10*SIN(2*TIME) rad/secです。最適化の目的は、一定の質量仕様のもと、構造の最大応力を最小にすることです。バーは、円形のソリッド断面を有する5つのバー要素で構成されています(各要素はそれぞれROD断面とPBARLを有す)。設計変数は各バーのプロパティの半径です。

4080_bar
図 1. 回転バーの構造モデル
最適化問題の設定は次のとおりです:
目的関数
垂直応力の最小化
制約条件
質量 < 10kg
設計変数
各バーのプロパティの半径(PBARL

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

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

モデルのオープン

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

モデルのセットアップ

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

このモデルの弾性体の構造解析および最適化は、ESL最適化で実行されます。したがって、弾性体の境界条件を定義する必要があります。
  1. 荷重コレクターを作成します。
    1. Modelブラウザで右クリックしコンテキストメニューからCreate > Load Collectorを選択します。
      デフォルトの荷重コレクターがエンティティエディターに表示されます。
    2. Name欄にBCforOptと入力します。
  2. coincident pickingを有効にします。
    1. メニューバーPreferences > Graphicsをクリックします。
    2. graphicsサブパネルを選択します。
    3. coincident pickingを選択します。
    4. returnをクリックします。

    4070_coincident
    図 2.
  3. ModelブラウザtabProperties-24をクリックし、プロパティビューを表示させます。
  4. 拘束条件を作成します。
    各弾性体の6剛体モーションを削除するために、各弾性体について6 DOFのみが固定されています。
    1. Analysisページからパネルconstraintsをクリックします。
    2. モデルの左端をクリックします。
      2つの節点番号が表示されます。
    3. 節点番号1を選択します。

      4080_node1
      図 3.
    4. すべての自由度(dof1からdof6まで)を選択し、その値が0.0になっていることを確認します。
    5. createをクリックします。
    6. returnをクリックします。

HyperMeshではサポートされない駆動モーションの定義

本チュートリアルでは、ジョイント位置における駆動モーションMOTNJEが定義されます。しかしながら、MOTNJEは現時点ではHyperMeshでサポートされていません。したがって、このカードおよび対応するMBVARカードを手動で入力する必要があります。
  1. Analysisページからパネルcontrol cardsをクリックします。
  2. BULK_UNSUPPORTED_CARDSをクリックします。
  3. 下記の2つのカードが存在していることを確認します。リストされていない場合は、カードを入力します。

    4080_controlcard_manual
    図 4.
  4. OKをクリックします。
  5. returnをクリックします。

荷重ステップの編集

  1. ModelブラウザSUBCASE1をクリックします。
    荷重ステップのデータがエンティティエディターに表示されます。
  2. Name欄にDynamicと入力します。
  3. Analysis typeをmulti-body dynamicsに設定します。
  4. SPCを定義します。
    1. SPCにUnspecified > Loadcolをクリックします。
    2. Select Loadcolダイアログでを選択し、OKをクリックします。
  5. MBSIMを定義します。
    1. MBSIMにUnspecified > Loadcolをクリックします。
    2. Select Loadcolダイアログでを選択し、OKをクリックします。
  6. MOTIONを定義します。
    1. MOTIONにUnspecified > Loadcolをクリックします。
    2. Select Loadcolダイアログでを選択し、OKをクリックします。

最適化のセットアップ

寸法最適化設計変数の定義

  1. Analysisページからパネルoptimizationをクリックします。
  2. sizeパネルをクリックします。
  3. desvarサブパネルを選択します。
  4. 設計変数rad1を作成します。
    1. desvar=欄にrad1と入力します。
    2. initial value =欄に10と入力します。
    3. lower bound欄に0.05と入力します。
    4. upper bound欄に100と入力します。
    5. move limitのトグルはmove limit defaultにセットします。
    6. 離散設計変数(ddval)のトグルをno ddvalにセットします。
    7. createをクリックします。
    新しい設計変数rad1が作成されました。この設計変数は初期値が10、下限制約が0.05、上限制約が100です。
  5. rad1同じ初期値、下限および上限制約値を用いて設計変数rad2、rad3、rad4、rad5を作成します。
  6. generic relationshipサブパネルを選択します。
  7. 設計変数とプロパティの関係bar1_rad1を作成します。
    1. name =欄にbar1_rad1と入力します。
    2. プロパティセレクターを使って、PBARL_1を選択します。
    3. プロパティセレクターの下で、Dimension 1を選択します。
    4. designvarsをクリックします。
    5. rad1を選択します。
      注: linear factorは自動的に1.000に設定されます。
    6. returnをクリックします。
    7. createをクリックします。
    設計変数rad1をプロパティPBARL_1のPBARLカード上の半径入力値に関連付けた、設計変数とプロパティの関連bar1_rad1が作成されました。
  8. 設計変数をプロパティPBARL_2、PBARL_3、PBARL_4、PBARL_5のPBARLカード上の半径入力値に関連付けた、設計変数とプロパティの関連bar2_rad2、bar3_rad3、bar4_rad4、bar5_rad5を作成します。
  9. returnをクリックし、optimizationパネルに移動します。

質量と応力の応答の作成

  1. 応答Massを作成します。
    1. responsesパネルをクリックします。
    2. response=欄にMassと入力します。
    3. response typeをmassに設定します。
    4. regionalの選択ボタンをtotal(デフォルト)にセットします。
    5. createをクリックします。
    モデルの全質量の応答Massが定義されました。
  2. 応答Stressを作成します。
    1. responsesパネルをクリックします。
    2. response=欄にStressと入力します。
    3. response typeをstatic stressに設定します。
    4. propsをクリックします。
    5. リスト内のすべてのプロパティを選択し、selectをクリックします。
    6. stressをnormalに設定します。
    7. stress recovery pointをallに設定します。
    8. createをクリックします。

    4080_normal_all
    図 5.
  3. returnをクリックし、optimizationパネルに移動します。

設計制約条件の作成

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

目的関数の定義

本チュートリアルの目的は、モデルが回転する間のモデルの最大応力を最小にすることです。
  1. 目的関数の参照値を作成します。
    1. obj referenceパネルをクリックします。
    2. dobjref=欄にMaxStressと入力します。
    3. response=をクリックしStressを選択します。
    4. neg reference=pos reference=を選択します。
    5. トグルをallからloadstepsに切り替え、荷重ステップセレクターを使ってDynamicを選択します。
    6. createをクリックします。
    7. returnをクリックし、Optimization panelに戻ります。
  2. 目的関数を定義します。
    1. objectiveパネルをクリックします。
    2. minmaxを選択します。
    3. dobjrefs=セレクターを使って、MaxStressを選択します。
    4. createをクリックします。
    5. returnをクリックし、Optimization panelに戻ります。

データベースの保存

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

最適化の実行

  1. AnalysisページからOptiStructをクリックします。
  2. save asをクリックします。
  3. Save Asダイアログで、OptiStructモデルファイルを書き出す場所を指定し、ファイル名としてrotating_bar_designと入力します。
    OptiStruct入力ファイルには、拡張子 .femが推奨されます。
  4. Saveをクリックします。
    入力ファイル欄には、Save Asダイアログで指定されたファイル名と場所が表示されます。
  5. export optionsのトグルをallにセットします。
  6. run optionsのトグルをoptimizationにセットします。
  7. memory optionsのトグルはmemory defaultにセットします。
  8. OptiStructをクリックして最適化を実行します。
  9. Closeをクリックします。

解析が正常に終了した場合、プロンプトにエラーメッセージは出力されません。プロンプトにProcessing completed successfully 行が表示されると、最適化は正常に終了したことを示します。

ジョブが正常に終了すると、入力ファイルが書き出されたディレクトリ内にいくつかの新しい結果ファイルが作成されます。通常の出力ファイルに加え、rotating_bar_design.esloutという名称のテキストファイルが確認できます。このファイルは、ESL最適化のプロセスを確認するための良いソースです。

7回の反復計算の後、図 6に示すとおり、モデルは降順の値に収束します。


図 6.