(57)【要約】【課題】ブラシ付きモータ等において温度変化等があっても正確に角速度推定して精度よく当該モータを制御できるモータ制御装置を提供する。【解決手段】電動パワーステアリング装置のモータ制御に使用する角速度推定値ωｅを次のようにして求める。保舵状態において制御周期毎に得られる電流検出値Ｉｍおよび電圧検出値Ｖｍから抵抗値Ｒｃを算出する。１つの保舵期間において抵抗値Ｒｃの算出回数が所定のＣａ回以上である場合には、直近のＣａ回での抵抗値Ｒｃの平均値を新たな抵抗値Ｒｎｅｗとして算出し（Ｓ５４）、抵抗値Ｒｃの算出回数がＣａ回より少ないＣ回である場合には、直近のＣ回での抵抗値Ｒｃの平均値Ｒ１と前回の保舵期間におけるＣａ回での抵抗値Ｒｃの平均値Ｒｏｌｄとの加重平均を新たな抵抗値Ｒｎｅｗとして算出する（Ｓ６２）。角速度推定値ωｅはこの新たな抵抗値Ｒｎｅｗを用いて算出される（Ｓ５８）。【選択図】図８
2011087402.tif 000002
【特許請求の範囲】
【請求項１】
電動モータの電機子巻線に生じる逆起電力に基づき当該電動モータの回転速度の推定値を算出し、当該推定値を用いて当該電動モータを駆動するモータ制御装置であって、
前記電動モータに流れる電流を検出する電流検出手段と、
前記電動モータに印加される電圧を検出する電圧検出手段と、
前記電動モータが所定状態にあるときに所定の物理量につき順次取得される複数の検出値に基づき、前記電動モータの回路方程式におけるパラメータである前記電動モータの抵抗値および逆起電力定数のうち少なくとも１つのパラメータの値を更新パラメータ値として算出するパラメータ値更新手段と、
前記パラメータ値更新手段により算出される前記更新パラメータ値と前記電流検出手段により取得される電流検出値と前記電圧検出手段により取得される電圧検出値とを用いて、前記回路方程式に基づき、前記電動モータの回転速度を示す速度推定値を算出する推定値算出手段とを備え、
前記パラメータ値更新手段は、
前記更新パラメータ値の新たな算出のために前記物理量につき取得された検出値の個数が所定数以上であるときには、当該取得された検出値を用いて第１の所定方法により新たな更新パラメータ値を算出し、
前記更新パラメータ値の新たな算出のために前記物理量につき取得された検出値の個数が前記所定数よりも少ないときには、当該取得された検出値と既に得られている前記更新パラメータ値とを用いて第２の所定方法により新たな更新パラメータ値を算出し、
前記推定値算出手段は、前記パラメータ値更新手段によって新たな更新パラメータ値が算出されると、当該新たな更新パラメータ値を用いて前記速度推定値を算出することを特徴とする、モータ制御装置。
【請求項２】
前記電動モータの回転速度が０近傍の所定値以下か否かを判定する判定手段を更に備え、
前記パラメータ値更新手段は、前記判定手段によって前記電動モータの回転速度が前記所定値以下であると判定されているときに前記電流検出手段および電圧検出手段により前記物理量の検出値として順次取得される複数の電流検出値および電圧検出値に基づき前記電動モータの抵抗値を算出し、
前記第１の所定方法は、前記複数の電流検出値および電圧検出値の各検出時点における当該電流検出値および電圧検出値から当該検出時点における前記電動モータの抵抗値を算出抵抗値として求め、前記所定数の当該算出抵抗値についての移動平均値を新たな更新パラメータ値として算出するという方法であり、
前記第２の所定方法は、前記複数の電流検出値および電圧検出値の各検出時点における当該電流検出値および電圧検出値から当該検出時点における前記電動モータの抵抗値を算出抵抗値として求め、複数の当該算出抵抗値についての平均値と既に得られている前記更新パラメータ値との加重平均値を新たな更新パラメータ値として算出するという方法であることを特徴とする、請求項１に記載のモータ制御装置。
【請求項３】
前記電動モータの回転速度を前記電動モータの駆動制御に必要な精度よりも低い精度で検出する簡易速度検出手段を更に備え、
前記パラメータ値更新手段は、前記簡易速度検出手段によって検出される回転速度が所定値以上であるときに前記物理量の検出値として前記電流検出手段および電圧検出手段により順次取得される複数の電流検出値および電圧検出値と前記簡易速度検出手段により順次取得される複数の回転速度検出値とに基づき、前記電動モータの抵抗値および逆起電力定数を算出し、
前記第１の所定方法は、前記複数の電流検出値および電圧検出値の各検出時点における当該電流検出値および電圧検出値と前記回転速度検出値とが前記回路方程式を少なくとも近似的に満たすように、前記電動モータの抵抗値および逆起電力定数を新たな更新パラメータ値として算出するという方法であり、
前記第２の所定方法は、前記複数の電流検出値および電圧検出値の各検出時点における当該電流検出値および電圧検出値と前記回転速度検出値とが前記回路方程式を少なくとも近似的に満たすように、前記電動モータの抵抗値および逆起電力定数を仮パラメータ値として算出し、当該仮パラメータ値と既に得られている前記更新パラメータ値との加重平均値を新たな更新パラメータ値として算出するという方法であることを特徴とする、請求項１に記載のモータ制御装置。
【請求項４】
前記電動モータの回転速度が前記電動モータの駆動制御に必要な精度よりも低い精度で得られるような分解能で前記電動モータの回転角を検出する簡易角度検出手段を更に備え、
前記パラメータ値更新手段は、前記簡易角度検出手段により検出される回転角が変化して新たな回転角が第１回転角検出値として検出された第１時点から当該第１時点以降において前記簡易角度検出手段により検出される回転角が変化して新たな回転角が第２回転角検出値として検出される第２時点までに前記電流検出手段および電圧検出手段により前記物理量の検出値として順次取得される複数の電流検出値および電圧検出値に基づき、前記電動モータの抵抗値を算出し、
前記第１の所定方法は、前記複数の電流検出値および電圧検出値ならびに前記第１および第２回転角を用いて、前記回路方程式を前記第１時点から前記第２時点まで積分した方程式より、前記電動モータの抵抗値を新たな更新パラメータ値として算出するという方法であり、
前記第２の所定方法は、前記複数の電流検出値および電圧検出値ならびに前記第１および第２回転角を用いて、前記回路方程式を前記第１時点から前記第２時点まで積分した方程式より、前記電動モータの抵抗値を仮パラメータ値として算出し、当該仮パラメータ値と既に得られている前記更新パラメータ値との加重平均値を新たな更新パラメータ値として算出するという方法であることを特徴とする、請求項１に記載のモータ制御装置。
【請求項５】
前記電動モータの回転速度を前記電動モータの駆動制御に必要な精度よりも低い精度で検出する簡易速度検出手段を更に備え、
前記パラメータ値更新手段は、前記簡易速度検出手段によって検出される回転速度が所定値以上であるときに前記物理量の検出値として前記電流検出手段および電圧検出手段により順次取得される複数の電流検出値および電圧検出値と前記簡易速度検出手段により順次取得される複数の回転速度検出値とに基づき、前記電動モータの逆起電力定数を算出し、
前記第１の所定方法は、前記複数の電流検出値および電圧検出値の各検出時点における当該電流検出値および電圧検出値と前記回転速度検出値とを用いて前記回路方程式より当該検出時点における前記電動モータの逆起電力定数を算出逆起電力定数として求め、前記所定数の当該算出逆起電力定数についての移動平均値を新たな更新パラメータ値として算出するという方法であり、
前記第２の所定方法は、前記複数の電流検出値および電圧検出値の各検出時点における当該電流検出値および電圧検出値と前記回転速度検出値とを用いて前記回路方程式より当該検出時点における前記電動モータの逆起電力定数を算出逆起電力定数として求め、複数の当該算出逆起電力定数についての平均値と既に得られている前記更新パラメータ値との加重平均値を新たな更新パラメータ値として算出するという方法であることを特徴とする、請求項１に記載のモータ制御装置。
【請求項６】
前記電動モータの抵抗を構成する複数の抵抗成分のそれぞれに対応する装置の構成要素の温度を前記物理量として検出する温度検出手段を更に備え、
前記パラメータ値更新手段は、
前記複数の抵抗成分のそれぞれの温度特性を個別に保持している温度特性格納手段を含み、
前記温度検出手段によって各構成要素につき順次取得される複数の温度検出値を用いて前記温度特性に基づき前記電動モータの抵抗値を算出し、
前記第１の所定方法は、各構成要素につき順次取得された前記複数の温度検出値の各検出時点における当該温度検出値を用いて、当該構成要素に対応する抵抗成分の温度特性に基づき当該検出時点における当該抵抗成分の値を取得し、前記複数の抵抗成分についての当該値の和を前記電動モータの算出抵抗値として求め、前記所定数の当該算出抵抗値についての移動平均値を新たな更新パラメータ値として算出するという方法であり、
前記第２の所定方法は、各構成要素につき順次取得された前記複数の温度検出値の各検出時点における当該温度検出値を用いて、当該構成要素に対応する抵抗成分の温度特性に基づき当該検出時点における当該抵抗成分の値を取得し、前記複数の抵抗成分についての当該値の和を前記電動モータの算出抵抗値として求め、複数の当該算出抵抗値についての平均値と既に得られている前記更新パラメータ値との加重平均値を新たな更新パラメータ値として算出するという方法であることを特徴とする、請求項１に記載のモータ制御装置。
【請求項７】
車両のステアリング機構に電動モータによって操舵補助力を与える電動パワーステアリング装置であって、
請求項１から６のいずれか１項に記載のモータ制御装置を備え、
前記モータ制御装置は、前記ステアリング機構に前記操舵補助力を与える電動モータを駆動することを特徴とする、電動パワーステアリング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブラシ付きモータ等の電動モータを駆動するモータ制御装置およびそれを用いた電動パワーステアリング装置に関する。
【背景技術】
【０００２】
電動パワーステアリング装置におけるモータ制御装置では、モータに流すべき電流の目標値の決定において、操舵トルクや車速に加えて、操舵速度に対応する当該モータの角速度も考慮される。これに対し、ブラシレスモータを制御する場合には、通常、レゾルバ等のモータ回転位置を検出するための角度検出センサが使用されるので、その角度検出センサの出力信号を時間微分することによりモータ角速度を得ることができる。しかし、ブラシ付きモータの制御のように角度センサを使用しないモータ制御では、モータ電流およびモータ端子間電圧を検出し、下記式に基づきモータ角速度ωが算出される。
ω＝（Ｖ−Ｉ×Ｒ）／ｋ    …（１）
ここで、Ｖはモータ端子間電圧であり、Ｉはモータ電流であり、Ｒはモータ抵抗（モータ端子間抵抗）であり、ｋは逆起電力定数である。
【０００３】
なお、本願発明に関連して以下のような従来技術が知られている。すなわち、特許文献１には、舵輪に加えられる操舵トルクに応じて駆動される操舵補助用のモータを備えた動力舵取装置において、モータの駆動電流の検出結果と、これに対応する端子電圧検出結果の平均値との複数個のデータからモータの内部抵抗を求め、端子電圧からその内部抵抗と駆動電流との積を減算して逆起電力を求め、この逆起電力から当該モータの回転角速度を求めるという構成が開示されている。また、特許文献２および特許文献３には、操舵トルクの大きさに応じてモータを駆動するコントロールユニットを備えた電動パワーステアリング装置において、当該コントロールユニットが、検出された端子間電圧とモータ電流検出値とに基づいてモータ端子間抵抗値を求め、そのモータ端子間抵抗値に基づいてモータの巻線温度を推定し、その推定された巻線温度に基づいて逆起電力定数を温度補正し、その温度補正された逆起電力定数を用いてモータ角速度を推定するという構成が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特公平７−２５３１３号公報
【特許文献２】特許第４２５８５０２号広報
【特許文献３】特許第３７６７０３５号広報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、上記のモータ抵抗Ｒは、温度変化や、製造ばらつき、ブラシ付きモータのブラシと整流子間の接触状態等によって変動する。また、逆起電力定数ｋも必ずしも一定ではなく、温度変化や製造ばらつき等によって変動する。このようなモータ抵抗Ｒまたは逆起電力定数ｋの変動によって上記式（１）によるモータ角速度ωの推定精度が低下する。その結果、例えば、上記のようなモータ制御装置を用いた電動パワーステアリング装置において、モータ角速度を使用する制御の精度が低下し、良好に操舵補助を行えないおそれがある。
【０００６】
そこで本発明の目的は、ブラシ付きモータ等のように高精度のモータ角度検出センサを使用せずに駆動されるモータにおいて温度変化や製造ばらつき等があっても精度よくモータ角速度を推定し、その推定値を用いて高精度に当該モータを制御できるモータ制御装置を提供することである。また、本発明の他の目的は、そのようなモータ制御装置を備えた電動パワーステアリング装置を提供することである。
【課題を解決するための手段】
【０００７】
第１の発明は、電動モータの電機子巻線に生じる逆起電力に基づき当該電動モータの回転速度の推定値を算出し、当該推定値を用いて当該電動モータを駆動するモータ制御装置であって、
前記電動モータに流れる電流を検出する電流検出手段と、
前記電動モータに印加される電圧を検出する電圧検出手段と、
前記電動モータが所定状態にあるときに所定の物理量につき順次取得される複数の検出値に基づき、前記電動モータの回路方程式におけるパラメータである前記電動モータの抵抗値および逆起電力定数のうち少なくとも１つのパラメータの値を更新パラメータ値として算出するパラメータ値更新手段と、
前記パラメータ値更新手段により算出される前記更新パラメータ値と前記電流検出手段により取得される電流検出値と前記電圧検出手段により取得される電圧検出値とを用いて、前記回路方程式に基づき、前記電動モータの回転速度を示す速度推定値を算出する推定値算出手段とを備え、
前記パラメータ値更新手段は、
前記更新パラメータ値の新たな算出のために前記物理量につき取得された検出値の個数が所定数以上であるときには、当該取得された検出値を用いて第１の所定方法により新たな更新パラメータ値を算出し、
前記更新パラメータ値の新たな算出のために前記物理量につき取得された検出値の個数が前記所定数よりも少ないときには、当該取得された検出値と既に得られている前記更新パラメータ値とを用いて第２の所定方法により新たな更新パラメータ値を算出し、
前記推定値算出手段は、前記パラメータ値更新手段によって新たな更新パラメータ値が算出されると、当該新たな更新パラメータ値を用いて前記速度推定値を算出することを特徴とする。
【０００８】
第２の発明は、第１の発明において、
前記電動モータの回転速度が０近傍の所定値以下か否かを判定する判定手段を更に備え、
前記パラメータ値更新手段は、前記判定手段によって前記電動モータの回転速度が前記所定値以下であると判定されているときに前記電流検出手段および電圧検出手段により前記物理量の検出値として順次取得される複数の電流検出値および電圧検出値に基づき前記電動モータの抵抗値を算出し、
前記第１の所定方法は、前記複数の電流検出値および電圧検出値の各検出時点における当該電流検出値および電圧検出値から当該検出時点における前記電動モータの抵抗値を算出抵抗値として求め、前記所定数の当該算出抵抗値についての移動平均値を新たな更新パラメータ値として算出するという方法であり、
前記第２の所定方法は、前記複数の電流検出値および電圧検出値の各検出時点における当該電流検出値および電圧検出値から当該検出時点における前記電動モータの抵抗値を算出抵抗値として求め、複数の当該算出抵抗値についての平均値と既に得られている前記更新パラメータ値との加重平均値を新たな更新パラメータ値として算出するという方法であることを特徴とする。
【０００９】
第３の発明は、第１の発明において、
前記電動モータの回転速度を前記電動モータの駆動制御に必要な精度よりも低い精度で検出する簡易速度検出手段を更に備え、
前記パラメータ値更新手段は、前記簡易速度検出手段によって検出される回転速度が所定値以上であるときに前記物理量の検出値として前記電流検出手段および電圧検出手段により順次取得される複数の電流検出値および電圧検出値と前記簡易速度検出手段により順次取得される複数の回転速度検出値とに基づき、前記電動モータの抵抗値および逆起電力定数を算出し、
前記第１の所定方法は、前記複数の電流検出値および電圧検出値の各検出時点における当該電流検出値および電圧検出値と前記回転速度検出値とが前記回路方程式を少なくとも近似的に満たすように、前記電動モータの抵抗値および逆起電力定数を新たな更新パラメータ値として算出するという方法であり、
前記第２の所定方法は、前記複数の電流検出値および電圧検出値の各検出時点における当該電流検出値および電圧検出値と前記回転速度検出値とが前記回路方程式を少なくとも近似的に満たすように、前記電動モータの抵抗値および逆起電力定数を仮パラメータ値として算出し、当該仮パラメータ値と既に得られている前記更新パラメータ値との加重平均値を新たな更新パラメータ値として算出するという方法であることを特徴とする。
【００１０】
第４の発明は、第１の発明において、
前記電動モータの回転速度が前記電動モータの駆動制御に必要な精度よりも低い精度で得られるような分解能で前記電動モータの回転角を検出する簡易角度検出手段を更に備え、
前記パラメータ値更新手段は、前記簡易角度検出手段により検出される回転角が変化して新たな回転角が第１回転角検出値として検出された第１時点から当該第１時点以降において前記簡易角度検出手段により検出される回転角が変化して新たな回転角が第２回転角検出値として検出される第２時点までに前記電流検出手段および電圧検出手段により前記物理量の検出値として順次取得される複数の電流検出値および電圧検出値に基づき、前記電動モータの抵抗値を算出し、
前記第１の所定方法は、前記複数の電流検出値および電圧検出値ならびに前記第１および第２回転角を用いて、前記回路方程式を前記第１時点から前記第２時点まで積分した方程式より、前記電動モータの抵抗値を新たな更新パラメータ値として算出するという方法であり、
前記第２の所定方法は、前記複数の電流検出値および電圧検出値ならびに前記第１および第２回転角を用いて、前記回路方程式を前記第１時点から前記第２時点まで積分した方程式より、前記電動モータの抵抗値を仮パラメータ値として算出し、当該仮パラメータ値と既に得られている前記更新パラメータ値との加重平均値を新たな更新パラメータ値として算出するという方法であることを特徴とする。
【００１１】
第５の発明は、第１の発明において、
前記電動モータの回転速度を前記電動モータの駆動制御に必要な精度よりも低い精度で検出する簡易速度検出手段を更に備え、
前記パラメータ値更新手段は、前記簡易速度検出手段によって検出される回転速度が所定値以上であるときに前記物理量の検出値として前記電流検出手段および電圧検出手段により順次取得される複数の電流検出値および電圧検出値と前記簡易速度検出手段により順次取得される複数の回転速度検出値とに基づき、前記電動モータの逆起電力定数を算出し、
前記第１の所定方法は、前記複数の電流検出値および電圧検出値の各検出時点における当該電流検出値および電圧検出値と前記回転速度検出値とを用いて前記回路方程式より当該検出時点における前記電動モータの逆起電力定数を算出逆起電力定数として求め、前記所定数の当該算出逆起電力定数についての移動平均値を新たな更新パラメータ値として算出するという方法であり、
前記第２の所定方法は、前記複数の電流検出値および電圧検出値の各検出時点における当該電流検出値および電圧検出値と前記回転速度検出値とを用いて前記回路方程式より当該検出時点における前記電動モータの逆起電力定数を算出逆起電力定数として求め、複数の当該算出逆起電力定数についての平均値と既に得られている前記更新パラメータ値との加重平均値を新たな更新パラメータ値として算出するという方法であることを特徴とする。
【００１２】
第６の発明は、第１の発明において、
前記電動モータの抵抗を構成する複数の抵抗成分のそれぞれに対応する装置の構成要素の温度を前記物理量として検出する温度検出手段を更に備え、
前記パラメータ値更新手段は、
前記複数の抵抗成分のそれぞれの温度特性を個別に保持している温度特性格納手段を含み、
前記温度検出手段によって各構成要素につき順次取得される複数の温度検出値を用いて前記温度特性に基づき前記電動モータの抵抗値を算出し、
前記第１の所定方法は、各構成要素につき順次取得された前記複数の温度検出値の各検出時点における当該温度検出値を用いて、当該構成要素に対応する抵抗成分の温度特性に基づき当該検出時点における当該抵抗成分の値を取得し、前記複数の抵抗成分についての当該値の和を前記電動モータの算出抵抗値として求め、前記所定数の当該算出抵抗値についての移動平均値を新たな更新パラメータ値として算出するという方法であり、
前記第２の所定方法は、各構成要素につき順次取得された前記複数の温度検出値の各検出時点における当該温度検出値を用いて、当該構成要素に対応する抵抗成分の温度特性に基づき当該検出時点における当該抵抗成分の値を取得し、前記複数の抵抗成分についての当該値の和を前記電動モータの算出抵抗値として求め、複数の当該算出抵抗値についての平均値と既に得られている前記更新パラメータ値との加重平均値を新たな更新パラメータ値として算出するという方法であることを特徴とする。
【００１３】
第７の発明は、車両のステアリング機構に電動モータによって操舵補助力を与える電動パワーステアリング装置であって、
第１から第６の発明のいずれかに係るモータ制御装置を備え、
前記モータ制御装置は、前記ステアリング機構に前記操舵補助力を与える電動モータを駆動することを特徴とする。
【発明の効果】
【００１４】
上記第１の発明に係るモータ制御装置では、電動モータの回転速度を示す速度推定値を算出するために使用する更新パラメータ値の新たな算出に必要な所定の物理量の検出値の取得個数が所定数以上であるときには、それらの検出値を用いて第１の所定方法により新たな更新パラメータ値が算出される。これによりノイズの少ない安定した更新パラメータ値が得られるので、速度推定値を精度良く算出することができる。また、このような更新パラメータ値の新たな算出に必要な上記物理量の検出値の取得個数が所定数よりも少ないときには、取得された検出値に加えて既に得られている更新値パラメータ値を用いて第２の所定方法により新たな更新パラメータ値が算出される。このため、上記物理量の検出値の取得個数が少ない時点であっても、また上記物理量の検出可能な所定状態の期間が短い場合であっても、ノイズの少ない安定した更新パラメータ値を算出することができる。したがって、上記第１の発明によれば、当該電動モータに個体差があっても、また温度が変化したり当該電動モータがブラシ付きモータであってブラシと整流子の間の接触状態が変化しても、当該電動モータの速度推定値が精度良く算出され、これによりモータ制御装置の制御性能が向上する。
【００１５】
上記第２の発明に係るモータ制御装置では、電動モータの回転速度が０近傍の所定値以下であるときに新たな更新パラメータ値の算出に必要な上記物理量の検出値として電流検出値および電圧検出値が取得され、それら検出値の取得個数が所定数以上であるときには、それら検出値の各検出時点における当該電流検出値および電圧検出値に基づき当該検出時点における電動モータの抵抗値が算出抵抗値として算出され、上記所定数の当該算出抵抗値についての移動平均値が新たな更新パラメータ値として算出される。また、このような更新パラメータ値としての電動モータの抵抗値の新たな算出のための電流検出値および電圧検出値の取得個数が上記所定数よりも少ないときであっても、取得された電流検出値および電圧検出値の各検出時点での当該電流検出および電圧検出に基づき当該検出時点での電動モータの抵抗値が算出抵抗値として算出され、当該取得個数の当該算出抵抗値についての平均値と既に得られている更新パラメータ値との加重平均値が新たな更新パラメータ値として算出される。したがって、新たな更新パラメータ値の算出のための電流検出値および電圧検出値の取得個数の多少に拘わらず、また電動モータの回転速度が０近傍の所定値以下である期間（算出抵抗値の取得可能な期間）の長短に拘わらず、ノイズの少ない安定した更新パラメータ値（電動モータの抵抗値）を高い頻度で算出することができる。このような第２の発明によれば、当該電動モータに個体差があっても、また温度が変化したり当該電動モータがブラシ付きモータであってブラシと整流子の間の接触状態が変化しても、更新パラメータ値がその変化に追随し、当該電動モータの速度推定値が精度良く算出されるので、モータ制御装置の制御性能が向上する。
【００１６】
上記第３の発明に係るモータ制御装置では、簡易速度検出手段によって検出される回転速度が所定値以上であるときに新たな更新パラメータ値の算出に必要な上記物理量の検出値として複数の電流検出値および電圧検出値が順次取得され、それら検出値の取得個数が所定数以上であるときには、それら検出値の各検出時点における当該電流検出値および電圧検出値と簡易速度検出手段による回転速度検出値とが電動モータの回路方程式を少なくとも近似的に満たすように電動モータの抵抗値および逆起電力定数が新たな更新パラメータ値として算出される。これにより、低コストの簡易速度検出手段を使用して、ノイズの少ない安定した更新パラメータ値として電動モータの抵抗値のみならず逆起電力定数をも得ることができる。また、このような更新パラメータ値の新たな算出のための電流検出値および電圧検出値等の取得個数が所定数よりも少ないときには、上記と同様にして得られる電動モータの抵抗値および逆起電力定数が仮パラメータ値とされ、当該仮パラメータ値と既に得られている更新パラメータ値との加重平均値が新たな更新パラメータ値として算出される。したがって、新たな更新パラメータ値の算出のための電流検出値および電圧検出値等の取得個数の多少に拘わらず、また回転速度が所定値以上である期間の長短に拘わらず、ノイズの少ない安定した更新パラメータ値として電動モータの抵抗値のみならず逆起電力定数をも高い頻度で算出することができる。このような第３の発明によれば、当該電動モータに個体差があっても、また温度が変化したり当該電動モータがブラシ付きモータであってブラシと整流子の間の接触状態が変化しても、更新パラメータ値がその変化に追随し、当該電動モータの速度推定値がより精度良く算出されるので、モータ制御装置の制御性能がより向上する。
【００１７】
上記第４の発明に係るモータ制御装置では、簡易角度検出手段によって検出される回転角が変化する毎に、回転角が変化する２つの時点間で新たな更新パラメータ値の算出に必要な上記物理量の検出値として順次取得される複数の電流検出値および電圧検出値に基づき、電動モータの回路方程式を時間積分した方程式より電動モータの抵抗値が算出される。算出された電動モータの抵抗値は、当該電流検出値および電圧検出値の取得個数が所定数以上であるときには新たな更新パラメータ値となる。これにより、低コストで分解能の低い簡易角度検出手段を使用して、ノイズの少ない安定した更新パラメータ値として電動モータの抵抗値を得ることができる。また、このような更新パラメータ値の新たな算出のための電流検出値および電圧検出値の取得個数が所定数よりも少ないときには、上記と同様にして得られる電動モータの抵抗値が仮パラメータ値とされ、当該仮パラメータ値と既に得られている更新パラメータ値との加重平均値が新たな更新パラメータ値として算出される。したがって、新たな更新パラメータ値の算出のための電流検出値および電圧検出値の取得個数の多少に拘わらず、また回転速度が所定値以上である期間の長短に拘わらず、ノイズの少ない安定した更新パラメータ値（電動モータの抵抗値）を高い頻度で算出することができる。このような第４の発明によれば、当該電動モータに個体差があっても、また温度が変化したり当該電動モータがブラシ付きモータであってブラシと整流子の間の接触状態が変化しても、更新パラメータ値がその変化に追随し、当該電動モータの速度推定値が精度良く算出されるので、モータ制御装置の制御性能が向上する。
【００１８】
上記第５の発明に係るモータ制御装置では、簡易速度検出手段によって検出される回転速度が所定値以上であるときに新たな更新パラメータ値の算出に必要な上記物理量の検出値として複数の電流検出値および電圧検出値が順次取得され、これら検出値の取得個数が所定数以上であるときには、これら検出値の各検出時点における当該電流検出値および電圧検出値と簡易速度検出手段による回転速度検出値とを用いて、電動モータの回路方程式より当該検出時点における逆起電力定数が算出逆起電力定数として求められ、上記所定数の当該算出逆起電力定数についての移動平均値が新たな更新パラメータ値として算出される。これにより、低コストの簡易速度検出手段を使用して、ノイズの少ない安定した更新パラメータ値として電動モータの逆起電力定数を得ることができる。また、このような更新パラメータ値の新たな算出のための電流検出値および電圧検出値の取得個数が上記所定数よりも少ないときであっても、上記と同様にして各検出時点につき算出逆起電力定数が算出され、当該取得個数の当該算出逆起電力定数についての平均値と既に得られている更新パラメータ値との加重平均値が新たな更新パラメータ値として算出される。したがって、新たな更新パラメータ値の算出のための電流検出値および電圧検出値の取得個数の多少に拘わらず、また回転速度が所定値以上である期間の長短に拘わらず、ノイズの少ない安定した更新パラメータ値（電動モータの逆起電力定数）を高い頻度で算出することができる。このような第５の発明によれば、当該電動モータに個体差があっても、また温度が変化したり当該電動モータがブラシ付きモータであってブラシと整流子の間の接触状態が変化しても、更新パラメータ値がその変化に追随し、当該電動モータの速度推定値が精度良く算出されるので、モータ制御装置の制御性能が向上する。
【００１９】
上記第６の発明に係るモータ制御装置では、電動モータが所定状態にあるときに新たな更新パラメータ値の算出に必要な上記物理量の検出値として複数の温度検出値が順次取得され、これら検出値の取得個数が所定数以上であるときには、これら検出値の各検出時点における当該温度検出値を用いて、電動モータの抵抗を構成する複数の抵抗成分のそれぞれの温度特性に基づき当該検出時点における各抵抗成分の値が取得され、当該複数の抵抗成分についての当該値の和が電動モータの算出抵抗値として求められ、上記所定数の当該算出抵抗値についての移動平均値が新たな更新パラメータ値として算出される。これにより、各抵抗成分の温度特性を個別に考慮することでモータ抵抗の温度特性を正確に反映した算出抵抗値が得られ、当該算出抵抗値についての移動平均値がノイズの少ない安定した更新パラメータ値として算出される。また、このような更新パラメータ値の新たな算出のための温度検出値の取得個数が上記所定数よりも少ないときであっても、上記と同様にして各検出時点につき算出抵抗値が算出され、当該取得個数の当該算出抵抗値についての平均値と既に得られている更新パラメータ値との加重平均値が新たな更新パラメータ値として算出される。したがって、新たな更新パラメータ値の算出のための温度検出値の取得個数の多少に拘わらず、ノイズの少ない安定した更新パラメータ値（電動モータの抵抗値）を高い頻度で算出することができる。このような第６の発明によれば、温度が変化しても、更新パラメータ値が温度変化による電動モータの抵抗値変化に正確に追随し、当該電動モータの速度推定値が精度良く算出されるので、モータ制御装置の制御性能が向上する。
【００２０】
上記第７の発明によれば、電動パワーステアリング装置における電動モータの回転速度を示す速度推定値を算出するために使用する更新パラメータ値の新たな算出に必要な所定の物理量の検出値の取得個数が少ないときであっても、当該物理量の検出可能な所定状態の期間が短い場合であっても、ノイズの少ない安定した更新パラメータ値を算出することができる。したがって、当該電動モータの速度推定値が精度良く算出され、これによりモータ制御装置の制御性能が向上し、その電動パワーステアリング装置において良好な操舵感が得られる。
【図面の簡単な説明】
【００２１】
【図１】本発明に係るモータ制御装置を用いた電動パワーステアリング装置の構成を、それに関連する車両の構成と共に示す概略図である。
【図２】本発明の第１の実施形態に係るモータ制御装置の構成を示すブロック図である。
【図３】上記第１の実施形態における制御部を実現するためのモータ制御処理を示すフローチャートである。
【図４】上記第１の実施形態における角速度推定処理の基礎となる基本角速度推定処理を説明するための波形図である。
【図５】上記第１の実施形態における角速度推定部の機能的構成の一例を示すブロック図である。
【図６】上記第１の実施形態についての上記基本角速度推定処理を示すフローチャートである。
【図７】上記第１の実施形態における抵抗マップの更新方法を説明するための図である。
【図８】上記第１の実施形態における角速度推定部を実現するための第１の角速度推定処理を示すフローチャートである。
【図９】上記第１の実施形態における角速度推定部を実現するための第２の角速度推定処理を示すフローチャートである。
【図１０】本発明の第２の実施形態における角速度推定部の一構成例を示すブロック図である。
【図１１】上記第２の実施形態における角速度推定部を実現するための第１の角速度推定処理を示すフローチャートである。
【図１２】上記第２の実施形態における角速度推定部を実現するための第２の角速度推定処理を示すフローチャートである。
【図１３】上記第２の実施形態における角速度推定部を実現するための第３の角速度推定処理を示すフローチャートである。
【図１４】本発明の第３の実施形態における角速度推定部の一構成例を示すブロック図である。
【図１５】上記第３の実施形態における角速度推定部を実現するための第１の角速度推定処理を示すフローチャートである。
【図１６】上記第３の実施形態における角速度推定部を実現するための第２の角速度推定処理を示すフローチャートである。
【図１７】本発明の第４の実施形態における角速度推定部の一構成例を示すブロック図である。
【図１８】上記第４の実施形態における角速度推定部を実現するための角速度推定処理の一例を示すフローチャートである。
【図１９】本発明の第５の実施形態における角速度推定部の一構成例を示すブロック図である。
【図２０】上記第５の実施形態における角速度推定部の抵抗値更新部で使用される各抵抗値の温度特性を示す特性図である。
【図２１】上記第５の実施形態における角速度推定部を実現するための角速度推定処理の一例を示すフローチャートである。
【図２２】上記第５の実施形態における角速度推定部を実現するための角速度推定処における抵抗値算出処理を示すフローチャートである。
【発明を実施するための形態】
【００２２】
＜１．電動パワーステアリング装置＞
図１は、本発明に係るモータ制御装置を用いた電動パワーステアリング装置の構成を、それに関連する車両の構成と共に示す概略図である。この電動パワーステアリング装置は、ブラシ付きモータ１、減速機２、トルクセンサ３、車速センサ４、および、モータ制御装置としての電子制御ユニット（ＥＣＵ）５を備えたコラムアシスト型の電動パワーステアリング装置である。なお、本発明に係るモータ制御装置は、モータ１の回転の有無を検出するためのセンサ（以下「回転センサ」という）７を備えているのが好ましく、図１に示す電動パワーステアリング装置には、回転センサ７としてホールセンサが設けられている。この回転センサ７はホールセンサに限定されるものではなく、モータ１の回転に応じてパルス信号を発生させるものであればよい。また、モータ１の回転方向を検出する必要がないので、回転センサ７として低コストのセンサを使用することができる。さらに、この電動パワーステアリング装置では、舵角センサ（または操作角速度センサ）７ｈを備えている。ただし、これらの回転センサ７と舵角センサ７ｈのうち一方は省略することも可能である（詳細は後述）。
【００２３】
図１に示すように、ステアリングシャフト１０２の一端にはハンドル（ステアリングホイール）１０１が固着されており、ステアリングシャフト１０２の他端はラックピニオン機構１０３を介してラック軸１０４に連結されている。ラック軸１０４の両端は、タイロッドおよびナックルアームからなる連結部材１０５を介して車輪１０６に連結されている。運転者がハンドル１０１を回転させると、ステアリングシャフト１０２は回転し、これに伴いラック軸１０４は往復運動を行う。ラック軸１０４の往復運動に伴い、車輪１０６の向きが変わる。
【００２４】
電動パワーステアリング装置は、運転者の負荷を軽減するために、以下に示す操舵補助を行う。トルクセンサ３は、ハンドル１０１の操作によってステアリングシャフト１０２に加えられる操舵トルクＴｓを検出し、舵角センサ７ｈは、ハンドル１０１の操作量を示す操舵角θｈを検出し、車速センサ４は車速Ｓを検出する。回転センサ７は、モータ１のロータの回転速度に応じた頻度でパルスを発生し、それらのパルスを含むパルス信号Ｐを出力する。モータ１のロータが停止しているときには、回転センサ７はパルスを発生しない。
【００２５】
ＥＣＵ５は、車載バッテリ８から電力の供給を受け、操舵トルクＴｓ、車速Ｓ、およびパルス信号Ｐ（または操舵角θｈ）に基づきブラシ付きモータ１を駆動する。ブラシ付きモータ１は、ＥＣＵ５によって駆動されると、操舵補助力を発生させる。減速機２は、ブラシ付きモータ１とステアリングシャフト１０２との間に設けられる。ブラシ付きモータ１で発生した操舵補助力は、減速機２を介して、ステアリングシャフト１０２を回転させるように作用する。
【００２６】
この結果、ステアリングシャフト１０２は、ハンドル１０１に加えられる操舵トルクと、ブラシ付きモータ１で発生した操舵補助力の両方によって回転する。このように電動パワーステアリング装置は、ブラシ付きモータ１で発生した操舵補助力を車両のステアリング機構に与えることにより操舵補助を行う。
【００２７】
＜２．第１の実施形態＞
＜２．１  モータ制御装置の構成＞
図２は、本発明の第１の実施形態に係るモータ制御装置の構成を示すブロック図である。このモータ制御装置は、上記電動パワーステアリング装置において使用され、ＥＣＵ５を用いて構成されており、ブラシ付きモータ１を駆動する。ＥＣＵ５は、制御部１０と駆動部２０からなる。制御部１０は、マイクロコンピュータ（以下「マイコン」と略称する）を用いて実現されている。駆動部２０は、モータ駆動回路３０、電流検出用抵抗３５、ＰＷＭ信号生成回路２１、電圧検出回路２４、および電流検出回路２５を備えている。本実施形態では、回転センサ７が使用され、舵角センサ７ｈは使用されないものとする。また、図２において点線で示される各部の温度センサ４１，４２，４３も本実施形態では使用されない（これらの温度センサ４１，４２，４３は後述の第５の実施形態において使用される）。
【００２８】
ＥＣＵ５には、トルクセンサ３から出力された操舵トルクＴｓ、および、車速センサ４から出力された車速Ｓが入力され、これらはマイコン１０に入力データとして与えられる。また、駆動部２０では、後述のように、モータ１への印加電圧すなわちモータ１の端子間電圧（以下「モータ電圧」という）が電圧検出回路２４により検出されると共に、モータ１（内の電機子巻線）を流れる電流（以下「モータ電流」という）が電流検出回路２５により検出され、これらの検出結果としての電圧検出値Ｖｍおよび電流検出値Ｉｍもマイコン１０に与えられる。
【００２９】
マイコン１０は、ＥＣＵ５に内蔵されたメモリ（図示せず）に格納されたプログラムを実行することにより、モータ１の制御のための機能単位として、目標電流設定部１２、減算器１４、制御演算部１６、および角速度推定部５０をソフトウェア的に実現している。角速度推定部５０は、上記の電圧検出値Ｖｍ、電流検出値Ｉｍ、および、回転センサ７から出力されるパルス信号Ｐに基づき、モータ１（のロータ）の回転速度を示す角速度推定値ωｅを算出する。目標電流設定部１２は、上記の操舵トルクＴｓおよび車速Ｓと、この角速度推定値ωｅとに基づき、モータ１に流すべき電流の目標値Ｉｔを決定する。減算器１４は、この電流目標値Ｉｔと上記電流検出値Ｉｍとの偏差（Ｉｔ−Ｉｍ）を算出する。制御演算部１６は、この偏差（Ｉｔ−Ｉｍ）に基づく比例積分制御演算によって、この偏差（Ｉｔ−Ｉｍ）を打ち消すためにモータ１に印加すべき電圧を示す指令値Ｄを算出する。この指令値Ｄはマイコン１０から出力されて駆動部２０のＰＷＭ信号生成回路２１に与えられる。
【００３０】
ＰＷＭ信号生成回路２１は、マイコン１０から与えられる指令値Ｄに応じて、第１および第２の右方向ＰＷＭ信号ＳＲｄ１，ＳＲｄ２と第１および第２の左方向ＰＷＭ信号ＳＬｄ１，ＳＬｄ２とを生成する。ここで、指令値Ｄの符号は、モータ１が発生すべきトルクが右方向操舵を補助する方向のトルク（以下「右方向トルク」という）か左方向操舵を補助する方向のトルク（以下「左方向トルク」という）かを示す。右方向トルクを発生させる場合には、右方向ＰＷＭ信号ＳＲｄ１，ＳＲｄ２は指令値Ｄに応じたデューティ比のＰＷＭ信号として生成され、左方向ＰＷＭ信号ＳＬｄ１，ＳＬｄ２は非アクティブな信号として生成される。左方向トルクを発生させる場合には、左方向ＰＷＭ信号ＳＬｄ１，ＳＬｄ２は指令値Ｄに応じたデューティ比のＰＷＭ信号として生成され、右方向ＰＷＭ信号ＳＲｄ１，ＳＲｄ２は非アクティブな信号として生成される。
【００３１】
モータ駆動回路３０は、４個のスイッチング素子である電力用の電界効果型トランジスタ（以下「ＦＥＴ」という）３１〜３４によって構成されるブリッジ回路であり、このブリッジ回路はバッテリ８の電源ラインと接地ラインとの間に接続され、負荷としてモータ１が接続されている。すなわち、このブリッジ回路は、電源ラインに接続される電源ライン側ＦＥＴ３１，３２と、電流検出用抵抗３５を介して接地ラインに接続される接地ライン側ＦＥＴ３３，３４とからなり、電源ライン側ＦＥＴ３１と接地ライン側ＦＥＴ３３との接続点Ｎ１にはモータ１の正端子が接続され、電源ライン側ＦＥＴ３２と接地ライン側ＦＥＴ３４との接続点Ｎ２にはモータ１の負端子が接続されている。電源ライン側ＦＥＴ３１および接地ライン側ＦＥＴ３４のゲート端子には、上記の右方向ＰＷＭ信号ＳＲｄ１，ＳＲｄ２がそれぞれ印加され、電源ライン側ＦＥＴ３２および接地ライン側ＦＥＴ３３のゲート端子には、上記の左方向ＰＷＭ信号ＳＬｄ１，ＳＬｄ２がそれぞれ印加される。これにより、指令値Ｄに応じたデューティ比でＦＥＴ３１および３４またはＦＥＴ３２および３３がオンおよびオフすることにより、指令値Ｄの符号に応じた極性および大きさの電圧がモータ駆動回路３０からモータ１に印加される。その結果、モータ駆動回路３０からモータ１に電流が供給され、モータ１は操舵トルクＴｓ、車速Ｓおよび角速度推定値ωｅに応じた操舵補助力を発生させる。
【００３２】
上記のようにしてモータ１が駆動される間、モータ１に印加される電圧すなわちモータ１の端子間電圧は電圧検出回路２４によって検出され、モータ１に流れる電流は電流検出用抵抗３５の両端間の電圧に基づき電流検出回路２５によって検出される。検出された電圧検出値Ｖｍおよび電流検出値Ｉｍは、マイコン１０に入力され、既述のように、角速度推定値ωｅの算出やモータ１のフィードバック制御のための上記偏差（Ｉｔ−Ｉｍ）の算出が行われる。
【００３３】
＜２．２  モータ制御処理＞
図３は、本実施形態においてモータ１の駆動を制御するための制御部（ＥＣＵ）５をソフトウェア的に実現するためのモータ制御処理を示すフローチャートである。このモータ制御処理では、まず、車両情報等のモータ制御に必要な情報が取得される（ステップＳ２）。ここで取得される情報には、制御演算部１６での演算や角速度推定部５０での角速度推定値ωｅの算出に必要なパラメータ値（例えば逆起電力定数ｋやモータ抵抗値Ｒの初期値、固定値として与えられる場合の逆起電力定数等）などが含まれ、後述の角速度推定処理（図６等参照）で使用されるフラグや変数等も当該ステップＳ２で初期化される（例えばＦｈ＝０，Ｃ＝０，Ｃｎ＝５０等）。
【００３４】
このようなステップＳ２の実行後は、ステップＳ３において、各センサ３，４，７および検出回路２４，２５からの出力信号に基づき、モータ１に流すべき電流の目標値Ｉｔを算出する周期である制御周期毎に操舵トルクＴｓ，車速Ｓ，パルス信号Ｐ、電圧検出値Ｖｍ、電流検出値Ｉｍが順次取得される。
【００３５】
次のステップＳ４では、角速度推定部５０を実現するための角速度推定処理が実行され、これによりモータ１の角速度推定値ωｅが算出される。
【００３６】
その後、ステップＳ６において、この角速度推定値ωｅを用いてモータ１の電流制御等のための処理が行われる。すなわちステップＳ６では、この角速度推定値ωｅや、処理操舵トルクＴｓ、車速Ｓに基づいて電流目標値Ｉｔが決定され、この電流目標値Ｉｔと上記電流検出値Ｉｍとの偏差（Ｉｔ−Ｉｍ）に基づく比例積分制御演算によって、モータ１に印加すべき電圧を示す指令値Ｄが算出される。すなわち、ステップＳ６の処理によって、図２に示す目標電流設定部１２、減算器１４および制御演算部１６が実現される。
【００３７】
このような電流制御等の処理の後は、ステップＳ３へ戻る。以降、電動パワーステアリング装置におけるモータ制御装置（ＥＣＵ）５が動作している間、上記の制御周期でステップＳ３，Ｓ４，Ｓ６が繰り返し実行される。
【００３８】
＜２．３  角速度推定部の構成および動作＞
図４は、本実施形態における角速度推定部５０を実現するための角速度推定処理の基礎となる基本角速度推定処理を説明するための波形図である。図４（ａ）は、本実施形態に係るモータ制御装置をＥＣＵ５として使用する電動パワーステアリング装置において操舵角θｈが図４（ｂ）に示すように変化した場合に回転センサ７から出力されるパルス信号Ｐの波形を示し、図４（ｃ）は、当該操舵角θｈが図４（ｂ）に示すように変化した場合における後述の平均値算出部５３内のカウンタ５３５のカウント値Ｃの変化を示している。
【００３９】
図５は、本実施形態における角速度推定部５０の機能的構成の一例を示すブロック図であり、この角速度推定部５０は、図５に示すように、保舵判定部５１、抵抗算出部５２、平均値算出部５３、および、角速度推定値算出部（以下「推定値算出部」と略記する）５６を備えており、保舵判定部５１と抵抗算出部５２と平均値算出部５３とは抵抗値更新部２００を構成する。上記の電圧検出回路２４および電流検出回路２５により得られる電圧検出値Ｖｍおよび電流検出値Ｉｍは、抵抗算出部５２および推定値算出部５６に入力される。
【００４０】
基本角速度推定処理では、回転センサ７からのパルス信号Ｐが保舵判定部５１に入力され、保舵判定部５１は、予め決められた時間ΔＴ１の間、回転センサ７がパルスを出力しなければ、モータ１の回転速度は０近傍の所定値以下であるとして、保舵状態であると判定し、当該時間ΔＴ１の間に回転センサ７がパルスを出力すれば操舵状態であると判定する（図４（ａ）参照）。この判定結果は、回転状態信号Ｓｔとして抵抗算出部５２および平均値算出部５３に入力される。また、基本角速度推定処理では、当該時間ΔＴ１の間、回転センサ７がパルスを出力しない場合に保舵が検出されるが、その検出後において回転センサ７からパルスが出力されると、その時点で回転状態信号Ｓｔは操舵状態を示すように変化する。
【００４１】
一般に、ブラシ付きモータ１のロータの角速度ωは、既述のように次式により与えられる。
ω＝（Ｖ−Ｉ×Ｒ）／ｋ    …（２）
ここで、Ｖはモータ電圧（端子間電圧）であり、Ｉはモータ電流であり、Ｒはモータ抵抗（端子間抵抗）であり、ｋは逆起電力定数である。したがって、上記の電圧検出値Ｖｍおよび電流検出値Ｉｍに加えて、モータ抵抗Ｒの値がわかれば、角速度ωを算出することができる。
【００４２】
電動パワーステアリング装置が保舵状態であってモータ１のロータが停止している場合、角速度ω＝０であるので、上記式（２）に基づき下記式（３）によりモータ抵抗Ｒを算出することができる。
Ｒ＝Ｖ／Ｉ    …（３）
そこで抵抗算出部５２は、回転状態信号Ｓｔが保舵状態を示すと、角速度ω＝０とみなし、上記式（３）にＶ＝Ｖｍ、Ｉ＝Ｉｍを代入することによりモータ抵抗Ｒの値を算出する（以下、この値を「算出抵抗値」といい、記号“Ｒｃ”で示すものとする）。このようにして得られる算出抵抗値Ｒｃ（＝Ｖｍ／Ｉｍ）は、平均値算出部５３に入力される。
【００４３】
平均値算出部５３は、上記の回転状態信号Ｓｔに基づき、電動パワーステアリング装置が保舵状態である期間（以下「保舵期間」という）に抵抗算出部５２から制御周期毎に入力される算出抵抗値Ｒｃの平均値を求め、抵抗平均値Ｒｎｅｗとして出力する。この抵抗平均値Ｒｎｅｗの具体的な算出方法については後述する。
【００４４】
推定値算出部５６は、上記の抵抗平均値Ｒｎｅｗを上記の電圧検出値Ｖｍおよび電流検出値Ｉｍと共に用いて上記式（２）により角速度推定値ωｅを算出する。すなわち推定値算出部５６は、Ｖ＝Ｖｍ、Ｉ＝Ｉｍ、Ｒ＝Ｒｎｅｗを上記式（２）に代入することにより角速度推定値ωｅを算出する。なお本実施形態では、逆起電力定数ｋは図３のステップＳ２で既知の値を設定されているものとする。
【００４５】
上述の構成では、上記式（２）におけるモータ抵抗値Ｒとして上記の抵抗平均値Ｒｎｅｗを用いて角速度推定値ωｅが算出されるが、これに代えて、図７に示すような抵抗マップを参照して求めた抵抗値Ｒｍを用いて角速度推定値ωｅを算出するようにしてもよい。
【００４６】
抵抗マップを参照して抵抗値Ｒｍを求める構成の場合、角速度推定部５０は、既述の構成要素５１，５２，５３，５６に加えて、マップ更新部５４およびマップ保持部５５を備えている。この場合、抵抗算出部５２での算出抵抗値Ｒｃの算出に使用された電流検出値Ｉｍも、算出時電流値Ｉｃとして制御周期毎に平均値算出部５３に入力され、平均値算出部５３は、保舵期間中、算出時電流値Ｉｃの平均値を電流平均値Ｉｎｅｗとして算出し、上記の抵抗平均値Ｒｎｅｗと共に電流平均値Ｉｎｅｗも制御周期毎に出力する。これらの抵抗平均値Ｒｎｅｗおよび電流平均値Ｉｎｅｗはマップ更新部５４に入力される。
【００４７】
マップ保持部５５は、モータ１の電流−抵抗特性に基づきモータ電流をモータ抵抗に対応付けるテーブルを抵抗マップとして保持している。マップ更新部５４は、上記の抵抗平均値Ｒｎｅｗおよび電流平均値Ｉｎｅｗに基づき、この抵抗マップを更新する。すなわち、図７に示すように、上記の電流−抵抗特性を表す特性曲線が上記の抵抗平均値Ｒｎｅｗおよび電流平均値Ｉｎｅｗを示す点Ａを通過するように（当該特性曲線が図７の実線の曲線から点線の曲線に変更されるように）、抵抗マップを変更する。なお、後述の第２の角速度推定処理（図９）では、保舵状態から操舵状態へと切り替わるときに抵抗マップが更新されるが（ステップＳ７２）、この構成に限定されるものではなく、保舵状態において例えば抵抗値Ｒｃが所定回数算出される毎に抵抗平均値Ｒｎｅｗおよび電流平均値Ｉｎｅｗに基づいて抵抗マップを更新するようにしてもよい。
【００４８】
推定値算出部５６は、マップ保持部５５における抵抗マップを参照して、上記の電流検出値Ｉｍに対応するモータ抵抗値Ｒｍを求め、この抵抗値Ｒｍを上記の電圧検出値Ｖｍおよび電流検出値Ｉｍと共に用いて上記式（２）により角速度推定値ωｅを算出する。すなわち推定値算出部５６は、Ｖ＝Ｖｍ、Ｉ＝Ｉｍ、Ｒ＝Ｒｍを上記式（２）に代入することにより角速度推定値ωｅを算出する。なお、後述の第２の角速度推定処理（図９）では、操舵状態において角速度推定値ωｅの算出に使用する抵抗値Ｒｍを求めるために抵抗マップが使用されるが（ステップＳ７６）、本実施形態はこの構成に限定されるものではなく、保舵状態においても角速度推定値ωｅの算出に使用する抵抗値Ｒｍを求めるために抵抗マップを使用するようにしてもよい。
【００４９】
＜２．４  角速度推定処理の具体例＞
以下、本実施形態における角速度推定部５０をソフトウェア的に実現するための角速度推定処理（図３のステップＳ４）につき幾つかの具体例を説明する。
【００５０】
＜２．４．１  基本角速度推定処理＞
図６は、本実施形態における角速度推定処理Ｓ４の基礎となる基本角速度推定処理の詳細を示すフローチャートである。この基本角速度推定処理によって実現される角速度推定部５０はマップ更新部５４およびマップ保持部５５を備えない構成となっている（図５参照）。以下、図５および図６を参照して、この基本角速度推定処理について詳述する。基本角速度推定処理は制御周期毎に実行され（図３参照）、この基本角速度推定処理においてマイコン１０は下記のように動作する。
【００５１】
まず、回転センサ７からのパルス信号Ｐに基づき電動パワーステアリング装置が保舵状態か否か判定する（ステップＳ１０）。なお、保舵状態か否かの判定手法は、これに限定されるものではなく、例えば、回転センサ７に代えて、舵角センサ（または操舵角速度センサ）７ｈからの出力信号に基づいて保舵状態か否かを判定するようにしてもよい。また例えば、前回の制御周期において基本角速度推定処理の後述のステップＳ５８で算出された角速度推定値ωｅに基づき保舵状態か否かを判定してもよい。これらの点は、後述の第１の角速度推定処理においても同様である。
【００５２】
ステップＳ１０での判定の結果、保舵状態である場合（Ｙｅｓの場合）にはステップＳ１１へ進み、保舵状態でない場合すなわち操舵状態の場合（Ｎｏの場合）には、ステップＳ３０へ進んで、保舵状態か否かを示すフラグＦｈをリセットし（Ｆｈ＝０）、その後、ステップＳ２４へ進む。
【００５３】
ステップＳ１１では、フラグＦｈに基づき前回の制御周期においても保舵状態であったか否かを判定する。フラグＦｈは、既述のように初期状態ではリセットされており（Ｆｈ＝０）、保舵状態になると後述のステップＳ１２でセットされる（Ｆｈ＝１）。そこでステップＳ１１では、フラグＦｈがセットされているか否かにより、前回の制御周期においても保舵状態か否かを判定する（例えばＦｈ＝１であれば前回の制御周期でも保舵状態であると判定される）。
【００５４】
ステップＳ１１での判定の結果、前回の制御周期においても保舵状態である場合（Ｆｈ＝１の場合）には、ステップＳ１２へ進み、前回の制御周期では保舵状態でない場合（Ｆｈ＝０の場合）には、既述のカウント値Ｃ、算出抵抗値Ｒｃを積算するための変数ＳＲ、および、算出時電流値Ｉｃを積算するための変数値ＳＩを０に初期化し（ステップＳ３２）、その後、ステップＳ１２へ進む。
【００５５】
ステップＳ１２ではフラグＦｈをセットし（Ｆｈ＝１）、次のステップＳ１４ではカウント値Ｃを１だけ増加させ、その後、式（３）にＶ＝Ｖｍ（電圧検出値）、Ｉ＝Ｉｍ（電流検出値）を代入することによりモータ抵抗Ｒの値を算出抵抗値Ｒｃとして求める（ステップＳ１６）。次に、算出抵抗値Ｒｃを積算すべく、上記変数ＳＲに算出抵抗値Ｒｃを加算した値を新たな変数ＳＲとし、この算出抵抗値Ｒｃの算出時の電流検出値Ｉｃ＝Ｉｍを積算すべく、上記変数ＳＩに算出時電流値Ｉｃを加算した値を新たな変数ＳＩとする（ステップＳ１８）。
【００５６】
その後、カウント値Ｃが所定の終了値Ｃｎ（例えば５０）以上であるか否かを判定する（ステップS２０）。この判定の結果、カウント値Ｃが終了値Ｃｎに達している場合（Ｓ２０でＹｅｓの場合）には、ステップＳ３４へ進み、終了値Ｃｎに達していない場合（Ｓ２０でＮｏの場合）には、ステップＳ２４へ進む。
【００５７】
ステップＳ３４では、変数ＳＲをカウント値Ｃ＝Ｃｎで除算し、変数ＳＩをカウント値Ｃ＝Ｃｎで除算することにより、直近のＣｎ回での算出抵抗値Ｒｃおよび算出時電流値Ｉｃの各平均値をそれぞれ抵抗平均値Ｒｎｅｗおよび電流平均値Ｉｎｅｗとして求める。このようにして抵抗平均値Ｒｎｅｗおよび電流平均値Ｉｎｅｗが得られた後は、カウント値Ｃおよび変数ＳＲ，ＳＩを０に初期化し（ステップＳ３８）、ステップＳ２４へ進む。
【００５８】
ステップＳ２４では、電流検出値Ｉｍおよび電圧検出値Ｖｍと共に抵抗平均値Ｒｎｅｗを用いて式（２）により角速度推定値ωｅを算出する。すなわち、Ｉ＝Ｉｍ、Ｖ＝Ｖｍ、Ｒ＝Ｒｍを式（２）に代入することにより角速度推定値ωｅを算出する。これにより、１つの制御周期での角速度推定処理を終了し、図３に示すモータ制御処理のルーチンに戻る。
【００５９】
図６に示す上記の基本角速度推定処理により、図４および図５に示す構成の角速度推定部５０がソフトウェア的に実現される。このような基本角速度推定処理によれば、保舵状態において、抵抗値Ｒｃおよび電流値ＩｃがＣｎ回算出される毎に（カウント値Ｃが終了値Ｃｎに達する毎に）、角速度推定値ωｅの算出に使用する抵抗平均値Ｒｎｅｗが更新されるので（ステップＳ３４，Ｓ２４）、モータ１に個体差があっても、また、モータ１のブラシと整流子の間の接触状態や温度等が変化しても、実際のモータ抵抗値に比べ誤差の少ない抵抗平均値Ｒｎｅｗが得られ、この抵抗平均値Ｒｎｅｗを用いて角速度推定値ωｅを精度良く算出することができる。これにより、モータ制御装置の制御性能が向上し、そのモータ制御装置を用いた電動パワーステアリング装置において良好な操舵感が得られる。
【００６０】
＜２．４．２  第１の角速度推定処理＞
上記の基本角速度推定処理では、保舵状態において、カウント値Ｃが最終値Ｃｎに達する毎に、角速度推定値ωｅの算出に使用される抵抗平均値Ｒｎｅｗが更新されるが、１つの保舵期間（保舵状態の期間）においてカウント値が最終値Ｃｎに達しないときには抵抗平均値Ｒｎｅｗは更新されない。例えば最終値Ｃｎが１００に設定されている場合、操舵期間においてＣ＝９０までカウントされても（算出抵抗値Ｒｃが９０回算出されても）、抵抗平均値Ｒｎｅｗは更新されない。また、外部からの影響等でカウント値（１つの保舵期間での算出抵抗値Ｒｃの算出回数）が最終値Ｃｎ（例えば１００）に達しないことが多い場合には、抵抗平均値Ｒｎｅｗの更新周期が長くなる。この更新周期が過度に長くなると、角速度推定値ωｅの算出に使用される抵抗平均値Ｒｎｅｗと実際のモータ抵抗値Ｒとの間に乖離が生じ、モータ制御装置としての制御性能が低下する。
【００６１】
そこで、本実施形態における角速度推定部５０をソフトウェア的に実現するための第１の角速度推定処理では、角速度推定値ωｅの算出に使用される抵抗平均値Ｒｎｅｗをカウント値Ｃが所定値（最終値Ｃｎ）に達する毎に更新するのではなく、当該抵抗平均値Ｒｎｅｗを保舵期間において逐次（制御周期毎に）更新するように構成されている。図８は、この第１の角速度推定処理を示すフローチャートである。第１の角速度推定処理は制御周期毎に実行され（図３参照）、この第１の角速度推定処理においてマイコン１０は下記のように動作する。
【００６２】
まず、ステップＳ１０において、電動パワーステアリング装置が保舵状態か否か判定する。このステップＳ１０およびその後に実行され得るステップＳ１１〜Ｓ１６，Ｓ３０，Ｓ３２の内容は上記の基本角速度推定処理（図６）における同一番号のステップの内容と同じであるので、説明を省略する。
【００６３】
第１の角速度推定処理では、マイコン１０内のメモリを用いてソフトウェア的にＦＩＦＯメモリが実現されており、ステップＳ１６で算出抵抗値Ｒｃが新たに算出されると、その抵抗値ＲｃがＦＩＦＯメモリに格納される（ステップＳ５０）。このＦＩＦＯメモリは、サイズが所定値Ｃａ（例えば５０）の先入れ先出し方式のメモリであって、Ｃａ個の算出抵抗値Ｒｃが格納されている状態において更に１個の新たな算出抵抗が格納されると、最初に格納されたＦＩＦＯメモリ内の算出抵抗値Ｒｃが廃棄される。このため、このＦＩＦＯメモリにＣａ回以上算出抵抗値Ｒｃが格納された場合には、直近のＣａ回に格納されたＣａ個の算出抵抗値ＲｃのみがそのＦＩＦＯメモリに存在する。
【００６４】
新たに算出された抵抗値Ｒｃが上記ＦＩＦＯメモリに格納された後は、カウント値Ｃが所定値Ｃａ以上であるか否かを判定する（ステップＳ５２）。この判定の結果、カウント値Ｃが所定値Ｃａに達している場合（Ｓ５２でＹｅｓの場合）には、ステップＳ５４へ進み、所定値Ｃａに達していない場合（Ｓ５２でＮｏの場合）には、ステップＳ６０へ進む。最初にステップＳ５２が実行される時点では、Ｃ＝１であるので、ステップＳ６０へ進むが、この図８の角速度推定処理（第１の角速度推定処理）が繰り返し実行されて、抵抗値Ｒｃの算出回数がＣａ回以上になると、ステップＳ５４へ進む（Ｃ≧Ｃａ）。
【００６５】
ステップＳ５４へ進んだ場合には、その時点での直近のＣａ回で算出されたＣａ個の抵抗値ＲｃがＦＩＦＯメモリに存在し、これらＣａ個の抵抗値Ｒｃの平均値Ｒｎｅｗを求める。これは、制御周期毎に順次得られる抵抗値Ｒｃについて移動平均化処理を施すことにより抵抗平均値Ｒｃを求めることを意味する。その後、ステップＳ５６で、この抵抗平均値ＲｎｅｗをＲｏｌｄに代入して、ステップＳ５８へ進む。
【００６６】
ステップＳ６０へ進んだ場合には、その時点での直近のＣ回で算出されたＣ個の抵抗値ＲｃがＦＩＦＯメモリに存在し、これらＣ個の抵抗値Ｒｃの平均値Ｒ１を求める。ここでＣは、１以上でＣａよりも小さい整数であり、Ｃが小さい場合には、平均値Ｒ１は安定した値ではなくばらつきがあるので、すなわち平均値Ｒ１に含まれるノイズが比較的大きいので、そのまま角速度推定値ωｅの算出に使用するのは好ましくない。そこで、抵抗値ＲｏｌｄとＲ１との加重平均を示す下記式（４）により抵抗平均値Ｒｎｅｗを求める（ステップＳ６２）。
Ｒｎｅｗ＝｛（１−ｆ(Ｃ)）・Ｒｏｌｄ＋ｆ(Ｃ)・Ｒ１｝  …（４）
ここで、ｆ(Ｃ)は、Ｃ＝０のとき０となりＣ＝Ｃａとき１となる、カウント値Ｃの単調増加関数であり、例えば関数ｆ(Ｃ)＝Ｃ／Ｃａまたはｆ(Ｃ)＝Ｃ2／Ｃａ2を使用することができる。上記式（４）は、新たな更新パラメータ値としての抵抗平均値Ｒｎｅｗを求めるための電流検出値Ｉｍおよび電圧検出値Ｖｍの取得個数（これは算出抵抗値Ｒｃの取得個数に等しい）に応じた、抵抗値Ｒｏｌｄと抵抗値Ｒ１との加重平均を示している。この式（４）により抵抗平均値Ｒｎｅｗが得られると、ステップＳ５８へ進む。
【００６７】
ステップＳ５８では、電流検出値Ｉ＝Ｉｍおよび電圧検出値Ｖ＝Ｖｍと共に抵抗値Ｒ＝Ｒｎｅｗを用いて式（２）により角速度推定値ωｅを算出する。この角速度推定値ωｅの算出には、保舵期間では上記のステップＳ５４またはＳ６２で算出された抵抗値Ｒｎｅｗが使用されるが、操舵期間ではその前の保舵期間で設定された抵抗値Ｒｎｅｗが使用される。ステップＳ５８で角速度推定値ωｅが算出されると、１つの制御周期での角速度推定処理を終了し、図３に示すモータ制御処理のルーチンに戻る。
【００６８】
このような第１の角速度推定処理によれば、角速度推定値ωｅを算出するための抵抗平均値Ｒｎｅｗは、各保舵期間において逐次に得られ制御周期毎に更新される。このため、角速度推定値ωｅを算出するための抵抗平均値Ｒｎｅｗは、現実のモータ抵抗値Ｒの変化に追随することができ、現実のモータ抵抗値Ｒとの乖離が抑制される。その結果、モータ１のブラシと整流子の間の接触状態や温度等が変化しても、実際のモータ抵抗値に比べ誤差の少ない抵抗平均値Ｒｎｅｗを用いて角速度推定値ωｅを精度良く算出することができる。これにより、モータ制御装置の制御性能が向上し、そのモータ制御装置を用いた電動パワーステアリング装置において良好な操舵感が得られる。
【００６９】
＜２．４．３  第２の角速度推定処理＞
上記第１の角速度推定処理では、保舵期間において角速度推定値ωｅの算出に使用される抵抗値Ｒｎｅｗは制御周期毎に更新される（図８のステップＳ５２〜Ｓ５６，Ｓ６０，Ｓ６２）。しかし、操舵期間では、その直前の保舵期間で最後に算出された抵抗平均値Ｒｎｅｗが角速度推定値ωｅの算出に使用され、操舵状態の間は更新されない。そこで、本実施形態における角速度推定部５０をソフトウェア的に実現するための第２の角速度推定処理では、図９に示すように、操舵状態であると判定された場合（ステップＳ１０でＮｏの場合）には、その直前の保舵期間において最後に算出された抵抗平均値Ｒｎｅｗおよび電流平均値Ｉｎｅｗに基づき抵抗マップが更新され（ステップＳ７２）、操舵期間において角速度推定値ωｅの算出に使用される抵抗値Ｒｍは、制御周期毎にその抵抗マップを参照して決定され（ステップＳ７６）、その抵抗値Ｒｍを用いて角速度推定値ωｅが算出される（ステップＳ７８）。
【００７０】
第２の角速度推定処理における他のステップＳ１０〜Ｓ１６，Ｓ３２，Ｓ５０〜Ｓ６２の内容は、上記第１の角速度推定処理（図８）における対応するステップＳ１０〜Ｓ１６，Ｓ３２，Ｓ５０〜Ｓ６２の内容と基本的には同じである。ただし、第２の角速度推定処理では、既述のように、抵抗マップを更新するために抵抗平均値Ｒｎｅｗだけでなく電流平均値Ｉｎｅｗも必要であるので、これに対処すべくステップＳ５０，Ｓ５４，Ｓ５６，Ｓ６０，Ｓ６２の内容が、第１の角速度推定処理における対応するステップＳ５０，Ｓ５４，Ｓ５６，Ｓ６０，Ｓ６２の内容と若干異なっている（図８および図９参照）。
【００７１】
このような第２の角速度推定処理によれば、上記第１の角速度推定処理の場合と同様の効果に加えて、操舵期間における角速度推定値ωｅの算出精度が向上する。その結果、モータ制御装置の制御性能が更に向上し、そのモータ制御装置を用いた電動パワーステアリング装置においてより良好な操舵感が得られる。
【００７２】
＜３．第２の実施形態＞
＜３．１  モータ制御装置の構成＞
本発明の第２の実施形態に係るモータ制御装置も、上記第１の実施形態と同様、図１に示すように電動パワーステアリング装置において使用され、ＥＣＵ５を用いて構成されており、ブラシ付きモータ１を駆動する。また、このモータ制御装置の構成は、回転センサ７に代えて舵角センサ７ｈが設けられる点と角速度推定部５０の構成を除き、上記第１の実施形態と基本的には同様であって、図２に示す通りである。ただし、図２において点線で示される各部の温度センサ４１，４２，４３は本実施形態においても使用されない。なお本実施形態では、角速度推定値ωｅの算出において、舵角センサ７ｈの出力信号が示す操舵角θｈがそのまま使用されるのではなく、後述のように当該操舵角θｈを微分することにより得られる操舵角速度ωｈに対応するモータ角速度の概略的な値ωｓ（以下「角速度概略検出値ωｓ」または単に「検出値ωｓ」という）が使用される。このため、舵角センサ７ｈに代えて、操舵角速度センサ、または、モータの角速度を簡易に検出する低コストの簡易角速度センサを使用してもよい。このようにして舵角センサまたは操舵角速度センサまたは簡易角速度センサを用いてモータ１の回転速度を検出するという構成により、回転速度の検出精度は電動モータの駆動制御に必要な精度よりも低いが格段に低コストでモータ１の速度検出手段（簡易速度検出手段）を実現することができる。
【００７３】
以下では、本実施形態における角速度推定部５０の構成について説明し、他の部分については同一または対応する構成要素に同一の参照符号を付して説明を省略する（後述の他の実施形態についても同様）。ただし、上記第１の実施形態との間には、図３に示すモータ制御処理についても若干の相違点があり、その相違点については角速度推定部５０の構成の説明において適宜言及する（後述の他の実施形態についても同様）。
【００７４】
図１０は、本実施形態における角速度推定部５０の機能的構成を示すブロック図である。この角速度推定部５０は、速度判定部６１とパラメータ値算出部６２と角速度推定値算出部６６とを備えており、速度判定部６１とパラメータ値算出部６２とはパラメータ値更新部４００を構成する。角速度推定部５０では、舵角センサ（または操舵角速度センサ）７ｈからの出力信号に基づき得られる角速度値が角速度概略検出値ωｓとして入力される。舵角センサ（または操舵角速度センサ）７ｈの検出精度は、モータ１の回転速度が高いほど高い。このため、速度判定部６１は、角速度概略検出値ωｓが所定の最小値ωmin以上か否かを判定し、その判定結果を示す信号を回転状態信号Ｓｐとして出力する。パラメータ値算出部６２は、この回転状態信号Ｓｐに基づき、モータ１が当該最小値ωminに対応する所定速度以上で回転している場合に、角速度概略検出値ωｓと電流検出値Ｉｍと電圧検出値Ｖｍとを１組とする複数組の検出値ωｓ，Ｉｍ，Ｖｍに基づき抵抗値Ｒｎｅｗと逆起電力定数ｋｎｅｗを求める（詳細は後述）。角速度推定値算出部６６は、これらの抵抗値Ｒｎｅｗと逆起電力定数ｋｎｅｗを用いて角速度推定値ωｅを算出する。また、パラメータ値算出部６２は、回転状態信号Ｓｐに基づき、モータ１が当該最小値ωminに対応する所定速度よりも小さい速度で回転しているか停止している場合には、抵抗値Ｒｎｅｗおよび逆起電力定数ｋｎｅｗを新たに算出しない（更新しない）。この場合、角速度推定値算出部６６は、既に得られている抵抗値Ｒｎｅｗと逆起電力定数ｋｎｅｗをそのまま用いて、または、他の方法により得られる抵抗値Ｒｎｅｗ等を用いて角速度推定値ωｅを算出する（詳細は後述）。
【００７５】
＜３．２  角速度推定処理の具体例＞
以下、本実施形態における角速度推定部５０をソフトウェア的に実現するための角速度推定処理（図３のステップＳ４）につき幾つかの具体例を説明する。なお本実施形態では、図３のステップＳ２において、上記最小値ωminや、後述の時間制限値Ｔｌｉｍ、パラメータ値（Ｒｎｅｗ，ｋｎｅｗ）の新たな算出に必要な検出値（Ｖｍ，Ｉｍ等）の個数を規定する所定値ｊａ等に対し実験等に基づく適切な値が設定され、抵抗値Ｒｏｌｄ，Ｒｎｅｗや逆起電力定数ｋｏｌｄ，ｋｎｅｗには初期値として実験等に基づく適切な値が設定され、パラメータ値（Ｒｎｅｗ，ｋｎｅｗ）の算出に使用される検出値（Ｖｍ，Ｉｍ，ωｓ）の個数を示す変数ｊが０に初期化される。また、図３のステップＳ３では、各センサ３，４，７ｈおよび検出回路２４，２５からの出力信号に基づき制御周期毎に操舵トルクＴｓ，車速Ｓ，角速度概略検出値ωｓ、電圧検出値Ｖｍ、電流検出値Ｉｍが取得される。
【００７６】
＜３．２．１  第１の角速度推定処理＞
図１１は、本実施形態における角速度推定処理Ｓ４の一例である第１の角速度推定処理の詳細を示すフローチャートである。本実施形態における第１の角速度推定処理も制御周期毎に実行され（図３参照）、この第１の角速度推定処理においてマイコン１０は下記のように動作する。
【００７７】
まず、舵角センサ（または操舵角速度センサ）７ｈからの出力信号に基づき得られる角速度概略検出値ωｓが所定の最小値ωmin以上か否かを判定する（ステップＳ１００）。この判定の結果、角速度概略検出値ωｓが当該最小値ωmin以上である場合（Ｙｅｓの場合）にはステップＳ１０２へ進み、角速度概略検出値ωｓが当該最小値ωminよりも小さい場合（Ｎｏの場合）には、角速度推定値ωｅの算出に使用するパラメータ値（抵抗値Ｒｎｅｗ、逆起電力定数ｋｎｅｗ）を更新することなくステップＳ１２０へ進む。
【００７８】
ステップＳ１０２では、変数ｊが０か否かを判定する。その判定の結果、変数ｊが０であればステップＳ１０３へ進み、変数ｊが０でなければステップＳ１０４へ進む。マイコン１０はタイマーを内蔵しており、ステップＳ１０３では、このタイマーをスタートさせる。これにより、このタイマーのスタートからの経過時間Ｔｅｌｐが０に初期化され、その後、ステップＳ１０４へ進む。ステップＳ１０４へ進んだ場合には、変数ｊの値を１だけ増加させた後、ステップＳ１０６へ進む。
【００７９】
本実施形態における第１の角速度推定処理においても、マイコン１０内のメモリを用いてソフトウェア的にＦＩＦＯメモリが実現されている。このＦＩＦＯメモリは、サイズが所定値ｊａ（例えば３０）の先入れ先出し方式のメモリであって、角速度、電流、電圧の上記検出値ωｓ，Ｉｍ，Ｖｍと上記経過時間Ｔｅｌｐからなる４つの値を１組とするｊａ組の検出データが格納されている状態において更に１組の検出データが格納されると、最初に格納されたＦＩＦＯメモリ内の１組の検出データ（先頭組を構成する上記検出値ωｓ，Ｉｍ，Ｖｍおよび上記経過時間Ｔｅｌｐ）が廃棄される。
【００８０】
ステップＳ１０６では、このようなＦＩＦＯメモリに現時点での検出値ωｓ，Ｉｍ，Ｖｍと経過時間Ｔｅｌｐを１組の検出データとして格納する。
【００８１】
次のステップＳ１０８では、このＦＩＦＯメモリの先頭組における経過時間Ｔｅｌｐとタイマーが示す経過時間Ｔｅｌｐとの差ΔＴｅｌｐを求める。この差ΔＴｅｌｐは、先頭組における検出値ωｓ，Ｉｍ，Ｖｍの検出時点から現時点までの経過時間を示しており、次のステップＳ１１０では、この差ΔＴｅｌｐが所定の時間制限値Ｔｌｉｍ以下であるか否かを判定する。なお、この時点では先頭組における経過時間Ｔｅｌｐは略０であってΔＴｅｌｐはタイマーが示す経過時間Ｔｅｌｐに略等しいが、後述のようにＦＩＦＯメモリから先頭組が取り出されたり廃棄されたりしたときには２番目の組が先頭組となり、そのとき先頭組における経過時間Ｔｅｌｐは正の値（非零）となる。
【００８２】
ステップＳ１１０での判定の結果、上記差ΔＴｅｌｐが時間制限値Ｔｌｉｍ以下である場合には、ステップＳ１１２へ進み、変数ｊが所定値ｊａに等しいか否かを判定する。その判定の結果、変数ｊが所定値ｊａに等しければステップＳ１１４へ進み、変数ｊが所定値ｊａに等しくなければ（すなわち所定値ｊａよりも小さければ）、ステップＳ１２８へ進む。最初にステップＳ１１２が実行される時点では、ｊ＝１であるので、ステップＳ１２８へ進むが、この図１１の角速度推定処理（第１の角速度推定処理）が繰り返し実行されて、ｊａ組の上記値ωｓ，Ｉｍ，Ｖｍ，ＴｅｌｐがＦＩＦＯメモリに格納された状態になると、ステップＳ１１４へ進む（ｊ＝ｊａ）。
【００８３】
ステップＳ１１４では、ＦＩＦＯメモリに格納されているｊａ組の上記値ωｓ，Ｉｍ，Ｖｍ，Ｔｅｌｐのうちｊａ組の検出値ωｓ，Ｉｍ，Ｖｍから下記のようにして抵抗値Ｒｎｅｗと逆起電力定数ｋｎｅｗとを算出する。
【００８４】
まず、ＦＩＦＯメモリ内のｊａ組の検出値ωｓ，Ｉｍ，Ｖｍをωｓ（ｉ），Ｉｍ（ｉ），Ｖｍ（ｉ）（ｉ＝１，２，…，ｊａ）と記すものとし、ｊａ行２列の行列Ｘ、ｊａ次元ベクトルＹ、および２次元ベクトルφを下記のように定義する（ベクトルＹはｊａ行１列の行列ともいえ、ベクトルφは２行１列の行列ともいえる）。
Ｘ＝（Ω  ＩＩ）                                …（５）
Ｙ＝（Ｖｍ(１)  Ｖｍ(２)  …  Ｖｍ(ｊａ)  ）T   …（６）
φ＝（ｋ  Ｒ）T                                 …（７）
ここで、Ωは
Ω＝（ωｓ(１)  ωｓ(２)  …  ωｓ(ｊａ)  ）T   …（８）
で定義されるｊａ次元ベクトルであり、ＩＩは
ＩＩ＝（Ｉｍ(１)  Ｉｍ(２)  …  Ｉｍ(ｊａ)  ）T …（９）
で定義されるｊａ次元ベクトルであり、上付添字のＴは転置を示す記号である（例えばＡTは行列Ａの転置行列を表す）。式（２）より
ｋ・ωｓ(ｉ)＋Ｒ・Ｉｍ(ｉ)＝Ｖｍ(ｉ)          …（１０）
であり（ｉ＝１，２，…，ｊａ）、これを上記のように定義されたＸ，Ｙ，φで表現すると、
Ｘ・φ＝Ｙ    …（１１）
となる。
【００８５】
そこでステップＳ１１４では、次式により算出されるｋおよびＲをそれぞれ上記の逆起電力定数ｋｎｅｗおよび抵抗値Ｒｎｅｗとする（これは、ステップＳ１２０での角速度推定値ωｅの算出に使用される逆起電力定数ｋｎｅｗおよび抵抗値Ｒｎｅｗを更新することを意味する）。
φ＝Ｘ+Ｙ    …（１２）
ここで、Ｘ+は行列Ｘの擬似逆行列であり、次式により算出することができる。
Ｘ+＝（ＸT・Ｘ）-1・ＸT    …（１３）
また、上記のような擬似逆行列ＸTを用いて式（１２）により算出されるφ＝（ｋ  Ｒ）Tは、下記のΨを最小にするものとなっている。
Ψ＝｛V(1)−k・ωs(1)−R・Im(1)｝2＋｛V(2)−k・ωs(2)−R・Im(2)｝2 …
… ＋｛V(j)−k・ωs(j)−R・Im(j)｝2
＝（Ｙ−Ｘ・φ）T・（Ｙ−Ｘ・φ）              …（１４）
したがって、式（１２）により算出されるφ＝（ｋ  Ｒ）T をφ＝（ｋｎｅｗ  Ｒｎｅｗ）Tとすると、逆起電力定数ｋ＝ｋｎｅｗおよび抵抗値Ｒ＝Ｒｎｅｗは、ＦＩＦＯメモリ内のｊ組の検出値ωｓ（ｉ），Ｉｍ（ｉ），Ｖｍ（ｉ）（ｉ＝１，２，…，ｊａ）を線形式Ｖｍ＝ｋ・ωｓ＋Ｒ・Ｉｍを用いて最小二乗法により近似するための値となっている。すなわち、式（１２）によりφを算出することは、ｊ組の検出値ωｓ（ｉ），Ｉｍ（ｉ），Ｖｍ（ｉ）（ｉ＝１，２，…，ｊａ）のいずれもがモータ１の回路方程式Ｖｍ＝ｋ・ωｓ＋Ｒ・Ｉｍを少なくとも近似的に満たすようなφ＝（ｋ  Ｒ）T を求めることを意味する。
【００８６】
上記のようにして新たな抵抗値Ｒｎｅｗおよび逆起電力定数ｋｎｅｗが求まると、その後、これらの抵抗値Ｒｎｅｗおよび逆起電力定数ＫｎｅｗをそれぞれＲｏｌｄおよびｋｏｌｄとおき（ステップＳ１１６）、ＦＩＦＯメモリにおいて先頭組の検出データ（ωｓ，Ｉｍ，Ｖｍ，Ｔｅｌｐ）を廃棄して次の新たな１組の検出データ（ωｓ，Ｉｍ，Ｖｍ，Ｔｅｌｐ）の格納を可能とするために、変数ｊを１だけ減じる（ステップＳ１１８）。その後、ステップＳ１２０へ進む。
【００８７】
ステップＳ１２８へ進んだ場合には、変数ｊが２以上か否かを判定する。その判定の結果、変数ｊが２よりも小さい場合（Ｎｏの場合）には、後述のステップＳ１３０において抵抗値Ｒ１および逆起電力定数ｋ１を算出できないので、角速度推定値ωｅの算出に使用する抵抗値Ｒｎｅｗおよび逆起電力定数ｋｎｅｗを更新することなくステップＳ１２０へ進む。一方、その判定の結果、変数ｊが２以上の場合（Ｙｅｓの場合）にはステップＳ１３０へ進む。
【００８８】
ステップＳ１３０へ進んだ時点では、ＦＩＦＯメモリにはｊ組の検出値ωｓ，Ｉｍ，Ｖｍと経過時間Ｔｅｌｐが格納されており、これらのうちｊ組の検出値ωｓ，Ｉｍ，ＶｍからステップＳ１１４と同様にして抵抗値Ｒ１と逆起電力定数ｋ１とを算出する。すなわち、ｊａ＝ｊとして上記式（１２）により算出されるφ＝（ｋ  Ｒ）Tをφ＝（ｋ１  Ｒ１）Tとすることで、ステップＳ１３０における抵抗値Ｒ１および逆起電力定数ｋ１を求める。この時点での変数ｊは、２以上でｊａよりも小さい整数であり、変数ｊが小さい場合には、抵抗値Ｒ１および逆起電力定数ｋ１がばらついて安定に算出されないので、すなわちＲ１，ｋ１に含まれるノイズが比較的大きいので、抵抗値Ｒ１および逆起電力定数ｋ１をそのまま角速度推定値ωｅの算出に使用するのは好ましくない。
【００８９】
そこで、角速度推定値ωｅの算出に使用すべき抵抗値Ｒｎｅｗおよび逆起電力定数ｋｎｅｗを、抵抗値ＲｏｌｄとＲ１との加重平均および逆起電力定数ｋｏｌｄとｋ１の加重平均を示す下記式（１５）および（１６）により算出する（ステップＳ１３２）。
Ｒｎｅｗ＝｛（１−ｆ(ｊ)）・Ｒｏｌｄ＋ｆ(ｊ)・Ｒ１｝  …（１５）
ｋｎｅｗ＝｛（１−ｆ(ｊ)）・ｋｏｌｄ＋ｆ(ｊ)・ｋ１｝  …（１６）
ここで、ｆ(ｊ)は、ｊ＝０のとき０となりｊ＝ｊａとき１となる、変数ｊの単調増加関数であり、例えば関数ｆ(ｊ)＝ｊ／ｊａまたはｆ(ｊ)＝ｊ2／ｊａ2を使用することができる。上記式（１５）および（１６）は、新たな更新パラメータ値としての抵抗値Ｒｎｅｗと逆起電力定数ｋｎｅｗを求めるための電流検出値Ｉｍおよび電圧検出値Ｖｍならびに角速度概略検出値ωｓの取得個数に応じた、抵抗値ＲｏｌｄとＲ１との加重平均および逆起電力定数ｋｎｅｗとｋ１との加重平均を示している。これらの式（１５）および（１６）により抵抗値Ｒｎｅｗおよび逆起電力定数ｋｎｅｗが得られると、ステップＳ１２０へ進む。
【００９０】
上記ステップＳ１１０での判定の結果、ＦＩＦＯメモリの先頭組における検出値ωｓ，Ｉｍ，Ｖｍの検出時点からの経過時間を示す上記差ΔＴｅｌｐが時間制限値Ｔｌｉｍを越えている場合（Ｎｏの場合）には、ステップＳ１２２へ進み、その先頭組の検出値ωｓ，Ｉｍ，Ｖｍは現時点の抵抗値Ｒｎｅｗ等の算出に使用するには古すぎるとして、ＦＩＦＯメモリから先頭組の検出データ（ωｓ，Ｉｍ，Ｖｍ，Ｔｅｌｐ）を取り出す（先頭組の検出データの廃棄）。
【００９１】
次に、この先頭組の検出データの取り出しに応じて、変数ｊを１だけ減じ（ステップＳ１２４）、その後、この変数ｊが０か否かを判定する（ステップＳ１２６）。この判定の結果、変数が０でない場合にはステップＳ１０８へ戻る。
【００９２】
以降、ＦＩＦＯメモリにおける先頭組の上記差ΔＴｅｌｐが時間制限値Ｔｌｉｍ以下となるまで、ステップＳ１１０→Ｓ１２２→Ｓ１２４→Ｓ１２６→Ｓ１０８を繰り返し実行する。ただし、この間に変数ｊが０となれば、ＦＩＦＯメモリに格納されている検出データ（ωｓ，Ｉｍ，Ｖｍ，Ｔｅｌｐ）が無いので、角速度推定値ωｅの算出に使用する抵抗値Ｒｎｅｗおよび逆起電力定数ｋｎｅｗを更新することなくステップＳ１２０へ進む。ステップＳ１１０→Ｓ１２２→Ｓ１２４→Ｓ１２６→Ｓ１０８を繰り返し実行している間に上記差ΔＴｅｌｐが時間制限値Ｔｌｉｍ以下となれば、ステップＳ１１２へ進み、既述のステップＳ１２８〜Ｓ１３２を実行した後にステップＳ１２０へ進む。
【００９３】
ステップＳ１２０では、電流検出値Ｉ＝Ｉｍおよび電圧検出値Ｖ＝Ｖｍと共に抵抗値Ｒ＝Ｒｎｅｗおよび逆起電力定数ｋ＝ｋｎｅｗを用いて式（２）により角速度推定値ωｅを算出する。この角速度推定値ωｅの算出には、上記のステップＳ１１４またはＳ１３２が実行された場合、そこで算出された抵抗値Ｒｎｅｗおよび逆起電力定数ｋｎｅｗが使用されるが、上記のステップＳ１１４とＳ１３２のいずれもが実行されない場合には、今回の制御周期よりも前に設定された抵抗値Ｒｎｅｗおよび逆起電力定数ｋｎｅｗが使用される。ステップＳ１２０で角速度推定値ωｅが算出されると、１つの制御周期での角速度推定処理を終了し、図３に示すモータ制御処理のルーチンに戻る。
【００９４】
このような第１の角速度推定処理によれば、角速度概略検出値ωｓが所定の最小値ωmin以上であるときに検出値Ｖｍ，Ｉｍ，ωｓがｊａ回以上得られると、直近のｊａ回で得られた検出値Ｖｍ，Ｉｍ，ωｓすなわちＦＩＦＯメモリに存在する検出値Ｖｍ，Ｉｍ，ωｓを用いて最小二乗法により抵抗値Ｒｎｅｗおよび逆起電力定数ｋｎｅｗが算出され（ステップＳ１１４）、これらの抵抗値Ｒｎｅｗおよび逆起電力定数ｋｎｅｗが角速度推定値ωｅの算出に使用される（ステップＳ１２０）。また、角速度概略検出値ωｓが所定の最小値ωmin以上であるときに検出値Ｖｍ，Ｉｍ，ωｓの取得される回数が所定値ｊａよりも少ないときには、直近のｊ回で得られた検出値Ｖｍ，Ｉｍ，ωｓから最小二乗法により求まる抵抗値Ｒ１および逆起電力定数ｋ１をそのまま使用するのではなく、それ以前にｊａ回以上の検出値の取得に基づくｊａ組の検出値Ｖｍ，Ｉｍ，ωｓから算出された抵抗値Ｒｎｅｗおよび逆起電力定数ｋｎｅｗをも考慮して、角速度推定値ωｅの算出に使用すべき抵抗値Ｒｎｅｗおよび逆起電力定数ｋｎｅｗが更新される（ステップＳ１３２）。また、これらの抵抗値Ｒｎｅｗ，Ｒ１および逆起電力定数ｋｎｅｗ，ｋ１の算出には、検出時点から時間制限値Ｔｌｉｍ以上の時間が経過した検出値Ｖｍ，Ｉｍ，ωｓは使用されないようになっている（ステップＳ１０８，Ｓ１１０，Ｓ１２２〜Ｓ１２６）。
【００９５】
したがって、上記の第１の角速度推定処理によれば、角速度概略検出値ωｓが所定の最小値ωmin以上であるときに、角速度推定値ωｅの算出に使用する抵抗値Ｒｎｅｗおよび逆起電力定数ｋｎｅｗとして安定した精度の高い値を高い頻度で算出することができる。このため、角速度推定値ωｅを算出するための抵抗値Ｒｎｅｗのみならず逆起電力定数ｋｎｅｗも、現実のモータ抵抗値Ｒおよび逆起電力定数ｋの変化に追随することができ、現実のモータ抵抗値Ｒおよび逆起電力定数ｋとの乖離が抑制される。その結果、角速度推定値ωｅをより精度良く算出することができる。これにより、モータ制御装置の制御性能が向上し、そのモータ制御装置を用いた電動パワーステアリング装置においてより良好な操舵感が得られる。
【００９６】
＜３．２．２  第２の角速度推定処理＞
上記第１の角速度推定処理では、角速度推定値ωｅの算出に使用される抵抗平均値Ｒｎｅｗおよび逆起電力定数ｋｎｅｗは、角速度概略検出値ωｓが所定値ωmin以上である場合には高い頻度で更新されるが、角速度概略検出値ωｓが所定値ωminよりも小さい場合すなわちモータ１が所定値よりも低い速度で回転しているか停止している場合（典型的には電動パワーステアリング装置が保舵状態にある場合）には更新されない。そこで、この点を改善すべく、保舵状態のときには、第１の実施形態における角速度推定処理（例えば図８に示す角速度推定処理）における抵抗値更新処理（ステップＳ１０〜Ｓ１６，Ｓ３０，Ｓ３２，Ｓ５０〜Ｓ５６，Ｓ６０，Ｓ６０）により抵抗値Ｒｎｅｗを更新し、操舵状態のときには、本実施形態における上記第１の角速度推定処理（図１１）におけるステップＳ１００〜Ｓ１１８，Ｓ１２２〜Ｓ１３２からなる処理（以下「パラメータ値更新処理」という）Ｓ２５０により抵抗値Ｒｎｅｗおよび逆起電力定数ｋｎｅｗを更新するという構成が考えられる。
【００９７】
図１２は、このような構成を具体化するための角速度推定処理を示すフローチャートである。以下、この角速度推定処理を本実施形態における角速度推定部５０をソフトウェア的に実現するための第２の角速度推定処理として説明する。この第２の角速度推定処理も制御周期毎に実行され（図３参照）、この第２の角速度推定処理においてマイコン１０は図１２のフローチャートに示すように動作する。
【００９８】
図１２を図８と比較すればわかるように、本実施形態の第２の角速度推定処理における保舵状態のときの処理は、図８の角速度推定処理における抵抗値更新処理（ステップＳ１０〜Ｓ１６，Ｓ３０，Ｓ３２，Ｓ５０〜Ｓ６２）と同じであるので、対応するステップには同一の番号を付して説明を省略する。
【００９９】
図８の角速度推定処理では、ステップＳ１０で保舵状態であると判定された場合（Ｙｅｓの場合）には、ステップＳ３０でフラグＦｈをリセットした後にそのままステップＳ５８（角速度推定値ωｅを算出するステップ）に進むが、本実施形態における図１２の角速度推定処理では、ステップＳ１０で保舵状態でないと判定された場合には、ステップＳ３０でフラグＦｈをリセットした後にパラメータ値操舵更新処理Ｓ２５０を実行し、その後にステップＳ１２０（角速度推定値ωｅを算出するステップ）へ進む。このパラメータ値操舵更新処理Ｓ２５０として、図１１の角速度推定処理において抵抗値Ｒｎｅｗおよび逆起電力定数ｋｎｅｗを更新するためのパラメータ値更新処理（図１１において点線で囲まれた部分の処理）Ｓ２５０が採用されている。なお、保舵状態であると判定された場合にも、抵抗値Ｒｎｅｗが更新されると（ステップＳ５４，Ｓ６２）、ステップＳ１２０へ進む。
【０１００】
ステップＳ１２０では、抵抗値Ｒ＝Ｒｎｅｗおよび逆起電力定数ｋ＝ｋｎｅｗと電流検出値Ｉ＝Ｉｍおよび電圧検出値Ｖ＝Ｖｍとを用いて式（２）により角速度推定値ωｅを算出する。この式（２）における抵抗値Ｒｎｅｗおよび逆起電力定数ｋｎｅｗとしては、保舵状態である場合には、ステップＳ５４またはＳ６２で更新された抵抗値Ｒｎｅｗが使用され、保舵状態でない場合には、通常、パラメータ値操舵更新処理Ｓ２５０内で更新された抵抗値Ｒｎｅｗおよび逆起電力定数ｋｎｅｗが使用される（図１１のステップＳ１１４，Ｓ１３２参照）。
【０１０１】
このような図１２に示す角速度推定処理（第２の角速度推定処理）によれば、保舵状態か操舵状態かに拘わらず、角速度推定値ωｅの算出に使用する抵抗値Ｒｎｅｗとして安定した精度の高い値を高頻度で算出することができる。また、操舵状態のときには、角速度推定値ωｅの算出に使用する逆起電力定数ｋｎｅｗとして安定した精度の高い値を高頻度で算出することができる。このため、角速度推定値ωｅを算出するための抵抗値Ｒｎｅｗの更新は、現実のモータ抵抗値Ｒの変化によりよく追随することができ、現実のモータ抵抗値Ｒおよび逆起電力定数ｋとの乖離が更に抑制される。その結果、角速度推定値ωｅを精度良く算出することができる。これにより、モータ制御装置の制御性能が更に向上し、そのモータ制御装置を用いた電動パワーステアリング装置においてより良好な操舵感が得られる。
【０１０２】
＜３．２．３  第３の角速度推定処理＞
上記第１の角速度推定処理（図１１）では、検出値Ｖｍ，Ｉｍ，ωｓの取得個数が少ないときであっても、角速度推定値ωｅの算出に使用する抵抗値Ｒｎｅｗおよび逆起電力定数ｋｎｅｗを高い頻度で更新することができるが（ステップＳ１２８〜Ｓ１３２）、この更新頻度を多少下げることによって角速度推定処理を簡略化することができる。図１３は、このような角速度推定処理（以下「第３の角速度推定処理」という）を示すフローチャートである。
【０１０３】
図１３を図１１と比較すればわかるように、図１３の角速度推定処理（第３の角速度推定処理）に含まれるステップのうち、図１１の角速度推定処理に含まれるステップと同じものについては同一の番号が付されており、図１１の角速度推定処理におけるステップＳ１０６〜Ｓ１１８，Ｓ１２２〜Ｓ１３２が、図１３の角速度推定処理ではステップＳ１４０〜Ｓ１４８に変更されている。
【０１０４】
このような図１３の角速度推定処理によれば、検出値Ｖｍ，Ｉｍ，ωｓがｊａ回取得される毎に、その取得されたｊａ組の検出値Ｖｍ（ｉ），Ｉｍ（ｉ），ω（ｉ）（ｉ＝１〜ｊａ）を用いて式（１２）により算出されるφをφ＝（Ｒｎｅｗ  ｋｎｅｗ）とすることで、抵抗値Ｒｎｅｗおよび逆起電力定数ｋｎｅｗが更新される（ステップＳ１４０〜Ｓ１４８）。ただし、そのｊａ組のうち１組目の検出値Ｖｍ（１），Ｉｍ（１），ω（１）の検出時点からの経過時間が時間制限値Ｔｌｉｍを越える場合には、そのｊａ組のＶｍ（ｉ），Ｉｍ（ｉ），ω（ｉ）（ｉ＝１〜ｊａ）は、抵抗値Ｒｎｅｗおよび逆起電力定数ｋｎｅｗの更新には使用されず（ステップＳ１０３，Ｓ１４６）、その後に取得されるｊａ組の検出値Ｖｍ（ｉ），Ｉｍ（ｉ），ω（ｉ）（ｉ＝１〜ｊａ）を用いて抵抗値Ｒｎｅｗおよび逆起電力定数ｋｎｅｗが更新される（ステップＳ１４８）。このような角速度推定処理によっても、角速度概略検出値ωｓが所定の最小値ωmin以上であるときに、角速度推定値ωｅの算出に使用する抵抗値Ｒｎｅｗおよび逆起電力定数ｋｎｅｗが所定の頻度で更新されるので、現実のモータ抵抗値Ｒや逆起電力定数ｋが変化しても、角速度推定値ωｅを精度良く算出することができる。その結果、モータ制御装置の制御性能が向上し、そのモータ制御装置を用いた電動パワーステアリング装置において良好な操舵感が得られる。
【０１０５】
＜４．第３の実施形態＞
＜４．１  モータ制御装置の構成＞
本発明の第３の実施形態に係るモータ制御装置も、上記第１の実施形態と同様、図１に示すように電動パワーステアリング装置において使用され、ＥＣＵ５を用いて構成されており、ブラシ付きモータ１を駆動する。また、このモータ制御装置の構成は、回転センサ７に代えて舵角センサ７ｈが設けられる点と角速度推定部５０の構成を除き、上記第１の実施形態と基本的には同様であって、図２に示す通りである。ただし、図２において点線で示される各部の温度センサ４１，４２，４３は本実施形態においても使用されない。
【０１０６】
以下、本実施形態における角速度推定部５０の構成について説明する。図１４は、本実施形態における角速度推定部５０の機能的構成を示すブロック図である。この角速度推定部５０は、角度変化検出部７１と抵抗算出部７２と角速度推定値算出部６６とを備えており、角速度推定部５０には、舵角センサ７ｈからの出力信号に基づき取得されるモータ１の回転角θｓが入力される。角度変化検出部７１と抵抗算出部７２とは抵抗値更新部２００を構成する。なお、本実施形態のように舵角センサ７ｈ（またはモータ１の角速度を低分解能で検出する簡易角度センサ）を用いてモータ１の回転角を検出するという構成によれば、十分に低いコストでモータ１の角度検出手段（簡易角度検出手段）を実現することができる。この場合、この簡易角速度検出手段の分解能は、モータ１の駆動制御に必要な精度で角速度が得られるような分解能である必要はないので、その駆動制御に必要な精度で角速度を検出するセンサを使用する場合に比べ低いコストで精度のよい角速度推定値を算出することができる。
【０１０７】
舵角センサ７ｈにより得られる操舵角θｈに基づきモータ１の（ロータの）回転角θｓを算出することができるが、舵角センサ７ｈはモータ１の回転角を直接に検出するセンサに比べて分解能が低い。しかし、舵角センサ７ｈからの出力信号が変化したタイミングであれば、その出力信号に基づき得られる回転角θｓは実際の回転角に対応していると見なすことができる。そこで、本実施形態の角速度推定部５０では、角度変化検出部７１が、舵角センサ７ｈの出力信号に基づき取得される回転角θｓが変化したか否かを判定し、その判定結果を示す信号を角度変化検出信号Ｓｃとして出力する。
【０１０８】
抵抗算出部７２は、この角度変化検出信号Ｓｃに基づき、回転角θｓが変化したときに、その回転角θｓを第１回転角θ１として設定し、その後、制御周期毎に得られる電流および電圧の検出値Ｖｍ，Ｉｍを蓄積していく。そして抵抗算出部７２は、この角度変化検出信号Ｓｃに基づき、その後に回転角θｓが変化したときに、その回転角θｓを第２回転角θ２として設定し、第１および第２回転角θ１，θ２と、第１回転角θ１の検出時点から第２回転角θ２の検出時点までに蓄積された電流および電圧の検出値Ｖｍ，Ｉｍとに基づき、モータ１の抵抗値Ｒｎｅｗを算出する。以後、回転角θｓの変化が検出される毎に、その時点以前に設定された第１回転角θ１とその時点での回転角θｓである第２回転角θ２と、第１および第２回転角θ１，θ２の検出時点間での電流および電圧の検出値Ｖｍ，Ｉｍに基づき、モータ１の抵抗値Ｒｎｅｗを算出する。
【０１０９】
角速度推定値算出部６６は、このようにして算出される抵抗値Ｒｎｅｗと共に各時点の電流および電圧の検出値Ｉｍ，Ｖｍを用いて角速度推定値ωｅを算出する。なお本実施形態では、舵角センサ７ｈの出力信号に基づき取得されるモータ１の回転角θｓが角速度推定部５０に入力されるものとしているが（図１４）、舵角センサ７ｈの出力信号が示す操舵角θｈを角速度推定部５０が受け取り、角速度推定値算出部６６において当該操舵角θｈと減速機２の減速比を用いて角速度推定値ωｅを算出するように構成されていてもよい。
【０１１０】
＜４．２  角速度推定処理の具体例＞
以下、本実施形態における角速度推定部５０をソフトウェア的に実現するための角速度推定処理（図３のステップＳ４）につき具体例を説明する。本実施形態では、図３のステップＳ２において、モータ１の逆起電力定数ｋおよび後述の所定値ｊａ，ｊｍａｘに対し実験等に基づく適切な値が設定され、モータ１の抵抗値Ｒｏｌｄ，Ｒｎｅｗにも初期値として実験等に基づく適切な値が設定され、抵抗値Ｒｎｅｗを新たに算出するのに使用される電圧検出値Ｖｍおよび電流検出値Ｉｍの取得個数を示す変数ｊ、および、回転角θｓが最初に変化したときにセットされるフラグＦｓが０に初期化される。また、図３のステップＳ３では、各センサ３，４，７ｈおよび検出回路２４，２５からの出力信号に基づき制御周期毎に操舵トルクＴｓ，車速Ｓ，操舵角θｈ、電圧検出値Ｖｍ、電流検出値Ｉｍが取得される。なお本実施形態では、舵角センサ７ｈが必要になるが、モータ１の回転角を直接に検出する回転センサに比べ舵角センサのコストは格段に低い。
【０１１１】
＜４．２．１  第１の角速度推定処理＞
図１５は、本実施形態における角速度推定処理Ｓ４の一例である第１の角速度推定処理の詳細を示すフローチャートである。本実施形態における第１の角速度推定処理も制御周期毎に実行され（図３参照）、この第１の角速度推定処理においてマイコン１０は下記のように動作する。
【０１１２】
まず、舵角センサ７ｈからの出力信号に基づきモータ１の回転角θｓが変化したか否かを判定する（ステップＳ１５０）。この判定の結果、回転角θｓが変化した場合には新たな回転角θｓが検出されたとしてステップＳ１５２へ進み、回転角θｓが変化しない場合にはステップＳ１７２へ進む。
【０１１３】
ステップＳ１５２では、新たな抵抗値Ｒｎｅｗの算出に使用される電流検出値および電圧検出値Ｖｍ，Ｉｍの取得個数を示す変数ｊが０か否かを判定する。この判定の結果、変数ｊが０である場合には、ステップＳ１５３において現時点の回転角（新たに検出された回転角）θｓを第１回転角θ１として設定すると共に（θ１＝θｓ）フラグＦｓをセットし（Ｆｓ＝１）、その後にステップＳ１５４へ進み、変数ｊが０でない場合にはそのままステップＳ１５４へ進む。
【０１１４】
ステップＳ１５４では、変数ｊを１だけ増加させ、その後、現時点の電流検出値Ｉｍおよび電圧検出値ＶｍをそれぞれＩ（ｊ）およびＶ（ｊ）とおき（ステップＳ１５６）、現時点の回転角θｓを第２回転角θ２として設定する（ステップＳ１５８）。
【０１１５】
その後、ステップＳ１６０において、変数ｊが所定値ｊａ以上か否かを判定する（ｊａは正の整数であって例えば５０）。ここで所定値ｊａは、抵抗値Ｒｎｅｗを新たに算出するのに必要な電流および電圧の検出回数であり、予め図３のステップＳ２において実験等に基づく適切な値が設定されている。ステップＳ１６０での判定の結果、変数ｊが所定値ｊａ以上であればステップＳ１６２へ進み、変数ｊが所定値ｊａよりも小さければステップＳ１７８へ進む。最初にステップＳ１６０が実行される時点では、ｊ＝１であるので、ステップＳ１７８へ進むが、この図１５の角速度推定処理（第１の角速度推定処理）が繰り返し実行されて、ｊａ個以上の電流検出値Ｉ（ｉ）および電圧検出値Ｖ（ｉ）（ｉ＝１〜ｊ、ｊ≧ｊａ）が取得され、かつ、回転角θｓが変化したときには、ステップＳ１６２へ進む。
【０１１６】
ステップＳ１６２では、第１および第２回転角θ１，θ２と、電流検出値Ｉ（ｉ）および電圧検出値Ｖ（ｉ）（ｉ＝１〜ｊ）から下記のようにして抵抗値Ｒｎｅｗを算出する。
【０１１７】
式（２）においてＶ＝Ｖ（ｔ）、Ｉ＝Ｉ（ｔ）として両辺を時間積分すると、下記の式が得られる（この時間積分の期間では抵抗値Ｒは変化しないものとみなす）。
θ(ｔ)＝（１／ｋ）∫Ｖ(ｔ)ｄｔ−（Ｒ／ｋ）∫Ｉ(ｔ)ｄｔ    …（１７）
ここで、θ（ｔ）＝∫ωｄｔである。上記式（１７）より、次式によりモータ抵抗値Ｒを求めることができる。
Ｒ＝｛∫Ｖ(ｔ)ｄｔ−θ(ｔ)・ｋ｝／∫Ｉ(ｔ)ｄｔ            …（１８）
いま、第１および第２回転角θ１，θ２の検出時点をそれぞれｔ１，ｔ２とすると、式（１８）より、角速度推定値ωｅの算出に使用する新たな抵抗値Ｒｎｅｗを下記式により求めることができる。
Ｒnew＝｛Tc・Σ(i=1,j)Ｖ(i)−(θ2−θ1)・k｝/｛Tc・Σ(i=1,j)Ｉ(i)｝…（１９）
ここで、Ｔｃは制御周期（電流Ｉｍおよび電圧Ｖｍの検出間隔）であり、
Σ(i=1,j)Ｖ(i)＝Ｖ(1)＋Ｖ(2)＋…＋Ｖ(j)、
Σ(i=1,j)Ｉ(i)＝Ｉ(1)＋Ｉ(2)＋…＋Ｉ(j)
である。
【０１１８】
そこでステップＳ１６２では、第１および第２回転角θ１，θ２と電流検出値Ｉ（ｉ）および電圧検出値Ｖ（ｉ）（ｉ＝１〜ｊ）とを用いて、上記式（１９）により、抵抗値Ｒｎｅｗを算出する。
【０１１９】
このようにして新たな抵抗値Ｒｎｅｗが求まると、その後、この抵抗値ＲｎｅｗをＲｏｌｄとおき（ステップＳ１６４）、変数ｊが所定値ｊｍａｘを越えているか否かを判定する（ステップＳ１６６）。ここで所定値ｊｍａｘは、上記所定値ｊａよりも大きい値であって、検出時点から長期間経過した検出値Ｉｍ，Ｖｍを抵抗値Ｒｎｅｗの算出に使用するのを回避するために導入されたものである。このステップＳ１６６での判定の結果、変数ｊが所定値ｊｍａｘを越えている場合（Ｙｅｓの場合）には、現時点以降に検出される電流検出値Ｉｍおよび電圧検出値Ｖｍを用いて次の新たな抵抗値Ｒｎｅｗを算出すべく、現時点の回転角θｓを第１回転角θ１として設定し直すと共に、現時点の電流検出値Ｉｍおよび電圧検出値ＶｍをそれぞれＩ（１）およびＶ（１）とおき（ステップＳ１６８）、その後にステップＳ１７０へ進む。一方、その判定の結果、変数ｊが所定値ｊｍａｘ以下である場合（Ｎｏの場合）にはそのままステップＳ１７０へ進む。
【０１２０】
ステップＳ１６０での判定の結果、ステップＳ１７８へ進んだ場合（ステップＳ１６０でＮｏの場合）には、変数ｊが２以上か否かを判定する。その判定の結果、変数ｊが２よりも小さい場合には、後述のステップＳ１８０において抵抗値Ｒ１を算出できないので、角速度推定値ωｅの算出に使用する抵抗値Ｒｎｅｗを更新することなくステップＳ１７０へ進む。一方、その判定の結果、変数ｊが２以上であればステップＳ１８０へ進む。
【０１２１】
ステップＳ１８０では、第１および第２回転角θ１，θ２と、電流検出値Ｉ（ｉ）および電圧検出値Ｖ（ｉ）（ｉ＝１〜ｊ）とから、式（１９）と同様の下記式（２０）により抵抗値Ｒ１を算出する。
Ｒ１＝｛Tc・Σ(i=1,j)Ｖ(i)−(θ2−θ1)・k｝/｛Tc・Σ(i=1,j)Ｉ(i)｝…（２０）
この時点での変数ｊは、２以上でｊａよりも小さい整数であり(ステップＳ１６０参照）、変数ｊが小さい場合には、抵抗値Ｒ１がばらついて安定に算出されないので、すなわち抵抗値Ｒ１に含まれるノイズが比較的大きいので、抵抗値Ｒ１をそのまま角速度推定値ωｅの算出に使用するのは好ましくない。そこで、角速度推定値ωｅの算出に使用すべき抵抗値Ｒｎｅｗを、抵抗値ＲｏｌｄとＲ１との加重平均を示す下記式（２１）により算出する（ステップＳ１８２）。
Ｒｎｅｗ＝｛（１−ｆ(ｊ)）・Ｒｏｌｄ＋ｆ(ｊ)・Ｒ１｝  …（２１）
ここで、ｆ(ｊ)は、ｊ＝０のとき０となりｊ＝ｊａとき１となる、変数ｊの単調増加関数であり、例えば関数ｆ(ｊ)＝ｊ／ｊａまたはｆ(ｊ)＝ｊ2／ｊａ2を使用することができる。上記式（２１）は、新たな更新パラメータ値としての抵抗値Ｒｎｅｗを求めるための電流検出値Ｉｍおよび電圧検出値Ｖｍの取得個数に応じた、抵抗値ＲｏｌｄとＲ１との加重平均を示している。この式（２１）により抵抗値Ｒｎｅｗが得られると、ステップＳ１７０へ進む。
【０１２２】
ステップＳ１５０での判定の結果、回転角θｓが変化していない場合（ステップＳ１５０でＮｏの場合）には、ステップＳ１７２へ進み、フラグＦｓがセットされているか否かを判定する。この判定の結果、フラグＦｓがセットされていない場合（Ｆｓ＝０の場合）、回転角θｓの変化が未だ検出されていないので、そのままステップＳ１７０へ進む。一方、この判定の結果、フラグＦｓがセットされている場合（Ｆｓ＝１の場合）には、ステップＳ１７４へ進み、変数ｊを１だけ増加させ、現時点の電流検出値Ｉｍおよび電圧検出値ＶｍをそれぞれＩ（ｊ）およびＶ（ｊ）とおく（ステップＳ１７６）。これにより、回転角θｓの変化が検出されてその回転角θｓが第１回転角θ１として設定された後は、回転角θｓが変化しない制御周期においても電流検出値Ｉｍおよび電圧検出値ＶｍがＩ（ｊ）およびＶ（ｊ）として蓄積される。ステップＳ１７６の実行後は、ステップＳ１７０へ進む。
【０１２３】
ステップＳ１７０では、抵抗値Ｒ＝Ｒｎｅｗと電流検出値Ｉ＝Ｉｍと電圧検出値Ｖ＝Ｖｍを用いて式（２）により角速度推定値ωｅを算出する。この角速度推定値ωｅの算出には、上記のステップＳ１６２またはＳ１８２が実行された場合、そこで算出された抵抗値Ｒｎｅｗが使用されるが、上記のステップＳ１６２とＳ１８２のいずれもが実行されない場合には、今回の制御周期よりも前に設定された抵抗値Ｒｎｅｗが使用される。ステップＳ１７０で角速度推定値ωｅが算出されると、１つの制御周期での角速度推定処理を終了し、図３に示すモータ制御処理のルーチンに戻る。
【０１２４】
このような第１の角速度推定処理によれば、舵角センサ７ｈからの出力信号に基づき回転角θｓの変化が検出される毎に、電流検出値Ｉ（ｉ）および電圧検出値Ｖ（ｉ）の積算値に基づき、式（１９）または（２０）と（２１）により抵抗値Ｒｎｅｗが新たに算出される（ステップＳ１５０，Ｓ１６２，Ｓ１８０，Ｓ１８２）。このとき、第１回転角θ１の取得時点以降での電流検出値Ｉｍおよび電圧検出値Ｖｍの取得個数が少ない場合であっても、その前に得られた抵抗値Ｒｎｅｗも用いて式（２１）により新たな抵抗値Ｒｎｅｗが算出される（ステップＳ１８２）。したがって、ばらつきの少ない安定した角速度推定値ωｅを高い頻度で取得することができる。このため、角速度推定値ωｅの算出に使用される抵抗値Ｒｎｅｗは、現実のモータ抵抗値Ｒの変化に追随することができ、温度変化等によって角速度推定値ωｅの算出が影響されない。その結果、モータ１のブラシと整流子の間の接触状態や温度等が変化しても、実際のモータ抵抗値に比べ誤差の少ない抵抗Ｒｎｅｗを用いて角速度推定値ωｅを精度良く算出することができる。これにより、モータ制御装置の制御性能が向上し、そのモータ制御装置を用いた電動パワーステアリング装置において良好な操舵感が得られる。なお、上記のような角速度推定処理を含む本実施形態は、舵角センサからの出力信号を微分して角速度を求める従来の技術に比べ、高い分解能のセンサを必要としないので、コスト面でも有利である。
【０１２５】
＜４．２．２  第２の角速度推定処理＞
上記第１の角速度推定処理（図１５）では、第１回転角θ１の取得時点以降での電流検出値Ｉｍおよび電圧検出値Ｖｍの取得個数が少ないときであっても、角速度推定値ωｅの算出に使用する抵抗値Ｒｎｅｗを高い頻度で更新することが可能であるが（ステップＳ１７８〜Ｓ１８２）、この更新頻度を多少下げることによって角速度推定処理を簡略化することができる。図１６は、このような角速度推定処理（以下「第２の角速度推定処理」という）を示すフローチャートである。
【０１２６】
図１６を図１５と比較すればわかるように、図１６の角速度推定処理に含まれるステップのうち、図１５の角速度推定処理に含まれるステップと同じものについては同一の番号が付されている。そして、図１５の角速度推定処理におけるステップＳ１６４，Ｓ１６６，Ｓ１７８〜Ｓ１８２が図１６の角速度推定処理において削除されており、図１６の角速度推定処理では、ステップＳ１６０において変数ｊが所定値ｊａよりも小さいと判定された場合（Ｎｏの場合）には、角速度推定値ωｅの算出に使用する抵抗値Ｒｎｅｗを更新することなくステップＳ１７０へ進む。
【０１２７】
このような図１６の角速度推定処理によれば、検出値Ｖｍ，Ｉｍがｊａ回以上取得され且つ回転角θｓの変化が検出される毎に、取得された検出値Ｉ（ｉ），Ｖ（ｉ）（ｉ＝１〜ｊ）を用いて式（１９）により抵抗値Ｒｎｅｗが算出されることで（ステップＳ１６２）、角速度推定値ωｅの算出に使用する抵抗値Ｒｎｅｗが更新される。これにより、ばらつきの少ない安定した角速度推定値ωｅ、すなわち検出値に含まれるノイズの影響が抑制された角速度推定値ωｅを高い頻度で取得することができる。その結果、モータ１のブラシと整流子の間の接触状態や温度等が変化しても、実際のモータ抵抗値に比べ誤差の少ない抵抗Ｒｎｅｗを用いて角速度推定値ωｅを精度良く算出することができる。
【０１２８】
＜５．第４の実施形態＞
＜５．１  モータ制御装置の構成＞
本発明の第４の実施形態に係るモータ制御装置も、上記第１の実施形態と同様、図１に示すように電動パワーステアリング装置において使用され、ＥＣＵ５を用いて構成されており、ブラシ付きモータ１を駆動する。また、このモータ制御装置の構成は、回転センサ７に代えて舵角センサ７ｈが設けられる点と角速度推定部５０の構成を除き、上記第１の実施形態と基本的には同様であって、図２に示す通りである。ただし、図２において点線で示される各部の温度センサ４１，４２，４３は本実施形態においても使用されない。なお本実施形態では、角速度推定値ωｅの算出において、舵角センサ７ｈの出力信号が示す操舵角θｈがそのまま使用されるのではなく、当該操舵角θｈを微分することにより得られる操舵角速度ωｈが使用される。このため、舵角センサ７ｈに代えて、操舵角速度センサまたはモータの角速度を簡易に検出する低コストの角速度センサを使用してもよい（図１、図１０参照）。
【０１２９】
図１７は、本実施形態における角速度推定部５０の機能的構成を示すブロック図である。この角速度推定部５０は、抵抗値更新部２００と逆起電力定数更新部３００と角速度推定値算出部６６とを備えている。
【０１３０】
抵抗値更新部２００は、図８の角速度推定処理（第１の実施形態における第１の角速度推定処理）のうち角速度推定値ωｅの算出に使用する抵抗値Ｒｎｅｗを更新するための処理（図８において点線で囲まれた部分に相当する抵抗値更新処理）によってソフトウェア的に実現される。したがって、抵抗値更新部２００は、機能的には、図５に示す角速度推定部５０に含まれる保舵判定部５１と抵抗算出部５２と平均値算出部５３とから構成される。ただし本実施形態では、保舵判定部５１による保舵状態か否かの判定（ステップＳ１０）は、回転センサ７からのパルス信号Ｐではなく舵角センサ（または操舵角速度センサ）７ｈからの出力信号に基づき得られる操舵角速度ωｈを用いて行われる。なお、このような構成に代えて、本発明の各実施形態における他の角速度推定処理のうち角速度推定値ωｅの算出に使用する抵抗値Ｒｎｅｗを更新するための処理によって上記抵抗値更新部２００を実現してもよい。
【０１３１】
逆起電力定数更新部３００は、図１７に示すように、速度判定部８１と逆起電力定数算出部８２と平均値算出部８３とを含んでいる。
【０１３２】
角速度推定部５０では、舵角センサ（または操舵角速度センサ）７ｈからの出力信号に基づき得られる操舵角速度ωｈが入力される。舵角センサ７ｈの検出精度は、モータ１の回転速度が高いほど高いことから、速度判定部８１は、この操舵角速度ωｈが所定の最小値ωhmin以上か否かを判定し、その判定結果を示す信号を回転状態信号Ｓｐとして出力する。逆起電力定数算出部８２は、この回転状態信号Ｓｐに基づき、モータ１が当該最小値ωhminに対応する所定速度以上で回転している場合に、操舵角速度ωｈと電流検出値Ｉｍおよび電圧検出値Ｖｍとを用いて逆起電力定数ｋを制御周期毎に算出する。平均値算出部８３は、このようにして制御周期毎に順次得られる逆起電力定数ｋについて平均化処理を施すことにより逆起電力定数平均値ｋｎｅｗを求める。角速度推定値算出部６６は、上記の抵抗値Ｒｎｅｗと逆起電力定数平均値ｋｎｅｗと電流検出値Ｉｍおよび電圧検出値Ｖｍとを用いて角速度推定値ωｅを算出する。
【０１３３】
＜５．２  角速度推定処理の具体例＞
以下、本実施形態における角速度推定部５０をソフトウェア的に実現するための角速度推定処理（図３のステップＳ４）につき具体例を説明する。
【０１３４】
図１８は、本実施形態における角速度推定処理Ｓ４の一例を示すフローチャートである。図１８の角速度推定処理では、まず、抵抗値更新部２００をソフトウェア的に実現すべく、現時点までに取得された電流検出値Ｉｍおよび電圧検出値Ｖｍ等を用いて角速度推定値ωｅの算出のための抵抗値Ｒｎｅｗを新たに算出するために抵抗値更新処理Ｓ２００を実行する。本実施形態では、この抵抗値更新処理Ｓ２００として、既述のように、図８の角速度推定処理に含まれる既述の抵抗値更新処理（図８において点線で囲まれた部分のステップからなる処理）が利用される。この抵抗値更新処理Ｓ２００の実行後に、角速度推定値ωｅの算出のための逆起電力定数ｋｎｅｗを新たに算出するために逆起電力定数更新処理Ｓ３００を実行する。
【０１３５】
本実施形態における角速度推定処理（図１８）において、これらの抵抗値更新処理Ｓ２００と逆起電力定数更新処理Ｓ３００との実行順序を逆にし、逆起電力定数更新処理Ｓ３００を実行した後に抵抗値更新処理Ｓ２００を実行するようにしてもよい。抵抗値更新処理Ｓ２００の詳細については既述の説明から明らかであるので、以下では逆起電力定数更新処理Ｓ３００の詳細について説明する。なお、逆起電力定数更新処理Ｓ３００では、操舵角速度に関して予め決められた最小値ωhminや、減速機２（図１参照）の減速比Ｃｇが使用されるが、これらには実験等に基づく適切な値が図３のステップＳ２において設定されているものとする。また、逆起電力定数更新処理Ｓ３００で使用される変数Ｃｋも図３のステップＳ２で初期化されているものとする。
【０１３６】
逆起電力定数更新処理Ｓ３００では、まず、舵角センサ７ｈからの出力信号に基づき得られる操舵角速度ωｈが所定の最小値ωhmin以上であるか否かを判定する（ステップＳ２０２）。この判定の結果、操舵角速度ωｈが当該最小値ωhmin以上である場合（Ｙｅｓの場合）にはステップＳ２０４へ進み、操舵角速度ωｈが当該最小値ωhminよりも小さい場合（Ｎｏの場合）には、角速度推定値ωｅの算出に使用する逆起電力定数ｋｎｅｗを更新するための処理を実行することなくステップＳ２２０へ進む。
【０１３７】
ステップＳ２０４では、逆起電力定数ｋｎｅｗを新たに算出するのに使用される電圧検出値Ｖｍおよび電流検出値Ｉｍの取得個数を示す変数Ｃｋが０か否かを判定する。その判定の結果、変数Ｃｋが０であればステップＳ２２２へ進み、変数Ｃｋが０でなければステップＳ２０６へ進む。マイコン１０はタイマーを内蔵しており、ステップＳ２２２では、このタイマーをスタートさせる。これにより、このタイマーのスタートからの経過時間Ｔｋｅｌｐが０に初期化される。その後、ステップＳ２０６へ進む。
【０１３８】
ステップＳ２０６では、上記経過時間Ｔｋｅｌｐが時間制限値Ｔｌｉｍ以下であるか否かを判定する。この判定の結果、上記経過時間Ｔｋｅｌｐが時間制限値Ｔｌｉｍ以下である場合（Ｙｅｓの場合）には、変数Ｃｋを１だけ増加させ（ステップＳ２０８）、ステップＳ２１０へ進む。一方、上記経過時間Ｔｋｅｌｐが時間制限値Ｔｌｉｍを越える場合（Ｎｏの場合）には、変数Ｃｋを０に初期化し（ステップＳ２２４）、逆起電力定数ｋｎｅｗを更新するための処理を行わずにステップＳ２２０へ進む。これにより、逆起電力定数ｋｎｅｗの更新に古い検出値Ｉｍ．Ｖｍが使用されるのが回避される。
【０１３９】
ステップＳ２１０では、上記の操舵角速度ωｈと、上記の抵抗値更新処理Ｓ２００で得られた更新抵抗値Ｒｎｅｗと、減速機２の減速比Ｃｇと、電流検出値Ｉｍおよび電圧検出値Ｖｍとを用いて、下記式（２２）により逆起電力定数ｋを算出する（以下、この逆起電力定数ｋを「算出逆起電力定数ｋ」ともいう）。なお、減速比Ｃｇは減速機２における原軸の回転速度に対する従軸の回転速度の比（例えば１／１５）である。また、逆起電力定数更新処理Ｓ３００が抵抗値更新処理Ｓ２００よりも先に実行される構成の場合には、以前に角速度推定処理が実行されたときに算出された抵抗値Ｒｎｅｗまたは図３のステップＳ２で設定された抵抗値Ｒｎｅｗが下記式（２２）の抵抗値Ｒｎｅｗとして使用される。
ｋ＝（Ｖｍ−Ｉｍ・Ｒｎｅｗ）／（ωｈ／Ｃｇ）    …（２２）
【０１４０】
本実施形態では、マイコン１０内のメモリを用いてソフトウェア的にＦＩＦＯメモリが実現されており、上記のようにしてステップＳ２１０で逆起電力定数ｋが新たに算出されると、その逆起電力定数ｋがＦＩＦＯメモリに格納される（ステップＳ２１２）。このＦＩＦＯメモリは、サイズが所定値Ｃｋａ（例えば５０）の先入れ先出し方式のメモリであって、Ｃｋａ個の逆起電力定数ｋが格納されている状態において更に１個の新たな逆起電力定数ｋが格納されると、最初に格納されたＦＩＦＯメモリ内の逆起電力定数ｋが廃棄される。このため、このＦＩＦＯメモリにＣｋａ回以上逆起電力定数ｋが格納された場合には、直近のＣｋａ回で格納されたＣｋａ個の逆起電力定数ｋのみがそのＦＩＦＯメモリに存在する。
【０１４１】
新たに算出された逆起電力定数ｋが上記ＦＩＦＯメモリに格納された後は、変数Ｃｋが所定値Ｃｋａ以上であるか否かを判定する（ステップＳ２１４）。この判定の結果、変数Ｃｋが所定Ｃｋａに達している場合（Ｙｅｓの場合）にはステップＳ２１６へ進み、所定Ｃｋａに達していない場合（Ｎｏの場合）にはステップＳ２２６へ進む。最初にステップＳ２１４が実行される時点では、Ｃｋ＝１であるので、ステップＳ２２６へ進むが、この図１８の角速度推定処理が繰り返し実行されて、逆起電力定数ｋの算出回数がＣｋａ回以上になると、ステップＳ２１６へ進む。
【０１４２】
ステップＳ２１６へ進んだときには、その時点での直近のＣｋａ回で算出されたＣｋａ個の逆起電力定数ｋがＦＩＦＯメモリに存在し、これらＣｋａ個の逆起電力定数ｋの平均値を新たな逆起電力定数ｋｎｅｗとして求める。これは、制御周期毎に順次得られる逆起電力定数ｋについて移動平均化処理を施すことにより新たな逆起電力定数ｋｎｅｗを得ることを意味する。その後、この新たな逆起電力定数ｋｎｅｗをｋｏｌｄとおいて（ステップＳ２１８）、ステップＳ２２０へ進む。
【０１４３】
ステップＳ２２６へ進んだときには、その時点での直近のＣｋ回で算出されたＣｋ個の逆起電力定数ｋがＦＩＦＯメモリに存在し、これらＣｋ個の逆起電力定数ｋの平均値ｋ１求める。ここでＣｋは、１以上でＣｋａよりも小さい整数であり、Ｃｋが小さい場合には、この平均値ｋ１は安定した値ではなくばらつきがあるので、すなわち平均値ｋ１に含まれるノイズが比較的大きいので、そのまま角速度推定値ωｅの算出に使用するのは好ましくない。そこで、逆起電力定数ｋｏｌｄとｋ１との加重平均を示す下記式（２３）により新たな逆起電力定数ｋｎｅｗを求める（ステップＳ２２８）。
ｋｎｅｗ＝｛（１−ｆ(Ｃｋ)）・ｋｏｌｄ＋ｆ(Ｃｋ)・ｋ１｝  …（２３）
ここで、ｆ(Ｃｋ)は、Ｃｋ＝０のとき０となりＣｋ＝Ｃｋａのとき１となる、変数Ｃｋの単調増加関数であり、例えば関数ｆ(Ｃｋ)＝Ｃｋ／Ｃｋａまたはｆ(Ｃｋ)＝Ｃｋ2／Ｃｋａ2を使用することができる。上記式（２３）は、新たな更新パラメータ値としての逆起電力定数ｋｎｅｗを求めるための電流検出値Ｉｍおよび電圧検出値Ｖｍの取得個数（これは算出逆起電力定数ｋの取得個数に等しい）に応じた、逆起電力定数ｋｏｌｄとｋ１との加重平均を示している。この式（２３）により新たな逆起電力定数ｋｎｅｗが得られると、ステップＳ２２０へ進む。
【０１４４】
ステップＳ２２０では、電流検出値Ｉ＝Ｉｍおよび電圧検出値Ｖ＝Ｖｍと共に抵抗値Ｒ＝Ｒｎｅｗおよび逆起電力定数ｋ＝ｋｎｅｗを用いて式（２）により角速度推定値ωｅを算出する。この角速度推定値ωｅの算出には、上記のステップＳ２１６またはＳ２２８が実行された場合、そこで算出された逆起電力定数ｋｎｅｗが使用されるが、上記のステップＳ２１６とＳ２２８のいずれもが実行されない場合には、今回の制御周期よりも前に設定された逆起電力定数ｋｎｅｗが使用される。ステップＳ２２０で角速度推定値ωｅが算出されると、１つの制御周期での角速度推定処理を終了し、図３に示すモータ制御処理のルーチンに戻る。
【０１４５】
＜５．３  効果＞
上記のような本実施形態によれば、角速度推定値ωｅの算出に使用されるパラメータ値のうち抵抗値Ｒｎｅｗだけでなく逆起電力定数ｋｎｅｗも更新され、しかも、操舵角速度ωｈが所定の最小値ωｈmin以上であるときに制御周期毎に逆起電力定数ｋｎｅｗが更新される。また、この逆起電力定数ｋｎｅｗは、電流および電圧の複数回の検出により取得される複数個の検出値Ｉｍ．Ｖｍから式（２２）により算出される逆起電力定数ｋに対して平均化処理を施すことにより得られるので（ステップＳ２１６，Ｓ２２６，Ｓ２２８）、式（２２）により算出される逆起電力定数ｋに含まれるノイズの影響が抑制され、ばらつきのない安定した逆起電力定数ｋｎｅｗを用いて角速度推定値ωｅが算出される。このため、モータ１における現実の逆起電力定数が変化しても、高い精度で角速度推定値ωｅを算出することができる。その結果、モータ制御装置の制御性能が向上し、そのモータ制御装置を用いた電動パワーステアリング装置において良好な操舵感が得られる。なお、図１８の角速度推定処理では、変数Ｃｋが所定値Ｃｋａに達する毎に逆起電力定数ｋの算出値についての移動平均処理が行われるが（ステップＳ２１６）、これに代えて逆起電力定数ｋの算出値につき所定個数ずつ単純な平均化処理を行うようにしてもよい。
【０１４６】
＜６．第５の実施形態＞
＜６．１  モータ制御装置の構成＞
本発明の第５の実施形態に係るモータ制御装置も、上記第１の実施形態と同様、図１に示すように電動パワーステアリング装置において使用され、ＥＣＵ５を用いて構成されており、ブラシ付きモータ１を駆動する。このモータ制御装置では、上記第１の実施形態とは異なり、各部の温度センサ４１，４２，４３が設けられている。これらの温度センサは、具体的には、モータ１のコイルの温度Ｔｗを検出するために設けられたセンサ４１、モータ１のブラシの温度Ｔｂを検出するために設けられたセンサ４２，および、モータ駆動回路３０の基板温度Ｔｄを検出するために設けられたセンサ４３である。また、本実施形態では、角速度推定部５０の構成が他の実施形態と異なる。本実施形態に係るモータ制御装置における他の構成は、上記第１の実施形態と基本的には同様であって、図２に示す通りである。
【０１４７】
図１９は、本実施形態における角速度推定部５０の機能的構成を示すブロック図である。この角速度推定部５０は、温度特性格納部９１と抵抗値算出部９２と平均値算出部９３と角速度推定値算出部６６とを備えており、温度特性格納部９１と抵抗値算出部９２と平均値算出部９３とは抵抗値更新部２００を構成する。
【０１４８】
図１９に示すように、温度特性格納部９１は、巻線抵抗マップＭｗ、ブラシ抵抗マップＭｂ、接触抵抗マップＭｃ、および回路抵抗マップＭｄを保持している。ここで、巻線抵抗マップＭｗは、図２０（ａ）に示すようなモータ１の巻線抵抗の温度特性に基づきコイル温度を巻線抵抗に対応付けるテーブルであり、ブラシ抵抗マップＭｂは、図２０（ｂ）に示すようなモータ１のブラシ抵抗の温度特性に基づきブラシ温度をブラシ抵抗に対応付けるテーブルであり、接触抵抗マップＭｃは、図２０（ｃ）に示すようなモータ１におけるブラシの接触抵抗の温度特性に基づきブラシ温度を接触抵抗に対応付けるテーブルであり、回路抵抗マップＭｄは、図２０（ｄ）に示すようなモータ駆動回路３０の基板温度の温度特性に基づき基板温度をモータ駆動回路３０の抵抗（以下「回路抵抗」という）に対応付けるテーブルである。
【０１４９】
温度特性格納部９１は、制御周期毎に、既述の温度センサ４１，４２，４３によりそれぞれ得られるコイル温度検出値Ｔｗ、ブラシ温度検出値Ｔｂ、および基板温度検出値Ｔｄを受け取り（図３のステップＳ３）、そのコイル温度検出値Ｔｗに対応する巻線抵抗値Ｒｗを巻線抵抗マップＭｗを参照して求め、そのブラシ温度検出値Ｔｂに対応するブラシ抵抗値Ｒｂをブラシ抵抗マップＭｂを参照して求め、そのブラシ温度検出値Ｔｂに対応する接触抵抗値Ｒｃを接触抵抗マップＭｃを参照して求め、その基板温度検出値Ｔｄに対応する回路抵抗値Ｒｄを回路抵抗マップＭｄを参照して求める。このようにして求めた巻線抵抗値Ｒｗ、ブラシ抵抗値Ｒｂ、接触抵抗値Ｒｃ，および回路抵抗値Ｒｄは、抵抗値算出部９２に入力される。
【０１５０】
抵抗値算出部９２は、これらの巻線抵抗値Ｒｗ、ブラシ抵抗値Ｒｂ、接触抵抗値Ｒｃ、および回路抵抗値Ｒｄからモータ抵抗値Ｒｓを制御周期毎に求める。平均値算出部９３は、このようにして制御周期毎に順次得られるモータ抵抗値Ｒｓについて平均化処理を施すことにより抵抗平均値Ｒｎｅｗを求める。角速度推定値算出部６６は、この抵抗平均値Ｒｎｅｗと予め設定された逆起電力定数ｋ（図３のステップＳ２）と電圧検出回路２４からの電圧検出値Ｖｍと電流検出回路２５からの電流検出値Ｉｍとを用いて角速度推定値ωｅを算出する。
【０１５１】
＜６．２  角速度推定処理の具体例＞
以下、本実施形態における角速度推定部５０をソフトウェア的に実現するための角速度推定処理（図３のステップＳ４）につき具体例を説明する。なお、上記の温度特性格納部９１は、この角速度推定処理とマイコン１０内のメモリによって実現され、上記の巻線抵抗マップＭｗ、ブラシ抵抗マップＭｂ、接触抵抗マップＭｃ、および回路抵抗マップＭｄを構成するデータは予め当該メモリに記憶されているものとする。
【０１５２】
図２１は、本実施形態における角速度推定処理Ｓ４の一例を示すフローチャートである。この例においても、角速度推定処理は制御周期毎に実行され（図３参照）、この角速度推定処理の実行においてマイコン１０は図２１および図２２に示すように動作する。
【０１５３】
図２１の角速度推定処理は、図８の角速度推定処理と比較すると、ステップＳ１０〜Ｓ１２，Ｓ３０，Ｓ３２が削除されている点と抵抗値Ｒｓを算出するための処理内容（図８のステップ１６と図２１のステップＳ１７）が異なる点と除けば実質的に図８の角速度推定処理と同じであり、対応するステップには同一の番号を付して説明を省略する。
【０１５４】
図２２は、本実施形態におけるステップＳ１７での処理すなわち抵抗値算出処理の詳細手順を示すフローチャートである。この抵抗値算出処理では、まず、既述の温度センサ４１，４２，４３により得られるコイル温度検出値Ｔｗ、ブラシ温度検出値Ｔｂ、および基板温度検出値Ｔｄを取得する（ステップＳ２３０）。次に、巻線抵抗の温度特性を示す巻線抵抗マップＭｗを参照することにより、コイル温度検出値Ｔｗに対応する巻線抵抗値Ｒｗを求める（ステップＳ２３２）。同様に、ブラシ抵抗の温度特性を示すブラシ抵抗マップＭｂを参照することにより、ブラシ温度検出値Ｔｂに対応するブラシ抵抗値Ｒｂを求め（ステップＳ２３４）、接触抵抗の温度特性を示す接触抵抗マップＭｃを参照することにより、ブラシ温度検出値Ｔｂに対応する接触抵抗値Ｒｃを求め（ステップＳ２３６）、回路抵抗の温度特性を示す回路抵抗マップＭｄを参照することにより、基板温度検出値Ｔｄに対応する回路抵抗値Ｒｄを求める（ステップＳ２３８）。
【０１５５】
上記のようにして、巻線抵抗値Ｒｗ、ブラシ抵抗値Ｒｂ、接触抵抗値Ｒｃ、および回路抵抗値Ｒｄが求まると、次に、これらの抵抗値Ｒｗ，Ｒｂ，Ｒｃ，Ｒｄの和としてモータ抵抗値（以下「算出抵抗値」という）Ｒｓを求める（ステップＳ２４０）。すなわち、
Ｒｓ＝Ｒｗ＋Ｒｂ＋Ｒｃ＋Ｒｄ    …（２４）
である。
【０１５６】
上記のようなステップＳ２３０〜Ｓ２４０からなる抵抗値算出処理（Ｓ１７）をマイコン１０が実行することにより、図１９に示す抵抗値算出部９２が実現される。
【０１５７】
上記のようにして算出抵抗値Ｒｓが求められると、抵抗値算出処理（Ｓ１７）を終了し、図２１に示す角速度推定処理のルーチンに戻り、ステップＳ５０以降の処理を実行する。この処理では、現時点までに制御周期毎に得られた複数の算出抵抗値Ｒｓを用い、上記第１の実施形態における第１の角速度推定処理（図８の角速度推定処理）と同様にして、抵抗平均値Ｒｎｅｗ（ステップＳ５４，Ｓ６２）を算出し、この抵抗平均値Ｒｎｅｗを用いて角速度推定値ωｅを算出する（ステップＳ５８）。ステップＳ５８で角速度推定値ωｅが算出されると、１つの制御周期での角速度推定処理を終了し、図３に示すモータ制御処理のルーチンに戻る。
【０１５８】
＜６．３  効果＞
上記のような本実施形態によれば、角速度推定値ωｅの算出に必要なモータ抵抗値Ｒｎｅｗは、モータ抵抗Ｒを構成する各部の抵抗（抵抗成分）毎に抵抗値の温度特性を考慮して算出される（ステップＳ２３０〜Ｓ２４０、図２０参照）。これにより、モータ抵抗の温度特性を正確に反映した抵抗値Ｒｎｅｗを用いて角速度推定値ωｅが算出されるので、角速度推定値ωｅの精度を向上させることができる。また、角速度推定値ωｅを算出するための抵抗平均値Ｒｎｅｗは、モータ制御装置が動作している状態において制御周期毎に更新されるので（ステップＳ５４，Ｓ６２）、角速度推定値ωｅを算出するための抵抗平均値Ｒｎｅｗは、現実のモータ抵抗値Ｒの変化に追随することができ、現実のモータ抵抗値Ｒとの乖離が抑制される。このため、温度が変化しても、実際のモータ抵抗値に比べ誤差の少ない抵抗平均値Ｒｎｅｗを用いて角速度推定値ωｅを精度良く算出することができる。以上により、モータ制御装置の制御性能が向上し、そのモータ制御装置を用いた電動パワーステアリング装置において良好な操舵感が得られる。
【０１５９】
＜７．変形例など＞
上記第１〜第５の実施形態において、角速度推定部５０はマイコン１０が所定プログラムを実行することによりソフトウェア的に実現されているが、角速度推定部５０の一部または全部をハードウェア的に実現してもよい。
【０１６０】
上記第１〜第５の実施形態に係るモータ制御装置は、ブラシ付きモータ１を駆動するための装置であるが、本発明はこれに限定されるものではない。本発明は、電動モータの電機子巻線に生じる逆起電力に基づき、当該モータの抵抗値および逆起電力定数と当該モータへの印加電圧および当該モータに流れる電流の検出値とから当該モータの回転速度（角速度）の推定値を算出できるものであれば、他の種類のモータにも適用可能である。
【０１６１】
なお本発明は、上述したコラムアシスト型の電動パワーステアリング装置だけでなく、ピニオンアシスト型やラックアシスト型の電動パワーステアリング装置にも適用できる。また、本発明は、電動パワーステアリング装置以外に用いられるモータ制御装置にも適用できる。
【符号の説明】
【０１６２】
１…ブラシ付きモータ（電動モータ）、５…ＥＣＵ（モータ制御装置）、７…回転センサ、７ｈ…舵角センサ（簡易角度検出手段），操舵角速度センサ（簡易速度検出手段）、５１…保舵判定部（判定手段）、５６…角速度推定値算出部（推定値算出手段）、９１…温度特性格納部、２００…抵抗値更新部（パラメータ値更新手段）、３００…逆起電力定数更新部（パラメータ値更新手段）、４００…パラメータ値更新部（パラメータ値更新手段）。
【図１】
2011087402.tif 000003
【図２】
2011087402.tif 000004
【図３】
2011087402.tif 000005
【図４】
2011087402.tif 000006
【図５】
2011087402.tif 000007
【図６】
2011087402.tif 000008
【図７】
2011087402.tif 000009
【図８】
2011087402.tif 000010
【図９】
2011087402.tif 000011
【図１０】
2011087402.tif 000012
【図１１】
2011087402.tif 000013
【図１２】
2011087402.tif 000014
【図１３】
2011087402.tif 000015
【図１４】
2011087402.tif 000016
【図１５】
2011087402.tif 000017
【図１６】
2011087402.tif 000018
【図１７】
2011087402.tif 000019
【図１８】
2011087402.tif 000020
【図１９】
2011087402.tif 000021
【図２０】
2011087402.tif 000022
【図２１】
2011087402.tif 000023
【図２２】
2011087402.tif 000024