1619160_ja-JP

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

1619160_ja-JP

1619160_ja-JP

NXP i.MX RT MCUへのDeep Learning Networkの展開

はじめに

マイクロコントローラの最新の進歩により、マイクロコントローラはより速く、より効率的になり、複雑なアルゴリズムを妥当な時間で成功裏に実行できるようになりました。重要なカテゴリの1つは、人工知能アルゴリズムです。NXP® とMathWorks® の両方のエコシステムを使用すると、AIアルゴリズムをNXPハードウェアにデプロイする手順が簡素化され、簡単に進むことができます。

この記事では、Mathworks の専門家が開発したフィードフォワード深層学習ネットワークに基づく充電状態 (SoC) 推定アルゴリズムの実装方法に関するガイダンスを提供します (Simulink の深層学習ネットワークを使用したバッテリー充電状態推定)。その後、アルゴリズムは i.MX NXP Model Based Design Toolbox for I.MX RTを使用してRT1060評価キットに展開されます。

この記事の主な目的は、NXP評価ボードでAIアルゴリズムを実行する方法を示すことであるため、この例はプロセッサインザループ(PIL)シミュレーションモードで実行されます。このタイプのシミュレーションは、アルゴリズムの検証プロセスにおける重要なステップを表しており、入力データをMATLABのワークスペースから直接ロードできるため、コーナーケースを簡単に複製できます。アルゴリズムの実行は、マイクロコントローラ上で行われます。アルゴリズムの実行の詳細な概要については、コードプロファイリングオプションを有効にして、実行時間の詳細を示すレポートを生成できます。

 

BMSとは

BMS(Ary MManagement SS System)は、電気自動車などのバッテリー駆動デバイスの重要なコンポーネントです。彼らの主な目的は、バッテリーパックが最適で安全な動作モードに保たれるようにすることです。ほとんどのタスクの中核となるのは、BMS が State-of-Charge (SoC) の推定を計算することです。正確な推定を行うには、アルゴリズムには実際のセルの正確なモデルが必要ですが、これは特性評価が困難です。このアプローチに代わる方法として、ニューラルネットワークなどのAI手法を使用して細胞のデータ駆動型モデルを作成することがあります。


ディープラーニングツールボックス

Mathworks が開発した Deep Learning Toolbox™ は、アルゴリズムで使用されるディープ ニューラル ネットワークのフレームワークを提供します。これにより、畳み込みニューラルネットワーク(ConvNet、CNN)と長短期記憶(LSTM)ネットワークを使用して、画像、時系列、テキストデータの分類と回帰を実行できます。

ネットワークグラフとレイヤーグラフは、TensorFlow™ 2、TensorFlow-Keras、PyTorch®などの他のフレームワークを使用できるため、MathWorksエコシステムで作成する必要はありません。


前提条件ソフトウェア

Simulink モデルを作成、ビルド、i.MX RT1060 EVK に展開するには、次のソフトウェアが必要です。


必要なハードウェア

この例に必要なハードウェアは i.MX RT1060評価キットです。 i.MX RT1060クロスオーバーMCUは、EdgeVerse™エッジコンピューティングプラットフォームの一部です。MCUのコアは、600MHzのArm® Cortex-M7®コアです。このデバイスは、NXPの MCUXpressoソフトウェアおよびツール、包括的でまとまりのあるフリーソフトウェア開発ツールのセットによって完全にサポートされています。


モデル - 概要

Deep Learning Toolbox に含まれる BatterySOCSimulinkEstimation モデルは、ニューラル ネットワークを使用する方法と、拡張カルマン フィルター アルゴリズムを使用する方法の 2 つの方法を使用して SoC 推定を計算します。これら 2 つの推定によって生成されたデータをプロットし、それを実際の値と比較することで、FNN が -10 C から 25 C の温度範囲で SoC を 3 の精度で予測することを確認できます。

SorinIBancila_0-1679400477913.pngSorinIBancila_0-1679400477913.png

手記! ツールボックスに含まれているモデルに変更を加える前に、元の状態に戻すことができるように、例のバックアップを作成することをお勧めします。

この例では、予測は i.MX RT1060 評価ボードで PIL モードで行われ、カルマン フィルターはコンピューター上でローカルに計算されます。

参照モデル

元のモデルから、FNN ブロックを新しい空白のモデルに追加する必要があります。新しく作成されたモデルは参照モデルで使用されるため、受信したデータに入力ポートを追加し ([ポートのディメンション] が 5 に設定されていることを確認してください)、計算したデータを返すために 1 つの出力ポートを追加する必要があります。これら3つのブロックすべての他の設定はデフォルトのままにしておくことができます。

SorinIBancila_2-1679400971796.pngSorinIBancila_2-1679400971796.png

次に、[モデル設定]で次の変更を行う必要があります。

  • ハードウェアの実装
    • ハードウェアボード:NXP MIMXRT1062xxxxA
    • ターゲット・ハードウェア・リソース
      • ダウンロード
        • タイプ:OpenSDA
        • OpenSDAドライブ: [参照]をクリックして、IMXRT1060に割り当てられたパーティションを選択します
      • PIL
        • 通信インターフェース:シリアルインターフェース
        • ハードウェアUART: LPUART1
        • シリアルポート: ボードに割り当てられたCOMポート(デバイスマネージャーを使用するか、MATLABコマンドウィンドウでserialportlistコマンドを実行することで見つけることができます)
        • ボーレート: 115200
  • コード生成
    • 認証
      • [ポータブルな単語サイズを有効にする] をオンにします

トップモデル

Deep Learning Toolbox に含まれる BatterySOCSimulinkEstimation モデルに基づいて、FNN ブロックを削除 (削除またはコメント化) する必要があります。ModelReference サブシステムをモデルに追加する必要があります。ModelReference サブシステムの [ブロック パラメーター] で、上記で作成および構成したモデルを選択します。[シミュレーションモード] は [プロセッサインザループ (PIL)] に設定する必要があります。 また、nnInput Data Read Memory ブロックのサンプル時間を 0 (連続) から -1 (継承) に変更する必要がある別の変更も変更する必要があります。

SorinIBancila_3-1679401496813.pngSorinIBancila_3-1679401496813.png

次に、[モデル設定]で次の変更を行う必要があります。

  • ハードウェアの実装
    • ハードウェアボード:NXP MIMXRT1062xxxxA
    • ターゲット・ハードウェア・リソース
      • ダウンロード
        • タイプ:OpenSDA
        • OpenSDAドライブ: [参照]をクリックして、IMXRT1060に割り当てられたパーティションを選択します
      • PIL
        • 通信インターフェース:シリアルインターフェース
        • ハードウェアUART: LPUART1
        • シリアルポート: ボードに割り当てられたCOMポート(デバイスマネージャーを使用するか、MATLABコマンドウィンドウでserialportlistコマンドを実行することで見つけることができます)
        • ボーレート: 115200
  • コード生成
    • 認証
      • [ポータブルな単語サイズを有効にする] をオンにします

デプロイと検証

両方のモデル (最上位モデルと参照モデル) が構成されたので、Simulink の [アプリ] タブから SIL/PIL マネージャーを開くことができます。[SIL/PIL] タブでは、シミュレーションを SIL/PIL のみ (赤色の四角形) に選択し、テスト対象システムを SIL/PIL モードのブロックをモデル化 (青色の四角形) に選択しなければなりません。

SorinIBancila_4-1679401726670.pngSorinIBancila_4-1679401726670.png

シミュレーションを開始する前に、BatterySOCSimulinkEstimation_ini.m スクリプトを実行して、必要なデータを MATLAB のワークスペースに読み込まなければなりません。このスクリプトは、Deep Learning Toolbox に含まれる Simulink モデルの隣にあります。最上位モデルから、SOC スコープ を開いて、生成されたデータを表示できます。シミュレーションは、スコープ内のRUNボタンから開始できます。

手記! 診断ビューアは、モデル内にエラーがある場合に重要な情報を提供できます。

シミュレーションがターゲットに正常にデプロイされた場合、スコープにプロットされるデータは次のようになります。

SorinIBancila_6-1679401966625.pngSorinIBancila_6-1679401966625.png

コードプロファイリング

コードプロファイリングは、実行時間に関する重要な情報を提供するため、アルゴリズムを検証するための重要なツールです。この時間は、モデル設定 -> ハードウェア実装 -> ハードウェアボード設定 -> ターゲットハードウェアリソース ->プロファイリングタイマー」で設定されたタイマーによって測定されます。デフォルトでは、PIT タイマー (チャネル 0) が使用されます。

コード生成は、モデル設定 -> コード生成 -> 検証 -> コード実行時間のプロファイリング -> タスク実行時間の測定 から有効にできます。生成されるレポートは、Coarse (参照モデルとサブシステムのみ) または Detailed (すべての関数呼び出しサイト) のいずれかです。

シミュレーションが完了すると、小さなウィンドウが開きます。プロファイリング レポートは完全なコード実行プロファイリング レポートを表示するをクリックして開くことができます。

SorinIBancila_0-1679402825437.pngSorinIBancila_0-1679402825437.png

 

まとめ

NXPとMathworksのエコシステムにより、ユーザーは人工知能アルゴリズムをNXPハードウェアにデプロイできます。

最後に、BMSと人工知能に関心のあるユーザーには、 Javier Gazzarri氏(MathWorks) Marius Andrei氏(NXP) が主催するウェビナー「 Deploying a Deep Learning-Based State-Of-Charge (SOC) Estimation Algorithm to NXP S32K3 Microcontro... 」を観ることを強くお勧めします。


EdgeVerseおよびNXPは、NXP B.V.の商標です。その他のすべての製品名またはサービス名は、それぞれの所有者に帰属します。© 2023 NXP B.V. Arm、Cortexは、米国およびその他の国におけるArm Limited(またはその子会社または関連会社)の商標および/または登録商標です。関連技術は、特許、著作権、意匠、および企業秘密の一部またはすべてによって保護されている場合があります。全著作権所有。PyTorch、PyTorch ロゴ、および関連するマークは、The Linux Foundation の商標です。MATLAB、Simulink、Stateflow、Embedded Coder は The MathWorks, Inc. の登録商標であり、MATLAB Coder、Simulink Coder、Deep Learning Toolbox は The MathWorks, Inc. の商標です。mathworks.com/trademarks を見るその他の商標のリストについては、こちらをご覧ください。TensorFlow、TensorFlow のロゴ、および関連するマークは、Google Inc. の商標です。

标记 (1)
无评分
版本历史
最后更新:
‎01-06-2026 12:59 AM
更新人: