Reduced Order Modeler App: 低次元化モデル(ROM)をインタラクティブに構築
低次元化モデル(Reduced Order Model)は、モデルの複雑さを削減しつつ、期待される精度を維持するための手法として注目を集めています。MathWorks は AI を活用した低次元化モデルをインタラクティブに作成するために、Reduced Order Modeler アプリをリリースしました。このアプリは、ユーザーが実験を設計し、その実験を用いて詳細モデルから入出力データを生成し、このデータを使って低次元化モデル(ROM)を学習し、その結果得られた ROM を Simulink にエクスポートして利用することを可能にします。具体的な流れは以下の通りです。
Figure 1: ROM 開発のワークフロー
Reduced Order Modeler アプリを使用して AI ベースの ROM を作成する具体的な方法に入る前に、そもそもどこに ROM のニーズがあるのか見てみましょう。
ROM を使うべきケース
Simulink の活用方法として制御システムの設計やシステムレベルのシミュレーションがあります。シミュレーションの実行速度は速ければ速いほど、エンジニアは迅速に設計における試行錯誤を繰り返すことができます。ただ、複雑なシステムのモデルは多くのコンポーネントから構成されることが多く、時には計算流体力学(CFD)や有限要素解析(FEA)、コンピュータ支援工学(CAE)ツールを用いて既に作成したコンポーネントのモデルが含まれています。これらの高精度モデルは、詳細なコンポーネント設計には有用ですが、システムレベルのシミュレーションや制御設計には遅すぎて実用的ではありません。
高精度なモデルだとシミュレーションするのに数時間、あるいは数日かかることもあります。1 回のシミュレーションを実行するだけでそれだけの時間を待たなければならないとしたら、設計プロセス全体も当然時間がかかります。では、新規で、より速くシミュレーションできるモデルを一から作成しなければならないのでしょうか?そんなことはありません。ここで低次元化モデル(ROM)の出番です。これは、高精度モデルを再利用してシステムレベルのシミュレーションや制御設計に適した、より速く動作する近似モデルを作成する方法です。他にも、仮想センサーモデル、ハードウェアインザループ(HIL)テスト、デジタルツインの生成にも ROM を利用します。
それでは、Reduced Order Modeler アプリを使用して ROM を作成する方法を見ていきましょう。具体的には、ジェットエンジンのタービンブレードの例を用いて、ROM 開発ワークフロー(Figure 1)のステップをご案内します。
ROM のための実験計画
ジェットエンジンのタービンブレードモデル(Figure 2)は、高精度なモデルであり、周囲温度、冷却温度、圧力にさらされたときのブレードの最大変位を計算します。これには偏微分方程式を解く必要があり計算負荷が高く、システムレベルのシミュレーションや制御設計には適していません。この問題に対処するために、まず実験計画から始めて ROM を作成します。
Figure 2: ジェットエンジンのタービンブレードの詳細モデル
このステップでは、Simulink モデル内で関連する信号を選択し、それらの入出力タイプを指定することで、シミュレーションの入力と ROM の入出力を定義します(Figure 3)。高精度モデルの指定されたシミュレーション入力に摂動信号を注入し、対応する ROM の入出力データを収集するための実験を設定します。この例では、シミュレーション入力として周囲温度、冷却温度、圧力の信号が含まれ、ランダムなパルスが注入されます。ROM の入力はこれらのフィルタリングされた信号であり、ROM の入力は周囲温度、冷却温度、圧力信号に対する物理的な変化を表し、ROM の出力は最大変位となります。
Figure 3: シミュレーションと ROM の入出力設定
信号を選択・指定した後、入力設計空間のカバレッジを確認します(Figure 4)。そして、信号注入モード、信号タイプ、パルス幅、パルスの数、およびパルス振幅範囲などの実験設定のデフォルト値を調整します。
Figure 4: ROM の入出力データ収集のための実験設定
データ作成のためのシミュレーション実行
実験設定が完了したら、ボタンをクリックでシミュレーションを実行します。また、処理効率を上げるためにシミュレーションの並列実行も必要に応じて実施します。シミュレーションが完了すると、以下に示すように実験結果が確認できます。
Figure 5: ROM 入出力データ作成
ROM の学習
次のステップは作成した入出力データを使用した ROM の学習です。作成した出力データの性質に応じて、時間依存(動的)か非時間依存(静的)かに基づいて、学習するモデルを選択します。
- 設計最適化や設計のワークフローを高速化するための、多層パーセプトロンネットワークや内挿モデルなどの静的 ROM
- システムレベルの解析、制御設計、HIL テストするための、LSTM、非線形 ARX、ニューラル状態空間モデルなどの動的 ROM
この例では、ジェットエンジンのタービンブレードシステムの動的特性を効果的に捉えるために、ニューラル状態空間モデルを使用します。Reduced Order Modeler アプリで対応するテンプレート(この場合はニューラル状態空間モデル)をクリックすると、自動的に Experiment Manager アプリが起動します。これにより、さまざまなハイパーパラメータの範囲をスイープして異なるモデルを学習し、各モデルのパフォーマンスを評価・比較することができます。
Figure 6: ニューラル状態空間モデルの学習
学習が完了すると、Loss、TrainingMSE、TestMSE といった指標を用いてモデルを評価・比較します。TrainingMSE と TestMSE は、それぞれ元の学習データとテストデータを用いたシミュレーション出力から計算された平均二乗誤差です。TestMSE の値が低い順に学習済みモデルを並べ替えることができます。TestMSE が低く、TrainingMSE も同様に低く、Loss が最小限であるモデルがよい候補となります。同様に、LSTM や非線形 ARX モデルなどの他の動的 ROM モデルを学習し、その結果を比較することも可能です。
ROM のエクスポート
最後のステップは、学習済みの ROM を MATLAB ワークスペースにエクスポートし、Neural State Space ブロック(Figure 7)を使用して Simulink モデルに取り込み、元の高精度モデルとの比較をすることです
Figure 7: 学習した ROM を Simulink モデルに取りこみ元の高精度モデルと比較
結果(Figure 8)で示されているように、学習済みのニューラル状態空間モデルは、元の高精度モデルのシステム動態を忠実に捉えています。学習済みの ROM は 0.03 秒でシミュレーションを行うため、システムレベルのシミュレーションや制御設計に非常に適しています。これに対し元の高精度なモデルはシミュレーションに 30,000 秒かかっています。
ROM の準備が整ったら、Simulink での制御設計や HIL テストに利用したり、FMU(Functional Mock-Up Unit)を介して Simulink の外部で使用するためにエクスポートすることもできます。
まとめ
Reduced Order Modeler アプリを試してみませんか?こちらからサポートパッケージをダウンロードできます。
低次元モデル化の世界をさらに深く知り、その実践的な応用先を知るには、ROM に関するビデオシリーズや、ウェビナー「AI with Model-Based Design: Reduced Order Modeling」の録画をご覧ください。
- Category:
- 機能と使い方
Comments
To leave a comment, please click here to sign in to your MathWorks Account or create a new one.