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

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

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

4080_bar
最適化問題の設定は次の通りです:
目標
垂直応力の最小化
制約条件
質量 < 10kg
設計変数
各バーのプロパティの半径(PBARL

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

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

モデルのオープン

  1. File > Open > Modelをクリックします。
  2. 自身の作業ディレクトリに保存したrotating_bar_design.hmファイルを選択します。
  3. Openをクリックします。
    rotating_bar_design.hmデータベースが現在のHyperMeshセッションに読み込まれます。

モデルのセットアップ

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

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

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

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

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

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

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

荷重ステップの編集

  1. Model BrowserSUBCASE1をクリックします。
    荷重ステップのデータがEntity Editorに表示されます。
  2. Name欄にDynamicと入力します。
  3. Analysis typeをmulti-body dynamicsに設定します。
  4. SPCを定義します。
    1. SPCにUnspecified > Loadcolをクリックします。
    2. Select LoadcolダイアログでBCforOptを選択し、OKをクリックします。
  5. MBSIMを定義します。
    1. MBSIMにUnspecified > Loadcolをクリックします。
    2. Select LoadcolダイアログでMBSIM1を選択し、OKをクリックします。
  6. MOTIONを定義します。
    1. MOTIONにUnspecified > Loadcolをクリックします。
    2. Select LoadcolダイアログでMBSIM1を選択し、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を選択します。
      Notice: 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をクリックします。
    5.

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

Create Design Constraints

  1. Click the dconstraints panel.
  2. In the constraint= field, enter Mass.
  3. Click response = and select Mass.
  4. Check the box next to upper bound, then enter 10.0.
  5. Click create.
  6. Click return to go back to the 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. menu barFile > Save As > Modelをクリックします。
  2. Save Asダイアログでファイル名欄にrotating_bar_design.hmと入力し、自身の作業ディレクトリに保存します。

Run the Optimization

  1. From the Analysis page, click OptiStruct.
  2. Click save as.
  3. In the Save As dialog, specify location to write the OptiStruct model file and enter rotating_bar_design for filename.
    For OptiStruct input decks, .fem is the recommended extension.
  4. Click Save.
    The input file field displays the filename and location specified in the Save As dialog.
  5. Set the export options toggle to all.
  6. Set the run options toggle to optimization.
  7. Set the memory options toggle to memory default.
  8. Click OptiStruct to run the optimization.
  9. Click Close.

If the optimization was successful, no error messages are reported to the shell. The optimization is complete when the message Processing completed successfully appears in the shell.

If the job was successful, the new results file can be seen in the directory where the input file was saved. In addition to ordinary output files, you can see a text file with the name rotating_bar_design.eslout. This file is a good source to see the process of the ESL optimization.

After ~ 7 interations, the model should converge to the descending values shown in 図 6.
6.