モータ・コントロール向けに最適化されたΣΔ ADCによる電流測定【Part 1】

高性能のモータやサーボの駆動アプリケーションでは、シグマ・デルタ(ΣΔ)方式の絶縁型A/Dコンバータ(ADC)を使用して相電流を測定する例が増えています。実際、そうしたADCは、堅牢なガルバニック絶縁に対応すると共に優れた測定性能を備えているため、そうした用途に最適なものだと言えます。しかも、新世代品が登場するたびに、その性能は高まっていきます。但し、最新のADCが備える潜在能力を最大限に引き出すには、モータ駆動システムにおいて、各ADCの特質に応じてそれ以外の部分を設計する必要があります。

本稿では、上述したようなモータ・コントロール・アプリケーションについて2部構成で解説します。Part 1では、まず、sincフィルタを使用し、ΣΔ変調によって符号化されたデータを復調する方法について説明します。その上で、sincフィルタと制御アルゴリズムの同期を実現する方法について詳しく述べます。Part 2では、モータ・コントロール・アプリケーションにおいて電流測定の性能を高めるために、sincフィルタの新たな構成方法を提案します。続いて、最適な性能を得ることが可能なsincフィルタの実装方法を、HDLコードをベースとして紹介します。最後に、FPGAをベースとする3相サーボ駆動システムにおいて相電流を実測した結果を示します。

はじめに

メーカー各社は、より性能が高く、より堅牢性に優れるモータ駆動システムを提供すべく尽力しています。そうした改善は、制御アルゴリズムの高度化と演算能力の向上によって実現されることもあれば、フィードバック回路における非理想的な要因(遅延、スキュー、温度ドリフトなど)の影響を最小限に抑えることによって達成されることもあります1

モータ・コントロール用のアルゴリズムにフィードバックすべき要素の中で、最も重要なのは相電流の測定結果です。制御性能が高まるにつれて、システムは非理想的な要素の影響に対してより敏感になります。非理想的な要素としては、タイミング精度、オフセット誤差、ゲイン誤差、複数のフィードバック・チャンネルの同期ずれといったものが挙げられます。ここ数年間、半導体メーカーは、フィードバック用のシグナル・チェーンにおいてそうした影響を低減すべく注力してきました。その傾向は今後も続く見込みです。そうした製品の一例としては、アナログ・デバイセズの「ADuM7701」が挙げられます。これは、相電流の測定用に最適化された最新世代の絶縁型ΣΔ ADCです。但し、重要なのはADCの性能だけではありません。それ以外にも、フィードバック・パスのその他の部分に影響を及ぼす危険な要素が存在します。その事実に注意を払うことも重要です。本稿では、ADCの性能以外のものとして、フィードバック・パスの部分に着目します。基本的には、モータ・コントロール・アプリケーションを対象としていますが、本稿で示す内容は、ΣΔ ADCの厳密な同期を必要とする任意のシステムに適用することができます。

図1に、ΣΔ ADCを使用する場合の標準的なシグナル・チェーンを示しました。シャント抵抗に相電流を流すことにより、ADCのアナログ入力電圧が生成されます。ΣΔ ADCは、その電圧信号を1ビットのデータ・ストリームに変換します。また、このΣΔ ADCにはガルバニック絶縁が施されており、A/D変換部(ΣΔ変調部)に続くすべての要素は、モータの相電圧から絶縁されます。A/D変換部に続くのは、復調処理を担うフィルタです。このフィルタは、1ビットの信号をマルチビット(Mビット)の信号に変換すると共に、デシメーションによってデータ・レートを引き下げます。ただ、通常はデシメーション後のデータ・レートでも高すぎて、制御アルゴリズムの更新レートと一致しません。この問題を解決するために、最後にダウンサンプリングを実施します。

図1. 相電流の測定に使用するシグナル・チェーン。ΣΔ ADCをベースとしています。
図1. 相電流の測定に使用するシグナル・チェーン。ΣΔ ADCをベースとしています。

本稿では、フィルタ段/デシメーション段はFPGAによって実装するものとします。また、フィルタとしては、3次のsincフィルタ(sinc3フィルタ)を使用すると仮定します。

sincフィルタの同期

ΣΔ ADCとsincフィルタには、時間領域での制御が難しく、サンプリングのタイミングが定義されていないという問題があります2。専用のサンプル&ホールド回路を備えるADCと比べると、確かに気になる問題であることに間違いはありません。しかし、これについてはいくつかの回避策が存在します。このセクションで示すように、重要なのはsincフィルタとシステムのその他の部分との同期をとり、適切なタイミングで相電流をサンプリングすることです。これが正しく行われなければ、測定結果に深刻な歪みが生じます。

sincフィルタの出力は、ある瞬間のΣΔ ADCの入力を直接的に表すわけではありません。ある瞬間のフィルタ出力は、それ以前のウィンドウ期間内に含まれるデータの加重平均となります。この動作は、フィルタのインパルス応答に現れます。図2(a)に、デシメーション・レートが5のsinc3フィルタのインパルス応答を示しました。この図は、フィルタの出力が入力シーケンスの加重和であることを表しています。中央のサンプルが最も重み(振幅)が大きく、最初と最後のサンプルが最も重みが小さくなっています。

ここで、いくつかの基本的な定義を行っておきます。ΣΔ ADCのクロック周波数(変調器で使用するクロック)をfmodとします。このfmodとデシメーション・レートDRによって、デシメーション周波数fdecが決まります。その関係は以下の式のとおりです。

数式 1

図2(b)に、フィルタのインパルス応答とステップ応答の関係を示しました。フィルタにステップ信号を入力しても、出力は入力の形状をそのまま反映したものにはなりません。そして、3デシメーション・サイクルが経過すると、フィルタの定常状態に達します。sinc3フィルタは、以下のような重要な性質を備えています。

  • 群遅延は1.5デシメーション・サイクルに相当します。
  • セトリング時間は、3デシメーション・サイクルに相当します。

この性質は、フィルタと制御システムの同期をとる上で重要な意味を持ちます。本稿では、上記の性質を前提として解説を進めます。

図2. フィルタの動作概要。(a)はsinc3フィルタのインパルス応答(デシメーション・レートは5)、(b)はsinc3フィルタのインパルス応答とステップ応答の関係を表しています。
図2. フィルタの動作概要。(a)はsinc3フィルタのインパルス応答(デシメーション・レートは5)、(b)はsinc3フィルタのインパルス応答とステップ応答の関係を表しています。

sincフィルタの同期について説明する前に、入力信号の性質についても定義しておく必要があります。それにより、何に対してフィルタの同期をとらなければならないのかが決まります。

図3に示したのは、電圧型インバータによって駆動される3相モータ(永久磁石ベース)の相電流をシミュレーションした結果です。変調方式は空間ベクトルPWM(パルス幅変調)3であり、スイッチング周波数は10kHzです。モータに印加されるピークの相電流は5A、回転速度は3000rpmです。この設定と3極ペアにより、電気的な基本波の周期は6.67ミリ秒になります。

図3. モータの相電流に空間ベクトルPWMを適用した結果(シミュレーション結果)
図3. モータの相電流に空間ベクトルPWMを適用した結果(シミュレーション結果)

相電流は、平均成分とスイッチング成分の2つから成ると見なすことができます。制御という目的に対して必要なのは、電流の平均成分だけです。したがって、スイッチング成分は、完全に除去する必要があります。平均成分を抽出するための最も一般的な方法は、モータの端子に印加されるPWM信号と同期をとって信号をサンプリングすることです。図4にその方法を示しました。いちばん上の信号は相電流のスイッチング波形、2番目の信号はそれに対応するインバータのレグにおけるハイサイドのPWM信号、いちばん下の信号はPWMタイマーからの同期信号です。PWMタイマーからの同期信号は、PWM周期の先頭と中央にアサートされます。わかりやすくするために、3つの相がいずれも50%のデューティ・サイクルで実行されていると仮定しましょう。つまり、電流が増加する勾配と減少する勾配はそれぞれ1つずつしか存在しません。PWMの同期信号の立上がりエッジにおいて電流は平均値になるので、正確にその瞬間の電流をサンプリングすれば、スイッチング成分は完全に除去されます。サンプル&ホールド回路は、実質的にスイッチング周波数で無限の減衰を実現するフィルタであると見なすことができます。

図4. サンプリングのタイミング。PWM周期の先頭と中央で相電流を測定すれば、電流のリップルを減衰させることができます。
図4. サンプリングのタイミング。PWM周期の先頭と中央で相電流を測定すれば、電流のリップルを減衰させることができます。

図5は、図3の波形に対して、図4のようなタイミングでサンプリングを行った場合の結果です。図5(b)には、実際の相電流とサンプリングされた電流を拡大して表示しています。サンプル&ホールド処理により、リップルが完全に除去されている点に注目してください。

図5. 相電流のサンプリング。(a)は、理想的にサンプリングされた相電流の基本波を表しています。(b)には、実際の相電流とサンプリングされた相電流を拡大して示しました。
図5. 相電流のサンプリング。(a)は、理想的にサンプリングされた相電流の基本波を表しています。(b)には、実際の相電流とサンプリングされた相電流を拡大して示しました。

サンプリングされた相電流については、0Aを0.5にマッピングし、フルスケールを8Aとしています。後で示すΣΔ ADCによる測定結果と比較しやすいように、このような表現方法を使用しました。図5に示したのは、理想的なサンプリングが行われた場合の結果です。サンプリングの実施後には、基本波の成分しか残っていません。したがって、このデータはΣΔ ADCによる測定値と比較する際の基準値として使用することができます。

ΣΔ ADCによる測定とエイリアス

サンプル&ホールド型の理想的なADCを使用すれば、サンプリングのタイミングを厳密に制御できます。したがって、基本波の成分だけを適切に抽出することが可能です。それに対し、ΣΔ ADCでは連続サンプリングによって変換処理が行われるので、必ずリップルの成分が測定値に含まれることになります。

ΣΔ ADCによる変換において、デシメーション・レートとS/N比の間には密な関係があります。それは、デシメーション・レートが高いほど、出力の有効ビット数(ENOB:Effective Number of Bits)が高くなるというものです。但し、デシメーション・レートを高めると、それに伴って群遅延も増加するという問題があります。そのため、設計を行う際には、フィードバック・チェーンにおける信号の分解能と遅延の間のトレードオフに対処しなければならなくなります。原則としては、制御の周期に対して遅延は小さく抑えなければなりません。モータ・コントロールの場合、デシメーション・レートとしては標準的には128~256が使用されます。その範囲に設定すれば、S/N比と群遅延の適切なバランスを得ることができます。

デシメーション・レートとしては、データシートにも一般的な仕様として256という値が記載されています。例えば、ADuM7701の場合、デシメーション・レートは256で、ENOBは14ビットです。ENOBがこれだけ高ければ、非常に優れた精度で測定を行うことができるはずです。これについて確認するために、図3に示した相電流をクロック周波数が20MHzのΣΔ ADCで測定しました。得られたデータ・ストリームは、デシメーション・レートが256のsinc3フィルタで復調します。そのようにして得られた結果が図6(a)です。

図6. ΣΔ ADCによる測定結果。(a)はsinc3フィルタの出力、(b)は実際の相電流と、sinc3フィルタの出力、sinc3によるフィルタリングと実質的なダウンサンプリングを実施した後の出力(フィルタリング/ダウンサンプリング出力)を拡大したものです。
図6. ΣΔ ADCによる測定結果。(a)はsinc3フィルタの出力、(b)は実際の相電流と、sinc3フィルタの出力、sinc3によるフィルタリングと実質的なダウンサンプリングを実施した後の出力(フィルタリング/ダウンサンプリング出力)を拡大したものです。

相電流の基本波成分は明らかに見て取れますが、測定された信号は図5(a)に示した理想的なサンプリング結果と比べると、ノイズが非常に大きくなっています。つまり、ENOBが非常に高いADCとsincフィルタを使用しているのに、フィードバック用の信号の質はかなり低くなるということです。その原因は、図6(b)を見ると理解できます。図6(b)は、sinc3フィルタの出力と実際の相電流を拡大表示したものです。相電流の10kHzのスイッチング成分は、sinc3フィルタによって位相はシフトしているものの、ほとんど減衰していないことがわかります。ここで、モータ・コントロール用のアルゴリズムはPWMの1周期ごとに1回実行され、sincフィルタの最新出力は周期の先頭で読み出されると仮定します。つまり、sincフィルタの出力は、制御アルゴリズムの更新レートに合わせて実質的にダウンサンプリングされます。図6(b)には、sinc3フィルタによるフィルリングと上記のダウンサンプリングを実施した後の信号を「フィルタリング/ダウンサンプリング出力」として示しています。以降の図でも、この表現を使用します。

図7. PWMのレートでフィルタリング/ダウンサンプリングした結果。(a)はフィルタリング/ダウンサンプリング出力、(b)は測定誤差です。
図7. PWMのレートでフィルタリング/ダウンサンプリングした結果。(a)はフィルタリング/ダウンサンプリング出力、(b)は測定誤差です。

図7(a)に、PWMのレートでフィルタリング/ダウンサンプリングした基本波(フィルタリング/ダウンサンプリング出力)を示しました。相電流の測定値がかなり歪んでいるので、制御性能が低くなることは容易に想像できます。おそらく、トルクのリップルが増加するので、電流制御ループの帯域幅を狭めなければならなくなるでしょう。図7(a)の測定値から、図5(a)に示した理想的な測定値を差し引くと、図7(b)のように測定誤差が求められます。フルスケールの約7%に相当する誤差が発生しており、14ビットのENOBから期待されるものとはかけ離れた結果になっています。

図7に示した測定結果とエイリアスの影響は、ΣΔ ADCによる電流測定では非常に一般的な現象です。設計者がΣΔ ADCはモータの駆動には適していないと結論付ける理由はここにあります。しかし、ADCそのものの性能が低いためにこのような結果になっているわけではありません。性能が低いのはシグナル・チェーンのその他の部分です。相電流の測定に向けて、それらが適切に構成されていないことが問題なのです。

多くのADCは、入力信号を数MHz(一般的には10MHz~20MHz)のレートでサンプリングします。また、sincフィルタのデシメーション・レートは256程度であり、それにより変調ノイズのほとんどが除去されます。これだけサンプリング・レートが高いと、フィルタの出力には相電流のリップル成分が現れます。このことがシグナル・チェーンのダウンサンプリング段で問題になる可能性があります(図1)。リップル成分が十分に除去されないまま、モータ・コントロール用のアルゴリズムがPWMのレートで電流のフィードバック・データを処理すると、ダウンサンプリングにおいてエイリアスが発生します。

エイリアスが発生しないようにするためには、サンプリング定理に基づき、サンプリング周波数の1/2よりも高い周波数帯に、信号のエネルギーが存在しないようにしなければなりません。ΣΔ ADCの出力を10kHzにダウンサンプリングする場合、5kHz以上のすべてのノイズが測定値に現れることになります。実際、sincフィルタを通過後の信号には、10kHzのスイッチング・ノイズがかなり残ります。このノイズを減衰させる方法の1つは、デシメーション・レートを上げることです。しかし、そうすると群遅延が許容できないほど長くなってしまいます。したがって、別の方法を適用する必要があります。

同期による測定値の改善

図8は、先述したアンチエイリアシングの手法が抱える最大の問題について示したものです。この例では、sincフィルタの出力が、相電流のスイッチング成分と相関性を持たないタイミングで読み出されています。出力が読み出される際、フィルタはインパルス応答に基づいて入力信号の加重平均を生成します。この加重平均は、スイッチング波形の低いポイントを含む場合もあれば、高いポイントを含む場合もあります。その結果、フィードバックとして使用される信号には、0HzからPWM周波数の1/2までの周波数にわたって、かなり多くのノイズが含まれることになります。

図8. インパルス応答とスイッチング波形が相関性を持たない場合の例
図8. インパルス応答とスイッチング波形が相関性を持たない場合の例

ΣΔ ADCは、連続的にサンプリングを行います。そして、sincフィルタは、PWM周期ごとに複数の測定値(一般的には10~20個)を出力します。各測定値は、インパルス応答がオーバーラップする3デシメーション・サイクルにわたって生成されます。わかりやすくするために、図8には測定値とインパルス応答を3つだけ示しています。

問題は、インパルス応答が電流のスイッチング成分に対してロックされていないことです。スイッチング成分は、インパルス応答ではなくPWM周期に対してロックされています。この問題は、PWMの1周期あたりのデシメーション・サイクルが固定の整数値になるようにデシメーション・レートを選択することで解決できます。例として、PWMの周波数が10kHz、変調器のクロックが20MHz、デシメーション・レートが200のケースを考えます。この場合、PWMの1周期あたりのデシメーション・サイクルは、ちょうど10になります。PWMの1周期あたりのデシメーション・サイクルが固定値であれば、インパルス応答は、常にPWM周期に対してロックされます。それにより、フィードバックに使われる測定値は、PWM周期内の同じポイントで取得されます。このような同期機構を採用した場合、相電流の測定結果として図9(a)のようなものが得られます。

図9. インパルス応答をPWM周期に対してロックした場合の測定結果。(a)はフィルタリング/ダウンサンプリング出力、(b)は測定誤差です。
図9. インパルス応答をPWM周期に対してロックした場合の測定結果。(a)はフィルタリング/ダウンサンプリング出力、(b)は測定誤差です。

PWM周期とインパルス応答の同期をとることにより、望ましい効果が得られることは明らかです。測定結果からはノイズが除去されており、図5(a)に示した理想的な結果とかなり似ているように見えます。しかし、このΣΔ ADCによる測定値から理想的な測定値を差し引くと、図9(b)のような誤差が生じていることがわかります。誤差の大きさは図7(b)と同等ですが、周波数スペクトルが異なります。具体的には、ゲイン誤差が同等の1次高調波になります。図10は、誤差がこのようになる理由を説明するために用意したものです。

図10. スイッチング周期内の固定のポイントに対してインパルス応答がロックされている例
図10. スイッチング周期内の固定のポイントに対してインパルス応答がロックされている例

誤差成分のうち、ホワイト・ノイズは除去されています。しかし、測定値にはスイッチング成分からのバイアスがかかるため、信号にはやはり歪みが生じます。図10において、sincフィルタのインパルス応答の加重平均が、スイッチング波形のピーク付近に存在することに注目してください。PWM周期に対するインパルス応答の位相によっては、このバイアスの大きさはリップル電流の大きさだけから影響を受けます。図3に示したように、リップル成分の大きさは基本波の周期の中で変化します。リップルが最大になるのは、基本波の電流が最大のときです。一方、最小になるのはゼロと交差するときです。このことから、測定誤差は1次高調波成分になります。

1次高調波として現れる測定誤差を除去するには、インパルス応答の中心が、相電流がちょうど平均値になる位置にくるように調整する必要があります。つまり、常にPWM周期の先頭または中央付近にくるようにするということです。図11に示した例では、スイッチング周期の先頭にインパルス応答の中心を合わせるようにしています。スイッチング波形はこの点を中心として対称になります。そのため、両側の測定ポイントの数は等しくなります。このポイントで平均化を実施することにより、リップル成分はプラスマイナスゼロになります。

図11. スイッチング周期の理想的な測定ポイントに対してインパルス応答をロックした例
図11. スイッチング周期の理想的な測定ポイントに対してインパルス応答をロックした例

電流が平均値になる点が中心になるようにインパルス応答をロックすると、測定結果は図12(a)のようになります。図12(b)は、その場合の測定誤差です。理想的な測定値と同様に、ホワイト・ノイズもゲイン誤差も生じていない信号が得られています。

図12. PWM周期に対してインパルス応答をロックし、電流が平均値になる瞬間が中心にくるようにした結果。(a)はフィルタリング/ダウンサンプリング出力、(b)は測定誤差です。
図12. PWM周期に対してインパルス応答をロックし、電流が平均値になる瞬間が中心にくるようにした結果。(a)はフィルタリング/ダウンサンプリング出力、(b)は測定誤差です。

ここまでに示した結果から、ΣΔ ADCによる測定は、デシメーション・レートだけでなく、それ以外の多くの要素に依存することがわかります。一般論として、デシメーション・レートを高めればENOBは大きくなります。但し、それが通用するのは、エイリアスが存在しない場合だけです。入力信号に対するフィルタの更新レートと位相を制御することの方が、デシメーション・レートよりもはるかに重要です。このことは、デシメーション・レートが256の図7と、デシメーション・レートが200の図12を比較するとよくわかります。デシメーション・レートが低い図12の方が、測定品質は大幅に改善されています。

Part 1のまとめ

ここまでの内容をまとめると、ΣΔ ADCによる相電流の測定を最適化するための条件は、以下のようになります。:

  • sinc3フィルタのインパルス応答の長さは、3デシメーション・サイクルに相当します。これは、データがフィルタを通過するまでには3デシメーション・サイクルを要するということを意味します。
  • フィルタのインパルス応答の中心は、電流が平均値になる瞬間に合わせなければなりません。
  • インパルス応答の前半の1.5デシメーション・サイクルは、電流が平均値に到達する前の期間に存在する必要があります。後半の1.5デシメーション・サイクルは、電流が平均値に到達した後の期間に存在しなければなりません。
  • sincフィルタは、PWM周期内に複数の出力を生成しますが、そのうちの1つだけが使用されて残りは無視されます。

以上でPart 1は終了です。Part 2では、モータ・コントロールの用途に特に適した新たなsincフィルタを提案します。その上で、それをFPGA上に実装する方法を説明します。更に、FPGAをベースとする3相サーボ駆動システムにおける相電流の実測結果も示します。

参考資料

1 Jens Sorensen、Dara O’Sullivan「A System Approach to Understanding the Impact of Nonideal Effects in a Motor Drive Current Loop(モータ駆動用の電流ループにおける非理想的な効果の影響を理解するための体系的なアプローチ)」Proceedings of PCIM Europe 2016.

2Jens Sorensen「Σ-Δ Conversion Used for Motor Control(モータ・コントロールに用いられるΣΔ変換)」Proceedings of PCIM Europe 2015

3 Ahmet M. Hava、Russel J. Kerkman、Thomas A. Lipo「Simple Analytical and Graphical Methods for Carrier-Based PWM-VSI Drives(キャリアベースのPWM-VSI駆動のためのシンプルでグラフィカルな分析手法)」IEEE Transactions on Power Electronics、1999年1月

著者

Jens Sorensen

Jens Sorensen

Jens Sorensenは、アナログ・デバイセズのシステム・アプリケーション・エンジニアです。産業用アプリケーション向けのモータ・コントロール・ソリューションを担当しています。制御用のアルゴリズム、パワー・エレクトロニクス、制御用のプロセッサに関心を持っています。デンマークのオールボー大学で工学分野の修士号を取得しています。

Dara O'sullivan

Dara O’Sullivan

Dara O'Sullivanは、アナログ・デバイセズのシステム・アプリケーション・マネージャです。オートメーション/エネルギー事業部門のコネクテッド・モーション/ロボティクス・チームに所属しています。産業用モーション制御の分野における電力変換、制御、監視が専門です。アイルランドのユニバーシティ・カレッジ・コークで工学分野の学士号、修士号、博士号を取得しています。2001年から、産業分野や再生可能エネルギーの分野で研究、コンサルティングなどの業務に従事しています。

Shane O'Meara

Shane O’Meara

アナログ・デバイセズのコネクテッド・モーション/ロボティクス・チーム所属のシステム・アプリケーション・エンジニア。専門は産業用モーション・コントロール・アプリケーションにおける高精度変換、制御/監視シグナル・チェーン。リムリック大学にて工学士号(B.Eng.)を取得、2011年にアナログ・デバイセズ入社。