技術情報
RICOSのシミュレーション高速化技術について
はじめに
物理現象を計算で模倣するシミュレーションによって、性能評価のための試作品作成や実験を一部省略できるようになり、設計工程のコストが大幅に削減されました。しかしその一方で、規模の大きいシミュレーションでは1回の計算に数日かかるようなものもあり、シミュレーションの高速化が強く求められています。
弊社 科学計算総合研究所(以下RICOS)は、シミュレーションの結果を高速かつ高精度に予測する機械学習アルゴリズム「IsoGCN」を開発しました。これはシミュレーション結果を求める計算方法自体を別の計算方法に置き換える手法であり、数日かかっていた計算を数分に短縮したなどの抜本的な高速化に成功した実績もあります。またRICOSは、「IsoGCN」のベースであるグラフニューラルネットワークというアルゴリズムを使ってシミュレーション結果を予測することについて、特許を取得しています(特許第6845364号)。
シミュレーションの高速化自体にも価値がありますが、RICOSはこの高速化技術を活用して最終的には次のような設計工程の変革を目標としています。
- 瞬時に表示されるシミュレーション結果を確認しながら変型させて調整し設計する、リアルタイム設計検討
- 3D形状の生成・変型を自動で行う技術と組み合わせることで、より最適な形状を自動で発見
この記事では、その変革の土台となるシミュレーションの高速化技術について、既存のシミュレーションとRICOSの独自技術の計算手法の比較を行います。
※技術的な詳細についてはこちらの記事をご参照ください。
シミュレーションとは
製品を設計する際、見た目のデザインとは別に、性能面で満たしたい機能があります。例えば、下記のようなものです。
- 梁に対して垂直に ○kg の力をかけても折れない
- 冷却器を稼働させながら使えば、パーツの温度が ○℃ 以上にはならない
- 時速 △km で走ったときの車体の空気抵抗値が ○ 以下であってほしい
目標の性能を達成しているか確かめるには、実際にテスト用の製品を作って実験するという手法が考えられますが、これは時間的にも費用的にも多大なコストがかかります。
その代替手段として、設計した3次元形状のデータを作成し、物理現象を計算によって再現するシミュレーションが設計の現場で多く用いられるようになりました。これによって、例えば100パターンの3次元形状データを作成してシミュレーションを行い、性能がよかった5パターンのみ実際にテスト製品を作成して実験、というような設計フローが可能となりました。
設計検討の段階の大幅な高速化・コストカットに寄与しているシミュレーションですが、それでも規模が大きいシミュレーションでは数日レベルの時間がかかることもあるという課題が残っています。
この記事で扱う例(熱解析)について
本記事では、例として熱伝導の問題を扱います。
※下記のデータ・実行コードは、IsoGCN [GitHub] 内のものを使用しています。
例えば、このような形状、熱分布の製品があったとします。
※Paraviewというアプリケーションで表示しています。以下も同様です。
時間が経過するにつれて、熱は温度が高いところから低いところに移り、熱分布が変わっていきます。
この記事では、この状態の 1 秒後の熱分布を求めるという問題を例として扱います。
通常のシミュレーションでの計算方法
シミュレーション手法には様々なものがありますが、その1つに「有限要素法」というものがあります。これは、対象物を有限個の要素に分割して数値解析を行う手法です。
要素の分割
例えば上で紹介した形状を有限個の要素に分割して、下記のような要素の集合体だと考えます。
※ “Surface With Edges”という表現モードで表示しています。
角度を変えて拡大すると、このようになっています。
目視で数え上げることはできませんが、1,284個の節点を持ち、3,809個の四面体に分割されています。
このように細かい要素に分割した上で、
- それぞれの要素の温度
- それぞれの要素の物性値
- それぞれの要素が隣合う要素に与え合う影響
を考慮し計算することで、熱の移動がシミュレーションできます。
一般に、分割する要素数が多い=細かく分割した場合の方が計算の精度は高くなり、計算時間は長くなります。
計算の実行
要素に分割した上で、ある時間が経過した際に、隣接する部位や周辺の空気との間での熱の移動をそれぞれ計算し、シミュレーションを行います。
例えば、「1 秒後の状態をシミュレーションする」にも
- 0.01秒の経過を100回繰り返す
- 0.1秒の経過を10回繰り返す
- 1秒の経過を1回繰り返す
など複数のやり方が考えられます。一般的に、より細かい時間で区切った方が計算の精度が高くなり、計算時間も長くなります。
オープンソースの解析ソルバー”FrontISTR“で『0.01 秒の経過を100回繰り返す』ことで1秒後の状態を求めると、このような結果になりました。
下記のように並べると、熱分布の変化が確認できます。
左:初期状態 / 右:1秒後の状態
温度の高い部分(赤色が濃いところ)の色が薄くなったり、左端の先端が冷やされて白色から少し青色になっていることが分かります。
それでは、1秒の刻み方を変更したものの結果を見てみましょう。下記の画像の左側は『1秒の経過を1回繰り返す』、右側は『0.01秒の経過を100回繰り返す』(=上のものと同じ)です。
ほぼ同じに見えますが、この2つの温度分布の差分を見てみると、温度が一致している部分と異なる部分があるのが分かります。
『1秒の経過を 1 回繰り返す』方の計算にかかった時間は0.68秒、右側は『0.01秒の経過を100回繰り返す』方の計算にかかった時間は25.15秒でした。シミュレーションをする際の繰り返し数を減らすことで、精度は下がりますが高速化が行われます。
今回は、この『0.01秒の経過を100回繰り返す』ものを『正解データ』とし、機械学習での予測でこの正解にどれほど近づけるかを精度の基準とします。
RICOSの機械学習アルゴリズムを用いた手法
RICOSが提案するのは、シミュレーションの条件や使用する計算機を変更して高速化する、というようなものではなく、そもそも有限要素法のような計算手法の代わりに、機械学習の予測に置き換えることで大幅な高速化を達成するという手法です。
学習について
RICOS の機械学習アルゴリズムでは、様々なシミュレーションの結果を学習データとして使用します。簡単に説明すると、要素に分割した物体データのシミュレーション結果を見て隣合う要素同士がどのような影響を与え合うかを学習していることになります。
今回の場合だと、様々な形状・熱分布のデータについて、初期状態と一定時間経過した状態のセットを1サンプルとし、学習していきます。
今回の学習で使った形状の数とサンプル数は下記の通りです。
形状の種類 | サンプル数 | |
トレーニングデータ | 50種類 | 439サンプル |
バリデーションデータ | 16種類 | 143サンプル |
テストデータ | 16種類 | 140サンプル |
予測した結果
それでは、機械学習アルゴリズムによって予測された1秒後の状態を見てみましょう。左が予測された出力、右が正解データです。
正解データとの差分はこのようになりました。
精度の比較
今回予測した際の精度は『1秒の経過を1回繰り返す』シミュレーションの結果とほぼ同じ精度となりました(平均二乗誤差で比較)。
『1秒の経過を1回繰り返す』ものは、正解であるシミュレーションと同様に有限要素法を使ったもので、タイムステップの設定が異なるというものでした。それに対し RICOS は、正解データを求めた計算手法と全く違う計算ロジックで、同等の結果を予測できたということになります。
時間の比較
機械学習アルゴリズムで予測する際には、
- 入力データを機械学習アルゴリズムが読み取れるように変換する
- 変換されたデータから結果を予測する
という手順をとります。今回の結果予測では
変換: 0.122 秒
予測: 0.018 秒
ほどかかり、計算時間は合計で0.14秒となりました。これは、同等の精度であった『1秒の経過を1回繰り返す』シミュレーションの計算時間0.68秒より5倍ほど高速です。
時間の比較
この「IsoGCN」を発表した論文では、本記事の例題より大きい形状に対しての高速・高精度な予測に成功しているほか、学習する形状データの大きさが予測するデータより小さい場合でも高精度な予測にができることなどに触れています。
詳しくは、公開されている論文をご参照ください。
おわりに
シミュレーションとは異なる方法である RICOSの機械学習アルゴリズムで、同等の精度のシミュレーションと比較して数倍の高速化に成功しました。
本記事では熱伝導の問題を扱いましたが、他に
- 自動車に空力特性を求める流体シミュレーション
- 金型成形で作りたい形状を実現する金型を予測する(逆計算)
などの事例に適用し、高速化・高精度化に成功した実績があります。
シミュレーションの計算時間にお悩みの場合は、是非ともこちらからお問い合わせください。
RICOSは、シリーズAラウンドとなる総額3.0億円の資金調達を2021年10月に実施し、研究やプロダクト開発をより強く推進していく予定です。
シミュレーション、機械学習、フロントエンドなど各ポジションでの採用活動を実施しておりますので、興味のある方は是非とも採用情報もご覧ください。