(57)【要約】【課題】ロータの回転速度が急激に変化したり回転方向が反転しない場合でも、ロータ角度を正確に推定し制御を行うモータ制御装置を提供する。【解決手段】ロータ角度位置検出部１６２により離散的に検出される検出ロータ角度θｒが得られない間、ロータ角度推定部１６４は、経過時間ΔＴＬが前回の検出時間間隔ΔＴn 以下の場合は通常推定演算（Ｓ７２）を行い、以上の場合は戻し推定演算（Ｓ６２）を行う。ここで直前の検出ロータ角度θｒと電気角推定値θｒｅとの差が３０度を超えると、操舵トルク符号を取得して（Ｓ５８）ロータが反転したか否かを推定する（Ｓ６０）。ここで反転しないと推定される場合は逆戻し処理として機能する通常推定演算（Ｓ７２）を行うことにより、戻し処理を行う場合にロータの回転方向が反転しない場合でも電気角推定値θｒｅを正確に算出することができる。【選択図】図７
2011010401.tif 000002
【特許請求の範囲】
【請求項１】
ブラシレスモータを駆動するモータ制御装置であって、
前記ブラシレスモータのロータの電気角を所定の検出電気角毎に検出可能なように周方向に所定の間隔を空けて配置される複数の検出素子を有し、当該複数の検出素子からの検出信号に基づき前記ロータの電気角を前記所定の検出電気角毎に離散的に検出するロータ角度検出手段と、
前記ロータ角度検出手段による前記ロータ電気角の検出時点の時間間隔に基づき、前記ロータの現時点における電気角推定値を算出するロータ角度推定手段と、
前記ロータの回転方向が反転したか否かを推定する反転推定手段と、
前記ブラシレスモータに供給すべき電流の量を示す指令電流値と、前記ロータ角度推定手段により算出される前記電気角推定値とに基づき、前記ブラシレスモータを制御する指令電圧のレベルを求める制御手段と、
前記制御手段で求められるレベルの電圧に応じて前記ブラシレスモータを駆動するモータ駆動手段と
を備え、
前記ロータ角度推定手段は、前記ロータ角度検出手段による前記ロータ電気角が検出されることなく次に検出されるべき時点が到来した場合、前記ロータ角度検出手段により直前に検出された前記ロータ電気角へ向かって値が戻るように前記電気角推定値を算出する戻し処理を行い、前記戻し処理中に前記反転推定手段により前記ロータが反転していないと推定される場合、前記ロータ角度検出手段により次に検出されるべきロータ電気角へ向かって値が再び戻るように前記電気角推定値を算出する逆戻し処理を行うことを特徴とする、モータ制御装置。
【請求項２】
前記ロータ角度推定手段は、前記ロータ角度検出手段による前記ロータ電気角の直前の検出時点から、当該直前の検出時点の前回の検出時点までの時間間隔ΔＴn と、前記直前の検出時点から現時点までの経過時間ΔＴＬとが等しくなるとき、前記次に検出されるべき時点が到来したと判定することを特徴とする、請求項１に記載のモータ制御装置。
【請求項３】
ブラシレスモータを駆動するモータ制御装置であって、
前記ブラシレスモータのロータの電気角を所定の検出電気角毎に検出可能なように周方向に所定の間隔を空けて配置される複数の検出素子を有し、当該複数の検出素子からの検出信号に応じて前記ロータの電気角を前記所定の検出電気角毎に離散的に検出するロータ角度検出手段と、
前記ロータ角度検出手段による前記ロータ電気角の直前の検出時点である第１の時点を終点とし当該第１の時点の前回の検出時点である第２の時点を始点とする時間間隔ΔＴn に基づき算出される前記ロータの角速度ωに応じて、前記ロータの現時点における電気角推定値を算出するロータ角度推定手段と、
前記ブラシレスモータに供給すべき電流の量を示す指令電流値と、前記ロータ角度推定手段により算出される前記電気角推定値とに基づき、前記ブラシレスモータを制御する指令電圧のレベルを求める制御手段と、
前記制御手段で求められるレベルの電圧に応じて前記ブラシレスモータを駆動するモータ駆動手段と
を備え、
前記ロータ角度推定手段は、前記第２の時点から前記第１の時点までの間に前記ロータの回転方向が反転した場合であって、かつ前記第２の時点を終点とし当該第２の時点の前回の検出時点である第３の時点を始点とする時間間隔ΔＴn-1 に対して１以上の所定の係数αを乗算して得られる時間間隔α・ΔＴn-1 よりも前記時間間隔ΔＴn が大きい場合、前記ロータの角速度ωに対して１より大きい所定の角速度増大係数を乗算しまたは前記時間間隔ΔＴn に対して１より小さい所定の期間短縮係数を乗算することにより前記ロータの角速度ωを算出し、前記電気角推定値を算出することを特徴とする、モータ制御装置。
【請求項４】
請求項１から請求項３までのいずれか１項に記載のモータ制御装置を備えた、電動パワーステアリング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブラシレスモータの制御を行うモータ制御装置、および当該モータ制御装置を備えた電動パワーステアリング装置に関する。
【背景技術】
【０００２】
従来から、運転者がハンドル（ステアリングホイール）に加える操舵トルクに応じて電動モータを駆動することにより車両のステアリング機構に操舵補助力を与える電動パワーステアリング装置が用いられている。電動パワーステアリング装置の電動モータには従来からブラシモータが広く使用されているが、信頼性および耐久性の向上や慣性の低減などの観点から、近年ではブラシレスモータも使用されている。
【０００３】
このブラシレスモータが使用されている電動パワーステアリング装置では、座標変換によるベクトル制御などでブラシレスモータを駆動する方法が一般的である。この方法では、ロータの現時点での回転位置であるロータ角度を検出するため、ホール素子を含む位置検出センサ（ホールセンサ）が用いられることが多い。このホールセンサは、永久磁石からなるロータの周囲に、例えば１２０度または６０度の間隔で３個が配置され、これら３個のホールセンサから出力された検出信号に基づき電気角６０度毎のロータ角度の変化が検出される。
【０００４】
ここで、電気角６０度毎の検出情報のみでは、現時点での正確なロータ角度を得ることができないので、当該検出信号に基づき、現時点でのロータ角度を推定する計算が行われるのが一般的である。例えば、検出信号における直前の検出時点からその前の検出時点までの時間間隔と、直前の検出時点からの経過時間とに基づき、現時点でのロータ角度が推定される。
【０００５】
この推定されたロータ角度が不正確であると、脱調やモータ効率の悪化を引き起こすので、推定のための計算には従来よりさまざま工夫がなされている。例えば特許文献１には、ロータ位相推定値が次回の検出位相値に相当する値に達すると、ロータ位相推定値を今回の検出位相値に相当する値の方向へ戻す処理（以下ではこの処理を「戻し処理」という）を行うモータ制御装置の構成が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−２３９７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで、ロータの回転速度が急激に変化することが多い電動パワーステアリング装置において、ホールセンサからの検出信号における直前の検出時点からその前の検出時点までの時間間隔に基づいて単純に現時点でのロータ角度を推定する計算を行うと、現実のロータ角度と大きなずれを生じる可能性がある。
【０００８】
また、上記戻し処理は、現実のロータが前回の検出時点までの角速度と同じ角速度で回転し、かつ次回の検出位相角が得られると予想される時点の直前でその回転方向が反転し同じ角速度で回転する場合を想定して、上記時点でロータ位相推定値を戻すものである。そのため、現実のロータが上記場合と同様に回転すれば比較的正確なロータ位相推定値を算出することができる。しかし、現実のロータ角度がゆっくりと変化して戻らない場合（すなわちロータの回転方向が反転しない場合）など、上記のように現実のロータが回転しない場合には正確なロータ位相推定値を算出することができない。
【０００９】
そこで本発明では、ロータの回転速度が急激に変化する場合や、戻し処理が行われるときに回転方向が反転しない場合でも、ロータ角度を正確に推定し制御を行うモータ制御装置、およびこれを備えた電動パワーステアリング装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
第１の発明は、ブラシレスモータを駆動するモータ制御装置であって、
前記ブラシレスモータのロータの電気角を所定の検出電気角毎に検出可能なように周方向に所定の間隔を空けて配置される複数の検出素子を有し、当該複数の検出素子からの検出信号に基づき前記ロータの電気角を前記所定の検出電気角毎に離散的に検出するロータ角度検出手段と、
前記ロータ角度検出手段による前記ロータ電気角の検出時点の時間間隔に基づき、前記ロータの現時点における電気角推定値を算出するロータ角度推定手段と、
前記ロータの回転方向が反転したか否かを推定する反転推定手段と、
前記ブラシレスモータに供給すべき電流の量を示す指令電流値と、前記ロータ角度推定手段により算出される前記電気角推定値とに基づき、前記ブラシレスモータを制御する指令電圧のレベルを求める制御手段と、
前記制御手段で求められるレベルの電圧に応じて前記ブラシレスモータを駆動するモータ駆動手段と
を備え、
前記ロータ角度推定手段は、前記ロータ角度検出手段による前記ロータ電気角が検出されることなく次に検出されるべき時点が到来した場合、前記ロータ角度検出手段により直前に検出された前記ロータ電気角へ向かって値が戻るように前記電気角推定値を算出する戻し処理を行い、前記戻し処理中に前記反転推定手段により前記ロータが反転していないと推定される場合、前記ロータ角度検出手段により次に検出されるべきロータ電気角へ向かって値が再び戻るように前記電気角推定値を算出する逆戻し処理を行うことを特徴とする。
【００１１】
第２の発明は、第１の発明において、
前記ロータ角度推定手段は、前記ロータ角度検出手段による前記ロータ電気角の直前の検出時点から、当該直前の検出時点の前回の検出時点までの時間間隔ΔＴn と、前記直前の検出時点から現時点までの経過時間ΔＴＬとが等しくなるとき、前記次に検出されるべき時点が到来したと判定することを特徴とする。
【００１２】
第３の発明は、ブラシレスモータを駆動するモータ制御装置であって、
前記ブラシレスモータのロータの電気角を所定の検出電気角毎に検出可能なように周方向に所定の間隔を空けて配置される複数の検出素子を有し、当該複数の検出素子からの検出信号に応じて前記ロータの電気角を前記所定の検出電気角毎に離散的に検出するロータ角度検出手段と、
前記ロータ角度検出手段による前記ロータ電気角の直前の検出時点である第１の時点を終点とし当該第１の時点の前回の検出時点である第２の時点を始点とする時間間隔ΔＴn に基づき算出される前記ロータの角速度ωに応じて、前記ロータの現時点における電気角推定値を算出するロータ角度推定手段と、
前記ブラシレスモータに供給すべき電流の量を示す指令電流値と、前記ロータ角度推定手段により算出される前記電気角推定値とに基づき、前記ブラシレスモータを制御する指令電圧のレベルを求める制御手段と、
前記制御手段で求められるレベルの電圧に応じて前記ブラシレスモータを駆動するモータ駆動手段と
を備え、
前記ロータ角度推定手段は、前記第２の時点から前記第１の時点までの間に前記ロータの回転方向が反転した場合であって、かつ前記第２の時点を終点とし当該第２の時点の前回の検出時点である第３の時点を始点とする時間間隔ΔＴn-1 に対して１以上の所定の係数αを乗算して得られる時間間隔α・ΔＴn-1 よりも前記時間間隔ΔＴn が大きい場合、前記ロータの角速度ωに対して１より大きい所定の角速度増大係数を乗算しまたは前記時間間隔ΔＴn に対して１より小さい所定の期間短縮係数を乗算することにより前記ロータの角速度ωを算出し、前記電気角推定値を算出することを特徴とする。
【００１３】
第４の発明は、第１から第３までのいずれか１つの発明に記載のモータ制御装置を備えた、電動パワーステアリング装置である。
【発明の効果】
【００１４】
上記第１の発明によれば、戻し処理中に反転推定手段によりロータが反転していないと推定される場合、ロータ角度検出手段により次に検出されるべきロータ電気角へ向かって値が再び戻るように電気角推定値を算出する逆戻し処理が行われるので、逆戻し処理開始時点以降において実際のロータの電気角とロータ角度推定手段により算出される電気角推定値との差が広がることがない。よって、戻し処理が行われるときに回転方向が反転しない場合でも、ロータ角度を正確に推定し制御を行うことができる。
【００１５】
上記第２の発明によれば、時間間隔ΔＴn と、経過時間ΔＴＬとが等しくなるとき、次に検出されるべき時点が到来したと判定するので、ロータ角度推定手段により算出される電気角推定値が次に検出されるべきロータ角度に達したか否かを判定することなく、適切な時点で戻し処理を行うか否かを判定することができる。
【００１６】
上記第３の発明によれば、ロータ角度推定手段により、ロータの回転方向が反転した場合であって、かつ時間間隔α・ΔＴn-1 よりも時間間隔ΔＴn が大きい場合、ロータの角速度ωに対して角速度増大係数を乗算しまたは時間間隔ΔＴn に対して期間短縮係数を乗算することによりロータの角速度ωを算出し、電気角推定値を算出する。よって、途中でロータの回転方向が反転したことから長くなった期間または小さくなった角速度に対してその期間を短くするようまたはその角速度を大きくするよう補正することができるので、補正された期間または角速度に基づき正確な電気角推定値を算出することができる。
【００１７】
上記第４の発明によれば、上記第１から第３までの発明における効果を奏するモータ制御装置を備えた電動パワーステアリング装置を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施形態に係る電動パワーステアリング装置の構成をそれに関連する車両構成と共に示す概略図である。
【図２】上記実施形態に係る電動パワーステアリング装置を制御的観点から見た構成を示すブロック図である。
【図３】上記実施形態におけるモータの軸方向に対する垂直断面図である。
【図４】図３に示すロータが６０度時計回りに回転した時のモータの軸方向に対する垂直断面図である。
【図５】上記実施形態におけるロータ角度検出値に基づくロータ角度推定の手順を示すフローチャートである。
【図６】上記実施形態における実際のロータ角度と推定ロータ角度との時間的な変化の一例を示す図である。
【図７】上記実施形態におけるロータ角度推定処理の詳しい処理手順を示すフローチャートである。
【図８】上記実施形態における実際のロータ角度と推定ロータ角度との時間的な変化の別例を示す図である。
【発明を実施するための形態】
【００１９】
以下、添付図面を参照しつつ、本発明の実施形態について説明する。
＜１．全体構成＞
図１は、本発明の一実施形態（およびその他の各実施形態）に係る電動パワーステアリング装置の構成を、それに関連する車両の構成と共に示す概略図である。図１に示す電動パワーステアリング装置は、ブラシレスモータ１、減速機２、トルクセンサ３、車速センサ４、位置検出センサであるホールセンサ５、および、電子制御ユニット（Electronic Control Unit ：以下、ＥＣＵという）１０を備えたコラムアシスト型の電動パワーステアリング装置である。
【００２０】
図１に示すように、ステアリングシャフト１０２の一端にはハンドル（ステアリングホイール）１０１が固着されており、ステアリングシャフト１０２の他端はラックピニオン機構１０３を介してラック軸１０４に連結されている。ラック軸１０４の両端は、タイロッドおよびナックルアームからなる連結部材１０５を介して車輪１０６に連結されている。運転者がハンドル１０１を回転させると、ステアリングシャフト１０２は回転し、これに伴いラック軸１０４は往復運動を行う。ラック軸１０４の往復運動に伴い、車輪１０６の向きが変わる。
【００２１】
電動パワーステアリング装置は、運転者の負荷を軽減するために、以下に示す操舵補助を行う。トルクセンサ３は、ハンドル１０１の操作によってステアリングシャフト１０２に加えられる操舵トルクＴを検出する。車速センサ４は、車速Ｓを検出する。
【００２２】
ホールセンサ５は、ホール素子を含むホールＩＣからなり、ブラシレスモータ１のロータの回転位置Ｐを検出する。なお、後述するようにこのホールセンサは、連続的にロータの位置を検出可能ないわゆるリニア形式のホールセンサではなく、離散的にロータの位置を検出するスイッチ形式（オンオフ形式）のホールセンサである。
【００２３】
ＥＣＵ１０は、車載バッテリ１００から電力の供給を受け、操舵トルクＴ、車速Ｓおよび回転位置Ｐに基づきブラシレスモータ１を駆動する。ブラシレスモータ１は、ＥＣＵ１０によって駆動されると、操舵補助力を発生させる。減速機２は、ブラシレスモータ１とステアリングシャフト１０２との間に設けられる。ブラシレスモータ１で発生した操舵補助力は、減速機２を介して、ステアリングシャフト１０２を回転させるように作用する。
【００２４】
この結果、ステアリングシャフト１０２は、ハンドル１０１に加えられる操舵トルクと、ブラシレスモータ１で発生した操舵補助力の両方によって回転する。このように電動パワーステアリング装置は、ブラシレスモータ１で発生した操舵補助力を車両のステアリング機構に与えることにより操舵補助を行う。
【００２５】
このような本実施形態に係る電動パワーステアリング装置では、ブラシレスモータ１を駆動する制御装置（モータ制御装置）に特徴がある。そこで以下では、本実施形態に係る電動パワーステアリング装置に含まれるモータ制御装置について説明する。
【００２６】
＜２．モータ制御装置の構成＞
図２は、上記電動パワーステアリング装置における制御装置であるＥＣＵ１０の構成を示すブロック図である。このＥＣＵ１０は、マイクロコンピュータ（以下「マイコン」と略記する）２０とモータ駆動部とから構成される。マイコン２０は、その内部のメモリに格納された所定のプログラムを実行することにより、車速演算部１８４と、目標電流演算部１１４と、減算器１２２，１２４と、ｄ軸電流ＰＩ制御部１２６と、ｑ軸電流ＰＩ制御部１２８と、ｄ−ｑ／３相交流座標変換部１３２と、符号反転加算器１３４と、３相交流／ｄ−ｑ座標変換部１３８と、ロータ角度位置検出部１６２と、ロータ角度推定部１６４とからなるモータ制御部として機能する。目標電流演算部１１４には、基本アシスト制御部１８０とモータ電流指令値演算部１８８とが含まれている。モータ駆動部は、モータ制御部としてのマイコン２０から出力される電圧指令値に基づき３相のブラシレスモータ１を駆動するハードウェア（回路）であり、ＰＷＭ信号生成回路１５０と、モータ駆動回路１５２と、Ｕ相電流検出器１５６と、Ｖ相電流検出器１５４とから構成される。
【００２７】
ハンドル１０１が操作されると、トルクセンサ３によって検出される操舵トルクＴがＥＣＵ１０に入力されるとともに、車速センサ４によって検出される車速信号ＳもＥＣＵ１０に入力される。車速演算部１８４では、車速信号Ｓに基づいて車速Ｖが算出される。
【００２８】
ロータ角度位置検出部１６２は、ブラシレスモータ１に取り付けられたホールセンサ５から出力されるセンサ信号に基づいて、ブラシレスモータ１のロータである永久磁石の回転位置である実際のロータ角度θａに相当する電気角（以下「検出ロータ角度θｒ」という）を離散的に検出する。このホールセンサ５は、図３のように取り付けられる３つのホールセンサからなる。
【００２９】
図３は、モータの軸方向に対する垂直断面図であり、図４は、図３に示すロータが６０度時計回りに回転した時のモータの軸方向に対する垂直断面図である。これらの図に示されるように、ホールセンサ５は、３つのホールセンサ５ａ〜５ｃからなり、これらは３つのステータ６ａ〜６ｃの直上に取り付けられている。これらのホールセンサ５ａ〜５ｃは、説明の便宜のため、ロータ７の磁極（Ｎ極またはＳ極）が最も接近した時、すなわち対応するステータ６ａ〜６ｃの直上に位置する時点でセンサ信号を出力するものとする。なお、実際にはホールセンサ５ａ〜５ｃは、ロータ７の実際のロータ角度θａが６０度変化する毎にこれらのうちのいずれか１つから出力される信号がＨレベルからＬレベルへまたはその逆に変化するよう、軸回りに１２０度ずつの間隔を空けて配置される。
【００３０】
また、図３および図４では、センサ信号を出力するホールセンサに斜線が付されている。さらに以下では、ホールセンサ５ａの位置にロータ７のＮ極が最も接近した時のロータ７の角度を０度とする。すなわち、図３に示されるように、実際のロータ角度θａが０度のときに斜線を付されたホールセンサ５ａは、ロータ７のＮ極を検出しており、ロータ角度位置検出部１６２に対してセンサ信号が送られる。ロータ角度位置検出部１６２は、ホールセンサ５ａからの当該センサ信号を受け取ることにより、検出ロータ角度θｒは０度であることを判別することができるので、ロータ角度推定部１６４に対して検出ロータ角度θｒである０度を与える。
【００３１】
さらに、ロータ７が時計回り方向に６０度回転すると、図４に示されるように斜線を付されたホールセンサ５ｃは、ロータ７のＳ極を検出しており、ロータ角度位置検出部１６２に対してセンサ信号が送られる。ロータ角度位置検出部１６２は、ホールセンサ５ｃからの当該センサ信号を受け取った時の検出ロータ角度θｒは６０度であることを判別することができるので、ロータ角度推定部１６４に対して検出ロータ角度θｒである６０度を与える。
【００３２】
このように、ロータ７が６０度回転する毎に、３つのホールセンサ５ａ〜５ｃによりロータ７のＮ極またはＳ極を検出することができるので、ロータ角度位置検出部１６２は、ロータ角度推定部１６４に対して検出単位角度である６０度毎に（離散的に）検出ロータ角度θｒを与える。したがって、検出ロータ角度θｒが与えられる場合には、その検出ロータ角度θｒは正確であってそのままロータ角度として使用することができるが、その値は離散的にしか得られないためその間の値を推定する必要がある。
【００３３】
そこでロータ角度推定部１６４は、ロータ角度位置検出部１６２によって検出された検出ロータ角度θｒに対して、現時点におけるロータ角度を正確に推定する演算を行うことにより、この電気角θｒを推定された電気角θｒｅに補正し出力する。この推定演算については詳しくは後述する。なお、本実施形態ではロータの極対数が１であるため、この電気角θｒｅ（電気角θｒ）は機械角に一致している。またこの極対数は２以上であってもよい。
【００３４】
またロータ角度推定部１６４は、直前（すなわち次回の検出時点から見て１回前）にロータ角度位置検出部１６２から受け取った検出ロータ角度θｒと、その前（２回前）に受け取った検出ロータ角度θｒ’とを記憶するとともに、さらにその前（３回前）にロータ角度位置検出部１６２から検出ロータ角度θｒを受け取った時点から前回（２回前）の時点までの時間間隔ΔＴn-1 と、前回（２回前）の時点から直前（１回前）の時点までの時間間隔ΔＴn とを記憶する。これらの値はロータ角度の推定のために使用されるが詳しくは後述する。
【００３５】
基本アシスト制御部１８０は、アシストマップと呼ばれる、操舵トルクと目標電流値とを対応づけるテーブルを参照し、操舵トルクＴと車速Ｖとに基づいて、ブラシレスモータ１に流すべき目標電流値Ｉｔを決定する。モータ電流指令値演算部１８８は、目標電流値Ｉｔに基づいて、ｑ軸電流指令値ｉｑ*を出力する。このｑ軸電流指令値ｉｑ*は、ブラシレスモータ１が発生すべきトルクに対応する電流値であり、減算器１２４に入力される。一方、ｄ軸電流指令値ｉｄ*は、トルクに関与しないのでｉｄ*＝０として、減算器１２２に入力される。
【００３６】
Ｕ相電流検出器１５６およびＶ相電流検出器１５４は、それぞれモータのＵ相、Ｖ相の巻き線（本明細書では単に「Ｕ相、Ｖ相」という）に流れる電流を検出し、Ｕ相電流検出値ｉｕとＶ相電流検出値ｉｖとをそれぞれ電圧信号で出力する。これらのＵ相電流検出器１５６およびＶ相電流検出器１５４は、モータ駆動回路１５２からブラシレスモータ１へ繋がる線に対して配置されるが、モータ駆動回路１５２内の各駆動用素子と接地点との間に配置されてもよい。
【００３７】
３相交流／ｄ−ｑ座標変換部１３８は、ロータの電気角θｒｅに基づいて、Ｕ相電流検出値ｉｕおよびＶ相電流検出値ｉｖを、ｄ−ｑ座標上の値であるｄ軸モータ電流値ｉｄおよびｑ軸モータ電流値ｉｑに変換する。このｄ軸モータ電流値ｉｄおよびｑ軸モータ電流値ｉｑは、減算器１２２および減算器１２４にそれぞれ入力される。
【００３８】
減算器１２２では、ｄ軸電流指令値ｉｄ*とｄ軸モータ電流値ｉｄとの偏差ｉｄ*−ｉｄが出力される。そして、ｄ軸電流ＰＩ制御部１２６では、その偏差ｉｄ*−ｉｄに基づく比例積分演算によって、ｄ軸電圧指令値ｖｄ*が出力される。一方、減算器１２４では、ｑ軸電流指令値ｉｑ*とｑ軸モータ電流値ｉｑとの偏差ｉｑ*−ｉｑが出力される。そして、ｑ軸電流ＰＩ制御部１２８では、その偏差ｉｑ*−ｉｑに基づく比例積分演算によって、ｑ軸電圧指令値ｖｑ*が出力される。
【００３９】
ｄ−ｑ／３相交流座標変換部１３２では、ロータの電気角θｒｅに基づいて、ｄ軸電圧指令値ｖｄ*およびｑ軸電圧指令値ｖｑ*を、３相交流座標上の値であるＵ相電圧指令値ｖｕ*およびＶ相電圧指令値ｖｖ*に変換する。そして、符号反転加算器１３４は、Ｕ相電圧指令値ｖｕ*およびＶ相電圧指令値ｖｖ*からＷ相電圧指令値ｖｗ*を算出する。
【００４０】
ＰＷＭ信号生成回路１５０は、Ｕ相電圧指令値ｖｕ*、Ｖ相電圧指令値ｖｖ*、Ｗ相電圧指令値ｖｗ*を受け取り、それらの指令値に応じてデューティ比の変化するＰＷＭ信号Ｓｕ、Ｓｖ、Ｓｗを生成する。モータ駆動回路１５２では、そのＰＷＭ信号Ｓｕ、Ｓｖ、Ｓｗによってスイッチング素子がオン／オフされ、それにより、デューティ比に応じた電圧ｖｕ、ｖｖ、ｖｗがブラシレスモータ１のＵ相、Ｖ相、Ｗ相にそれぞれ印加される。
【００４１】
＜３．ロータ角度推定部の動作＞
＜３．１  全体の動作＞
次に、本実施形態におけるロータ角度推定部１６４のロータ角度決定処理について説明する。図５は、本実施形態に係る電動パワーステアリング装置における、ロータ角度検出値に基づくロータ角度決定の手順を示すフローチャートである。なお、以下の処理は所定の非常に短い制御間隔で繰り返し行われるものとする。
【００４２】
ステップＳ１０において、このモータ制御装置に備えられるロータ角度推定部１６４は、ホールセンサ５からのセンサ信号を入力されるロータ角度位置検出部１６２によって算出され離散的に与えられる検出ロータ角度θｒを受け取った否かを判定する。ホールセンサの信号検出により検出ロータ角度θｒを受け取らない場合には（ステップＳ１０：Ｎｏ）、処理はステップＳ５０に進む。このステップＳ５０における角度推定処理については詳しく後述する。この角度推定処理が行われると、上記処理は一旦終了し、次の制御周期が到来すると新たに開始される、という動作が装置の停止まで繰り返される。
【００４３】
また、上記判定の結果、ホールセンサの信号検出により離散的に与えられる検出ロータ角度θｒを受け取った場合には（ステップＳ１０：Ｙｅｓ）、ロータ角度推定部１６４は、受け取ったロータ角度である検出ロータ角度θｒをそのまま推定値としての推定ロータ角度θｒｅに代入し（ステップＳ１２）、その推定ロータ角度θｒｅを出力する。この出力された推定ロータ角度θｒｅが３相交流／ｄ−ｑ座標変換部１３８およびｄ−ｑ／３相交流座標変換部１３２に与えられることについては前述した。
【００４４】
次にステップＳ１４において、ロータ角度推定部１６４は、ロータ７の回転方向が前回の検出時点から今回の検出時点までの間に反転したか否かを判定し、反転した場合には（ステップＳ１４：Ｙｅｓ）、続くステップＳ１６の処理へ進み、反転していない場合には（ステップＳ１４：Ｎｏ）、詳しくは後述する期間短縮係数Ｔｃに１を代入し（ステップＳ２０）、さらに続くステップＳ２２の処理へ進む。なお、上記判定は、具体的には前回（２回前）の検出時点における推定ロータ角度θｒｅ’と、今回である直前（１回前）の検出時点における推定ロータ角度θｒｅとを比較し、同じ値であればその間に反転したものとすることにより行うことができる。このようにロータ７の回転方向が反転する場合について、図６を参照して詳しく説明する。
【００４５】
図６は、実際のロータ角度と推定ロータ角度との時間的な変化の一例を示す図である。この図６に示されるように、時刻ｔ０では実際のロータ角度θａも推定ロータ角度θｒｅもゼロであり、また図示されていないが検出ロータ角度θｒもゼロである。その後、時刻ｔ１において、ロータ角度位置検出部１６２により検出ロータ角度θｒが６０°と検出される。この時点における実際のロータ角度θａも推定ロータ角度θｒｅも６０°になることは前述したとおりである。
【００４６】
さらにその後、時刻ｔ２において実際のロータ角度θａが１２０°になる前に減少に転じ、推定ロータ角度θｒｅは１２０°となりその後減少に転じているが、このような推定ロータ角度θｒｅの算出方法については詳しく後述する。なお、この時刻ｔ２近傍で実際のロータ７の回転方向は反転しているが、この時点ではロータ角度位置検出部１６２により検出ロータ角度θｒを得ることができないので、反転したことを直接に検出することはできない。ただし結果的に反転したであろうことを推定することは可能であり、詳しくは後述する。
【００４７】
そして時刻ｔ５において、ロータ角度位置検出部１６２により検出ロータ角度θｒが６０°と検出される。この時点において、前回（２回前）の検出時点ｔ１における推定ロータ角度θｒｅ’は６０°であり、今回である直前（１回前）の検出時点ｔ５における推定ロータ角度θｒｅも６０°であるので、上記ステップＳ１４の処理においてロータ７の回転方向は、時刻ｔ１から時刻ｔ５までの間に反転したと判定される。
【００４８】
続いてステップＳ１６において、ロータ角度推定部１６４は、前回（２回前）にロータ角度位置検出部１６２から検出ロータ角度θｒ’を受け取った時点から直前（１回前）の時点までの時間間隔ΔＴn の大きさが、前回のさらに前（３回前）の時点から前回（２回前）の時点までの時間間隔ΔＴn-1 の大きさよりも大きいか否かを判定し、大きい場合には（ステップＳ１６：Ｙｅｓ）、詳しくは後述する期間短縮係数Ｔｃに１／２を代入し（ステップＳ１８）、さらに続くステップＳ２２の処理へ進む。また上記判定の結果大きくない場合には（ステップＳ１６：Ｎｏ）、前述したステップＳ２０における処理を行った後、さらに続くステップＳ２２の処理へ進む。
【００４９】
ここで図６に示す例では、直前（１回前）の検出時点を時刻ｔ５とするとき、まず前述したように、上記ステップＳ１４の処理において、時刻ｔ５の時点ではロータ７の回転方向は（途中で）反転したと判定される。次に上記ステップＳ１６の処理において、前回（２回前）の検出時点である時刻ｔ１から上記時刻ｔ５までの時間間隔ΔＴn の大きさは、前々回（３回前）の検出時点である時刻ｔ０から上記時刻ｔ１までの時間間隔ΔＴn-1 の大きさよりも大きいと判定される。したがって、上記ステップＳ１８の処理において、期間短縮係数Ｔｃには１／２が代入される。このように期間短縮係数Ｔｃに１／２を代入する目的については詳しく後述する。
【００５０】
次にステップＳ２２において、ロータ角度推定部１６４は、角度推定用の初期化処理を行う。具体的には、後述するステップＳ５０における角度推定処理に使用される直前（１回前）の検出時点からの経過時間ΔＴＬをゼロに設定する。
【００５１】
また、ロータ角度推定部１６４は、ステップＳ５０における角度推定処理に使用されるロータの回転方向を示す回転方向係数Ｏｒに１または−１の値を代入する。具体的には、前回（２回前）の検出時点における推定ロータ角度θｒｅ’と、今回である直前（１回前）の検出時点における推定ロータ角度θｒｅとに基づき、図の時計回り方向にロータ７が回転していると判定される場合には回転方向係数Ｏｒに１を代入し、反時計回り方向にロータ７が回転していると判定される場合には回転方向係数Ｏｒに−１を代入する。またθｒｅ’＝θｒｅである場合には、前述したようにロータ７の回転方向が途中で反転しているので、前回の回転方向係数Ｏｒの符号を逆にして、再び回転方向係数Ｏｒに代入する。
【００５２】
その後、上記一連の処理は一旦終了し、次の制御周期が到来すると新たに開始される、という動作が装置の停止まで繰り返される。次に、図７を参照して角度推定処理（ステップＳ５０）の詳しい処理内容について説明する。
【００５３】
＜３．２  角度推定の詳しい動作＞
図７は、本実施形態に係る電動パワーステアリング装置における、角度推定処理の詳しい処理手順を示すフローチャートである。図７に示されるステップＳ５２において、ロータ角度推定部１６４は、直前（１回前）にロータ角度位置検出部１６２から検出ロータ角度θｒを受け取った時点から現時点までの経過時間ΔＴＬが、前回（２回前）から直前（１回前）の時点までの時間間隔ΔＴn 以上であるか否かを判定する。
【００５４】
この判定の結果、ΔＴＬ≧ΔＴn である場合（ステップＳ５２：Ｙｅｓ）、処理はステップＳ５４に進み、以降の処理で（従来の戻し処理とは異なる、後述する逆戻し処理として機能する通常推定演算を含めた）本実施形態における戻し処理が行われる。この処理内容については後述する。なお、このステップＳ５２における処理のように経過時間ΔＴＬに基づき戻し処理を行うか否か判定すれば、推定ロータ角度θｒｅが次に検出されるべき検出ロータ角度に達したか否かを判定することなく、適切な時点で戻し処理を行うか否かを判定することができる。もっとも、ここでステップＳ５２における処理に代えて、従来のように推定ロータ角度θｒｅが次に検出されるべき検出ロータ角度に達したか否かを判定してもよい。
【００５５】
なお、上記ステップＳ５２では、ΔＴＬ≧ΔＴn であるか否かが判定されるが、ΔＴn より所定の期間ｐだけ長い期間と比較されてもよい（ΔＴＬ≧ΔＴn ＋ｐ）。そうすれば、推定ロータ角度θｒｅが次に検出されるべき検出ロータ角度に達した場合、さらに期間ｐが経過した時点で戻し処理を行うか否かを判定することができる。
【００５６】
また、上記判定の結果、ΔＴＬ＜ΔＴn である場合（ステップＳ５２：Ｎｏ）、ステップＳ６８の処理を経てステップＳ７２における通常推定演算が行われる。ここで、まず前述した戻し処理が行われない場合であって、上記期間短縮係数Ｔｃに１／２が代入される場合を含めた通常推定演算に関連する動作について先に説明する。
【００５７】
＜３．２．１  期間が短縮される場合を含む通常推定演算動作＞
まずステップＳ６８において、ロータ角度推定部１６４は、後述するトルク検出フラグをリセットする。このトルク検出フラグは、以下に説明する通常推定演算が後述する逆戻し処理として機能する場合に使用されるので、以下の通常推定演算が逆戻し処理として機能しないこの時点でリセットされる。その後処理はステップＳ７２に進む。
【００５８】
次にステップＳ７２（通常推定演算）において、ロータ角度推定部１６４は、ロータ角度位置検出部１６２による前回（２回前）から直前（１回前）の時点までの時間間隔ΔＴn に対して期間短縮係数Ｔｃを乗算した期間に基づき、この期間におけるロータ７の角速度ω（＝６０／（ΔＴn ・Ｔｃ）・Ｏｒ）を算出し、この角速度ωを上記直前の検出時点からの経過時間ΔＴＬに対して乗算し、この乗算値を直前に検出された検出ロータ角度θｒに加算することにより、推定ロータ角度θｒｅ（＝ω・ΔＴＬ＋θｒ）を算出する。
【００５９】
ここで、前述したステップＳ２０の処理において上記期間短縮係数Ｔｃに１が代入される場合、時間間隔ΔＴn に対して期間短縮係数Ｔｃを乗算する意味はない。しかし、前述したステップＳ１８の処理において上記期間短縮係数Ｔｃに１／２が代入される場合、時間間隔ΔＴn に対して期間短縮係数Ｔｃを乗算した期間は、時間間隔ΔＴn の半分となる。この期間に基づき推定ロータ角度θｒｅを算出するためのロータ７の角速度ωを算出すると、比較的正確な推定ロータ角度θｒｅを得ることができる。以下、図６を参照して詳しく説明する。
【００６０】
前述したように図６に示される時刻ｔ５において、期間短縮係数Ｔｃには１／２が代入される（Ｓ１４→Ｓ１６→Ｓ１８）。したがって、その直後の角度推定処理（Ｓ１０→Ｓ５０）において行われる通常推定演算（Ｓ５２→Ｓ６８→Ｓ７２）では、ロータ７の角速度ω（＝６０／（ΔＴn ・Ｔｃ）・Ｏｒ）は、時刻ｔ２から時刻ｔ５までの実際のロータ角度θａの変化（角速度）に近い値が得られる。すなわち、図６に示されるように、実際の角度θａは時刻ｔ２近傍で１２０°直前の角度となった後に減少に転じており、時刻ｔ２から時刻ｔ５までの時間間隔は、時刻ｔ１から時刻ｔ５までの時間間隔ΔＴn の１／２にほぼ等しいので、時刻ｔ２から時刻ｔ５までの実際のロータ７の角速度は、上記通常推定演算におけるロータ７の角速度ωに近い値となる。もちろん、実際のロータ角度θａは、例えば時刻ｔ２近傍で１２０°とは全く異なる角度（例えば９０°）となった後に減少に転じるなど、図６に示される変化態様とは異なるように変化することも考えられるが、ロータ７が途中で反転する場合であって（Ｓ１４：Ｙｅｓ）かつΔＴn ＞ΔＴn-1 である場合（Ｓ１６：Ｙｅｓ）、前述した戻し処理により想定される変化態様と同様に考えれば、現実のロータ７が次回の検出位相角が得られると予想される時刻ｔ２の直前でその回転方向が反転し同じ角速度で回転する変化態様を想定することが好適であると考えられる。したがって、上記場合に限り、１／２が代入された期間短縮係数Ｔｃを使用して推定ロータ角度θｒｅを算出すると、比較的正確な値を得ることができる。
【００６１】
なお、上記ステップＳ１６の処理における条件は、ΔＴn ＞ΔＴn-1 としたが、図６に示すような例では時刻ｔ４から時刻ｔ５までの時間間隔をΔＴｋとするとき、ΔＴn ＝ΔＴn-1 ・２＋ΔＴｋであるので、上記条件はΔＴn ＞ΔＴn-1 ・２としてもよい。このように上記条件はΔＴn ＞ΔＴn-1 ・α（ただしα≧１）とすることができる。もっともαが２より大きい場合に上記条件を満たすことは少ないため、αを２以下の値とすることが多く、典型的には１とすることが多い。
【００６２】
次にステップＳ７４において、ロータ角度推定部１６４は、推定ロータ角度θｒｅから直前に検出されたロータ角度である検出ロータ角度θｒを差し引いた値の絶対値が６０°より大きいか否かを判定する。この判定の結果、６０°以下の場合（ステップＳ７４：Ｎｏ）、上記一連の角度推定処理は終了し、図５の処理に復帰する。また上記判定の結果、６０°より大きい場合（ステップＳ７４：Ｙｅｓ）、直前の検出ロータ角度θｒに対して、６０°に回転方向係数Ｏｒを乗算した値を加え、得られる値を推定ロータ角度θｒｅに代入し（ステップＳ７６）、上記一連の角度推定処理が終了する。
【００６３】
このように推定ロータ角度θｒｅが次に検出されるべき検出ロータ角度を超えないように演算を行うのは、次に検出されるべき検出ロータ角度θｒが実際に得られていないのにそれを超える角度であると推定することができないからである。また、推定ロータ角度θｒｅを次に検出されるべき検出ロータ角度（＝θｒ＋６０・Ｏｒ）とするのは、後述する戻し処理の場合とは異なり、通常の場合には、当該次に検出されるべき検出ロータ角度が実際のロータ角度θａに近いと推定されるからである。
【００６４】
例えば、図６に示されるように、時刻ｔ６において、推定ロータ角度θｒｅは、次に検出されるべき検出ロータ角度０°に達しているので、次に実際に検出ロータ角度が検出される時刻ｔ７の時点まで推定ロータ角度θｒｅは０°に維持される。
【００６５】
次に、前述したようにステップＳ５２の判定の結果、ΔＴＬ≧ΔＴn である場合、（従来の戻し処理とは異なる、後述する逆戻し処理として機能する通常推定演算を含めた）戻し処理が行われる。この処理内容について詳しく説明する
【００６６】
＜３．２．２  逆戻し処理として機能する通常推定演算を含めた戻し処理動作＞
まずステップＳ５４において、ロータ角度推定部１６４は、推定ロータ角度θｒｅから直前に検出された検出ロータ角度θｒを差し引いた値の絶対値が３０°以下であるか否かを判定する。この判定の結果、３０°より大きい場合（ステップＳ５４：Ｎｏ）、処理はステップＳ６２へ進む。
【００６７】
また上記判定の結果、３０°以下である場合（ステップＳ５４：Ｙｅｓ）、ロータ角度推定部１６４は、トルク検出フラグが立てられているかすなわちトルク検出済みであるか否かを判定し（ステップＳ５６）、この判定の結果、検出済みである場合（ステップＳ５６：Ｙｅｓ）、ステップＳ６０の処理に進み、この判定の結果、検出済みでない場合（ステップＳ５６：Ｎｏ）、トルクセンサ３によって検出される操舵トルクＴの符号を取得してトルク検出フラグを立て（ステップＳ５８）、ステップＳ６０の処理に進む。すなわち、戻し処理が行われる場合において、推定ロータ角度θｒｅと検出ロータ角度θｒとの差が３０°に達したとき、これらの処理（Ｓ５４〜Ｓ５８）により、操舵トルクＴの符号取得が一回だけなされることになる。
【００６８】
次にステップＳ６０において、ロータ角度推定部１６４は、ステップＳ５６において取得された操舵トルクＴの符号と回転方向係数Ｏｒの符号とを比較し、符号が一致している場合にはロータ７の回転方向が途中で反転したであろうと判定し、符号が一致していない場合にはロータ７の回転方向が反転していないであろうと判定する。前述したように、ロータ７の回転方向は直前の検出時点とその前の検出時点とにおいて検出される検出ロータ角度θｒを比較することにより行われるので、その途中の時点でロータ７の回転方向が反転したか否かを判定することは本来できないはずである。しかし、ステアリングシャフト１０２の回転方向が反転される時点の直前を除いて、操舵トルクの符号は、ロータ７の回転方向と一致していることが多い。したがって、反転されると想定される時点（すなわち推定ロータ角度θｒｅと（反転されないときに）次に検出されるべき検出ロータ角度との差がほとんどない時点）から離れた時点（例えば推定ロータ角度θｒｅと上記検出されるべき検出ロータ角度との差が３０°の時点）において、戻し処理中の回転方向係数Ｏｒの符号が操舵トルクＴの符号と一致している場合には、実際のロータ角度θａの変化も戻し処理中の推定ロータ角度θｒｅの変化と一致していることが多いと推定される。このことから上記のような判定を行うことができる。また、推定ロータ角度θｒｅと検出ロータ角度θｒとの差が３０°に達した時点で上記判定を行い、かつ必要な場合に後述する逆戻し処理を行うことにより、結果的に実際のロータ角度θａと推定ロータ角度θｒｅとの差が３０°以上開くことを防止することができ、より正確な推定ロータ角度θｒｅを算出することができる。なお、上記３０°の角度は典型例であって、６０°未満の異なる角度であってもよい。
【００６９】
このような判定の結果、ロータ７の回転方向が反転したと推定される場合（ステップＳ６０：Ｙｅｓ）、処理はステップＳ６２における戻し推定演算に進む。また、上記判定の結果、反転していないと推定される場合（ステップＳ６０：Ｎｏ）、期間短縮係数Ｔｃに１を代入し（ステップＳ７０）、ステップＳ７２における前述した通常推定演算に進む。ここで戻し処理中に行われる通常推定演算は、戻し処理における戻し推定演算に対してさらに逆方向に推定ロータ角度θｒｅの変化方向を戻す処理、すなわち逆戻し処理として機能する。したがって、期間短縮係数Ｔｃに１／２を代入すると、正確な推定ロータ角度θｒｅを算出することができなくなるので、上記ステップＳ７０における処理のように期間短縮係数Ｔｃに１を代入する。
【００７０】
続いてステップＳ６２（戻し推定演算）において、ロータ角度推定部１６４は、ロータ角度位置検出部１６２による前回（２回前）から直前（１回前）の時点までの時間間隔ΔＴn におけるロータ７の角速度ω（＝６０／ΔＴn ・Ｏｒ）を算出し、この角速度ωの符号を反転した角速度−ωを上記直前の検出時点からの経過時間ΔＴＬに対して乗算し、この乗算値を直前に検出された検出ロータ角度θｒに加算することにより、推定ロータ角度θｒｅ（＝−ω・ΔＴＬ＋θｒ）を算出する。なおこの戻し推定演算は、角速度ωの符号が反転される点と、期間短縮係数Ｔｃが使用されない点とが前述した通常推定演算（ステップＳ７２）とは異なる。
【００７１】
次にステップＳ６４において、ロータ角度推定部１６４は、直前に検出されたロータ角度である検出ロータ角度θｒから推定ロータ角度θｒｅを差し引くことにより得られる値に対して回転方向係数Ｏｒを乗算した値が０°より小さいか否かを判定する。この判定の結果、０°以上の場合（ステップＳ６４：Ｎｏ）、上記一連の角度推定処理は終了し、図５の処理に復帰する。また上記判定の結果、０°より小さい場合（ステップＳ６４：Ｙｅｓ）、直前の検出ロータ角度θｒを推定ロータ角度θｒｅに代入し（ステップＳ６６）、上記一連の角度推定処理が終了する。
【００７２】
このように推定ロータ角度θｒｅが検出ロータ角度θｒを超えないように演算を行うのは、前述したように次に検出されるべき検出ロータ角度θｒが実際に得られていないのにそれを超える角度であると推定することができないからである。また、推定ロータ角度θｒｅを検出ロータ角度θｒとするのは、前述したように戻し処理により想定されるロータの回転態様を前提にするとき、次に検出されるべき検出ロータ角度は、実際のロータ角度θａに近いと推定されるからである。
【００７３】
以上のような戻し処理が行われる場合について、まず前述した図６を参照して、逆戻し処理が行われない例を具体的に説明する。図６に示されるように、時刻ｔ２において推定ロータ角度θｒｅは１２０°となる。ここで時刻ｔ１におけるロータ角度検出を直前（１回前）の検出時点とするとき、時刻ｔ０から時刻ｔ１までの時間間隔ΔＴn は、時刻ｔ１から時刻ｔ２までの経過時間ΔＴＬに等しくなるので、この時刻ｔ２の時点から戻し推定演算が行われる（Ｓ５２→Ｓ５４→Ｓ６２）。
【００７４】
その後、推定ロータ角度θｒｅが検出ロータ角度θｒである１２０°から３０°以上離れた時点、すなわち推定ロータ角度θｒｅが９０°になる時点である時刻ｔ３において、操舵トルクＴの符号が取得される（Ｓ５２→Ｓ５４→Ｓ５６→Ｓ５８）。そして、図示されていないが、この時点での操舵トルクＴの符号が回転方向係数Ｏｒの符号と合致しているものとすると、ロータ７の回転方向は戻し処理において想定されるように反転したと推定されるので、推定ロータ角度θｒｅが６０°に達する時刻ｔ４まで戻し推定演算が繰り返される（Ｓ５２→Ｓ５４→Ｓ５６→Ｓ６０→Ｓ６２→Ｓ６４）。
【００７５】
そして時刻ｔ４に達すると、推定ロータ角度θｒｅが検出ロータ角度θｒを超えないように推定ロータ角度θｒｅに検出ロータ角度θｒが代入され（Ｓ６６）、次にロータ角度が検出される時刻ｔ５まで上記処理が繰り返される（Ｓ５２→Ｓ５４→Ｓ５６→Ｓ６０→６２→Ｓ６４→Ｓ６６）。
【００７６】
次に、逆戻し処理が行われる例について図８を参照して具体的に説明する。図８は、実際のロータ角度と推定ロータ角度との時間的な変化の別例を示す図である。この図８に示される例は、図６に示される例と、時刻ｔ２の前まではほぼ同様であるが、図６に示す例とは異なり実際のロータ角度θａの変化方向（ロータの回転方向）が反転していない。したがって、もし逆戻し処理が行われない従来の戻し処理が行われると、次に検出ロータ角度θｒが得られる時刻ｔ５の時点では、推定ロータ角度θｒｅと実際のロータ角度θａとが６０°もの誤差を生じることになる。しかし、前述したように本実施形態では、推定ロータ角度θｒｅが検出ロータ角度θｒである１２０°から３０°以上離れた時点、すなわち推定ロータ角度θｒｅが９０°になる時点である時刻ｔ３において、操舵トルクＴの符号が取得される（Ｓ５２→Ｓ５４→Ｓ５６→Ｓ５８）。そして、図示されていないが、この時点での操舵トルクＴの符号が回転方向係数Ｏｒの符号と合致していないものとすると、ロータ７の回転方向は戻し処理において想定されるようには反転しなかったと推定されるので、推定ロータ角度θｒｅが１２０°に達する時刻ｔ４まで逆戻し処理として機能する通常推定演算が繰り返される（Ｓ５２→Ｓ５４→Ｓ５６→Ｓ６０→Ｓ７０→Ｓ７２→Ｓ７４）。
【００７７】
そして時刻ｔ４に達すると、推定ロータ角度θｒｅが次回検出されるべき検出ロータ角度である１２０°（＝θｒ＋６０°）を超えないように推定ロータ角度θｒｅに１２０°が代入され（Ｓ７６）、次にロータ角度が検出される時刻ｔ５まで上記処理が繰り返される（Ｓ５２→Ｓ５４→Ｓ５６→Ｓ６０→Ｓ７０→Ｓ７２→Ｓ７４→Ｓ７６）。
【００７８】
＜４．効果＞
以上のように、本実施形態におけるロータ角度推定部１６４は、ロータ７が途中で反転しかつΔＴn ＞ΔＴn-1 である場合には、現実のロータ７が次回の検出位相角が得られると予想される時刻ｔ２の直前でその回転方向が反転し同じ角速度で回転する変化態様を想定し、１／２が代入された期間短縮係数Ｔｃを使用して推定ロータ角度θｒｅを算出するので、正確な推定ロータ角度θｒｅを得ることができる。なお、この効果を奏するためには、図５に示す各処理および図７に示すステップＳ７２〜Ｓ７６における処理が行われれば足りるので、図７に示すステップＳ５２〜Ｓ７０における処理は省略してもよい。
【００７９】
また、上記ロータ角度推定部１６４は、戻し処理中に、推定ロータ角度θｒｅと検出ロータ角度θｒとの差が３０°に達した時点でトルクセンサにより得られる操舵トルクＴの符号が回転方向係数Ｏｒの符号が合致していない場合には逆戻し処理を行うことにより、結果的に実際のロータ角度θａと推定ロータ角度θｒｅとの差が３０°以上開くことを防止することができ、より正確な推定ロータ角度θｒｅを算出することができる。なお、この効果を奏するためには、図５に示すステップＳ１４〜Ｓ２０における処理および図７に示すステップＳ７０における処理は省略してもよい。
【００８０】
＜５．変形例＞
上記一実施形態では、スイッチ方式のホールセンサ５を用いたが、離散的な値を出力する位置検出センサであってそのために角度推定が必要であるものであればよく、例えば交番検知型のホールセンサが用いられてもよい。なおその場合にはホールセンサの取り付け位置は図３および図４の場合とは異なるが、ロータ７の位置を離散的に検出可能であれば、ホールセンサの取り付け位置（例えば軸回りに６０°ずつ間隔を空けた位置）や配置数などは周知の様々な組み合わせを採用することができる。
【００８１】
上記一実施形態では、ステップＳ１８において期間短縮係数Ｔｃに１／２を代入することにより角速度算出の対象となる期間を短縮する構成であるが、この構成に代えて角速度ωが２倍になるよう速度増大係数ωｃに２を代入し、例えばステップＳ７２（通常推定演算）において、ロータ角度推定部１６４は、ロータ７の角速度ω（＝６０／ΔＴn ・ωｃ・Ｏｒ）を算出し、この角速度ωに基づき推定ロータ角度θｒｅ（＝ω・ΔＴＬ＋θｒ）を算出してもよい。
【００８２】
また上記一実施形態では、期間短縮係数Ｔｃには１／２を代入するが、これは前述したように上記戻し処理は、現実のロータが前回の検出時点までの角速度と同じ角速度で回転し、かつ次回の検出位相角が得られると予想される時点の直前でその回転方向が反転し同じ角速度で回転する変化態様を想定しているからである。したがって、ロータの回転方向が反転する場合において、上記態様とは異なるロータ角速度の変化態様を想定することにより、期間短縮係数Ｔｃに１より小さい数値であって１／２以外の数値を代入してもよい。このような場合、途中でロータの回転方向が反転したことから長くなった期間に対してその期間を短くするよう１未満の期間短縮係数Ｔｃを乗算することにより補正すれば、補正された期間に基づき正確な推定ロータ角度θｒｅを得ることができる。なお、このことは速度増大係数ωｃについても同様であり、１より大きい数値であって２以外の数値が代入されてもよい。
【００８３】
上記一実施形態では、ステップＳ５８における処理で操舵トルクＴの符号を取得する構成であって、トルクセンサおよび関連する上記処理は、ステップＳ６０における処理でロータ７の回転方向が反転されたと推定する反転推定手段として機能するが、この反転推定手段は周知の様々な構成を採用することができる。例えば図示されない舵角センサを備え、この舵角センサにより取得されるハンドル１０１の操舵角の変化方向を取得し、ロータ７の反転推定を行う構成であってもよい。
【符号の説明】
【００８４】
５ａ〜５ｃ…ホールセンサ、６ａ〜６ｃ…ステータ、７…ロータ、２０…マイコン
【図１】
2011010401.tif 000003
【図２】
2011010401.tif 000004
【図３】
2011010401.tif 000005
【図４】
2011010401.tif 000006
【図５】
2011010401.tif 000007
【図６】
2011010401.tif 000008
【図７】
2011010401.tif 000009
【図８】
2011010401.tif 000010