(57)【特許請求の範囲】
【請求項１】
ブラシレスモータの回転に応じて互いに位相差を有する２つの正弦波信号を出力するセンサを含み、これらの正弦波信号に基づいて前記ブラシレスモータを制御するモータ制御装置であって、
２つの正弦波信号のうちの一方に異常が発生した場合に、正常な正弦波信号から予測される第１の回転角候補および第２の回転角候補のうちの一方の回転角候補を、前記ブラシレスモータの回転角として推定する回転角推定手段と、
前記回転角推定手段によって推定された回転角に基づいて、前記ブラシレスモータによって本来発生されるべきトルクと逆方向のトルクが発生されないように、前記ブラシレスモータを制御する制御手段とを含み、
前記制御手段は、
目標モータトルクを設定するモータトルク設定手段と、
前記モータトルク設定手段によって設定される目標モータトルクに応じた指示電流値を生成する指示電流値生成手段と、
前記ブラシレスモータに流れる電流を検出する電流検出手段と、
前記ブラシレスモータによって発生している実モータトルクを検出するモータトルク検出手段と、
前記モータトルク設定手段によって設定される目標モータトルクと前記モータトルク検出手段によって検出される実モータトルクとの偏差に基づいて、前記回転角推定手段によって推定される回転角を補正する回転角補正手段と、
前記回転角補正手段によって補正された回転角を用いて、前記電流検出手段によって検出される電流と前記指示電流値生成手段によって生成される指示電流値との偏差が零になるように、前記ブラシレスモータの駆動電流を制御する手段とを含む、モータ制御装置。
【請求項２】
前記回転角補正手段は、前記モータトルク設定手段によって設定される目標モータトルクと前記モータトルク検出手段によって検出される実モータトルクとの偏差に基づいて、前記第１の回転角候補および前記第２の回転角候補のうちの一方を補正後の回転角として選択するものである、請求項１に記載のモータ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ブラシレスモータを駆動するためのモータ制御装置に関する。
【背景技術】
【０００２】
電動パワーステアリング装置などに使用されるブラシレスモータは、ロータの回転角度に合わせてステータ巻線に電流を通電することによって制御される。そこで、ブラシレスモータの回転に応じて回転する検出用ロータを用いて、ブラシレスモータのロータの回転角を検出する回転角検出装置が知られている。具体的には、図２０に示すように、検出用ロータ１０１は、ブラシレスモータのロータに設けられている磁極対に相当する複数の磁極対を有する円筒状の磁石１０２を備えている。検出用ロータ１０１の周囲には、２つの磁気センサ１１１，１１２が、検出用ロータ１０１の回転中心軸を中心として所定の角度間隔をおいて配置されている。各磁気センサ１１１，１１２からは、所定の位相差を有する正弦波信号が出力される。これらの２つの正弦波信号に基づいて、検出用ロータ１０１の回転角（ブラシレスモータのロータの回転角）が検出される。
【０００３】
この例では、磁石１０２は、５組の磁極対を有している。つまり、磁石１０２は、等角度間隔で配置された１０個の磁極を有している。各磁極は、検出用ロータ１０１の回転中心軸を中心として、３６°（電気角では１８０°）の角度間隔で配置されている。また、２つの磁気センサ１１１，１１２は、検出用ロータ１０１の回転中心軸を中心として１８°（電気角では９０°）の角度間隔をおいて配置されている。
【０００４】
図２０に矢印で示す方向を検出用ロータ１０１の正方向の回転方向とする。そして、検出用ロータ１０１が正方向に回転されると検出用ロータ１０１の回転角が大きくなり、検出用ロータ１０１が逆方向に回転されると、検出用ロータ１０１の回転角が小さくなるものとする。各磁気センサ１１１，１１２からは、図２１に示すように、検出用ロータ１０１が１磁極対分に相当する角度（７２°（電気角では３６０°））を回転する期間を一周期とする正弦波信号Ｖ１，Ｖ２が出力される。
【０００５】
所定の基準位置からの検出用ロータ１０１の絶対的な回転角を、検出用ロータ１０１の絶対回転角（機械角に応じた回転角）θＡということにする。検出用ロータ１０１の１回転分の角度範囲を、５つの磁極対に対応して５つの区間に分け、各区間の開始位置を０°とし終了位置を３６０°として表した検出用ロータ１０１の角度を、検出用ロータ１０１の相対回転角θＥということにする。ロータ１０１の相対回転角θＥは、ブラシレスモータのロータの電気角と一致する。
【０００６】
ここでは、第１の磁気センサ１１１からは、Ｖ１＝φ１sinθＥの出力信号が出力され、第２の磁気センサ１１２からは、Ｖ２＝φ２cosθＥの出力信号が出力されるものとする。φ１，φ２は、振幅である。両出力信号Ｖ１，Ｖ２の振幅φ１，φ２が互いに等しいとみなすと、ロータ１０１の相対回転角θＥは、両出力信号Ｖ１，Ｖ２を用いて、次式(1)に基づいて求めることができる。
【０００７】
θＥ＝tan−１（sinθＥ／cosθＥ）
＝tan−１（Ｖ１／Ｖ２）      …(1)
このようにして、求められた相対回転角（ブラシレスモータのロータの電気角）θＥを使って、ブラシレスモータを制御する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開2002-81961号公報
【特許文献２】特開2004-291923号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
前述したような従来の回転角検出装置をブラシレスモータのロータの回転角を検出するために用いた場合には、２つの磁気センサ１１１，１１２のうちのいずれか一方が故障した場合には、ロータの回転角を検出できなくなる。そこで、このような場合には、ブラシレスモータの駆動を停止させている。このため、ブラシレスモータが電動パワーステアリング装置に使用されている場合には、操舵補助力が得られなくなる。
【００１０】
この発明の目的は、ブラシレスモータのロータの回転角を検出するために用いられる２つの正弦波信号のうちのいずれか一方に異常が発生した場合においても、正常な一つの正弦波信号に基づいて、ブラシレスモータを駆動することができるモータ制御装置を提供することである。
【課題を解決するための手段】
【００１１】
上記の目的を達成するための請求項１記載の発明は、ブラシレスモータの回転に応じて互いに位相差を有する２つの正弦波信号を出力するセンサを含み、これらの正弦波信号に基づいて前記ブラシレスモータを制御するモータ制御装置であって、２つの正弦波信号のうちの一方に異常が発生した場合に、正常な正弦波信号から予測される第１の回転角候補および第２の回転角候補のうちの一方の回転角候補を、前記ブラシレスモータの回転角として推定する回転角推定手段と、前記回転角推定手段によって推定された回転角に基づいて、前記ブラシレスモータによって本来発生されるべきトルクと逆方向のトルクが発生されないように、前記ブラシレスモータを制御する制御手段とを含み、前記制御手段は、目標モータトルクを設定するモータトルク設定手段と、前記モータトルク設定手段によって設定される目標モータトルクに応じた指示電流値を生成する指示電流値生成手段と、前記ブラシレスモータに流れる電流を検出する電流検出手段と、前記ブラシレスモータによって発生している実モータトルクを検出するモータトルク検出手段と、前記モータトルク設定手段によって設定される目標モータトルクと前記モータトルク検出手段によって検出される実モータトルクとの偏差に基づいて、前記回転角推定手段によって推定される回転角を補正する回転角補正手段と、前記回転角補正手段によって補正された回転角を用いて、前記電流検出手段によって検出される電流と前記指示電流値生成手段によって生成される指示電流値との偏差が零になるように、前記ブラシレスモータの駆動電流を制御する手段とを含む、モータ制御装置である。
【００１２】
この構成では、２つの正弦波信号のうちの一方に異常が発生した場合に、正常な正弦波信号から予測される第１の回転角候補および第２の回転角候補のうちの一方の回転角候補が、ブラシレスモータの回転角として推定される。そして、推定された回転角に基づいて、ブラシレスモータによって本来発生されるべきトルクと逆方向のトルクが発生されないように、ブラシレスモータが制御される。これにより、２つの正弦波信号のうちのいずれか一方に異常が発生した場合においても、正常な一つの正弦波信号に基づいて、ブラシレスモータを駆動することができるようになる。
【００１６】
より具体的には、回転角補正手段によって、目標モータトルクと実モータトルクとの偏差に基づいて、回転角推定手段によって推定される回転角が補正される。そして、補正された回転角を用いて、電流検出手段によって検出される電流と指示電流値生成手段によって生成される指示電流値との偏差が零になるように、ブラシレスモータの駆動電流が制御される。
【００１７】
回転角推定手段によって推定された回転角が実際のブラシレスモータの回転角（実回転角）とほぼ等しい場合には、目標モータトルクと実モータトルクとの偏差の絶対値（トルク偏差の絶対値）は小さくなる。一方、回転角推定手段によって推定された回転角が実回転角と異なる場合には、トルク偏差の絶対値は大きくなる。そこで、たとえば、回転角補正手段は、トルク偏差の絶対値が大きいときには、回転角推定手段によって推定された回転角をトルク偏差の絶対値に基づいて補正することにより、補正後の回転角を実回転角に近づけることが可能となる。これにより、２つの正弦波信号のうちのいずれか一方に異常が発生した場合においても、正常な一つの正弦波信号に基づいて、ブラシレスモータを駆動することができるようになる。
【００１８】
請求項２記載の発明は、前記回転角補正手段は、前記モータトルク設定手段によって設定される目標モータトルクと前記モータトルク検出手段によって検出される実モータトルクとの偏差に基づいて、前記第１の回転角候補および前記第２の回転角候補のうちの一方を補正後の回転角として選択するものである、請求項１に記載のモータ制御装置である。
この構成では、目標モータトルクと実モータトルクとの偏差に基づいて、第１の回転角候補および第２の回転角候補のうちの一方が補正後の回転角として選択される。回転角補正手段は、たとえば、第１の回転角候補に基づいてブラシレスモータの駆動電流が制御されている場合に、目標モータトルクと実モータトルクとの偏差の絶対値（トルク偏差の絶対値）が所定のしきい値より大きくなったときに第２の回転角候補を選択し、第２の回転角候補に基づいてブラシレスモータの駆動電流が制御されている場合に、トルク偏差の絶対値が所定のしきい値より大きくなったときに１の回転角候補を選択するものであってもよい。これにより、２つの正弦波信号のうちのいずれか一方に異常が発生した場合においても、正常な一つの正弦波信号に基づいて、ブラシレスモータを駆動することができる。
【図面の簡単な説明】
【００１９】
【図１】この発明の第１の実施形態に係るモータ制御装置を適用した電動パワーステアリング装置の電気的構成を説明するためのブロック図である。
【図２】モータの構成を説明するための図解図である。
【図３】ｄ軸指示電流値の設定例を示す模式図である。
【図４】第１の磁気センサの出力信号波形および第２の磁気センサの出力信号波形を示す模式図である。
【図５】センサ故障判定部の動作を示すフローチャートである。
【図６】両磁気センサが正常である場合の、実回転角に対する相電流およびモータトルクを示す模式図である。
【図７】第２の磁気センサの出力信号波形および当該出力信号に基づいて演算される回転角の範囲を説明するための模式図である。
【図８】第１の磁気センサが故障したときに、指示電流値をゲイン補正せずに第２の回転角に基づいてモータを制御した場合の、実回転角に対する相電流およびモータトルクを示す模式図である。
【図９】第１の磁気センサが故障したときに、ゲイン補正後の指示電流値および第２の回転角に基づいてモータを制御した場合の、実回転角に対する第２ゲイン、相電流およびモータトルクを示す模式図である。
【図１０】第１の磁気センサの出力信号波形および当該出力信号に基づいて演算される回転角の範囲を説明するための模式図である。
【図１１】第２の磁気センサが故障したときに、指示電流値をゲイン補正せずに第２の回転角に基づいてモータを制御した場合の、実回転角に対する相電流およびモータトルクを示す模式図である。
【図１２】第２の磁気センサが故障したときに、ゲイン補正後の指示電流値および第２の回転角に基づいてモータを制御した場合の、実回転角に対する第２ゲイン、相電流およびモータトルクを示す模式図である。
【図１３】この発明の第２の実施形態に係るモータ制御装置を適用した電動パワーステアリング装置の電気的構成を説明するためのブロック図である。
【図１４】この発明の第３の実施形態に係るモータ制御装置を適用した電動パワーステアリング装置の電気的構成を説明するためのブロック図である。
【図１５】第１の磁気センサの出力信号波形、当該出力信号に基づいて演算される回転角および回転角補正値を説明するための模式図である。
【図１６】第２の磁気センサが故障したときに、第１の出力信号から推定された回転角θＲに基づいてモータを制御した場合の、実回転角に対する目標モータトルクおよび実モータトルクを示す模式図である。
【図１７】第２の磁気センサが故障した場合における第２の回転角演算部の動作を示すフローチャートである。
【図１８】第２の回転角演算部の変形例を示し、第２の磁気センサが故障した場合における第２の回転角演算部の動作を示すフローチャートである。
【図１９】第２の回転角演算部の変形例を示し、第１の磁気センサが故障した場合における第２の回転角演算部の動作を示すフローチャートである。
【図２０】従来の回転角検出装置による回転角検出方法を説明するための模式図である。
【図２１】第１の磁気センサの出力信号波形および第２の磁気センサの出力信号波形を示す模式図である。
【発明を実施するための形態】
【００２０】
以下では、この発明の実施形態を、添付図面を参照して詳細に説明する。
図１は、この発明の第１の実施形態に係るモータ制御装置を適用した電動パワーステアリング装置（車両用操舵装置の一例）の電気的構成を説明するためのブロック図である。
この電動パワーステアリング装置は、車両を操向するための操作部材としてのステアリングホイール１０に加えられる操舵トルクＴを検出するトルクセンサ１と、車両の舵取り機構２に減速機構８を介して操舵補助力を与えるモータ３（ブラシレスモータ）と、モータ３の回転角（電気角）を検出するための第１の磁気センサ４および第２の磁気センサ５と、モータ３を駆動制御するモータ制御装置６と、当該電動パワーステアリング装置が搭載された車両の速度を検出する車速センサ７とを備えている。
【００２１】
モータ制御装置６は、トルクセンサ１が検出する操舵トルクおよび車速センサ７が検出する車速に応じてモータ３を駆動することによって、操舵状況および車速に応じた適切な操舵補助を実現する。
モータ３は、この実施形態では、三相ブラシレスモータであり、図２に図解的に示すように、界磁としてのロータ５０と、このロータ５０に対向するステータ５５に配置されたＵ相、Ｖ相およびＷ相のステータ巻線５１，５２，５３とを備えている。モータ３は、ロータの外部にステータを対向配置したインナーロータ型のものであってもよいし、筒状のロータの内部にステータを対向配置したアウターロータ型のものであってもよい。
【００２２】
各相のステータ巻線５１，５２，５３の方向にＵ軸、Ｖ軸およびＷ軸をとった三相固定座標（ＵＶＷ座標系）が定義される。また、ロータ５０の磁極方向にｄ軸（磁極軸）をとり、ロータ５０の回転平面内においてｄ軸と直角な方向にｑ軸（トルク軸）をとった二相回転座標系（ｄｑ座標系。実回転座標系）が定義される。ｄｑ座標系は、ロータ５０とともに回転する回転座標系である。ｄｑ座標系では、ｑ軸電流のみがロータ５０のトルク発生に寄与するので、ｄ軸電流を零とし、ｑ軸電流を所望のトルクに応じて制御すればよい。ロータ５０の回転角θＭは、Ｕ軸に対するｄ軸の回転角である。ｄｑ座標系は、ロータ角θＭに従う実回転座標系である。このロータ角θＭを用いることによって、ＵＶＷ座標系とｄｑ座標系との間での座標変換を行うことができる。
【００２３】
図１に戻り、モータ制御装置６は、電流検出部１３、信号処理部としてのマイクロコンピュータ１１および駆動回路１２を有する。このモータ制御装置６に、前述の磁気センサ４，５、トルクセンサ１および車速センサ７が接続されている。
電流検出部１３は、モータ３のステータ巻線５１，５２，５３（図２参照）を流れる電流を検出する。より具体的には、電流検出部１３は、三相（Ｕ相、Ｖ相およびＷ相）のステータ巻線５１，５２，５３における相電流をそれぞれ検出する電流検出器を有する。
【００２４】
マイクロコンピュータ１１は、ＣＰＵおよびメモリ（ＲＯＭおよびＲＡＭなど）を備えており、所定のプログラムを実行することによって、複数の機能処理部として機能する。この複数の機能処理部には、指示電流値生成部２１と、ゲイン乗算部２２と、電流偏差演算部２３と、ＰＩ（比例積分）制御部２４と、ｄｑ／ＵＶＷ変換部２５と、ＰＷＭ（Pulse Width Modulation）制御部２６と、ＵＶＷ／ｄｑ変換部２７と、第１の回転角演算部３１と、センサ故障判定部３２と、第２の回転角演算部３３と、第１スイッチ３４と、ゲイン演算部３５と、第２スイッチ３６とが含まれている。
【００２５】
第１の回転角演算部３１は、第１の磁気センサ４の出力信号（以下、「第１の出力信号Ｖ１」という）および第２の磁気センサ５の出力信号（以下、「第２の出力信号Ｖ２」という）に基づいて、モータ３のロータ５０の回転角（電気角。以下、「第１の回転角θ１」という。）を演算するものである。第１の回転角演算部３１の動作の詳細については、後述する。
【００２６】
センサ故障判定部３２は、第１の出力信号Ｖ１および第２の出力信号Ｖ２に基づいて、いずれかの磁気センサ４，５に故障が発生したか否かを判定するとともに、故障した磁気センサを特定するものである。センサ故障判定部３２の動作の詳細については、後述する。
第２の回転角演算部３３は、センサ故障判定部３２によっていずれか一方の磁気センサ４，５に故障が発生したことが検出されたときに、正常な一つ磁気センサの出力信号に基づいて、モータ３のロータ５０の回転角（電気角。以下、「第２の回転角θ２」という。）を演算（推定）するものである。第２の回転角演算部３３の動作の詳細については、後述する。
【００２７】
第１スイッチ３４は、第１の回転角演算部３１によって演算された第１の回転角θ１と、第２の回転角演算部３３によって演算された第２の回転角θ２とのうちのいずれか一方を選択して、座標変換用の変換角θＳとして出力するものである。具体的には、センサ故障判定部３２によってセンサ故障が検出されていないときには、第１スイッチ３４は第１の回転角θ１を選択して座標変換用の変換角θＳとして出力する。一方、センサ故障判定部３２によってセンサ故障が検出されているときには、第１スイッチ３４は第２の回転角θ２を選択して座標変換用の変換角θＳとして出力する。
【００２８】
ゲイン演算部３５は、センサ故障判定部３２によってセンサ故障が検出されているときには、センサ故障判定部３２によって特定された故障センサの識別情報と、第２の回転角演算部３３によって演算された第２の回転角θ２とに基づいて、第２ゲインＧ２を演算する。ゲイン演算部３５の動作の詳細については、後述する。
第２スイッチ３６は、第１ゲインＧ１と、ゲイン演算部３５によって演算された第２ゲインＧ２とのうちのいずれか一方を選択し、指示電流制御用のゲインＧとして出力するものである。具体的には、センサ故障判定部３２によってセンサ故障が検出されていないときには、第２スイッチ３６は第１ゲインＧ１を選択して、指示電流制御用のゲインＧとして出力する。第１ゲインＧ１は、”１”に固定されている。センサ故障判定部３２によってセンサ故障が検出されているときには、第２スイッチ３４は第２ゲインＧ２を選択して、指示電流制御用のゲインＧとして出力する。
【００２９】
指示電流値生成部２１は、ｄｑ座標系の座標軸に流すべき電流値を指示電流値として生成するものである。具体的には、ｄ軸指示電流値Ｉｄ＊およびｑ軸指示電流値Ｉｑ＊（以下、これらを総称するときには「二相指示電流値Ｉｄｑ＊」という。）を生成する。さらに具体的には、指示電流値生成部２１は、ｑ軸指示電流値Ｉｑ＊を有意値とする一方で、ｄ軸指示電流値Ｉｄ＊を零とする。より具体的には、指示電流値生成部２１は、トルクセンサ１により検出される操舵トルク（検出操舵トルク）Ｔと、車速センサ７により検出される車速とに基づいてｑ軸指示電流値Ｉｑ＊を設定する。
【００３０】
検出操舵トルクＴに対するｑ軸指示電流値Ｉｑ＊の設定例は、図３に示されている。検出操舵トルクＴは、たとえば右方向への操舵のためのトルクが正の値にとられ、左方向への操舵のためのトルクが負の値にとられている。また、ｑ軸指示電流値Ｉｑ＊は、モータ３から右方向操舵のための操舵補助力を発生させるべきときには正の値とされ、モータ３から左方向操舵のための操舵補助力を発生させるべきときには負の値とされる。ｑ軸指示電流値Ｉｑ＊は、検出操舵トルクＴの正の値に対しては正をとり、検出操舵トルクＴの負の値に対しては負をとる。検出操舵トルクＴが−Ｔ１〜Ｔ１（たとえば、Ｔ１＝０．４Ｎ・ｍ）の範囲（トルク不感帯）の微小な値のときには、ｑ軸指示電流値Ｉｑ＊は零とされる。また、ｑ軸指示電流値Ｉｑ＊は、車速センサ７によって検出される車速が大きいほど、その絶対値が小さくなるように設定されるようになっている。これにより、低速走行時には大きな操舵補助力を発生させることができ、高速走行時には操舵補助力を小さくすることができる。
【００３１】
指示電流値生成部２１によって生成された二相指示電流値Ｉｄｑ＊は、ゲイン乗算部２２に与えられる。ゲイン乗算部２２は、第２スイッチ３６によって選択されたゲインＧを、二相指示電流値Ｉｄｑ＊に乗算する。ゲイン乗算部２２の出力（ゲイン補正後の指示電流値Ｇ・Ｉｄｑ＊）は、電流偏差演算部２３に与えられる。
電流検出部１３は、モータ３のＵ相電流ＩＵ、Ｖ相電流ＩＶ、Ｗ相電流ＩＷ（以下、これらを総称するときには「三相検出電流ＩＵＶＷ」という。）を検出する。電流検出部１３によって検出された三相検出電流ＩＵＶＷは、ＵＶＷ／ｄｑ変換部２７に与えられる。
【００３２】
ＵＶＷ／ｄｑ変換部２７は、三相検出電流ＩＵＶＷを、二相回転座標系(ｄｑ座標系）上でのｄ軸電流Ｉｄおよびｑ軸電流Ｉｑ（以下、これらを総称するときには「二相検出電流Ｉｄｑ」という。）に座標変換する。この座標変換には、第１スイッチ３４によって選択された変換角θＳが用いられる。
電流偏差演算部２３は、ゲイン補正後の二相指示電流値Ｇ・Ｉｄｑ＊と、ＵＶＷ／ｄｑ変換部２７から与えられる二相検出電流Ｉｄｑとの偏差を演算する。より具体的には、電流偏差演算部２３は、ゲイン補正後のｄ軸指示電流値Ｇ・Ｉｄ＊に対するｄ軸検出電流Ｉｄの偏差およびゲイン補正後のｑ軸指示電流値Ｇ・Ｉｑ＊に対するｑ軸検出電流Ｉｑの偏差を演算する。これらの偏差は、ＰＩ制御部２４に与えられる。
【００３３】
ＰＩ制御部２４は、偏差演算部２３によって演算された電流偏差に対するＰＩ演算を行なうことにより、モータ３に印加すべき二相指示電圧Ｖｄｑ＊（ｄ軸指示電圧Ｖｄ＊およびｑ軸指示電圧Ｖｑ＊）を生成する。この二相指示電圧Ｖｄｑ＊は、ｄｑ／ＵＶＷ変換部２５に与えられる。
ｄｑ／ＵＶＷ変換部２５は、二相指示電圧Ｖｄｑ＊を三相指示電圧ＶＵＶＷ＊に変換する。この座標変換には、第１スイッチ３４によって選択された変換角θＳが用いられる。三相指示電圧ＶＵＶＷ＊は、Ｕ相指示電圧ＶＵ＊、Ｖ相指示電圧ＶＶ＊およびＷ相指示電圧ＶＷ＊からなる。この三相指示電圧ＶＵＶＷ＊は、ＰＷＭ制御部２６に与えられる。
【００３４】
ＰＷＭ制御部２６は、Ｕ相指示電圧ＶＵ＊、Ｖ相指示電圧ＶＶ＊およびＷ相指示電圧ＶＷ＊にそれぞれ対応するデューティのＵ相ＰＷＭ制御信号、Ｖ相ＰＷＭ制御信号およびＷ相ＰＷＭ制御信号を生成し、駆動回路１２に供給する。
駆動回路１２は、Ｕ相、Ｖ相およびＷ相に対応した三相コンバータ回路からなる。このインバータ回路を構成するパワー素子がＰＷＭ制御部２６から与えられるＰＷＭ制御信号によって制御されることにより、三相指示電圧ＶＵＶＷ＊に相当する電圧がモータ３の各相のステータ巻線５１，５２，５３に印加されることになる。
【００３５】
電流偏差演算部２３およびＰＩ制御部２４は、電流フィードバック制御手段を構成している。この電流フィードバック制御手段の働きによって、モータ３に流れる電流が、ゲイン補正後の二相指示電流値Ｇ・Ｉｄｑ＊に近づくように制御される。
このような構成によって、ステアリングホイール１０に操舵トルクが加えられると、これがトルクセンサ１によって検出される。そして、トルクセンサ１によって検出された操舵トルクおよび車速センサ７によって検出された車速に応じた指示電流値Ｉｄｑ＊が指示電流値生成部２１によって生成される。この指示電流値Ｉｄｑ＊に第２スイッチ３６によって選択されたゲインＧ（第１ゲインＧ１または第２ゲインＧ２）が乗算されることにより、最終的な指示電流値Ｇ・Ｉｄｑ＊が生成される。
【００３６】
センサ故障判定部３２によってセンサ故障が検出されていない場合には、指示電流値生成部２１によって生成された指示電流値Ｉｄｑ＊が、そのまま最終的な指示電流値Ｇ・Ｉｄｑ＊として電流偏差演算部２３に与えられる。一方、センサ故障判定部３２によってセンサ故障が検出されている場合には、指示電流値生成部２１によって生成された指示電流値Ｉｄｑ＊に第２ゲインＧ２が乗算された値が、最終的な指示電流値Ｇ・Ｉｄｑ＊として電流偏差演算部２３に与えられる。
【００３７】
この最終的な指示電流値Ｇ・Ｉｄｑ＊と二相検出電流Ｉｄｑとの偏差が電流偏差演算部２３によって求められる。この偏差を零に導くようにＰＩ制御部２４によるＰＩ演算が行なわれ、この演算結果に対応した二相指示電圧Ｖｄｑ＊がＰＩ制御部２４から出力される。この二相指示電圧Ｖｄｑ＊は、ｄｑ／ＵＶＷ変換部２５によって、三相指示電圧ＶＵＶＷ＊に変換される。そして、ＰＷＭ制御部２６の働きによって、その三相指示電圧ＶＵＶＷ＊に応じたデューティ比で駆動回路１２が動作することによって、モータ３が駆動され、最終的な指示電流値Ｇ・Ｉｄｑ＊に対応したモータトルク（アシストトルク）が舵取り機構２に与えられることになる。こうして、操舵トルクおよび車速に応じて操舵補助を行うことができる。
【００３８】
回転座標系（ｄｑ座標系）と固定座標系（ＵＶＷ座標系）との間での座標変換のためには、ロータ５０の回転角（電気角）θが必要である。この回転角θは、２つの磁気センサ４，５の出力信号Ｖ１，Ｖ２に基づいて演算されるようになっている。具体的には、２つの磁気センサ４，５が故障していないときには、第１の回転角演算部３１によって、ロータ５０の回転角（第１の回転角θ１）が演算される。そして、一方、２つの磁気センサ４，５のうちの一方が故障した場合には、第２の回転角演算部３３によって、ロータ５０の回転角（第２の回転角θ２）が演算される。第２の回転角演算部３３は、正常な１つの磁気センサの出力信号に基づいて、ロータ５０の回転角を演算する。
【００３９】
第１の回転角演算部３１について説明する。第１の回転角演算部３１は、モータ３の回転に伴って回転する検出用ロータ９（図１参照）の回転角（電気角）を検出することによって、モータ３のロータ５０の回転角（電気角）を検出する。検出用ロータ９は、モータ３のロータ５０に設けられている磁極対に相当する磁極対を有する円筒上の磁石を含んである。２つの磁気センサ４，５は、検出用ロータ９の周囲に配置されている。ここでは、第１の磁気センサ４からは、各磁極対に対応する区間毎に、基準となる第１の出力信号（正弦波信号Ｖ１（Ｖ１＝φ１・sinθ））が出力されるものとする。また、第２の磁気センサ２２からは、各磁極対に対応する区間毎に、信号Ｖ１に対して９０°（電気角）の位相差を有する第２の出力信号（正弦波信号Ｖ２（Ｖ２＝φ２・sin（θ＋９０°）＝φ２・cosθ））が出力されるものとする。φ１，φ２は、それぞれ振幅を表している。
【００４０】
これらの振幅φ１，φ２が全て等しい値φであるとみなすか、あるいは各振幅が所定の規定値φとなるように各出力信号Ｖ１，Ｖ２を正規化したとすると、各出力信号Ｖ１，Ｖ２は、それぞれ、Ｖ１＝φsinθ，Ｖ２＝φcosθと表される。そこで、以下の説明においては、各磁気センサ４，５の出力信号Ｖ１，Ｖ２を、それぞれＶ１＝φsinθ，Ｖ２＝φcosθと表すことにする。図４は、各出力信号Ｖ１，Ｖ２の波形を示している。ただし、図４では、φ＝１としている。
【００４１】
第１の回転角演算部３１は、たとえば、次式(2)に基づいて、第１の回転角θ１を演算する。
θ１＝tan−１（sinθ／cosθ）
＝tan−１（Ｖ１／Ｖ２）…(2)
センサ故障判定部３２の動作について、詳しく説明する。第１の磁気センサ４が故障した場合には、第１の出力信号Ｖ１は−φ（下限値）またはφ（上限値）に固定されると考えられる。同様に、第２の磁気センサ５が故障した場合には、第２の出力信号Ｖ２は−φ（下限値）またはφ（上限値）に固定されると考えられる。そこで、一方の磁気センサの出力信号のある期間内での変化量が第１の所定値Ａ（Ａ＞０）以上となったにもかかわらず、他方の磁気センサの出力信号の前記期間内での変化量が第１の所定値Ａより小さい第２の所定値Ｂ（Ｂ＞０）以下である場合には、他方の磁気センサが故障していると判定する。
【００４２】
図５は、センサ故障判定部３２の動作を示すフローチャートである。
センサ故障判定部３２は、変数V1_MAX，V2_MAX，V1_MINおよびV2_MINの初期化処理を行なう（ステップＳ１）。具体的には、センサ故障判定部３２は、変数V1_MAXおよびV2_MAXを、−φ（φは信号Ｖ１，Ｖ２の振幅）より十分小さい所定値Ｋ１に設定するとともに、変数V1_MINおよびV2_MINを、φより十分大きい所定値Ｋ２に設定する。この初期化処理は、ある条件が満たされる度に実行される。具体的には、後述するステップＳ６またはステップＳ７でＮＯと判定される度に、ステップＳ１の初期化処理が行なわれる。
【００４３】
変数V1_MAXは、最新の初期化処理が行なわれてから現時点までの期間内において、第１の出力信号Ｖ１の最大値を記憶するための変数である。変数V1_MINは、前記期間内において、第１の出力信号Ｖ１の最小値を記憶するための変数である。変数V2_MAXは、前記期間内において、第２の出力信号Ｖ２の最大値を記憶するための変数である。変数V2_MINは、前記期間内において、第２の出力信号Ｖ２の最小値を記憶するための変数である。
【００４４】
次に、センサ故障判定部３２は、第１の出力信号Ｖ１（Ｖ１＝φsinθ）および第２の出力信号Ｖ２（Ｖ２＝φcosθ）を取得する（ステップＳ２）。そして、センサ故障判定部３２は、取得した出力信号Ｖ１，Ｖ２に基づいて、変数V1_MAX，V2_MAX，V1_MINおよびV2_MINの更新処理を行なう（ステップＳ３）。
具体的には、センサ故障判定部３２は、取得した第１の出力信号Ｖ１と変数V1_MAXとを比較し、Ｖ１＞V1_MAXであれば、変数V1_MAXの値を第１の出力信号Ｖ１の値に置き換える。また、センサ故障判定部３２は、取得した第１の出力信号Ｖ１と変数V1_MINとを比較し、Ｖ１＜V1_MINであれば、変数V1_MINの値を第１の出力信号Ｖ１の値に置き換える。また、センサ故障判定部３２は、取得した第２の出力信号Ｖ２と変数V2_MAXとを比較し、Ｖ２＞V2_MAXであれば、変数V2_MAXの値を第２の出力信号Ｖ２の値に置き換える。また、センサ故障判定部３２は、取得した第２の出力信号Ｖ２と変数V2_MINとを比較し、Ｖ２＜V2_MINであれば、変数V2_MINの値を第２の出力信号Ｖ２の値に置き換える。
【００４５】
次に、センサ故障判定部３２は、V1_MAXとV1_MINとの差の絶対値（以下、「第１の出力信号Ｖ１の変化量」という。）が第１のしきい値Ａ（Ａ＞０）以上であるか否かを判別する（ステップＳ４）。第１のしきい値Ａは、たとえば、Ａ＝０．２５φ（φは信号Ｖ１，Ｖ２の振幅）に設定されている。第１の出力信号Ｖ１の変化量が第１のしきい値Ａ未満である場合には（ステップＳ４：ＮＯ）、センサ故障判定部３２は、V2_MAXとV2_MINとの差の絶対値（以下、「第２の出力信号Ｖ２の変化量」という。）が第１のしきい値Ａ以上であるか否かを判別する（ステップＳ５）。第２の出力信号Ｖ２の変化量が第１のしきい値Ａ未満である場合には（ステップＳ５：ＮＯ）、センサ故障判定部３２は、ステップＳ２に戻り、両出力信号Ｖ１，Ｖ２を取り込んで、ステップＳ３に進む。
【００４６】
つまり、最新の初期化処理が実行されてから現時点までの期間内における、第１の出力信号Ｖ１の変化量および第２の出力信号Ｖ２の両方が第１のしきい値Ａ未満であるときには、ステップＳ２〜Ｓ５の処理が繰り返される。
ステップＳ２〜Ｓ５の処理が繰り返されているときに、前記ステップＳ４において、第１の出力信号Ｖ１の変化量が第１のしきい値Ａ以上であると判別された場合には（ステップＳ４：ＹＥＳ）、センサ故障判定部３２は、第２の出力信号Ｖ２の変化量が第２のしきい値Ｂ（Ｂ＞０）以下であるか否かを判別する（ステップＳ６）。第２のしきい値Ｂは、第１のしきい値Ａより小さく設定されている。第２のしきい値Ｂは、たとえば、Ｂ＝０．０２φ（φは信号Ｖ１，Ｖ２の振幅）に設定されている。第２の出力信号Ｖ２の変化量が第２のしきい値Ｂより大きければ、センサ故障判定部３２は、両磁気センサ４，５は正常であると判別し、ステップＳ１に戻る。つまり、再度、初期化処理が行われる。
【００４７】
ステップＳ２〜Ｓ５の処理が繰り返されているときに、前記ステップＳ５において、第２の出力信号Ｖ２の変化量が第１のしきい値Ａ以上であると判別された場合には（ステップＳ５：ＹＥＳ）、センサ故障判定部３２は、第１の出力信号Ｖ１の変化量が第２のしきい値Ｂ以下であるか否かを判別する（ステップＳ７）。第１の出力信号Ｖ１の変化量が第２のしきい値Ｂより大きければ、センサ故障判定部３２は、両磁気センサ４，５は正常であると判別し、ステップＳ１に戻る。つまり、再度、初期化処理が行われる。
【００４８】
前記ステップＳ６において、第２の出力信号Ｖ２の変化量が第２のしきい値Ｂ以下であると判別された場合には（ステップＳ６：ＹＥＳ）、センサ故障判定部３２は、第２の磁気センサ５に故障が発生したと判定する（ステップＳ８）。つまり、最新の初期化処理が行なわれてから現時点までの期間内における第１の出力信号Ｖ１の変化量が第１のしきい値Ａ以上であるにもかかわらず、その期間内での第２の出力信号Ｖ２の変化量が第２のしきい値Ｂ以下である場合には、第２の磁気センサ５に故障が発生したと判別される。
【００４９】
センサ故障判定部３２は、第２の磁気センサ５に故障が発生したと判別した場合には、その判定結果を第２の回転角演算部３３およびゲイン演算部３５に与える。また、センサ故障判定部３２は、第１のスイッチ３４によって第２の回転角θ２が選択されるように第１のスイッチ３４を切り替えるとともに、第２のスイッチ３６によって第２ゲインＧ２が選択されるように第２のスイッチ３６を切り替える。
【００５０】
前記ステップＳ７において、第１の出力信号Ｖ１の変化量が第２のしきい値Ｂ以下であると判別された場合には（ステップＳ７：ＹＥＳ）、センサ故障判定部３２は、第１の磁気センサ４に故障が発生したと判別する（ステップＳ９）。つまり、最新の初期化処理が行なわれてから現時点までの期間内における第２の出力信号Ｖ２の変化量が第１のしきい値Ａ以上であるにもかかわらず、その期間内での第１の出力信号Ｖ１の変化量が第２のしきい値Ｂ以下である場合には、第１の磁気センサ４に故障が発生したと判別される。
【００５１】
センサ故障判定部３２は、第１の磁気センサ４に故障が発生したと判別した場合には、その判定結果を第２の回転角演算部３３およびゲイン演算部３５に与える。また、センサ故障判定部３２は、第１のスイッチ３４によって第２の回転角θ２が選択されるように第１のスイッチ３４を切り替えるとともに、第２のスイッチ３６よって第２ゲインＧ２が選択されるように第２のスイッチ３６を切り替える。
【００５２】
第２の回転角演算部３３の動作およびゲイン演算部３４の動作について、詳しく説明する。
図６は、両磁気センサ４，５が正常であり、第１の回転角θ１に基づいてモータ３が制御されている場合の、実際のロータ５０の回転角（以下。「実回転角θ」という）に対する相電流ＩＵ，ＩＶ，ＩＷおよびモータトルクＴＭを示している。相電流は、Ｕ相電流ＩＵ、Ｖ相電流ＩＶおよびＷ相電流ＩＷからなる。図６に示すように、モータ３の相電流ＩＵ，ＩＶ，ＩＷの振幅がある値となるように制御されているときには、モータトルクＴＭはロータ５０の回転角にかかわらず、一定値となる。なお、モータ３の相電流ＩＵ，ＩＶ，ＩＷの振幅は、指示電流値Ｉｄｑ＊に基づいて制御され、これに応じてモータトルクＴＭが制御される。
【００５３】
まず、センサ故障判定部３２によって第１の磁気センサ４に故障が発生したことが検出された場合の、第２の回転角演算部３３およびゲイン演算部３５の動作について説明する。第１の磁気センサ４が故障した場合には、第２の回転角演算部３３は、第２の出力信号Ｖ２（Ｖ２＝φcosθ）を用い、次式(3)に基づいて、第２の回転角θ２を演算する。
θ２＝cos−１（Ｖ２／φ）    …(3)
ただし、cos−１（Ｖ２／φ）は、０°〜１８０°の範囲内の角度（０°≦θ２≦１８０°）として求められる。
【００５４】
図７は、第２の磁気センサ５の出力信号Ｖ２（Ｖ２＝φcosθ）の波形を示している。ただし、図７では、φ＝１としている。図７に示すように、前記式(3)に基づいて第２の回転角θ２を求めた場合、実回転角が０°〜１８０°の第１の回転角領域Ｐ内にあるのか、１８０°〜３６０°の第２の回転角領域Ｑ内にあるのか不明である。たとえば、第２の回転角演算部３３によって演算された第２の回転角θ２が４５°である場合、実回転角θが４５°であるのか、３１５°（＝３６０°−θ２）であるのか不明である。つまり、この実施形態では、第２の回転角演算部３３は、第２の出力信号Ｖ２から予測される第１の回転角領域Ｐ内の第１の回転角候補θＰおよび第２の回転角領域Ｑ内の第２の回転角候補θＱ（θＱ＝３６０°−θＰ）のうち、第１の回転角候補θＰを第２の回転角θ２として演算する。
【００５５】
第２の回転角演算部３３は、第１の回転角領域Ｐ内の第１の回転角候補θＰを第２の回転角θ２として演算しているため、実回転角θが第２の回転角領域Ｑ内にある場合には、第２の回転角θ２は実回転角θとは異なった回転角となる。したがって、実回転角θが第２の回転角領域Ｑ内にある場合に、指示電流値Ｉｄｑ＊をゲイン補正せずに、第２の回転角θ２に基づいてモータ３を制御すると、適切なモータトルクＴＭを発生できなくなる。
【００５６】
図８は、指示電流値Ｉｄｑ＊をゲイン補正せずに第２の回転角θ２に基づいてモータ３を制御した場合の、実回転角θに対する相電流ＩＵ，ＩＶ，ＩＷおよびモータトルクＴＭを示している。図８に示すように、指示電流値Ｉｄｑ＊をゲイン補正せずに第２の回転角θ２に基づいてモータ３を制御した場合には、実回転角θが２２５°〜３１５°の範囲にあるときには、本来発生されるべきモータトルクに対して逆方向のモータトルクＴＭが発生されてしまう。そうすると、操舵補助力が適切な方向とは反対の方向に作用するため、操舵トルクが重くなってしまう。
【００５７】
そこで、本実施形態では、第２の回転角θ２が、本来発生されるべきモータトルクに対して逆方向のモータトルクが発生される可能性のある回転角領域（以下、「逆トルク発生可能性有り領域」という。）内にあるときには、モータトルクが零となるように、指示電流値Ｉｄｑ＊がゲイン補正される。また、第２の回転角θ２が、本来発生されるべきモータトルクと同方向のトルクを発生できる回転角領域（以下、「逆トルク発生可能性無し領域」という。）内にあるときには、滑らかにモータトルクが変化するように、指示電流値Ｉｄｑ＊がゲイン補正される。このようなゲイン補正を行なうために、ゲイン演算部３５、第２スイッチ３６およびゲイン乗算部２２が設けられている。
【００５８】
逆トルク発生可能性有り領域は、第２の回転角θ２として演算され得る回転角領域０°〜１８０°のうち、実回転角θが２２５°〜３１５°の範囲に存在する可能性がある領域であるので、θ２＝４５°〜１３５°の領域となる。一方、逆トルク発生可能性無し領域は、第２の回転角θ２として演算され得る回転角度領域０°〜１８０°のうち、θ２＝４５°〜１３５°の領域を除いた領域となるので、θ２＝０°〜４５°の領域とθ２＝１３５°〜１８０°の領域とからなる。
【００５９】
図７において、逆トルク発生可能性有り領域はＰ１で示され、逆トルク発生可能性無し領域はＰ２で示されている。cos４５°＝０．７０７であり、cos１３５°＝−０．７０７である。したがって、第２の出力信号Ｖ２（Ｖ２＝φcosθ）の絶対値｜Ｖ２｜が０．７０７・φ以下であれば、第２の回転角θ２は逆トルク発生可能性有り領域Ｐ１にあると判定できる。そして、第２の出力信号Ｖ２の絶対値｜Ｖ２｜が０．７０７・φより大きければ、第２の回転角θ２は逆トルク発生可能性無し領域Ｐ２にあると判定できる。
【００６０】
ゲイン演算部３５は、第１の磁気センサ４が故障していると判定された場合には、次式(4)，(5)に基づいて、第２ゲインＧ２を算出する。
｜Ｖ２｜／φ≦０．７０７であるとき；
Ｇ２＝０      …(4)
｜Ｖ２｜／φ＞０．７０７であるとき；
Ｇ２＝｛（｜Ｖ２｜／φ）−０．７０７｝／（１−０．７０７）      …(5)
第２の回転角θ２が、逆トルク発生可能性有り領域Ｐ１（４５°〜１３５°）内にある場合には、前記式(4)により、Ｇ２＝０となる。一方、第２の回転角θ２が、逆トルク発生可能性無し領域Ｐ２（０°〜４５°，１３５°〜１８０°）内にある場合には、前記式(5)により、第２ゲインＧ２が演算される。前記式(5)によれば、cosθの絶対値（｜Ｖ２｜／φ）が０．７０７のときにはＧ２＝０となり、cosθの絶対値が１のときにはＧ２＝１となる。そして、cosθの絶対値が大きくなるほど、第２ゲインＧ２は大きくなる。したがって、第２の回転角θ２が、０°〜４５°の領域内にある場合には、第２の回転角θ２が大きくなるに従って、第２ゲインＧ２は小さくなる。また、第２の回転角θ２が、１３５°〜１８０°の領域内にある場合には、第２の回転角θ２が大きくなるに従って、第２ゲインＧ２は大きくなる。なお、第２の出力信号Ｖ２の値に応じた第２ゲインを記憶したマップと、第２の出力信号Ｖ２の値とに基づいて第２ゲインを演算するようにしてもよい。
【００６１】
第１の磁気センサ４が故障していると判定された場合には、指示電流値生成部２１によって生成された指示電流値Ｉｄｑ＊に第２のゲインＧ２が乗算されることにより、最終的な指示電流値Ｇ・Ｉｄｑ＊が演算される。そして、この最終的な指示電流値Ｇ・Ｉｄｑ＊と二相検出電流値Ｉｄｑとの偏差が零になるように、相電流ＩＵ，ＩＶ，ＩＷが制御される。
【００６２】
図９は、第１の磁気センサ４が故障したときに、ゲイン補正後の指示電流値Ｇ・Ｉｄｑ＊および第２の回転角θ２に基づいてモータ３を制御した場合の、実回転角θに対する第２ゲインＧ２、相電流ＩＵ，ＩＶ，ＩＷおよびモータトルクＴＭを示している。
第２の回転角θ２が逆トルク発生可能性有り領域Ｐ１（θ２＝４５°〜１３５°）内にあるときには、第２ゲインＧ２は零となる。これにより、図９に示すように、実回転角θが、４５°〜１３５°の領域内にあるときおよび２２５°〜３１５°の領域内にあるときには、第２ゲインＧ２は零となるので、モータ３の相電流ＩＵ，ＩＶ，ＩＷおよびモータトルクＴＭが零となる。
【００６３】
一方、第２の回転角θ２が逆トルク発生可能性無し領域Ａ２（θ２＝０°〜４５°またはθ２＝１３５°〜１８０°）内にあるときには、第２ゲインＧ２は前記(5)に従って演算された値となる。これにより、図９に示すように、実回転角θが０°〜４５°の領域内にあるときには、第２ゲインＧ２は、実回転角θが０°のときに１となり、実回転角θが４５°のときに０となる。そして、これらの回転角の間においては、第２ゲインＧ２は、実回転角θが大きくなるに従って徐々に小さくなる。このため、実回転角θが０°〜４５°の領域内にあるときには、実回転角θが大きくなるに従って最終的なｑ軸指示電流値Ｇ・Ｉｑ＊の絶対値が徐々に小さくなる。これにより、実回転角θが０°〜４５°の領域内にあるときには、実回転角θが大きくなるに従って、モータトルクＴＭが徐々に小さくなる。これにより、モータトルクＴＭが滑らかに変化する。
【００６４】
第２の回転角θ２の０°は実回転角θの０°または３６０°に対応し、第２の回転角θ２の４５°は実回転角θの４５°または３１５°に対応する。つまり、実回転角θが３６０°であるときには第２の回転角θは０°となり、実回転角θが３１５°であるときには第２の回転角θは４５°となる。したがって、図９に示すように、実回転角が３１５°〜３６０°の領域内にあるときには、第２ゲインＧ２は、実回転角θが３１５°のときに０となり、実回転角θが３６０°のときに１となる。そして、これらの回転角の間においては、第２ゲインＧ２は、実回転角θが大きくなるに従って徐々に大きくなる。このため、実回転角θが３１５°〜３６０°の領域内にあるときには、実回転角θが大きくなるに従って最終的なｑ軸指示電流値Ｇ・Ｉｑ＊の絶対値が徐々に大きくなる。これにより、実回転角θが３１５°〜３６０°の範囲内にあるときには、実回転角θが大きくなるに従って、モータトルクＴＭが徐々に大きくなる。これにより、モータトルクＴＭが滑らかに変化する。
【００６５】
また、図９に示すように、実回転角θが１３５°〜１８０°の領域内にあるときには、第２ゲインＧ２は、実回転角θが１３５°のときに０となり、実回転角θが１８０°のときに１となる。そして、これらの回転角の間においては、第２ゲインＧ２は、実回転角θが大きくなるに従って徐々に大きくなる。このため、実回転角θが１３５°〜１８０°の領域内にあるときには、実回転角θが大きくなるに従って最終的なｑ軸指示電流値Ｉｑ＊の絶対値が徐々に大きくなる。これにより、実回転角θが１３５°〜１８０°の領域内にあるときには、実回転角θが大きくなるに従って、モータトルクＴＭが徐々に大きくなる。これにより、モータトルクＴＭが滑らかに変化する。
【００６６】
第２の回転角θ２の１３５°は実回転角θの１３５°または２２５°に対応し、第２の回転角θ２の１８０°は実回転角θの１８０°に対応する。つまり、実回転角θが２２５°であるときには第２の回転角θ２は１３５°となり、実回転角θが１８０°であるときには第２の回転角θ２は１８０°となる。したがって、図９に示すように、実回転角θが１８０°〜２２５°の領域内にあるときには、第２ゲインＧ２は、実回転角θ２が１８０°のときに１となり、実回転角θが２２５°のときに０となる。そして、これらの回転角の間においては、第２ゲインＧ２は、実回転角θが大きくなるに従って徐々に小さくなる。このため、実回転角θが１８０°〜２２５°の領域内にあるときには、実回転角θが大きくなるに従って最終的なｑ軸指示電流値Ｇ・Ｉｑ＊が徐々に小さくなる。これにより、実回転角θが１８０°〜２２５°の範囲内にあるときには、実回転角θが大きくなるに従って、モータトルクＴＭが徐々に小さくなる。これにより、モータトルクＴＭが滑らかに変化する。
【００６７】
次に、センサ故障判定部３２によって、第２の磁気センサ５が故障したと判定された場合の、第２の回転角演算部３３およびゲイン演算部３４の動作について説明する。第２の磁気センサ５が故障した場合には、第２の回転角演算部３３は、第１の磁気センサ４の出力信号Ｖ１（Ｖ１＝φsinθ）を用い、次式(6)に基づいて、第２の回転角θ２を演算する。
【００６８】
θ２＝sin−１（Ｖ１／φ）    …(6)
ただし、sin−１（Ｖ１／φ）は、０°〜９０°（０°≦θ２≦９０°）または２７０°〜３６０°（２７０°≦θ２＜３６０°）の範囲内の角度として求められる。具体的には、Ｖ１≧０であれば、sin−１（Ｖ１／φ）は、０°〜９０°（０°≦θ２≦９０°）の範囲内の角度として求められる。一方、Ｖ１＜０であれば、sin−１（Ｖ１／φ）は、２７０°〜３６０°（２７０°≦θ２＜３６０°）の範囲内の角度として求められる。
【００６９】
図１０は、第１の磁気センサ４の出力信号Ｖ１（Ｖ１＝φsinθ）の波形を示している。ただし、図１０では、φ＝１としている。図１０に示すように、前記式(6)に基づいて第２の回転角θ２を求めた場合、実回転角θが０°〜９０°および２７０°〜３６０°の第１の回転角領域Ｒ内にあるのか、９０°〜２７０°の第２の回転角領域Ｓ内にあるのか不明である。より具体的は、第２の回転角演算部３３によって演算された第２の回転角θ２が０°〜９０°の範囲内の回転角である場合には、実回転角θが０°〜９０°の範囲内の回転角であるのか、９０°〜１８０°の範囲内の回転角であるのか不明である。たとえば、第２の回転角θ２が４５°である場合、実際のロータ５０の回転角が４５°であるのか、１３５°（＝１８０°−θ２）であるのか不明である。また、第２の回転角θ２が２７０°〜３６０°の範囲内の回転角である場合には、実回転角θが２７０°〜３６０°の範囲内の回転角であるのか、１８０°〜２７０°の範囲内の回転角であるのか不明である。たとえば、第２の回転角θ２が３１５°である場合、実回転角θが３１５°であるのか、２２５°（＝５４０°−θ２）であるのか不明である。
【００７０】
つまり、第２の回転角演算部３３は、この実施形態では、第１の出力信号Ｖ１から予測される第１の回転角領域Ｒ内の第１の回転角候補θＲおよび第２の回転角領域Ｓ内の第２の回転角候補θＳ（θＳ＝１８０°−θＲ（０°≦θＲ≦９０°）またはθＳ＝５４０°−θＲ（２７０°≦θＲ＜３６０°））のうち、第１の回転角候補θＲを第２の回転角θ２として演算する。
【００７１】
第２の回転角演算部３３は、第１の回転角領域Ｒ内の第１の回転角候補θＲを第２の回転角θ２として演算しているため、実回転角θが第２の回転角領域Ｓ内にある場合には、第２の回転角θは実回転角θとは異なった回転角となる。したがって、実回転角が第２の回転角領域Ｓ内にある場合に、指示電流値Ｉｄｑ＊をゲイン補正せずに、第２の回転角θ２に基づいてモータ３を制御すると、適切なモータトルクＴＭを発生できなくなる。
【００７２】
図１１は、指示電流値Ｉｄｑ＊をゲイン補正せずに第２の回転角θ２に基づいてモータ３を制御した場合の、実回転角θに対する相電流ＩＵ，ＩＶ，ＩＷおよびモータトルクＴＭを示している。図１１に示すように、指示電流値Ｉｄｑ＊をゲイン補正せずに第２の回転角θ２に基づいてモータ３を制御した場合には、実回転角θが１３５°〜２２５°の範囲にあるときには、本来発生されるべきモータトルクに対して逆方向のモータトルクＴＭが発生されてしまう。そうすると、操舵補助力が適切な方向とは反対の方向に作用するため、操舵トルクが重くなってしまう。
【００７３】
そこで、本実施形態では、第２の回転角θ２が、本来発生されるべきモータトルクに対して逆方向のモータトルクが発生される可能性のある回転角領域（逆トルク発生可能性有り領域）内にあるときには、モータトルクが零となるように、指示電流値Ｉｄｑ＊がゲイン補正される。また、第２の回転角θ２が、本来発生されるべきモータトルクと同方向のトルクを発生できる回転角領域（逆トルク発生可能性無し領域）内にあるときには、滑らかにモータトルクが変化するように、指示電流値Ｉｄｑ＊がゲイン補正される。このようなゲイン補正を行なうために、ゲイン演算部３５、第２スイッチ３６およびゲイン乗算部２２が設けられている。
【００７４】
逆トルク発生可能性有り領域は、第２の回転角θ２として演算され得る回転角領域０°〜９０°および２７０°〜３６０°のうち、実回転角θが１３５°〜２２５°の範囲に存在する可能性がある領域であるので、θ２＝０°〜４５°およびθ２＝３１５°〜３６０°の領域となる。一方、逆トルク発生可能性無し領域は、第２の回転角θ２として演算され得る回転角領域０°〜９０°および２７０°〜３６０°のうち、θ２＝０°〜４５°およびθ２＝３１５°〜３６０°の角度領域を除いた領域となるので、θ２＝４５°〜９０°の領域およびθ２＝２７０°〜３１５°の領域とからなる。
【００７５】
図１０において、逆トルク発生可能性有り領域はＲ１で示され、逆トルク発生可能性無し領域はＲ２で示されている。sin４５°＝０．７０７であり、sin３１５°＝−０．７０７である。したがって、出力信号Ｖ１（Ｖ１＝φsinθ）の絶対値｜Ｖ１｜が０．７０７・φ以下であれば、第２の回転角θ２は逆トルク発生可能性有り領域Ｒ１にあると判定できる。そして、出力信号Ｖ１の絶対値｜Ｖ１｜が０．７０７・φより大きければ、第２の回転角θ２は逆トルク発生可能性無し領域Ｒ２にあると判定できる。
【００７６】
ゲイン演算部３５は、第２の磁気センサ５が故障していると判定された場合には、次式(7)，(8)に基づいて、第２ゲインＧ２を算出する。
｜Ｖ１｜／φ≦０．７０７であるとき；
Ｇ２＝０      …(7)
｜Ｖ１｜／φ＞０．７０７であるとき；
Ｇ２＝｛（｜Ｖ１｜／φ）−０．７０７｝／（１−０．７０７）      …(8)
第２の回転角θ２が、逆トルク発生可能性有り領域Ｒ１（０°〜４５°，３１５°〜３６０°）内にある場合には、前記式(7)により、Ｇ２＝０となる。一方、第２の回転角θ２が、逆トルク発生可能性無し領域Ｒ２（４５°〜９０°，２７０°〜３１５°）内にある場合には、前記式(8)により、第２ゲインＧ２が演算される。前記式(8)によれば、sinθの絶対値（｜Ｖ１｜／φ）が０．７０７のときにはＧ２＝０となり、sinθの絶対値が１のときにはＧ２＝１となる。そして、sinθの絶対値が大きくなるほど、第２ゲインＧ２は大きくなる。したがって、第２の回転角θ２が、４５°〜９０°の領域内にある場合には、第２の回転角θ２が大きくなるに従って、第２ゲインＧ２は大きくなる。また、第２の回転角θ２が、２７０°〜３１５°の領域内にある場合には、第２の回転角θ２が大きくなるに従って、第２ゲインＧ２は小さくなる。なお、第１の出力信号Ｖ１の値に応じた第２ゲインを記憶したマップと、第１の出力信号Ｖ１の値とに基づいて第２ゲインを演算するようにしてもよい。
【００７７】
第２の磁気センサ５が故障していると判定された場合には、指示電流値生成部２１によって生成された指示電流値Ｉｄｑ＊に第２のゲインＧ２が乗算されることにより、最終的な指示電流値Ｇ・Ｉｄｑ＊が演算される。そして、この最終的な指示電流値Ｇ・Ｉｄｑ＊と二相検出電流値Ｉｄｑとの偏差が零になるように、相電流ＩＵ，ＩＶ，ＩＷが制御される。
【００７８】
図１２は、第２の磁気センサ５が故障したときに、ゲイン補正後の指示電流値Ｇ・Ｉｄｑ＊および第２の回転角θ２に基づいてモータ３を制御した場合の、実回転角θに対する第２ゲインＧ２、相電流ＩＵ，ＩＶ，ＩＷおよびモータトルクＴＭを示している。
第２の回転角θ２が逆トルク発生可能性有り領域Ｒ１（０°〜４５°，３１５°〜３６０°）内にあるときには、Ｇ２＝０となるため、最終的なｑ軸指示電流値Ｇ・Ｉｑ＊は零となる。これにより、図１２に示すように、実回転角θが、０°〜４５°の領域内、３１５°〜３６０°の領域内および１３５°〜２２５°の領域内にあるときには、第２ゲインＧ２は零となるから、モータ３の相電流ＩＵ，ＩＶ，ＩＷおよびモータトルクＴＭが零となる。
【００７９】
一方、第２の回転角θ２が逆トルク発生可能性無し領域Ｒ２（θ２＝４５°〜９０°またはθ２＝２７０°〜３１５°）内にあるときには、第２ゲインＧ２は前記(8)に従って演算された値となる。これにより、図１２に示すように、実回転角θが４５°〜９０°の領域内にあるときには、第２ゲインＧ２は、実回転角θが４５°のときに０となり、実回転角θが９０°のときに１となる。そして、これらの回転角の間においては、第２ゲインＧ２は、実回転角θが大きくなるに従って徐々に大きくなる。このため、実回転角θが４５°〜９０°の領域内にあるときには、実回転角θが大きくなるに従って最終的なｑ軸指示電流値Ｇ・Ｉｑ＊の絶対値が徐々に大きくなる。これにより、実回転角θが４５°〜９０°の領域内にあるときには、実回転角θが大きくなるに従ってモータトルクＴＭが徐々に大きくなる。これにより、モータトルクＴＭが滑らかに変化する。
【００８０】
第２の回転角θ２の４５°は実回転角θの４５°または１３５°に対応し、第２の回転角θ２の９０°は実回転角θの９０°に対応する。つまり、実回転角θが１３５°であるときには第２の回転角θは４５°となり、実回転角θが９０°であるときには第２の回転角θは９０°となる。したがって、図１２に示すように、実回転角θが９０°〜１３５°の領域内にあるときには、第２ゲインＧ２は、実回転角θが９０°のときに１となり、実回転角θが１３５°のときに０となる。そして、これらの回転角の間においては、第２ゲインＧ２は、実回転角θが大きくなるに従って徐々に小さくなる。このため、実回転角θが９０°〜１３５°の領域内にあるときには、実回転角θが大きくなるに従って最終的なｑ軸指示電流値Ｉｑ＊の絶対値が徐々に小さくなる。これにより、実回転角θが９０°〜１３５°の領域内にあるときには、実回転角θが大きくなるに従って、モータトルクＴＭが徐々に小さくなる。これにより、モータトルクＴＭが滑らかに変化する。
【００８１】
また、図１２に示すように、実回転角θが２７０°〜３１５°の領域内にあるときには、第２ゲインＧ２は、実回転角θが２７０°のときに１となり、実回転角θが３１５°のときに０となる。そして、これらの回転角の間においては、第２ゲインＧ２は、実回転角θが大きくなるに従って徐々に小さくなる。このため、実回転角θが２７０°〜３１５°の領域内にあるときには、実回転角θが大きくなるに従って最終的なｑ軸指示電流値Ｇ・Ｉｑ＊の絶対値が徐々に小さくなる。これにより、実回転角θが２７０°〜３１５°の領域内にあるときには、実回転角θが大きくなるに従って、モータトルクＴＭが徐々に小さくなる。これにより、モータトルクＴＭが滑らかに変化する。
【００８２】
第２の回転角θ２の２７０°は実回転角θの２７０°に対応し、第２の回転角θ２の３１５°は実回転角θの３１５°または２２５°に対応する。つまり、実回転角θが２７０°であるときには第２の回転角θ２は２７０°となり、実回転角θが２２５°であるときには第２の回転角θ２は３１５°となる。したがって、図１２に示すように、実回転角θが２２５°〜２７０°の領域内にあるときには、第２ゲインＧ２は、実回転角θが２２５°のときに０となり、実回転角θが２７０°のときに１となる。そして、これらの回転角の間においては、第２ゲインＧ２は、実回転角θが大きくなるに従って徐々に大きくなる。このため、実回転角θが２２５°〜２７０°の領域内にあるときには、実回転角θが大きくなるに従って最終的なｑ軸指示電流値Ｉｑ＊の絶対値が徐々に大きくなる。これにより、実回転角θが２２５°〜２７０°の領域内にあるときには、実回転角θが大きくなるに従って、モータトルクＴＭが徐々に大きくなる。これにより、モータトルクＴＭが滑らかに変化する。
【００８３】
第１の実施形態によれば、２つの磁気センサ４，５のうちの一方が故障した場合にも、モータ３を駆動させることができるようになる。
図１３は、この発明の第２の実施形態に係るモータ制御装置を適用した電動パワーステアリング装置の電気的構成を説明するためのブロック図である。図１３において、図１の各部に対応する部分には、図１と同じ参照符合を付してある。
【００８４】
第２の実施形態では、指示電流値生成部２１とゲイン乗算部２２との間に、ｄｑ／ＵＶＷ変換部２８が設けられている。第１の実施形態において備えられていたｄｑ／ＵＶＷ変換部２５およびＵＶＷ／ｄｑ変換部２７は、第２の実施形態では備えられていない。第１スイッチ３４によって選択された回転角（変換角）θＳは、ｄｑ／ＵＶＷ変換部２８に与えられる。
【００８５】
ｄｑ／ＵＶＷ変換部２８は、指示電流値生成部２１によって生成された２相指示電流値Ｉｄｑ＊を、Ｕ相指示電流値ＩＵ＊、Ｖ相指示電流値ＩＶ＊およびＷ相指示電流値ＩＷ＊（以下、これらを総称するときには「三相指示電流値ＩＵＶＷ＊」という。）に変換する。この座標変換には、第１スイッチ３４によって選択された変換角θＳが用いられる。
このような構成によって、ステアリングホイール１０に操舵トルクが加えられると、これがトルクセンサ１によって検出される。そして、トルクセンサ１によって検出された操舵トルクおよび車速センサ７によって検出された車速に応じた指示電流値Ｉｄｑ＊が指示電流値生成部２１によって生成される。この指示電流値Ｉｄｑ＊は、ｄｑ／ＵＶＷ変換部２８によって三相指示電流値ＩＵＶＷ＊に変換される。この三相指示電流値ＩＵＶＷ＊に第２スイッチ３６によって選択されたゲインＧ（第１ゲインＧ１または第２ゲインＧ２）が乗算されることにより、最終的な指示電流値Ｇ・ＩＵＶＷ＊が生成される。
【００８６】
センサ故障判定部３２によってセンサ故障が検出されていない場合には、三相指示電流値ＩＵＶＷ＊に第１ゲインＧ１（Ｇ１＝１）が乗算されることにより、最終的な指示電流値Ｇ・ＩＵＶＷ＊が生成される。一方、センサ故障判定部３２によってセンサ故障が検出されている場合には、三相指示電流値ＩＵＶＷ＊に第２ゲインＧ２が乗算されることにより、最終的な指示電流値Ｇ・ＩＵＶＷ＊が生成される。
【００８７】
この最終的な指示電流値Ｇ・ＩＵＶＷ＊と三相検出電流ＩＵＶＷとの偏差が電流偏差演算部２３によって求められる。この偏差を零に導くようにＰＩ制御部２４によるＰＩ演算が行なわれ、この演算結果に対応した三相指示電圧ＶＵＶＷ＊がＰＩ制御部２４から出力される。そして、ＰＷＭ制御部２６の働きによって、その三相指示電圧ＶＵＶＷ＊に応じたデューティ比で駆動回路１２が動作することによって、モータ３が駆動され、最終的な指示電流値Ｇ・ＩＵＶＷ＊に対応したモータトルク（アシストトルク）が舵取り機構２に与えられることになる。こうして、操舵トルクおよび車速に応じて操舵補助を行うことができる。第２の実施形態においても、第１の実施形態と同様な効果が得られる。
【００８８】
図１４は、この発明の第３の実施形態に係るモータ制御装置を適用した電動パワーステアリング装置の電気的構成を説明するためのブロック図である。図１４において、図１の各部に対応する部分には、図１と同じ参照符合を付してある。
第３の実施形態では、第１の実施形態におけるゲイン乗算部２２、ゲイン演算部３５および第２スイッチ３６は備えられていない。一方、第３の実施形態では、機能処理部として、目標モータトルク生成部２０および実モータトルク演算部３７が追加されている。また、第３の実施形態における指示電流値生成部２１Ａは、第１の実施形態における指示電流値生成部２１とはその動作が異なる。また、第３の実施形態における第２の回転角演算部３３Ａは、第１の実施形態における第２の回転角演算部３３とはその動作が異なる。
【００８９】
目標モータトルク生成部２０は、トルクセンサ１により検出される操舵トルク（検出操舵トルク）Ｔと、車速センサ７により検出される車速とに基づいて目標モータトルクＴＭ＊を生成する。具体的には、目標モータトルク生成部２０は、車速毎に予め設定された検出操舵トルクＴに対する目標モータトルクＴＭ＊の関係に基づいて、検出された車速および操舵トルクに応じた目標モータトルクＴＭ＊を生成する。車速毎に予め設定された検出操舵トルクＴと目標モータトルクＴＭ＊との関係は、たとえば、図３における車速別の検出操舵トルクＴに対するｑ軸指示電流値Ｉｑ＊の関係にほぼ対応したものとなる。
【００９０】
具体的には、検出操舵トルクＴは、たとえば右方向への操舵のためのトルクが正の値にとられ、左方向への操舵のためのトルクが負の値にとられている。また、目標モータトルクＴＭ＊は、モータ３から右方向操舵のための操舵補助力を発生させるべきときには正の値とされ、モータ３から左方向操舵のための操舵補助力を発生させるべきときには負の値とされる。目標モータトルクＴＭ＊は、検出操舵トルクＴの正の値に対しては正をとり、検出操舵トルクＴの負の値に対しては負をとる。検出操舵トルクＴが−Ｔ１〜Ｔ１（図３参照。たとえば、Ｔ１＝０．４Ｎ・ｍ）の範囲（トルク不感帯）の微小な値のときには、目標モータトルクＴＭ＊は零とされる。また、目標モータトルクＴＭ＊は、車速センサ７によって検出される車速が大きいほど、その絶対値が小さく設定されるようになっている。これにより、低速走行時には大きな操舵補助力を発生させることができ、高速走行時には操舵補助力を小さくすることができる。目標モータトルク生成部２０によって生成された目標モータトルクＴＭ＊は、指示電流値生成部２１Ａに与えられるとともに、第２の回転角演算部３３Ａに与えられる。
【００９１】
指示電流値生成部２１Ａは、ｄｑ座標系の座標軸に流すべき電流値を指示電流値として生成するものである。具体的には、ｄ軸指示電流値Ｉｄ＊およびｑ軸指示電流値Ｉｑ＊（以下、これらを総称するときには「二相指示電流値Ｉｄｑ＊」という。）を生成する。さらに具体的には、指示電流値生成部２１Ａは、ｑ軸指示電流値Ｉｑ＊を有意値とする一方で、ｄ軸指示電流値Ｉｄ＊を零とする。より具体的には、指示電流値生成部２１Ａは、目標モータトルク生成部２０によって生成された目標モータトルクＴＭ＊を、モータ３のトルク定数ＫＴで除算することによって、ｑ軸指示電流値Ｉｑ＊を求める。指示電流値生成部２１Ａによって生成された二相指示電流値Ｉｄｑ＊は、電流偏差演算部２３に与えられる。
【００９２】
実モータトルク演算部３７は、ＵＶＷ／ｄｑ変換部２７によって得られる二相検出電流Ｉｄｑに基づいて、モータトルク（実モータトルク）ＴＭを演算する。具体的には、実モータトルク演算部３７は、ＵＶＷ／ｄｑ変換部２７によって得られるｑ軸検出電流Ｉｑに、モータ３のトルク定数ＫＴを乗算することによって、実モータトルクＴＭを演算する。実モータトルク演算部３７によって演算された、実モータトルクＴＭは、第２の回転角演算部３３Ａに与えられる。
【００９３】
第２の回転角演算部３３Ａは、センサ故障判定部３２によってセンサ故障が検出されたときに、正常な１つの磁気センサの出力信号と、目標モータトルクＴＭ＊と、実モータトルクＴＭとに基づいて、第２の回転角θ２を演算する。第２の回転角演算部３３Ａの動作の詳細については、後述する。
このような構成において、ステアリングホイール１０に操舵トルクが加えられると、これがトルクセンサ１によって検出される。そして、トルクセンサ１によって検出された操舵トルクおよび車速センサ７によって検出された車速に応じた目標モータトルクＴＭ＊が目標モータトルク生成部２０によって生成される。そして、この目標モータトルクＴＭ＊に応じた指示電流値Ｉｄｑ＊が指示電流値生成部２１Ａによって生成される。
【００９４】
この指示電流値Ｉｄｑ＊と二相検出電流Ｉｄｑとの偏差が電流偏差演算部２３によって求められる。この偏差を零に導くようにＰＩ制御部２４によるＰＩ演算が行なわれ、この演算結果に対応した二相指示電圧Ｖｄｑ＊がＰＩ制御部２４から出力される。この二相指示電圧Ｖｄｑ＊は、ｄｑ／ＵＶＷ変換部２５によって、三相指示電圧ＶＵＶＷ＊に変換される。そして、ＰＷＭ制御部２６の働きによって、その三相指示電圧ＶＵＶＷ＊に応じたデューティ比で駆動回路１２が動作することによって、モータ３が駆動され、最終的な指示電流値Ｉｄｑ＊に対応したモータトルク（アシストトルク）が舵取り機構２に与えられることになる。こうして、操舵トルクおよび車速に応じて操舵補助を行うことができる。
【００９５】
センサ故障判定部３２によってセンサ故障が検出されていない場合には、ＵＶＷ／ｄｑ変換部２７による座標変換およびｄｑ／ＵＶＷ変換部２５による座標変換には、第１の回転角演算部３１によって演算された第１の演算角θ１が用いられる。センサ故障判定部３２によってセンサ故障が検出された場合には、これらの座標変換には、第２の回転角演算部３３Ａによって演算された第２の演算角θ２が用いられる。つまり、センサ故障判定部３２は、センサ故障を検出した場合には、第２の回転角演算部３３Ａによって演算された第２の演算角θ２が第１スイッチ３４によって選択されるように、第１スイッチ３４を切り替える。
【００９６】
第２の回転角演算部３３Ａの動作について詳しく説明する。センサ故障判定部３２によって、第２の磁気センサ５に故障が発生したと判定された場合には、第２の回転角演算部３３Ａは、第１の磁気センサ４の出力信号Ｖ１（Ｖ１＝φsinθ）と、目標モータトルクＴＭ＊と、実モータトルクＴＭとに基づいて、第２の回転角θ２を演算する。
具体的には、第２の回転角演算部３３Ａは、まず、第１の磁気センサ４の出力信号Ｖ１（Ｖ１＝φsinθ）からロータ５０の回転角（以下、「推定回転角θＲ」という。）を演算する。そして、目標モータトルクＴＭ＊と実モータトルクＴＭとの偏差に基づいて推定回転角θＲを補正することにより、第２の回転角θ２を演算する。
【００９７】
推定回転角θＲは、次式(9)に基づいて演算される。
θＲ＝sin−１（Ｖ１／φ）    …(9)
ただし、sin−１（Ｖ１／φ）は、０°〜９０°（０°≦θ２≦９０°）または２７０°〜３６０°（２７０°≦θ２＜３６０°）の範囲内の角度として求められる。具体的には、sin−１（Ｖ１／φ）は、０°〜９０°（０°≦θ２≦９０°）の範囲内の角度として求められる。一方、Ｖ１＜０であれば、sin−１（Ｖ１／φ）は、２７０°〜３６０°（２７０°≦θ２＜３６０°）の範囲内の角度として求められる。図１０を参照して、推定回転角θＲは、第１の出力信号Ｖ１から予測される第１の回転角領域Ｒ内の第１の回転角候補θＲおよび第２の回転角領域Ｓ内の第２の回転角候補θＳ（θＳ＝１８０°−θＲ（０°≦θＲ≦９０°）またはθＳ＝５４０°−θＲ（２７０°≦θＲ＜３６０°））のうちの、第１の回転角候補θＲである。
【００９８】
図１５は、実回転角θに対する第１の出力信号Ｖ１の波形と実回転角θに対する推定回転角θＲ（θＲ＝sin−１（Ｖ１／φ））を示している。実回転角θが０°〜９０°の範囲内または２７０°〜３６０°の範囲内にある場合には、推定回転角θＲは実回転角θと等しくなる。一方、実回転角θが９０°〜２７０°の範囲内にある場合には、推定回転角θＲは実回転角θと等しくならない。
【００９９】
図１６は、推定回転角θＲに基づいてモータ３を制御した場合の、実回転角θに対する目標モータトルクＴＭ＊および実モータトルクＴＭを示している。推定回転角θＲに基づいてモータ３を制御した場合には、実回転角θが９０°〜２７０°の範囲内にある場合には、実モータトルクＴＭは目標モータトルクＴＭ＊に比べて低下してしまう。
そこで、第２の回転角演算部３３Ａは、目標モータトルクＴＭ＊と実モータトルクＴＭとの偏差が大きくなる回転角においては、目標モータトルクＴＭ＊と実モータトルクＴＭとの偏差に応じて推定回転角θＲを補正する。
【０１００】
図１７は、第２の磁気センサ５の故障が検出された場合における第２の回転角演算部３３Ａの動作を示すフローチャートである。
第２の回転角演算部３３Ａは、まず、初期設定を行う。つまり、第２の回転角演算部３３Ａは、角度補正値を表す変数Δθを零に設定するともに（ステップＳ２１）、フラグflagを零に設定する（ステップＳ２２）。
【０１０１】
第２の回転角演算部３３Ａは、フラグflagが零であるか否かを判別する（ステップＳ２３）。フラグflagが零である場合には（ステップＳ２３：ＹＥＳ）、第２の回転角演算部３３Ａは、推定回転角θＲ（θＲ＝sin−１（Ｖ１／φ））を、第２の回転角θ２としてそのまま出力する（ステップＳ２４）。第２の回転角θ２は、第１スイッチ３４を介してＵＶＷ／ｄｑ変換部２７およびｄｑ／ＵＶＷ変換部２５に変換角θＳとして与えられる。
【０１０２】
そして、第２の回転角演算部３３Ａは、目標モータトルクＴＭ＊と実モータトルクＴＭとの偏差の絶対値（以下、「トルク偏差｜ＴＭ＊−ＴＭ｜」という。）が所定のしきい値Ｄ（Ｄ＞０）以上であるか否かを判別する（ステップＳ２５）。しきい値Ｄは、たとえば、０．５Ｎｍ程度に設定される。トルク偏差｜ＴＭ＊−ＴＭ｜がしきい値Ｄ未満であるときには（ステップＳ２５：ＮＯ）、ステップＳ２３に戻る。
【０１０３】
前記ステップＳ２５において、トルク偏差｜ＴＭ＊−ＴＭ｜がしきい値Ｄ以上であると判別されたときには（ステップＳ２５：ＹＥＳ）、第２の回転角演算部３３Ａは、フラグflagを１に設定した後（ステップＳ２６）、ステップＳ２３に戻る。
ステップＳ２３において、フラグflagが０でないと判別された場合には（ステップＳ２３：ＮＯ）、第２の回転角演算部３３Ａは、フラグflagが１であるか否かを判別する（ステップＳ２７）。フラグflagが１である場合には（ステップＳ２７：ＹＥＳ）、第２の回転角演算部３３Ａは、今回の角度補正値Δθを次式(10)に基づいて、演算する（ステップＳ２８）。
【０１０４】
Δθ＝｜ＴＭ＊−ＴＭ｜×Ｋ    …(10)
前記式(10)においてＫ（Ｋ＞０）は乗算係数である。角度補正値Δθは、トルク偏差｜ＴＭ＊−ＴＭ｜が大きいほど、大きな値となる。この後、第２の回転角演算部３３Ａは、フラグflagを２に設定する（ステップＳ２９）。そして、ステップＳ３０に移行する。
ステップＳ３０においては、第２の回転角演算部３３Ａは、第１の出力信号Ｖ１が零以上であるか否かを判別する。Ｖ１≧０であれば（ステップＳ３０：ＹＥＳ）、第２の回転角演算部３３Ａは、次式(11)に基づいて、第２の回転角θ２を演算する（ステップＳ３１）。
【０１０５】
θ２＝θＲ＋Δθ    …(11)
つまり、第２の回転角演算部３３Ａは、推定回転角θＲに今回の角度補正値Δθを加算することにより、推定回転角θＲを補正する。この補正後の推定回転角が第２の回転角θ２として出力される。第２の回転角θ２は、第１スイッチ３４を介してＵＶＷ／ｄｑ変換部２７およびｄｑ／ＵＶＷ変換部２５に変換角θＳとして与えられる。この後、第２の回転角演算部３３Ａは、今回の角度補正値Δθを、前回の角度補正値Δθｎ−１として記憶した後（ステップＳ３３）、ステップＳ２３に戻る。
【０１０６】
前記ステップＳ３０において、Ｖ１＜０であると判別された場合には（ステップＳ３０：ＮＯ）、第２の回転角演算部３３Ａは、次式(12)に基づいて、第２の回転角θ２を演算する（ステップＳ３２）。
θ２＝θＲ−Δθ    …(12)
つまり、第２の回転角演算部３３Ａは、推定回転角θＲから今回の角度補正値Δθを減算することにより、推定回転角θＲを補正する。この補正後の推定回転角が第２の回転角θ２として出力される。第２の回転角θ２は、第１スイッチ３４を介してＵＶＷ／ｄｑ変換部２７およびｄｑ／ＵＶＷ変換部２５に変換角θＳとして与えられる。この後、第２の回転角演算部３３Ａは、今回の角度補正値Δθを、前回の角度補正値Δθｎ−１として記憶した後（ステップＳ３３）、ステップＳ２３に戻る。
【０１０７】
前記ステップＳ２７において、フラグflagが１でないと判別された場合には（ステップＳ２７：ＮＯ）、つまり、フラグflagが２である場合には、第２の回転角演算部３３Ａは、トルク偏差｜ＴＭ＊−ＴＭ｜がしきい値Ｄ未満であるか否かを判別する（ステップＳ３４）。トルク偏差｜ＴＭ＊−ＴＭ｜がしきい値Ｄ未満であるときには（ステップＳ３４：ＹＥＳ）、第２の回転角演算部３３Ａは、今回の角度補正値Δθとして、前回の角度補正値Δθｎ−１を設定した後（ステップＳ３５）、ステップＳ３０に移行する。
【０１０８】
前記ステップＳ３４において、トルク偏差｜ＴＭ＊−ＴＭ｜がしきい値Ｄ以上であると判別された場合には（ステップＳ３４：ＮＯ）、第２の回転角演算部３３Ａは、今回の角度補正値Δθを零に設定するとともに（ステップＳ３６）、フラグflagを零に設定した後（ステップＳ３７）、ステップＳ３０に移行する。
図１５を参照して、実モータ角θが０°〜９０°または２７０°〜３６０°の範囲内にある場合には、推定回転角θＲは実モータ角θとほぼ等しいため、トルク偏差｜ＴＭ＊−ＴＭ｜はしきい値Ｄ未満となる。したがって、実モータ角θが０°〜９０°または２７０°〜３６０°の範囲内にある場合には、ステップＳ２３〜Ｓ２５の処理が繰り返される。
【０１０９】
実モータ角θが９０°〜２７０°の範囲内にある場合には、推定回転角θＲは実モータ角θとは異なる値となるため、トルク偏差｜ＴＭ＊−ＴＭ｜が大きくなる。実モータ角θが９０°〜２７０°の範囲内の回転角となり、トルク偏差｜ＴＭ＊−ＴＭ｜がしきい値Ｄ以上になると、前記ステップＳ２５でＹＥＳとなるから、フラグflagが１に設定される（ステップＳ２６参照）。
【０１１０】
そうすると、ステップＳ２７でＹＥＳとなるから、前記式(10)に基づいて、角度補正値Δθが演算される（ステップＳ２８参照）。角度補正値Δθは、トルク偏差｜ＴＭ＊−ＴＭ｜が大きいほど大きな値となるので、係数Ｋを調整することにより、たとえば、図１５にΔθで示すような値とすることができる。そして、フラグflagが２に設定された後（ステップＳ２９参照）、角度補正値Δθに基づいて推定回転角θＲが補正される（前記ステップＳ３１，３２参照）。
【０１１１】
実モータ角θが９０°〜１８０°の範囲内の回転角である場合には、出力信号Ｖ１は零以上となるため、推定回転角θＲに角度補正値Δθが加算されることによって、推定回転角θＲが補正される（ステップＳ３１参照）。そして、補正後の推定回転角が第２の回転角θ２として出力される。補正後の回転角θ２は、推定回転角θＲに角度補正値Δθが加算された回転角となるため、図１５に破線ａで示される回転角に近い値となる。このため、補正後の回転角θ２は、実回転角θに近い値となる。これにより、実モータトルクＴＭを目標モータトルクＴＭ＊に近づけることができる。この後、今回の角度補正値Δθが前回の角度補正値Δθｎ−１として記憶される（ステップＳ３３参照）。
【０１１２】
一方、実モータ角θが１８０°〜２７０°の範囲内の回転角である場合には、出力信号Ｖ１は零未満となるため、推定回転角θＲから角度補正値Δθが減算されることによって、推定回転角θＲが補正される（ステップＳ３１参照）。そして、補正後の推定回転角が第２の回転角θ２として出力される。補正後の回転角θ２は、推定回転角θＲから角度補正値Δθが減算された回転角となるため、図１５に破線ｂで示される回転角に近い値となる。このため、補正後の回転角θ２は、実回転角θに近い値となる。これにより、実モータトルクＴＭを目標モータトルクＴＭ＊に近づけることができる。この後、今回の角度補正値Δθが前回の角度補正値Δθｎ−１として記憶される（ステップＳ３３参照）。
【０１１３】
このように、ステップＳ２８によって演算された角度補正値Δθに基づいて推定回転角θＲが補正された直後においては、フラグflagは２に設定されている（ステップＳ２９参照）。このため、ステップＳ２３，Ｓ２７でＮＯとなるから、ステップＳ３４に進む。
ステップＳ２８によって演算された角度補正値Δθに基づいて推定回転角θＲが補正されたことによって、トルク偏差｜ＴＭ＊−ＴＭ｜がしきい値Ｄ未満となった場合には、ステップＳ３４でＹＥＳとなる。この場合には、前回の角度補正値Δθｎ−１と同じ角度補正値を用いて、推定回転角θＲが補正されることになる（ステップＳ３５，Ｓ３０〜Ｓ３３参照）。したがって、補正後の回転角θ２は、前回の補正後の回転角と近い値となる。
【０１１４】
一方、ステップＳ２８によって演算された角度補正値Δθに基づいて推定回転角θＲが補正されたにもかかわらず、トルク偏差｜ＴＭ＊−ＴＭ｜がしきい値Ｄ以上である場合には、実モータ角θが９０°〜２７０°の範囲外の角度になった可能性がある。そこで、角度補正値Δθが一旦、零にされるとともに、フラグflagが零に設定される（ステップＳ３６，Ｓ３７参照）。そして、零の角度補正値Δθに基づいて推定回転角θＲが補正されるから（ステップＳ３０〜Ｓ３３参照）、推定回転角θＲに基づいてモータ３が制御されることになる。
【０１１５】
この後、ステップＳ２３でＹＥＳとなるから、推定回転角θＲが演算されて出力され、トルク偏差｜ＴＭ＊−ＴＭ｜がしきい値Ｄ以上か否かが判別されることになる（ステッブＳ２４，Ｓ２５参照）。実モータ角θが９０°〜２７０°の範囲外の角度になっている場合には、トルク偏差｜ＴＭ＊−ＴＭ｜がしきい値Ｄ未満となる。このため、ステップＳ２３〜Ｓ２５の処理が繰り返されることになる。一方、実モータ角θが９０°〜２７０°の範囲内の角度である場合には、トルク偏差｜ＴＭ＊−ＴＭ｜がしきい値Ｄ以上となり、ステップＳ２６でflagが１に設定されるので、ステップＳ２８以降の処理が行なわれることになる。
【０１１６】
第３の実施形態では、第２の磁気センサ５が故障した場合でも、モータ３を駆動することができるようになる。なお、図１７のステップＳ２５およびステップＳ３４のトルク偏差｜ＴＭ＊−ＴＭ｜の代わりに、ｑ軸指示電流値Ｉｑ＊とｑ軸検出電流Ｉｑとの偏差の絶対値｜Ｉｑ＊−Ｉｑ｜を用いてもよい。この場合には、図１４の実モータトルク演算部３７は不要である。また、この場合には、図１４の目標モータトルク生成部２０および指示電流値生成部２１Ａの代わりに、図１の指示電流値生成部２１を用いることができる。
【０１１７】
図１８および図１９は、第２の回転角演算部３３Ａの変形例を説明するためのフローチャートである。
図１８は、第２の磁気センサ５が故障した場合における第２の回転角演算部３３Ａの動作を示すフローチャートである。図１８の処理は、所定の演算周期毎に繰り返される。
まず、第２の回転角演算部３３Ａは、次式(13)に基づいて、回転角（以下、「推定回転角θＲ」という）を演算する（ステップＳ４１）。
【０１１８】
θＲ＝sin−１（Ｖ１／φ）…(13)
ただし、sin−１（Ｖ１／φ）は、０°〜９０°（０°≦θ２≦９０°）または２７０°〜３６０°（２７０°≦θ２＜３６０°）の範囲内の角度として求められる。具体的には、Ｖ１≧０であれば、sin−１（Ｖ１／φ）は、０°〜９０°（０°≦θ２≦９０°）の範囲内の角度として求められる。一方、Ｖ１＜０であれば、sin−１（Ｖ１／φ）は、２７０°〜３６０°（２７０°≦θ２＜３６０°）の範囲内の角度として求められる。図１０を参照して、推定回転角θＲは、第１の出力信号Ｖ１から予測される第１の回転角領域Ｒ内の第１の回転角候補θＲおよび第２の回転角領域Ｓ内の第２の回転角候補θＳ（θＳ＝１８０°−θＲ（０°≦θＲ≦９０°）またはθＳ＝５４０°−θＲ（２７０°≦θＲ＜３６０°））のうちの、第１の回転角候補θＲである。
【０１１９】
次に、第２の回転角演算部３３Ａは、目標モータトルクＴＭ＊と実モータトルクＴＭとの偏差の絶対値（トルク偏差｜ＴＭ＊−ＴＭ｜）が所定のしきい値Ｅ（Ｅ＞０）を超えているか否かを判別する（ステップＳ４２）。しきい値Ｅは、たとえば、０．５Ｎｍ程度に設定される。
トルク偏差｜ＴＭ＊−ＴＭ｜がしきい値Ｅ以下である場合には（ステップＳ４２：ＮＯ）、第２の回転角演算部３３Ａは、フラグflag１が０であるか否かを判別する（ステップＳ４３）。フラグflag１は、モータ制御に用いられている第２の回転角θ２が図１０に示される第１の回転角領域Ｒ内の角度であるか、図１０に示される第２の回転角領域Ｓ内の角度であるかを記憶するためのフラグである。具体的には、第２の回転角θ２が第１の回転角領域Ｒ内の角度である場合にはフラグflag１は０となり、第２の回転角θ２が第２の回転角領域Ｓ内の角度である場合にはフラグflag１は１となる。フラグflag１の初期値は０である。
【０１２０】
フラグflag１が０であれば（ステップＳ４３：ＹＥＳ）、第２の回転角演算部３３Ａは、前記ステップＳ４１で演算された推定回転角θＲを第２の回転角θ２として出力する（ステップＳ４４）。この場合には、第２の回転角θ２は、第１の回転角領域Ｒ内の角度となる。第２の回転角θ２は、第１スイッチ３４を介してＵＶＷ／ｄｑ変換部２７およびｄｑ／ＵＶＷ変換部２５に変換角θＳとして与えられる。第２の回転角演算部３３Ａは、フラグflag１を０に設定した後（ステップＳ４５）、今演算周期での処理を終了する。
【０１２１】
前記ステップＳ４３において、フラグfla１gが１であると判別された場合には（ステップＳ４３：ＮＯ）、第２の回転角演算部３３Ａは、次式(14)に基づいて、第２の回転角θ２を演算して出力する（ステップＳ４６）。
０°≦θＲ≦９０°である場合；
θ２＝１８０°−θＲ，
２７０°≦θＲ＜３６０°である場合；
θ２＝５４０°−θＲ          …(14)
この場合には、第２の回転角θ２は、第２の回転角領域Ｓ内の角度となる。第２の回転角θ２は、第１スイッチ３４を介してＵＶＷ／ｄｑ変換部２７およびｄｑ／ＵＶＷ変換部２５に変換角θＳとして与えられる。第２の回転角演算部３３Ａは、フラグflag１を１に設定した後（ステップＳ４７）、今演算周期での処理を終了する。
【０１２２】
前記ステップＳ４２において、トルク偏差｜ＴＭ＊−ＴＭ｜がしきい値Ｅを超えていると判別されたときには（ステップＳ４２：ＹＥＳ）、第２の回転角演算部３３Ａは、フラグflag１が０であるか否かを判別する（ステップＳ４８）。フラグflag１が０であるときには（ステップＳ４８でＹＥＳ）、第２の回転角演算部３３Ａは、前記式(14)に基づいて、第２の回転角θ２を演算する（ステップＳ４９）。この場合には、第２の回転角θ２は、第２の回転角領域Ｓ内の角度となる。第２の回転角θ２は、第１スイッチ３４を介してＵＶＷ／ｄｑ変換部２７およびｄｑ／ＵＶＷ変換部２５に変換角θＳとして与えられる。第２の回転角演算部３３Ａは、フラグflag１を１に設定した後（ステップＳ５０）、今演算周期での処理を終了する。
【０１２３】
前記ステップＳ４８において、フラグflag１が１であると判別された場合には（ステップＳ４８：ＮＯ）、第２の回転角演算部３３Ａは、前記ステップＳ４１で演算された回転角θＲを第２の回転角θ２として出力する（ステップＳ５１）。この場合には、第２の回転角θ２は、第１の回転角領域Ｒ内の角度となる。第２の回転角θ２は、第１スイッチ３４を介してＵＶＷ／ｄｑ変換部２７およびｄｑ／ＵＶＷ変換部２５に変換角θＳとして与えられる。第２の回転角演算部３３Ａは、フラグflagを０に設定した後（ステップＳ５２）、今演算周期での処理を終了する。
【０１２４】
実回転角θが図１０に示される第１の回転角領域Ｒ内にある場合には、ステップＳ４１によって演算された回転角θＲは実回転角θとほぼ等しくなる。したがって、実回転角θが第１の回転角領域Ｒ内にある場合には、演算周期毎に、ステップＳ４１〜Ｓ４５の処理が行なわれる。
実回転角θが第１の回転角領域Ｒ内から第２の回転角領域Ｓ内へ変化した場合には、第２の回転角θ２（この場合には、θ２＝θＲ）は実回転角θと等しくならなくなる。このため、トルク偏差｜ＴＭ＊−ＴＭ｜が大きくなる。トルク偏差｜ＴＭ＊−ＴＭ｜がしきい値Ｅを超えると、ステップＳ４２でＹＥＳとなるため、ステップＳ４８に移行する。この場合には、フラグflag１は０となっているため、ステップＳ４８でＹＥＳとなるため、ステップＳ４９に移行する。したがって、前記式(14)に基づいて、第２の回転角θ２が演算される。これにより、第２の回転角θ２は、第２の回転角領域Ｓ内の角度となり、実回転角θとほぼ等しくなる。このため、トルク偏差｜ＴＭ＊−ＴＭ｜がしきい値Ｅ以下になる。こうして、実モータ角θが第２の回転角領域Ｓ内にある場合には、各演算周期において、ステップＳ４１，Ｓ４２，Ｓ４３，Ｓ４６，Ｓ４７の処理が実行される。
【０１２５】
この後、実モータ角θが第２の回転角領域Ｓ内から第１の回転角領域Ｒ内に変化すると、第２の回転角θ２（この場合には、θ２＝１８０−θＲまたはθ２＝１８０−θＲ）は、実モータ角θと等しくならなくなる。このため、トルク偏差｜ＴＭ＊−ＴＭ｜が大きくなる。トルク偏差｜ＴＭ＊−ＴＭ｜がしきい値Ｅを超えると、ステップＳ４２でＹＥＳとなるため、ステップＳ４８に移行する。この場合には、フラグflag１は１となっているため、ステップＳ４８でＮＯとなるため、ステップＳ５１に移行する。したがって、ステップＳ４１で演算された推定回転角θＲが第２の回転角θ２とされる。これにより、第２の回転角θ２は、第１の回転角領域Ｒ内の角度となり、実モータ角θとほぼ等しくなる。このため、トルク偏差｜ＴＭ＊−ＴＭ｜がしきい値Ｅ以下になる。こうして、実モータ角θが第１の回転角領域Ｒ内にある場合には、各演算周期において、ステップＳ４１〜Ｓ４５の処理が実行される。
【０１２６】
図１９は、第１の磁気センサ４が故障した場合における第２の回転角演算部３３Ａの動作を示すフローチャートである。図１９の処理は、所定の演算周期毎に繰り返される。
まず、第２の回転角演算部３３Ａは、次式(15)に基づいて、回転角（以下、「推定回転角θＰ）という）を演算する（ステップＳ６１）。
θＰ＝cos−１（Ｖ２／φ）…(15)
ただし、cos−１（Ｖ２／φ）は、０°〜１８０°（０°≦θ２≦１８０°）の範囲内の角度として求められる。図７を参照して、推定回転角θＰは、、第２の出力信号Ｖ２から予測される第１の回転角領域Ｐ内の第１の回転角候補θＰおよび第２の回転角領域Ｑ内の第２の回転角候補θＱ（θＱ＝３６０°−θＰ）のうちの、第１の回転角候補θＰである。
【０１２７】
次に、第２の回転角演算部３３Ａは、目標モータトルクＴＭ＊と実モータトルクＴＭとの偏差の絶対値（トルク偏差｜ＴＭ＊−ＴＭ｜）が所定のしきい値Ｅ（Ｅ＞０）を超えているか否かを判別する（ステップＳ６２）。
トルク偏差｜ＴＭ＊−ＴＭ｜がしきい値Ｅ以下である場合には（ステップＳ６２：ＮＯ）、第２の回転角演算部３３Ａは、フラグflag２が０であるか否かを判別する（ステップＳ６３）。フラグflag２は、モータ制御に用いられている第２の回転角θ２が図７にＰで示される第１の回転角領域Ｐ内の角度であるか、図７に示される第２の回転角領域Ｑ内の角度であるかを記憶するためのフラグである。具体的には、第２の回転角θ２が第１の回転領域Ｐ内の角度である場合にはフラグflag２は０であり、第２の回転角θ２が第２の回転角領域Ｑ内の角度である場合にはフラグflag２は１となる。フラグflag２の初期値は０である。
【０１２８】
フラグflag２が０であれば（ステップＳ６３：ＹＥＳ）、第２の回転角演算部３３Ａは、前記ステップＳ６１で演算された推定回転角θＰを第２の回転角θ２として出力する（ステップＳ６４）。この場合には、第２の回転角θ２は、第１の回転角領域Ｐ内の角度となる。第２の回転角θ２は、第１スイッチ３４を介してＵＶＷ／ｄｑ変換部２７およびｄｑ／ＵＶＷ変換部２５に変換角θＳとして与えられる。第２の回転角演算部３３Ａは、フラグflag２を０に設定した後（ステップＳ６５）、今演算周期での処理を終了する。
【０１２９】
前記ステップＳ６３において、フラグflag２が１であると判別された場合には（ステップＳ６３：ＮＯ）、第２の回転角演算部３３Ａは、次式(16)に基づいて、第２の回転角θ２を演算して出力する（ステップＳ４６）。
θ２＝３６０°−θＰ          …(16)
この場合には、第２の回転角θ２は、第２の回転角領域Ｑ内の角度となる。第２の回転角θ２は、第１スイッチ３４を介してＵＶＷ／ｄｑ変換部２７およびｄｑ／ＵＶＷ変換部２５に変換角θＳとして与えられる。第２の回転角演算部３３Ａは、フラグflag２を１に設定した後（ステップＳ６７）、今演算周期での処理を終了する。
【０１３０】
前記ステップＳ６２において、トルク偏差｜ＴＭ＊−ＴＭ｜がしきい値Ｅを超えていると判別されたときには（ステップＳ６２：ＹＥＳ）、第２の回転角演算部３３Ａは、フラグflag２が０であるか否かを判別する（ステップＳ６８）。フラグflag２が０であるときには（ステップＳ６８でＹＥＳ）、第２の回転角演算部３３Ａは、前記式(16)に基づいて、第２の回転角θ２を演算する（ステップＳ６９）。この場合には、第２の回転角θ２は、第２の回転角領域Ｑ内の角度となる。第２の回転角θ２は、第１スイッチ３４を介してＵＶＷ／ｄｑ変換部２７およびｄｑ／ＵＶＷ変換部２５に変換角θＳとして与えられる。第２の回転角演算部３３Ａは、フラグflag２を１に設定した後（ステップＳ７０）、今演算周期での処理を終了する。
【０１３１】
前記ステップＳ６８において、フラグflag２が１であると判別された場合には（ステップＳ６８：ＮＯ）、第２の回転角演算部３３Ａは、前記ステップＳ６１で演算された推定回転角θＰを第２の回転角θ２として出力する（ステップＳ７１）。この場合には、第２の回転角θ２は、第１の回転角領域Ｐ内の角度となる。第２の回転角θ２は、第１スイッチ３４を介してＵＶＷ／ｄｑ変換部２７およびｄｑ／ＵＶＷ変換部２５に変換角θＳとして与えられる。第２の回転角演算部３３Ａは、フラグflag２を０に設定した後（ステップＳ７２）、今演算周期での処理を終了する。
【０１３２】
実回転角θが図７に示される第１の回転角領域Ｐ内にある場合には、ステップＳ６１によって演算された推定回転角θＰは実回転角θとほぼ等しくなる。したがって、実回転角θが第１の回転角領域Ｐ内にある場合には、演算周期毎に、ステップＳ６１〜Ｓ６５の処理が行なわれる。
実回転角θが第１の回転角領域Ｐ内から第２の回転角領域Ｑ内へ変化した場合には、第２の回転角θ２（この場合には、θ２＝θＰ）は実回転角θと等しくならなくなる。このため、トルク偏差｜ＴＭ＊−ＴＭ｜が大きくなる。トルク偏差｜ＴＭ＊−ＴＭ｜がしきい値Ｅを超えると、ステップＳ６２でＹＥＳとなるため、ステップＳ６８に移行する。この場合には、フラグflag２は０となっているため、ステップＳ６８でＹＥＳとなるため、ステップＳ６９に移行する。したがって、前記式(16)に基づいて、第２の回転角θ２が演算される。これにより、第２の回転角θ２は、第２の回転角領域Ｑ内の角度となり、実回転角θと等しくなる。このため、トルク偏差｜ＴＭ＊−ＴＭ｜がしきい値Ｅ以下になる。こうして、実回転角θが第２の回転角領域Ｑ内にある場合には、各演算周期において、ステップＳ６１，Ｓ６２，Ｓ６３，Ｓ６６，Ｓ６７の処理が実行される。
【０１３３】
この後、実回転角θが第２の回転角領域Ｑ内から第１の回転角領域Ｐ内に変化すると、第２の回転角θ２（この場合には、θ２＝３６０−θＰ）は、実回転角θと等しくならなくなる。このため、トルク偏差｜ＴＭ＊−ＴＭ｜が大きくなる。トルク偏差｜ＴＭ＊−ＴＭ｜がしきい値Ｅを超えると、ステップＳ６２でＹＥＳとなるため、ステップＳ６８に移行する。この場合には、フラグflag２は１となっているため、ステップＳ６８でＮＯとなるため、ステップＳ７１に移行する。したがって、ステップＳ６１で演算された推定回転角θＰが第２の回転角θ２とされる。これにより、第２の回転角θ２は、第１の回転角領域Ｐ内の角度となり、実回転角θと等しくなる。このため、トルク偏差｜ＴＭ＊−ＴＭ｜がしきい値Ｅ以下になる。こうして、実回転角θが第１の回転角領域Ｐ内にある場合には、各演算周期において、ステップＳ６１〜Ｓ６５の処理が実行される。
【０１３４】
この変形例によれば、第１の磁気センサ４および第２の磁気センサ５のうちの一方が故障した場合にも、他方の正常な磁気センサの出力信号に基づいて、モータ３を駆動することができる。なお、図１８のステップＳ４２および図１９のステップＳ６２のトルク偏差｜ＴＭ＊−ＴＭ｜の代わりに、ｑ軸指示電流値Ｉｑ＊とｑ軸検出電流Ｉｑとの偏差の絶対値｜Ｉｑ＊−Ｉｑ｜を用いてもよい。この場合には、図１４の実モータトルク演算部３７は不要である。また、この場合には、図１４の目標モータトルク生成部２０および指示電流値生成部２１Ａの代わりに、図１の指示電流値生成部２１を用いることができる。
【０１３５】
以上、この発明の第１、第２および第３の実施形態について説明したが、この発明はさらに他の形態で実施することもできる。たとえば、前述の実施形態では、ロータ５０の回転角θを演算するために用いられる２つの正弦波信号Ｖ１（Ｖ１＝φsinθ）およびＶ２（Ｖ２＝φsin（θ＋９０°）＝φcosθ）を出力するセンサとして、２つの磁気センサ４，５が用いられているが、これらの磁気センサ４，５の代わりに、sinθに応じた信号とcosθに応じた信号を出力するレゾルバを用いてもよい。
【０１３６】
その他、特許請求の範囲に記載された事項の範囲で種々の設計変更を施すことが可能である。
この明細書からはさらに以下のような特徴が抽出され得る。
１．ブラシレスモータの回転に応じて互いに位相差を有する２つの正弦波信号を出力するセンサを含み、これらの正弦波信号に基づいて前記ブラシレスモータを制御するモータ制御装置であって、２つの正弦波信号のうちの一方に異常が発生した場合に、正常な正弦波信号から予測される第１の回転角候補および第２の回転角候補のうちの一方の回転角候補を、前記ブラシレスモータの回転角として推定する回転角推定手段と、前記回転角推定手段によって推定された回転角に基づいて、前記ブラシレスモータによって本来発生されるべきトルクと逆方向のトルクが発生されないように、前記ブラシレスモータを制御する制御手段と、を含むモータ装置。
この構成では、２つの正弦波信号のうちの一方に異常が発生した場合に、正常な正弦波信号から予測される第１の回転角候補および第２の回転角候補のうちの一方の回転角候補が、ブラシレスモータの回転角として推定される。そして、推定された回転角に基づいて、ブラシレスモータによって本来発生されるべきトルクと逆方向のトルクが発生されないように、ブラシレスモータが制御される。これにより、２つの正弦波信号のうちのいずれか一方に異常が発生した場合においても、正常な一つの正弦波信号に基づいて、ブラシレスモータを駆動することができるようになる。
２．前記制御手段は、前記回転角推定手段によって推定された回転角が、前記ブラシレスモータによって本来発生されるべきトルクと逆方向のトルクが発生される可能性がある第１の回転角領域内の回転角であるときには、前記ブラシレスモータの駆動電流を零にさせる手段と、前記回転角推定手段によって推定された回転角が、前記第１の回転角領域以外の第２の回転角領域内の回転角であるときには、前記回転角推定手段によって推定された回転角に基づいて前記ブラシレスモータを制御する手段と、を含む、前記１．に記載のモータ制御装置。
この構成では、回転角推定手段によって推定された回転角が、ブラシレスモータによって本来発生されるべきトルクと逆方向のトルクが発生される可能性がある第１の回転角領域内の回転角であるときには、ブラシレスモータの駆動電流が零にされる。これにより、逆方向のトルクが発生されるのを防止できる。一方、回転角推定手段によって推定された回転角が、第１の回転角領域以外の第２の回転角領域内の回転角であるときには、回転角推定手段によって推定された回転角に基づいてブラシレスモータが制御される。これにより、回転角推定手段によって推定された回転角が第２の回転角領域内の回転角であるときに、ブラシレスモータを駆動することができる。
３．前記制御手段は、目標モータトルクを設定するモータトルク設定手段と、前記モータトルク設定手段によって設定される目標モータトルクに応じた指示電流値を生成する指示電流値生成手段と、前記ブラシレスモータに流れる電流を検出する電流検出手段と、前記ブラシレスモータによって発生している実モータトルクを検出するモータトルク検出手段と、前記モータトルク設定手段によって設定される目標モータトルクと前記モータトルク検出手段によって検出される実モータトルクとの偏差に基づいて、前記回転角推定手段によって推定される回転角を補正する回転角補正手段と、前記回転角補正手段によって補正された回転角を用いて、前記電流検出手段によって検出される電流と前記指示電流値生成手段によって生成される指示電流値との偏差が零になるように、前記ブラシレスモータの駆動電流を制御する手段と、を含む前記１．に記載のモータ制御装置。
この構成では、回転角補正手段によって、目標モータトルクと実モータトルクとの偏差に基づいて、回転角推定手段によって推定される回転角が補正される。そして、補正された回転角を用いて、電流検出手段によって検出される電流と指示電流値生成手段によって生成される指示電流値との偏差が零になるように、ブラシレスモータの駆動電流が制御される。
回転角推定手段によって推定された回転角が実際のブラシレスモータの回転角（実回転角）とほぼ等しい場合には、目標モータトルクと実モータトルクとの偏差の絶対値（トルク偏差の絶対値）は小さくなる。一方、回転角推定手段によって推定された回転角が実回転角と異なる場合には、トルク偏差の絶対値は大きくなる。そこで、たとえば、回転角補正手段は、トルク偏差の絶対値が大きいときには、回転角推定手段によって推定された回転角をトルク偏差の絶対値に基づいて補正することにより、補正後の回転角を実回転角に近づけることが可能となる。これにより、２つの正弦波信号のうちのいずれか一方に異常が発生した場合においても、正常な一つの正弦波信号に基づいて、ブラシレスモータを駆動することができるようになる。
４．前記回転角補正手段は、前記モータトルク設定手段によって設定される目標モータトルクと前記モータトルク検出手段によって検出される実モータトルクとの偏差に基づいて、前記第１の回転角候補および前記第２の回転角候補のうちの一方を補正後の回転角として選択するものである、前記３．に記載のモータ制御装置。
この構成では、目標モータトルクと実モータトルクとの偏差に基づいて、第１の回転角候補および第２の回転角候補のうちの一方が補正後の回転角として選択される。回転角補正手段は、たとえば、第１の回転角候補に基づいてブラシレスモータの駆動電流が制御されている場合に、目標モータトルクと実モータトルクとの偏差の絶対値（トルク偏差の絶対値）が所定のしきい値より大きくなったときに第２の回転角候補を選択し、第２の回転角候補に基づいてブラシレスモータの駆動電流が制御されている場合に、トルク偏差の絶対値が所定のしきい値より大きくなったときに１の回転角候補を選択するものであってもよい。これにより、２つの正弦波信号のうちのいずれか一方に異常が発生した場合においても、正常な一つの正弦波信号に基づいて、ブラシレスモータを駆動することができる。
【符号の説明】
【０１３７】
３…ブラシレスモータ，４，５…磁気センサ、３４，３６…スイッチ
【図１】
0005645058.tif 000002
【図２】
0005645058.tif 000003
【図３】
0005645058.tif 000004
【図４】
0005645058.tif 000005
【図５】
0005645058.tif 000006
【図６】
0005645058.tif 000007
【図７】
0005645058.tif 000008
【図８】
0005645058.tif 000009
【図９】
0005645058.tif 000010
【図１０】
0005645058.tif 000011
【図１１】
0005645058.tif 000012
【図１２】
0005645058.tif 000013
【図１３】
0005645058.tif 000014
【図１４】
0005645058.tif 000015
【図１５】
0005645058.tif 000016
【図１６】
0005645058.tif 000017
【図１７】
0005645058.tif 000018
【図１８】
0005645058.tif 000019
【図１９】
0005645058.tif 000020
【図２０】
0005645058.tif 000021
【図２１】
0005645058.tif 000022