AI と Model-Based Design によるバーチャルセンサー
バーチャルセンサーは、リアルタイムの監視と制御が必要なシステムで、物理的なセンサーの使用が実用的でない、または高価である場合に使用できます。そして AI を活用することで、バーチャルセンサーの精度と信頼性の向上が期待できます。このブログ記事では、MATLAB と Simulink を使用して AI バーチャルセンサーを設計する方法を紹介します。
バーチャルセンサー自体は新しいものではありません。これらはしばしば「オブザーバー」と呼ばれ、エンジニアはカルマンフィルタやその他の技術(例えば、ブラシレスモーターシャフトの位置と速度を推定するためのスライディングモードオブザーバーなど)を使って設計してきました。AI は場合によってはバーチャルセンサーの設計を改善できる新しい選択肢です。MATLAB と Simulink を使用することで、様々な方法を簡単に比較・組み合わせてワークフローに最適な解決策を見つけることができます。
Figure: AIを使用したバーチャルセンサー設計のワークフロー
なぜバーチャルセンサーなのか?
バーチャルセンサーは、対象となる量を推定するために他の測定値やデータを使用して、物理的なセンサーの動作を模倣するソフトウェアコンポーネントです。これらは多くの産業やアプリケーションで、プロセスの監視や最適化、環境条件の推定に広く使用されています。
Figure: バーチャルセンサーが使用される産業とアプリケーション
物理的なセンサーと比較したバーチャルセンサーの主な利点は、パフォーマンスの向上とコストの削減です。次のような場合にバーチャルセンサーの使用を検討してください:
- 物理的なセンサーの使用が困難または実用的でない場合。
- 直接測定できない追加情報が必要な場合。
- 物理的なセンサーが信頼性に欠ける、維持が困難、または高コストである場合。
バーチャルセンサーの実際の応用例
MATLAB と Simulink のユーザーは、AI、従来の方法(例:カルマンフィルタ)、およびそれらを組み合わせた方法等を活用してバーチャルセンサーを開発しています。彼らの事例をいくつかご覧ください:
- Coca-Cola、機械学習を使用した仮想圧力センサーの開発により飲料ディスペンサーの診断を改善
- Mercedes-Benz、ディープ ニューラル ネットワークでハードウェアセンサーをシミュレーション
- Poclain Hydraulics Develops Soft Sensors to Measure Motor Temperature in Real Time Using Deep Learning and Kalman Filters
- Gotion Develops Onboard SOH Estimation Using DVA and ICA for LFP Batteries
- Battery SOC and SOH Estimation using a Hybrid Machine Learning Approach
- Onboard Battery Pack State of Charge Estimation Using a Neural Network
AIを用いたバーチャルセンサー
このセクションでは、AIを使用してバーチャルセンサーを設計する方法について説明し、以下の点を示します:
- MATLAB でさまざまな AI モデルを迅速にトレーニングおよび比較してバーチャルセンサーを実装する、または他のディープラーニングフレームワークから AI モデルをインポートすることができます。
- 本番環境に展開する前に、さまざまなテストシナリオをシミュレーションして、バーチャルセンサーの設計を安全に、体系的に、徹底的にテストすることができます。
バッテリーの充電状態(SOC)推定のための AI バーチャルセンサーの例を使用して、設計手順を説明し、AI を使用する利点を強調します。例の詳細はこちらで確認できます。SOC バーチャルセンサーは、バッテリーマネジメントシステム(BMS)の重要なコンポーネントであり、バッテリーの安全かつ効率的な運用を保証します。リチウムイオン電池は、ウェアラブル電子機器、携帯電話、ノートパソコンから電気自動車、スマートグリッドに至るまで、今日あらゆる場所で使用されています。
Figure: バーチャルセンサーによるバッテリーの充電状態 (SOC) 推定
このブログ記事では SOC バーチャルセンサーの例を通じて説明していますが、SOC の例に関連しないツールやオプションについても触れています。これらのツールやオプションは、あなたのワークフローに役立つかもしれません。
データの準備
設計プロセスは、データの品質や利用可能性によって制約されることがあります。MATLAB は、次の方法でデータの品質を向上させるのに役立ちます:(1) 信号処理技術を使用してノイズを除去する、(2) データから意味のある標準的およびドメイン固有の特徴量を抽出する。また、ローコードのアプリ(例:Signal Analyzer)を使用してデータを探索することもできます。
特にディープラーニングモデルは、トレーニングのために大規模なデータセットを必要とします。データの可用性の問題を克服するために、実世界のデータを補完するために合成データを使用することができます。生成的敵対ネットワーク(GAN)を使用して合成データセットを生成したり、波形タイプを組み合わせたり(通信およびレーダーアプリケーション用)、Simulink で物理システムのモデルを作成およびシミュレーションすることによって、合成データを生成できます。
AI モデリング
バーチャルセンサーを開発するために、機械学習アルゴリズム(例:SVM、線形回帰、ニューラルネットワーク)を使用して数行の MATLAB コードで AI モデルをトレーニングするか、TensorFlow™ や PyTorch® でトレーニングしたモデルをインポートすることができます。
バーチャルセンサーに役立つモデルを作成する方法を見てみましょう
1. sequence-to-one 回帰のためのLSTM(長短期記憶)モデルを作成します。LSTM は、長さが変動する時系列データを扱うのに特に効果的です。エンジンの残りの有用寿命(RUL)を予測する方法の例については、「深層学習を使用した sequence-to-sequence 回帰」を参照してください。
layers = [sequenceInputLayer(numFeatures) lstmLayer(numHiddenUnits,OutputMode="last") fullyConnectedLayer(numResponses) regressionLayer];
そして trainNetwork
関数を使用してLSTMモデルをトレーニングします。
2. 回帰のためのフィードフォワード、全結合ニューラルネットワークをトレーニングします。
Mdl = fitrnet(X,Y)
3. 回帰のための決定木をトレーニングします。
tree = fitrtree(X,Y);
よりインタラクティブなワークフローを好む場合は、ローコードのアプリ(Deep Network Designer、Classification Learner、Regression Learner)を使用して、AI モデルの設計、チューニング、評価、および最適化を行うことができます。
MATLAB は、システムダイナミクスを捉えるための非線形モデルも提供しています。Hammerstein-Wiener や Nonlinear ARX モデルを使用して、ガウス過程(GP)、サポートベクターマシン(SVM)、その他の表現などの機械学習技術を用いて非線形システムダイナミクスを推定できます。あるいは、ディープラーニングを使用してニューラル常微分方程式(ODE)モデルを作成し、非線形システムダイナミクスを捉えることもできます。例については、「SIエンジントルクダイナミクスのニューラル状態空間モデル」を参照してください。
AI モデルは、カルマンフィルタなどの他の方法と組み合わせて使用することができます。たとえば、ニューラル状態空間モデルを非線形カーマンフィルタの内部モデルとして使用することができます(例:「同定モデルを使用したオンライン状態推定 – 非線形モデル」)。
システムシミュレーション
AI モデルを作成または読み込んだら、それらを Simulink に統合してシミュレーションでテストすることができます。Simulink を使用すると、バーチャルセンサーが属する大規模なシステム(例として BMS)の文脈で、精度、モデルサイズ、推論速度などのトレードオフを評価することができます。SOC 推定の例では、Simulink シミュレーションで 4 つのモデルが比較されます:拡張カルマンフィルタ(EKF)、回帰木、フィードフォワードネットワーク(DL-FFN)、およびLSTMモデル。
Figure: Simulinkで4つのバーチャルセンサー(カルマンフィルタモデルと3つのAIモデル)をシミュレーションおよび比較する
AI モデルに基づくバーチャルセンサーを使用する主な利点の一つは、物理モデル(特に複雑な物理モデル)に基づくバーチャルセンサーよりも高速である可能性があることです。一方で、AI モデルはカルマンフィルタモデルに比べて説明性が低く、AI モデルの内部動作を理解するためには追加の技術が必要になります。しかし、説明性の欠如は必ずしも問題ではないと(Poclain Hydraulicsのエンジニアによれば)されています。
バーチャルセンサーを使用して完全なシステムをシミュレーションおよびテストすることで、速度や精度などのモデルパフォーマンスを評価し、シミュレーションの結果を基にモデル選択の判断を行うことができます。
デプロイメント
MATLAB および/または Simulink を使用して、リソース制約のあるエッジシステムに AI バーチャルセンサーをデプロイするためのライブラリフリーの C/C++ コードを生成できます。また、FPGA デバイス、エンタープライズシステム、またはクラウドにバーチャルセンサーをデプロイすることも可能です。
この段階では、プロセッサインザループ(PIL)またはハードウェアインザループ(HIL)テストを実行できます。バッテリー SOC を推定するバーチャルセンサーを含む BMS ソフトウェア全体をターゲットハードウェアにデプロイし、プラントモデル(この場合はバッテリーダイナミクスのモデル)とリアルタイムの閉ループシミュレーションを実行できます。バーチャルセンサーの主要設計パラメータ(精度、メモリ使用量、推論速度など)をテストすることができます。テストが完了すると、モデルは本番ハードウェアにデプロイする準備が整います。
Figure: AIモデルのC/C++コードを生成し、車両で使用するハードウェアにデプロイする。
MATLAB と Simulink は、AI モデルのライフサイクル全体を規制するための MLOps プロセスを自動化し、本番環境へのデプロイ後に AI バーチャルセンサーの運用を維持および監視することもできます。
まとめ
MATLAB と Simulink は、エンジニアにデータ品質の向上、人気のある機械学習およびディープラーニングアルゴリズムへのアクセス、システム全体のシミュレーション環境との統合、そして実世界のシステムへの展開のためのツールを提供します。そのため、正確なバーチャルセンサーを設計するだけでなく、意図したシステムで効率的に動作するバーチャルセンサーを設計および展開するために、最適な AI 技術(または他の方法との組み合わせ)を選択することができます。
- Category:
- 機能と使い方
Comments
To leave a comment, please click here to sign in to your MathWorks Account or create a new one.