Microchipのeバイク技術に関するQ&A:CPUは、どのようにしてハードウェアアクセラレーションを実現するのですか?

Q:Microchipのeバイクスキームで、FOCライブラリが100kHzのスイッチング周波数で動作する場合、CPUはアプリケーションにどの程度の余裕を残しているのですか?

A:PWM周波数が100kHzの場合、アルゴリズムの計算周波数は帯域幅に応じて調整可能です。例えば、電流ループには50kHz、速度ループには12.5kHzを採用します。推奨される dsPIC33AK シリーズは、200MHzのクロック周波数、32ビットMCU(マイクロコントローラユニット)、倍精度FPU(浮動小数点ユニット)、および三角関数と平方根(SQRT)演算のハードウェアアクセラレーションを備えています。


FOCライブラリを100kHzのスイッチング周波数で使用する場合、CPUがアプリケーションに提供する余裕は、主に特定のアルゴリズム構成と選択したMCUの性能に依存します。

例として、推奨される dsPIC33AK シリーズMCU(クロック周波数200MHz、32ビットアーキテクチャ、倍精度FPU搭載、三角関数および平方根演算のハードウェアアクセラレーション機能搭載)を挙げます。PWMが100kHzの場合、電流ループは50kHz、速度ループは12.5kHzに設定されます。この設定では、FPUおよび三角関数と平方根(SQRT)に対するハードウェアアクセラレーションの使用が推奨されます。

倍精度FPU(浮動小数点ユニット)

  • これは、浮動小数点演算を処理するためのMCU内の専用ハードウェアモジュールです。「倍精度」とは、64ビット浮動小数点データ(IEEE 754規格準拠)をサポートすることを意味し、単精度(32ビット)浮動小数点と比較して、より高い計算精度とダイナミックレンジを提供します。

  • FOCアルゴリズムにおいては、電流ループおよび速度ループに対するPI制御や座標変換(Clarke/Park変換)といったコアの演算は、いずれも大量の浮動小数点演算(例えば十進乗算や十進除算)を伴います。倍精度FPUは、ソフトウェアエミュレーションに依存することなく、ハードウェアを通じてこれらの演算を直接実行することが可能です。

三角関数のハードウェアアクセラレーション

  • これは、正弦関数(sin)や余弦関数(cos)などの三角関数を計算するためにMCUに組み込まれた専用ハードウェア回路を指します。これにより、ソフトウェアによるテーブル検索やTaylor級数近似といった時間のかかるソフトウェアベースの手法が不要となります。

  • FOCアルゴリズムでは、SVPWM(空間ベクトルパルス幅変調)や逆Park変換といったステップで、角度に対応する三角関数値のリアルタイム計算が必要となります。これらは高頻度で実行される重要な演算です。

SQRTハードウェアアクセラレーション

  • これは平方根(√x)演算用のハードウェアアクセラレーションモジュールであり、ベクトルの大きさの計算(例:FOCにおける電流ベクトルの大きさの計算)を高速に行うことができます。

  • モータ制御においては、電流ループフィードバック信号の合成や過電流保護閾値の判定といった場面で、平方根演算が頻繁に用いられます。

ハードウェアアクセラレーションがない場合、コア演算はソフトウェア命令で実行するCPUに依存することになり、多大な時間を要します。倍精度FPUと三角関数および平方根(SQRT)に対するハードウェアアクセラレーションを利用することで、効率を向上させることが可能です。

FOCに関連するその他のコンテンツ

関連製品:

その他の関連するMicrochipのeバイク技術のQ&A:




オリジナル・ソース(English)