NXPコミュニティの皆様、こんにちは。
実際のリチウムイオン電池パックをターゲットに、SPI通信を介してS32K388-Q289とFRDM-MC33771B-SPI-EVBを使用した統合BMSを開発しています。調査を進めるうちに、S32K3 シリーズに使用できる BMS 固有のサンプル プロジェクトとリファレンス実装が比較的少ないことに気付きました。そのため、このタイプのアプリケーションに推奨されるワークフローとサポートされているツールチェーンを確認するのは困難でした。
私の目標は、以下の内容を含む完全な組み込み BMS スタックを MCU に実装することです。
セル電圧/温度モニタリング(BCC経由)
セルバランス制御
SOC / SOH推定アルゴリズム(ディープラーニングベースのアプローチを含む)
MCU上でのリアルタイム操作
可能な場合はモデルベース デザインのワークフロー (そうでない場合は S32DS C プロジェクト)
最初に MATLAB/Simulink Model-Based Design Toolbox (MBDT) を使用する予定ですが、セットアップで完全なサポートが利用できない場合は、S32 Design Studio (S32DS) に進みます。
以下の質問についてご指導いただければ幸いです。
1) S32K3 BMSアプリケーション用のMBDTサポートおよびトレーニング・マテリアル
BMS関連の開発(SPIベースのBCC通信、サンプリング/プロセッシング、保護ロジック、リアルタイム監視など)に特化したS32K3シリーズでMBDTを使用するための公式ドキュメント、ユーザーガイド、トレーニングコース、またはアプリケーションノートはありますか?
2) MBDTモデルとディープラーニングモデルの統合とコード生成
Simulink (MBDT) で BMS ロジックを開発し、Deep Learning Toolbox を使用して構築された SOC/SOH モデルを追加すると、次のようになります。
- これらを 1 つの統合 Simulink モデルに組み合わせることはできますか?
- はいの場合、Embedded Coder を使用して統合モデルを C コード (またはその他のサポートされている組み込みコード) に自動的に生成し、S32K388 に展開できますか?
3) S32K388におけるリアルタイム推論の実現可能性
(2)のコード生成が実行可能であれば:
- 展開されたモデルは、MCU 上のライブ バッテリー データ (電圧/電流/温度) を使用してリアルタイム推論 (SOC/SOH 推定) を実行できますか?
- S32K388 には、推奨される制約やベスト プラクティス (固定小数点と浮動小数点、サポートされるレイヤーの種類、モデル サイズの制限、推論のタイミングに関する考慮事項など) はありますか?
4) MBDTにおけるセーフティ制約/保護ロジック
セーフティのために、次のような保護ロジックを実装する必要があります。
- 過電圧/低電圧しきい値
- 過熱/低温しきい値
- 障害処理と安全状態の動作
これらの制限と保護ロジックを MBDT/Simulink に直接実装し、生成された組み込みコードに含めることは可能ですか?
S32K ターゲットの参考例(BMS またはセーフティロジック)があれば、共有してください。
5) S32K388とFRDM-MC33771B-SPI-EVBおよび代替品との互換性
S32K388-Q289 は、BMS アプリケーション用に SPI 経由で MC33771B と連携するために正式にサポート/推奨されていますか?
この組み合わせが推奨されない場合は、S32K3 ベースの BMS 開発用に公式にサポートされている BCC + リファレンス プラットフォーム (SPI または TPL) を提案していただけますか?
6) デバイス上でのトレーニング(オンライン学習)と推論のみのワークフロー
組み込み AI の観点から:
- オンデバイス トレーニング (リアルタイムのバッテリー データを使用したオンライン学習) は S32K3 MCU でサポートまたは推奨されていますか?
- または、PC でのオフライン トレーニング + MCU での推論のみというアプローチが推奨されますか?
オフライントレーニングが推奨される場合、推奨されるワークフローを説明する公式リファレンスはありますか?
7) S32K388におけるAI推論のパフォーマンス/メモリガイダンス
S32K3 (特に S32K388) 上で AI 推論を実行するためのベンチマークやガイドラインはありますか?
- フラッシュ/RAM使用量の予想
- 典型的な推論レイテンシの範囲
- 最適化アプローチ(固定小数点、量子化、軽量アーキテクチャ)
完全な統合と自動コード生成が推奨/サポートされていない場合、S32K3 に AI モデルを展開するための推奨ワークフローは何ですか?例えば:
- モデルを軽量なC推論コードに手動で変換する
- CMSIS-NNのようなアプローチを使用する(該当する場合)
- NXPミドルウェア/推奨ライブラリ/サンプル(例:eIQ)の使用
サポートありがとうございます。ドキュメントのリンク、トレーニング リファレンス、SDKs の例、ベスト プラクティスの推奨事項などがあれば、非常に役立ちます。
よろしくお願いいたします。
こんにちは@SonHyunTaek 、
プロジェクトに関する詳細な質問をコミュニティ フォーラムに投稿していただきありがとうございます。以下の回答は MBDT ソフトウェアの観点から提供されていることに注意してください。ハードウェアの観点からは、コンポーネントの組み合わせに関してより良いアプローチがある可能性があります。また、BMS の目標電圧とパック電流検知が必要かどうかを知っておくことも役立ちます。SPI 経由でコネクテッドされた単一の AFE を使用する予定なので、最大 48V の BMS システムをターゲットにしているものと想定します。
ご提案いただいたデバイスの組み合わせに関してですが、ハードウェア レベルでは、S32K3 は MC33771B と完全に互換性があります。しかし、ソフトウェアの観点から見ると、状況はより複雑になります。S32K3 用の MBDT は、MCAL レイヤーの NXP リアルタイム・ドライバ (RTD) 上にコードを生成するように構築されていますが、BMS 用の MBDT は、RTD と互換性のある BMS SDK 上にコードを生成します。BMS SDK には、Simulink からアクセスできるピン、クロック、ペリフェラルの外部構成ツールと、すぐに実行できるサンプルが含まれています。
ご注意ください:
- MBDT for BMS 1.2.0 は、S32K388 をサポートしていない MBDT for S32K3 1.4.0 でのみ動作します。
- BMS SDKはRTD 3.0.0とのみ互換性があります。S32K3 1.4.0 の MBDT によって使用されます。当時、S32K388 は入手できませんでした。
- BMS 用 MBDT および S32K3 用 MBDT は、バッテリー ジャンクション ボックス機能を備えたハードウェアデザインで通常使用される MC33774、MC33775、MC33664、MC33665、MC33772C などの新しい AFE 部品のみをサポートします。
これらの制限はソフトウェア パッケージ (RTD および BMS SDK) に起因します。使用する予定の MC33771B には C SDK ドライバーが含まれていますが、S32K3 と MC33771B を接続するためのすぐに実行可能な互換性のある C ドライバーがないため、カスタム コードを使用して手動で MBDT に統合する必要があります。つまり、組み込み SW: MC33771B/MC33772B 用のバッテリー・セルコントローラ ソフトウェア ドライバでは、手動の C コーディングと MBDT への統合が必要です。これを実行する方法 (S32K1 用の MBDT に基づく) を説明した記事は、こちらにあります。
以下であなたの質問に答え、最後にいくつかの解決策を提案します。
1. MBDTのサポートとトレーニング
私たちが提供する最高のリソースは、 MBDT コミュニティページで入手できます。右側には、S32K3 用の MBDT を使用して基本的なタスクを実行する方法を説明した、モデルベース デザイン ツールボックスの初心者向けガイドがあります。さらに、バッテリー・マネジメントシステムについての洞察を提供する BMS ウェビナーもあります。
MathWorks と共同で作成した BMS に関する最新のウェビナーへのリンクは次のとおりです。
NXP S32 デバイス向けバッテリー システム開発の合理化。
2. ディープラーニングモデルの統合
MathWorks とのこれまでのコラボレーションでは、ディープラーニング ベースの充電状態 (SOC) 推定アルゴリズムを Simulink から直接展開し、PIL モードでテストすることに成功しました。はい、Embedded Coder は Simulink モデルから直接ニューラル ネットワークを生成でき、MBDT と組み合わせて S32K3 に展開できます。
関連するウェビナーへのリンクは次のとおりです。
NXP S32K3マイクロコントローラへのディープラーニングベースのSOC推定アルゴリズムの導入
3. S32K388におけるリアルタイム推論の実現可能性
はい、リアルタイム推論は実現可能です。以前の研究では、セル電圧、電流、温度を入力として使用しました。これらの値は実行時に AFE によって測定され、ニューラル ネットワークに提供されます。ベストプラクティスとして、PIL モードでの集中的なテストはパフォーマンスの評価に役立ちます。最適化手法を試して、最適な構成を特定することもできます。
4. セーフティ上の制約
セーフティ要件のロジックを Simulink に実装し、対応するコードを自動的に生成できます。MathWorks は、S32K3 で使用および展開した例を提供しています。
リチウムイオンバッテリー・マネジメントアルゴリズムの設計とテスト
5. S32K388とFRDM-MC33771B-SPI-EVBの互換性および代替品
Simulink からニューラル ネットワーク アプリケーションを直接テストするには、最新バージョンの S32K3 用 MBDT を使用します。これにより、展開の実現可能性を確認し、現時点で利用可能なすべての MCU に対してベンチマーク テストを実行できます。
ハードウェアの観点からは、いくつかのオプションがあります。
a. 提案されたソリューション(S32K358 + MC33771C)を続行する
MC33771B ではなく、より新しく、SPI をサポートし、電流測定機能を備えている MC33771C から始めてください。カスタム コードを使用して MC33771C ドライバを Simulink に直接統合し、BMS 1.8.0 用の MBDT を使用できます。
b. サポートされているMCUを使用してSimulinkでBMS用のMBDTを使用する
たとえば、セル監視用の MC33774/MC33775 と電流測定用の MC33772C を搭載した S32K358 (すべて SPI 経由)。このセットアップは、MBDT for BMS および MBDT for S32K3 1.4.0 で動作します。ただし、最初にニューラル ネットワークが S32K358 で実行されることをテストします。
c. AFE部品を搭載したS32K3または最新のBMA7318を使用する
注意: このCASE、BMS 用の MBDT を使用して Simulink からコードを展開することは直接サポートされていません。Simulink でアプリケーション ロジックとニューラル ネットワーク C コードを生成し、S32 Design Studio を使用して AFE と手動で統合することもできます。
6. デバイス上でのトレーニングと推論のみのワークフロー
これはアプリケーションの要件によって異なります。これまでのアプローチは推論のみで、MATLAB でネットワークをトレーニングし、それを MCU に展開していました。推奨リソース:
ディープラーニングを使用したバッテリー状態の推定。続いて、上記のポイント 2 で説明したウェビナーが開催されます。
7. S32K388におけるAI推論のパフォーマンスとメモリに関するガイダンス
パフォーマンスはアプリケーションによって異なります。ニューラル ネットワークがすでにトレーニングされている場合は、生成されたコードを S32K3 ファミリの PIL モードでテストし、実行をプロファイルして、S32K388 がニーズを満たしているかどうかを判断します。参考までに、前述の SOC アルゴリズムは、S32K344 および S32K358 で正常にテストされました。
要約すると、Embedded Coder を使用すると、ニューラル ネットワークからコードを生成し、PIL モードでパフォーマンスをテストできます。検証後、生成されたコードを S32 Design Studio にインポートし、必要に応じて S32K388 に展開します。
お役に立てば幸いです。
マリウス