OS-T:5030 レールモデルの座屈最適化

本チュートリアルでは、座屈係数を大きくして座屈荷重を増やすため、レールモデルに寸法および形状最適化を適用します。レールの一端に外部集中荷重を載荷し、もう一端は全ての自由度を拘束します。座屈最適化を実行することにより、座屈係数を大きくして臨界座屈荷重を増やすことが可能です。

荷重の特定の組み合わせにより構造物が不安定で歪む現象を'座屈'と呼びます。一定の荷重に達すると、荷重の大きさが増えなくても、構造物は歪み続けます。座屈が発生する臨界荷重は、臨界座屈係数と付与される参照荷重の積です。座屈係数は固有値で、方向を有しません。一般的に、高次の座屈荷重に達する前に構造物は崩れてしまうことから、エンジニアが最も注目するのは最小次数の座屈荷重です。

線形座屈問題にOptiStructを使用する際、構造物に参照荷重を付与し、線形静解析およびノーマルモード解析に基づいて座屈係数を計算します。線形座屈を最適化するためにもOptiStructを使用し、構造物について寸法および / または形状最適化を実行します。最適化プロセスの間、構造物の降伏や集中荷重の変化は起こりません。

幾つかの要素の間の最大フォンミーゼス応力を最小化するために、座屈最適化の実行が必要です。これは、minimize maximum問題のセットアップを用いて行われます。minimize maximumまたはmaximize minimum問題の目的関数を定義するには、MINMAXまたはMAXMINステートメントを使用します。例えば複数の要素間でフォンミーゼスの最大応力を最小化するなど、いくつかの応答を何度も最小化および最大化する必要があります。そのような場合、ユーザー定義の式を用いて最大フォンミーゼス応力を最小化すると、期待する結果は得ることができません。1つの要素の最大応力を小さくすると、別の要素の応力が大きくなってしまうことがしばしば起こります。

本チュートリアルでは、gaugeパネルを用いて線形座屈および寸法最適化を定義する手順を説明します。形状および寸法最適化が共に、この構造最適化に適用されます。形状最適化はHyperMorphを用いてこのモデル内に予め定義されており、ユーザーが形状と形状設計変数の設定を行う必要はありません。寸法最適化は、演習の一部となっています。参照値が応力設計変数に与えられ、問題はminmax最適化問題として定式化されます。結果のモデルは、座屈を防ぐために、より厚く、幅広くなります。

os5030_pic1
図 1. レールモデルの座屈最適化
レールモデルの座屈を回避するために、モデルに寸法および形状最適化を実行します。
目的関数
最大フォンミーゼス応力の最小化
制約条件
最初の座屈係数を30以上に増加
設計領域の体積は800000未満
設計変数
要素板厚および形状基底ベクトルの重み係数

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

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

モデルのオープン

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

最適化のセットアップ

設計変数の確認と形状変化のアニメーション表示

形状最適化は、HyperMorphを用いてこのモデル内に予め定義されています。設計変数を確認し、予め定義されている形状変化をアニメーション表示します。
  1. メニューバーView > Browsers > HyperMesh > Utilityをクリックします。
  2. Utilityタブで、Optiをクリックします。
  3. Optimization Infoの下のDesign Variablesをクリックします。
  4. Size and Shape Design Variablesダイアログで、予め定義されているv1およびv2設計変数を確認し、Closeをクリックします。
    予め定義されている設計変数v1およびv2は初期値が0.0、下限制約が-2.0、上限制約が2.0です。

    5030_dvs
    図 2.
  5. Analysisページからパネルoptimizationをクリックします。
  6. shapeパネルをクリックします。
  7. desvarサブパネルを選択します。
  8. animateをクリックします。
  9. 形状SHAPE - v1 (1)をアニメーション表示します。
    1. simulation =をクリックしSHAPE - v1 (1)を選択します。
    2. data type =にセットし、Perturbation Vectorを選択します。
    3. linearをクリックします。
    4. 1つ目の形状のアニメーションを確認します。
  10. 形状SHAPE - v2 (2)をアニメーション表示します。
  11. returnを3回クリックし、Optimization panelに戻ります。

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

形状最適化のセットアップは、os_buckle_original.hmに予め定義されています。したがって、この座屈最適化問題については、寸法設計変数のみを定義すれば済みます。
  1. Analysisページからパネルoptimizationをクリックします。
  2. gaugeパネルをクリックします。
  3. createサブパネルを選択します。
  4. typeをPSHELL-Tおよびsame desvar for all propsに設定します。
  5. desvar=欄にshellsと入力します。
  6. プロパティセレクターを使用し、 domshell_elementsを選択します。
  7. initial value =欄に6.0と入力します。
  8. lower bound % =をlower bound =に切り替え、3.0と入力します。
  9. upper bound % =をupper bound =に切り替え、9.0と入力します。
  10. createをクリックします。
  11. returnを2回クリックし、メインメニューに戻ります。

座屈荷重コレクターの作成

本ステップでは、実固有値解析(座屈解析)を実行するために、荷重コレクターを作成します。
  1. Modelブラウザで右クリックしコンテキストメニューからCreate > Load Collectorを選択します。
    デフォルトの荷重コレクターがエンティティエディターに表示されます。
  2. NameにBucklingと入力します。
  3. Colorをクリックし、カラーパレットから色を選択します。
  4. Card ImageをEIGRLに設定します。
  5. V1に0.01と入力します。
  6. V2に100.0と入力します。
    OptiStructは、100未満の一番小さいものから3つまでの固有値を求めます。
  7. NDに20と入力します。

座屈最適化荷重ステップの作成

  1. Modelブラウザで右クリックしコンテキストメニューからCreate > Load Stepを選択します。
    デフォルトの荷重ステップがエンティティエディターに表示されます。
  2. NameにBucklingと入力します。
  3. Colorをクリックし、カラーパレットから色を選択します。
  4. Analysis typeをLinear Bucklingに設定します。
  5. STATSUBを定義します。
    1. STATSUBにUnspecified > Loadcolをクリックします。
    2. Select Loadcolダイアログでを選択し、OKをクリックします。
  6. METHOD(STRUCT)を定義します。
    1. METHOD(STRUCT)にUnspecified > Loadcolをクリックします。
    2. Select Loadcolダイアログでを選択し、OKをクリックします。

最適化の応答の作成

  1. Analysisページからoptimizationをクリックします。
  2. Responsesをクリックします。
  3. 設計空間の体積率を定義する体積の応答を作成します。
    1. responses=欄に、Volと入力します。
    2. response typeの下で、volumeを選択します。
    3. regional selectionをby entityno regionidに設定します。
    4. プロパティセレクターを使って、domを選択します。
    5. createをクリックします。
  4. 静的応力の応答を作成します。
    1. responses=欄に、Vonと入力します。
    2. response typeをstatic stressに設定します。
    3. プロパティセレクターを使って、dom Stressを選択します。
    4. response セレクターをvon misesにセットします。
    5. von misesの下で、both surfacesを選択します。
    6. createをクリックします。
  5. 座屈応答を作成します。
    1. response=欄にbuckleと入力します。
    2. response typeをbucklingに設定します。
    3. Mode Number欄に1と入力します。
    4. createをクリックします。
      モデルについて計算された最小の座屈モードである、最適化の応答buckleが作成されました。
  6. returnをクリックし、Optimization panelに戻ります。

制約の定義

  1. optimizationパネルからdconstraintsパネルをクリックします。
  2. 制約条件BUCKLEを作成します。
    1. constraints=欄にBUCKLEと入力します。
    2. lower boundの横のボックスにチェックマークを入れ、30と入力します。
    3. response=をクリックしBuckleを選択します。
    4. 荷重ステップセレクターを使って、を選択します。
    5. createをクリックします。
  3. 制約条件Volを作成します。
    1. constraints=欄にVOLと入力します。
    2. lower boundの横のボックスからチェックマークを外します。
    3. upper boundの横のボックスにチェックマークを入れ、800000と入力します。
    4. response=をクリックしVolを選択します。
    5. createをクリックします。
  4. returnをクリックし、Optimization panelに戻ります。

目的関数の定義

  1. 目的関数の参照値を作成します。
    1. obj referenceパネルをクリックします。
    2. dobjref=欄にMAX_STRESSと入力します。
    3. response=をクリックしVonを選択します。
    4. pos reference=を選択します。
      値1.0がデフォルトで割り当てられます。
    5. トグルをallからloadstepsに切り替え、荷重ステップセレクターを使ってLINEARを選択します。
    6. createをクリックします。
    7. returnをクリックし、Optimization panelに戻ります。
  2. 目的関数を定義します。
    1. objectiveパネルをクリックします。
    2. minmaxを選択します。
    3. dobjrefs=セレクターを使って、MAX_STRESSを選択します。
    4. createをクリックします。
    5. returnをクリックし、Optimization panelに戻ります。

最適化の実行

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

結果の表示

アニメーションの確認

  1. OptiStructパネルから、HyperViewをクリックします。
    HyperViewHyperMesh Desktop内で起動し、結果ファイルを読み込みます。
  2. 上部右側にあるナビゲーションボタンを使って、Design History(page 2)に移動します。

    page_nav
    図 3.
  3. Resultsブラウザで、Iteration 3を選択します。

    os5030_iteration3
    図 4.
  4. ResultsツールバーでresultsContour-24をクリックし、Contour panelを開きます。
  5. Result typeをShape Change (v)およびMagに設定します。
  6. Applyをクリックします。
  7. 結果をアニメーション表示します。
    1. Animationツールバーでをクリックし、アニメーションを開始します。
    2. アニメーションの再生中に、スライダーバーを使って、アニメーションのスピードを調整します。
      seekスライダー(上)とplayback speedスライダー(下)は、再生コントロールの横にあります。
    3. seekスライダーの横のAnimation ControlsアイコンをクリックしてBounceオプションをアクティブにし、衝突のアニメーションを前後させて確認します。
    4. アニメーションを停止し、Current time:スライダバーを使って手動でアニメーションをコントロールします。

    animation_toolbar
    図 5.

    os5030_design_history
    図 6.

応力の確認

  1. アプリケーションの上部右側でをクリックし、線形解析結果を含む次のページ(page 3/4)に移動します。
  2. ResultsツールバーでresultsContour-24をクリックし、Contour panelを開きます。
  3. Result typeをElement Stresses (2D&3D)(t)およびvonMisesに設定します。
  4. Resultsブラウザから、最終反復計算(Iteration 3)を選択します。
  5. Applyをクリックします。
応力のプロットが最終形状上に表示されます。

os5030_linear
図 7.

座屈モードの表示

  1. アプリケーションの上部右側でをクリックし、座屈結果を含む次のページ(page 4/4)に移動します。
  2. ResultsツールバーでresultsDeformed-24をクリックし、Deformedパネルを開きます。
  3. 変形形状パラメータを設定します。
    これは、アニメーションによる可視化を向上させます。
    1. Result typeをBuckling mode(v)に設定します。
    2. ScaleをModel unitsにセットします。
    3. TypeをUniformにセットします。
    4. Valueに10と入力します。
    5. Resolved inをGlobal System (proj: none)にセットします。
  4. モデルをアニメーション表示します。
    1. Animationツールバーで、アニメーションモードをModalに設定します。
    2. Animationツールバーでをクリックし、アニメーションを開始します。
    3. アニメーションの再生中に、speedスライダーバーを使って、アニメーションのスピードを調整します。
      座屈モード形状をよりよく見るには、スケールを大きくします。
    4. 衝突のアニメーションを前後に行ったり来たりさせて確認するには、Bounceオプションをアクティブにします。
    5. アニメーションは、時刻スライドを使って手動でコントロールすることも可能です。