インダストリー・ソリューションズ - 連成シミュレーション・ハブ


連成シミュレーション・ハブ


はじめに

自動車、航空機をはじめとする製造業においては、常に複雑化する製品をより短期間・低コストで開発することが、競争優位性確保の上で必要不可欠となっています。そのため多くの製造業では、開発の後期になって初めて問題が発覚して大きな手戻りが生じるリスクを低減するために、設計上の問題点の発見など、製品品質の作りこみを開発のより早い段階で行おうとするフロントローディングと呼ばれる取り組みがなされています。

このフロントローディングにおいて中心的な役割を担うのがシミュレーションです。シミュレーションにより実物が完成する前に設計した内容の検証が可能となり、より早い段階で設計品質を向上させることができます。特に、機械、電気電子、流体、伝熱、それらの制御など多岐にわたる分野にまたがった複雑なシステムである自動車などのシミュレーションにおいては、各分野の現象の扱いに優れたモデリングツールやシミュレーションツールにより作成・実行されるモデルを組み合わせてシミュレーションを実行するco-simulationという手法が重要です。

複雑なシステムのco-simulationにおいて今後益々求められるのが 1) 高速性と 2) 精度の高さの両立です。例えば、開発現場ではシミュレーションを繰り返しながら問題点の発見や設計の改善が行われるため、このco-simulationはより高速であることが望まれますが、製品機能の拡充に合わせて複雑化するシステムのシミュレーションにはより多くの時間を要する状況にあります。また、安全や環境に関する厳しい法的な規制への対応などのため、(実際の現象を正しく再現する意味での) 高い精度のシミュレーションが益々必要になっています。多くのシミュレーション手法において、このシミュレーションの速度と精度がトレードオフの関係にあり、両者を両立することが大きな課題となっています。

我々のグループでは、並列計算を活用してこのco-simulationの高速性と精度を両立する技術を開発しています。



背景

広く用いられている既存のシミュレーション技術には以下のようなものがありますが、いずれも速度と精度がトレードオフの関係にあります。

  • システム全体を単一のモデルとして実行する方法。ひとつにまとめられたモデルを再度分解して完全に並列実行することは難しく、スケーラブルでない。
  • Co-simulationを構成する各モデルを互いに独立 (すなわち並列) に実行し、あらかじめ定められた時間間隔で同期するmacro stepと呼ばれる方法。この方法では各モデルが完全に並列に実行されるが、あらかじめ定められた同期ポイントでしかモデル同士のデータ交換ができず、発生したイベントの正確な時間を反映できないなど、精度を犠牲にする。
  • 各モデルが離散的なイベントを交換しあいながら並列に動作してシミュレーションを進行させるDistributed discrete event simulation (DDES) と呼ばれる方法。この方法は、特に実際のシステムを構成する物理コンポーネントが離散的なイベントを交換しあうような場合に適しており、自動車全体のシミュレーションにもこれが当てはまる。DDESでは各モデルが受信したイベントを正しい時刻に (すなわち精度を犠牲にすることなく正確に) 処理するための同期メカニズムが重要で、さまざまな同期手法が提案されているが、各モデルを完全に並列に実行する方法はなく、場合によっては全体がほとんど直列実行になってしまうこともある。


CCSS Co-simulation Platform

我々のグループでは、co-simulationにおける速度と精度の両立という課題を解決するためのシミュレーションプラットフォーム (図1) を開発しており、このプラットフォームをcomplex control system simulation (CCSS Co-simulation Hub) と呼んでいます。

図1: CCSS Co-simulation Platform

このプラットフォームは主に二つの技術からなります。ひとつはco-simulationを構成するモデル同士を並列に実行する技術 (Model Synchronizer)、もうひとつは構成要素であるひとつのモデルを分割して並列に実行する技術 (Model Compiler) です。

Model Synchronizer:
既存の並列化技術では精度を犠牲にせずに完全な並列実行を達成することができません。したがって、いかに潤沢に計算リソースがあったとしても、co-simulationにモデルが追加されるたびに、実行時間が増えていきます。一方Model Synchronizerでは、実際の現象に存在する性質 (例えばシステムの物理コンポーネント間がデータ交換をする際のtime lagなど) に基づいてモデル間のデータ交換・同期のタイミングをうまく工夫することで、精度を犠牲にせずに個々のモデルを完全に並列実行することができます。したがって、co-simulationにモデルが追加されてもそれを補う計算リソースがあれば、シミュレーションの実行時間は増加しません。ただし、構成要素のうち最大の計算時間を要するモデルがボトルネックとなり得ます。

Model Compiler:
そのようなモデルをModel Compilerにより分割して並列化することにより、このボトルネックを解消し、さらに高速なシミュレーションを実現することができます。この技術は、モデルを表現している常微分方程式の特徴を活用し、1タイムステップ間で互いに独立に計算可能な部分を抽出し、それぞれの部分を並列に実行する方式です。計算される内容は変えないので、この技術も精度を犠牲にすることはありません。

図2: Model Compiler abstract concept



結果

CCSS co-simulation hubのそれぞれの技術を、実際のモデルに適用した結果を示します。図3は、自動車のエンジンとそれを制御するコントローラー、ドライバといった三つのモデルからなるco-simulationを 1) 直列に実行した場合と、2) 完全な並列化を達成するが、精度を犠牲にするmacro-step手法で実行した場合と、3) CCSS - Model Synchronizerで実行した場合の結果を示しています。macro-step手法は直列実行に対して2.91倍高速でしたが、CCSS – Model Synchronizerもそれに匹敵する2.83倍の高速化を達成しています。一方、出力信号 (crank angle pulse9 を見ると、macro-step手法の出力結果は直列実行のものから大きく乖離しており、たかだか2.5秒のシミュレーションの間に4も角度がずれているのに対し、CCSS –Model Synchronizerにおいては、直列実行とおなじ結果が出力されていることが見て取れます。

図3: Crank angle error accumulation in macro-step co-simulation after just 2.5 seconds of simulation. In contrast, CCSS remains accurate over the interval.

図4 は、Model Compilerを実際の自動車会社において作成・使用されていた大規模なモデルに適用し、それぞれのモデルが直列実行に比べてどの程度高速化したかを示しています。モデル内部の構造にもよりますが、4並列で1.5~3.5倍の高速化を達成しています。

図4: Model Compiler speedup

図5: Advantages of CCSS in comparison to existing simulation techniques. Conventional techniques trade fidelity against execution speed. CCSS delivers high fidelity parallel simulations without trading speed for fidelity.



結論

上記のように、我々のグループでは製造業で広く活用されるシミュレーションに存在する実行速度と精度のトレードオフという課題に取り組み、解決してきました (図5)。今後も引き続きシミュレーションの分野を中心に、実際の製造業に貢献できる技術の研究・開発を進めて行きます。