機械学習を用いたマス-ばね-ダンパーシステムの低次元化モデリング(ROM)の作成
Tutorial Level: Intermediate romAIを使用して動的システムのROMを作成します。
このチュートリアルの前提条件
このチュートリアルのファイル
TrainingDataset.csv; mkc_linear.scm
概要
任意のソフトウェアでモデル化された任意の物理的問題が与えられた場合、romAIの目標は、問題を含むROMブロックに変換することです:
- 入力および出力
- 状態変数
- 特性パラメータ
romAIの技術やその他の使用方法についての詳細情報は、romAIの を参照してください。

romAI eラーニングでは、短いビデオでツールの詳細を説明しています。
このチュートリアルで扱うモデルは、下図に示すマス-ばね-ダンパーシステムです。

目標は、シミュレーションデータに基づいて、この動的システムのROMを生成することです。チュートリアルを実行することにより、ブロックは入力、出力、状態によるこのシステムの表現が完成します。

- 前処理
- 学習
- 評価
- 展開
前処理
トレーニングに使用するデータは、romAI Directorにインポートするために、.CSVまたは.MATデータセットファイルとして保存する必要があります。
前処理では、自動プロットだけでなく、Builderタブに表示する変数を選択することもできます。これは、データセットのすべての変数がアルゴリズムのトレーニングに使用されるとは限らないので便利です。
データセットが時系列に基づいている場合、カットオフ周波数を設定することで、各信号にローパスフィルターを適用できます。
-
Pre-Processorタブを開きます。
を開き
-
Import Dataset for testingアイコンをクリックし、データセット TrainingDataset.csvを選択します。
-
Builderで使用する変数を選択します。
学習
Builderタブは学習プロセスを簡素化します。まず、romAIの名前で出力を書き込むディレクトリを選択します。次に、入力、出力、システム状態、および設定パラメータを選択します。
変数はすでにプリプロセッサからエクスポートされているので、ビルダーのパラメータは簡単に設定できます。
-
出力ディレクトリを設定します。
このフォルダーの中にサブフォルダが作成されます。romAI Name欄に名前を入力します。
-
入力、出力、状態を定義します。
-
物理的な制約を設定します。
状態変数が存在する場合は、物理的制約を追加できます。ある状態変数を別の状態変数から派生させることは可能であり、romAIアプリケーションはこれを考慮し、より適切なROMを生成することができます。
-
モデルタイプと学習パラメータを選択します。
これは線形システムであるため、設定はより単純で、モデルアーキテクチャのパラメータを詳細に指定する必要はありません。
ここでは、データセットの20%がモデルの検証に、80%が学習に使用されます。
最適化アルゴリズムは10エポック(反復)実行されます。
-
Start Trainingアイコンをクリックします。
評価
Post-Processorタブでは、学習したROM を簡単に視覚化し、評価することができます。モデル学習後に自動的に開きます。

- 学習誤差が小さいほど、ROMの精度が高いことを示します。
- 学習とテストの損失が似ていれば、学習は収束しています。

動的ROMの生成にromAIを使用する場合、学習済みromAIモデルに、動的挙動の精度を評価するための予備的な時間シミュレーションを簡単に実行できるツールが重要です。
Time Simulationタブは、時間シミュレーションをワンステップで実行するように設計されています。Import Dataset for testingアイコンをクリックして、データセットファイルを選択します。

時間シミュレーションが開始され、成功するとプロットが更新されます。

- データセットファイルの入力と初期状態条件に基づいて、romAI モデルが動的結果を生成します(青線)。
- ターゲットの時刻歴(緑線)。
展開
学習したアルゴリズムをTwin Activate環境で利用可能な状態にします。
-
パレットブラウザから、
を選択します
-
このブロックをダイアグラムにドラッグして、ダブルクリックします。
-
以前選択したディレクトリを選択すると、選択したromAIモデルに基づいてブロックが自動的に更新されます。
入出力ポートを使って、romAIブロックを他のブロックに接続します。
model mkc_linear.scmは、新しいromAIモデルの検証に使用できます。ただし、元のromAIモデルを新しいモデルに置き換える前に、このTwin Activateファイルをローカルに保存し、元のファイルを変更しないようにしてください。
最後に、新しいromAIを使ってモデルを検証します。