(57)【要約】【課題】高い検出精度を維持することができる回転角検出装置、モータ制御装置、電動パワーステアリング装置、及び回転角検出方法を提供すること。【解決手段】モータの回転数が上限閾値以下であるときの第１正弦波信号の最大値又は最小値に基づき、第１正弦波信号のゲインを補正して第２正弦波信号とする。モータの回転数が上限閾値以下であるときの第１余弦波信号の最大値又は最小値に基づき、第１余弦波信号のゲインを補正して第２余弦波信号とする。第２余弦波信号と第２正弦波信号とを加算した第３正弦波信号の最大値又は最小値に基づき、第３正弦波信号のゲインを補正して第４正弦波信号とする。第２余弦波信号から第２正弦波信号を減算した第３余弦波信号の最大値又は最小値に基づき、第３余弦波信号のゲインを補正して第４余弦波信号とする。第４正弦波信号及び第４余弦波信号に基づき、モータの回転角を算出する。【選択図】図７
2019144056.tif 000002
【特許請求の範囲】
【請求項１】
正相正弦波信号と当該正相正弦波信号を位相反転した逆相正弦波信号とを含む差動正弦波信号、及び、正相余弦波信号と当該正相余弦波信号を位相反転した逆相余弦波信号とを含む差動余弦波信号を、モータの位置検出信号として出力する位置検出センサと、
前記位置検出信号に基づき、前記モータの位置を検出する位置検出部と、
記憶部と、
を備え、
前記位置検出部は、
前記正相正弦波信号と前記逆相正弦波信号との差分を第１正弦波信号として出力し、前記正相余弦波信号と前記逆相余弦波信号との差分を第１余弦波信号として出力する差分演算部と、
前記記憶部に記憶された前記第１正弦波信号の最大値又は最小値に基づき、前記第１正弦波信号のゲインを補正した第２正弦波信号を出力すると共に、前記記憶部に記憶された前記第１余弦波信号の最大値又は最小値に基づき、前記第１余弦波信号のゲインを補正した第２余弦波信号を出力する第１ゲイン補正部と、
前記第２余弦波信号と前記第２正弦波信号とを加算して第３正弦波信号を生成し、前記記憶部に記憶された前記第３正弦波信号の最大値又は最小値に基づき、前記第３正弦波信号のゲインを補正した第４正弦波信号を出力すると共に、前記第２余弦波信号から前記第２正弦波信号を減算して第３余弦波信号を生成し、前記記憶部に記憶された前記第３余弦波信号の最大値又は最小値に基づき、前記第３余弦波信号のゲインを補正した第４余弦波信号を出力する第２ゲイン補正部と、
前記第４正弦波信号及び前記第４余弦波信号に基づき、前記モータの回転角を算出すると共に、前記モータの回転角に基づき、前記モータの回転数を算出する角度算出部と、
を備え、
前記第１ゲイン補正部は、少なくとも前記モータの回転数に応じて、前記第１正弦波信号の最大値及び最小値、並びに、前記第１余弦波信号の最大値及び最小値を更新する
回転角検出装置。
【請求項２】
前記第１ゲイン補正部は、
前記モータの回転数が、前記モータの回転数の上限閾値以下である場合に、前記記憶部に記憶された前記第１正弦波信号の最大値及び最小値、並びに、前記第１余弦波信号の最大値及び最小値を更新する
請求項１に記載の回転角検出装置。
【請求項３】
前記第１ゲイン補正部は、
前記第１余弦波信号のゼロ点検出時において、前記第１正弦波信号の値が０以上であるときの前記第１正弦波信号の値を前記第１正弦波信号の最大値として前記記憶部に記憶し、
前記第１余弦波信号のゼロ点検出時において、前記第１正弦波信号の値が０未満であるときの前記第１正弦波信号の値を前記第１正弦波信号の最小値として前記記憶部に記憶し、
前記第１正弦波信号のゼロ点検出時において、前記第１余弦波信号の値が０以上であるときの前記第１余弦波信号の値を前記第１余弦波信号の最大値として前記記憶部に記憶し、
前記第１正弦波信号のゼロ点検出時において、前記第１余弦波信号の値が０未満であるときの前記第１余弦波信号の値を前記第１余弦波信号の最小値として前記記憶部に記憶する
請求項２に記載の回転角検出装置。
【請求項４】
前記第１ゲイン補正部は、
前記第１余弦波信号のゼロ点検出時において、前記第１正弦波信号の値が０以上であって、前記第１余弦波信号の値が、前記第１余弦波信号の最大値の下限値以上上限値以下である場合に、当該第１正弦波信号の値を前記第１正弦波信号の最大値として前記記憶部に記憶し、
前記第１余弦波信号のゼロ点検出時において、前記第１正弦波信号の値が０未満であって、前記第１正弦波信号の値が、前記第１正弦波信号の最小値の下限値以上上限値以下である場合に、当該第１正弦波信号の値を前記第１正弦波信号の最小値として前記記憶部に記憶し、
前記第１正弦波信号のゼロ点検出時において、前記第１余弦波信号の値が０以上であって、前記第１余弦波信号の値が、前記第１余弦波信号の最大値の下限値以上上限値以下である場合に、当該第１余弦波信号の値を前記第１余弦波信号の最大値として前記記憶部に記憶し、
前記第１正弦波信号のゼロ点検出時において、前記第１余弦波信号の値が０未満であって、前記第１余弦波信号の値が、前記第１余弦波信号の最小値の下限値以上上限値以下である場合に、当該第１余弦波信号の値を前記第１余弦波信号の最小値として前記記憶部に記憶する
請求項２に記載の回転角検出装置。
【請求項５】
前記差分演算部は、
前記正相正弦波信号が、前記正相正弦波信号の下限閾値未満であるか、又は、前記正相正弦波信号の上限閾値よりも大きい場合に、前記正相正弦波信号の入力値異常と判定し、
前記逆相正弦波信号が、前記逆相正弦波信号の下限閾値未満であるか、又は、前記逆相正弦波信号の上限閾値よりも大きい場合に、前記逆相正弦波信号の入力値異常と判定し、
前記正相余弦波信号が、前記正相余弦波信号の下限閾値未満であるか、又は、前記正相余弦波信号の上限閾値よりも大きい場合に、前記正相余弦波信号の入力値異常と判定し、
前記逆相余弦波信号が、前記逆相余弦波信号の下限閾値未満であるか、又は、前記逆相余弦波信号の上限閾値よりも大きい場合に、前記逆相余弦波信号の入力値異常と判定する
請求項１から請求項４の何れか一項に記載の回転角検出装置。
【請求項６】
前記差分演算部は、
前記正相正弦波信号と前記逆相正弦波信号との加算値の半値である正弦波信号オフセット電圧が、前記正弦波信号オフセット電圧の下限閾値未満であるか、又は、前記正弦波信号オフセット電圧の上限閾値よりも大きい場合に、前記正弦波信号オフセット電圧のオフセット電圧値異常と判定し、
前記正相余弦波信号と前記逆相余弦波信号との加算値の半値である余弦波信号オフセット電圧が、前記余弦波信号オフセット電圧の下限閾値未満であるか、又は、前記余弦波信号オフセット電圧の上限閾値よりも大きい場合に、前記余弦波信号オフセット電圧のオフセット電圧値異常と判定する
請求項１から請求項５の何れか一項に記載の回転角検出装置。
【請求項７】
前記第１ゲイン補正部は、
前記第１余弦波信号のゼロ点検出時において、前記第１正弦波信号の値が０以上であるときの前記第１正弦波信号の値が、前記第１正弦波信号の最大値の下限値未満であるか、又は、前記第１正弦波信号の最大値の上限値より大きい場合に、前記第１正弦波信号の最大値異常と判定し、
前記第１余弦波信号のゼロ点検出時において、前記第１正弦波信号の値が０未満であるときの前記第１正弦波信号の値が、前記第１正弦波信号の最小値の下限値未満であるか、又は、前記第１正弦波信号の最小値の上限値より大きい場合に、前記第１正弦波信号の最小値異常と判定し、
前記第１正弦波信号のゼロ点検出時において、前記第１余弦波信号の値が０以上であるときの前記第１余弦波信号の値が、前記第１余弦波信号の最大値の下限値未満であるか、又は、前記第１余弦波信号の最大値の上限値より大きい場合に、前記第１余弦波信号の最大値異常と判定し、
前記第１正弦波信号のゼロ点検出時において、前記第１余弦波信号の値が０未満であるときの前記第１余弦波信号の値が、前記第１余弦波信号の最小値の下限値未満であるか、又は、前記第１余弦波信号の最小値の上限値より大きい場合に、前記第１余弦波信号の最小値異常と判定する
請求項１から請求項６の何れか一項に記載の回転角検出装置。
【請求項８】
前記第２ゲイン補正部は、
前記第３余弦波信号のゼロ点検出時において、前記第３正弦波信号の値が０以上であるとき、当該第３正弦波信号の値を前記第３正弦波信号の最大値として前記記憶部に記憶し、
前記第３余弦波信号のゼロ点検出時において、前記第３正弦波信号の値が０未満であるとき、当該第３正弦波信号の値を前記第３正弦波信号の最小値として前記記憶部に記憶し、
前記第３正弦波信号のゼロ点検出時において、前記第３余弦波信号の値が０以上であるとき、当該第３余弦波信号の値を前記第３余弦波信号の最大値として前記記憶部に記憶し、
前記第３正弦波信号のゼロ点検出時において、前記第３余弦波信号の値が０未満であるとき、当該第３余弦波信号の値を前記第３余弦波信号の最小値として前記記憶部に記憶する
請求項１から請求項７の何れか一項に記載の回転角検出装置。
【請求項９】
請求項１から請求項８の何れか一項に記載の回転角検出装置を備え、
前記回転角を用いて、前記モータを駆動制御する
モータ制御装置。
【請求項１０】
請求項９に記載のモータ制御装置を備え、
前記モータは、ステアリングのコラム軸又はラックに設けられ、前記ステアリングの操舵力をトルク制御する
電動パワーステアリング装置。
【請求項１１】
モータの位置検出信号として位置検出センサから出力される、正相正弦波信号と当該正相正弦波信号を位相反転した逆相正弦波信号とを含む差動正弦波信号、及び、正相余弦波信号と当該正相余弦波信号を位相反転した逆相余弦波信号とを含む差動余弦波信号に基づき、前記モータの位置を検出する回転角検出方法であって、
前記正相正弦波信号と前記逆相正弦波信号との差分を第１正弦波信号とするステップと、
前記正相余弦波信号と前記逆相余弦波信号との差分を第１余弦波信号とするステップと、
前記モータの回転数が、前記モータの回転数の上限閾値以下であるときの前記第１正弦波信号の最大値又は最小値に基づき、前記第１正弦波信号のゲインを補正して第２正弦波信号とするステップと、
前記モータの回転数が、前記モータの回転数の上限閾値以下であるときの前記第１余弦波信号の最大値又は最小値に基づき、前記第１余弦波信号のゲインを補正して第２余弦波信号とするステップと、
前記第２余弦波信号と前記第２正弦波信号とを加算して第３正弦波信号とするステップと、
前記第２余弦波信号から前記第２正弦波信号を減算して第３余弦波信号とするステップと、
前記第３正弦波信号の最大値又は最小値に基づき、前記第３正弦波信号のゲインを補正して第４正弦波信号とするステップと、
前記第３余弦波信号の最大値又は最小値に基づき、前記第３余弦波信号のゲインを補正して第４余弦波信号とするステップと、
前記第４正弦波信号及び前記第４余弦波信号に基づき、前記モータの回転角を算出するステップと、
を有する
回転角検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回転角検出装置、モータ制御装置、電動パワーステアリング装置、及び回転角検出方法に関する。
【背景技術】
【０００２】
乗用車やトラック等の車両の操舵力を軽減するため、モータによって操舵を補助する、いわゆる電動パワーステアリング（ＥＰＳ：Electric  Power  Steering）装置がある。電動パワーステアリング装置は、車両のステアリング機構にモータが発生する補助操舵力を付与する操舵補助制御機能を有している。このような電動パワーステアリング装置において、ブラシレスモータの電流制御を行うためには、センサを用いてモータの位置（回転角）を高精度に検出する必要がある。例えば、外周面にＮ極とＳ極が交互に複数配置された着磁ローターの回転軸と平行な方向に所定間隔離れて配置され、直列接続された２つの磁気抵抗素子の接続点の電圧（差動出力電圧）を用いて位置検出を行う構成が開示されている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−８７１３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
磁気抵抗素子をセンサとして用いる場合、センサの出力には直流のオフセット成分が重畳する。また、回転磁石の取り付け誤差やセンサの製造誤差によって、センサのゲイン誤差や位相ズレが生じる場合がある。モータにセンサが組み込まれた状態で出荷前にオフセット電圧やゲイン誤差、位相ズレ等を補正するようにキャリブレーションを行うことが一般的である。しかしながら、センサの出力に生じるオフセット電圧やゲイン誤差は、温度ドリフトによって変化し、温度上昇に伴って増加する。このため、出荷前のキャリブレーション実施時とは異なる温度条件下では検出精度が低下する可能性がある。また、経時変化によってこれらの誤差が大きくなり検出精度が低下する場合がある。特に、磁気抵抗素子は、高感度の半導体素子であるため、このような温度特性や経年変化による出力変動が無視できない。
【０００５】
本発明は、上記の課題に鑑みてなされたものであって、高い検出精度を維持することができる回転角検出装置、モータ制御装置、電動パワーステアリング装置、及び回転角検出方法を提供すること、を目的としている。
【課題を解決するための手段】
【０００６】
上記の目的を達成するため、本発明の一態様に係る回転角検出装置は、正相正弦波信号と当該正相正弦波信号を位相反転した逆相正弦波信号とを含む差動正弦波信号、及び、正相余弦波信号と当該正相余弦波信号を位相反転した逆相余弦波信号とを含む差動余弦波信号を、モータの位置検出信号として出力する位置検出センサと、前記位置検出信号に基づき、前記モータの位置を検出する位置検出部と、記憶部と、を備え、前記位置検出部は、前記正相正弦波信号と前記逆相正弦波信号との差分を第１正弦波信号として出力し、前記正相余弦波信号と前記逆相余弦波信号との差分を第１余弦波信号として出力する差分演算部と、前記記憶部に記憶された前記第１正弦波信号の最大値又は最小値に基づき、前記第１正弦波信号のゲインを補正した第２正弦波信号を出力すると共に、前記記憶部に記憶された前記第１余弦波信号の最大値又は最小値に基づき、前記第１余弦波信号のゲインを補正した第２余弦波信号を出力する第１ゲイン補正部と、前記第２余弦波信号と前記第２正弦波信号とを加算して第３正弦波信号を生成し、前記記憶部に記憶された前記第３正弦波信号の最大値又は最小値に基づき、前記第３正弦波信号のゲインを補正した第４正弦波信号を出力すると共に、前記第２余弦波信号から前記第２正弦波信号を減算して第３余弦波信号を生成し、前記記憶部に記憶された前記第３余弦波信号の最大値又は最小値に基づき、前記第３余弦波信号のゲインを補正した第４余弦波信号を出力する第２ゲイン補正部と、前記第４正弦波信号及び前記第４余弦波信号に基づき、前記モータの回転角を算出すると共に、前記モータの回転角に基づき、前記モータの回転数を算出する角度算出部と、を備え、前記第１ゲイン補正部は、少なくとも前記モータの回転数に応じて、前記第１正弦波信号の最大値及び最小値、並びに、前記第１余弦波信号の最大値及び最小値を更新する。
【０００７】
上記構成によれば、リアルタイムで検出された位置検出信号に基づき、回転角検出装置のキャリブレーションを実施することができる。これにより、温度ドリフトや経時変化によって検出精度が低下することを抑制することができ、高い検出精度を維持することができる。
【０００８】
回転角検出装置の望ましい態様として、前記第１ゲイン補正部は、前記モータの回転数が、前記モータの回転数の上限閾値以下である場合に、前記記憶部に記憶された前記第１正弦波信号の最大値及び最小値、並びに、前記第１余弦波信号の最大値及び最小値を更新することが好ましい。
【０００９】
これにより、モータの回転数が上限閾値以下である場合に、第１正弦波信号及び第１余弦波信号のゲインを補正して第２正弦波信号及び第２余弦波信号を求める際に用いる第１正弦波信号の最大値及び最小値、並びに、第１余弦波信号の最大値及び最小値が更新される。
【００１０】
回転角検出装置の望ましい態様として、前記第１ゲイン補正部は、前記第１余弦波信号のゼロ点検出時において、前記第１正弦波信号の値が０以上であるときの前記第１正弦波信号の値を前記第１正弦波信号の最大値として前記記憶部に記憶し、前記第１余弦波信号のゼロ点検出時において、前記第１正弦波信号の値が０未満であるときの前記第１正弦波信号の値を前記第１正弦波信号の最小値として前記記憶部に記憶し、前記第１正弦波信号のゼロ点検出時において、前記第１余弦波信号の値が０以上であるときの前記第１余弦波信号の値を前記第１余弦波信号の最大値として前記記憶部に記憶し、前記第１正弦波信号のゼロ点検出時において、前記第１余弦波信号の値が０未満であるときの前記第１余弦波信号の値を前記第１余弦波信号の最小値として前記記憶部に記憶する。
【００１１】
これにより、第１正弦波信号の最大値又は最小値、もしくは、第１余弦波信号の最大値又は最小値を検出する際のモータの回転数を上限閾値以下とすることで、より検出精度を高めることができる。
【００１２】
回転角検出装置の望ましい態様として、前記第１余弦波信号のゼロ点検出時において、前記第１正弦波信号の値が０以上であって、前記第１余弦波信号の値が、前記第１余弦波信号の最大値の下限値以上上限値以下である場合に、当該第１正弦波信号の値を前記第１正弦波信号の最大値として前記記憶部に記憶し、前記第１余弦波信号のゼロ点検出時において、前記第１正弦波信号の値が０未満であって、前記第１正弦波信号の値が、前記第１正弦波信号の最小値の下限値以上上限値以下である場合に、当該第１正弦波信号の値を前記第１正弦波信号の最小値として前記記憶部に記憶し、前記第１正弦波信号のゼロ点検出時において、前記第１余弦波信号の値が０以上であって、前記第１余弦波信号の値が、前記第１余弦波信号の最大値の下限値以上上限値以下である場合に、当該第１余弦波信号の値を前記第１余弦波信号の最大値として前記記憶部に記憶し、前記第１正弦波信号のゼロ点検出時において、前記第１余弦波信号の値が０未満であって、前記第１余弦波信号の値が、前記第１余弦波信号の最小値の下限値以上上限値以下である場合に、当該第１余弦波信号の値を前記第１余弦波信号の最小値として前記記憶部に記憶する。
【００１３】
これにより、モータの回転数を上限閾値以下とすることに加え、第１正弦波信号の最大値及び最小値、又は、第１余弦波信号の最大値及び最小値の上限値及び下限値を設けることで、異常値の学習を防止することができる。
【００１４】
回転角検出装置の望ましい態様として、前記差分演算部は、前記正相正弦波信号が、前記正相正弦波信号の下限閾値未満であるか、又は、前記正相正弦波信号の上限閾値よりも大きい場合に、前記正相正弦波信号の入力値異常と判定し、前記逆相正弦波信号が、前記逆相正弦波信号の下限閾値未満であるか、又は、前記逆相正弦波信号の上限閾値よりも大きい場合に、前記逆相正弦波信号の入力値異常と判定し、前記正相余弦波信号が、前記正相余弦波信号の下限閾値未満であるか、又は、前記正相余弦波信号の上限閾値よりも大きい場合に、前記正相余弦波信号の入力値異常と判定し、前記逆相余弦波信号が、前記逆相余弦波信号の下限閾値未満であるか、又は、前記逆相余弦波信号の上限閾値よりも大きい場合に、前記逆相余弦波信号の入力値異常と判定することが好ましい。
【００１５】
これにより、正相正弦波信号の入力値異常、逆相正弦波信号の入力値異常、正相余弦波信号の入力値異常、及び逆相余弦波信号の入力値異常を検出することができる。
【００１６】
回転角検出装置の望ましい態様として、前記差分演算部は、前記正弦波信号オフセット電圧が、前記正弦波信号オフセット電圧の下限閾値未満であるか、又は、前記正弦波信号オフセット電圧の上限閾値よりも大きい場合に、前記正弦波信号オフセット電圧のオフセット電圧値異常と判定し、前記余弦波信号オフセット電圧が、前記余弦波信号オフセット電圧の下限閾値未満であるか、又は、前記余弦波信号オフセット電圧の上限閾値よりも大きい場合に、前記余弦波信号オフセット電圧のオフセット電圧値異常と判定することが好ましい。
【００１７】
これにより、正弦波信号オフセット電圧のオフセット電圧値異常、及び余弦波信号オフセット電圧のオフセット電圧値異常を検出することができる。
【００１８】
回転角検出装置の望ましい態様として、前記第１ゲイン補正部は、前記第１余弦波信号のゼロ点検出時において、前記第１正弦波信号の値が０以上であるときの前記第１正弦波信号の値が、前記第１正弦波信号の最大値の下限値未満であるか、又は、前記第１正弦波信号の最大値の上限値より大きい場合に、前記第１正弦波信号の最大値異常と判定し、前記第１余弦波信号のゼロ点検出時において、前記第１正弦波信号の値が０未満であるときの前記第１正弦波信号の値が、前記第１正弦波信号の最小値の下限値未満であるか、又は、前記第１正弦波信号の最小値の上限値より大きい場合に、前記第１正弦波信号の最小値異常と判定し、前記第１正弦波信号のゼロ点検出時において、前記第１余弦波信号の値が０以上であるときの前記第１余弦波信号の値が、前記第１余弦波信号の最大値の下限値未満であるか、又は、前記第１余弦波信号の最大値の上限値より大きい場合に、前記第１余弦波信号の最大値異常と判定し、前記第１正弦波信号のゼロ点検出時において、前記第１余弦波信号の値が０未満であるときの前記第１余弦波信号の値が、前記第１余弦波信号の最小値の下限値未満であるか、又は、前記第１余弦波信号の最小値の上限値より大きい場合に、前記第１余弦波信号の最小値異常と判定することが好ましい。
【００１９】
これにより、第１正弦波信号の最大値異常、第１正弦波信号の最小値異常、第１余弦波信号の最大値異常、及び第１余弦波信号の最小値異常を検出することができる。
【００２０】
回転角検出装置の望ましい態様として、前記第２ゲイン補正部は、前記第３余弦波信号のゼロ点検出時において、前記第３正弦波信号の値が０以上であるとき、当該第３正弦波信号の値を前記第３正弦波信号の最大値として前記記憶部に記憶し、前記第３余弦波信号のゼロ点検出時において、前記第３正弦波信号の値が０未満であるとき、当該第３正弦波信号の値を前記第３正弦波信号の最小値として前記記憶部に記憶し、前記第３正弦波信号のゼロ点検出時において、前記第３余弦波信号の値が０以上であるとき、当該第３余弦波信号の値を前記第３余弦波信号の最大値として前記記憶部に記憶し、前記第３正弦波信号のゼロ点検出時において、前記第３余弦波信号の値が０未満であるとき、当該第３余弦波信号の値を前記第３余弦波信号の最小値として前記記憶部に記憶することが好ましい。
【００２１】
これにより、第４正弦波信号を得るための第３正弦波信号の最大値又は最小値をリアルタイムで取得することができる。また、第４余弦波信号を得るための第３余弦波信号の最大値又は最小値をリアルタイムで取得することができる。
【００２２】
上記の目的を達成するため、本発明の一態様に係るモータ制御装置は、上記回転角検出装置を備え、前記回転角を用いて、前記モータを駆動制御する。
【００２３】
これにより、モータを高精度に駆動制御することができる。
【００２４】
上記の目的を達成するため、本発明の一態様に係る電動パワーステアリング装置は、上記モータ制御装置を備え、前記モータは、ステアリングのコラム軸又はラックに設けられ、前記ステアリングの操舵力をトルク制御する。
【００２５】
これにより、電動パワーステアリング装置における操舵補助制御の精度を高めることができる。
【００２６】
これにより、電動パワーステアリング装置は、回転角検出装置の故障判定結果に応じた処理が可能となる。
【００２７】
上記の目的を達成するため、本発明の一態様に係る回転角検出方法は、モータの位置検出信号として位置検出センサから出力される、正相正弦波信号と当該正相正弦波信号を位相反転した逆相正弦波信号とを含む差動正弦波信号、及び、正相余弦波信号と当該正相余弦波信号を位相反転した逆相余弦波信号とを含む差動余弦波信号に基づき、前記モータの位置を検出する回転角検出方法であって、前記正相正弦波信号と前記逆相正弦波信号との差分を第１正弦波信号とするステップと、前記正相余弦波信号と前記逆相余弦波信号との差分を第１余弦波信号とするステップと、前記モータの回転数が、前記モータの回転数の上限閾値以下であるときの前記第１正弦波信号の最大値又は最小値に基づき、前記第１正弦波信号のゲインを補正して第２正弦波信号とするステップと、前記モータの回転数が、前記モータの回転数の上限閾値以下であるときの前記第１余弦波信号の最大値又は最小値に基づき、前記第１余弦波信号のゲインを補正して第２余弦波信号とするステップと、前記第２余弦波信号と前記第２正弦波信号とを加算して第３正弦波信号とするステップと、前記第２余弦波信号から前記第２正弦波信号を減算して第３余弦波信号とするステップと、前記第３正弦波信号の最大値又は最小値に基づき、前記第３正弦波信号のゲインを補正して第４正弦波信号とするステップと、前記第３余弦波信号の最大値又は最小値に基づき、前記第３余弦波信号のゲインを補正して第４余弦波信号とするステップと、前記第４正弦波信号及び前記第４余弦波信号に基づき、前記モータの回転角を算出するステップと、を有する。
【００２８】
これにより、リアルタイムで検出された位置検出信号に基づき、回転角検出装置のキャリブレーションを実施することができる。これにより、温度ドリフトや経時変化によって検出精度が低下することを抑制することができ、高い検出精度を維持することができる。また、第１正弦波信号及び第１余弦波信号のゲインを補正して第２正弦波信号及び第２余弦波信号を求める際に用いる第１正弦波信号の最大値及び最小値、又は、第１余弦波信号の最大値又は最小値を検出する際のモータの回転数を上限閾値以下とすることで、より検出精度を高めることができる。
【発明の効果】
【００２９】
本発明によれば、高い検出精度を維持することができる回転角検出装置、モータ制御装置、電動パワーステアリング装置、及び回転角検出方法を提供することができる。
【図面の簡単な説明】
【００３０】
【図１】図１は、実施形態に係る電動パワーステアリング装置の構成を示す図である。
【図２】図２は、実施形態に係る電動パワーステアリング装置を制御するコントロールユニットのハードウェア構成を示す模式図である。
【図３】図３は、実施形態に係る電動パワーステアリング装置を制御するコントロールユニットの機能的な構成を示す機能ブロック図である。
【図４】図４は、実施形態における位置検出センサの概略図である。
【図５】図５は、位置検出信号及び位相角の関係を示す図である。
【図６】図６は、３相ブラシレスモータにおいて、位置検出部によって検出された電気角を用いて、３相ブラシレスモータのＵ相電流、Ｖ相電流、及びＷ相電流を制御しているときのモータ制御電流と電気角との関係を示す図である。
【図７】図７は、実施形態に係る回転角検出装置の概略ブロック構成の一例を示す図である。
【図８】図８は、差動演算部の等価ブロックの一例を示す図である。
【図９】図９は、差動演算部の図８に示す等価ブロックにおける差分演算概念を説明する第１図である。
【図１０】図１０は、差動演算部の図８に示す等価ブロックにおける差分演算概念を説明する第２図である。
【図１１】図１１は、差動演算部の図８に示す等価ブロックにおける差分演算概念を説明する第３図である。
【図１２】図１２は、差動演算部の図８に示す等価ブロックにおける差分演算概念を説明する第４図である。
【図１３】図１３は、第１ゲイン補正部の等価ブロックの一例を示す図である。
【図１４】図１４は、第１ゲイン補正部の図１３に示す等価ブロックにおける第１正弦波信号及び第１余弦波信号の最大値又は最小値の検出概念を説明する図である。
【図１５】図１５は、第２正弦波信号及び第２余弦波信号に位相ずれが生じていない場合の位相変換処理後のベクトル図である。
【図１６】図１６は、第２正弦波信号及び第２余弦波信号にαの位相ずれが生じている場合の位相変換処理後のベクトル図である。
【図１７】図１７は、第２ゲイン補正部の等価ブロックの一例を示す図である。
【図１８】図１８は、第２ゲイン補正部の図１７に示す等価ブロックにおける第３正弦波信号及び第３余弦波信号の最大値又は最小値の検出概念を説明する図である。
【図１９】図１９は、実施形態に係る回転角検出装置における回転角検出処理手順の一例を示すフローチャートである。
【図２０】図２０は、ＥＥＰＲＯＭに記憶される各情報の一例を示す図である。
【図２１】図２１は、入力異常判定処理の一例を示すフローチャートである。
【図２２】図２２は、第１正弦波信号及び第１余弦波信号の最大値検出処理及び最小値検出処理の一例を示すフローチャートである。
【図２３】図２３は、第３正弦波信号及び第３余弦波信号の最大値検出処理及び最小値検出処理の一例を示すフローチャートである。
【図２４】図２４は、位置検出センサのみを２つ設けた構成例を示す図である。
【図２５】図２５は、モータ、位置検出センサ、及び位置検出部をそれぞれ２つ設けた構成例を示す図である。
【図２６】図２６は、実施形態に係る回転角検出装置の故障判定処理手順の一例を示すフローチャートである。
【図２７】図２７は、異常検出処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００３１】
以下、発明を実施するための形態（以下、実施形態という）につき図面を参照しつつ詳細に説明する。なお、下記の実施形態により本発明が限定されるものではない。また、下記実施形態における構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。さらに、下記実施形態で開示した構成要素は適宜組み合わせることが可能である。
【００３２】
図１は、実施形態に係る電動パワーステアリング装置の構成を示す図である。電動パワーステアリング装置１００は、車両のステアリング機構に補助操舵力を付与するモータ２０を有し、ステアリング機構に対する操舵トルクと車速とを少なくとも用いて演算した操舵補助指令値に基づき、モータ２０を駆動制御する。
【００３３】
このように、電動パワーステアリング装置１００は、車両に搭載されて、車両の運転者によるハンドルホイール１（以下、「ステアリング」ともいう）の操作を補助するものである。ハンドルホイール１のコラム軸２は、減速ギヤ３、ユニバーサルジョイント４ａ、４ｂ、ラックアンドピニオン機構５を介して、操舵輪のタイロッド６に連結されている。コラム軸２には、ハンドルホイール１の操舵トルクＴを検出するトルクセンサ１０が設けられている。また、コラム軸２には減速ギヤ３が取り付けられている。減速ギヤ３は、モータ２０の発生するトルクを増加させてコラム軸２へ伝達する。このような構造によって、モータ２０が発生するトルクにより、ハンドルホイール１の操舵力が補助される。
【００３４】
本実施形態において、電動パワーステアリング装置１００は、コラム軸２にモータ２０のトルクを伝達するコラムアシスト型の装置である。
【００３５】
モータ２０は、例えば、ブラシレスモータである。電動パワーステアリング装置１００を制御するＥＣＵ（Electronic  Control  Unit、以下コントロールユニットという）３０は、自身に内蔵された電源リレー１３を介してバッテリ１４から電力の供給を受けるとともに、イグニッションスイッチ１１から送信されたイグニッション信号を受信する。また、コントロールユニット３０は、トルクセンサ１０で検出された操舵トルクＴと車速センサ１２で検出された車両速度（車速）Ｖとに基づいて、モータ２０の電流指令値を演算する。コントロールユニット３０は、モータ２０に供給される電流の値（電流検出値）と電流指令値とに基づいて、モータ２０の電流検出値が電流指令値に追従するようにモータ２０を駆動制御する。このように、コントロールユニット３０は、電動パワーステアリング装置１００を制御する装置（電動パワーステアリング装置の制御装置）である。
【００３６】
図２は、実施形態に係る電動パワーステアリング装置を制御するコントロールユニットのハードウェア構成を示す模式図である。コントロールユニット３０は、図２に示すように、電源リレー１３と、制御用コンピュータ（ＭＣＵ）１１０と、モータ駆動回路１５と、モータ電流検出回路１６と、位置検出部１７等とを備えている。電動パワーステアリング装置１００の制御用コンピュータ１１０は、ＣＰＵ（Central  Processing  Unit）１０１、第１記憶装置としてのＲＡＭ（Random  Access  Memory）１０２、第２記憶装置としてのＲＯＭ（Read  Only  Memory）１０３、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  ROM）１０４、インターフェース（Ｉ／Ｆ）１０５、Ａ／Ｄ（Analog/Digital）変換器１０６、ＰＷＭ（Pulse  Width  Modulation）コントローラ１０７等を備え、これらがバス１０８に接続されている。ＣＰＵ１０１は処理装置に相当し、ＲＯＭ１０３に記憶された電動パワーステアリング装置１００の制御用コンピュータプログラム（以下、制御プログラムという）を実行して、電動パワーステアリング装置１００を制御する。
【００３７】
ＲＯＭ１０３は、制御プログラム及び電動パワーステアリング装置１００の制御に用いるデータを記憶する。また、ＲＡＭ１０２は、制御プログラムを動作させるためのワークメモリとして使用される。ＥＥＰＲＯＭ１０４は、制御プログラムが入出力する制御データ等を記憶する。制御データは、コントロールユニット３０に電源が投入された後にＲＡＭ１０２に展開された制御プログラム上で使用され、所定のタイミングでＥＥＰＲＯＭ１０４に上書きされる。
【００３８】
ＲＯＭ１０３、ＲＡＭ１０２及びＥＥＰＲＯＭ１０４等は、情報を記憶する記憶装置であって、ＣＰＵ１０１が直接アクセスできる記憶装置（一次記憶装置）である。
【００３９】
本実施形態において、ＥＥＰＲＯＭ１０４は、後述する回転角検出処理における各種データの初期値を記憶する第１記憶部として機能する。
【００４０】
また、本実施形態において、ＲＡＭ１０２は、後述する回転角検出処理における各種データの更新値を記憶する第２記憶部として機能する。
【００４１】
Ａ／Ｄ変換器１０６は、コントロールユニット３０への各入力値をディジタル信号に変換する。インターフェース１０５は、ＣＡＮ（Controller  Area  Network）等の車載ネットワークに接続されている。インターフェース１０５は、車速センサ１２からの車速Ｖの信号（車速パルス）を受け付けるためのものである。
【００４２】
ＰＷＭコントローラ１０７は、モータ２０に対する電流指令値に基づいてＵＶＷ各相のＰＷＭ制御信号を出力する。モータ駆動回路１５は、インバータ回路等により構成され、ＰＷＭコントローラ１０７から出力された信号に基づいてモータ２０を駆動する。モータ電流検出回路１６は、モータ２０に供給される電流Ｉｍを検出してＡ／Ｄ変換器１０６に出力する。
【００４３】
位置検出部１７は、位置検出センサ２５から出力される位置検出信号を読み取り、モータ２０の回転角θ１又は電気角θ２を出力する。本実施形態では、位置検出部１７において、位置検出センサ２５から出力される位置検出信号を補正し、補正後の信号に基づき、回転角検出処理を行う。なお、位置検出部１７は、回路で構成される態様であっても良いし、図２に示す制御用コンピュータ１１０、より具体的にはＣＰＵ１０１によって実現される態様であっても良い。位置検出センサ２５及び位置検出部１７における位置検出信号の補正手法の詳細については後述する。
【００４４】
図３は、実施形態に係る電動パワーステアリング装置を制御するコントロールユニットの機能的な構成を示す機能ブロック図である。図３を用いて、電動パワーステアリング装置１００の制御を説明する。図３に示すように、コントロールユニット３０は、アシスト機能部３１を有する。
【００４５】
アシスト機能部３１は、電流指令値算出部３１ａ、電流制御部３１ｂを有する。電流指令値算出部３１ａは、操舵トルクＴ及び車速Ｖに対応した電流指令値Ｉを算出する。電流制御部３１ｂは、位置検出部１７から出力されるモータ２０の電気角θ２に基づき、電流指令値Ｉと電流Ｉｍとの偏差が０に近づくように、比例制御と微分制御と積分制御とのうち少なくとも一つを実行し、電流指令値Ｉに近づくように制御された電流Ｉｍが生成されるように、モータ駆動回路１５のゲート駆動信号のデューティ比Ｄを演算する。モータ駆動回路１５は、電流制御部３１ｂが演算したデューティ比ＤにしたがってＰＷＭ制御された電流をモータ２０に出力する。モータ電流検出回路１６は、モータ２０に流れる電流Ｉｍを検出する。
【００４６】
図３に示すアシスト機能部３１は、図２に示す制御用コンピュータ１１０、より具体的にはＣＰＵ１０１によって実現される。位置検出部１７については後述する。
【００４７】
図４は、実施形態における位置検出センサの概略図である。本実施形態において、位置検出センサ２５は、図４に示すように、モータシャフト（回転軸）２０ａの端部に設けられたＮ極及びＳ極からなる１極の回転磁石２５１と、この回転磁石２５１から軸方向（モータシャフト（回転軸）２０ａの軸心Ｘ方向）に所定間隔の空隙を介して配置されたＭＲセンサ２５２と、を備えている。
【００４８】
ＭＲセンサ２５２は、ＭＲ（Ｍａｇｎｅｔｏ  Ｒｅｓｉｓｔａｎｃｅ）素子（磁気抵抗素子）を用いて構成される。ＭＲセンサ２５２としては、トンネル磁気抵抗効果（Ｔｕｎｎｅｌ  Ｍａｇｎｅｔｏ  Ｒｅｓｉｓｔａｎｃｅ  Ｅｆｆｅｃｔ）を利用したＴＭＲセンサが例示される。ＭＲセンサ２５２は、ＴＭＲセンサの他、ＡＭＲ（Ａｎｉｓｏｔｒｏｐｉｃ  Ｍａｇｎｅｔｏ  Ｒｅｓｉｓｔｉｖｅ）センサやＧＭＲ（Ｇｉａｎｔ  Ｍａｇｎｅｔｏｒｅｓｉｓｔａｎｃｅ  Ｅｆｆｅｃｔ）センサであっても良い。ＭＲセンサ２５２の種類により本開示が限定されるものではない。
【００４９】
ＭＲセンサ２５２は、回転磁石２５１がモータシャフト（回転軸）２０ａと共にモータシャフト（回転軸）２０ａの軸心Ｘを中心として回転することで生じる磁場の変化に応じた位置検出信号を出力する。
【００５０】
本実施形態において、ＭＲセンサ２５２は、位置検出信号として、アナログ信号である差動正弦波信号及び差動余弦波信号を出力する。差動正弦波信号は、正相正弦波信号Ｓｉｎθ１＋と、この正相正弦波信号Ｓｉｎθ１＋を位相反転した逆相正弦波信号Ｓｉｎθ１−とを含む。差動余弦波信号は、正相余弦波信号Ｃｏｓθ１＋と、この正相余弦波信号Ｃｏｓθ１＋を位相反転した逆相余弦波信号Ｃｏｓθ１−とを含む。
【００５１】
図５は、位置検出信号及び位相角の関係を示す図である。図５に示す（ａ）は、正相正弦波信号Ｓｉｎθ１＋の理想的な波形を示し、図５に示す（ｂ）は、逆相正弦波信号Ｓｉｎθ１−の理想的な波形を示している。また、図５に示す（ｃ）は、正相余弦波信号Ｃｏｓθ１＋の理想的な波形を示し、図５に示す（ｄ）は、逆相余弦波信号Ｃｏｓθ１−の理想的な波形を示している。また、図５に示す（ｅ）は、モータ２０の回転角（機械角）θ１を示している。
【００５２】
図５に示すように、本実施形態では、回転磁石２５１の磁極数が１であるので、モータ２０の回転角（機械角）θ１の１周期Ｔｍと、ＭＲセンサ２５２の電気角の１周期Ｔｅとが一致する。すなわち、図４に示すＭＲセンサ２５２は、モータ２０の回転角（機械角）θ１の１周期Ｔｍにおいて、ＭＲセンサ２５２の電気角の１周期Ｔｅを検出する。なお、位置検出センサ２５は、差動正弦波信号及び差動余弦波信号を出力可能な構成であれば、上述した構成に限るものではなく、例えば、モータ２０の回転角（機械角）θ１の１周期Ｔｍに対し、電気角で複数周期分の差動正弦波信号及び差動余弦波信号を出力可能な構成であっても良い。
【００５３】
図６は、３相ブラシレスモータにおいて、位置検出部によって検出された電気角を用いて、３相ブラシレスモータのＵ相電流、Ｖ相電流、及びＷ相電流を制御しているときのモータ制御電流と電気角との関係を示す図である。
【００５４】
図６に示すように、３相ブラシレスモータのＵ相電流、Ｖ相電流、及びＷ相電流は、互いに１２０度位相のずれた波形となる。
【００５５】
アシスト機能部３１の電流制御部３１ｂは、位置検出部１７によって検出されたモータ２０の電気角を用いて、モータ２０の電流制御を行う。図６に示す例では、電気角の０［ｄｅｇ］を電流制御開始位置とし、Ｕ相の位相が０［ｄｅｇ］となるように制御する例を示している。
【００５６】
モータ２０の電流制御では、モータ２０の磁極対毎に、電気角が必要となる。モータ２０の磁極対数が４である場合、位置検出部１７は、モータ２０の回転角を、モータ２０の磁極対数に対応する電気角に分割して、アシスト機能部３１の電流制御部３１ｂに出力する。
【００５７】
図７は、実施形態に係る回転角検出装置の概略ブロック構成の一例を示す図である。図７に示すように、実施形態に係る回転角検出装置２００は、位置検出センサ２５と、位置検出部１７とを含む。
【００５８】
図７に示すように、本実施形態において、位置検出部１７は、差分演算部１７１と、第１ゲイン補正部１７２と、第２ゲイン補正部１７３と、角度算出部１７４と、を備えている。
【００５９】
差分演算部１７１は、正弦波差分演算部１７１１と、余弦波差分演算部１７１２と、を備えている。
【００６０】
正弦波差分演算部１７１１は、正相正弦波信号Ｓｉｎθ１＋と逆相正弦波信号Ｓｉｎθ１−との差分を演算して、第１正弦波信号Ｓｉｎθ１ｆを出力する。また、正弦波差分演算部１７１１は、後述する正相正弦波信号入力値異常検知フラグＥＲＲ１−１、逆相正弦波信号入力値異常検知フラグＥＲＲ１−２、及び正弦波信号オフセット電圧値異常検知フラグＥＲＲ３−１をセット又はリセットする機能を有している。
【００６１】
余弦波差分演算部１７１２は、正相余弦波信号Ｃｏｓθ１＋と逆相余弦波信号Ｃｏｓθ１−との差分を演算して、第１余弦波信号Ｃｏｓθ１ｆを出力する。また、余弦波差分演算部１７１２は、後述する正相余弦波信号入力値異常検知フラグＥＲＲ２−１、逆相余弦波信号入力値異常検知フラグＥＲＲ２−２、及び余弦波信号オフセット電圧値異常検知フラグＥＲＲ３−２をセット又はリセットする機能を有している。
【００６２】
差分演算部１７１には、アナログ信号である差動正弦波信号及び差動余弦波信号がサンプリング処理されてＡ／Ｄ変換された離散値の差動正弦波信号及び差動余弦波信号が入力される。
【００６３】
図８は、差動演算部の等価ブロックの一例を示す図である。図９は、差動演算部の図８に示す等価ブロックにおける差分演算概念を説明する第１図である。図１０は、差動演算部の図８に示す等価ブロックにおける差分演算概念を説明する第２図である。図１１は、差動演算部の図８に示す等価ブロックにおける差分演算概念を説明する第３図である。図１２は、差動演算部の図８に示す等価ブロックにおける差分演算概念を説明する第４図である。
【００６４】
図９に示すように、差動正弦波信号である正相正弦波信号Ｓｉｎθ１＋及び逆相正弦波信号Ｓｉｎθ１−には、正弦波信号オフセット電圧ＤｉｆＳｉｎ１が重畳している。また、図１０に示すように、差動余弦波信号である正相余弦波信号Ｃｏｓθ１＋及び逆相余弦波信号Ｃｏｓθ１−には、余弦波信号オフセット電圧ＤｉｆＣｏｓ１が重畳している。
【００６５】
正弦波信号オフセット電圧ＤｉｆＳｉｎ１は、下記（１）式に示すように、正相正弦波信号Ｓｉｎθ１＋と逆相正弦波信号Ｓｉｎθ１−とを加算した値の半値で表される。
【００６６】
（ＤｉｆＳｉｎ１）＝（（Ｓｉｎθ１＋）＋（Ｓｉｎθ１−））／２・・・（１）
【００６７】
一方、正弦波信号オフセット電圧ＤｉｆＳｉｎ１を減算した正相正弦波信号Ｓｉｎθ１ｄ＋は、以下の（２）式で表せ、正弦波信号オフセット電圧ＤｉｆＳｉｎ１を減算した逆相正弦波信号Ｓｉｎθ１ｄ−は、以下の（３）式で表せる。
【００６８】
（Ｓｉｎθ１ｄ＋）＝（Ｓｉｎθ１＋）−ＤｉｆＳｉｎ１・・・（２）
【００６９】
（Ｓｉｎθ１ｄ−）＝（Ｓｉｎθ１−）−ＤｉｆＳｉｎ１・・・（３）
【００７０】
上記（１）式を（２）式及び（３）式に代入すると、以下の（４）式及び（５）式が得られる。
【００７１】
（Ｓｉｎθ１ｄ＋）＝（Ｓｉｎθ１＋）／２−（Ｓｉｎθ１−）／２・・・（４）
【００７２】
（Ｓｉｎθ１ｄ−）＝−（（Ｓｉｎθ１＋）／２−（Ｓｉｎθ１−）／２）・・・（５）
【００７３】
正相正弦波信号Ｓｉｎθ１ｄ＋を基準として、第１正弦波信号Ｓｉｎθ１ｆ＝（Ｓｉｎθ１ｄ＋）＝（−（Ｓｉｎθ１ｄ−））とし、上記（４）式から（５）式を減算すると、以下の（６）式が得られる。
【００７４】
（Ｓｉｎθ１ｆ）×２＝（Ｓｉｎθ１＋）−（Ｓｉｎθ１−）・・・（６）
【００７５】
また、余弦波信号オフセット電圧ＤｉｆＣｏｓ１は、下記（７）式に示すように、正相余弦波信号Ｃｏｓθ１＋と逆相余弦波信号Ｃｏｓθ１−とを加算した値の半値で表される。
【００７６】
（ＤｉｆＣｏｓ１）＝（（Ｃｏｓθ１＋）＋（Ｃｏｓθ１−））／２・・・（７）
【００７７】
一方、余弦波信号オフセット電圧ＤｉｆＣｏｓ１を減算した正相余弦波信号Ｃｏｓθ１ｄ＋は、以下の（８）式で表せ、余弦波信号オフセット電圧ＤｉｆＣｏｓ１を減算した逆相余弦波信号Ｃｏｓθ１ｄ−は、以下の（９）式で表せる。
【００７８】
（Ｃｏｓθ１ｄ＋）＝（Ｃｏｓθ１＋）−ＤｉｆＣｏｓ１・・・（８）
【００７９】
（Ｃｏｓθ１ｄ−）＝（Ｃｏｓθ１−）−ＤｉｆＣｏｓ１・・・（９）
【００８０】
上記（７）式を（８）式及び（９）式に代入すると、以下の（１０）式及び（１１）式が得られる。
【００８１】
（Ｃｏｓθ１ｄ＋）＝（Ｃｏｓθ１＋）／２−（Ｃｏｓθ１−）／２・・・（１０）
【００８２】
（Ｃｏｓθ１ｄ−）＝−（（Ｃｏｓθ１＋）／２−（Ｃｏｓθ１−）／２）・・・（１１）
【００８３】
正相余弦波信号Ｃｏｓθ１ｄ＋を基準として、第１余弦波信号Ｃｏｓθ１ｆ＝（Ｃｏｓθ１ｄ＋）＝（−（Ｃｏｓθ１ｄ−））とし、上記（１０）式から（１１）式を減算すると、以下の（１２）式が得られる。
【００８４】
（Ｃｏｓθ１ｆ）×２＝（Ｃｏｓθ１＋）−（Ｃｏｓθ１−）・・・（１２）
【００８５】
本実施形態では、差動正弦波信号及び差動余弦波信号をサンプリング処理する際に、差動正弦波信号である正相正弦波信号Ｓｉｎθ１＋及び逆相正弦波信号Ｓｉｎθ１−、差動余弦波信号である正相余弦波信号Ｃｏｓθ１＋及び逆相余弦波信号Ｃｏｓθ１−をそれぞれ２倍の分解能で取得する。これにより、下記（６’）式を用いて、正相正弦波信号Ｓｉｎθ１＋から逆相正弦波信号Ｓｉｎθ１−を減算することで、第１正弦波信号Ｓｉｎθ１ｆが得られる（図１１参照）。また、下記（１２’）式を用いて、正相余弦波信号Ｃｏｓθ１＋から逆相余弦波信号Ｃｏｓθ１−を減算することで、第１余弦波信号Ｃｏｓθ１ｆが得られる（図１２参照）。
【００８６】
Ｓｉｎθ１ｆ＝（Ｓｉｎθ１＋）−（Ｓｉｎθ１−）・・・（６’）
【００８７】
Ｃｏｓθ１ｆ＝（Ｃｏｓθ１＋）−（Ｃｏｓθ１−）・・・（１２’）
【００８８】
これにより、中点がゼロ電位、すなわち、オフセット電圧が除去された第１正弦波信号Ｓｉｎθ１ｆ及び第１余弦波信号Ｃｏｓθ１ｆが得られる。
【００８９】
また、正弦波差分演算部１７１１は、正相正弦波信号Ｓｉｎθ１＋の入力値異常を検出する。
【００９０】
具体的に、正弦波差分演算部１７１１は、例えば、正相正弦波信号Ｓｉｎθ１＋の値がアナログ値換算で下限閾値（例えば、０．３Ｖ）以上、且つ、上限閾値（例えば、４．７Ｖ）以下の範囲内であれば正常と判定し、正相正弦波信号Ｓｉｎθ１＋の値がアナログ値換算で下限閾値未満であるか、又は、上限閾値よりも大きい場合には、正相正弦波信号Ｓｉｎθ１＋の入力値異常と判定する。正弦波差分演算部１７１１は、正相正弦波信号Ｓｉｎθ１＋の入力値異常を検知した場合に、正相正弦波信号入力値異常検知フラグＥＲＲ１−１をセットする。
【００９１】
また、正弦波差分演算部１７１１は、逆相正弦波信号Ｓｉｎθ１−の入力値異常を検出する。
【００９２】
具体的に、正弦波差分演算部１７１１は、例えば、逆相正弦波信号Ｓｉｎθ１−の値がアナログ値換算で下限閾値（例えば、０．３Ｖ）以上、且つ、上限閾値（例えば、４．７Ｖ）以下の範囲内であれば正常と判定し、逆相正弦波信号Ｓｉｎθ１−の値がアナログ値換算で下限閾値未満であるか、又は、上限閾値よりも大きい場合には、逆相正弦波信号Ｓｉｎθ１−の入力値異常と判定する。正弦波差分演算部１７１１は、逆相正弦波信号Ｓｉｎθ１−の入力値異常を検知した場合に、逆相正弦波信号入力値異常検知フラグＥＲＲ１−２をセットする。
【００９３】
また、正弦波差分演算部１７１１は、上記（１）式によって算出される正弦波信号オフセット電圧ＤｉｆＳｉｎ１の異常を検出する。
【００９４】
具体的に、正弦波差分演算部１７１１は、例えば、正弦波信号オフセット電圧ＤｉｆＳｉｎ１の値がアナログ値換算で５Ｖの中点理論値２．５Ｖに対し、下限閾値（例えば、２．３Ｖ）以上、且つ、上限閾値（例えば、２．７Ｖ）以下の範囲内であれば正常と判定し、正弦波信号オフセット電圧ＤｉｆＳｉｎ１の値がアナログ値換算で下限閾値未満であるか、又は、上限閾値よりも大きい場合には、正弦波信号オフセット電圧ＤｉｆＳｉｎ１のオフセット電圧値異常と判定する。正弦波差分演算部１７１１は、正弦波信号オフセット電圧ＤｉｆＳｉｎ１のオフセット電圧値異常を検知した場合に、正弦波信号オフセット電圧値異常検知フラグＥＲＲ３−１をセットする。
【００９５】
また、余弦波差分演算部１７１２は、正相余弦波信号Ｃｏｓθ１＋の入力値異常を検出する。
【００９６】
具体的に、余弦波差分演算部１７１２は、例えば、正相余弦波信号Ｃｏｓθ１＋の値がアナログ値換算で下限閾値（例えば、０．３Ｖ）以上、且つ、上限閾値（例えば、４．７Ｖ）以下の範囲内であれば正常と判定し、正相余弦波信号Ｃｏｓθ１＋の値がアナログ値換算で下限閾値未満であるか、又は、上限閾値よりも大きい場合には、正相余弦波信号Ｃｏｓθ１＋の入力値異常と判定する。余弦波差分演算部１７１２は、正相余弦波信号Ｃｏｓθ１＋の入力値異常を検知した場合に、正相余弦波信号入力値異常検知フラグＥＲＲ２−１をセットする。
【００９７】
また、余弦波差分演算部１７１２は、逆相余弦波信号Ｃｏｓθ１−の入力値異常を検出する。
【００９８】
具体的に、余弦波差分演算部１７１２は、例えば、逆相余弦波信号Ｃｏｓθ１−の値がアナログ値換算で下限閾値（例えば、０．３Ｖ）以上、且つ、上限閾値（例えば、４．７Ｖ）以下の範囲内であれば正常と判定し、逆相余弦波信号Ｃｏｓθ１−の値がアナログ値換算で下限閾値未満であるか、又は、上限閾値よりも大きい場合には、逆相余弦波信号Ｃｏｓθ１−の入力値異常と判定する。余弦波差分演算部１７１２は、逆相余弦波信号Ｃｏｓθ１−の入力値異常を検知した場合に、逆相余弦波信号入力値異常検知フラグＥＲＲ２−２をセットする。
【００９９】
また、余弦波差分演算部１７１２は、上記（７）式によって算出される余弦波信号オフセット電圧ＤｉｆＣｏｓ１の異常を検出する。
【０１００】
具体的に、余弦波差分演算部１７１２は、例えば、余弦波信号オフセット電圧ＤｉｆＣｏｓ１の値がアナログ値換算で５Ｖの中点理論値２．５Ｖに対し、下限閾値（例えば、２．３Ｖ）以上、且つ、上限閾値（例えば、２．７Ｖ）以下の範囲内であれば正常と判定し、余弦波信号オフセット電圧ＤｉｆＣｏｓ１の値がアナログ値換算で下限閾値未満であるか、又は、上限閾値よりも大きい場合には、余弦波信号オフセット電圧ＤｉｆＣｏｓ１のオフセット電圧値異常と判定する。余弦波差分演算部１７１２は、余弦波信号オフセット電圧ＤｉｆＣｏｓ１のオフセット電圧値異常を検知した場合に、余弦波信号オフセット電圧値異常検知フラグＥＲＲ３−２をセットする。
【０１０１】
第１ゲイン補正部１７２は、第１正弦波ゲイン補正部１７２１と、第１余弦波ゲイン補正部１７２２と、回転数閾値判定部１７２３と、を備えている。
【０１０２】
第１正弦波ゲイン補正部１７２１は、第１正弦波信号Ｓｉｎθ１ｆのゲインを補正した第２正弦波信号Ｓｉｎθ１ｇを出力する。また、第１正弦波ゲイン補正部１７２１は、後述する正弦波信号最大値異常検知フラグＥＲＲ４−１及び正弦波信号最小値異常検知フラグＥＲＲ４−２をセット又はリセットする機能を有している。
【０１０３】
第１余弦波ゲイン補正部１７２２は、第１余弦波信号Ｃｏｓθ１ｆのゲインを補正した第２余弦波信号Ｃｏｓθ１ｇを出力する。また、第１余弦波ゲイン補正部１７２２は、後述する余弦波信号最大値異常検知フラグＥＲＲ５−１及び余弦波信号最小値異常検知フラグＥＲＲ５−２をセット又はリセットする機能を有している。
【０１０４】
回転数閾値判定部１７２３は、後述する角度算出部１７４の回転数演算部１７４４によって算出されたモータ２０の回転数ωより、第１正弦波信号Ｓｉｎθ１ｆの最大値及び最小値、並びに、第１余弦波信号Ｃｏｓθ１ｆの最大値及び最小値の更新許可条件を判定する。
【０１０５】
具体的に、第１ゲイン補正部１７２は、例えば、モータ２０の回転数ωが上限閾値（例えば、２００ｒｐｍ）以下であれば、第１正弦波信号Ｓｉｎθ１ｆの最大値及び最小値、並びに、第１余弦波信号Ｃｏｓθ１ｆの最大値及び最小値の更新を許可し、モータ２０の回転数ωが上限閾値よりも大きい場合には、第１正弦波信号Ｓｉｎθ１ｆの最大値及び最小値、並びに、第１余弦波信号Ｃｏｓθ１ｆの最大値及び最小値の更新を禁止する。
【０１０６】
図１３は、第１ゲイン補正部の等価ブロックの一例を示す図である。図１４は、第１ゲイン補正部の図１３に示す等価ブロックにおける第１正弦波信号及び第１余弦波信号の最大値又は最小値の検出概念を説明する図である。
【０１０７】
第１ゲイン補正部１７２は、第１余弦波信号Ｃｏｓθ１ｆがゼロ電位となる第１余弦波信号Ｃｏｓθ１ｆのゼロ点を検出する。
【０１０８】
第１正弦波ゲイン補正部１７２１は、第１余弦波信号Ｃｏｓθ１ｆのゼロ点検出時における第１正弦波信号Ｓｉｎθ１ｆの値が０以上（Ｓｉｎθ１ｆ≧０）であるとき、当該第１正弦波信号Ｓｉｎθ１ｆの値を第１正弦波信号Ｓｉｎθ１ｆの最大値ＭＡＸ（Ｓｉｎθ１ｆ）として検出し、第１余弦波信号Ｃｏｓθ１ｆのゼロ点検出時における第１正弦波信号Ｓｉｎθ１ｆの値が０未満（Ｓｉｎθ１ｆ＜０）であるとき、当該第１正弦波信号Ｓｉｎθ１ｆの値を第１正弦波信号Ｓｉｎθ１ｆの最小値ＭＩＮ（Ｓｉｎθ１ｆ）として検出する（図１４参照）。
【０１０９】
第１正弦波ゲイン補正部１７２１は、下記（１３）式及び（１４）式を用いて、第１正弦波信号Ｓｉｎθ１ｆのゲイン補正を行い、正弦波信号Ｓｉｎθ１ｇＵ及び正弦波信号Ｓｉｎθ１ｇＬを求める。
【０１１０】
Ｓｉｎθ１ｇＵ＝Ｓｉｎθ１ｆ×（１／（ＭＡＸ（Ｓｉｎθ１ｆ）））・・・（１３）
【０１１１】
Ｓｉｎθ１ｇＬ＝Ｓｉｎθ１ｆ×（（−１）／（ＭＩＮ（Ｓｉｎθ１ｆ）））・・・（１４）
【０１１２】
そして、第１正弦波ゲイン補正部１７２１は、第１正弦波信号Ｓｉｎθ１ｆの値が０以上であるとき、正弦波信号Ｓｉｎθ１ｇＵを第２正弦波信号Ｓｉｎθ１ｇとし、第１正弦波信号Ｓｉｎθ１ｆの値が０未満であるとき、正弦波信号Ｓｉｎθ１ｇＬを第２正弦波信号Ｓｉｎθ１ｇとする。
【０１１３】
すなわち、第１正弦波ゲイン補正部１７２１は、第１正弦波信号Ｓｉｎθ１ｆの値が０以上であるとき、下記の（１３’）式を用いて、第２正弦波信号Ｓｉｎθ１ｇを算出し、第１正弦波信号Ｓｉｎθ１ｆの値が０未満であるとき、下記の（１４’）式を用いて、第２正弦波信号Ｓｉｎθ１ｇを算出する。
【０１１４】
Ｓｉｎθ１ｇ＝Ｓｉｎθ１ｆ×（１／（ＭＡＸ（Ｓｉｎθ１ｆ）））・・・（１３’）
【０１１５】
Ｓｉｎθ１ｇ＝Ｓｉｎθ１ｆ×（（−１）／（ＭＩＮ（Ｓｉｎθ１ｆ）））・・・（１４’）
【０１１６】
これにより、第１正弦波信号Ｓｉｎθ１ｆのゲインが補正された第２正弦波信号Ｓｉｎθ１ｇが得られる。
【０１１７】
また、第１ゲイン補正部１７２は、第１正弦波信号Ｓｉｎθ１ｆがゼロ電位となる第１正弦波信号Ｓｉｎθ１ｆのゼロ点を検出する。
【０１１８】
第１余弦波ゲイン補正部１７２２は、第１正弦波信号Ｓｉｎθ１ｆのゼロ点検出時における第１余弦波信号Ｃｏｓθ１ｆの値が０以上（Ｃｏｓθ１ｆ≧０）であるとき、当該第１余弦波信号Ｃｏｓθ１ｆの値を第１余弦波信号Ｃｏｓθ１ｆの最大値ＭＡＸ（Ｃｏｓθ１ｆ）として検出し、第１正弦波信号Ｓｉｎθ１ｆのゼロ点検出時における第１余弦波信号Ｃｏｓθ１ｆの値が０未満（Ｃｏｓθ１ｆ＜０）であるとき、当該第１余弦波信号Ｃｏｓθ１ｆの値を第１余弦波信号Ｃｏｓθ１ｆの最小値ＭＩＮ（Ｃｏｓθ１ｆ）として検出する（図１４参照）。
【０１１９】
第１余弦波ゲイン補正部１７２２は、下記（１５）式及び（１６）式を用いて、第１余弦波信号Ｃｏｓθ１ｆのゲイン補正を行い、余弦波信号Ｃｏｓθ１ｇＵ及び余弦波信号Ｃｏｓθ１ｇＬを求める。
【０１２０】
Ｃｏｓθ１ｇＵ＝Ｃｏｓθ１ｆ×（１／（ＭＡＸ（Ｃｏｓθ１ｆ）））・・・（１５）
【０１２１】
Ｃｏｓθ１ｇＬ＝Ｃｏｓθ１ｆ×（（−１）／（ＭＩＮ（Ｃｏｓθ１ｆ）））・・・（１６）
【０１２２】
そして、第１余弦波ゲイン補正部１７２２は、第１余弦波信号Ｃｏｓθ１ｆの値が０以上であるとき、余弦波信号Ｃｏｓθ１ｇＵを第２余弦波信号Ｃｏｓθ１ｇとし、第１余弦波信号Ｃｏｓθ１ｆの値が０未満であるとき、余弦波信号Ｃｏｓθ１ｇＬを第２余弦波信号Ｃｏｓθ１ｇとする。
【０１２３】
すなわち、第１余弦波ゲイン補正部１７２２は、第１余弦波信号Ｃｏｓθ１ｆの値が０以上であるとき、下記の（１５’）式を用いて、第２余弦波信号Ｃｏｓθ１ｇを算出し、第１余弦波信号Ｃｏｓθ１ｆの値が０未満であるとき、下記の（１６’）式を用いて、第２余弦波信号Ｃｏｓθ１ｇを算出する。
【０１２４】
Ｃｏｓθ１ｇ＝Ｃｏｓθ１ｆ×（１／（ＭＡＸ（Ｃｏｓθ１ｆ）））・・・（１５’）
【０１２５】
Ｃｏｓθ１ｇ＝Ｃｏｓθ１ｆ×（（−１）／（ＭＩＮ（Ｃｏｓθ１ｆ）））・・・（１６’）
【０１２６】
これにより、第１余弦波信号Ｃｏｓθ１ｆのゲインが補正された第２余弦波信号Ｃｏｓθ１ｇが得られる。
【０１２７】
また、第１正弦波ゲイン補正部１７２１は、第１余弦波信号Ｃｏｓθ１ｆのゼロ点検出時における第１正弦波信号Ｓｉｎθ１ｆの値が０以上（Ｓｉｎθ１ｆ≧０）であるときの第１正弦波信号Ｓｉｎθ１ｆの最大値の異常を検出する。
【０１２８】
具体的に、第１正弦波ゲイン補正部１７２１は、例えば、第１余弦波信号Ｃｏｓθ１ｆのゼロ点検出時における第１正弦波信号Ｓｉｎθ１ｆの値が０以上（Ｓｉｎθ１ｆ≧０）であるときの第１正弦波信号Ｓｉｎθ１ｆの最大値が下限値（例えば、３．２Ｖ）以上であり、且つ、上限値（例えば、４．４Ｖ）以下であれば正常と判定し、第１余弦波信号Ｃｏｓθ１ｆのゼロ点検出時における第１正弦波信号Ｓｉｎθ１ｆの値が０以上（Ｓｉｎθ１ｆ≧０）であるときの第１正弦波信号Ｓｉｎθ１ｆの最大値が下限値未満であるか、又は上限値よりも大きい場合には、第１正弦波信号Ｓｉｎθ１ｆの最大値異常と判定する。第１正弦波ゲイン補正部１７２１は、第１正弦波信号Ｓｉｎθ１ｆの最大値異常を検知した場合に、正弦波信号最大値異常検知フラグＥＲＲ４−１をセットする。このとき、第１正弦波ゲイン補正部１７２１は、第１正弦波信号Ｓｉｎθ１ｆの最大値を更新しない。
【０１２９】
また、第１正弦波ゲイン補正部１７２１は、第１余弦波信号Ｃｏｓθ１ｆのゼロ点検出時における第１正弦波信号Ｓｉｎθ１ｆの値が０未満（Ｓｉｎθ１ｆ＜０）であるときの第１正弦波信号Ｓｉｎθ１ｆの最小値の異常を検出する。
【０１３０】
具体的に、第１正弦波ゲイン補正部１７２１は、例えば、第１余弦波信号Ｃｏｓθ１ｆのゼロ点検出時における第１正弦波信号Ｓｉｎθ１ｆの値が０未満（Ｓｉｎθ１ｆ＜０）であるときの第１正弦波信号Ｓｉｎθ１ｆの最小値が下限値（例えば、−４．４Ｖ）以上であり、且つ、上限値（例えば、−３．２Ｖ）以下であれば正常と判定し、第１余弦波信号Ｃｏｓθ１ｆのゼロ点検出時における第１正弦波信号Ｓｉｎθ１ｆの値が０未満（Ｓｉｎθ１ｆ＜０）であるときの第１正弦波信号Ｓｉｎθ１ｆの最小値が下限値未満であるか、又は上限値よりも大きい場合には、第１正弦波信号Ｓｉｎθ１ｆの最小値異常と判定する。第１正弦波ゲイン補正部１７２１は、第１正弦波信号Ｓｉｎθ１ｆの最小値異常を検知した場合に、正弦波信号最小値異常検知フラグＥＲＲ４−２をセットする。このとき、第１正弦波ゲイン補正部１７２１は、第１正弦波信号Ｓｉｎθ１ｆの最小値を更新しない。
【０１３１】
また、第１余弦波ゲイン補正部１７２２は、第１正弦波信号Ｓｉｎθ１ｆのゼロ点検出時における第１余弦波信号Ｃｏｓθ１ｆの値が０以上（Ｃｏｓθ１ｆ≧０）であるときの第１余弦波信号Ｃｏｓθ１ｆの最大値の異常を検出する。
【０１３２】
具体的に、第１余弦波ゲイン補正部１７２２は、例えば、第１正弦波信号Ｓｉｎθ１ｆのゼロ点検出時における第１余弦波信号Ｃｏｓθ１ｆの値が０以上（Ｃｏｓθ１ｆ≧０）であるときの第１余弦波信号Ｃｏｓθ１ｆの最大値が下限値（例えば、３．２Ｖ）以上であり、且つ、上限値（例えば、４．４Ｖ）以下であれば正常と判定し、第１正弦波信号Ｓｉｎθ１ｆのゼロ点検出時における第１余弦波信号Ｃｏｓθ１ｆの値が０以上（Ｃｏｓθ１ｆ≧０）であるときの第１余弦波信号Ｃｏｓθ１ｆの最大値が下限値未満であるか、又は上限値よりも大きい場合には、第１余弦波信号Ｃｏｓθ１ｆの最大値異常と判定する。第１余弦波ゲイン補正部１７２２は、第１余弦波信号Ｃｏｓθ１ｆの最大値異常を検知した場合に、余弦波信号最大値異常検知フラグＥＲＲ５−１をセットする。このとき、第１余弦波ゲイン補正部１７２２は、第１余弦波信号Ｃｏｓθ１ｆの最大値を更新しない。
【０１３３】
また、第１余弦波ゲイン補正部１７２２は、第１正弦波信号Ｓｉｎθ１ｆのゼロ点検出時における第１余弦波信号Ｃｏｓθ１ｆの値が０未満（Ｃｏｓθ１ｆ＜０）であるときの第１余弦波信号Ｃｏｓθ１ｆの最小値の異常を検出する。
【０１３４】
具体的に、第１余弦波ゲイン補正部１７２２は、例えば、第１正弦波信号Ｓｉｎθ１ｆのゼロ点検出時における第１余弦波信号Ｃｏｓθ１ｆの値が０未満（Ｃｏｓθ１ｆ＜０）であるときの第１余弦波信号Ｃｏｓθ１ｆの最小値が下限値（例えば、−４．４Ｖ）以上であり、且つ、上限値（例えば、−３．２Ｖ）以下であれば正常と判定し、第１正弦波信号Ｓｉｎθ１ｆのゼロ点検出時における第１余弦波信号Ｃｏｓθ１ｆの値が０未満（Ｃｏｓθ１ｆ＜０）であるときの第１余弦波信号Ｃｏｓθ１ｆの最小値が下限値未満であるか、又は上限値よりも大きい場合には、第１余弦波信号Ｃｏｓθ１ｆの最小値異常と判定する。第１余弦波ゲイン補正部１７２２は、第１余弦波信号Ｃｏｓθ１ｆの最小値異常を検知した場合に、余弦波信号最小値異常検知フラグＥＲＲ５−２をセットする。このとき、第１余弦波ゲイン補正部１７２２は、第１余弦波信号Ｃｏｓθ１ｆの最小値を更新しない。
【０１３５】
第２ゲイン補正部１７３は、第２正弦波ゲイン補正部１７３１と、第２余弦波ゲイン補正部１７３２と、位相変換部１７３３と、を備えている。
【０１３６】
位相変換部１７３３は、下記（１７）式を用いて、第２正弦波信号Ｓｉｎθ１ｇを位相変換した第３正弦波信号ＶＣ＋Ｓを算出し、下記（１８）式を用いて、第２余弦波信号Ｃｏｓθ１ｇを位相変換した第３余弦波信号ＶＣ−Ｓを算出する。
【０１３７】
ＶＣ＋Ｓ＝Ｃｏｓθ１ｇ＋Ｓｉｎθ１ｇ・・・（１７）
【０１３８】
ＶＣ−Ｓ＝Ｃｏｓθ１ｇ−Ｓｉｎθ１ｇ・・・（１８）
【０１３９】
図１５は、第２正弦波信号及び第２余弦波信号に位相ずれが生じていない場合の位相変換処理後のベクトル図である。図１６は、第２正弦波信号及び第２余弦波信号にαの位相ずれが生じている場合の位相変換処理後のベクトル図である。
【０１４０】
第２正弦波信号Ｓｉｎθ１ｇと第２余弦波信号Ｃｏｓθ１ｇにαの位相ずれが生じている場合、図１６に示すように、第３正弦波信号ＶＣ＋Ｓは、第２正弦波信号Ｓｉｎθ１ｇに対して＋４５−（α／２）ｄｅｇ位相が遅れ、第３余弦波信号ＶＣ−Ｓは、第２余弦波信号Ｃｏｓθ１ｇに対して＋４５＋（α／２）ｄｅｇ位相が遅れる。すなわち、第３正弦波信号ＶＣ＋Ｓと第３余弦波信号ＶＣ−Ｓとは、９０ｄｅｇの位相差となる。
【０１４１】
図１５に示すように、第２正弦波信号Ｓｉｎθ１ｇと第２余弦波信号Ｃｏｓθ１ｇに位相ずれが生じていない場合には、上記の（１７）式のベクトル（Ｃｏｓθ１ｇ＋Ｓｉｎθ１ｇ）と、上記の（１８）式のベクトル（Ｃｏｓθ１ｇ−Ｓｉｎθ１ｇ）との大きさは等しくなる。
【０１４２】
一方、図１６に示すように、第２正弦波信号Ｓｉｎθ１ｇと第２余弦波信号Ｃｏｓθ１ｇにαの位相ずれが生じている場合には、上記の（１７）式のベクトル（Ｃｏｓθ１ｇ＋Ｓｉｎθ１ｇ）が、上記の（１８）式のベクトル（Ｃｏｓθ１ｇ−Ｓｉｎθ１ｇ）よりも大きくなる。
【０１４３】
本実施形態では、上記の（１７）式の結果である第３正弦波信号ＶＣ＋Ｓと、上記の（１８）式の結果である第３余弦波信号ＶＣ−Ｓとに対し、ゲイン補正を行うことで、ゲイン補正後の第４正弦波信号Ｖ１Ｃ＋Ｓのベクトルと第４余弦波信号Ｖ１Ｃ−Ｓのベクトルとの大きさが等しくなるように補正する。
【０１４４】
これにより、第２正弦波信号Ｓｉｎθ１ｇ及び第２余弦波信号Ｃｏｓθ１ｇの位相ずれαが補正される。
【０１４５】
第２正弦波ゲイン補正部１７３１は、第３正弦波信号ＶＣ＋Ｓのゲインを補正した第４正弦波信号Ｖ１Ｃ＋Ｓを出力する。
【０１４６】
第２余弦波ゲイン補正部１７３２は、第３余弦波信号ＶＣ−Ｓのゲインを補正した第４余弦波信号Ｖ１Ｃ−Ｓを出力する。
【０１４７】
図１７は、第２ゲイン補正部の等価ブロックの一例を示す図である。図１８は、第２ゲイン補正部の図１７に示す等価ブロックにおける第３正弦波信号及び第３余弦波信号の最大値又は最小値の検出概念を説明する図である。
【０１４８】
第２ゲイン補正部１７３は、第３余弦波信号ＶＣ−Ｓがゼロ電位となる第３余弦波信号ＶＣ−Ｓのゼロ点を検出する。
【０１４９】
第２正弦波ゲイン補正部１７３１は、第３余弦波信号ＶＣ−Ｓのゼロ点検出時における第３正弦波信号ＶＣ＋Ｓの値が０以上（ＶＣ＋Ｓ≧０）であるとき、当該第３正弦波信号ＶＣ＋Ｓの値を第３正弦波信号ＶＣ＋Ｓの最大値ＭＡＸ（ＶＣ＋Ｓ）として検出し、第３余弦波信号ＶＣ−Ｓのゼロ点検出時における第３正弦波信号ＶＣ＋Ｓの値が０未満（ＶＣ＋Ｓ＜０）であるとき、当該第３正弦波信号ＶＣ＋Ｓの値を第３正弦波信号ＶＣ＋Ｓの最小値ＭＩＮ（ＶＣ＋Ｓ）として検出する（図１８参照）。
【０１５０】
第２正弦波ゲイン補正部１７３１は、下記（１９）式及び（２０）式を用いて、第３正弦波信号ＶＣ＋Ｓのゲイン補正を行い、正弦波信号Ｖ１Ｃ＋ＳＵ及び正弦波信号Ｖ１Ｃ＋ＳＬを求める。
【０１５１】
Ｖ１Ｃ＋ＳＵ＝ＶＣ＋Ｓ×（１／（ＭＡＸ（ＶＣ＋Ｓ）））・・・（１９）
【０１５２】
Ｖ１Ｃ＋ＳＬ＝ＶＣ＋Ｓ×（（−１）／（ＭＩＮ（ＶＣ＋Ｓ）））・・・（２０）
【０１５３】
そして、第２正弦波ゲイン補正部１７３１は、第３正弦波信号ＶＣ＋Ｓの値が０以上であるとき、正弦波信号Ｖ１Ｃ＋ＳＵを第４正弦波信号Ｖ１Ｃ＋Ｓとし、第３正弦波信号ＶＣ＋Ｓの値が０未満であるとき、正弦波信号Ｖ１Ｃ＋ＳＬを第４正弦波信号Ｖ１Ｃ＋Ｓとする。
【０１５４】
すなわち、第２正弦波ゲイン補正部１７３１は、第３正弦波信号ＶＣ＋Ｓの値が０以上であるとき、下記の（１９’）式を用いて、第４正弦波信号Ｖ１Ｃ＋Ｓを算出し、第３正弦波信号ＶＣ＋Ｓの値が０未満であるとき、下記の（２０’）式を用いて、第４正弦波信号Ｖ１Ｃ＋Ｓを算出する。
【０１５５】
Ｖ１Ｃ＋Ｓ＝ＶＣ＋Ｓ×（１／（ＭＡＸ（ＶＣ＋Ｓ）））・・・（１９’）
【０１５６】
Ｖ１Ｃ＋Ｓ＝ＶＣ＋Ｓ×（（−１）／（ＭＩＮ（ＶＣ＋Ｓ）））・・・（２０’）
【０１５７】
これにより、第３正弦波信号ＶＣ＋Ｓのゲインが補正された第４正弦波信号Ｖ１Ｃ＋Ｓが得られる。
【０１５８】
また、第２ゲイン補正部１７３は、第３正弦波信号ＶＣ＋Ｓがゼロ電位となる第３正弦波信号ＶＣ＋Ｓのゼロ点を検出する。
【０１５９】
第２余弦波ゲイン補正部１７３２は、第３正弦波信号ＶＣ＋Ｓのゼロ点検出時における第３余弦波信号ＶＣ−Ｓの値が０以上（ＶＣ−Ｓ≧０）であるとき、当該第３余弦波信号ＶＣ−Ｓの値を第３余弦波信号ＶＣ−Ｓの最大値ＭＡＸ（ＶＣ−Ｓ）として検出し、第３正弦波信号ＶＣ＋Ｓのゼロ点検出時における第３余弦波信号ＶＣ−Ｓの値が０未満（ＶＣ−Ｓ＜０）であるとき、当該第３余弦波信号ＶＣ−Ｓの値を第３余弦波信号ＶＣ−Ｓの最小値ＭＩＮ（ＶＣ−Ｓ）として検出する（図１８参照）。
【０１６０】
第２余弦波ゲイン補正部１７３２は、下記（２１）式及び（２２）式を用いて、第３余弦波信号ＶＣ−Ｓのゲイン補正を行い、余弦波信号Ｖ１Ｃ−ＳＵ及び余弦波信号Ｖ１Ｃ−ＳＬを求める。
【０１６１】
Ｖ１Ｃ−ＳＵ＝ＶＣ−Ｓ×（１／（ＭＡＸ（ＶＣ−Ｓ）））・・・（２１）
【０１６２】
Ｖ１Ｃ−ＳＬ＝ＶＣ−Ｓ×（（−１）／（ＭＩＮ（ＶＣ−Ｓ）））・・・（２２）
【０１６３】
そして、第２余弦波ゲイン補正部１７３２は、第３余弦波信号ＶＣ−Ｓの値が０以上であるとき、余弦波信号Ｖ１Ｃ−ＳＵを第４余弦波信号Ｖ１Ｃ−Ｓとし、第３余弦波信号ＶＣ−Ｓの値が０未満であるとき、余弦波信号Ｖ１Ｃ−ＳＬを第４余弦波信号Ｖ１Ｃ−Ｓとする。
【０１６４】
すなわち、第２余弦波ゲイン補正部１７３２は、第３余弦波信号ＶＣ−Ｓの値が０以上であるとき、下記の（２１’）式を用いて、第４余弦波信号Ｖ１Ｃ−Ｓを算出し、第３余弦波信号ＶＣ−Ｓの値が０未満であるとき、下記の（２２’）式を用いて、第４余弦波信号Ｖ１Ｃ−Ｓを算出する。
【０１６５】
Ｖ１Ｃ−Ｓ＝ＶＣ−Ｓ×（１／（ＭＡＸ（ＶＣ−Ｓ）））・・・（２１’）
【０１６６】
Ｖ１Ｃ−Ｓ＝ＶＣ−Ｓ×（（−１）／（ＭＩＮ（ＶＣ−Ｓ）））・・・（２２’）
【０１６７】
これにより、第３余弦波信号ＶＣ−Ｓのゲインが補正された第４余弦波信号Ｖ１Ｃ−Ｓが得られる。
【０１６８】
角度算出部１７４は、逆正接演算部１７４１と、象限判定部１７４２と、モータ電気角演算部１７４３と、回転数演算部１７４４と、を備えている。
【０１６９】
逆正接演算部１７４１は、下記（２３）式を用いて、−９０ｄｅｇ＜θ１ｈ＜＋９０ｄｅｇの範囲内における角度θ１ｈを算出する。
【０１７０】
θ１ｈ＝ａｒｃｔａｎ（Ｖ１Ｃ＋Ｓ／Ｖ１Ｃ−Ｓ）・・・（２３）
【０１７１】
象限判定部１７４２は、逆正接演算部１７４１によって算出された−９０ｄｅｇ＜θ１ｈ＜＋９０ｄｅｇの範囲内における角度θ１ｈを、０ｄｅｇ＜θ１＜３６０ｄｅｇの範囲内におけるモータ２０の回転角θ１に変換する。また、象限判定部１７４２は、第２ゲイン補正部１７３によって遅れた位相４５ｄｅｇだけ進ませる。
【０１７２】
象限判定部１７４２は、第４余弦波信号Ｖ１Ｃ−Ｓが０以上（Ｖ１Ｃ−Ｓ≧０）であるとき、下記（２４）式を用いて、０ｄｅｇ＜θ１＜３６０ｄｅｇの範囲内におけるモータ２０の回転角θ１を算出する。
【０１７３】
θ１＝θ１ｈ−４５ｄｅｇ・・・（２４）
【０１７４】
また、象限判定部１７４２は、第４余弦波信号Ｖ１Ｃ−Ｓが０未満（Ｖ１Ｃ−Ｓ＜０）であるとき、下記（２５）式を用いて、０ｄｅｇ＜θ１＜３６０ｄｅｇの範囲内におけるモータ２０の回転角θ１を算出する。
【０１７５】
θ１＝（θ１ｈ＋１８０ｄｅｇ）−４５ｄｅｇ・・・（２５）
【０１７６】
モータ電気角演算部１７４３は、象限判定部１７４２によって算出されたモータ２０の回転角θ１に基づき、モータ２０の磁極対数に対応する電気角θ２を算出する。モータ２０の磁極対数が４つである場合、回転角θ１を４分割して、電流制御開始位置との差分を補正し４周期分の電気角θ２を算出する。
【０１７７】
回転数演算部１７４４は、モータ２０の回転角θ１に基づき、モータ２０の回転数ωを算出する。具体的に、回転数演算部１７４４は、例えば、モータ２０の回転角θ１の１ｍｓ単位の変化量を参照して、モータ２０の回転数ωを算出する。このとき、例えば、後述する回転角検出処理における処理周期、換言すれば、差分演算部１７１の前段におけるＡ／Ｄ変換処理のサンプリング周期が２５０μｓである場合、４周期分のモータ２０の回転角θ１を参照する。モータ２０の回転数ωを算出する際の単位時間は、１ｍｓ単位に限定されない。
【０１７８】
次に、本実施形態に係る回転角検出装置２００における回転角検出処理について説明する。図１９は、実施形態に係る回転角検出装置における回転角検出処理手順の一例を示すフローチャートである。
【０１７９】
本実施形態では、車両を実際に走行させる実運用時にリアルタイムで回転角検出装置２００のキャリブレーションを行う。これにより、温度ドリフトや経時変化によって検出精度が低下することを抑制することができ、高い検出精度を維持することができる。以下、上述した実運用時におけるリアルタイムキャリブレーションについて説明する。
【０１８０】
図２０は、ＥＥＰＲＯＭに記憶される各情報の一例を示す図である。
【０１８１】
ＥＥＰＲＯＭ１０４（第１記憶部）には、例えば常温（例えば、２５度）における、第１正弦波信号Ｓｉｎθ１ｆの最大値ＭＡＸ（Ｓｉｎθ１ｆ）及び第１余弦波信号Ｃｏｓθ１ｆの最大値ＭＡＸ（Ｃｏｓθ１ｆ）の初期値ＭＡＸ１Ｒｅｆ、第１正弦波信号Ｓｉｎθ１ｆの最小値ＭＩＮ（Ｓｉｎθ１ｆ）及び第１余弦波信号Ｃｏｓθ１ｆの最小値ＭＩＮ（Ｃｏｓθ１ｆ）の初期値ＭＩＮ１Ｒｅｆ、第３正弦波信号ＶＣ＋Ｓの最大値ＭＡＸ（ＶＣ＋Ｓ）及び第３余弦波信号ＶＣ−Ｓの最大値ＭＡＸ（ＶＣ−Ｓ）の初期値ＭＡＸ２Ｒｅｆ、第３正弦波信号ＶＣ＋Ｓの最小値ＭＩＮ（ＶＣ＋Ｓ）及び第３余弦波信号ＶＣ−Ｓの最小値ＭＩＮ（ＶＣ−Ｓ）の初期値ＭＩＮ２Ｒｅｆが記憶されている。
【０１８２】
また、ＥＥＰＲＯＭ１０４（第１記憶部）には、第１正弦波信号Ｓｉｎθ１ｆの最大値ＭＡＸ（Ｓｉｎθ１ｆ）及び第１余弦波信号Ｃｏｓθ１ｆの最大値ＭＡＸ（Ｃｏｓθ１ｆ）の上限値ＭＡＸ１Ｌｉｍ＿Ｈ及び下限値ＭＡＸ１Ｌｉｍ＿Ｌ、第１正弦波信号Ｓｉｎθ１ｆの最小値ＭＩＮ（Ｓｉｎθ１ｆ）及び第１余弦波信号Ｃｏｓθ１ｆの最小値ＭＩＮ（Ｃｏｓθ１ｆ）の上限値ＭＩＮ１Ｌｉｍ＿Ｈ及び下限値ＭＩＮ１Ｌｉｍ＿Ｌが記憶されている。
【０１８３】
また、ＥＥＰＲＯＭ１０４（第１記憶部）には、正相正弦波信号Ｓｉｎθ１＋、逆相正弦波信号Ｓｉｎθ１−、正相余弦波信号Ｃｏｓθ１＋、及び逆相余弦波信号Ｃｏｓθ１−の上限閾値Ｌｉｍ＿Ｈ及び下限閾値Ｌｉｍ＿Ｌ、正弦波信号オフセット電圧ＤｉｆＳｉｎ１及び余弦波信号オフセット電圧ＤｉｆＣｏｓ１の上限閾値ＤｉｆＬｉｍ＿Ｈ及び下限閾値ＤｉｆＬｉｍ＿Ｌ、モータ２０の回転数ωの上限閾値ＲＳ＿Ｈが記憶されている。
【０１８４】
なお、ＥＥＰＲＯＭ１０４に記憶される各情報は、数値データであっても良いし、デジタルデータ等の離散値であっても良い。
【０１８５】
実運用時において、ＣＰＵ１０１は、イグニッションスイッチ１１から送信されたイグニッション信号を受信すると、ＥＥＰＲＯＭ１０４（第１記憶部）に記憶されたＭＡＸ１Ｒｅｆ、ＭＩＮ１Ｒｅｆ、ＭＡＸ２Ｒｅｆ、ＭＩＮ２Ｒｅｆを読み出し、ＲＡＭ１０２（第２記憶部）に書き込む。このとき、ＲＡＭ１０２（第２記憶部）には、ＭＡＸ１Ｒｅｆがそれぞれ第１正弦波信号Ｓｉｎθ１ｆの最大値ＭＡＸ（Ｓｉｎθ１ｆ）及び第１余弦波信号Ｃｏｓθ１ｆの最大値ＭＡＸ（Ｃｏｓθ１ｆ）の値として書き込まれ、ＭＩＮ１Ｒｅｆがそれぞれ第１正弦波信号Ｓｉｎθ１ｆの最小値ＭＩＮ（Ｓｉｎθ１ｆ）及び第１余弦波信号Ｃｏｓθ１ｆの最小値ＭＩＮ（Ｃｏｓθ１ｆ）の値として書き込まれ、ＭＡＸ２Ｒｅｆがそれぞれ第３正弦波信号ＶＣ＋Ｓの最大値ＭＡＸ（ＶＣ＋Ｓ）及び第３余弦波信号ＶＣ−Ｓの最大値ＭＡＸ（ＶＣ−Ｓ）の値として書き込まれ、ＭＩＮ２Ｒｅｆがそれぞれ第３正弦波信号ＶＣ＋Ｓの最小値ＭＩＮ（ＶＣ＋Ｓ）及び第３余弦波信号ＶＣ−Ｓの最小値ＭＩＮ（ＶＣ−Ｓ）の値として書き込まれる。
【０１８６】
本実施形態において、回転角検出装置２００における回転角検出処理は、例えば、２５０μｓ毎に実施される。すなわち、差分演算部１７１の前段におけるＡ／Ｄ変換処理のサンプリング周期は２５０μｓである。なお、差分演算部１７１の前段におけるＡ／Ｄ変換処理のサンプリング周期は一例であって、２５０μｓに限定されない。
【０１８７】
図１９に示す回転角検出処理において、位置検出部１７は、まず、入力異常判定処理を行う（ステップＳ１）。図２１は、入力異常判定処理の一例を示すフローチャートである。
【０１８８】
位置検出部１７は、位置検出センサ２５から出力される差動正弦波信号（正相正弦波信号Ｓｉｎθ１＋、逆相正弦波信号Ｓｉｎθ１−）及び差動余弦波信号（正相余弦波信号Ｃｏｓθ１＋、逆相余弦波信号Ｃｏｓθ１−）をサンプリング処理して取得する（ステップＳ１０）。
【０１８９】
差分演算部１７１は、ＥＥＰＲＯＭ１０４から正相正弦波信号Ｓｉｎθ１＋、逆相正弦波信号Ｓｉｎθ１−、正相余弦波信号Ｃｏｓθ１＋、及び逆相余弦波信号Ｃｏｓθ１−の上限閾値Ｌｉｍ＿Ｈ及び下限閾値Ｌｉｍ＿Ｌを読み出す。
【０１９０】
正弦波差分演算部１７１１は、正相正弦波信号Ｓｉｎθ１＋の入力値が、下限閾値Ｌｉｍ＿Ｌ以上であり、且つ、上限閾値Ｌｉｍ＿Ｈ以下（Ｌｉｍ＿Ｌ≦Ｓｉｎθ１＋≦Ｌｉｍ＿Ｈ）であるか否かを判定する（ステップＳ１１）。
【０１９１】
正相正弦波信号Ｓｉｎθ１＋の入力値が、下限閾値Ｌｉｍ＿Ｌ以上であり、且つ、上限閾値Ｌｉｍ＿Ｈ以下（Ｌｉｍ＿Ｌ≦Ｓｉｎθ１＋≦Ｌｉｍ＿Ｈ）であるとき（ステップＳ１１；Ｙｅｓ）、正弦波差分演算部１７１１は、正相正弦波信号Ｓｉｎθ１＋の入力値が正常と判定し、正相正弦波信号入力値異常検知フラグＥＲＲ１−１をリセットする（ステップＳ１１ａ）。
【０１９２】
正相正弦波信号Ｓｉｎθ１＋の入力値が、下限閾値Ｌｉｍ＿Ｌ未満であるか、又は、上限閾値Ｌｉｍ＿Ｈよりも大きいとき（ステップＳ１１；Ｎｏ）、正弦波差分演算部１７１１は、正相正弦波信号Ｓｉｎθ１＋の入力値異常と判定し、正相正弦波信号入力値異常検知フラグＥＲＲ１−１をセットする（ステップＳ１１ｂ）。
【０１９３】
続いて、正弦波差分演算部１７１１は、逆相正弦波信号Ｓｉｎθ１−の入力値が、下限閾値Ｌｉｍ＿Ｌ以上であり、且つ、上限閾値Ｌｉｍ＿Ｈ以下（Ｌｉｍ＿Ｌ≦Ｓｉｎθ１−≦Ｌｉｍ＿Ｈ）であるか否かを判定する（ステップＳ１２）。
【０１９４】
逆相正弦波信号Ｓｉｎθ１−の入力値が、下限閾値Ｌｉｍ＿Ｌ以上であり、且つ、上限閾値Ｌｉｍ＿Ｈ以下（Ｌｉｍ＿Ｌ≦Ｓｉｎθ１−≦Ｌｉｍ＿Ｈ）であるとき（ステップＳ１２；Ｙｅｓ）、正弦波差分演算部１７１１は、逆相正弦波信号Ｓｉｎθ１−の入力値が正常と判定し、逆相正弦波信号入力値異常検知フラグＥＲＲ１−２をリセットする（ステップＳ１２ａ）。
【０１９５】
逆相正弦波信号Ｓｉｎθ１−の入力値が、下限閾値Ｌｉｍ＿Ｌ未満であるか、又は、上限閾値Ｌｉｍ＿Ｈよりも大きいとき（ステップＳ１２；Ｎｏ）、正弦波差分演算部１７１１は、逆相正弦波信号Ｓｉｎθ１−の入力値異常と判定し、逆相正弦波信号入力値異常検知フラグＥＲＲ１−２をセットする（ステップＳ１２ｂ）。
【０１９６】
続いて、余弦波差分演算部１７１２は、正相余弦波信号Ｃｏｓθ１＋の値が、下限閾値Ｌｉｍ＿Ｌ以上であり、且つ、上限閾値Ｌｉｍ＿Ｈ以下（Ｌｉｍ＿Ｌ≦Ｃｏｓθ１＋≦Ｌｉｍ＿Ｈ）であるか否かを判定する（ステップＳ１３）。
【０１９７】
正相余弦波信号Ｃｏｓθ１＋の値が、下限閾値Ｌｉｍ＿Ｌ以上であり、且つ、上限閾値Ｌｉｍ＿Ｈ以下（Ｌｉｍ＿Ｌ≦Ｃｏｓθ１＋≦Ｌｉｍ＿Ｈ）であるとき（ステップＳ１３；Ｙｅｓ）、余弦波差分演算部１７１２は、正相余弦波信号Ｃｏｓθ１＋の入力値が正常と判定し、正相余弦波信号入力値異常検知フラグＥＲＲ２−１をリセットする（ステップＳ１３ａ）。
【０１９８】
正相余弦波信号Ｃｏｓθ１＋の値が、下限閾値Ｌｉｍ＿Ｌ未満であるか、又は、上限閾値Ｌｉｍ＿Ｈよりも大きいとき（ステップＳ１３；Ｎｏ）、余弦波差分演算部１７１２は、正相余弦波信号Ｃｏｓθ１＋の入力値異常と判定し、正相余弦波信号入力値異常検知フラグＥＲＲ２−１をセットする（ステップＳ１３ｂ）。
【０１９９】
続いて、余弦波差分演算部１７１２は、逆相余弦波信号Ｃｏｓθ１−の値が、下限閾値Ｌｉｍ＿Ｌ以上であり、且つ、上限閾値Ｌｉｍ＿Ｈ以下（Ｌｉｍ＿Ｌ≦Ｃｏｓθ１−≦Ｌｉｍ＿Ｈ）であるか否かを判定する（ステップＳ１４）。
【０２００】
逆相余弦波信号Ｃｏｓθ１−の値が、下限閾値Ｌｉｍ＿Ｌ以上であり、且つ、上限閾値Ｌｉｍ＿Ｈ以下（Ｌｉｍ＿Ｌ≦Ｃｏｓθ１−≦Ｌｉｍ＿Ｈ）であるとき（ステップＳ１４；Ｙｅｓ）、余弦波差分演算部１７１２は、逆相余弦波信号Ｃｏｓθ１−の入力値が正常と判定し、逆相余弦波信号入力値異常検知フラグＥＲＲ２−２をリセットする（ステップＳ１４ａ）。
【０２０１】
逆相余弦波信号Ｃｏｓθ１−の値が、下限閾値Ｌｉｍ＿Ｌ未満であるか、又は、上限閾値Ｌｉｍ＿Ｈよりも大きいとき（ステップＳ１４；Ｎｏ）、余弦波差分演算部１７１２は、逆相余弦波信号Ｃｏｓθ１−の入力値異常と判定し、逆相余弦波信号入力値異常検知フラグＥＲＲ２−２をセットする（ステップＳ１４ｂ）。
【０２０２】
続いて、差分演算部１７１は、ＥＥＰＲＯＭ１０４から正弦波信号オフセット電圧ＤｉｆＳｉｎ１及び余弦波信号オフセット電圧ＤｉｆＣｏｓ１の上限閾値ＤｉｆＬｉｍ＿Ｈ及び下限閾値ＤｉｆＬｉｍ＿Ｌを読み出す。正弦波差分演算部１７１１は、上記（１）式を用いて、正弦波信号オフセット電圧ＤｉｆＳｉｎ１を算出する（ステップＳ１５）。
【０２０３】
正弦波差分演算部１７１１は、正弦波信号オフセット電圧ＤｉｆＳｉｎ１の値が、下限閾値ＤｉｆＬｉｍ＿Ｌ以上であり、且つ、上限閾値ＤｉｆＬｉｍ＿Ｈ以下（ＤｉｆＬｉｍ＿Ｌ≦ＤｉｆＳｉｎ１≦ＤｉｆＬｉｍ＿Ｈ）であるか否かを判定する（ステップＳ１６）。
【０２０４】
正弦波信号オフセット電圧ＤｉｆＳｉｎ１の値が、下限閾値ＤｉｆＬｉｍ＿Ｌ以上であり、且つ、上限閾値ＤｉｆＬｉｍ＿Ｈ以下（ＤｉｆＬｉｍ＿Ｌ≦ＤｉｆＳｉｎ１≦ＤｉｆＬｉｍ＿Ｈ）であるとき（ステップＳ１６；Ｙｅｓ）、正弦波差分演算部１７１１は、正弦波信号オフセット電圧ＤｉｆＳｉｎ１のオフセット電圧値が正常と判定し、正弦波信号オフセット電圧値異常検知フラグＥＲＲ３−１をリセットする（ステップＳ１６ａ）。
【０２０５】
正弦波信号オフセット電圧ＤｉｆＳｉｎ１の値が、下限閾値ＤｉｆＬｉｍ＿Ｌ未満であるか、又は、上限閾値ＤｉｆＬｉｍ＿Ｈよりも大きいとき（ステップＳ１６；Ｎｏ）、正弦波差分演算部１７１１は、正弦波信号オフセット電圧ＤｉｆＳｉｎ１のオフセット電圧値異常と判定し、正弦波信号オフセット電圧値異常検知フラグＥＲＲ３−１をセットする（ステップＳ１６ｂ）。
【０２０６】
続いて、余弦波差分演算部１７１２は、上記（７）式を用いて、余弦波信号オフセット電圧ＤｉｆＣｏｓ１を算出する（ステップＳ１７）。
【０２０７】
余弦波差分演算部１７１２は、余弦波信号オフセット電圧ＤｉｆＣｏｓ１の値が、下限閾値ＤｉｆＬｉｍ＿Ｌ以上であり、且つ、上限閾値ＤｉｆＬｉｍ＿Ｈ以下（ＤｉｆＬｉｍ＿Ｌ≦ＤｉｆＣｏｓ１≦ＤｉｆＬｉｍ＿Ｈ）であるか否かを判定する（ステップＳ１８）。
【０２０８】
余弦波信号オフセット電圧ＤｉｆＣｏｓ１の値が、下限閾値ＤｉｆＬｉｍ＿Ｌ以上であり、且つ、上限閾値ＤｉｆＬｉｍ＿Ｈ以下（ＤｉｆＬｉｍ＿Ｌ≦ＤｉｆＣｏｓ１≦ＤｉｆＬｉｍ＿Ｈ）であるとき（ステップＳ１８；Ｙｅｓ）、余弦波差分演算部１７１２は、余弦波信号オフセット電圧ＤｉｆＣｏｓ１のオフセット電圧値が正常と判定し、余弦波信号オフセット電圧値異常検知フラグＥＲＲ３−２をリセットし（ステップＳ１８ａ）、図１９に示す回転角検出処理手順に戻る。
【０２０９】
余弦波信号オフセット電圧ＤｉｆＣｏｓ１の値が、下限閾値ＤｉｆＬｉｍ＿Ｌ未満であるか、又は、上限閾値ＤｉｆＬｉｍ＿Ｈよりも大きいとき（ステップＳ１８；Ｎｏ）、余弦波差分演算部１７１２は、余弦波信号オフセット電圧ＤｉｆＣｏｓ１のオフセット電圧値異常と判定し、余弦波信号オフセット電圧値異常検知フラグＥＲＲ３−２をセットし（ステップＳ１８ｂ）、図１９に示す回転角検出処理手順に戻る。
【０２１０】
差分演算部１７１の正弦波差分演算部１７１１は、上述した（６’）式を用いて、第１正弦波信号Ｓｉｎθ１ｆを算出し、差分演算部１７１の余弦波差分演算部１７１２は、上述した（１２’）式を用いて、第１余弦波信号Ｃｏｓθ１ｆを算出する（ステップＳ１０１）。
【０２１１】
続いて、位置検出部１７は、第１正弦波信号Ｓｉｎθ１ｆ及び第１余弦波信号Ｃｏｓθ１ｆの最大値検出処理及び最小値検出処理を行う（ステップＳ２）。図２２は、第１正弦波信号及び第１余弦波信号の最大値検出処理及び最小値検出処理の一例を示すフローチャートである。
【０２１２】
第１ゲイン補正部１７２は、ＥＥＰＲＯＭ１０４からモータ２０の回転数ωの上限閾値ＲＳ＿Ｈを読み出す。第１ゲイン補正部１７２の回転数閾値判定部１７２３は、モータ２０の回転数ωが上限閾値ＲＳ＿Ｈ以下（ω≦ＲＳ＿Ｈ）であるか否かを判定する（ステップＳ２０）。
【０２１３】
モータ２０の回転数ωが上限閾値ＲＳ＿Ｈよりも大きいとき（ステップＳ２０；Ｎｏ）、回転数閾値判定部１７２３は、モータ２０の回転数ωが第１正弦波信号Ｓｉｎθ１ｆの最大値ＭＡＸ（Ｓｉｎθ１ｆ）及び最小値ＭＩＮ（Ｓｉｎθ１ｆ）、第１余弦波信号Ｃｏｓθ１ｆの最大値ＭＡＸ（Ｃｏｓθ１ｆ）及び最小値ＭＩＮ（Ｃｏｓθ１ｆ）の更新条件外と判定し、図１９に示す回転角検出処理手順に戻る。すなわち、モータ２０の回転数が第１正弦波信号Ｓｉｎθ１ｆの最大値ＭＡＸ（Ｓｉｎθ１ｆ）及び最小値ＭＩＮ（Ｓｉｎθ１ｆ）、第１余弦波信号Ｃｏｓθ１ｆの最大値ＭＡＸ（Ｃｏｓθ１ｆ）及び最小値ＭＩＮ（Ｃｏｓθ１ｆ）の更新条件外と判定した場合には、第１正弦波信号Ｓｉｎθ１ｆの最大値ＭＡＸ（Ｓｉｎθ１ｆ）及び最小値ＭＩＮ（Ｓｉｎθ１ｆ）、第１余弦波信号Ｃｏｓθ１ｆの最大値ＭＡＸ（Ｃｏｓθ１ｆ）及び最小値ＭＩＮ（Ｃｏｓθ１ｆ）の更新を行わない。
【０２１４】
モータ２０の回転数ωが上限閾値ＲＳ＿Ｈ以下（ω≦ＲＳ＿Ｈ）であるとき（ステップＳ２０；Ｙｅｓ）、回転数閾値判定部１７２３は、モータ２０の回転数ωが第１正弦波信号Ｓｉｎθ１ｆの最大値ＭＡＸ（Ｓｉｎθ１ｆ）及び最小値ＭＩＮ（Ｓｉｎθ１ｆ）、第１余弦波信号Ｃｏｓθ１ｆの最大値ＭＡＸ（Ｃｏｓθ１ｆ）及び最小値ＭＩＮ（Ｃｏｓθ１ｆ）の更新条件を満たすと判定し、第１正弦波信号Ｓｉｎθ１ｆの最大値ＭＡＸ（Ｓｉｎθ１ｆ）及び最小値ＭＩＮ（Ｓｉｎθ１ｆ）、第１余弦波信号Ｃｏｓθ１ｆの最大値ＭＡＸ（Ｃｏｓθ１ｆ）及び最小値ＭＩＮ（Ｃｏｓθ１ｆ）の更新を許可する。
【０２１５】
続いて、第１ゲイン補正部１７２は、第１余弦波信号Ｃｏｓθ１ｆのゼロ点（Ｃｏｓθ１ｆ＝０）を検知する（ステップＳ２１）。第１余弦波信号Ｃｏｓθ１ｆのゼロ点を検知していない場合（ステップＳ２１；Ｎｏ）、ステップＳ２５の処理に移行する。
【０２１６】
第１余弦波信号Ｃｏｓθ１ｆのゼロ点を検知すると（ステップＳ２１；Ｙｅｓ）、第１ゲイン補正部１７２は、第１余弦波信号Ｃｏｓθ１ｆのゼロ点検出時における第１正弦波信号Ｓｉｎθ１ｆの値が０以上（Ｓｉｎθ１ｆ≧０）であるか否かを判定する（ステップＳ２２）。
【０２１７】
第１余弦波信号Ｃｏｓθ１ｆのゼロ点検出時における第１正弦波信号Ｓｉｎθ１ｆの値が０以上（Ｓｉｎθ１ｆ≧０）であるとき（ステップＳ２２；Ｙｅｓ）、第１ゲイン補正部１７２は、ＥＥＰＲＯＭ１０４から第１正弦波信号Ｓｉｎθ１ｆの最大値ＭＡＸ（Ｓｉｎθ１ｆ）及び第１余弦波信号Ｃｏｓθ１ｆの最大値ＭＡＸ（Ｃｏｓθ１ｆ）の上限値ＭＡＸ１Ｌｉｍ＿Ｈ及び下限値ＭＡＸ１Ｌｉｍ＿Ｌを読み出し、第１正弦波信号Ｓｉｎθ１ｆの値が、第１正弦波信号Ｓｉｎθ１ｆの最大値の下限値ＭＡＸ１Ｌｉｍ＿Ｌ以上であり、且つ、第１正弦波信号Ｓｉｎθ１ｆの最大値の上限値ＭＡＸ１Ｌｉｍ＿Ｈ以下（ＭＡＸ１Ｌｉｍ＿Ｌ≦Ｓｉｎθ１ｆ≦ＭＡＸ１Ｌｉｍ＿Ｈ）であるか否かを判定する（ステップＳ２２ａ）。
【０２１８】
第１正弦波信号Ｓｉｎθ１ｆの値が、第１正弦波信号Ｓｉｎθ１ｆの最大値の下限値ＭＡＸ１Ｌｉｍ＿Ｌ以上であり、且つ、第１正弦波信号Ｓｉｎθ１ｆの最大値の上限値ＭＡＸ１Ｌｉｍ＿Ｈ以下（ＭＡＸ１Ｌｉｍ＿Ｌ≦Ｓｉｎθ１ｆ≦ＭＡＸ１Ｌｉｍ＿Ｈ）であるとき（ステップＳ２２ａ；Ｙｅｓ）、第１ゲイン補正部１７２は、第１正弦波信号Ｓｉｎθ１ｆの値を第１正弦波信号Ｓｉｎθ１ｆの最大値ＭＡＸ（Ｓｉｎθ１ｆ）としてＲＡＭ１０２上のデータを更新し（ステップＳ２３ａ）、ステップＳ２５の処理に移行する。
【０２１９】
第１正弦波信号Ｓｉｎθ１ｆの値が、第１正弦波信号Ｓｉｎθ１ｆの最大値の下限値ＭＡＸ１Ｌｉｍ＿Ｌ未満であるか、又は、第１正弦波信号Ｓｉｎθ１ｆの最大値の上限値ＭＡＸ１Ｌｉｍ＿Ｈよりも大きいとき（ステップＳ２２ａ；Ｎｏ）、第１ゲイン補正部１７２の第１正弦波ゲイン補正部１７２１は、第１正弦波信号Ｓｉｎθ１ｆの最大値異常と判定して正弦波信号最大値異常検知フラグＥＲＲ４−１をセットし（ステップＳ２４ａ）、ステップＳ２５の処理に移行する。すなわち、第１正弦波信号Ｓｉｎθ１ｆの最大値異常と判定した場合には、第１正弦波信号Ｓｉｎθ１ｆの最大値ＭＡＸ（Ｓｉｎθ１ｆ）の更新を行わない。
【０２２０】
第１余弦波信号Ｃｏｓθ１ｆのゼロ点検出時における第１正弦波信号Ｓｉｎθ１ｆの値が０未満（Ｓｉｎθ１ｆ＜０）であるとき（ステップＳ２２；Ｎｏ）、第１ゲイン補正部１７２は、ＥＥＰＲＯＭ１０４から第１正弦波信号Ｓｉｎθ１ｆの最小値ＭＩＮ（Ｓｉｎθ１ｆ）及び第１余弦波信号Ｃｏｓθ１ｆの最小値ＭＩＮ（Ｃｏｓθ１ｆ）の上限値ＭＩＮ１Ｌｉｍ＿Ｈ及び下限値ＭＩＮ１Ｌｉｍ＿Ｌを読み出し、第１正弦波信号Ｓｉｎθ１ｆの値が、第１正弦波信号Ｓｉｎθ１ｆの最小値の下限値ＭＩＮ１Ｌｉｍ＿Ｌ以上であり、且つ、第１正弦波信号Ｓｉｎθ１ｆの最小値の上限値ＭＩＮ１Ｌｉｍ＿Ｈ以下（ＭＩＮ１Ｌｉｍ＿Ｌ≦Ｓｉｎθ１ｆ≦ＭＩＮ１Ｌｉｍ＿Ｈ）であるか否かを判定する（ステップＳ２２ｂ）。
【０２２１】
第１正弦波信号Ｓｉｎθ１ｆの値が、第１正弦波信号Ｓｉｎθ１ｆの最小値の下限値ＭＩＮ１Ｌｉｍ＿Ｌ以上であり、且つ、第１正弦波信号Ｓｉｎθ１ｆの最小値の上限値ＭＩＮ１Ｌｉｍ＿Ｈ以下（ＭＩＮ１Ｌｉｍ＿Ｌ≦Ｓｉｎθ１ｆ≦ＭＩＮ１Ｌｉｍ＿Ｈ）であるとき（ステップＳ２２ｂ；Ｙｅｓ）、第１ゲイン補正部１７２は、第１正弦波信号Ｓｉｎθ１ｆの値を第１正弦波信号Ｓｉｎθ１ｆの最小値ＭＩＮ（Ｓｉｎθ１ｆ）としてＲＡＭ１０２上のデータを更新し（ステップＳ２３ｂ）、ステップＳ２５の処理に移行する。
【０２２２】
第１正弦波信号Ｓｉｎθ１ｆの値が、第１正弦波信号Ｓｉｎθ１ｆの最小値の下限値ＭＩＮ１Ｌｉｍ＿Ｌ未満であるか、又は、第１正弦波信号Ｓｉｎθ１ｆの最小値の上限値ＭＩＮ１Ｌｉｍ＿Ｈよりも大きいとき（ステップＳ２２ｂ；Ｎｏ）、第１ゲイン補正部１７２の第１正弦波ゲイン補正部１７２１は、第１正弦波信号Ｓｉｎθ１ｆの最小値異常と判定して正弦波信号最小値異常検知フラグＥＲＲ４−２をセットし（ステップＳ２４ｂ）、ステップＳ２５の処理に移行する。すなわち、第１正弦波信号Ｓｉｎθ１ｆの最小値異常と判定した場合には、第１正弦波信号Ｓｉｎθ１ｆの最小値ＭＩＮ（Ｓｉｎθ１ｆ）の更新を行わない。
【０２２３】
続いて、第１ゲイン補正部１７２は、第１正弦波信号Ｓｉｎθ１ｆのゼロ点（Ｓｉｎθ１ｆ＝０）を検知する（ステップＳ２５）。第１正弦波信号Ｓｉｎθ１ｆのゼロ点を検知していない場合（ステップＳ２５；Ｎｏ）、図１９に示す回転角検出処理手順に戻る。
【０２２４】
第１正弦波信号Ｓｉｎθ１ｆのゼロ点を検知すると（ステップＳ２５；Ｙｅｓ）、第１ゲイン補正部１７２は、第１正弦波信号Ｓｉｎθ１ｆのゼロ点検出時における第１余弦波信号Ｃｏｓθ１ｆの値が０以上（Ｃｏｓθ１ｆ≧０）であるか否かを判定する（ステップＳ２６）。
【０２２５】
第１正弦波信号Ｓｉｎθ１ｆのゼロ点検出時における第１余弦波信号Ｃｏｓθ１ｆの値が０以上（Ｃｏｓθ１ｆ≧０）であるとき（ステップＳ２６；Ｙｅｓ）、第１ゲイン補正部１７２は、ＥＥＰＲＯＭ１０４から第１正弦波信号Ｓｉｎθ１ｆの最大値ＭＡＸ（Ｓｉｎθ１ｆ）及び第１余弦波信号Ｃｏｓθ１ｆの最大値ＭＡＸ（Ｃｏｓθ１ｆ）の上限値ＭＡＸ１Ｌｉｍ＿Ｈ及び下限値ＭＡＸ１Ｌｉｍ＿Ｌを読み出し、第１余弦波信号Ｃｏｓθ１ｆの値が、第１余弦波信号Ｃｏｓθ１ｆの最大値の下限値ＭＡＸ１Ｌｉｍ＿Ｌ以上であり、且つ、第１余弦波信号Ｃｏｓθ１ｆの最大値の上限値ＭＡＸ１Ｌｉｍ＿Ｈ以下（ＭＡＸ１Ｌｉｍ＿Ｌ≦Ｃｏｓθ１ｆ≦ＭＡＸ１Ｌｉｍ＿Ｈ）であるか否かを判定する（ステップＳ２６ａ）。
【０２２６】
第１余弦波信号Ｃｏｓθ１ｆの値が、第１余弦波信号Ｃｏｓθ１ｆの最大値の下限値ＭＡＸ１Ｌｉｍ＿Ｌ以上であり、且つ、第１余弦波信号Ｃｏｓθ１ｆの最大値の上限値ＭＡＸ１Ｌｉｍ＿Ｈ以下（ＭＡＸ１Ｌｉｍ＿Ｌ≦Ｃｏｓθ１ｆ≦ＭＡＸ１Ｌｉｍ＿Ｈ）であるとき（ステップＳ２６ａ；Ｙｅｓ）、第１ゲイン補正部１７２は、第１余弦波信号Ｃｏｓθ１ｆの値を第１余弦波信号Ｃｏｓθ１ｆの最大値ＭＡＸ（Ｃｏｓθ１ｆ）としてＲＡＭ１０２上のデータを更新し（ステップＳ２７ａ）、図１９に示す回転角検出処理手順に戻る。
【０２２７】
第１余弦波信号Ｃｏｓθ１ｆの値が、第１余弦波信号Ｃｏｓθ１ｆの最大値の下限値ＭＡＸ１Ｌｉｍ＿Ｌ未満であるか、又は、第１余弦波信号Ｃｏｓθ１ｆの最大値の上限値ＭＡＸ１Ｌｉｍ＿Ｈよりも大きいとき（ステップＳ２６ａ；Ｎｏ）、第１ゲイン補正部１７２の第１余弦波ゲイン補正部１７２２は、第１余弦波信号Ｃｏｓθ１ｆの最大値異常と判定して余弦波信号最大値異常検知フラグＥＲＲ５−１をセットし（ステップＳ２８ａ）、図１９に示す回転角検出処理手順に戻る。すなわち、第１余弦波信号Ｃｏｓθ１ｆの最大値異常と判定した場合には、第１余弦波信号Ｃｏｓθ１ｆの最大値ＭＡＸ（Ｃｏｓθ１ｆ）の更新を行わない。
【０２２８】
第１正弦波信号Ｓｉｎθ１ｆのゼロ点検出時における第１余弦波信号Ｃｏｓθ１ｆの値が０未満（Ｃｏｓθ１ｆ＜０）であるとき（ステップＳ２６；Ｎｏ）、第１ゲイン補正部１７２は、ＥＥＰＲＯＭ１０４から第１正弦波信号Ｓｉｎθ１ｆの最小値ＭＩＮ（Ｓｉｎθ１ｆ）及び第１余弦波信号Ｃｏｓθ１ｆの最小値ＭＩＮ（Ｃｏｓθ１ｆ）の上限値ＭＩＮ１Ｌｉｍ＿Ｈ及び下限値ＭＩＮ１Ｌｉｍ＿Ｌを読み出し、第１余弦波信号Ｃｏｓθ１ｆの値が、第１余弦波信号Ｃｏｓθ１ｆの最小値の下限値ＭＩＮ１Ｌｉｍ＿Ｌ以上であり、且つ、第１余弦波信号Ｃｏｓθ１ｆの最小値の上限値ＭＩＮ１Ｌｉｍ＿Ｈ以下（ＭＩＮ１Ｌｉｍ＿Ｌ≦Ｃｏｓθ１ｆ≦ＭＩＮ１Ｌｉｍ＿Ｈ）であるか否かを判定する（ステップＳ２６ｂ）。
【０２２９】
第１余弦波信号Ｃｏｓθ１ｆの値が、第１余弦波信号Ｃｏｓθ１ｆの最小値の下限値ＭＩＮ１Ｌｉｍ＿Ｌ以上であり、且つ、第１余弦波信号Ｃｏｓθ１ｆの最小値の上限値ＭＩＮ１Ｌｉｍ＿Ｈ以下（ＭＩＮ１Ｌｉｍ＿Ｌ≦Ｃｏｓθ１ｆ≦ＭＩＮ１Ｌｉｍ＿Ｈ）であるとき（ステップＳ２６ｂ；Ｙｅｓ）、第１ゲイン補正部１７２は、第１余弦波信号Ｃｏｓθ１ｆの値を第１余弦波信号Ｃｏｓθ１ｆの最小値ＭＩＮ（Ｃｏｓθ１ｆ）としてＲＡＭ１０２上のデータを更新し（ステップＳ２７ｂ）、図１９に示す回転角検出処理手順に戻る。
【０２３０】
第１余弦波信号Ｃｏｓθ１ｆの値が、第１余弦波信号Ｃｏｓθ１ｆの最小値の下限値ＭＩＮ１Ｌｉｍ＿Ｌ未満であるか、又は、第１余弦波信号Ｃｏｓθ１ｆの最小値の上限値ＭＩＮ１Ｌｉｍ＿Ｈよりも大きいとき（ステップＳ２６ｂ；Ｎｏ）、第１ゲイン補正部１７２の第１余弦波ゲイン補正部１７２２は、第１余弦波信号Ｃｏｓθ１ｆの最小値異常と判定して余弦波信号最小値異常検知フラグＥＲＲ５−２をセットし（ステップＳ２８ｂ）、図１９に示す回転角検出処理手順に戻る。すなわち、第１余弦波信号Ｃｏｓθ１ｆの最小値異常と判定した場合には、第１余弦波信号Ｃｏｓθ１ｆの最小値ＭＩＮ（Ｃｏｓθ１ｆ）の更新を行わない。
【０２３１】
図１９に示す回転角検出処理手順に戻り、第１ゲイン補正部１７２の第１正弦波ゲイン補正部１７２１は、第１正弦波信号Ｓｉｎθ１ｆの値が０以上（Ｓｉｎθ１ｆ≧０）であるか否かを判定する（ステップＳ１０２ａ）。
【０２３２】
第１正弦波信号Ｓｉｎθ１ｆの値が０以上（Ｓｉｎθ１ｆ≧０）であるとき（ステップＳ１０２ａ；Ｙｅｓ）、第１正弦波ゲイン補正部１７２１は、上述した（１３’）式を用いて、第２正弦波信号Ｓｉｎθ１ｇを算出する（ステップＳ１０３ａ）。
【０２３３】
第１正弦波信号Ｓｉｎθ１ｆの値が０未満（Ｓｉｎθ１ｆ＜０）であるとき（ステップＳ１０２ａ；Ｎｏ）、第１正弦波ゲイン補正部１７２１は、上述した（１４’）式を用いて、第２正弦波信号Ｓｉｎθ１ｇを算出する（ステップＳ１０４ａ）。
【０２３４】
第１ゲイン補正部１７２の第１余弦波ゲイン補正部１７２２は、第１余弦波信号Ｃｏｓθ１ｆの値が０以上（Ｃｏｓθ１ｆ≧０）であるか否かを判定する（ステップＳ１０２ｂ）。
【０２３５】
第１余弦波信号Ｃｏｓθ１ｆの値が０以上（Ｃｏｓθ１ｆ≧０）であるとき（ステップＳ１０２ｂ；Ｙｅｓ）、第１余弦波ゲイン補正部１７２２は、上述した（１５’）式を用いて、第２余弦波信号Ｃｏｓθ１ｇを算出する（ステップＳ１０３ｂ）。
【０２３６】
第１余弦波信号Ｃｏｓθ１ｆの値が０未満（Ｃｏｓθ１ｆ＜０）であるとき（ステップＳ１０２ｂ；Ｎｏ）、第１余弦波ゲイン補正部１７２２は、上述した（１６’）式を用いて、第２余弦波信号Ｃｏｓθ１ｇを算出する（ステップＳ１０４ｂ）。
【０２３７】
第２ゲイン補正部１７３の位相変換部１７３３は、上述した（１７）式を用いて、第２正弦波信号Ｓｉｎθ１ｇを位相変換した第３正弦波信号ＶＣ＋Ｓを算出すると共に、上述した（１８）式を用いて、第２余弦波信号Ｃｏｓθ１ｇを位相変換した第３余弦波信号ＶＣ−Ｓを算出する（ステップＳ１０５）。
【０２３８】
続いて、位置検出部１７は、第３正弦波信号ＶＣ＋Ｓ及び第３余弦波信号ＶＣ−Ｓの最大値検出処理及び最小値検出処理を行う（ステップＳ３）。図２３は、第３正弦波信号及び第３余弦波信号の最大値検出処理及び最小値検出処理の一例を示すフローチャートである。
【０２３９】
第２ゲイン補正部１７３は、第３余弦波信号ＶＣ−Ｓのゼロ点（ＶＣ−Ｓ＝０）を検知する（ステップＳ３１）。第３余弦波信号ＶＣ−Ｓのゼロ点を検知していない場合（ステップＳ３１；Ｎｏ）、ステップＳ３５の処理に移行する。
【０２４０】
第３余弦波信号ＶＣ−Ｓのゼロ点を検知すると（ステップＳ３１；Ｙｅｓ）、第２ゲイン補正部１７３は、第３余弦波信号ＶＣ−Ｓのゼロ点検出時における第３正弦波信号ＶＣ＋Ｓの値が０以上（ＶＣ＋Ｓ≧０）であるか否かを判定する（ステップＳ３２）。
【０２４１】
第３余弦波信号ＶＣ−Ｓのゼロ点検出時における第３正弦波信号ＶＣ＋Ｓの値が０以上（ＶＣ＋Ｓ≧０）であるとき（ステップＳ３２；Ｙｅｓ）、第２ゲイン補正部１７３は、第３正弦波信号ＶＣ＋Ｓの値を第３正弦波信号ＶＣ＋Ｓの最大値ＭＡＸ（ＶＣ＋Ｓ）としてＲＡＭ１０２上のデータを更新し（ステップＳ３３）、ステップＳ３５の処理に移行する。
【０２４２】
第３余弦波信号ＶＣ−Ｓのゼロ点検出時における第３正弦波信号ＶＣ＋Ｓの値が０未満（ＶＣ＋Ｓ＜０）であるとき（ステップＳ３２；Ｎｏ）、第２ゲイン補正部１７３は、第３正弦波信号ＶＣ＋Ｓの値を第３正弦波信号ＶＣ＋Ｓの最小値ＭＩＮ（ＶＣ＋Ｓ）としてＲＡＭ１０２上のデータを更新し（ステップＳ３４）、ステップＳ３５の処理に移行する。
【０２４３】
続いて、第２ゲイン補正部１７３は、第３正弦波信号ＶＣ＋Ｓのゼロ点（ＶＣ＋Ｓ＝０）を検知する（ステップＳ３５）。第３正弦波信号ＶＣ＋Ｓのゼロ点を検知していない場合（ステップＳ３５；Ｎｏ）、図１９に示す回転角検出処理手順に戻る。
【０２４４】
第３正弦波信号ＶＣ＋Ｓのゼロ点を検知すると（ステップＳ３５；Ｙｅｓ）、第２ゲイン補正部１７３は、第３正弦波信号ＶＣ＋Ｓのゼロ点検出時における第３余弦波信号ＶＣ−Ｓの値が０以上（ＶＣ−Ｓ≧０）であるか否かを判定する（ステップＳ３６）。
【０２４５】
第３正弦波信号ＶＣ＋Ｓのゼロ点検出時における第３余弦波信号ＶＣ−Ｓの値が０以上（ＶＣ−Ｓ≧０）であるとき（ステップＳ３６；Ｙｅｓ）、第２ゲイン補正部１７３は、第３余弦波信号ＶＣ−Ｓの値を第３余弦波信号ＶＣ−Ｓの最大値ＭＡＸ（ＶＣ−Ｓ）としてＲＡＭ１０２上のデータを更新し（ステップＳ３７）、図１９に示す回転角検出処理手順に戻る。
【０２４６】
第３正弦波信号ＶＣ＋Ｓのゼロ点検出時における第３余弦波信号ＶＣ−Ｓの値が０未満（ＶＣ−Ｓ＜０）であるとき（ステップＳ３６；Ｎｏ）、第２ゲイン補正部１７３は、第３余弦波信号ＶＣ−Ｓの値を第３余弦波信号ＶＣ−Ｓの最小値ＭＩＮ（ＶＣ−Ｓ）としてＲＡＭ１０２上のデータを更新し（ステップＳ３８）、図１９に示す回転角検出処理手順に戻る。
【０２４７】
なお、上記のステップＳ３では、第３正弦波信号ＶＣ＋Ｓの最大値ＭＡＸ（ＶＣ＋Ｓ）、第３正弦波信号ＶＣ＋Ｓの最小値ＭＩＮ（ＶＣ＋Ｓ）、第３余弦波信号ＶＣ−Ｓの最大値ＭＡＸ（ＶＣ−Ｓ）、及び第３余弦波信号ＶＣ−Ｓの最小値ＭＩＮ（ＶＣ−Ｓ）を更新する例を示したが、第３正弦波信号ＶＣ＋Ｓの最大値ＭＡＸ（ＶＣ＋Ｓ）、第３正弦波信号ＶＣ＋Ｓの最小値ＭＩＮ（ＶＣ＋Ｓ）、第３余弦波信号ＶＣ−Ｓの最大値ＭＡＸ（ＶＣ−Ｓ）、及び第３余弦波信号ＶＣ−Ｓの最小値ＭＩＮ（ＶＣ−Ｓ）の値は、位相差の変化で変わるが、これは温度依存性が低く、経年変化も少ない。このため、第３正弦波信号ＶＣ＋Ｓの最大値ＭＡＸ（ＶＣ＋Ｓ）及び第３余弦波信号ＶＣ−Ｓの最大値ＭＡＸ（ＶＣ−Ｓ）を初期値ＭＡＸ２Ｒｅｆとし、第３正弦波信号ＶＣ＋Ｓの最小値ＭＩＮ（ＶＣ＋Ｓ）及び第３余弦波信号ＶＣ−Ｓの最大値ＭＡＸ（ＶＣ−Ｓ）を初期値ＭＩＮ２Ｒｅｆとして更新しない態様であっても良い。
【０２４８】
図１９に示す回転角検出処理手順に戻り、第２ゲイン補正部１７３の第２正弦波ゲイン補正部１７３１は、第３正弦波信号ＶＣ＋Ｓの値が０以上（ＶＣ＋Ｓ≧０）であるか否かを判定する（ステップＳ１０６ａ）。
【０２４９】
第３正弦波信号ＶＣ＋Ｓの値が０以上（ＶＣ＋Ｓ≧０）であるとき（ステップＳ１０６ａ；Ｙｅｓ）、第２正弦波ゲイン補正部１７３１は、上述した（１９’）式を用いて、第４正弦波信号Ｖ１Ｃ＋Ｓを算出する（ステップＳ１０７ａ）。
【０２５０】
第３正弦波信号ＶＣ＋Ｓの値が０未満（ＶＣ＋Ｓ＜０）であるとき（ステップＳ１０６ａ；Ｎｏ）、第２正弦波ゲイン補正部１７３１は、上述した（２０’）式を用いて、第４正弦波信号Ｖ１Ｃ＋Ｓを算出する（ステップＳ１０８ａ）。
【０２５１】
第２ゲイン補正部１７３の第２余弦波ゲイン補正部１７３２は、第３余弦波信号ＶＣ−Ｓの値が０以上（ＶＣ−Ｓ≧０）であるか否かを判定する（ステップＳ１０６ｂ）。
【０２５２】
第３余弦波信号ＶＣ−Ｓの値が０以上（ＶＣ−Ｓ≧０）であるとき（ステップＳ１０６ｂ；Ｙｅｓ）、第２余弦波ゲイン補正部１７３２は、上述した（２１’）式を用いて、第４余弦波信号Ｖ１Ｃ−Ｓを算出する（ステップＳ１０７ｂ）。
【０２５３】
第３余弦波信号ＶＣ−Ｓの値が０未満（ＶＣ−Ｓ＜０）であるとき（ステップＳ１０６ｂ；Ｎｏ）、第２余弦波ゲイン補正部１７３２は、上述した（２２’）式を用いて、第４余弦波信号Ｖ１Ｃ−Ｓを算出する（ステップＳ１０８ｂ）。
【０２５４】
角度算出部１７４の逆正接演算部１７４１は、上述した（２３）式を用いて、−９０ｄｅｇ＜θ１ｈ＜＋９０ｄｅｇの範囲内における角度θ１ｈを算出する（ステップＳ１０９）。
【０２５５】
角度算出部１７４の象限判定部１７４２は、第４余弦波信号Ｖ１Ｃ−Ｓが０以上（Ｖ１Ｃ−Ｓ≧０）であるか否かを判定する（ステップＳ１１０）。
【０２５６】
第４余弦波信号Ｖ１Ｃ−Ｓが０以上（Ｖ１Ｃ−Ｓ≧０）であるとき（ステップＳ１１０；Ｙｅｓ）、象限判定部１７４２は、上述した（２４）式を用いて、０ｄｅｇ＜θ１＜３６０ｄｅｇの範囲内におけるモータ２０の回転角θ１を算出する（ステップＳ１１１）。
【０２５７】
第４余弦波信号Ｖ１Ｃ−Ｓが０未満（Ｖ１Ｃ−Ｓ＜０）であるとき（ステップＳ１１０；Ｎｏ）、象限判定部１７４２は、上述した（２５）式を用いて、０ｄｅｇ＜θ１＜３６０ｄｅｇの範囲内におけるモータ２０の回転角θ１を算出する（ステップＳ１１２）。
【０２５８】
モータ電気角演算部１７４３は、象限判定部１７４２によって算出されたモータ２０の回転角θ１に基づき、モータ２０の磁極対数に対応し、電流制御の基準点にオフセット調整した電気角θ２を算出する（ステップＳ１１３）。
【０２５９】
以上のステップＳ１からＳ１１３までの処理を、所定のサンプリング周期（例えば、２５０μｓ）で繰り返し実行することで、リアルタイムでモータ２０の磁極対数に対応する電気角θ２が補正されるので、温度ドリフトや経時変化によって検出精度が低下することを抑制することができ、高い検出精度を維持することができる。
【０２６０】
なお、上述した例において、回転角検出装置２００は、モータ２０の電気角θ２を出力する態様について説明したが、図２及び図７に示すように、モータ２０の回転角θ１を出力する態様であっても良い。
【０２６１】
次に、実施形態に係る回転角検出装置２００を用いた電動パワーステアリング装置１００における回転角検出装置２００の故障判定処理について説明する。
【０２６２】
制御用コンピュータ１１０は、差分演算部１７１の正弦波差分演算部１７１１によってセット又はリセットされる正相正弦波信号入力値異常検知フラグＥＲＲ１−１、逆相正弦波信号入力値異常検知フラグＥＲＲ１−２、及び正弦波信号オフセット電圧値異常検知フラグＥＲＲ３−１、を監視し、各異常検知フラグのセット検出回数をカウントすることによって、回転角検出装置２００の故障を検知し、所定のエラー処理を行う機能を有している。
【０２６３】
また、制御用コンピュータ１１０は、差分演算部１７１の余弦波差分演算部１７１２によってセット又はリセットされる正相余弦波信号入力値異常検知フラグＥＲＲ２−１、逆相余弦波信号入力値異常検知フラグＥＲＲ２−２、及び余弦波信号オフセット電圧値異常検知フラグＥＲＲ３−２、を監視し、各異常検知フラグのセット検出回数をカウントすることによって、回転角検出装置２００の故障を検知し、所定のエラー処理を行う機能を有している。
【０２６４】
また、制御用コンピュータ１１０は、第１ゲイン補正部１７２の第１正弦波ゲイン補正部１７２１によってセット又はリセットされる正弦波信号最大値異常検知フラグＥＲＲ４−１及び正弦波信号最小値異常検知フラグＥＲＲ４−２、を監視し、各異常検知フラグのセット検出回数をカウントすることによって、回転角検出装置２００の故障を検知し、所定のエラー処理を行う機能を有している。
【０２６５】
また、制御用コンピュータ１１０は、第１ゲイン補正部１７２の第１余弦波ゲイン補正部１７２２によってセット又はリセットされる余弦波信号最大値異常検知フラグＥＲＲ５−１及び余弦波信号最小値異常検知フラグＥＲＲ５−２を監視し、各異常検知フラグのセット検出回数をカウントすることによって、回転角検出装置２００の故障を検知し、所定のエラー処理を行う機能を有している。
【０２６６】
図２４は、位置検出センサのみを２つ設けた構成例を示す図である。図２５は、モータ、位置検出センサ、及び位置検出部をそれぞれ２つ設けた構成例を示す図である。
【０２６７】
制御用コンピュータ１１０が行うエラー処理としては、例えば、図２４に示すように、２つの位置検出センサ２５−１，２５−２を設けた構成において、位置検出センサ２５−１を用いて上述した回転角検出処理を実施しているときに故障判定した場合に、位置検出センサ２５−２を用いて回転角検出処理を継続して行うことが考えられる。
【０２６８】
また、例えば、図２５に示すように、モータ２０−１と位置検出センサ２５−１と位置検出部１７−１とを含めた駆動系３００−１と、モータ２０−２と位置検出センサ２５−２と位置検出部１７−２とを含めた駆動系３００−２とを設けた構成において、通常は、駆動系３００−１と駆動系３００−２との両方で１００％のアシスト制御を行っているが、駆動系３００−１の回転角検出装置２００−１において故障を検知した場合に、駆動系３００−１での位置検出を停止し、駆動系３００−２のみで５０％のアシスト制御を継続することが考えられる。また、同様に、駆動系３００−２の回転角検出装置２００−２において故障を検知した場合に、駆動系３００−２での位置検出を停止し、駆動系３００−１のみで５０％のアシスト制御を継続することが考えられる。
【０２６９】
また、回転角検出処理が実施できなくなった場合に、アシスト制御を停止させることも考えられる。
【０２７０】
なお、上述したエラー処理は一例であり、これらに限定されない。
【０２７１】
以下、本実施形態に係る回転角検出装置２００の故障判定処理について説明する。図２６は、実施形態に係る回転角検出装置の故障判定処理手順の一例を示すフローチャートである。
【０２７２】
以下の説明では、上述した正相正弦波信号入力値異常検知フラグＥＲＲ１−１、逆相正弦波信号入力値異常検知フラグＥＲＲ１−２、正弦波信号オフセット電圧値異常検知フラグＥＲＲ３−１、正相余弦波信号入力値異常検知フラグＥＲＲ２−１、逆相余弦波信号入力値異常検知フラグＥＲＲ２−２、余弦波信号オフセット電圧値異常検知フラグＥＲＲ３−２、正弦波信号最大値異常検知フラグＥＲＲ４−１、正弦波信号最小値異常検知フラグＥＲＲ４−２、余弦波信号最大値異常検知フラグＥＲＲ５−１、及び、余弦波信号最小値異常検知フラグＥＲＲ５−２を、「異常検知フラグＥＲＲｘ」と総称する。ｘは、異常検知フラグの数を示し、１からｎまでの整数である。本実施形態では、上述した１０個の異常検知フラグについて説明したが、回転角検出装置２００の故障を示す他の異常検知フラグを含んでいても良い。また、異常検知フラグＥＲＲｘのうちの何れか１つを示す場合には、「異常検知フラグＥＲＲｐ」と称する。ｐは１からｎまでの整数である。
【０２７３】
図２６に示す故障判定処理において、制御用コンピュータ１１０は、まず、各異常検知フラグＥＲＲｐを監視して回転角検出装置２００の異常を検出する異常検出処理を行う（ステップＳ４）。図２７は、異常検出処理の一例を示すフローチャートである。
【０２７４】
制御用コンピュータ１１０は、異常検知フラグＥＲＲｐ毎に、図２７に示す異常検出処理を実施する。制御用コンピュータ１１０のＥＥＰＲＯＭ１０４には、異常検知フラグＥＲＲｐ毎の連続発生回数Ｎｐの上限値（以下、単に「異常検知フラグＥＲＲｐ連続発生回数上限値」と称する）Ｎｐｔｈが格納されている。
【０２７５】
制御用コンピュータ１１０は、異常検知フラグＥＲＲｐを監視し、異常検知フラグＥＲＲｐがセットされたか否かを判定する（ステップＳ４１）。
【０２７６】
異常検知フラグＥＲＲｐがセットされていなければ（ステップＳ４１；Ｎｏ）、制御用コンピュータ１１０は、異常検知フラグＥＲＲｐの連続発生回数Ｎｐをリセット（Ｎｐ＝０）すると共に、異常検知フラグＥＲＲｐの連続発生フラグ（以下、単に「ＥＲＲｐ連続発生フラグ」と称する）をリセットし（ステップＳ４２）、ステップＳ４１の処理を繰り返し行う。
【０２７７】
異常検知フラグＥＲＲｐがセットされていれば（ステップＳ４１；Ｙｅｓ）、制御用コンピュータ１１０は、異常検知フラグＥＲＲｐの連続発生回数Ｎｐをインクリメント（Ｎｐ＝Ｎｐ＋１）し（ステップＳ４３）、続いて、異常検知フラグＥＲＲｐの連続発生回数Ｎｐが異常検知フラグＥＲＲｐ連続発生回数上限値Ｎｐｔｈ以上（Ｎｐ≧Ｎｐｔｈ）であるか否かを判定する（ステップＳ４４）。
【０２７８】
異常検知フラグＥＲＲｐの連続発生回数Ｎｐが異常検知フラグＥＲＲｐ連続発生回数上限値Ｎｐｔｈ未満（Ｎｐ＜Ｎｐｔｈ）であれば（ステップＳ４４；Ｎｏ）、ステップＳ４１の処理に戻る。
【０２７９】
異常検知フラグＥＲＲｐの連続発生回数Ｎｐが異常検知フラグＥＲＲｐ連続発生回数上限値Ｎｐｔｈ以上（Ｎｐ≧Ｎｐｔｈ）であれば（ステップＳ４４；Ｙｅｓ）、制御用コンピュータ１１０は、ＥＲＲｐ連続発生フラグをセットし（ステップＳ４５）、図２６に示す故障判定処理手順に戻る。
【０２８０】
制御用コンピュータ１１０は、異常検知フラグＥＲＲｘのうちの何れか１つ以上において、ＥＲＲｐ連続発生フラグがセットされたか否かを判定する（ステップＳ２０１）。ＥＲＲｐ連続発生フラグがセットされていなければ（ステップＳ２０１；Ｎｏ）、ステップＳ４の処理を繰り返し行う。
【０２８１】
ＥＲＲｐ連続発生フラグがセットされていれば（ステップＳ２０１；Ｙｅｓ）、制御用コンピュータ１１０は、上述した所定のエラー処理を行い（ステップＳ２０２）、当該故障判定処理を終了する。
【０２８２】
なお、異常検知フラグＥＲＲｐ連続発生回数上限値Ｎｐｔｈの値は、異常検知フラグＥＲＲｐ毎に異なる値が設定されていても良いし、複数種の異常検知フラグＥＲＲｐで同一の値を共有する態様であっても良い。
【０２８３】
なお、上述した実施形態では、第１正弦波信号Ｓｉｎθ１ｆの最大値ＭＡＸ（Ｓｉｎθ１ｆ）、第１余弦波信号Ｃｏｓθ１ｆの最小値ＭＩＮ（Ｃｏｓθ１ｆ）、第１正弦波信号Ｓｉｎθ１ｆの最小値ＭＩＮ（Ｓｉｎθ１ｆ）、及び第１余弦波信号Ｃｏｓθ１ｆの最大値ＭＡＸ（Ｃｏｓθ１ｆ）の上限値、初期値、下限値、並びに、第３正弦波信号ＶＣ＋Ｓの最大値ＭＡＸ（ＶＣ＋Ｓ）、第３正弦波信号ＶＣ＋Ｓの最小値ＭＩＮ（ＶＣ＋Ｓ）、第３余弦波信号ＶＣ−Ｓの最大値ＭＡＸ（ＶＣ−Ｓ）、第３余弦波信号ＶＣ−Ｓの最小値ＭＩＮ（ＶＣ−Ｓ）の初期値、及び各異常検知フラグＥＲＲｐ連続発生回数上限値Ｎｐｔｈの値は、ＥＥＰＲＯＭ１０４（第１記憶部）に記憶される例を示したが、ＥＥＰＲＯＭ１０４以外に第１記憶部を設け、この第１記憶部に記憶される態様であっても良い。第１記憶部の構成により本開示が限定されるものではない。
【０２８４】
また、上述した実施形態では、上述した回転角検出処理において、第１正弦波信号Ｓｉｎθ１ｆの最大値ＭＡＸ（Ｓｉｎθ１ｆ）、第１余弦波信号Ｃｏｓθ１ｆの最小値ＭＩＮ（Ｃｏｓθ１ｆ）、第１正弦波信号Ｓｉｎθ１ｆの最小値ＭＩＮ（Ｓｉｎθ１ｆ）、第１余弦波信号Ｃｏｓθ１ｆの最大値ＭＡＸ（Ｃｏｓθ１ｆ）、第３正弦波信号ＶＳの最大値ＭＡＸ（ＶＣ＋Ｓ）、第３正弦波信号ＶＣ＋Ｓの最小値ＭＩＮ（ＶＣ＋Ｓ）、第３余弦波信号ＶＣの最大値ＭＡＸ（ＶＣ−Ｓ）、第３余弦波信号ＶＣ−Ｓの最小値ＭＩＮ（ＶＣ−Ｓ）は、ＲＡＭ１０２（第２記憶部）に記憶される例を示したが、ＲＡＭ１０２以外に第２記憶部を設け、この第２記憶部に記憶される態様であっても良い。第２記憶部の構成により本開示が限定されるものではない。
【０２８５】
また、上述した実施形態では、車両を実際に走行させる実運用時にリアルタイムで回転角検出装置２００のキャリブレーションを行う例を示したが、これに併せて、電動パワーステアリング装置１００の出荷前に、モータ２０に位置検出センサ２５が組み込まれた状態で、回転角検出装置２００の初期キャリブレーションを行う構成であっても良い。
【符号の説明】
【０２８６】
１  ハンドルホイール（ステアリング）
２  コラム軸
３  減速ギヤ
４ａ、４ｂ  ユニバーサルジョイント
１０  トルクセンサ
１１  イグニッションスイッチ
１２  車速センサ
１４  バッテリ
１５  モータ駆動回路
１６  モータ電流検出回路
１７，１７−１，１７−２  位置検出部
２０，２０−１，２０−２  モータ
２０ａ  モータシャフト
２５，２５−１，２５−２  位置検出センサ
３０  コントロールユニット（ＥＣＵ）
３１  アシスト機能部
３１ａ  電流指令値算出部
３１ｂ  電流制御部
１００  電動パワーステアリング（ＥＰＳ）装置
１０１  ＣＰＵ
１０２  ＲＡＭ（第２記憶部）
１０３  ＲＯＭ
１０４  ＥＥＰＲＯＭ（第１記憶部）
１０５  インターフェース
１０６  Ａ／Ｄ変換器
１０７  ＰＷＭコントローラ
１１０  制御用コンピュータ（ＭＣＵ）
１７１  差分演算部
１７２  第１ゲイン補正部
１７３  第２ゲイン補正部
１７４  角度算出部
２００，２００−１，２００−２  回転角検出装置
２５１  回転磁石
２５２  ＭＲセンサ
３００−１，３００−２  駆動系
１７１１  正弦波差分演算部
１７１２  余弦波差分演算部
１７２１  第１正弦波ゲイン補正部
１７２２  第１余弦波ゲイン補正部
１７２３  回転数閾値判定部
１７３１  第２正弦波ゲイン補正部
１７３２  第２余弦波ゲイン補正部
１７３３  位相変換部
１７４１  逆正接演算部
１７４２  象限判定部
【図１】
2019144056.tif 000003
【図２】
2019144056.tif 000004
【図３】
2019144056.tif 000005
【図４】
2019144056.tif 000006
【図５】
2019144056.tif 000007
【図６】
2019144056.tif 000008
【図７】
2019144056.tif 000009
【図８】
2019144056.tif 000010
【図９】
2019144056.tif 000011
【図１０】
2019144056.tif 000012
【図１１】
2019144056.tif 000013
【図１２】
2019144056.tif 000014
【図１３】
2019144056.tif 000015
【図１４】
2019144056.tif 000016
【図１５】
2019144056.tif 000017
【図１６】
2019144056.tif 000018
【図１７】
2019144056.tif 000019
【図１８】
2019144056.tif 000020
【図１９】
2019144056.tif 000021
【図２０】
2019144056.tif 000022
【図２１】
2019144056.tif 000023
【図２２】
2019144056.tif 000024
【図２３】
2019144056.tif 000025
【図２４】
2019144056.tif 000026
【図２５】
2019144056.tif 000027
【図２６】
2019144056.tif 000028
【図２７】
2019144056.tif 000029