Cradle

 

投稿一覧

最適化ツール(EOopti)の開発背景

  • LINEで送る
  • このエントリーをはてなブックマークに追加

ソフトウェアクレイドル 技術一課 勝村 成貴
最適化ツール(EOopti)の開発背景

一般的に、最適な設計変数・目的関数の組み合わせを探すためには、設計者の経験と知識が必要となり、限られた期間の中でこの組み合わせを探すのは容易なことではありません。しかし、オプションツールとして開発された「最適化ツール(EOopti)」を利用することで、無駄な試行錯誤を軽減し、短時間で、より目的に適った設計変数・目的関数の組み合わせを得ることができます。今回はこのツールを開発したソフトウェアクレイドル 技術部 勝村に開発の背景などを聞きました。



ソフトウェアクレイドル 技術一課 勝村 成貴


なぜ、最適化ツールを開発しようと思ったのでしょうか?

 コンピューターの処理速度が向上するにつれ、CAE(Computer Aided Engineering)を用いた製品設計を行う設計者の方々が多く見受けられるようになりました。クレイドルが扱っている熱流体解析もCAEの一つですが、これらの解析結果を用いても、最終的な製品形状に反映されるまでには、担当される方の経験と知識、そして判断力が必要になってくるのではないでしょうか。

 例えば、熱流体解析の結果から、「より空気抵抗の少ない車体形状はどういったものなのか」あるいは、「より冷却効果の高い放熱フィンの形状や部品配置はどういったものなのか」など、最適な形状・配置を探すために試行錯誤を重ねることは、数多くあるかと思います。特に、熱流体解析は、解析形状によっては計算時間が膨大になるケースがあるため、できるだけ少ない検討数でより目的に適した形状・配置を見つけられることが理想です。しかし実際は、最適な形状・配置を見つけるために、状況によっては何百何千といった検討を行う必要があり、途方もない時間とコストがかかってしまう場合があります。

 そこで、このような試行錯誤を軽減させ、短時間で、より目的に適った設計変数の値を提示してくれる最適化ツールが必要だと感じました。世の中には様々な最適化手法がありますが、クレイドルでは東北大学大林研究室から紹介されたMOGA(Multi Objective Generic Algorithm)を用いた最適化ツール、Extension Option (Optimization)(以下、EOopti)を開発、Version10からオプション機能としてご利用いただけるようになりました。



図1 Kriging法によって得られた応答曲面


開発する上で苦労や発見などはありましたか

 私自身、最適化問題を扱った経験が少ないため、EOoptiの開発担当が決まったときには、どのようなGUI(Graphic User Interface)にすればよいか、イメージするのに苦労しました。この問題を解決するために、プロトタイプ製品をもとに社内スタッフとミーティングを重ね、その意見を製品へ反映させるということを繰り返し行いました。

 また、拡張性の高いGUIを作るためには、最適化アルゴリズムの理解も必須でした。GUIの仕様設計・実装と最適化アルゴリズムの理解と実装、この両方の作業を限られた期間で平行して進めなければならない点が、開発を進める上で大きなハードルとなりました。しかし、いろいろな方からの意見やアドバイス、様々な文献・情報を自分の中に取り入れることで、当初はイメージしにくかったアプリケーションのあるべき姿が見えてくるようになりました。

機能の構成や簡単な使い方を教えてください

 EOoptiは図2に表示される構成になっています。条件設定ウィザードで最適化に必要な条件を入力することで、Kriging法による応答曲面生成、MOGAによる多目的最適化を行うことができます。グラフツリーに最適化によって得られた結果グラフの項目が追加され、ドローウィンドウ上で各グラフを表示・確認できます。



図2 EOoptiの構成


 Kriging法とはデータ内挿法の一つで、既知点のデータからある地点における値を推定する手法です。最適化を行う際、理想的には最適化の対象となる各目的関数が数式化されていればよいのですが、流体のような非線形的な現象においてはこれらを数式化することは容易ではありません。そのため、各目的関数の代理モデルとして、サンプリング点からKriging法を用いることで、各目的関数の応答曲面を生成し、その応答曲面の分布を使用してMOGAによる最適解の探索を行います。

 EOoptiを用いて最適解を探索するためには、大きくわけて、次の3つの準備が必要です。

(1) 設計変数・目的関数の定義
(2) サンプリング点(設計変数値)の生成
(3) (2)の設計変数値に対する目的関数値の入力



図2 EOoptiの構成


 (1)、(2)はEOopti内で定義・入力することができますが、(3)については解析結果の値といった、外部情報を入力する必要があります。



図4 LEDダウンライト


 具体的な操作について、以下の例を用いて示していきます。ここでは、図4のようなLEDダウンライトの放熱用ヒートシンクの形状最適化について考えます。今回 は「フィン枚数」「フィン部高さ」「ヒートシンク軸部の厚み」「フィン部の外径」「ヒートシンク軸部の外径」の5つを設計変数に、「LEDの温度」 「LEDの体積」の2つを目的関数とし、両目的関数が最小となる設計変数の組み合わせを探す最適化問題とします。各設計変数の範囲は図5の通りです。

(1)設計変数・目的関数の定義

 EOopti の条件設定はすべて条件設定ウィザード内で行うことができます。(図6)1ページ目では、設計変数の数、目的関数の数、サンプリング点数を入力します。今回の例であれば、設計変数の数は5、目的関数の数は2と入力します。サンプリング点数は、今回は50として入力します。これは、Kriging法によって応答曲面を生成させるのに必要な既知の値の数を指し、言い換えれば、「50ケースの解析結果を用いる」という定義になります。



図5 設計変数の範囲


図6 条件設定ウィザード(1ページ目)


(2)サンプリング点(設計変数値)の生成

 条件設定ウィザード2ページ目で設計変数の範囲、目的関数の設計指針(最大値・最小値のどちらを求めるか)、サンプリング点の値を入力します。EOoptiでは設計変数のサンプリング値生成手法にラテン超方格法を用いており、作成を押すと、サンプリング点数分の設計変数値が自動的に入力されます。(図7)



図7 条件設定ウィザード(2ページ目)


(3) (2)の設計変数値に対する目的関数値の入力

 (2)の条件設定ウィザードで空欄になっている部分にサンプリング点の目的関数の値を入力します。この値には、各サンプリング点の設計変数値を用いたLEDダウンライトの体積、およびSTREAM®で得られた解析結果の温度の値を入力します。(図8)なお、このページで入力した値はCSV形式で入出力できるので、Excelなどの編集ソフトウェアで目的関数値を入力したのち、EOoptiに読み込むことも可能です。(図9)



(上)図8 条件設定ウィザード(2ページ目:目的関数値入力済) (下)図9 Excelを用いた目的関数値入力


 以上で条件の設定は終了です。条件設定ウィザード3ページ目で実行を押せば、Kriging法・MOGAによる最適解の探索が開始します。(図10) 最適化終了後、Kriging法の結果による応答曲面(1ページ・図1)・寄与度分布、MOGAによる最適解分布(図11)・相関関係グラフ(図12)がドローウィンドウ上で確認することができます。以上の操作は、手作業での入力のため、特に目的関数のサンプル値の取得・入力に手間がかかりますが、Miccrosoft® Office製品のVBAやSCRYU/Tetra®、STREAM®で公開されているVBインターフェースを用いることで、流体解析から最適化までの一連の操作を自動化したシステムを構築することも可能です。



図10 条件設定ウィザード(3ページ目)


利用することでのメリットや注意点などはありますか

 図11のように、多目的最適化で得られる最適解分布は、唯一の局所解が得られるわけではありません。一方の目的関数値を固定した場合に、他方の目的関数の目標を最大限満足する解の集合を「パレートフロント」と呼びますが、これは最適解分布図の曲線状の解の集合で見ることができます。最適化ツールを利用することで、最終的に決めなくてはならない最適解の候補をいち早く得ることができ、時間やコストの削減につなげられるといったところが最大のメリットだと思います。



図11 MOGAによって得られた最適解分布


 注意点としては、Kriging法による応答曲面は代理モデルであるため、応答曲面の精度が落ちれば最適化の結果の信頼性も落ちてしまいます。このため、サンプリング点の目的関数値にはできるだけ精度が高い値を用いることが望ましく、今回のような流体解析による目的関数値取得にはこの解析精度が大きく影響してきます。その結果、流体解析では実現象に適った条件設定、メッシュ数が必要になってくるため、より早く精度の高い結果を得るには、ソルバーの並列計算化、ハードウェア環境の充実化などが必要になってきます。



図12 MOGAによって得られた相関関係グラフ


ユーザー様にメッセージをお願いします

 EOoptiはVersion10からリリースされたばかりの、まだまだ発展途上のアプリケーションです。今後もより使いやすい便利な最適化ツールになるよう、機能の一つ一つを磨き、拡張を図っていきたいと考えています。


※STREAM、SCRYU/Tetraおよび熱設計PACは、日本における株式会社ソフトウェアクレイドルの登録商標です。
※その他、本インタビュー記事に記載されている会社名、製品・サービス名は、各社の商標または登録商標です。
※本インタビュー記事の内容は2013年1月現在のもので、予告なしに変更する場合があります。また、誤植または図、写真の誤りについて弊社は一切の責任を負いません。​

 


PDFダウンロード

 

  • LINEで送る
  • このエントリーをはてなブックマークに追加

ピックアップコンテンツ