システムレベル設計への AI の統合: AI を使用した組み込みアルゴリズム - MATLAB & Simulink

ebook

第 2 章

AI を使用した組み込みアルゴリズムの設計と展開


従来のアルゴリズム開発アプローチでは、入力を処理して目的の出力を生成するプログラムを作成していました。しかし、方程式が複雑すぎて第一原理から導き出せなかったり、計算の負荷が大きすぎて展開できなかったり、目的の測定が物理的に不可能、あるいはコストがかかりすぎることがあります。

このような場合は、代わりに AI モデルの作成を検討します。組み込み AI アルゴリズムは以下をサポートします。

  • 制御システム
  • 予知保全
  • 先進運転支援システム (ADAS)
  • パスプランニング
  • 自然言語処理
  • 信号処理
  • バーチャルセンサー
  • オブジェクト検出
セクション

AI バーチャルセンサーの作成: バッテリー充電状態の推定の例

現在、リチウムイオン バッテリーは、ウェアラブル エレクトロニクス、携帯電話、ノート PC、電気自動車、スマートグリッドなどのあらゆる場所で使用されています。バッテリー マネジメント システム (BMS) により、これらのバッテリーの安全で効率的な動作を確保します。BMS の主要タスクは、充電状態 (SOC) の推定です。

さまざまな理由により、展開可能なセンサーを作成して SOC を直接測定することは物理的に不可能です。これは、バッテリーに限らず、あらゆる産業分野の多くのシステムにとって共通の課題です。

多くの用途でセンサーに以下の問題が発生する可能性があります。

  • 不正確である
  • コストがかかる
  • 低速である
  • ノイズが多い
  • 脆弱である
  • 信頼性が低い
  • 物理的に不可能である

物理センサーの代わりに、バーチャルセンサーを作成できます。

グラフでは、エンジンから収集されたデータと AI ベースのバーチャルセンサーの出力間の詳細なマップが示されています。

実際のエンジンからの排出量と、NOX 排出量を推定する AI バーチャルセンサーの出力との比較。(画像著作権: Renault)

思い浮かぶ選択肢として、拡張カルマン フィルター (EKF) を使用した SOC の推定があります。EKF は高精度ですが、バッテリーの非線形数学モデルが必要になります。しかし、常にこのモデルの利用や作成ができるわけではありません。カルマンフィルターは計算コストがかかることがあり、また、初期状態に誤りがあったり、モデルの初期状態が正しくない場合、生成される結果が不正確になることもあります。

これに代わる手段として、バーチャルセンサーの開発に AI を使用することができます。適切なデータを使用して学習すれば、AI はカルマンフィルターより優れた一般化を実現し、正確な結果を提供できる可能性があります。

充電状態 (SOC) の AI モデルでは、電圧、電流、および温度を入力として取得し、推定充電レベルを出力します。

AI ベースのバーチャルセンサーを作成するには、AI モデルを学習させるデータが必要になります。ラボの制御された環境でバッテリーの読み取り値を収集することで、電流を積分して (クーロン カウンティングと呼ばれる手法)、SOC 値を正確に計算できます。

この手法は、シンプルで、計算コストもかかりません。では、どうして BMS でこれを使用して SOC を推定しないのでしょうか。それは、電流を正確に測定できるラボ環境で実行しなければ、エラーが発生しやすくなるためです。そのため、BMS で SOC の推定にこの手法を使用するのは良い選択とはいえません。ただし、堅牢性の高いバーチャルセンサーの構築に必要なデータを取得する効果的な手段ではあります。

精密に取得された入出力データを収集できれば、そのデータセットを使用して、AI ベースのバーチャル センサー モデルを学習させることが可能です。そして、そのモデルをバッテリー マネジメント システムの一部として展開できます。

AI モデルを作成して Simulink に統合するには、以下の 3 つのオプションがあります。

1.MATLAB の機械学習フレームワークで学習させる。

2.TensorFlow または PyTorch からモデルをインポートする。

3.MATLAB のディープラーニング フレームワークで学習させる。

AI モデルには、測定データで直接学習することができるというメリットがあります。学習データは、充電状態と、電流、電圧、温度、電流および温度の移動平均などの入力との間の複雑な関係を取り込んで、その知能をモデルに組み入れます。

この結果、AI モデルは、第一原理ベースの数学モデルと比較して速度と精度が向上することになります。

高品質な学習データセットの作成に投資すれば、MATLAB® などのツールで各種機械学習手法やディープラーニング手法を使用して複数の AI モデルを作成できます。各モデルを Simulink に統合し、並べて比較することで、最も優れたパフォーマンスのモデルを見つけ出すことができます。

データ取得に関する注記

優れた学習データを収集することは、非常に難しいタスクです。AI の分野では、一般公開されたデータセットの利用が AI 研究を後押ししてきました。同じデータセットを使用することで、研究者は比較が容易になり、各種 AI 手法に対してベンチマークを実行できます。データセットおよびモデルを共有することで、再現性を高め、AI の信頼性を構築しています。

しかし、産業分野では多くの場合、データは慎重にキュレートされたデータセットから取得されます。専用の現実世界のテストベッドや第一原理に基づいた複雑な高忠実度シミュレーションでデータが生成されることもあります。こうした実験はコストと時間がかかることがあります。しかし、適切な学習を行った AI モデルの価値は、先行投資に値するともいえます。特定分野の専門知識を持っているエンジニアは、高品質の学習データを生成する実験を設計することで、AI モデル作成時に付加価値を提供できます。

セクション

AI ベースのバーチャルセンサーのシミュレーションおよびテスト

AI モデルの学習が終わったら、そのモデルを Simulink に統合してテストできます。Simulink を使用して、パフォーマンスが最も優れている AI モデルを見つけ出し、そのモデルのパフォーマンスが非 AI ベースの EKF 手法などの他の選択肢より優れているかを判定できます。前述のように、カルマンフィルターでは、内部バッテリーモデルが必要ですが、これは使用できない場合があります。

この例には、EKF に加えて 3 つの AI モデルが含まれています。AI モデルはすべて同じデータを使用して学習が行われていますが、使用された AI 手法が次のように異なります。

  • 精密な回帰木: 入力データの解釈に使用される、次第に明確化されるインジケーター値の木を構築する機械学習手法。精密な回帰木には、非常に柔軟性の高い応答関数の小さな葉が多数存在します。
  • フィードフォワード ネットワーク (DL-FFN): 入力をクラスタリングまたは分類する相互接続ノードを使用して学習するディープラーニング適応システム。推論の際に情報がネットワークを順方向に伝播し、逆方向には伝播しません。
  • 長・短期記憶ネットワーク (DL-LSTM): 相互接続ノードを使用したディープラーニング適応システム。このシステムでは、ネットワークを介したフィードバックを使用して、単一の入力だけでなく相互に関連した一連の入力を処理します。
 Simulink のスクリーンショットに、同じ入力を取得して比較対象の各出力を生成する 4 つのブロックが表示されています。

バーチャル センサー モデル (EKF、ML、DL-FFN、および DL-LSTM) を Simulink に統合してパフォーマンスを比較します。各モデルは電圧、電流、および温度を入力として取得し、バッテリー充電状態を推定します。

Simulink で同時に並べて比較することにより、各モデルを評価します。精度を可視化および測定し、各モデルの出力を検証データセットに当てはめます。この情報を使用することで、システムハードウェアに展開する前にモデルが精度要件を満たしているかどうかを確認できます。

4 つのバーチャル センサー モデルの出力のグラフが示された Simulink のスクリーンショット。各線は重なっていますが、EKF モデルの出力の線が最も乖離しています。ML の出力の線も他の線から乖離しています。

Simulink を使用して 4 つのバーチャル センサー モデルの出力を 1 つのグラフに表示し、精度の差を把握します。

AI モデルを他のアルゴリズムとともに使用して、システムレベルのシミュレーションを実行することもできます。AI モデルは、たとえばエンジンやトランスミッションなどの他のサブシステムとともに動作する BMS サブシステムが含まれた全体的なシステム シミュレーションの一部としても実行できます。また、モデルとその他の統合コンポーネントをテストおよび調整することで、それらを確実に相互運用して、システムレベルの要件を満たすことも可能です。

Simulink でのバッテリー マネジメント システムの概略図。次の 3 つのブロックを相互接続する入出力が示されています。State Machine、SOC Estimation、および Balancing Logic。

Statistics and Machine Learning Toolbox™ および Deep Learning Toolbox のブロックライブラリを使用して、SOC_Estimation ブロックの AI モデルをシステムレベルのテスト用に Simulink に取り込みます。

セクション

組み込み AI モデルの展開

次のステップでは、最終的に展開するハードウェア上で AI モデルをテストします。このステップでは、モデルのパフォーマンスについて現実世界での評価を実行できます。

MATLAB および Simulink のコード生成ツールを使用して、ディープ ラーニング ネットワークまたは機械学習モデルの C/C++ コードをライブラリを使わずに生成します。そのコードをプロセッサに展開して、プロセッサインザループ (PIL) テストの一部として動作をテストします。PIL テストでは、プロセッサがシミュレーション対象のプラント (Simscape™ および Simscape Electrical™ のコンポーネントを使用して開発) に相互接続されます。この例のプラントはシミュレーションされるバッテリーのダイナミクスです。

AI モデルがコードに変換され、チップに展開され、シミュレーション テスト環境でテストされることを示した図。

AI モデルのコードを生成し、プロセッサに展開してプロセッサインザループ テストを行います。

PIL テストに合格すると、モデルは、量産ハードウェアに展開できるようになります。そのハードウェアにより、車両内のバッテリー マネジメント システムが実行されます。

AI モデルがコードに変換され、チップに展開され、車両でテストされることを示したプロセス図。

AI モデル用のコードを生成し、ハードウェアに展開して車両でテストします。

セクション

パフォーマンスの評価

PIL テストにより、現実世界のシステムに関連したパフォーマンスのトレードオフが明らかになります。たとえば、精密な回帰木モデルでは、トラブルシューティングに役立ち得る解釈可能性が追加されますが、そのサイズと精度はプロジェクトの要件の対象外であることもあります。その場合は、フィードフォワード ネットワークの方が適していることがあります。

その他の関連する属性は、以下のとおりです。

  • 推論速度。これは、AI モデルで予測の計算にかかる時間です
  • 学習速度。これは、学習データを使用した AI モデルの学習にかかる時間です
  • 前処理の労力。一部のモデルでは移動平均などの追加の特徴量を計算して、過去に関する予測子情報を取得する必要があります
パフォーマンスのトレードオフを示した表。各モデルを表す 4 つの列があり、学習速度、解釈可能性、推論速度、モデルサイズ、および精度が比較されています。たとえば、DL LSTM モデルの推論速度は遅く、モデルサイズは大きく、精度は非常に高くなっています。

各種バーチャル センサー モデリング手法の重要な属性の比較。DL-FNN では、推論速度が速く、精度も高くなっていますが、前処理の労力が必要で、学習に時間がかかり、解釈可能ではありません。

セクション

AI モデルの圧縮

モデル圧縮は、解析、理解、反復、および最適化を必要とするトレードオフです。ただし、組み込みソフトウェアのエンジニアから見ると、多くの場合、これは必須となっています。その理由は、AI モデルでは、フットプリントがハードウェアのメモリ制約を超えることがあるためです。

エンジニアは、枝刈り、量子化、固定小数点への変換などの手法を使用してモデルのフットプリントを削減する方法を模索しています。

Deep Learning Toolbox™ でモデルサイズを削減する新しい手法では、投影を使用してディープラーニング ネットワークを圧縮します。この手法では、モデルサイズ、推論速度、および精度の間でトレードオフを行うことができます。この例では、精度が大幅に損なわれることはありませんでした。投影層を使用した圧縮では、メモリのフットプリントが 91% 削減され、推論速度が 2 倍になりました。

表で、未圧縮と圧縮された DL LSTM モデルを比較しています。圧縮されたモデルでは、未圧縮のモデルよりも推論速度が速く、サイズが大幅に小さくなっていますが、精度は損なわれていません。

圧縮では、精度が非常に高いもののサイズが大きくて遅いモデルを、実行速度が大幅に高速な小さなモデルに変換できます。精度が損なわれることもありません。

セクション

電気自動車 BMS 設計のユーザー事例

次世代エネルギー貯蔵テクノロジーに取り組む Gotion 社は、電気自動車の充電時に充電状態を推定するニューラル ネットワーク モデルを作成したいと考えていました。そのモデルは 3% 以内のマージン精度が求められ、フットプリントは量産展開で実現できるだけの小ささににする必要がありました。また、オンボード車両テストでモデルを検証する必要もありました。

Deep Learning Toolbox により、チームは過去の電池充電データを使用してニューラル ネットワークを学習させるローコードの手法を採用しました。モデルのシミュレーション、改善、および妥当性確認を行う反復的なワークフローを使用しました。Simulink を使用することで、エンジニアはモデルをシステムの残りの部分と統合してテストしました。また、Simulink Test™ を使用して、シミュレーション時にモデルが精度要件を満たしていることを確認しました。

モデルのパフォーマンスが十分になった時点で、HIL テストおよびオンボード車両テスト用のコードを自動的に生成しました。

エンジニアは、MATLAB および Simulink を使用する主なメリットとして以下を挙げました。

  • Requirements Toolbox、Deep Learning Toolbox、Simulink、Embedded Coder、および Simulink Test を使用した、既存の検証および妥当性確認ワークフローへの AI の統合
  • 要件の記録から、モデル開発、システム統合、モデル展開、量産ハードウェアまでのワークフロー全体のパフォーマンス
  • 展開前にシミュレーションおよび HIL テストを行うことによる、モデルが精度要件を満たすことの信頼性
  • フットプリントの小さい (ROM 2 KB 未満、RAM 100 B 未満)、ニューラル ネットワークから自動的に生成されたコード
4 つのグラフでは、電圧、電流、温度などを変化させた多様な条件においてターゲット充電状態と推定充電状態が類似していることが示されています。

Simulink Test を使用すれば、極寒天候テストなど、現実世界のテストではシミュレーションが困難な条件を含め、さまざまな条件で精度のシステムレベルのテストを行うことができます。

理解度の確認