設計変数が極端に多い課題の最適化

今回は円錐殻の事例を題材に、設計変数が極端に多い課題の最適化方法についてご紹介します。

最適化CAEを取り扱う方向けの内容になるため、設計者の方は他の事例集をお楽しみください。

また、弊社製のソフトOptiAssistシリーズをご利用の方はユーザーマニュアルに記載されている内容とほぼ同じなので読む必要はありません。(読んでくれていますよね?)

最適化CAEを使用している中で、「最適化結果は収束したのだけど、これって本当に最適解なのか・・・?」「比較検討品と比べて性能が悪くなっている・・・?」と疑ってしまう結果になることがありませんか?ここでは、MultiRunという機能(考え方)についてご紹介します。

さて、円錐殻の座屈問題では、MultiRun(マルチラン)を使用した、と紹介しました。このMultiRunという機能は、以下のような場合に有効です。

  • CFRPの積層設計のように設計変数が極端に多い。(材料、プライ枚数、繊維配向、・・・)
  • トポメトリー最適化のように初期状態の候補が大量に存在する。

CFRP設計者の方は日常的に頭を抱える課題かと思います。

なぜこのようなことになってしまうかと言うと、最適化の初期状態、つまりCycle0の状態により、最適化結果の収束先が変化してしまいます。具体的な例を挙げると、

  • Cycle0の板厚が1.0mmから開始した場合:最適化後質量=5.0kg
  • Cycle0の板厚が3.0mmから開始した場合:最適化後質量=5.5kg
  • Cycle0の板厚が5.0mmから開始した場合:最適化後質量=4.2kg

上記のように、最適化結果に大きな差が出る場合が多いです。一般的な最適化ソルバーでは、Cycle0の感度解析結果から徐々に収束していくため、Cycle0の状態により収束する結果が変わってしまいます。

下記のグラフでは、Clycle0の感度解析で黄色点が右側(板厚増加側)か左側(板厚減少側)のどちらが有利(Objectiveが低下する)かを判断します。「板厚を増加させる側が良好」と最適化ソルバーが判断するため、赤で表示されるローカル最適化結果に収束します。

設計変数が多いとローカル解に収束しがちな図解

  • 黄点=初期設計値(Cycle0)
  • 赤点=収束した解(ローカル最適解)
  • 緑点=最適解(グローバル最適解)

最適化ソルバーは、Cycle0の時点では悪化傾向になる左側(板厚減少側)にある最適解を考慮せず、右側(板厚増加側)へと収束させてしまいます。これを防ぐには、Cycle0の状態をいくつか用意して、グローバル最適解を探索する他ありません。つまり、DOEやMDOのように大量の計算が必要となり非常に効率が悪くなってしまいます。

下記のグラフでは、Cycle0の位置により収束する解が変わることが感覚的に理解できます。各黄色点は、曲線を下る側にしか動かないため、左から2番目と3番目の初期状態がCycle0になっているモデルしかグローバル最適解にたどり着くことができません。

MultiRunでは多数の初期状態を使用するため、グローバル最適解にたどり着きやすい

ただ、初期状態を多数用意して多数の計算を流すのは骨の折れる作業であり、スクリプト等で自動化しても面倒であることは言うまでもありません。ここで、Genesisには「MultiRun」という機能が使用できます。1計算の中で、自動的に初期状態をリセットして、別の初期状態から最適化をリスタートする機能です。

以下の図では、上段がObjective(目的関数)、下段がConstraint Violation(制約条件違反)を表します。

  • 左側:一般的な最適化の収束状況
  • 右側:MultiRunによる最適化の収束状況

Multirunを使用した場合、様々な初期状態から検証するため最適解が得られやすい

一般的な最適化方法では、Constraint violation(こここでは変位)が徐々に減少しつつ、Objective(ここでは質量)が増加したのち、Constraint violationが0になると徐々にObjectiveも減少していきます。

MultiRunの最適化方法では、この収束を表すグラフにいくつものスパイクが見られます。これは、一度収束したのちに、初期状態をリセットして最適化計算を再実行しているためです。最終サイクルで出力される結果は、この最適化計算の中で最良の結果を出力するようになっています。

デメリットとしては、何度も最適化計算を実施するのと同じなので、収束するまでの計算時間(計算サイクル)が増えることです。ただし、1ファイル1計算で済むため、ジョブ投入⇒定時帰宅が可能です。(そもそも、手作業で初期状態の水準を振るのは、設計変数が多すぎるため現実的ではありません)

今回は、一回の最適化計算では到達することが難しいグローバル最適解が、1計算で見つけられる方法をご紹介しました。

GRMでは最適化を使用した製品設計のサポートを受託しているため、皆様と同様の課題に直面しています。それらを解決する手段やアイデアをたくさん蓄積しているので、うまくいかずに困っていることがあればお気軽にご相談ください。