はじめに
レゾルバは、条件の厳しい過酷な環境においても、非常に長い時間、高い信頼性と精度を維持することができます。そのため、EV/HEVなどの電動自動車、電力システム、インバータ、サーボ、鉄道、高速列車、航空宇宙分野向けの機器など、位置と速度の情報を必要とする多様なアプリケーションで使われています。
アナログ・デバイセズは「AD2S1210」や「AD2S1205」などのレゾルバ‐デジタル・コンバータ(RDC)を提供しています。この種の製品は、システムにおいてレゾルバの信号を復号し、位置と速度を表すデジタル・データを取得するために使われています。上に挙げたような過酷な環境で稼働するシステムでは、干渉や障害の問題が起こりがちです。そのため、多くの場合、干渉が生じている条件下で角度や速度の検出精度を評価し、問題の根本的な原因を検出/検証して、システムの改修/最適化を実施することが求められます。レゾルバ・シミュレータは、速度または位置が一定という条件で稼働する現実のモータに接続されるレゾルバの動作を模擬するものです。特に、故障注入(Fault Injection)機能を備える高精度のレゾルバ・シミュレータを活用すれば、複雑なモータ制御システムを構築することなく、干渉と障害の問題を解決することができます。
本稿では、まずレゾルバ・シミュレータ・システムで生じる誤差の影響について解析し、誤差の計算例を紹介します。それにより、レゾルバ・シミュレータでは、高い精度を実現することが非常に重要であることを示します。次に、フィールド・アプリケーションにおいて干渉が生じた場合にはどのような障害が発生するのか、いくつかの例を示します。続いて、最新/高精度のIC製品を使用し、故障のシミュレーション/注入機能を備える高精度のレゾルバ・シミュレータを構築する方法を説明します。最後に、レゾルバ・シミュレータの機能の一部を紹介します。
レゾルバ・シミュレータ・システムの誤差がもたらす影響
ここでは、まず理想的なレゾルバの構造を示します。続いて、よくある5つの非理想的な性質と、それによる誤差の解析方法を示すことで、レゾルバ・シミュレータ・システムには高い精度が必要であることを明らかにします。

レゾルバ・シミュレータは、速度または位置が一定の現実のモータに接続されたレゾルバの動作を模擬するものです(図1)。従来から使用されている可変リラクタンス型のレゾルバは、ロータとステータを備えており、一種の特殊なトランスであると考えることができます。1次側のEXCは励起用の入力信号であり、式(1)のとおり正弦波で表されます。2次側のSINとCOSは、2つの出力に現れる変調済みの正弦波信号です。これらはそれぞれ式(2)、(3)で表されます。



ここで、
θはシャフトの角度、ωは励起信号の周波数、A0は励起信号の振幅、Tはレゾルバの変圧比です。
図2に示したのは、変調後のSIN、COSの波形です。θが一定の場合、象限によって両信号は同位相になる場合と逆位相になる場合があります。速度が一定である場合、両信号の包絡線周波数は一定です。これは速度の情報を表します。

アナログ・デバイセズのすべてのRDC製品では、復調信号は式(4)で表されます。φ(角度のデジタル出力値)がレゾルバの角度であるθ(ロータの位置)と等しいとき、タイプIIのトラッキング・ループが得られます。実際のレゾルバ・システムには、振幅の不整合、位相のシフト(偏移)、不完全な直交性、励起信号の高調波、誘導性の高調波という5つの非理想的な条件が生じる可能性があります。それらすべてが誤差の要因になります。

振幅の不整合
振幅の不整合は、SIN/COSの最大振幅(COSは0°と180°のとき、SINは90°と270°のとき)におけるピークtoピークの振幅差です。振幅の不整合は、レゾルバの巻線のばらつきが原因で生じます。また、SIN/COSのゲインの制御がアンバランスであることによって生じる可能性もあります。振幅の不整合に起因する位置の誤差を求めるには、式(3)を式(5)のように書き換えます。

ここで、aはSINとCOSの間の不整合の大きさを表します。復調後に残る包絡線信号は、式(6)のように簡単に表すことができます。式(6)をゼロにする(タイプIIのトラッキング・ループにおいて包絡線信号をゼロに駆動する)と、位置の誤差ε = θ - φを求めることができます。これにより、式(7)に示すような誤差の情報が得られます。


実際にはaの値は小さく、位置の誤差も小さくなり、sin(ε)≒ε、θ + φ≒2θとなります。したがって、式(7)は式(8)のように近似できます。ご覧のとおり、誤差の項はrad(ラジアン)単位で表されます。

式(8)を見ると、誤差の項は回転速度の2倍の速度で変動し、45°の奇数倍で最大値であるa/2になることがわかります。振幅の不整合が0.3%であると仮定して式(8)に代入すると、45°の奇数倍における最大誤差は式(9)のようになります。

上式において、mは奇数を表します。
rad単位で算出された誤差は、式(10)によってLSBに換算することができます。この式は、分解能が12ビットのRDCを使用する場合の例であり、最大誤差は約1LSBに相当することがわかります。

位相のシフト
位相のシフトには、差分位相シフトと共通位相シフトの2種類があります。差分位相シフトは、レゾルバのSINとCOSの間の位相のずれです。共通位相シフトは、リファレンスとなる励起信号とSIN/COSの間の位相のずれです。差分位相シフトに起因する位置の誤差を求めるために、式(3)を式(11)のように書き直します。

ここで、aは差分位相シフトを表します。直交位相項であるcos(ωt)(sin(a)sin(θ)cos(φ))を無視すると、復調後に残る包絡線信号は、式(12)のように表すことができます。 実際にはaの値は小さく、cos(a)≒1 - a2/2となります。式(12)にゼロとする(タイプIIのトラッキング・ループにおいてこの信号をゼロに駆動する)と、位置の誤差ε = θ - φを求めることができます。これにより、式(13)に示すような誤差の情報が得られます。


θ≒φの場合、sin(θ)cos(φ)は、θ≒45°のときに最大値である0.5になります。したがって、式(13)は式(14)のように近似できます。ご覧のとおり、誤差の項がrad単位で表されます。

差分位相シフトが4.44°であると仮定すると、誤差は式(15)によってLSBに換算することができます。この式は、分解能が12ビットのRDCを使用する場合の例であり、その値は約1LSBに相当することがわかります。

一方、共通位相シフトをβとすると、式(2)と式(3)はそれぞれ式(16)と式(17)のように書き換えることができます。


同様に、誤差の項は式(18)のように表せます。

静的な動作条件の下では、共通位相シフトはRDCの精度には影響を与えません。しかし、動作中のレゾルバは、ロータのインピーダンスと、対象とする信号の無効な成分に起因する速度の電圧を生成します。この電圧が発生するのは動作中のみであり、静止している際の角度では発生しません。この速度の電圧は対象とする信号と直交します。共通位相シフトをβとすると、トラッキング誤差は式(19)のように近似できます。ここで、ωMはモータの速度、ωEは励起の速度です。

式(19)からわかるように、この誤差は、レゾルバの速度と位相シフトの大きさに比例します。したがって、一般的には、レゾルバの励起周波数を高くすることで誤差を抑えられます。
不完全な直交性
不完全な直交性とは、レゾルバの2つの信号(SIN、COS)の位相差が90°からずれている状態のことを意味します。これは、レゾルバの2つの位相が完璧に空間的に直交するように加工/組み立てが行われていない場合に発生します。完全な直交からのずれをβとすると、式(2)と式(3)はそれぞれ式(20)と式(21)のように書き換えることができます。


復調後に残る包絡線信号は、式(22)のように簡単に表すことができます。式(22)をゼロとし、βは小さく、cos(β)≒1、sin(β)≒βであるとすると、位置の誤差ε = θ - φを求めることができます。これにより、式(23)に示すような誤差の情報が得られます。


式(23)を見ると、誤差の項は回転速度の2倍の速度で変動し、45°の奇数倍で最大値であるβ/2になることがわかります。振幅の不整合に起因する誤差とは異なり、平均誤差はゼロではなく、最大誤差は直交誤差に等しくなります。振幅の不整合の場合と同様に、β = 0.0003rad = 0.172°と仮定すると、分解能が12ビットのRDCを使用する場合の誤差は約1LSBになります。
励起信号の高調波
ここまでの解析では、励起信号は理想的な正弦波であり、その他の高調波成分を含まないと仮定していました。しかし、現実のシステムの励起信号には高調波成分が含まれます。そこで、式(2)と式(3)をそれぞれ式(24)と式(25)のように書き換えます。


復調後に残る包絡線信号は、式(26)のように簡単に表すことができます。タイプIIのトラッキング・ループにおいて、この信号をゼロに駆動します。

式(26)にゼロとすることにより、位置の誤差ε = θ - φを求めることができます。これにより、式(27)に示すような誤差の情報が得られます。

レゾルバの励起信号の高調波成分がSIN側とCOS側で同一であれば、式(27)の分子はゼロであり、位置の誤差は生じません。その場合、共通する高調波の値がどれだけ大きくても、RDCに対する影響は無視できます。しかし、SIN側とCOS側の高調波成分に差がある場合には、式(8)で示した振幅の不整合の場合と同じ形で位置の誤差が現れます。これは、位置の精度に大きな影響を及ぼします。
誘導性の高調波
現実の世界では、完全に位置の正弦関数/余弦関数となるインダクタンス特性を備えたレゾルバを構成するのは不可能です。通常、インダクタンスには高調波成分が含まれ、可変リラクタンス型のレゾルバにはDC成分が含まれます。そこで、式(2)と式(3)をそれぞれ式(28)と式(29)のように書き換えます。



ここでK0はDC成分を表します。復調後に残る包絡線信号は、式(30)のように表すことができます。
高調波の振幅が小さい場合(n > 1でKn << 1)、タイプIIのトラッキング・ループにおいてこの信号をゼロに駆動すると、式(31)から誤差の情報ε = θ - φを導くことができます。

この式から、誤差は高調波よりもDC成分に大きく依存し、誘導性の高調波の振幅に比例することがわかります。一方で、インダクタンスのn次高調波によって位置の誤差の(n - 1)次高調波の振幅が決まることもわかります。
誤差の影響についてのまとめ
上述した誤差の発生源以外に、SIN/COSの信号線に結合する干渉や、アンプのオフセット誤差、バイアス誤差なども、システムの誤差に影響を及ぼします。表1に、レゾルバ・シミュレータ・システムにおける誤差の発生源と影響の度合いについてまとめました。分解能が12ビットのRDCにおいて1LSBの誤差が生じるワースト・ケースの値も示してあります。分解能が異なるRDCにおける誤差も、この表を基にして計算することができます。
誤差の発生源 | 誤差の計算式 | 説明 | 1LSBの誤差が生じる値 |
振幅の不整合 | ![]() |
a:振幅の不整合 | 振幅の不整合が0.003の場合 |
位相のシフト | ![]() |
a:差分位相シフト | 差分位相シフトが4.44°の場合 |
![]() |
β:共通位相シフト ωM:モータの速度 ωE:励起の速度 |
||
不完全な直交性 | ![]() |
β:完全な直交からの角度のずれ | 完全な直交からのずれが0.172°の場合 |
励起信号の高調波 | ![]() |
Acn、Asn:高調波の振幅 | |
誘導性の高調波 | ![]() |
K0:DC成分、 Kn:高調波の振幅 |
RDCシステムにおける障害の種類
実際のRDCシステムでは、多くの種類の障害が発生する可能性があります。以下では、どのような種類の障害が発生し得るのか説明します。その上で、フィールド・テストで取得した障害の信号を例にとり、レゾルバ・シミュレータのソリューションによって、その障害のシミュレーションを実施する方法を紹介します。なお、ここで取り上げるもの以外にも、別の障害につながるランダムな干渉が生じたり、複数の障害が同時に生じたりするケースもあります。
接続ミス
ここで言う接続ミスとは、レゾルバの励起信号とSIN/COSのペアが、RDCのSIN/COS入力ピンと励起出力ピンに誤った形で接続されている状態のことを指します。接続ミスがあっても、RDCは角度と速度の情報を復号できます。しかし、角度の出力データには、D/Aコンバータ(DAC)の出力にオフセット誤差が生じている場合と同様に、値がずれる部分が発生します。図3に、接続ミスが起きている場合に得られるデータの例を示しました。出力角度の最初の列に示したのが、EXC/SIN/COSピンが正しく接続されている場合の数値です。それ以外の列には、接続ミスが生じている場合の値を示しています。

位相シフトによる障害
先述したように、位相シフトには、差分位相シフトと共通位相シフトの2種類が存在します。差分位相シフトは、共通位相シフトの差だと見なすことができるので、ここでは位相シフトの障害を、共通位相シフトに起因する障害であると考えることにします。
図4は、共通位相シフトによる誤差の影響を説明するためのものです。図において、位相1は励起フィルタによって発生する遅延です。また、位相2はレゾルバの位相シフトです。位相3は配線遅延、位相4はSIN/COS用のフィルタで生じる遅延です。実際のRDCシステムでは、位相1、2、3、4の合計値が44°を超えると、位相シフト誤差が発生します。通常、レゾルバの位相シフト誤差は10°です。悪条件の下では、位相の合計値が30°に達する可能性があります。MPを考慮し、十分な位相マージンを確保する必要があります。
SIN、COSの位相シフト量が異なる場合、位相シフトの不整合という形で障害が発生する可能性があります。これが発生すると、角度と速度の精度に影響が及びます。

切断
ここで言う切断とは、レゾルバのいずれかの配線がRDCのプラットフォームのインターフェースから切り離された状態のことです。お客様からは、製品のアップグレードに関連する話をする際、配線の切断を検出できるようにすることが常に求められます。この障害については、SIN/COSをゼロ(0V)に設定することによってシミュレーションすることができます。AD2S1210の場合、切断が生じた場合には、LOS/DOS/LOTの各フォールトをトリガすることができます。
振幅の不整合/超過による障害
振幅の不整合は、SIN/COSのゲインの制御またはレゾルバの比に差がある場合に生じます。その結果、SIN/COSの包絡線の振幅にも差が出ます。また、振幅の値がAVDDのレベルに近い場合には、振幅の超過という障害がトリガされます。AD2S1210では、この障害のことをクリッピング・フォールトと呼びます。適切なSIN/COSの例を図5に示しました。

IGBTに起因する外乱

IGBTに起因する外乱とは、IGBTスイッチがオン/オフする際に結合する干渉信号のことです。この信号がSIN/COSの配線に結合すると、位置と速度の情報に影響が及びます。その結果、角度の値がずれたり、速度の方向が不正確になったりすることがあります。図6に示したのは、フィールド・データの例です。チャンネル1がSIN、チャンネル2がCOSです。スプリアスはIGBTがオン/オフする際、干渉が結合していることを表しています。
速度の超過
速度の超過は、電気的な速度がレゾルバの復号システムよりも速い場合に生じます。例えば、AD2S1210は、12ビットのモードにおいて1250SPSの最大速度に対応します。例えば、レゾルバの電気的な速度が1300SPSに達すると、速度の超過というフォールトがトリガされます。
レゾルバ・シミュレータ・システムのアーキテクチャ
先述したように、振幅と位相の誤差は角度/速度の検出に直接的な影響を及ぼします。アナログ・デバイセズは、高精度の製品を数多く提供しているので、その中から適切なものを選択してレゾルバ・シミュレータ・システムを構築することができます。以下では、高精度なレゾルバ・シミュレータを構築する方法と、部品の選択について説明します。
図7に示すように、レゾルバ・シミュレータは、以下に示すプラットフォームと7つの主要なモジュールで構成されます。
- プロセス制御プラットフォーム:データの解析と制御
- 同期クロック生成モジュール:サブシステム用の同期クロックを生成
- 障害信号生成モジュール:様々な障害信号を生成
- SIN/COS生成モジュール:レゾルバの出力として、変調されたSIN/COSを生成
- 信号キャプチャ・モジュール:励起信号とフィードバック信号をキャプチャ
- SIN/COS出力モジュール:SIN/COS出力の処理(バッファ、ゲイン、フィルタを含む)
- 励起信号入力モジュール:内蔵バッファとフィルタ回路を含む
- パワー・モジュール:A/Dコンバータ、DAC、スイッチ、アンプなどのコンポーネントに給電

レゾルバ・シミュレータ・システムは、信号キャプチャ・モジュールによって励起信号入力モジュールからの励起信号をサンプリングし、プロセッサによって周波数と振幅の解析を行います。プロセッサは、CORDIC(Coordinate Rotation Digital Computer)アルゴリズムによって、DACから出力するSIN/COS用のコードを計算します。また、SIN/COS生成モジュールにより、同じ周波数の正弦波信号を励起入力としてSIN/COSを生成します。続いて、励起信号とSIN/COSを同時に再キャプチャし、SIN/COSの位相と振幅を計算/調整します。更に、励起信号とSIN/COSの間の位相誤差がゼロになるよう補償し、SIN/COSの振幅が同一のレベルになるようにキャリブレーションを実施します。最後に、変調されたSIN/COSと障害信号を生成し、角度、速度、障害のシミュレーションを実施します。
図8のシグナル・チェーンに示すように、励起信号とフィードバック信号のキャプチャには「AD7380」を使用しています。AD7380は、分解能が16ビットで、2チャンネルの同時サンプリングが可能な逐次比較型(SAR)ADCです。同ICでは、OSR(オーバーサンプリング・レート)の設定によっては98dBのS/N比を達成できます。このシミュレータのように、位相と振幅のキャリブレーションを目的として高精度の信号を同時に取得したい用途に非常に適しています。ADC用のドライバには、超低消費電力で低歪みの「ADA4940-2」を使用しました。SIN/COSと障害信号の生成には、高精度で低ノイズの20ビットDAC「AD5791」を採用しています。ただ、分解能はやや下がるものの、コストを抑えられるので、AD5791の代わりに「AD5541A」または「AD5781」を使用してもよいでしょう。入出力バッファとしては、ゲインを選択可能な高精度の差動アンプ「AD8475」を適用しています。アクティブ・フィルタと加算器は、オフセット・ドリフトと電圧ノイズが非常に小さいレールtoレールの高精度オペアンプ「AD8676」と「AD8599」を使って構成しています。SIN/COSの切り替えと選択には、2個のSPDTスイッチを内蔵するマルチプレクサ「ADG854」を使用しています。同ICは単電源、レールtoレールで動作し、最大オン抵抗が0.8Ωに抑えられていることを特徴とします。SIN/COSは、次段の信号キャプチャ・モジュールに送られます。

レゾルバ・シミュレータ・システムにおける電源の系統図を図9に示しました。このシステムは、外部の電源アダプタから給電される12Vを基に、DC/DCコンバータとLDO(低ドロップアウト)レギュレータによって生成された様々な電源電圧で動作します。「ADP5071」によって±16Vの電圧を生成していますが、「ADP7118」と「ADP7182」を使用すれば、よりクリアで安定した±15Vの電圧を生成できます。これらの電圧は、主にDACに関連する回路の電源として使用します。同様に、「ADP2300」、ADP7118、「ADM660」、ADP7182により、クリアで安定した3.3V/5V/-5V/-2Vの電圧を生成します。これらの電源電圧は、主にADCに関連する回路と細かい設計要件を満たすための回路に使用します。

レゾルバ・シミュレータのテスト結果
図10に示したのは、レゾルバ・シミュレータ・システムのテスト環境です。レゾルバ・シミュレータのボード、AD2S1210の評価用ボード、GUIなどで構成されています。図11には、GUI画面やテストを実施している様子を示しました。AD2S1210の評価用GUIを使用して、レゾルバ・シミュレータの性能(特に速度と角度の検出性能)を直接評価します。また、レゾルバ・シミュレータ用のGUIを使うことで、速度、角度、障害信号に関する設定が行えます。


図12に示したのは、角度、速度のINLの評価結果です。AD2S1210の分解能を16ビットに設定し、ヒステリシス・モードを無効にして評価を行いました。

このソリューションの性能を標準的なレゾルバ・シミュレータ・デバイスと比較しました。その結果が表2です。実際のテストでは、角度の検出精度として0.006°という値を達成することができました(AD5791を使用した場合の理論値は0.0004°です)。最大速度出力は3000rps、速度の精度は0.004rpsです。このような精度であれば、AD2S1210の10ビットのモードから約16ビットのモードに容易に対応することができます。
製品/パラメータ | 5330A(North Atlantic Industries製) | 5300A(North Atlantic Industries製) | 本稿で示したソリューション | AD2S1210の要件 |
励起周波数 | 47Hz~10kHz | 360Hz~20kHz | 2kHz~20kHz | 2kHz~20kHz |
角度の精度 | 0.003°~約0.015° | 0.00055556°~約0.0167° | 0.006°以上(キャリアが12.2070kHzの場合) | 0.0417°と1LSB |
回転速度の範囲 | 最大277rps | 最大278rps | 最大3000rps | 最大2500rps(クロックが8.19MHzの場合) |
回転速度の精度 | ±1% | 0.004rps(150rps未満の場合) | ±0.0305rps(125rps未満の場合) | |
このシミュレータでサポート可能な障害の種類を表3にまとめました。位相に関連する障害については、SIN/COSを0°~約360°の範囲でサポートできます。振幅に関連する障害については、SIN/COSを0V~約5Vの範囲でサポートすることが可能です。速度の超過、IGBTに起因する外乱、切断などの障害も、このソリューションによってシミュレーションすることができます。
障害の種類 | 位相シフト | 位相シフトの不整合 | 振幅の不整合 | 振幅の超過 | IGBTに起因する外乱 | ランダムな外乱 | 速度の超過 | 切断 |
範囲 | 0°~約360° | 0°~約360° | 0V~約5V | 0V~約5V | ✓ | ✓ | 0rps~約3000rps | ✓ |
1つの例として、IGBTに関する障害のテスト結果を図13に示しました。このテストでは、シミュレータの出力を45°に設定し、周期的な干渉信号をSIN/COSの出力に加えました。AD2S1210の評価用ボードに対応するGUIには、角度/速度の性能が表示されています。それを見ると、角度が45°付近で揺らぎ、それと同時に速度が0rps付近で揺らいでいることがわかります。

まとめ
RDCに関連するほとんどのアプリケーションでは、干渉が発生します。また、いくつかの障害は、深刻な条件下で生じます。独自のレゾルバ・シミュレータを構築する際には、ぜひ本稿で示したソリューションに従ってください。そうすれば、干渉が起きている状態でシステムの性能を評価できるだけでなく、標準的なシミュレータと同じように製品のキャリブレーションと検証を行うことができます。誤差に関する詳細な解析は、SIN/COSとして高精度のアナログ信号が必要であることを理解する上で大いに役立ちます。また、本稿で紹介したすべての種類の障害をシミュレーションすることにより、一部の機能安全について検証を行うこともできます。
参考資料
Geoffrey Boyes「Synchro and Resolver Conversion(同期とレゾルバ変換)」 Analog Devices、1980年
Duane C Hanselman「Resolver Signal Requirements for High Accuracy Resolver-to-Digital Conversion(高精度のレゾルバ‐デジタル変換におけるレゾルバの信号の要件)」 IEEE Trans. Ind. Electron、Vol. 37, No. 6、1990年12月
Michael Lynch「極めて精度の高いプログラマブル電圧源」Analog Devices、2017年10月
Shane O’Meara「AD7380 evaluation kits(AD7380用の評価キット)」 Analog Devices、2019年
Jakub Symczak、Shane O’Meara、Johnny Gealon、Christopher Nelson De La Rama「高精度のリゾルバ/デジタル・コンバータによる角度位置と速度の計測」 Analog Devices、2014年3月
謝辞
本稿の執筆に必要な設計とテストに協力してくれたアナログ・デバイセズのインターンであるEdward Luo、アプリケーション・エンジニアであるShane O'Meara、Steven Xie、Karl Wei、Michael Lynchに深く感謝します。