(57)【要約】  マイコンは、モータの内部抵抗値Ｒｍを計算し（Ｓ２０）、続いて、モータ駆動回路のスイッチング素子の内部抵抗値Ｒｑを計算する（Ｓ３０）。マイコンは、モータの内部抵抗値Ｒｍが半異常値である場合には、上限電流Ｉmax_mを設定し（Ｓ４１）、モータ駆動回路の内部抵抗値Ｒｑが半異常値である場合には、上限電流Ｉmax_qを設定する（Ｓ４３）。マイコンは、上限電流Ｉmax_mと上限電流Ｉmax_qのうち小さい方の値をモータの上限電流Ｉmaxに設定する（Ｓ４４〜Ｓ４６）。これにより、モータとモータ駆動回路の劣化進行を抑制することができる。
2012124098.tif 000002
【特許請求の範囲】
【請求項１】
操舵ハンドルから入力された操舵トルクを検出する操舵トルク検出手段と、
操舵機構に設けられるモータと、
前記モータの通電を制御するためのスイッチング素子を備えたモータ駆動回路と、
前記操舵トルク検出手段により検出された操舵トルクに基づいて前記モータの制御量を演算する制御量演算手段と、
前記制御量演算手段により演算された制御量に従って前記モータ駆動回路のスイッチング素子を制御して、前記モータから操舵アシストトルクを発生させるスイッチ制御手段と
を備えた電動パワーステアリング装置において、
前記モータ駆動回路を介して前記モータに電流が流れる通電路の内部抵抗値が、正常範囲を超え、かつ、前記モータを停止すべき異常範囲に入らない状態となる半異常状態を検出する半異常状態検出手段と、
前記半異常状態が検出された場合には、前記内部抵抗値が正常範囲内に入る場合に比べて、前記モータの通電が制限されるように前記モータの制御量を制限する半異常時制御量制限手段と
を備えたことを特徴とする電動パワーステアリング装置。
【請求項２】
前記モータの内部抵抗値と前記モータ駆動回路の内部抵抗値とを測定する内部抵抗値測定手段を備え、
前記半異常状態検出手段は、前記内部抵抗値測定手段により測定された前記モータの内部抵抗値と前記モータ駆動回路の内部抵抗値の少なくとも一方が前記正常範囲を超え、かつ、前記異常範囲に入らない半異常値となる状態を検出することを特徴とする請求項１記載の電動パワーステアリング装置。
【請求項３】
前記モータの内部抵抗値が前記半異常値となる場合と、前記モータ駆動回路の内部抵抗値が前記半異常値となる場合とで、それぞれ独立した前記モータの通電の制限度合を設定する制限度合独立設定手段を備えたことを特徴とする請求項２記載の電動パワーステアリング装置。
【請求項４】
前記モータは、ブラシ付直流モータであり、
前記モータ駆動回路は、前記モータを正回転方向に駆動するときに電流が流れる正回転用通電路と、前記モータを逆回転方向に駆動するときに電流が流れる逆回転用通電路とを有するＨブリッジ回路であり、
前記内部抵抗値測定手段は、前記正回転用通電路に設けられた正回転用スイッチング素子の内部抵抗値と、前記逆回転用通電路に設けられた逆回転用スイッチング素子の内部抵抗値と、前記モータの内部抵抗値とを測定することを特徴とする請求項２または請求項３記載の電動パワーステアリング装置。
【請求項５】
前記内部抵抗値測定手段は、前記正回転用スイッチング素子と前記逆回転用スイッチング素子とを交互にオンし、前記正回転用スイッチング素子をオンしているときに前記正回転用スイッチング素子の内部抵抗値を測定し、前記逆回転用スイッチング素子をオンしているときに前記逆回転用スイッチング素子の内部抵抗値を測定することを特徴とする請求項４記載の電動パワーステアリング装置。
【請求項６】
前記半異常時制御量制限手段は、前記内部抵抗値測定手段により測定された内部抵抗値が大きくなるにしたがってモータに流す電流の上限値を小さく設定することを特徴とする請求項２ないし請求項５の何れか一項記載の電動パワーステアリング装置。
【請求項７】
前記半異常時制御量制限手段は、前記内部抵抗値測定手段により測定された内部抵抗値が大きくなるにしたがってモータに印加する電圧の上限値を小さく設定することを特徴とする請求項２ないし請求項６の何れか一項記載の電動パワーステアリング装置。
【請求項８】
前記半異常時制御量制限手段は、前記半異常状態検出手段により半異常状態が検出された場合、前記モータに流す電流の上限値を時間の経過とともに漸減するように設定することを特徴とする請求項１ないし請求項５の何れか一項記載の電動パワーステアリング装置。
【請求項９】
前記半異常時制御量制限手段は、前記半異常状態検出手段により半異常状態が検出された場合、前記モータに印加する電圧の上限値を時間の経過とともに漸減するように設定することを特徴とする請求項１ないし請求項５の何れか一項記載の電動パワーステアリング装置。
【請求項１０】
前記半異常状態検出手段により半異常状態が検出されてからの経過時間が予め設定された停止時間に到達したとき前記モータの通電を禁止する時間制限手段を備えたことを特徴とする請求項１ないし請求項９の何れか一項記載の電動パワーステアリング装置。
【請求項１１】
前記モータの内部抵抗値が前記半異常値となる場合と、前記モータ駆動回路の内部抵抗値が前記半異常値となる場合とで、前記停止時間を独立して設定する停止時間設定手段を備えたことを特徴とする請求項１０記載の電動パワーステアリング装置。
【請求項１２】
前記内部抵抗値測定手段は、車両のドアの開閉状態を表すドア開閉信号、あるいは、運転者の運転座席への着座状態を表す着座信号に基づいて、前記内部抵抗値の測定を開始することを特徴とする請求項２ないし請求項１１の何れか一項記載の電動パワーステアリング装置。
【請求項１３】
前記内部抵抗値測定手段は、前記モータ駆動回路に印加される電源電圧と、前記モータに流れるモータ電流と、前記モータの各端子電圧あるいは端子間電圧とに基づいて、前記スイッチング素子の内部抵抗値を計算により求めることを特徴とする請求項２ないし請求項１２の何れか一項記載の電動パワーステアリング装置。
【請求項１４】
前記内部抵抗値測定手段は、前記モータに流れるモータ電流と、前記モータの端子間電圧とに基づいて、前記モータの内部抵抗値を計算により求めることを特徴とする請求項２ないし請求項１３の何れか一項記載の電動パワーステアリング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、運転者の操舵操作に基づいてモータを駆動して操舵アシストトルクを発生する電動パワーステアリング装置に関する。
【背景技術】
【０００２】
電動パワーステアリング装置は、操舵ハンドルの操舵操作を補助する操舵アシストトルクを発生するモータと、このモータの通電を制御する電子制御ユニット（ＥＣＵと呼ぶ）とを備える。ＥＣＵは、スイッチング素子で構成したモータ駆動回路と、操舵トルクに応じた目標アシストトルクが発生するようにモータの制御量を演算するマイコンと、マイコンにより演算された制御量にしたがってモータ駆動回路のスイッチング素子にＰＷＭ制御によるゲート信号を出力するスイッチ駆動回路とを備える。【０００３】
このような電動パワーステアリング装置においては、モータおよびモータ駆動回路が発熱して損傷してしまうことを防止するために、それらの温度を検出し、検出温度が過熱防止用に設定された閾値を上回る場合にモータに流す電流を制限するようにしている。また、特許文献１に提案された電動パワーステアリング装置においては、スイッチ駆動回路の温度も検出し、モータ駆動回路とスイッチ駆動回路とにおいて検出される温度の何れかが、それぞれの回路に設定された閾値を超えた場合にモータに流す電流を制限するようにしている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−５６８４９号公報
【発明の概要】
【０００５】
しかしながら、従来の電動パワーステアリング装置においては、モータおよびモータ駆動回路の発熱状態は検出できるものの、その発熱の原因が、それらの内部抵抗の増加によるものであるか否かについては分からず、単に、温度上昇という現象を捉えてモータに流す電流を制限するものに過ぎない。例えば、モータのブラシ部の接触抵抗あるいはモータ駆動回路のスイッチング素子の内部抵抗が増加した場合には発熱量が増加するが、そうした発熱であっても、内部抵抗が正常である場合での発熱と区別されない。
【０００６】
このため、モータあるいはモータ駆動回路の内部抵抗の増加が進んで、異常（例えば、スイッチング素子の破損等）が発生したときになって、突然、操舵アシストが停止してしまう。これは、従来の電動パワーステアリング装置では、モータおよびモータ駆動回路の内部抵抗が正常状態から異常状態に進行していく中間過程である半異常状態における制御が考慮されていないからである。
【０００７】
本発明の目的は、上記問題に対処するためになされたもので、モータおよびモータ駆動回路の半異常状態を検出して、それに応じた操舵アシスト制御を行うことにある。
【０００８】
上記目的を達成するために、本発明の特徴は、操舵ハンドルから入力された操舵トルクを検出する操舵トルク検出手段（２１）と、操舵機構に設けられるモータ（２０）と、前記モータの通電を制御するためのスイッチング素子を備えたモータ駆動回路（４０）と、前記操舵トルク検出手段により検出された操舵トルクに基づいて前記モータの制御量を演算する制御量演算手段（６０）と、前記制御量演算手段により演算された制御量に従って前記モータ駆動回路のスイッチング素子を制御して、前記モータから操舵アシストトルクを発生させるスイッチ制御手段（８０）とを備えた電動パワーステアリング装置において、
前記モータ駆動回路を介して前記モータに電流が流れる通電路の内部抵抗値が、正常範囲を超え、かつ、前記モータを停止すべき異常範囲に入らない状態となる半異常状態を検出する半異常状態検出手段（Ｓ４０，Ｓ４２）と、前記半異常状態が検出された場合には、前記内部抵抗値が正常範囲内に入る場合に比べて、前記モータの通電が制限されるように前記モータの制御量を制限する半異常時制御量制限手段と（Ｓ４１〜Ｓ４６）を備えたことにある。
【０００９】
本発明においては、操舵トルク検出手段が操舵ハンドルから入力された操舵トルクを検出する。制御量演算手段は、操舵トルクに基づいてモータの制御量を演算する。例えば、操舵トルクに基づいて目標電流を演算し、この目標電流がモータに流れるようにモータに印加する電圧制御値を演算する。スイッチ制御手段は、制御量演算手段により演算された制御量に従ってモータ駆動回路のスイッチング素子を制御する。例えば、ＰＷＭ制御信号をモータ駆動回路のスイッチング素子に出力してスイッチング素子を駆動する。これにより、モータに電流が流れてモータから操舵アシストトルクが発生する。
【００１０】
モータあるいはモータ駆動回路の内部抵抗（電気抵抗）が増加した場合には、発熱量が増加し、部品破損に至る可能性がある。部品が破損した場合には、その時点からモータで操舵アシストトルクを発生できなくなる。そこで、本発明においては、半異常状態検出手段と半異常時制御量制限手段とを備えている。
【００１１】
半異常状態検出手段は、モータ駆動回路を介してモータに電流が流れる通電路の内部抵抗値が、正常範囲を超え、かつ、モータを停止すべき異常範囲に入らない状態となる半異常状態を検出する。この通電路は、モータ駆動回路とモータとを含めた電流の流れる回路を意味する。半異常時制御量制限手段は、半異常状態が検出された場合には、内部抵抗値が正常範囲に入っている場合に比べてモータの通電が制限されるようにモータの制御量を制限する。従って、モータおよびモータ駆動回路の発熱が抑制される。これにより、モータおよびモータ駆動回路の劣化進行を抑制することができ、電動パワーステアリング装置の延命を図ることができる。また、モータあるいはモータ駆動回路に故障が発生したとしても、それ以前から、モータの通電が制限されているため、突然、操舵アシストが停止して操舵力が急変するという不具合を抑制できる。
【００１２】
本発明の他の特徴は、前記モータの内部抵抗値と前記モータ駆動回路の内部抵抗値とを測定する内部抵抗値測定手段（Ｓ２０，Ｓ３０）を備え、前記半異常状態検出手段（Ｓ４０，Ｓ４２）は、前記内部抵抗値測定手段により測定された前記モータの内部抵抗値と前記モータ駆動回路の内部抵抗値の少なくとも一方が前記正常範囲を超え、かつ、前記異常範囲に入らない半異常値となる状態を検出することにある。
【００１３】
本発明においては、内部抵抗値測定手段は、モータの内部抵抗値とモータ駆動回路の内部抵抗値とを測定する。半異常状態検出手段は、内部抵抗値測定手段により測定されたモータの内部抵抗値とモータ駆動回路の内部抵抗値の少なくとも一方が正常範囲を超え、かつ、異常範囲に入らない半異常値となる状態を半異常状態として検出する。例えば、半異常状態検出手段は、内部抵抗値の正常範囲の最大値を設定した第１閾値と、内部抵抗値の異常範囲の最小値を設定した第２閾値とを記憶し、測定された内部抵抗値が第１閾値と第２閾値との間の半異常値となる場合に半異常状態であると判定する。従って、モータおよびモータ駆動回路の部品が損傷する前に半異常状態を検出することができる。
【００１４】
本発明の他の特徴は、前記モータの内部抵抗値が前記半異常値となる場合と、前記モータ駆動回路の内部抵抗値が前記半異常値となる場合とで、それぞれ独立した前記モータの通電の制限度合を設定する制限度合独立設定手段（Ｓ４１，Ｓ４３，Ｓ８４，Ｓ８５，Ｓ８８，Ｓ８９，Ｓ９１，Ｓ９３）を備えたことにある。
【００１５】
モータの半異常状態が検出された場合におけるモータの適切な通電制限度合と、モータ駆動回路の半異常状態が検出された場合のモータの適切な通電制限度合とは、必ずしも一致しない。本発明においては、モータの内部抵抗値とモータ駆動回路の内部抵抗値とに基づいて、モータの内部抵抗値が半異常値となる場合と、モータ駆動回路の内部抵抗値が半異常値となる場合とを区別することができる。そこで、制限度合独立設定手段が、モータの内部抵抗値が半異常値となる場合と、モータ駆動回路の内部抵抗値が半異常値となる場合とで、それぞれ独立したモータの通電の制限度合を設定する。これにより、半異常部位に応じた適切なモータの通電制限を行うことができる。
【００１６】
本発明の他の特徴は、前記モータは、ブラシ付直流モータであり、前記モータ駆動回路は、前記モータを正回転方向に駆動するときに電流が流れる正回転用通電路と、前記モータを逆回転方向に駆動するときに電流が流れる逆回転用通電路とを有するＨブリッジ回路であり、前記内部抵抗値測定手段は、前記正回転用通電路に設けられた正回転用スイッチング素子（Ｑ１，Ｑ４）の内部抵抗値と、前記逆回転用通電路に設けられた逆回転用スイッチング素子（Ｑ２，Ｑ３）の内部抵抗値と、前記モータの内部抵抗値とを測定することにある。
【００１７】
本発明においては、ブラシ付直流モータをＨブリッジ回路にて駆動して操舵アシストトルクを発生させる。ブラシ付直流モータの場合には、ブラシと整流子片との接触状態が悪いと接触抵抗が増加して、その部分で発熱量が増加し劣化が進行する。そこで、本発明においては、内部抵抗値測定手段が、Ｈブリッジ回路の正回転用スイッチング素子の内部抵抗値と、逆回転用スイッチング素子の内部抵抗値と、モータの内部抵抗値とを測定する。これにより、モータのブラシ部およびモータ駆動回路のスイッチング素子の劣化を適正に検出することができる。
【００１８】
本発明の他の特徴は、前記内部抵抗値測定手段（Ｓ３０）は、前記正回転用スイッチング素子と前記逆回転用スイッチング素子とを交互にオンし、前記正回転用スイッチング素子をオンしているときに前記正回転用スイッチング素子の内部抵抗値を測定し、前記逆回転用スイッチング素子をオンしているときに前記逆回転用スイッチング素子の内部抵抗値を測定することにある。
【００１９】
正回転用スイッチング素子をオンするとモータが正回転方向に駆動され、逆回転用スイッチング素子をオンするとモータが逆回転方向に駆動される。内部抵抗値を測定するためには、モータに通電する必要があるが、モータが回転すると操舵ハンドルも回転してしまう。そこで、本発明においては、内部抵抗値測定手段は、正回転用スイッチング素子と逆回転用スイッチング素子とを交互にオンし、正回転用スイッチング素子をオンしているときに正回転用スイッチング素子の内部抵抗値を測定し、逆回転用スイッチング素子をオンしているときに逆回転用スイッチング素子の内部抵抗値を測定する。これにより、操舵ハンドルを回転しないようにすることができる。尚、正回転用スイッチング素子と逆回転用スイッチング素子とを交互にオンする周期は、操舵ハンドルが回転しない程度の短時間に設定される。
【００２０】
本発明の他の特徴は、前記半異常時制御量制限手段（Ｓ４１，Ｓ４３）は、前記内部抵抗値測定手段により測定された内部抵抗値が大きくなるにしたがってモータに流す電流の上限値を小さく設定することにある。
【００２１】
本発明によれば、モータあるいはモータ駆動回路の内部抵抗値が大きくなるにしたがってモータに流す電流の上限値が小さく設定されるため、半異常部位の発熱を適切に抑制して劣化進行を抑えることができる。
【００２２】
本発明の他の特徴は、前記半異常時制御量制限手段（Ｓ９１，Ｓ９３）は、前記内部抵抗値測定手段により測定された内部抵抗値が大きくなるにしたがってモータに印加する電圧の上限値を小さく設定することにある。
【００２３】
本発明によれば、モータあるいはモータ駆動回路の内部抵抗値が大きくなるにしたがってモータに印加する電圧の上限値が小さく設定されるため、半異常部位の発熱を適切に抑制して劣化進行を抑えることができる。
【００２４】
本発明の他の特徴は、前記半異常時制御量制限手段（Ｓ６３，Ｓ８４，Ｓ８８）は、前記半異常状態検出手段により半異常状態が検出された場合、前記モータに流す電流の上限値を時間の経過とともに漸減するように設定することにある。
【００２５】
本発明によれば、モータあるいはモータ駆動回路の半異常状態が検出された場合、モータに流す電流の上限値が時間の経過とともに徐々に減少するように設定されるため、半異常部位の発熱を適切に抑制して劣化進行を抑えることができる。
【００２６】
本発明の他の特徴は、前記半異常時制御量制限手段は、前記半異常状態検出手段により半異常状態が検出された場合、前記モータに印加する電圧の上限値を時間の経過とともに漸減するように設定することにある。
【００２７】
本発明によれば、モータあるいはモータ駆動回路の半異常状態が検出された場合、モータに印加する電圧の上限値が時間の経過とともに徐々に減少するように設定されるため、半異常部位の発熱を適切に抑制して劣化進行を抑えることができる。
【００２８】
本発明の他の特徴は、前記半異常状態検出手段により半異常状態が検出されてからの経過時間が予め設定された停止時間に到達したとき前記モータの通電を禁止する時間制限手段（Ｓ６４，Ｓ６５）を備えたことにある。
【００２９】
本発明によれば、モータあるいはモータ駆動回路の半異常状態が検出された場合、半異常状態が検出されてからの経過時間が予め設定された停止時間に到達したときモータの通電が禁止される。従って、モータあるいはモータ駆動回路の劣化が進行しても、適切に操舵アシストを停止させることができる。
【００３０】
本発明の他の特徴は、前記モータの内部抵抗値が前記半異常値となる場合と、前記モータ駆動回路の内部抵抗値が前記半異常値となる場合とで、前記停止時間を独立して設定する停止時間設定手段（Ｓ８５，Ｓ８９）を備えたことにある。
【００３１】
モータの半異常状態が検出されてから異常状態へ至るまでの残存寿命と、モータ駆動回路の半異常状態が検出されてから異常状態へ至るまでの残存寿命とは必ずしも一致しない。そこで、本発明においては、停止時間設定手段が、モータの内部抵抗値が半異常値となる場合と、モータ駆動回路の内部抵抗値が半異常値となる場合とで、停止時間を独立して設定する。従って、モータが半異常状態となった場合でも、モータ駆動回路が半異常状態となった場合でも、それらの残存寿命に応じた適切な停止時間を設定することができる。これにより、電動パワーステアリング装置を適切に延命させることができる。
【００３２】
本発明の他の特徴は、前記内部抵抗値測定手段は、車両のドアの開閉状態を表すドア開閉信号、あるいは、運転者の運転座席への着座状態を表す着座信号に基づいて、前記内部抵抗値の測定を開始する（Ｓ１１）ことにある。
【００３３】
モータあるいはモータ駆動回路の内部抵抗値を測定する場合には、モータに通電する必要があるが、そうしたモータの作動を運転者に気付かれることは好ましくない。そこで、本発明においては、車両のドアの開閉状態を表すドア開閉信号、あるいは、運転者の運転座席への着座状態を表す着座信号に基づいて、内部抵抗値の測定を開始する。例えば、車両のドアが開いた直後、あるは、運転席に運転者が座った直後に、内部抵抗値の測定を行う。これにより、運転者は、内部抵抗値の測定にかかるモータの作動に気がつかない。
【００３４】
本発明の他の特徴は、前記内部抵抗値測定手段（Ｓ３０）は、前記モータ駆動回路に印加される電源電圧と、前記モータに流れるモータ電流と、前記モータの各端子電圧あるいは端子間電圧とに基づいて、前記スイッチング素子の内部抵抗値を計算により求めることにある。
【００３５】
本発明においては、モータ駆動回路に印加される電源電圧と、モータ電流と、モータの各端子電圧あるいは端子間電圧と基づいて、計算によりスイッチング素子の内部抵抗値を求める。例えば、電源電圧、モータ電流、モータの各端子電圧あるいは端子間電圧を検出し、この検出値を用いてスイッチング素子の内部抵抗値を計算する。この場合、電源電圧が既知であれば、その既知の値を用いるようにしてもよい。従って、簡単にスイッチング素子の内部抵抗値を測定することができる。
【００３６】
本発明の他の特徴は、前記内部抵抗値測定手段（Ｓ２０）は、前記モータに流れるモータ電流と、前記モータの端子間電圧とに基づいて、前記モータの内部抵抗値を計算により求めることにある。
【００３７】
本発明においては、モータ電流と、モータの端子間電圧と基づいて、計算によりモータの内部抵抗値を求める。例えば、モータ電流、モータの端子間電圧を検出し、この検出値を用いてモータの内部抵抗値を計算する。この場合、モータの端子間電圧の検出は、モータの各端子の電圧をそれぞれ検出して、その電圧差から求めるようにしてもよいし、直接、モータの端子間の電圧を検出するようにしてもよい。従って、簡単にモータの内部抵抗値を測定することができる。
【００３８】
尚、上記説明においては、発明の理解を助けるために、実施形態に対応する発明の構成に対して、実施形態で用いた符号を括弧書きで添えているが、発明の各構成要件は、前記符号によって規定される実施形態に限定されるものではない。
【図面の簡単な説明】
【００３９】
【図１】本発明の実施形態に係る電動パワーステアリング装置の概略構成図である。
【図２】アシストＥＣＵの概略構成図である。
【図３】操舵アシスト制御ルーチンを表すフローチャートである。
【図４】アシストマップを表すグラフである。
【図５】内部抵抗値の測定方法を説明する説明図である。
【図６】モータ制限値設定ルーチンを表すフローチャートである。
【図７】モータ内部抵抗値計算ルーチン（サブルーチン）を表すフローチャートである。
【図８】駆動回路内部抵抗値計算ルーチン（サブルーチン）を表すフローチャートである。
【図９】モータ抵抗用上限電流マップを表すグラフである。
【図１０】回路抵抗用上限電流マップを表すグラフである。
【図１１】内部抵抗値の推移を表すグラフである。
【図１２】変形例２−１にかかる上限電流マップを表すグラフである。
【図１３】変形例２−１にかかる内部抵抗値判定ルーチンを表すフローチャートである。
【図１４】変形例２−１にかかるモータ制限値設定ルーチンを表すフローチャートである。
【図１５】変形例２−２にかかる内部抵抗値判定ルーチンを表すフローチャートである。
【図１６】変形例２−２にかかるモータ制限値設定ルーチンを表すフローチャートである。
【図１７】変形例２−２にかかる上限電流マップを表すグラフである。
【図１８】変形例２−３にかかるモータ制限値設定ルーチンを表すフローチャートである。
【図１９】変形例２−３にかかるモータ抵抗用上限指令電圧マップを表すグラフである。
【図２０】変形例２−３にかかる回路抵抗用上限指令電圧マップを表すグラフである。
【図２１】変形例２−３にかかる操舵アシスト制御ルーチンを表すフローチャートである。
【図２２】変形例２−４にかかる上限指令電圧マップを表すグラフである。
【図２３】変形例２−５にかかる上限指令電圧マップを表すグラフである。
【図２４】変形例２−７にかかるモータ制限値設定ルーチンを表すフローチャートである。
【図２５】変形例２−７にかかるモータ温度用上限電流マップと基板温度用上限電流マップとを表すグラフである。
【図２６】変形例２−８にかかるモータ温度ゲインマップと基板温度ゲインマップとを表すグラフである。
【図２７】変形例３−３にかかるモータ制限値設定ルーチンを表すフローチャートである。
【発明を実施するための形態】
【００４０】
以下、本発明の一実施形態に係る電動パワーステアリング装置について図面を用いて説明する。図１は、同実施形態に係る車両の電動パワーステアリング装置１の概略構成を表している。
【００４１】
この電動パワーステアリング装置１は、操舵ハンドル１１の操舵操作により転舵輪を転舵するステアリング機構１０と、ステアリング機構１０に組み付けられ操舵アシストトルクを発生するモータ２０と、操舵ハンドル１１の操作状態に応じてモータ２０の作動を制御する電子制御ユニット１００とを主要部として備えている。以下、電子制御ユニット１００をアシストＥＣＵ１００と呼ぶ。
【００４２】
ステアリング機構１０は、操舵ハンドル１１の回転操作により左右前輪ＦＷ１，ＦＷ２を転舵するための機構で、操舵ハンドル１１を上端に一体回転するように接続したステアリングシャフト１２を備える。このステアリングシャフト１２の下端には、ピニオンギヤ１３が一体回転するように接続されている。ピニオンギヤ１３は、ラックバー１４に形成されたギヤ部１４ａと噛み合って、ラックバー１４とともにラックアンドピニオン機構を構成する。
【００４３】
ラックバー１４は、ギヤ部１４ａがラックハウジング１６内に収納され、その左右両端がラックハウジング１６から露出してタイロッド１７と連結される。このラックバー１４のタイロッド１７との連結部には、ストロークエンドを構成するストッパ１８が形成され、このストッパ１８とラックハウジング１６の端部との当接によりラックバー１４の左右動ストロークが機械的に規制されている。左右のタイロッド１７の他端は、左右前輪ＦＷ１，ＦＷ２２に設けられたナックル１９に接続される。こうした構成により、左右前輪ＦＷ１，ＦＷ２は、ステアリングシャフト１２の軸線回りの回転に伴うラックバー１４の軸線方向の変位に応じて左右に操舵される。
【００４４】
ステアリングシャフト１２には減速ギヤ２５を介してモータ２０が組み付けられている。モータ２０は、その回転により減速ギヤ２５を介してステアリングシャフト１２をその軸中心に回転駆動して、操舵ハンドル１１の回動操作に対してアシスト力を付与する。このモータ２０は、ブラシ付直流モータである。
【００４５】
ステアリングシャフト１２には、操舵ハンドル１１と減速ギヤ２５との中間位置に操舵トルクセンサ２１が組みつけられている。操舵トルクセンサ２１は、例えば、ステアリングシャフト１２の中間部に介装されたトーションバー（図示略）の捩れ角度をレゾルバ等により検出し、この捩れ角に基づいてステアリングシャフト１２に働いた操舵トルクｔｒを検出する。操舵トルクｔｒは、正負の値により操舵ハンドル１１の操作方向が識別される。例えば、操舵ハンドル１１の左方向への操舵時における操舵トルクｔｒを正の値で、操舵ハンドル１１の右方向への操舵時における操舵トルクｔｒを負の値で示す。尚、本実施形態においては、トーションバーの捩れ角度をレゾルバにより検出するが、エンコーダ等の他の回転角センサにより検出することもできる。
【００４６】
次に、アシストＥＣＵ１００について図２を用いて説明する。アシストＥＣＵ１００は、モータ２０の目標制御量を演算し、演算された目標制御量に応じたスイッチ駆動信号を出力する電子制御回路５０と、電子制御回路５０から出力されたスイッチ駆動信号にしたがってモータ２０に通電するモータ駆動回路４０とを含んで構成される。
【００４７】
電子制御回路５０は、ＣＰＵ，ＲＯＭ，ＲＡＭ等からなるマイコン６０と、各種のセンサ信号を入力してマイコン６０に読み取り可能な信号に変換する入力インタフェース７０と、マイコン６０から出力されるスイッチ制御信号を増幅してモータ駆動回路４０に供給するスイッチ駆動回路８０とを備える。
【００４８】
アシストＥＣＵ１００は、電源装置２００から電力供給される。この電源装置２００は、図示しないバッテリと、エンジンの回転により発電するオルタネータとから構成される。この電源装置２００の定格出力電圧は、例えば１２Ｖに設定されている。尚、図中においては、電源装置２００からモータ駆動回路４０への電源供給ラインである電源ライン２１０のみを示しているが、電子制御回路５０の作動電源も電源装置２００から供給される。
【００４９】
モータ駆動回路４０は、電源ライン２１０とグランドライン２２０との間に設けられ、スイッチング素子Ｑ１とスイッチング素子Ｑ３とを並列接続した上アーム回路４５Ｈと、スイッチング素子Ｑ２とスイッチング素子Ｑ４とを並列接続した下アーム回路４５Ｌとを直列に接続し、この上アーム回路４５Ｈと下アーム回路４５Ｌとの接続部Ａ１，Ａ２から、モータ２０への電力供給を行うための通電ライン４７ａ，４７ｂを引き出したＨブリッジ回路で構成されている。従って、モータ２０の一方の通電端子２０ａは、スイッチング素子Ｑ１を介して電源ライン２１０に接続されるとともに、スイッチング素子Ｑ２を介してグランドライン２２０に接続される。また、モータ２０の他方の通電端子２０ｂは、スイッチング素子Ｑ３を介して電源ライン２１０に接続されるとともに、スイッチング素子Ｑ４を介してグランドライン２２０に接続される。
【００５０】
モータ駆動回路４０に設けられるスイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４としては、ＭＯＳ−ＦＥＴ（Ｍetal  Ｏxide  Ｓemiconductor  Ｆield  Ｅffect  Ｔransistor）が使用される。スイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４は、各ソース−ドレイン間に電源電圧が印加されるように上下のアーム回路４５Ｈ，４５Ｌに設けられ、また、各ゲートが電子制御回路５０のスイッチ駆動回路８０に接続される。
【００５１】
尚、図中に回路記号で示すように、ＭＯＳ−ＦＥＴには構造上、ダイオードが寄生している。このダイオードを寄生ダイオードと呼ぶ。各スイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４の寄生ダイオードは、電源ライン２１０からグランドライン２２０への電流の流れを遮断し、グランドライン２２０から電源ライン２１０へ向かう電流のみを許容する逆導通ダイオードである。また、モータ駆動回路４０は、寄生ダイオードとは別の逆導通ダイオード（電流遮断方向は寄生ダイオードと同じであって、電源電圧方向に対して逆方向にのみ導通するダイオード）をスイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４に並列に接続した構成であってもよい。
【００５２】
マイコン６０は、スイッチ駆動回路８０を介してモータ駆動回路４０の各スイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４のゲートに独立した駆動信号を出力する。この駆動信号により、各スイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４のオン状態とオフ状態とが切り替えられる。
【００５３】
モータ駆動回路４０においては、スイッチング素子Ｑ２とスイッチング素子Ｑ３とがオフに維持された状態でスイッチング素子Ｑ１とスイッチング素子Ｑ４とがオンすると、図中の（＋）方向に電流Ｉ１が流れる。これにより、モータ２０は、正回転方向のトルクを発生する。また、スイッチング素子Ｑ１とスイッチング素子Ｑ４とがオフに維持された状態でスイッチング素子Ｑ２とスイッチング素子Ｑ３とがオンすると、図中の（−）方向に電流Ｉ２が流れる。これにより、モータ２０は、逆回転方向のトルクを発生する。
【００５４】
アシストＥＣＵ１００は、モータ２０に流れる電流を検出する電流センサ３１を備えている。この電流センサ３１は、下アーム回路４５Ｌとグランドとを接続するグランドライン２２０に設けられる。電流センサ３１は、例えば、グランドライン２２０にシャント抵抗（図示略）を設け、このシャント抵抗の両端に現れる電圧をアンプ（図示略）で増幅した電圧信号、あるいは、その電圧信号をデジタル信号に変換した信号を電子制御回路５０の入力インタフェース７０に供給する。以下、電流センサ３１により検出されるモータ２０に流れる電流の値を、モータ実電流Ｉｍと呼ぶ。
【００５５】
また、アシストＥＣＵ１００は、モータ２０の端子電圧を検出する第１電圧センサ３２と第２電圧センサ３３を備えている。第１電圧センサ３２は、モータ２０の一方の通電端子２０ａの電圧を表す信号を入力インタフェース７０に供給する。第１電圧センサ３２により検出される電圧の値を、第１モータ端子電圧Ｖ１と呼ぶ。また、通電端子２０ａを第１モータ端子２０ａと呼ぶ。第１モータ端子電圧Ｖ１は、スイッチング素子Ｑ１とスイッチング素子Ｑ２との接続部Ａ１のグランドに対する電位を表す。
【００５６】
第２電圧センサ３３は、モータ２０の他方の通電端子２０ｂの電圧Ｖ２を表す信号を入力インタフェース７０に供給する。第２電圧センサ３３により検出される電圧の値を、第２モータ端子電圧Ｖ２と呼ぶ。また、通電端子２０ｂを第２モータ端子２０ｂと呼ぶ。第２モータ端子電圧Ｖ２は、スイッチング素子Ｑ３とスイッチング素子Ｑ４との接続部Ａ２のグランドに対する電位を表す。
【００５７】
また、アシストＥＣＵ１００は、モータ駆動回路４０に供給される電源電圧、つまり、電源装置２００の出力電圧を検出する電源電圧センサ３４を備えている。この電源電圧センサ３４は、電源ライン２１０の電圧を表す信号を入力インタフェース７０に供給する。電源電圧センサ３４により検出される電圧の値を電源電圧Ｖccと呼ぶ。
【００５８】
また、アシストＥＣＵ１００は、モータ駆動回路４０の温度を検出する基板温度センサ３５を備えている。基板温度センサ３５は、モータ駆動回路４０におけるスイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４が設けられる基板の温度を表す信号を入力インタフェース７０に供給する。基板温度センサ３５により検出される温度の値を、基板温度Ｔｂと呼ぶ。基板温度Ｔｂは、スイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４の発熱状態に応じた温度を表す。
【００５９】
また、アシストＥＣＵ１００は、操舵トルクセンサ２１、車速センサ９１、カーテシスイッチ９２を接続している。操舵トルクセンサ２１は、操舵ハンドル１１から入力された操舵トルクｔｒを表す検出信号を入力インタフェース７０に供給する。車速センサ９１は、車速ｖｘを表す検出信号を入力インタフェース７０に供給する。カーテシスイッチ９２は、車両のドアの開閉状態Ｓを表す検出信号を入力インタフェース７０に供給する。カーテシスイッチ９２は、例えば、ドアが閉まっているときにはオフ信号を、ドアが開いているときにはオン信号を出力する。
【００６０】
次に、マイコン６０の制御処理について説明する。まず、マイコン６０の実行する操舵アシスト制御処理について説明する、図３は、マイコン６０の実行する操舵アシスト制御ルーチンを表す。操舵アシスト制御ルーチンは、イグニッションスイッチがオンしている期間中において、所定の短い周期で繰り返し実行される。
【００６１】
本制御ルーチンが起動すると、マイコン６０は、ステップＳ１において、車速センサ９１によって検出された車速ｖｘと、操舵トルクセンサ２１によって検出された操舵トルクｔｒを読み込む。続いて、ステップＳ２において、図４に示すアシストマップを参照して、入力した車速ｖｘおよび操舵トルクｔｒに応じて設定される目標アシストトルクｔｒ＊を計算する。アシストマップは、代表的な複数の車速ｖｘごとに、操舵トルクｔｒと目標アシストトルクｔｒ＊との関係を設定した関係付けデータである。アシストマップは、操舵トルクｔｒが大きくなるにしたがって目標アシストトルクｔｒ＊が増加し、車速が低くなるにしたがって目標アシストトルクｔｒ＊が増加する特性を有している。尚、図４は、左方向の操舵時におけるアシストマップであって、右方向の操舵時におけるアシストマップは、左方向のものに対して操舵トルクｔｒと目標アシストトルクｔｒ＊の符号をそれぞれ反対（つまり負）にしたものとなる。
【００６２】
続いて、マイコン６０は、ステップＳ３において、目標アシストトルクｔｒ＊を発生させるために必要な必要電流Ｉ＊を計算する。必要電流Ｉ＊は、目標トルクアシストｔｒ＊をトルク定数で除算することにより求められる。続いて、マイコン６０は、ステップＳ４において、上限電流Ｉmaxを読み込む。この上限電流Ｉmaxは、モータ２０に流す電流の上限値を表す。ステップＳ４では、後述するモータ制限値設定ルーチンにより計算された最新の上限電流Ｉmaxが読み込まれる。
【００６３】
続いて、マイコン６０は、ステップＳ５において、必要電流Ｉ＊が上限電流Ｉmaxよりも大きいか否かを判断し、必要電流Ｉ＊が上限電流Ｉmaxよりも大きい場合には、ステップＳ６において、上限電流Ｉmaxを目標電流Ｉｍ＊として設定し（Ｉｍ＊←Ｉmax）、必要電流Ｉ＊が上限電流Ｉmax以下となる場合には、ステップＳ７において、必要電流Ｉ＊を目標電流Ｉｍ＊として設定する（Ｉｍ＊←Ｉ＊）。尚、本明細書において、方向（符号）を有する検出値の大きさについて論じる場合には、その絶対値を用いる。従って、ここでは、電流の流す向きに関係しない絶対値の比較となる。
【００６４】
続いて、マイコン６０は、ステップＳ８において、目標電流Ｉｍ＊から電流センサ３１により検出されたモータ実電流Ｉｍを減算した偏差ΔＩを算出し、この偏差ΔＩを使ったＰＩ制御（比例積分制御）により、モータ実電流Ｉｍが目標電流Ｉｍ＊に追従するように目標指令電圧Ｖ＊を計算する。目標指令電圧Ｖ＊は、例えば、下記式により計算する。
Ｖ＊＝Ｋｐ・ΔＩ＋Ｋｉ・∫ΔＩ  ｄｔ
ここでＫｐは、ＰＩ制御における比例項の制御ゲイン、Ｋｉは、ＰＩ制御における積分項の制御ゲインである。
【００６５】
続いて、マイコン６０は、ステップＳ９において、目標指令電圧Ｖ＊に応じたＰＷＭ（Ｐulse  Ｗidth  Ｍodulation）制御信号をスイッチ駆動回路８０に出力する。スイッチ駆動回路８０は、入力した制御信号を増幅してモータ駆動回路４０に出力する。これにより、目標指令電圧Ｖ＊に応じたデューティ比のパルス信号列がＰＷＭ制御信号としてモータ駆動回路４０に出力される。このＰＷＭ制御信号により、各スイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４のデューティ比が制御され、モータ２０の駆動電圧が目標指令電圧Ｖ＊に調整される。こうして、モータ２０には、操舵操作方向に回転する向きに目標電流Ｉｍ＊が流れる。この結果、モータ２０は、運転者の操舵操作をアシストする。
【００６６】
マイコンは、ステップＳ９にて、ＰＷＭ制御信号を出力すると操舵アシスト制御ルーチンを一旦終了する。そして、所定の周期で上述した処理を繰り返す。
【００６７】
モータ駆動回路４０は、スイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４の劣化、ハンダ付け部の劣化等により内部抵抗が増加する。また、モータ２０は、ブラシ部の接触抵抗の増加などにより内部抵抗が増加する。内部抵抗（電気抵抗）が増加した場合には、発熱量が増加し、部品が破損する可能性がある。部品が破損した場合には、その時点から操舵アシストを実行できなくなる。そこで、本実施形態においては、モータ２０およびモータ駆動回路４０の内部抵抗値を測定（計算）し、測定した内部抵抗値が正常範囲から外れている場合には、内部抵抗値に応じてモータ２０の通電を制限する。例えば、内部抵抗値の増加にしたがってモータ２０の通電制限を厳しくする。
【００６８】
まず、モータ駆動回路４０およびモータ２０の内部抵抗値の測定方法から説明する。
【００６９】
図５に示すように、スイッチング素子Ｑ１の内部抵抗値をＲq1、スイッチング素子Ｑ２の内部抵抗値をＲq2、スイッチング素子Ｑ３の内部抵抗値をＲq3、スイッチング素子Ｑ４の内部抵抗値をＲq4、モータ２０の内部抵抗値をＲｍ、モータのインダクタンスをＬｍとする。スイッチング素子Ｑ２、Ｑ３をオフ、スイッチング素子Ｑ１、Ｑ４をオンにしてモータ２０を正回転させる方向に流れる電流をＩ１とし、スイッチング素子Ｑ１、Ｑ４をオフ、スイッチング素子Ｑ２、Ｑ３をオンにしてモータ２０を逆回転させる方向に流れる電流をＩ２とする。
【００７０】
電流Ｉ１を流したときの電圧方程式は、次式（１）にて表される。
Ｖcc＝Ｒq1・Ｉ１＋Ｒq4・Ｉ１＋（Ｖ１−Ｖ２）
＝（Ｒq1＋Ｒq4）・Ｉ１＋（Ｖ１−Ｖ２）    ・・・（１）
電流Ｉ２を流したときの電圧方程式は、次式（２）にて表される。
Ｖcc＝Ｒq3・Ｉ２＋Ｒq2・Ｉ２＋（Ｖ２−Ｖ１）
＝（Ｒq3＋Ｒq2）・Ｉ２−（Ｖ１−Ｖ２）    ・・・（２）
【００７１】
また、モータ２０の回転速度をω、モータ２０の誘起電圧定数をφ、モータ２０に流れる電流をＩ（＝Ｉ１またはＩ２）とすると、モータ２０の端子間電圧は、次式（３）にて表される。
Ｖ１−Ｖ２＝Ｒｍ・Ｉ＋Ｌｍ・ｄＩ／ｄｔ＋φ・ω    ・・・（３）
【００７２】
本実施形態においては、モータ２０の内部抵抗値Ｒｍの計算に当たっては、操舵ハンドル１１が回転しない程度の小さな直流電流Ｉ１をモータ２０に流し、そのときのモータ２０の各端子電圧Ｖ１，Ｖ２を測定する。例えば、スイッチング素子Ｑ２，Ｑ３をオフに維持した状態で、スイッチング素子Ｑ１，Ｑ４を所定のデューティ比で作動させてモータ２０に通電する。勿論、スイッチング素子Ｑ１，Ｑ４をオフに維持した状態で、スイッチング素子Ｑ２，Ｑ３を所定のデューティ比で作動させてモータ２０に通電してもよい。
【００７３】
モータ内部抵抗値Ｒｍは、（３）式において、ｄＩ／ｄｔ＝０，ω＝０を代入して、次式（４）にて求めることができる。
Ｒｍ＝（Ｖ１−Ｖ２）／Ｉ    ・・・（４）
この場合、電流センサ３１により検出されるモータ電流ＩがＩ１になるようにスイッチング素子Ｑ１，Ｑ４のデューティ比を制御し、その状態におけるモータ２０の各端子電圧Ｖ１，Ｖ２を測定すればよい。モータ２０に流す電流Ｉ１は小さな値に設定されるため、スイッチング素子Ｑ１，Ｑ４のデューティ比も小さくなる。
【００７４】
尚、本実施形態においては、モータ端子間電圧（Ｖ１−Ｖ２）を、第１電圧センサ３２により検出される第１モータ端子電圧Ｖ１から第２電圧センサ３３により検出される第２モータ端子電圧Ｖ２を減算して内部抵抗値を求めるが、電圧センサ３２，３３に代えて、第１モータ端子２０ａと第２モータ端子２０ｂとの間の電圧（端子間電圧）を直接検出する電圧センサを設けた構成であってもよい。
【００７５】
スイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４の内部抵抗値Ｒq1，Ｒq2，Ｒq3，Ｒq4の計算に当たっては、モータ２０を正回転させる方向に流れる電流とモータ２０を逆回転させる方向に流れる電流とを所定の周期で交互に流す。この場合、スイッチング素子Ｑ２，Ｑ３をオフにしてスイッチング素子Ｑ１，Ｑ４を一定時間（例えば、数ミリ秒程度）だけオンした状態でモータ電流Ｉ１とモータ端子電圧Ｖ１，Ｖ２と電源電圧Ｖccを測定し、次に、スイッチング素子Ｑ１，Ｑ４をオフにしてスイッチング素子Ｑ２，Ｑ３を一定時間（例えば、数ミリ秒程度）だけオンした状態でモータ電流Ｉ２とモータ端子電圧Ｖ１，Ｖ２と電源電圧Ｖccを測定する。これにより、モータ２０には正回転方向の電流と逆回転方向の電流とが交互に流れるため、操舵ハンドル１１の回転が防止される。
【００７６】
スイッチング素子Ｑ１，Ｑ４の内部抵抗値については、上記式（１）に基づいて次式（５）により計算することができる。
（Ｒq1＋Ｒq4）＝｛Ｖcc−（Ｖ１−Ｖ２）｝／Ｉ１    ・・・（５）
また、スイッチング素子Ｑ３，Ｑ２の内部抵抗値については、式（２）に基づいて次式（６）により計算することができる。
（Ｒq3＋Ｒq2）＝｛Ｖcc＋（Ｖ１−Ｖ２）｝／Ｉ２    ・・・（６）
【００７７】
また、スイッチング素子Ｑ１，Ｑ３，Ｑ２，Ｑ４の内部抵抗値の計算は、次式（７），（８），（９），（１０）にて行うようにすることもできる。これによれば、スイッチング素子Ｑ１，Ｑ３，Ｑ２，Ｑ４の個々の内部抵抗値Ｒq1，Ｒq3，Ｒq2，Ｒq4を計算することができる。
Ｒq1＝（Ｖcc−Ｖ１）／Ｉ１    ・・・（７）
Ｒq3＝（Ｖcc−Ｖ２）／Ｉ２    ・・・（８）
Ｒq2＝Ｖ１／Ｉ２    ・・・（９）
Ｒq4＝Ｖ２／Ｉ１    ・・・（１０）
【００７８】
次に、測定した内部抵抗値に基づいてモータ２０の作動を制限する処理について説明する。図６は、マイコン６０の実行するモータ制限値設定ルーチンを表す。モータ制限値設定ルーチンは、所定の周期で繰り返し実行される。
【００７９】
本ルーチンが起動すると、マイコン６０は、まず、ステップＳ１１において、カーテシスイッチ９２の検出信号Ｓを読み込み、検出信号Ｓがオフ状態からオン状態に変化したか否かを判断する。つまり、車両のドアが開けられたか（閉→開）否かを判断する。マイコン６０は、検出信号Ｓがオフ状態からオン状態に変化していない場合には、本ルーチンを一旦終了する。
【００８０】
本実施形態においては、車両が起動していないときに、運転者に気付かせないようにモータ２０に電流を流して、モータ２０およびモータ駆動回路４０の内部抵抗値を測定する。従って、ステップＳ１１は、運転者がドアを開けて車両に乗り込んだタイミング、あるいは、車両を降りるタイミングを検出するものである。尚、ステップＳ１１においては、電動パワーステアリング装置１のシステムがすでに起動して、操舵アシスト制御が行われている状況である場合には、「Ｎｏ」と判定する。また、この例では、運転者がドアを開けて車両に乗り込んだときと、運転者がドアを開けて車両を降りるときの両方において、「Ｙｅｓ」と判定されるが、何れか一方のみのタイミングを検出する構成であってもよい。
【００８１】
マイコン６０は、ステップＳ１１の判断を繰り返す。そして、カーテシスイッチ９２の検出信号Ｓがオフ状態からオン状態に変化したことを検出すると、続くステップＳ１２において、電動パワーステアリング装置１のシステムを起動させる。続いて、ステップＳ１３において、正常にシステムが起動したか否かを判断し、正常に起動できなかった場合には、ステップＳ１４において、操舵アシストを停止して本ルーチンを終了する。
【００８２】
電動パワーステアリング装置１のシステムが正常に起動した場合には、マイコン６０は、ステップＳ２０において、モータ２０の内部抵抗値の計算処理を実行する。図７は、その計算処理であるモータ内部抵抗値計算ルーチン（サブルーチン）を表すフローチャートである。
【００８３】
マイコン６０は、モータ内部抵抗値計算ルーチンを開始すると、ステップＳ２１において、カウンタ値ｉをゼロクリアする。続いて、ステップＳ２２において、カウンタ値ｉを値１だけインクリメントする。続いて、ステップＳ２３において、モータ２０に電流Ｉ１を流す。この場合、スイッチング素子Ｑ２，Ｑ３をオフに維持した状態で、スイッチング素子Ｑ１，Ｑ４のデューティ比を制御することにより、モータ２０に電流Ｉ１を流す。続いて、マイコン６０は、ステップＳ２４において、この通電状態におけるモータ端子電圧Ｖ１、第２モータ端子電圧Ｖ２、モータ電流Ｉ（モータ実電流Ｉｍ）を測定して、式（４）を使って、モータ内部抵抗値Ｒｍｉを計算する。このモータ内部抵抗値Ｒｍｉは、ＲＡＭ等のメモリに一時的に記憶される。
【００８４】
続いて、マイコン６０は、ステップＳ２５において、カウンタ値ｉが所定値Ｎ（例えば、Ｎ＝１０）以上であるか否かを判断し、カウンタ値ｉが所定値Ｎ未満である場合には、その処理をステップＳ２２に戻して同様の処理を行う。マイコン６０は、モータ２０への通電とモータ内部抵抗値Ｒｍｉの計算をＮ回繰り返すと（Ｓ２５：Ｙｅｓ）、ステップＳ２６において、Ｎ回計算したモータ内部抵抗値Ｒｍｉの平均値を計算する。マイコン６０は、モータ内部抵抗値Ｒｍｉの平均値を最終的な計算結果であるモータ内部抵抗値Ｒｍとして設定する。マイコン６０は、モータ内部抵抗値Ｒｍを計算すると、モータ内部抵抗値計算ルーチンを終了して、図６のメインルーチンのステップＳ３０からの処理を開始する。
【００８５】
モータ内部抵抗値は、ブラシと整流子片との接触位置によってばらつく。従って、内部抵抗値計算ルーチンにおいては、モータ内部抵抗値Ｒｍｉの移動平均を使って、最終的なモータ内部抵抗値Ｒｍを計算する。これにより、ブラシと整流子片との接触位置の影響がモータ内部抵抗値Ｒｍの計算値に現れなくなる。
【００８６】
マイコン６０は、モータ内部抵抗値Ｒｍを計算すると、続いて、メインルーチン（図６）のステップＳ３０において、モータ駆動回路４０内部抵抗値の計算処理を実行する。図８は、その計算処理である駆動回路内部抵抗値計算ルーチン（サブルーチン）を表すフローチャートである。
【００８７】
マイコン６０は、駆動回路内部抵抗値計算ルーチンを開始すると、ステップＳ３１において、カウンタ値ｊをゼロクリアする。続いて、ステップＳ３２において、カウンタ値ｊを値１だけインクリメントする。続いて、ステップＳ３３において、スイッチング素子Ｑ２，Ｑ３をオフに維持した状態で、スイッチング素子Ｑ１，Ｑ４を所定時間（例えば、数ミリ秒）だけオンにする。そして、ステップＳ３４において、この通電状態における第１モータ端子電圧Ｖ１、第２モータ端子電圧Ｖ２、電源電圧Ｖcc、モータ電流Ｉ（モータ実電流Ｉｍ）を測定して、式（７），（１０）を使って、スイッチング素子Ｑ１，Ｑ４の内部抵抗値Ｒq1ｊ，Ｒq4ｊを計算する。この内部抵抗値Ｒq1ｊ，Ｒq4ｊは、ＲＡＭ等のメモリに一時的に記憶される。
【００８８】
続いて、マイコン６０は、ステップＳ３５において、スイッチング素子Ｑ１，Ｑ４をオフに維持した状態で、スイッチング素子Ｑ２，Ｑ３を所定時間（例えば、数ミリ秒）だけオンにする。そして、ステップＳ３６において、この通電状態における第１モータ端子電圧Ｖ１、第２モータ端子電圧Ｖ２、電源電圧Ｖccを測定して、式（８），（９）を使って、スイッチング素子Ｑ２，Ｑ３の内部抵抗値Ｒq2ｊ，Ｒq3ｊを計算する。この内部抵抗値Ｒq2ｊ，Ｒq3ｊは、ＲＡＭ等のメモリに一時的に記憶される。
【００８９】
続いて、マイコン６０は、ステップＳ３７において、カウンタ値ｊが所定値Ｎ（例えば、Ｎ＝１０）以上であるか否かを判断し、カウンタ値ｊが所定値Ｎ未満である場合には、その処理をステップＳ３２に戻して同様の処理を行う。こうして正回転用のスイッチング素子Ｑ１，Ｑ４と逆回転用のスイッチング素子Ｑ２，Ｑ３とが所定の周期で交互にオンされる。この周期は、操舵ハンドル１１が回転しない程度の短時間に設定されている。
【００９０】
マイコン６０は、モータ２０への通電と内部抵抗値Ｒq1ｊ，Ｒq2ｊ，Ｒq3ｊ，Ｒq4ｊの計算をＮ回繰り返すと（Ｓ３７：Ｙｅｓ）、ステップＳ３８において、Ｎ回計算した内部抵抗値Ｒq1ｊ，Ｒq2ｊ，Ｒq3ｊ，Ｒq4ｊのそれぞれの平均値を計算する。マイコン６０は、内部抵抗値Ｒq1ｊ，Ｒq2ｊ，Ｒq3ｊ，Ｒq4ｊのそれぞれの平均値を最終的な計算結果である内部抵抗値Ｒq1，Ｒq2，Ｒq3，Ｒq4として設定する。マイコン６０は、内部抵抗値Ｒq1，Ｒq2，Ｒq3，Ｒq4を計算すると、駆動回路内部抵抗値計算ルーチンを終了して、図６のメインルーチンのステップＳ４０からの処理を開始する。
【００９１】
マイコン６０は、ステップＳ４０において、モータ内部抵抗値Ｒｍに基づいて、モータ２０の内部抵抗に関する正常、異常、半異常を判定する。例えば、マイコン６０は、予め、モータ内部抵抗値Ｒｍの正常範囲と異常範囲と半異常範囲とを区別する閾値として、第１閾値Ｒref_m1と第２閾値Ｒref_m2（＞Ｒref_m1）とを記憶している。第１閾値Ｒref_m1は、正常範囲の最大抵抗値を表し、第２閾値Ｒref_m2は異常範囲の最小抵抗値を表す。マイコン６０は、モータ内部抵抗値Ｒｍが第１Ｒref_m1より小さい場合には正常である判定し、モータ内部抵抗値Ｒｍが第２Ｒref_m1より大きい場合には異常である判定し、モータ内部抵抗値Ｒｍが第１閾値Ｒref_m1と第２閾値Ｒref_m2との間に入る場合（Ｒref_m1≦Ｒｍ≦Ｒref_m2）には半異常である判定する。尚、正常範囲に下限値を設定して短絡異常を検出するようにしてもよい。
【００９２】
マイコン６０は、ステップＳ４０において、モータ２０が異常であると判定した場合には、その処理をステップＳ１４に進めて、操舵アシストを停止して本ルーチンを終了する。一方、モータ２０が半異常であると判定した場合には、ステップＳ４１において、モータ抵抗用上限電流Ｉmax_mを設定する。マイコン６０は、例えば、図９に示すようなモータ抵抗用上限電流マップを記憶しており、このマップを参照してモータ抵抗用上限電流Ｉmax_mを設定する。モータ抵抗用上限電流マップは、モータ内部抵抗値Ｒｍが大きくなるにしたがってモータ抵抗用上限電流Ｉmax_mを小さくする特性を有する。
【００９３】
マイコン６０は、ステップＳ４０においてモータ２０が正常であると判定すると、あるいは、モータ２０が半異常であると判定してモータ抵抗用上限電流Ｉmax_mを設定すると、続くステップＳ４２において、スイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４の内部抵抗値Ｒq1，Ｒq2，Ｒq3，Ｒq4に基づいて、モータ駆動回路４０の内部抵抗に関する正常、異常、半異常を判定する。
【００９４】
マイコン６０は、例えば、内部抵抗値Ｒq1，Ｒq2，Ｒq3，Ｒq4のうちで最も大きな内部抵抗値Ｒｑを抽出し、その内部抵抗値Ｒｑを使って正常、異常、半異常を判定する。以下、内部抵抗値Ｒq1，Ｒq2，Ｒq3，Ｒq4の最大値を回路内部抵抗値Ｒｑと呼ぶ。
【００９５】
マイコンは、予め、回路内部抵抗値Ｒｑの正常範囲と異常範囲と半異常範囲とを区別する閾値として、第１閾値Ｒref_q1と第２閾値Ｒref_q2（＞Ｒref_q1）とを記憶している。第１閾値Ｒref_q1は、正常範囲の最大抵抗値を表し、第２閾値Ｒref_q2は異常範囲の最小抵抗値を表す。マイコン６０は、回路内部抵抗値Ｒｑが第１Ｒref_q1より小さい場合には正常である判定し、回路内部抵抗値Ｒｑが第２Ｒref_q1より大きい場合には異常である判定し、回路内部抵抗値Ｒｑが第１閾値Ｒref_q1と第２閾値Ｒref_q2との間に入る場合（Ｒref_q1≦Ｒｑ≦Ｒref_q2）には半異常である判定する。尚、正常範囲に下限値を設定して短絡異常を検出するようにしてもよい。
【００９６】
マイコン６０は、ステップＳ４２において、モータ駆動回路４０が異常であると判定した場合には、その処理をステップＳ１４に進めて、操舵アシストを停止して本ルーチンを終了する。一方、モータ駆動回路４０が半異常であると判定した場合には、ステップＳ４３において、回路抵抗用上限電流Ｉmax_qを設定する。マイコン６０は、例えば、図１０に示すような回路抵抗用上限電流マップを記憶しており、このマップを参照して回路抵抗用上限電流Ｉmax_qを設定する。回路抵抗用上限電流マップは、回路内部抵抗値Ｒｑが大きくなるにしたがって回路抵抗用上限電流Ｉmax_qを小さくする特性を有する。
【００９７】
モータ抵抗用上限電流マップと回路抵抗用上限電流マップとは、それぞれ独立して設定されている。従って、モータ２０が半異常状態となっている場合に適した上限電流値（モータ抵抗用上限電流Ｉmax_m）と、モータ駆動回路４０が半異常状態となっている場合に適した上限電流値（回路抵抗用上限電流Ｉmax_q）とを別々に設定することができる。
【００９８】
マイコン６０は、ステップＳ４２においてモータ駆動回路４０が正常であると判定すると、あるいは、モータ駆動回路４０が半異常であると判定して回路抵抗用上限電流Ｉmax_qを設定すると、続くステップＳ４４において、モータ抵抗用上限電流Ｉmax_mが回路抵抗用上限電流Ｉmax_qよりも大きいか否かを判定する。
【００９９】
マイコン６０は、モータ抵抗用上限電流Ｉmax_mが回路抵抗用上限電流Ｉmax_qよりも大きい場合には（Ｓ４４：Ｙｅｓ）、ステップＳ４５において、上述した操舵アシスト制御ルーチンで使用する上限電流Ｉmaxとして回路抵抗用上限電流Ｉmax_qを設定する（Ｉmax←Ｉmax_q）。逆に、モータ抵抗用上限電流Ｉmax_mが回路抵抗用上限電流Ｉmax_q以下となる場合には（Ｓ４４：Ｎｏ）、ステップＳ４６において、モータ抵抗用上限電流Ｉmax_mを上限電流Ｉmaxとして設定する（Ｉmax←Ｉmax_m）。これにより、上限電流Ｉmaxは、モータ抵抗用上限電流Ｉmax_mと回路抵抗用上限電流Ｉmax_qのうち、小さい方の値が設定される。尚、ステップＳ４０，４２のどちらにおいても正常と判定された場合には、上限電流Ｉmaxは、正常時用の値に設定される。正常時における上限電流Ｉmaxは、予め設定した固定値でもよいし、後述する変形例のように、モータ推定温度Ｔｍと基板温度Ｔｂに応じて設定される変動値であってもよい。
【０１００】
マイコン６０は、上限電流Ｉmaxを設定すると、モータ制限値設定ルーチンを一旦終了する。
【０１０１】
以上説明した本実施形態の電動パワーステアリング装置１によれば、以下の作用効果を奏する。
１．モータ２０およびモータ駆動回路４０の内部抵抗値を測定するため、それらの半異常状態を確実に検出することができる。例えば、スイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４の内部抵抗の増加、ハンダ付け部の劣化、モータ２０のブラシの接触抵抗の増加などにより、モータ通電路の内部抵抗が増加すると、発熱量が増加してモータ通電路に損傷が発生する可能性があるが、本実施形態においては、こうした損傷に至る前の半異常状態を検出することができる。
【０１０２】
２.半異常状態を検出した場合には、モータ２０の上限電流Ｉmaxを正常時に比べて低く設定するため、モータ２０およびモータ駆動回路４０の発熱を抑えることができる。これにより、それらの劣化進行を抑制することができる。また、モータ２０あるいはモータ駆動回路４０の内部抵抗値が大きいほどモータ２０の上限電流Ｉmaxを小さく設定するため、半異常の程度に応じた適切な上限電流Ｉmaxを設定することができる。これにより、適切に電動パワーステアリング装置１の延命を図ることができる。
【０１０３】
３．モータ２０あるいはモータ駆動回路４０に故障が発生したとしても、それ以前から、内部抵抗値の増加に基づいてモータ２０の作動が制限されているため、突然、操舵アシストが停止して操舵力が急変することがない。このため、運転者の負担を軽減することができる。
【０１０４】
４．モータ２０およびモータ駆動回路４０の内部抵抗値の測定は、カーテシスイッチ９２がオンしたタイミングで行うようにしているため、運転者が気付かないようにすることができる。
【０１０５】
５．モータ２０およびモータ駆動回路４０の内部抵抗は、徐々に変化していくが、予め設定されたタイミングが到来する度に抵抗値測定を行うため、内部抵抗増加の進行を確実に検出することができる。
【０１０６】
６．モータ駆動回路４０の内部抵抗値の測定時においては、正回転方向の通電と逆回転方向の通電とを交互に行うようにしているため、操舵ハンドル１１を回らないようにすることができる。また、モータ２０の内部抵抗値の測定時においては、モータ２０に流す電流を小さくしているため、操舵ハンドル１１を回らないようにすることができる。
【０１０７】
７．内部抵抗値の測定は、複数回行った移動平均値を用いているため、ブラシと整流子片との接触位置の影響が計算値に現れなくなり、精度の高いものとなる。
【０１０８】
８．モータ２０の内部抵抗値Ｒｍから設定されるモータ抵抗用上限電流Ｉmax_mと、モータ駆動回路４０の内部抵抗値Ｒｑから設定される回路抵抗用上限電流Ｉmax_qとの両方を計算し、両者のうちの小さい方の値を上限電流Ｉmaxに設定するため、モータ２０とモータ駆動回路４０との両方を適正に保護することができる。
【０１０９】
次に、本実施形態の変形例について説明する。
＜変形例１：内部抵抗値の測定タイミング＞
上記実施形態においては、カーテシスイッチ９２の検出信号Ｓを使って内部抵抗値の測定を開始するようにしているが（Ｓ１１参照）、内部抵抗値の測定を行うタイミングは、種々設定することができる。例えば、カーテシスイッチ９２に代えて、着座センサ９３（図１に破線にて示す）の検出信号Ｓを使って、内部抵抗値の測定を行うタイミングを設定しても良い。着座センサ９３は、運転者の運転座席への着座状態を表す検出信号Ｓを出力する。従って、着座センサ９３により運転者が運転席に座ったことを検出したタイミング、あるいは、着座センサ９３により運転者が運転席から降りたことを検出したタイミングで内部抵抗値の測定を行うようにするとよい。
【０１１０】
また、内部抵抗値の測定は、夜間に行うようにしてもよい。この場合、例えば、マイコン６０に設けられた時計機能を使って、予め設定された夜間の所定時刻において、内部抵抗値の測定を行うようにすればよい。
【０１１１】
また、予め設定した所定時間間隔で内部抵抗値の測定を行うようにしてもよい。
【０１１２】
＜変形例２：モータの作動制限＞
上記実施形態においては、モータ２０あるいはモータ駆動回路４０の半異常状態を検出したときに、内部抵抗値Ｒｍ，Ｒｑに応じた上限電流Ｉmaxを設定してモータ２０の作動を制限しているが、モータ２０の作動制限についても、種々の手法を採用することができる。
＜変形例２−１：経過時間に応じた電流制限＞
例えば、上限電流Ｉmaxを時間の経過とともに徐々に低減させる構成を採用することができる。モータ２０あるいはモータ駆動回路４０の内部抵抗値Ｒは、図１１に示すように、時間ｔの経過とともに徐々に増加していく。そこで、この変形例においては、図１２に示すように、半異常状態を最初に検出してからの経過時間ｔを測定し、上限電流Ｉmaxを、正常時における上限電流Ｉmax０を初期値として、時間経過ｔとともに初期値Ｉmax０から徐々に低減させる。この場合、経過時間ｔは、電動パワーステアリング装置１のシステムが作動している時間の累積値、つまり、操舵アシスト制御が行われている時間の累積値とすればよい。この例では、経過時間ｔが停止設定時間ｔ１に達したときに、操舵アシストを停止する。従って、停止設定時間ｔ１は、半異常状態が検出されてからの操舵アシスト実行可能期間となる。
【０１１３】
図１３、図１４は、この変形例２−１におけるマイコン６０の処理を表す。この処理は、実施形態のモータ制限値設定ルーチン（図６）に代えるものである。図１３が内部抵抗値判定ルーチンを表し、図１４がモータ制限値設定ルーチンを表す。以下、実施形態のモータ制限値設定ルーチン（図６）と同じ処理については、図面に実施形態と同一のステップ番号を付して説明を省略する。内部抵抗値判定ルーチン、モータ制限値設定ルーチンは、並行して所定の周期で実行される。
【０１１４】
内部抵抗値判定ルーチン（図１３）が起動すると、マイコン６０は、まず、ステップＳ５１において、半異常判定フラグＦが「０」であるか否かを判断する。この半異常判定フラグＦは、「１」によりモータ２０あるいはモータ駆動回路４０の半異常状態が検出されたことを表し、「０」により上記半異常状態が検出されていないことを表す。半異常判定フラグＦの初期値は「０」に設定されている。マイコン６０は、半異常判定フラグＦが「０」（Ｆ＝０）であれば、ステップＳ１１からの処理を行う。
【０１１５】
マイコン６０は、ステップＳ４０において、モータ２０の半異常状態を検出した場合、あるいは、ステップＳ４２において、モータ駆動回路４０の半異常状態を検出した場合には、ステップＳ５２において、半異常判定フラグＦを「１」に設定して内部抵抗値判定ルーチンを一旦終了する。
【０１１６】
また、マイコン６０は、ステップＳ４０，Ｓ４２において、モータ２０とモータ駆動回路４０とが正常であると判定した場合には、そのまま内部抵抗値判定ルーチンを一旦終了する。この場合は、上限電流Ｉmaxは、正常時用の値に設定される。
【０１１７】
内部抵抗値判定ルーチンは所定の周期で繰り返されるが、一旦、半異常判定フラグＦが「１」に設定された後は、ステップＳ５１の判断が「Ｎｏ」となる。この場合、モータ２０およびモータ駆動回路４０の内部抵抗値の検出が行われなくなり、代わりに、図１４に示すモータ制限値設定ルーチンによる上限電流Ｉmaxの計算が行われるようになる。
【０１１８】
マイコン６０は、モータ制限値設定ルーチン（図１４）のステップＳ６１において、半異常判定フラグＦが「１」に設定されているか否かについて判断する。マイコン６０は、半異常判定フラグＦが「１」に設定されるまでこの判断を繰り返すが、半異常判定フラグＦが「１」に設定されるまでの期間においては、上述した内部抵抗値判定ルーチンで内部抵抗値による異常判定（Ｓ４０，Ｓ４２）を行う。
【０１１９】
半異常判定フラグＦが「１」に設定されると（Ｓ６１：Ｙｅｓ）、マイコン６０は、ステップＳ６２において、タイマ値ｔを値１だけインクリメントする。このタイマ値ｔは、半異常判定フラグＦが「１」に設定されてからの経過時間、つまり、モータ２０あるいはモータ駆動回路４０の半異常状態が検出されてからの経過時間を表す。タイマ値ｔの初期値は、ゼロに設定されている。
【０１２０】
続いて、マイコン６０は、ステップＳ６３において、タイマ値ｔに応じた上限電流Ｉmaxを計算する。マイコンは、図１２に示すような上限電流マップを記憶しており、この上限電流マップを参照して、タイマ値ｔ（経過時間）に応じた上限電流Ｉmaxを設定する。上限電流マップは、上限電流Ｉmaxを時間経過とともに初期値Ｉmax０から徐々に低減させる特性を有する。上限電流Ｉmaxは、操舵アシスト制御ルーチンのステップＳ４において使用されるモータ２０の電流制限値である。続いて、マイコン６０は、ステップＳ６４において、タイマ値ｔが予め設定された停止設定時間ｔ１に達したか否かを判断する。タイマ値ｔが停止設定時間ｔ１に到達していない場合には、モータ制限値設定ルーチンを一旦終了する。
【０１２１】
マイコン６０は、こうした処理を所定の周期で繰り返す。これにより、経過時間ｔが増加していくにしたがって徐々に減少する上限電流Ｉmaxが設定されることになる。従って、時間経過とともにモータ２０の作動制限が大きく（厳しく）なっていく。そして、経過時間ｔが停止設定時間ｔ１に到達すると（Ｓ６４：Ｙｅｓ）、マイコン６０は、ステップＳ６５において、操舵アシストを停止し、それ以降の操舵アシスト制御を禁止する。また、内部抵抗値判定ルーチンおよびモータ制限値設定ルーチンを終了する。
【０１２２】
尚、上限電流マップは、予め想定されるモータ２０あるいはモータ駆動回路４０の内部抵抗値の変化（図１１参照）に基づいて設定されている。従って、停止設定時間ｔ１は、非常に長い時間を想定したものである。このため、マイコン６０は、イグニッションスイッチがオフになってもタイマ値ｔを記憶保持できるように、モータ制限値設定ルーチンを終了する都度、図示しない不揮発性メモリにタイマ値ｔを記憶する。そして、モータ制限値設定ルーチンを再開させる都度、不揮発性メモリに記憶したタイマ値ｔを読み込んで、このタイマ値ｔをインクリメントしていくことで累積時間をカウントする。
【０１２３】
この変形例２−１によれば、モータ２０あるいはモータ駆動回路４０の半異常状態が検出された場合、その時点から、内部抵抗値の経時変化に応じた上限電流Ｉmaxを設定するため、モータ２０の作動制限を適切に行うことができる。
【０１２４】
＜変形例２−２：半異常発生部位に応じた電流制限＞
モータ２０の半異常状態が検出されてから異常状態へ至るまでの時間（残存寿命）と、モータ駆動回路４０の半異常状態が検出されてから異常状態へ至るまでの時間（残存寿命）とは必ずしも一致しない。そこで、この変形例２−２においては、モータ２０の半異常状態が検出された場合と、モータ駆動回路４０の半異常状態が検出された場合とで、停止設定時間ｔ１が異なるように設定した上限電流マップを使用して上限電流Ｉmaxを計算する。これにより、半異常部位の残存寿命に応じた適切な操舵アシスト実行可能期間を設定することができる。
【０１２５】
図１５、図１６は、この変形例２−２におけるマイコン６０の処理を表す。この処理は、実施形態のモータ制限値設定ルーチン（図６）に代えるものである。図１５が内部抵抗値判定ルーチンを表し、図１６がモータ制限値設定ルーチンを表す。以下、実施形態のモータ制限値設定ルーチン（図６）と同じ処理については、図面に実施形態と同一のステップ番号を付して説明を省略する。内部抵抗値判定ルーチン、モータ制限値設定ルーチンは、並行して所定の周期で実行される。
【０１２６】
内部抵抗値判定ルーチン（図１５）が起動すると、マイコン６０は、まず、ステップＳ７１において、モータ半異常判定フラグＦｍが「０」であるか否かを判断する。このモータ半異常判定フラグＦｍは、「１」によりモータ２０の半異常状態が検出されたことを表し、「０」により上記半異常状態が検出されていないことを表す。モータ半異常判定フラグＦｍの初期値は「０」に設定されている。マイコン６０は、モータ半異常判定フラグＦｍが「０」（Ｆｍ＝０）であれば、テップＳ７２において、回路半異常判定フラグＦｑが「０」であるか否かを判断する。この回路半異常判定フラグＦｑは、「１」によりモータ駆動回路４０の半異常状態が検出されたことを表し、「０」により上記半異常状態が検出されていないことを表す。回路半異常判定フラグＦｑの初期値は「０」に設定されている。
【０１２７】
マイコン６０は、回路半異常判定フラグＦｑが「０」（Ｆｑ＝０）であれば、ステップＳ１１からの処理を行う。
【０１２８】
マイコン６０は、ステップＳ４０において、モータ２０の半異常状態を検出した場合には、ステップＳ７３において、モータ半異常判定フラグＦｍを「１」に設定して内部抵抗値判定ルーチンを一旦終了する。また、ステップＳ４２において、モータ駆動回路４０の半異常状態を検出した場合には、ステップＳ７４において、回路半異常判定フラグＦｑを「１」に設定して内部抵抗値判定ルーチンを一旦終了する。
【０１２９】
また、マイコン６０は、ステップＳ４０，Ｓ４２において、モータ２０とモータ駆動回路４０とが正常であると判定した場合には、そのまま内部抵抗値判定ルーチンを一旦終了する。この場合は、上限電流Ｉmaxは、正常時用の値に設定される。
【０１３０】
内部抵抗値判定ルーチンは所定の周期で繰り返されるが、一旦、モータ半異常判定フラグＦｍ、あるいは、回路半異常判定フラグＦｑが「１」に設定された後は、ステップＳ７１あるいはステップＳ７２の判断が「Ｎｏ」となる。この場合、モータ２０およびモータ駆動回路４０の内部抵抗値の検出が行われなくなり、代わりに、図１６に示すモータ制限値設定ルーチンによる上限電流Ｉmaxの計算が行われるようになる。
【０１３１】
マイコン６０は、モータ制限値設定ルーチン（図１６）のステップＳ８１において、モータ半異常判定フラグＦｍが「１」に設定されているか否かを判断する。モータ半異常判定フラグＦｍが「０」（Ｆｍ＝０）であれば、マイコン６０は、ステップＳ８２において、回路半異常判定フラグＦｑが「１」に設定されているか否かを判断する。マイコン６０は、モータ半異常判定フラグＦｍあるいは回路半異常判定フラグＦｑが「１」に設定されるまでこの２つの判断を繰り返すが、モータ半異常判定フラグＦｍあるいは回路半異常判定フラグＦｑが「１」に設定されるまでの期間においては、上述した内部抵抗値判定ルーチンで内部抵抗値による異常判定（Ｓ４０，Ｓ４２）を行う。
【０１３２】
マイコン６０は、２つの半異常判定フラグＦｍ，Ｆｑの設定状態を繰り返し判断して、モータ半異常判定フラグＦｍが「１」に設定された場合には（Ｓ８１：Ｙｅｓ）、ステップＳ８３において、タイマ値ｔを値１だけインクリメントする。このタイマ値ｔは、モータ半異常判定フラグＦｍが「１」に設定されてからの経過時間、つまり、モータ２０の半異常状態が検出されてからの経過時間を表す。タイマ値ｔの初期値は、ゼロに設定されている。
【０１３３】
続いて、マイコン６０は、ステップＳ８４において、タイマ値ｔに応じた上限電流Ｉmaxを計算する。マイコンは、図１７に示すような上限電流マップを記憶しており、この上限電流マップを参照して、タイマ値ｔ（経過時間）に応じた上限電流Ｉmaxを設定する。この上限電流マップは、上限電流Ｉmaxを時間経過とともに初期値Ｉmax０から徐々に低減させる特性を有するが、モータ半異常判定フラグＦｍが「１」に設定されている場合、つまり、モータ２０の半異常状態が検出されている場合と、回路半異常判定フラグＦｑが「１」に設定されている場合、つまり、モータ駆動回路４０の半異常状態が検出されている場合とで、その特性が異なるように設定されている。
【０１３４】
例えば、モータ２０の半異常状態が検出されてからの残存寿命が、モータ駆動回路４０の半異常状態が検出されてから残存寿命よりも短い場合には、図１７のように、モータ２０の半異常状態が検出された場合の停止設定時間ｔ１ｍを、モータ駆動回路４０の半異常状態が検出され場合の停止設定時間ｔ１ｑよりも短くするとよい。尚、モータ２０とモータ駆動回路４０とで残存寿命の関係が逆になる場合には、この特性を逆にして、停止設定時間ｔ１ｍを停止設定時間ｔ１ｑよりも長く設定するとよい。
【０１３５】
マイコン６０は、ステップＳ８４において、上限電流マップを参照して上限電流Ｉmaxを設定すると、続くステップＳ８５において、タイマ値ｔが予め設定された停止設定時間ｔ１ｍに達したか否かを判断する。タイマ値ｔが停止設定時間ｔ１ｍに到達していない場合には、モータ制限値設定ルーチンを一旦終了する。
【０１３６】
マイコン６０は、こうした処理を所定の周期で繰り返す。これにより、経過時間ｔが増加していくにしたがって徐々に減少する上限電流Ｉmaxが設定されることになる。従って、時間経過とともにモータ２０の作動制限が大きく（厳しく）なっていく。そして、経過時間ｔが停止設定時間ｔ１ｍに到達すると（Ｓ８５：Ｙｅｓ）、マイコン６０は、ステップＳ８６において、操舵アシストを停止し、それ以降の操舵アシスト制御を禁止する。また、内部抵抗値判定ルーチンおよびモータ制限値設定ルーチンを終了する。
【０１３７】
一方、回路半異常判定フラグＦｑが「１」に設定された場合には（Ｓ８２：Ｙｅｓ）、ステップＳ８７において、タイマ値ｔを値１だけインクリメントする。このタイマ値ｔは、回路半異常判定フラグＦｑが「１」に設定されてからの経過時間、つまり、モータ駆動回路４０の半異常状態が検出されてからの経過時間を表す。タイマ値ｔの初期値は、ゼロに設定されている。
【０１３８】
続いて、マイコン６０は、ステップＳ８８において、上限電流マップ（図１７）を参照してタイマ値ｔに応じた上限電流Ｉmaxを計算する。続いて、ステップＳ８９において、タイマ値ｔが予め設定された停止設定時間ｔ１ｑに達したか否かを判断する。タイマ値ｔが停止設定時間ｔ１ｑに到達していない場合には、モータ制限値設定ルーチンを一旦終了する。
【０１３９】
マイコン６０は、こうした処理を所定の周期で繰り返す。これにより、経過時間ｔが増加していくにしたがって徐々に減少する上限電流Ｉmaxが設定されることになる。従って、時間経過とともにモータ２０の作動制限が大きく（厳しく）なっていく。そして、経過時間ｔが停止設定時間ｔ１ｑに到達すると（Ｓ８９：Ｙｅｓ）、マイコン６０は、ステップＳ８６において、操舵アシストを停止し、それ以降の操舵アシスト制御を禁止する。また、内部抵抗値判定ルーチンおよびモータ制限値設定ルーチンを終了する。
【０１４０】
この変形例２−２によれば、モータ２０が半異常状態になった場合と、モータ駆動回路４０が半異常状態になった場合とで、それぞれ独立した上限電流Ｉmaxの特性および停止設定時間ｔ１が設定される。つまり、半異常が発生した部位に応じて、上限電流Ｉmaxの特性および停止設定時間ｔ１が切り替えられる。これにより、半異常部位の劣化進行度合に応じた適切な操舵アシストを実行することができる。また、半異常部位の残存寿命に応じた適切な操舵アシスト実行可能期間を設定することができる。この結果、一層適切にモータ２０の作動制限を行うことができる。
【０１４１】
＜変形例２−３：最大電圧による作動制限＞
モータ２０の作動制限については、モータ２０に印加する最大電圧を制限する構成を採用することもできる。例えば、目標指令電圧Ｖ＊の上限値である上限指令電圧Ｖmaxを内部抵抗値に応じた値に設定する。この場合、マイコン６０は、図１９に示すようなモータ抵抗用上限指令電圧マップ、および、図２０に示すような回路抵抗用上限指令電圧マップを記憶している。モータ抵抗用上限指令電圧マップは、内部抵抗値Ｒｍが大きくなるにしたがってモータ抵抗用上限指令電圧Ｖmax_mを小さくする特性を有する。また、回路抵抗用上限指令電圧マップは、内部抵抗値Ｒｑが大きくなるにしたがって回路抵抗用上限指令電圧Ｖmax_qを小さくする特性を有する。
【０１４２】
マイコン６０は、図１８に示すモータ制限値設定ルーチンを実行する。このモータ制限値設定ルーチンは、実施形態におけるモータ制限値設定ルーチン(図６）を一部変更したものである。以下、実施形態と同じ処理については、図面に実施形態と同一のステップ番号を付して説明を省略する。
【０１４３】
マイコン６０は、ステップＳ４０において、モータ２０が半異常であると判定した場合には、ステップＳ９１において、図１９に示すモータ抵抗用上限指令電圧マップを参照して、モータ抵抗用上限指令電圧Ｖmax_mを設定する。また、ステップＳ４２において、モータ駆動回路４０が半異常であると判定した場合には、ステップＳ９３において、図２０に示す回路抵抗用上限指令電圧マップを参照して、回路抵抗用上限指令電圧Ｖmax_qを設定する。
【０１４４】
マイコン６０は、モータ抵抗用上限指令電圧Ｖmax_mが回路抵抗用上限指令電圧Ｖmax_qよりも大きい場合には（Ｓ９４：Ｙｅｓ）、ステップＳ９５において、上限指令電圧Ｖmaxを回路抵抗用上限指令電圧Ｖmax_qに設定する。逆に、モータ抵抗用上限指令電圧Ｖmax_mが回路抵抗用上限指令電圧Ｖmax_q以下となる場合には（Ｓ９４：Ｎｏ）、ステップＳ９６において、上限指令電圧Ｖmaxをモータ抵抗用上限指令電圧Ｖmax_mに設定する。これにより、上限指令電圧Ｖmaxは、モータ抵抗用上限指令電圧Ｖmax_mと回路抵抗用上限指令電圧Ｖmax_qとのうち、小さい方の値が設定される。
【０１４５】
この上限指令電圧Ｖmaxは操舵アシスト制御ルーチンに使用される。図２１は、変形例としての操舵アシスト制御ルーチンを表す。この操舵アシスト制御ルーチンは、実施形態における操舵アシスト制御ルーチン(図３）を一部変更したものである。以下、実施形態と同じ処理については、図面に実施形態と同一のステップ番号を付して説明を省略する。
【０１４６】
マイコン６０は、ステップＳ３において必要電流Ｉ＊を計算すると、ステップＳ８において、この必要電流Ｉ＊を目標電流Ｉｍ＊に設定して、目標電流Ｉｍ＊から電流センサ３１により検出されたモータ実電流Ｉｍを減算した偏差ΔＩを算出し、この偏差ΔＩを使ったＰＩ制御（比例積分制御）により、モータ実電流Ｉｍが目標電流Ｉｍ＊に追従するための目標指令電圧Ｖ＊を計算する。
【０１４７】
続いて、マイコンは、ステップＳ１０１において、上述したモータ制限値設定ルーチンで計算した上限指令電圧Ｖmaxを読み込む。続いて、ステップＳ１０２において、目標指令電圧Ｖ＊が上限指令電圧Ｖmaxよりも大きいか否かを判断し、目標指令電圧Ｖ＊が上限指令電圧Ｖmaxよりも大きい場合には、ステップＳ１０３において、目標指令電圧Ｖ＊を上限指令電圧Ｖmaxに設定する。一方、目標指令電圧Ｖ＊が上限指令電圧Ｖmax以下であれば、ステップＳ１０３の処理を飛ばす。つまり、目標指令電圧Ｖ＊を変更しない。
【０１４８】
この変形例２−３においては、モータ２０あるいはモータ駆動回路４０が半異常状態となった場合には、半異常の程度に応じた上限指令電圧Ｖmaxを設定するため、実施形態と同様の作用効果を得ることができる。
【０１４９】
＜変形例２−４：経過時間に応じた電圧制限＞
上記変形例２−１においては、上限電流Ｉmaxを時間の経過とともに徐々に低減させるようにしたが、この変形例２−４においては、それに代えて、図２２に示すように、上限指令電圧Ｖmaxを時間の経過とともに徐々に低減させる。この場合、マイコン６０は、図１３に示す内部抵抗値判定ルーチンと、図１４に示すモータ制限値設定ルーチンと、図２１に示す操舵アシスト制御ルーチンと同様の処理を実行する。但し、マイコン６０は、図２２に示すような特性を有する上限指令電圧マップを記憶しており、モータ制限値設定ルーチン（図１４）のステップＳ６３においては、上限電流Ｉmaxの設定に代えて、この上限指令電圧マップを参照した上限指令電圧Ｖmaxの設定を行う。
【０１５０】
従って、マイコン６０は、モータ２０あるいはモータ駆動回路４０の半異常状態を検出すると、半異常状態を最初に検出してからの経過時間ｔをカウントし、上限指令電圧Ｖmaxを、正常時における上限指令電圧Ｖmax０を初期値として、時間経過とともに初期値Ｖmax０から徐々に低減させる。そして、経過時間ｔが停止設定時間ｔ１に到達すると（Ｓ６４：Ｙｅｓ）、操舵アシストを停止する。この変形例２−４においても、変形例２−１と同様に、マイコン６０は、タイマ値ｔを不揮発性メモリに記憶保持して累積時間をカウントする。
【０１５１】
この変形例２−４によれば、モータ２０あるいはモータ駆動回路４０の半異常状態が検出された場合、その時点から、内部抵抗値の経時変化に応じた上限指令電圧Ｖmaxを設定するため、モータ２０の作動制限を適切に行うことができる。
【０１５２】
＜変形例２−５：半異常発生部位に応じた電圧制限＞
上記変形例２−２においては、上限電流Ｉmaxを時間の経過とともに徐々に低減させ、かつ、モータ２０の半異常状態が検出された場合と、モータ駆動回路４０の半異常状態が検出された場合とで、特性の異なる上限電流マップを使用して上限電流Ｉmaxを計算したが、この変形例２−５においては、上限電流Ｉmaxに代えて、上限指令電圧Ｖmaxを時間の経過とともに徐々に低減させる。この場合、マイコン６０は、図１５に示す内部抵抗値判定ルーチンと、図１６に示すモータ制限値設定ルーチンと、図２１に示す操舵アシスト制御ルーチンと同様の処理を実行する。
【０１５３】
但し、マイコン６０は、図２３に示すような特性を有する上限指令電圧マップを記憶しており、モータ制限値設定ルーチン（図１６）のステップＳ８４，Ｓ８８においては、この上限指令電圧マップを参照して、上限指令電圧Ｖmaxを設定する。また、ステップＳ８５，Ｓ８９においては、この上限指令電圧マップで設定される停止設定時間ｔ１ｍまたは停止設定時間ｔ１ｑにて操舵アシストを停止する。
【０１５４】
この上限指令電圧マップは、上限指令電圧Ｖmaxを時間経過とともに初期値Ｖmax０から徐々に低減させる特性を有するが、モータ半異常判定フラグＦｍが「１」に設定されている場合、つまり、モータ２０の半異常状態が検出されている場合と、回路半異常判定フラグＦｑが「１」に設定されている場合、つまり、モータ駆動回路４０の半異常状態が検出されている場合とで、その特性が異なるように設定されている。
【０１５５】
図２３は、モータ２０の半異常状態が検出されてからの残存寿命が、モータ駆動回路４０の半異常状態が検出されてから残存寿命よりも短い場合の、上限指令電圧Ｖmaxの設定例を表す。この例では、モータ２０の半異常状態が検出された場合には、停止設定時間ｔ１ｍが設定され、モータ駆動回路４０の半異常状態が検出された場合には、停止設定時間ｔ１ｍよりも長い停止設定時間ｔ１Qが設定される。尚、モータ２０とモータ駆動回路４０とで残存寿命の関係が逆になる場合には、この特性を逆にして、停止設定時間ｔ１ｍを停止設定時間ｔ１ｑよりも長く設定するとよい。
【０１５６】
この変形例２−５によれば、モータ２０が半異常状態になった場合と、モータ駆動回路４０が半異常状態になった場合とで、それぞれ独立した上限指令電圧Ｖmaxの特性および停止設定時間ｔ１が設定される。つまり、半異常が発生した部位に応じて、上限指令電圧Ｖmaxの特性および停止設定時間ｔ１が切り替えられる。これにより、半異常部位の劣化進行度合に応じた適切な操舵アシストを実行することができる。また、半異常部位の残存寿命に応じた適切な操舵アシスト実行可能期間を設定することができる。この結果、一層適切にモータ２０の作動制限を行うことができる。
【０１５７】
＜変形例２−６：目標アシストトルクによる作動制限＞
モータ２０の作動制限については、モータ２０あるいはモータ駆動回路４０の半異常状態が検出されたときに、目標アシストトルクｔｒ＊を正常時に比べて小さくするようにしてもよい。例えば、操舵アシスト制御ルーチン（図３）のステップＳ２において、アシストマップから設定された目標アシストトルクｔｒ＊に制限係数Ｋ（０≦Ｋ＜１）を乗じ、その計算値（ｔｒ＊×Ｋ）を、最終的な目標アシストトルクｔｒ＊に設定するような補正を行うようにしてもよい。この場合、制限係数Ｋは、モータ２０あるいはモータ駆動回路４０の内部抵抗値が大きくなるにしたがって小さな値に設定されると良い。
【０１５８】
また、半異常状態を最初に検出してからの経過時間ｔを測定し、制限係数Ｋを、正常時における値「１」から徐々に低減させるようにして、経過時間ｔが停止設定時間ｔ１に達したときに、操舵アシストを停止するようにしてもよい。
【０１５９】
また、モータ２０あるいはモータ駆動回路４０の半異常状態が検出された場合には、車速ｖｘに関わらず、常に、高速走行時のアシストマップの特性を使って目標アシストトルクｔｒ＊を設定するようにしてもよい（図４参照）。これによれば、目標アシストトルクｔｒ＊が正常時に比べて小さく設定されてモータ２０の作動が制限される。
【０１６０】
＜変形例２−７：推定温度による電流制限との組み合わせ＞
上記実施形態においては、モータ２０の内部抵抗値Ｒｍとモータ駆動回路４０の内部抵抗値Ｒｑとに基づいて上限電流Ｉmaxを設定しているが、これに加えて、モータ推定温度Ｔｍと基板温度Ｔｂとを考慮して上限電流Ｉmaxを設定するようにしてもよい。図２４は、マイコン６０により所定の周期で実行されるモータ制限値設定ルーチンを表す。このモータ制限値設定ルーチンを実行するにあたって、マイコン６０は、図２５（ａ）に示すように、モータ推定温度Ｔｍとモータ温度用上限電流Ｉmax_Tmとの関係を設定したモータ温度用上限電流マップと、図２５（ｂ）に示すように、基板温度Ｔｂと基板温度用上限電流Ｉmax_Tbとの関係を設定した基板温度用上限電流マップとを記憶している。モータ温度用上限電流マップは、モータ推定温度Ｔｍが高くなるにしたがってモータ温度用上限電流Ｉmax_Tmを小さくする特性を有し、基板温度用上限電流マップは、基板温度Ｔｂが高くなるにしたがって基板温度用上限電流Ｉmax_Tbを小さくする特性を有する。
【０１６１】
モータ制限値設定ルーチン（図２４）は、操舵アシスト制御ルーチンと並行して所定の短い周期で繰り返される。マイコン６０は、ステップＳ１１１において、電流センサ３１により検出されるモータ実電流Ｉｍと基板温度センサ３５により検出される基板温度Ｔｂを読み込む。続いて、ステップＳ１１２において、モータ推定温度Ｔｍを計算する。モータ推定温度Ｔｍは、モータ２０の発熱による温度上昇分を表すもので、電流センサ３１により検出されるモータ実電流Ｉｍの二乗積算値を使って計算することができる。温度推定用電流二乗積算値ＳＵＭは、次式（１１）にて計算される。
ＳＵＭ(n)＝ＳＵＭ(n-1)＋Ｋtm・（Ｉｍ2−ＳＵＭ(n-1)）    ・・・（１１）
ここで、Ｋtmは、モータ実電流Ｉｍの二乗値に応じてモータ２０が温度変化する程度を表す予め定めた係数である。また、(n)は、所定の短い周期にて繰り返し実行される上限電流Ｉmax設定ルーチンにおける今回の処理により演算される値であることを意味する。従って、ＳＵＭ(n)は、今回計算により求めようとする温度推定用電流二乗積算値であり、ＳＵＭ(n-1)は、１演算周期前に算出した温度推定用電流二乗積算値である。
マイコン６０は、次式（１２）に示すように、この温度推定用電流二乗積算値ＳＵＭ(n)にモータ温度ゲインＧｍを乗算してモータ推定温度Ｔｍを算出する。
Ｔｍ＝Ｇｍ・ＳＵＭ(n)    ・・・（１２）
【０１６２】
この計算にあたっては、ＳＵＭ(n-1)の初期値が必要となる。ＳＵＭ(n-1)の初期値は、例えば、操舵アシスト制御ルーチンを終了したときの温度推定用電流二乗積算値ＳＵＭ(n)を不揮発性メモリに記憶しておき、次回の操舵アシスト制御ルーチンが開始されたときに、その記憶した温度推定用電流二乗積算値ＳＵＭ(n)から、放熱による温度変化分（ΔＴ）を減算して求めるようにしてもよい。温度変化分（ΔＴ）は、例えば、基板温度Ｔｂの温度変化量に基づいて算出することができる。また、モータ２０の作動停止期間が長い場合には、ＳＵＭ(n-1)の初期値をゼロに設定することができる。
【０１６３】
続いて、マイコン６０は、ステップＳ１１３において、モータ温度用上限電流マップを参照して、モータ推定温度Ｔｍからモータ温度用上限電流Ｉmax_Tmを計算する。続いて、ステップＳ１１４において、基板温度用上限電流マップを参照して、基板温度Ｔｂから基板温度用上限電流Ｉmax_Tbを計算する。
【０１６４】
続いて、マイコン６０は、ステップＳ１１５において、モータ温度用上限電流Ｉmax_Tmと基板温度用上限電流Ｉmax_Tbとを比較し、ステップＳ１１６，Ｓ１１７において、小さい方の値を温度用上限電流Ｉmax_Tに設定する。
【０１６５】
続いて、マイコン６０は、ステップＳ１１８において、実施形態におけるモータ制限値設定ルーチンのステップＳ４５，Ｓ４６で設定した上限電流Ｉmaxが温度用上限電流Ｉmax_Tより大きいか否かを判断し、上限電流Ｉmaxが温度用上限電流Ｉmax_Tより大きい場合には（Ｓ１１８：Ｙｅｓ）、ステップＳ１１９において、上限電流Ｉmaxを温度用上限電流Ｉmax_Tの値に変更する（Ｉmax  ←Ｉmax_T）。一方、上限電流Ｉmaxが温度用上限電流Ｉmax_T以下の場合には（Ｓ１１８：Ｎｏ）、ステップＳ１１９の処理をスキップする。
【０１６６】
マイコン６０は、このようにして上限電流Ｉmaxを設定するとモータ制限値設定ルーチンを一旦終了する。マイコン６０は、操舵アシスト制御ルーチンのステップＳ４において、このモータ制限値設定ルーチンで設定された上限電流Ｉmaxを読み込む。
【０１６７】
この変形例２−７によれば、モータ２０の内部抵抗値Ｒｍと、モータ推定温度Ｔｍと、モータ駆動回路４０の内部抵抗値Ｒｑと、基板温度Ｔｂとに基づいてそれぞれ上限電流を設定し、それらの上限電流の最も小さい値を使ってモータ２０の上限電流を設定する。従って、モータ２０およびモータ駆動回路４０を一層適正に保護して延命を図ることができる。
【０１６８】
＜変形例２−８：温度ゲインによる作動制限＞
上記実施形態においては、モータ２０あるいはモータ駆動回路４０の半異常状態が検出されたときに、内部抵抗値に応じた上限電流Ｉmaxを設定してモータ２０の作動を制限しているが、この変形例２−８では、内部抵抗値に応じた温度ゲインを設定することにより上限電流Ｉmaxを変更する。
【０１６９】
この変形例２−８においては、マイコン６０は、操舵アシスト制御ルーチンのステップＳ４において使用する上限電流Ｉmaxをモータ推定温度Ｔｍおよび基板温度Ｔｂに基づいて設定する。例えば、変形例２−７におけるステップＳ１１１〜Ｓ１１７と同様の処理を行って、温度用上限電流Ｉmax_Tを計算し、この温度用上限電流Ｉmax_Tを、操舵アシスト制御ルーチンで使用する上限電流Ｉmaxに設定する。
【０１７０】
この場合、マイコン６０は、ステップＳ１１２でモータ推定温度Ｔｍを計算するとき、モータ２０の内部抵抗値Ｒｍに応じて設定されるモータ温度ゲインＧｍを使用する。モータ推定温度Ｔｍは、次式（１２）にて計算される。
Ｔｍ＝Ｇｍ・ＳＵＭ(n)    ・・・（１２）
従って、この式におけるモータ温度ゲインＧｍを内部抵抗値Ｒｍに応じて可変することで、モータ推定温度Ｔｍを調整することができる。
【０１７１】
マイコン６０は、図２６（ａ）に示す特性のモータ温度ゲインマップを記憶しており、このモータ温度ゲインマップを参照して内部抵抗値Ｒｍからモータ温度ゲインＧｍ（≧１）を計算する。モータ温度ゲインマップは、モータ２０の内部抵抗値Ｒｍが大きくなるにしたがってモータ温度ゲインＧｍが増加する特性を有する。従って、モータ推定温度Ｔｍは、モータ２０の内部抵抗値Ｒｍが大きくなるにしたがって高くなる。
【０１７２】
また、マイコン６０は、ステップＳ１１４で基板温度用上限電流Ｉmax_Tbを設定する場合、基板温度Ｔｂを基板温度ゲインＧｂで補正する。つまり、次式（１３）に示すように、基板温度センサ３５にて検出される基板温度Ｔｂに基板温度ゲインＧｂを乗算した値を、最終的な基板温度Ｔｂに設定する。
Ｔｂ＝Ｇｂ・Ｔｂ    ・・・（１３）
従って、この式における基板温度ゲインＧｂをモータ駆動回路４０の内部抵抗値Ｒｑに応じて可変することで、基板温度Ｔｂを調整することができる。
【０１７３】
マイコン６０は、図２６（ｂ）に示す特性の基板温度ゲインマップを記憶しており、この基板温度ゲインマップを参照して内部抵抗値Ｒｑから基板温度ゲインＧｂ（≧１）を計算する。基板温度ゲインマップは、モータ駆動回路４０の内部抵抗値Ｒｑが大きくなるにしたがって基板温度ゲインＧｂが増加する特性を有する。従って、基板温度Ｔｂは、モータ駆動回路４０の内部抵抗値Ｒｑが大きくなるにしたがって高くなる。
【０１７４】
この変形例２−８によれば、モータ２０の内部抵抗値Ｒｍが増加して半異常状態となった場合には、計算上のモータ推定温度Ｔｍが上昇するため、これに伴って上限電流Ｉmaxが低下する（図２５（ａ）参照）。従って、モータ２０に流れる電流を正常時に比べて制限することができる。また、モータ駆動回路４０の内部抵抗値Ｒｑが増加して半異常状態となった場合には、計算上の基板温度Ｔｂが上昇するため、これに伴って上限電流Ｉmaxが低下する（図２５（ｂ）参照）。従って、モータ２０に流れる電流を正常時に比べて制限することができる。
【０１７５】
また、モータ温度ゲインマップと基板温度ゲインマップとを独自の特性に設定することができるため、半異常状態が発生した部位に応じた適正なモータ２０の作動制限を行うことができる。
【０１７６】
＜変形例３：半異常状態の判定＞
上記実施形態においては、測定した内部抵抗値Ｒｍ，Ｒｑと、予め設定した判定値（（Ｒref_m1，Ｒref_m2），（Ｒref_q１，Ｒref_q2）との比較により半異常状態を判定しているが（Ｓ４０，Ｓ４２参照）、半異常状態の判定方法については、種々の手法を採用することができる。
【０１７７】
＜変形例３−１：内部抵抗値の初期値に基づく判定＞
例えば、最初に測定した内部抵抗値を初期値として設定し、この初期値からの変動に基づいて半異常状態を判定するようにしても良い。この場合、最初に測定した内部抵抗値を初期値Ｒｍ０，Ｒｑ０として不揮発性メモリ（図示略）に記憶しておき、その後、内部抵抗値を測定する度に、ステップＳ４０及びステップＳ４２において、測定した内部抵抗値Ｒｍ，Ｒｑと初期値Ｒｍ０，Ｒｑ０とを比較するようにする。
【０１７８】
判定に際しては、例えば、測定した内部抵抗値の初期値に対する増加幅（Ｒｍ−Ｒｍ０，Ｒｑ−Ｒｑ０）あるいは増加率（Ｒｍ／Ｒｍ０，Ｒｑ／Ｒｑ０）を計算し、その増加幅あるいは増加率が予め設定した第１基準値を超えている場合に半異常状態であると判定し、第１基準値より大きな第２基準基準値を超えている場合に異常状態であると判定するとよい。尚、スイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４の内部抵抗値の初期値Ｒｑ０は、例えば、最初に測定した内部抵抗値Ｒq1，Ｒq2，Ｒq3，Ｒq4の任意の値を採用しても良いし、平均値あるいは最大値あるいは最小値を採用してもよい。また、個々のスイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４の内部抵抗値Ｒq1，Ｒq2，Ｒq3，Ｒq4の増加幅あるいは増加率を計算し、その増加幅あるいは増加率に基づいて判定するようにしてもよい。この場合、４つの増加幅あるいは増加率の最大値を基準値と比較するようにするとよい。
【０１７９】
＜変形例３−２：判定値の温度補正＞
測定した内部抵抗値Ｒｍ，Ｒｑを判定するための判定値（（Ｒref_m1，Ｒref_m2），（Ｒref_q１，Ｒref_q2））が温度補正される構成であってもよい。マイコン６０は、モータ実電流Ｉｍに基づいてモータ２０の温度Ｔｍを推定する機能と、基板温度センサ３５により基板温度Ｔｂを検出する機能を備えている。従って、モータ２０の推定温度Ｔｍに基づいて、モータ２０の半異常状態を判定する判定値（Ｒref_m1およびＲref_m2）を補正することができる。また、基板温度Ｔｂに基づいて、モータ駆動回路４０の半異常状態を判定する判定値（Ｒref_q１およびＲref_q2）を補正することができる。
【０１８０】
モータ２０の推定温度Ｔｍと内部抵抗値Ｒｍとの関係、および、基板温度ｔｂと内部抵抗値Ｒｑとの関係は、予め実験により求めることができる。従って、推定温度Ｔｍと補正係数との関係を表す補正マップ、基板温度ｔｂと補正係数との関係を表す補正マップをマイコン６０に記憶しておくことができる。
【０１８１】
マイコン６０は、ステップＳ４０において、モータ内部抵抗値Ｒｍに基づいて、モータ２０の正常、異常、半異常を判定するにあたって、モータ２０の推定温度Ｔｍを読み込む。そして、補正マップを参照して推定温度Ｔｍに応じた補正係数を設定し、この補正係数を判定値（Ｒref_m1，Ｒref_m2）に乗算した値を、新たな判定値（Ｒref_m1，Ｒref_m2）とする。マイコン６０は、この補正された判定値（Ｒref_m1，Ｒref_m2）を使って、モータ２０の正常、異常、半異常を判定する。尚、モータ２０の推定温度Ｔｍは、上述の変形例２−７で説明した方法で計算することができる。
【０１８２】
同様に、マイコン６０は、ステップＳ４２において、回路内部抵抗値Ｒｑに基づいて、モータ駆動回路４０の正常、異常、半異常を判定するにあたって、基板温度センサ３５により検出される基板温度Ｔｂを読み込む。そして、補正マップを参照して基板温度Ｔｂに応じた補正係数を設定し、この補正係数を判定値（Ｒref_q１，Ｒref_q2）に乗算した値を、新たな判定値（Ｒref_q１，Ｒref_q2）とする。マイコン６０は、この補正された判定値（Ｒref_q１，Ｒref_ｑ2）を使って、モータ駆動回路４０の正常、異常、半異常を判定する。
【０１８３】
この変形例３−２によれば、モータ２０およびモータ駆動回路４０の内部抵抗に関する状態（正常、異常、半異常）をさらに高精度に判定することができる。
【０１８４】
＜変形例３−３：電圧変化に基づく判定＞
上記実施形態においては、モータ２０の内部抵抗値Ｒｍとモータ駆動回路４０の内部抵抗値Ｒｑとを測定したが、必ずしも内部抵抗値を測定する必要はない。例えば、モータ２０の端子間電圧の経時変化に基づいて半異常状態を検出することができる。
【０１８５】
この変形例３−３においては、マイコン６０は、図２７に示すモータ制限値設定ルーチンを実行する。この変形例３−３のモータ制限値設定ルーチンは、実施形態のモータ制限値設定ルーチン（図６）のステップＳ２０からステップＳ４６の処理を変更したものである。以下、実施形態と同じ処理については、図面に実施形態と同一のステップ番号を付して説明を省略する。
【０１８６】
マイコン６０は、電動パワーステアリング装置１のシステムが正常に起動した場合には（Ｓ１３：Ｙｅｓ）、続く、ステップＳ１２０において、予め設定したデューティ比αにてスイッチング素子Ｑ１，Ｑ４をオンオフ作動させる。続いて、ステップＳ１２１において、そのときの第１モータ端子間Ｖ１と第２モータ端子電圧Ｖ２と電源電圧Ｖｃｃとを測定する。続いて、マイコン６０は、ステップＳ１２２において、電源電圧Ｖｃｃにデューティ比αを乗算した値（α×Ｖｃｃ）と、モータ２０の端子間電圧（Ｖ１−Ｖ２）との偏差ΔＶ１（＝｜（α×Ｖｃｃ）−（Ｖ１−Ｖ２）｜）を計算する。
【０１８７】
続いて、マイコン６０は、ステップＳ１２３において、デューティ比αにてスイッチング素子Ｑ２，Ｑ３をオンオフ作動させる。続いて、ステップＳ１２４において、そのときの第１モータ端子間Ｖ１と第２モータ端子電圧Ｖ２と電源電圧Ｖｃｃとを測定する。続いて、マイコン６０は、ステップＳ１２５において、電源電圧Ｖｃｃにデューティ比αを乗算した値（α×Ｖｃｃ）と、モータ２０の端子間電圧（Ｖ２−Ｖ１）との偏差ΔＶ２（＝｜（α×Ｖｃｃ）−（Ｖ２−Ｖ１）｜）を計算する。
【０１８８】
続いて、マイコン６０は、ステップＳ１２６〜Ｓ１２８において、偏差ΔＶ１と偏差ΔＶ２との大きい方の値を偏差ΔＶに設定する。尚、偏差ΔＶ１と偏差ΔＶ２の測定は、交互に複数回行うようにして、それらの平均値を求めるようにしてもよい。
【０１８９】
モータ２０の内部抵抗値とモータ駆動回路４０の内部抵抗値がともに正常であれば、偏差ΔＶは小さな値となるが、モータ２０の内部抵抗値あるいはモータ駆動回路４０の内部抵抗値が増加すると偏差ΔＶが増大する。このことを利用して、マイコン６０は、ステップＳ１２９において、偏差ΔＶに基づいて、モータ２０およびモータ駆動回路４０からなるモータ通電路の正常、半異常、異常を判定する。例えば、最初に測定した偏差ΔＶを初期値ΔＶ０として不揮発性メモリ（図示略）に記憶しておき、その後は、ステップＳ１２２で計算した偏差ΔＶと初期値ΔＶ０とを比較して判定する。
【０１９０】
判定に際しては、例えば、偏差ΔＶの初期値ΔＶ０に対する増加幅（ΔＶ−ΔＶ０）あるいは増加率（ΔＶ／ΔＶ０）を計算し、その増加幅あるいは増加率が予め設定した第１基準値を超えている場合に半異常状態であると判定し、第１基準値より大きな第２基準基準値を超えている場合に異常状態であると判定するとよい。尚、初期値ΔＶ０に代えて、予め設定された設定値ΔＶ０と比較して判定してもよい。
【０１９１】
マイコンは、ステップＳ１２９において、半異常状態を検出した場合には、ステップＳ１３０において、上限電流Ｉmaxを設定する。この場合、上限電流Ｉmaxは、増加幅（ΔＶ−ΔＶ０）あるいは増加率（ΔＶ／ΔＶ０）が大きくなるにしたがって小さな値に設定されるようにするとよい。
【０１９２】
＜変形例４：半異常の報知＞
アシストＥＣＵ１００にウォーニングランプ９４（図１参照）を接続して、モータ２０あるいはモータ駆動回路４０の半異常状態が検出された場合に、ウォーニングランプ９４を点灯させる構成を採用することもできる。これによれば、運転者は、モータ２０あるいはモータ駆動回路４０が半異常となった段階で、その異常を知ることができる。従って、適切なタイミングで（部品故障が発生する前に）、修理の手配をすることができる。
【０１９３】
以上、実施形態および変形例にかかる電動パワーステアリング装置１について説明したが、本発明は上記実施形態および変形例に限定されるものではなく、本発明の目的を逸脱しない限りにおいて種々の変更が可能である。
【０１９４】
例えば、本実施形態においては、モータ２０とモータ駆動回路４０との両方の内部抵抗値を測定して、その内部抵抗値に応じてモータ２０の作動を制限する構成を採用しているが、モータ２０とモータ駆動回路４０の何れか一方の内部抵抗値を測定して、その内部抵抗値に応じてモータ２０の作動を制限する構成を採用してもよい。例えば、モータ２０に比べてモータ駆動回路４０の信頼性が高い場合には、モータ駆動回路４０の内部抵抗値の測定、判定、モータ作動制限（Ｓ２０，Ｓ４０，Ｓ４１）を省略して、モータ２０の内部抵抗値に応じてモータ２０の作動を制限するようにしてもよく、逆に、モータ駆動回路４０に比べてモータ２０の信頼性が高い場合には、モータ２０の内部抵抗値の測定、判定、モータ作動制限（Ｓ３０，Ｓ４２，Ｓ４３）を省略して、モータ駆動回路４０の内部抵抗値に応じてモータ２０の作動を制限するようにしてもよい。
【０１９５】
また、本実施形態においては、モータ駆動回路（Ｈブリッジ回路）４０に使用するスイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４としてＭＯＳ―ＦＥＴを用いているが、これに限るものではなく、他のスイッチング半導体素子を用いることも可能である。
【０１９６】
また、本実施形態および変形例においては、各種のマップを用いて変数を導き出しているが、マップに代えて、関数等を使った計算式を用いるようにしてもよい。
【０１９７】
また、本実施形態においては停止設定時間を設けていないが、例えば、変形例２−１，２−２，２−４，２−５，２−６のように、半異常状態を検出した場合には、その検出した時点からの経過時間が停止設定時間に到達したら、操舵アシストを停止するようにしてもよい。
【０１９８】
また、変形例３−２においては、測定した内部抵抗値Ｒｍ，Ｒｑと比較する判定値（（Ｒref_m1，Ｒref_m2），（Ｒref_q１，Ｒref_q2））の温度補正を行うようにしているが、測定した内部抵抗値Ｒｍ，Ｒｑを温度補正するようにしてもよい。
【０１９９】
また、本実施形態においては、モータ２０の発生するトルクをステアリングシャフト１２に付与するコラムアシスト式の電動パワーステアリング装置１について説明したが、モータの発生するトルクをラックバー１４に付与するラックアシスト式の電動パワーステアリング装置であってもよい。
【図１】
2012124098.tif 000003
【図２】
2012124098.tif 000004
【図３】
2012124098.tif 000005
【図４】
2012124098.tif 000006
【図５】
2012124098.tif 000007
【図６】
2012124098.tif 000008
【図７】
2012124098.tif 000009
【図８】
2012124098.tif 000010
【図９】
2012124098.tif 000011
【図１０】
2012124098.tif 000012
【図１１】
2012124098.tif 000013
【図１２】
2012124098.tif 000014
【図１３】
2012124098.tif 000015
【図１４】
2012124098.tif 000016
【図１５】
2012124098.tif 000017
【図１６】
2012124098.tif 000018
【図１７】
2012124098.tif 000019
【図１８】
2012124098.tif 000020
【図１９】
2012124098.tif 000021
【図２０】
2012124098.tif 000022
【図２１】
2012124098.tif 000023
【図２２】
2012124098.tif 000024
【図２３】
2012124098.tif 000025
【図２４】
2012124098.tif 000026
【図２５】
2012124098.tif 000027
【図２６】
2012124098.tif 000028
【図２７】
2012124098.tif 000029
【手続補正書】
【提出日】平成25年3月25日(2013.3.25)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、運転者の操舵操作に基づいてモータを駆動して操舵アシストトルクを発生する電動パワーステアリング装置に関する。
【背景技術】
【０００２】
電動パワーステアリング装置は、操舵ハンドルの操舵操作を補助する操舵アシストトルクを発生するモータと、このモータの通電を制御する電子制御ユニット（ＥＣＵと呼ぶ）とを備える。ＥＣＵは、スイッチング素子で構成したモータ駆動回路と、操舵トルクに応じた目標アシストトルクが発生するようにモータの制御量を演算するマイコンと、マイコンにより演算された制御量にしたがってモータ駆動回路のスイッチング素子にＰＷＭ制御によるゲート信号を出力するスイッチ駆動回路とを備える。
【０００３】
このような電動パワーステアリング装置においては、モータおよびモータ駆動回路が発熱して損傷してしまうことを防止するために、それらの温度を検出し、検出温度が過熱防止用に設定された閾値を上回る場合にモータに流す電流を制限するようにしている。また、特許文献１に提案された電動パワーステアリング装置においては、スイッチ駆動回路の温度も検出し、モータ駆動回路とスイッチ駆動回路とにおいて検出される温度の何れかが、それぞれの回路に設定された閾値を超えた場合にモータに流す電流を制限するようにしている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−５６８４９号公報
【発明の概要】
【０００５】
しかしながら、従来の電動パワーステアリング装置においては、モータおよびモータ駆動回路の発熱状態は検出できるものの、その発熱の原因が、それらの内部抵抗の増加によるものであるか否かについては分からず、単に、温度上昇という現象を捉えてモータに流す電流を制限するものに過ぎない。例えば、モータのブラシ部の接触抵抗あるいはモータ駆動回路のスイッチング素子の内部抵抗が増加した場合には発熱量が増加するが、そうした発熱であっても、内部抵抗が正常である場合での発熱と区別されない。
【０００６】
このため、モータあるいはモータ駆動回路の内部抵抗の増加が進んで、異常（例えば、スイッチング素子の破損等）が発生したときになって、突然、操舵アシストが停止してしまう。これは、従来の電動パワーステアリング装置では、モータおよびモータ駆動回路の内部抵抗が正常状態から異常状態に進行していく中間過程である半異常状態における制御が考慮されていないからである。
【０００７】
本発明の目的は、上記問題に対処するためになされたもので、モータおよびモータ駆動回路の半異常状態を検出して、それに応じた操舵アシスト制御を行うことにある。
【０００８】
上記目的を達成するために、本発明の特徴は、操舵ハンドルから入力された操舵トルクを検出する操舵トルク検出手段（２１）と、操舵機構に設けられるモータ（２０）と、前記モータの通電を制御するためのスイッチング素子を備えたモータ駆動回路（４０）と、前記操舵トルク検出手段により検出された操舵トルクに基づいて前記モータの制御量を演算する制御量演算手段（６０）と、前記制御量演算手段により演算された制御量に従って前記モータ駆動回路のスイッチング素子を制御して、前記モータから操舵アシストトルクを発生させるスイッチ制御手段（８０）とを備えた電動パワーステアリング装置において、
前記操舵ハンドルが回転しないように前記モータに通電して、前記モータ駆動回路を介して前記モータに電流が流れる通電路の内部抵抗値を測定する内部抵抗値測定手段（Ｓ２０，Ｓ３０）と、前記内部抵抗値測定手段により測定された内部抵抗値が、正常範囲を超え、かつ、前記モータを停止すべき異常範囲に入らない半異常値となる前記通電路の内部抵抗に関する半異常状態を検出する半異常状態検出手段（Ｓ４０，Ｓ４２）と、前記半異常状態が検出された場合には、前記内部抵抗値が正常範囲内に入る場合に比べて、前記操舵アシストトルクを発生させる時の前記モータの通電が制限されるように前記モータの制御量を制限する半異常時制御量制限手段（Ｓ４１〜Ｓ４６）とを備えたことにある。
【０００９】
本発明においては、操舵トルク検出手段が操舵ハンドルから入力された操舵トルクを検出する。制御量演算手段は、操舵トルクに基づいてモータの制御量を演算する。例えば、操舵トルクに基づいて目標電流を演算し、この目標電流がモータに流れるようにモータに印加する電圧制御値を演算する。スイッチ制御手段は、制御量演算手段により演算された制御量に従ってモータ駆動回路のスイッチング素子を制御する。例えば、ＰＷＭ制御信号をモータ駆動回路のスイッチング素子に出力してスイッチング素子を駆動する。これにより、モータに電流が流れてモータから操舵アシストトルクが発生する。
【００１０】
モータあるいはモータ駆動回路の内部抵抗（電気抵抗）が増加した場合には、発熱量が増加し、部品破損に至る可能性がある。部品が破損した場合には、その時点からモータで操舵アシストトルクを発生できなくなる。そこで、本発明においては、内部抵抗値測定手段と半異常状態検出手段と半異常時制御量制限手段とを備えている。
【００１１】
内部抵抗値測定手段は、操舵ハンドルが回転しないようにモータに通電して、モータ駆動回路を介してモータに電流が流れる通電路の内部抵抗値を測定する。半異常状態検出手段は、内部抵抗値測定手段により測定された内部抵抗値が、正常範囲を超え、かつ、モータを停止すべき異常範囲に入らない半異常値となる通電路の内部抵抗に関する半異常状態を検出する。この通電路は、モータ駆動回路とモータとを含めた電流の流れる回路を意味する。半異常時制御量制限手段は、半異常状態が検出された場合には、内部抵抗値が正常範囲に入っている場合に比べて、操舵アシストトルクを発生させる時のモータの通電が制限されるようにモータの制御量を制限する。従って、モータおよびモータ駆動回路の発熱が抑制される。これにより、モータおよびモータ駆動回路の劣化進行を抑制することができ、電動パワーステアリング装置の延命を図ることができる。また、モータあるいはモータ駆動回路に故障が発生したとしても、それ以前から、モータの通電が制限されているため、突然、操舵アシストが停止して操舵力が急変するという不具合を抑制できる。
【００１２】
本発明の他の特徴は、前記内部抵抗値測定手段は、前記モータの内部抵抗値と前記モータ駆動回路の内部抵抗値とを測定し、前記半異常状態検出手段（Ｓ４０，Ｓ４２）は、前記内部抵抗値測定手段により測定された前記モータの内部抵抗値が前記正常範囲を超え、かつ、前記異常範囲に入らない半異常値となる前記モータの内部抵抗に関する半異常状態と、前記内部抵抗値測定手段により測定された前記モータ駆動回路の内部抵抗値が前記正常範囲を超え、かつ、前記異常範囲に入らない半異常値となる前記モータ駆動回路の内部抵抗に関する半異常状態とを検出することにある。
【００１３】
本発明においては、内部抵抗値測定手段は、モータの内部抵抗値とモータ駆動回路の内部抵抗値とを測定する。半異常状態検出手段は、内部抵抗値測定手段により測定されたモータの内部抵抗値が正常範囲を超え、かつ、異常範囲に入らない半異常値となるモータの内部抵抗に関する半異常状態と、内部抵抗値測定手段により測定されたモータ駆動回路の内部抵抗値が正常範囲を超え、かつ、異常範囲に入らない半異常値となるモータ駆動回路の内部抵抗に関する半異常状態とを検出する。例えば、半異常状態検出手段は、内部抵抗値の正常範囲の最大値を設定した第１閾値と、内部抵抗値の異常範囲の最小値を設定した第２閾値とを記憶し、測定された内部抵抗値が第１閾値と第２閾値との間の半異常値となる場合に半異常状態であると判定する。従って、モータおよびモータ駆動回路の部品が損傷する前に半異常状態を検出することができる。
【００１４】
本発明の他の特徴は、前記モータの内部抵抗値が前記半異常値となる場合と、前記モータ駆動回路の内部抵抗値が前記半異常値となる場合とで、それぞれ独立した前記モータの通電の制限度合を設定する制限度合独立設定手段（Ｓ４１，Ｓ４３，Ｓ８４，Ｓ８５，Ｓ８８，Ｓ８９，Ｓ９１，Ｓ９３）を備えたことにある。
【００１５】
モータの半異常状態が検出された場合におけるモータの適切な通電制限度合と、モータ駆動回路の半異常状態が検出された場合のモータの適切な通電制限度合とは、必ずしも一致しない。本発明においては、モータの内部抵抗値とモータ駆動回路の内部抵抗値とに基づいて、モータの内部抵抗値が半異常値となる場合と、モータ駆動回路の内部抵抗値が半異常値となる場合とを区別することができる。そこで、制限度合独立設定手段が、モータの内部抵抗値が半異常値となる場合と、モータ駆動回路の内部抵抗値が半異常値となる場合とで、それぞれ独立したモータの通電の制限度合を設定する。これにより、半異常部位に応じた適切なモータの通電制限を行うことができる。
【００１６】
本発明の他の特徴は、前記モータは、ブラシ付直流モータであり、前記モータ駆動回路は、前記モータを正回転方向に駆動するときに電流が流れる正回転用通電路と、前記モータを逆回転方向に駆動するときに電流が流れる逆回転用通電路とを有するＨブリッジ回路であり、前記内部抵抗値測定手段は、前記正回転用通電路に設けられた正回転用スイッチング素子（Ｑ１，Ｑ４）の内部抵抗値と、前記逆回転用通電路に設けられた逆回転用スイッチング素子（Ｑ２，Ｑ３）の内部抵抗値と、前記モータの内部抵抗値とを測定することにある。
【００１７】
本発明においては、ブラシ付直流モータをＨブリッジ回路にて駆動して操舵アシストトルクを発生させる。ブラシ付直流モータの場合には、ブラシと整流子片との接触状態が悪いと接触抵抗が増加して、その部分で発熱量が増加し劣化が進行する。そこで、本発明においては、内部抵抗値測定手段が、Ｈブリッジ回路の正回転用スイッチング素子の内部抵抗値と、逆回転用スイッチング素子の内部抵抗値と、モータの内部抵抗値とを測定する。これにより、モータのブラシ部およびモータ駆動回路のスイッチング素子の劣化を適正に検出することができる。
【００１８】
本発明の他の特徴は、前記内部抵抗値測定手段（Ｓ３０）は、前記正回転用スイッチング素子と前記逆回転用スイッチング素子とを交互にオンし、前記正回転用スイッチング素子をオンしているときに前記正回転用スイッチング素子の内部抵抗値を測定し、前記逆回転用スイッチング素子をオンしているときに前記逆回転用スイッチング素子の内部抵抗値を測定することにある。
【００１９】
正回転用スイッチング素子をオンするとモータが正回転方向に駆動され、逆回転用スイッチング素子をオンするとモータが逆回転方向に駆動される。内部抵抗値を測定するためには、モータに通電する必要があるが、モータが回転すると操舵ハンドルも回転してしまう。そこで、本発明においては、内部抵抗値測定手段は、正回転用スイッチング素子と逆回転用スイッチング素子とを交互にオンし、正回転用スイッチング素子をオンしているときに正回転用スイッチング素子の内部抵抗値を測定し、逆回転用スイッチング素子をオンしているときに逆回転用スイッチング素子の内部抵抗値を測定する。これにより、操舵ハンドルを回転しないようにすることができる。尚、正回転用スイッチング素子と逆回転用スイッチング素子とを交互にオンする周期は、操舵ハンドルが回転しない程度の短時間に設定される。
【００２０】
本発明の他の特徴は、前記半異常時制御量制限手段（Ｓ４１，Ｓ４３）は、前記内部抵抗値測定手段により測定された内部抵抗値が大きくなるにしたがってモータに流す電流の上限値を小さく設定することにある。
【００２１】
本発明によれば、モータあるいはモータ駆動回路の内部抵抗値が大きくなるにしたがってモータに流す電流の上限値が小さく設定されるため、半異常部位の発熱を適切に抑制して劣化進行を抑えることができる。
【００２２】
本発明の他の特徴は、前記半異常時制御量制限手段（Ｓ９１，Ｓ９３）は、前記内部抵抗値測定手段により測定された内部抵抗値が大きくなるにしたがってモータに印加する電圧の上限値を小さく設定することにある。
【００２３】
本発明によれば、モータあるいはモータ駆動回路の内部抵抗値が大きくなるにしたがってモータに印加する電圧の上限値が小さく設定されるため、半異常部位の発熱を適切に抑制して劣化進行を抑えることができる。
【００２４】
本発明の他の特徴は、前記半異常時制御量制限手段（Ｓ６３，Ｓ８４，Ｓ８８）は、前記半異常状態検出手段により半異常状態が検出された場合、前記モータに流す電流の上限値を時間の経過とともに漸減するように設定することにある。
【００２５】
本発明によれば、モータあるいはモータ駆動回路の半異常状態が検出された場合、モータに流す電流の上限値が時間の経過とともに徐々に減少するように設定されるため、半異常部位の発熱を適切に抑制して劣化進行を抑えることができる。
【００２６】
本発明の他の特徴は、前記半異常時制御量制限手段は、前記半異常状態検出手段により半異常状態が検出された場合、前記モータに印加する電圧の上限値を時間の経過とともに漸減するように設定することにある。
【００２７】
本発明によれば、モータあるいはモータ駆動回路の半異常状態が検出された場合、モータに印加する電圧の上限値が時間の経過とともに徐々に減少するように設定されるため、半異常部位の発熱を適切に抑制して劣化進行を抑えることができる。
【００２８】
本発明の他の特徴は、前記半異常状態検出手段により半異常状態が検出されてからの経過時間が予め設定された停止時間に到達したとき前記モータの通電を禁止する時間制限手段（Ｓ６４，Ｓ６５）を備えたことにある。
【００２９】
本発明によれば、モータあるいはモータ駆動回路の半異常状態が検出された場合、半異常状態が検出されてからの経過時間が予め設定された停止時間に到達したときモータの通電が禁止される。従って、モータあるいはモータ駆動回路の劣化が進行しても、適切に操舵アシストを停止させることができる。
【００３０】
本発明の他の特徴は、前記モータの内部抵抗値が前記半異常値となる場合と、前記モータ駆動回路の内部抵抗値が前記半異常値となる場合とで、前記停止時間を独立して設定する停止時間設定手段（Ｓ８５，Ｓ８９）を備えたことにある。
【００３１】
モータの半異常状態が検出されてから異常状態へ至るまでの残存寿命と、モータ駆動回路の半異常状態が検出されてから異常状態へ至るまでの残存寿命とは必ずしも一致しない。そこで、本発明においては、停止時間設定手段が、モータの内部抵抗値が半異常値となる場合と、モータ駆動回路の内部抵抗値が半異常値となる場合とで、停止時間を独立して設定する。従って、モータが半異常状態となった場合でも、モータ駆動回路が半異常状態となった場合でも、それらの残存寿命に応じた適切な停止時間を設定することができる。これにより、電動パワーステアリング装置を適切に延命させることができる。
【００３２】
本発明の他の特徴は、前記内部抵抗値測定手段は、車両のドアの開閉状態を表すドア開閉信号、あるいは、運転者の運転座席への着座状態を表す着座信号に基づいて、前記内部抵抗値の測定を開始する（Ｓ１１）ことにある。
【００３３】
モータあるいはモータ駆動回路の内部抵抗値を測定する場合には、モータに通電する必要があるが、そうしたモータの作動を運転者に気付かれることは好ましくない。そこで、本発明においては、車両のドアの開閉状態を表すドア開閉信号、あるいは、運転者の運転座席への着座状態を表す着座信号に基づいて、内部抵抗値の測定を開始する。例えば、車両のドアが開いた直後、あるは、運転席に運転者が座った直後に、内部抵抗値の測定を行う。これにより、運転者は、内部抵抗値の測定にかかるモータの作動に気がつかない。
【００３４】
本発明の他の特徴は、前記内部抵抗値測定手段（Ｓ３０）は、前記モータ駆動回路に印加される電源電圧と、前記モータに流れるモータ電流と、前記モータの各端子電圧あるいは端子間電圧とに基づいて、前記スイッチング素子の内部抵抗値を計算により求めることにある。
【００３５】
本発明においては、モータ駆動回路に印加される電源電圧と、モータ電流と、モータの各端子電圧あるいは端子間電圧と基づいて、計算によりスイッチング素子の内部抵抗値を求める。例えば、電源電圧、モータ電流、モータの各端子電圧あるいは端子間電圧を検出し、この検出値を用いてスイッチング素子の内部抵抗値を計算する。この場合、電源電圧が既知であれば、その既知の値を用いるようにしてもよい。従って、簡単にスイッチング素子の内部抵抗値を測定することができる。
【００３６】
本発明の他の特徴は、前記内部抵抗値測定手段（Ｓ２０）は、前記モータに流れるモータ電流と、前記モータの端子間電圧とに基づいて、前記モータの内部抵抗値を計算により求めることにある。
【００３７】
本発明においては、モータ電流と、モータの端子間電圧と基づいて、計算によりモータの内部抵抗値を求める。例えば、モータ電流、モータの端子間電圧を検出し、この検出値を用いてモータの内部抵抗値を計算する。この場合、モータの端子間電圧の検出は、モータの各端子の電圧をそれぞれ検出して、その電圧差から求めるようにしてもよいし、直接、モータの端子間の電圧を検出するようにしてもよい。従って、簡単にモータの内部抵抗値を測定することができる。
【００３８】
尚、上記説明においては、発明の理解を助けるために、実施形態に対応する発明の構成に対して、実施形態で用いた符号を括弧書きで添えているが、発明の各構成要件は、前記符号によって規定される実施形態に限定されるものではない。
【図面の簡単な説明】
【００３９】
【図１】本発明の実施形態に係る電動パワーステアリング装置の概略構成図である。
【図２】アシストＥＣＵの概略構成図である。
【図３】操舵アシスト制御ルーチンを表すフローチャートである。
【図４】アシストマップを表すグラフである。
【図５】内部抵抗値の測定方法を説明する説明図である。
【図６】モータ制限値設定ルーチンを表すフローチャートである。
【図７】モータ内部抵抗値計算ルーチン（サブルーチン）を表すフローチャートである。
【図８】駆動回路内部抵抗値計算ルーチン（サブルーチン）を表すフローチャートである。
【図９】モータ抵抗用上限電流マップを表すグラフである。
【図１０】回路抵抗用上限電流マップを表すグラフである。
【図１１】内部抵抗値の推移を表すグラフである。
【図１２】変形例２−１にかかる上限電流マップを表すグラフである。
【図１３】変形例２−１にかかる内部抵抗値判定ルーチンを表すフローチャートである。
【図１４】変形例２−１にかかるモータ制限値設定ルーチンを表すフローチャートである。
【図１５】変形例２−２にかかる内部抵抗値判定ルーチンを表すフローチャートである。
【図１６】変形例２−２にかかるモータ制限値設定ルーチンを表すフローチャートである。
【図１７】変形例２−２にかかる上限電流マップを表すグラフである。
【図１８】変形例２−３にかかるモータ制限値設定ルーチンを表すフローチャートである。
【図１９】変形例２−３にかかるモータ抵抗用上限指令電圧マップを表すグラフである。
【図２０】変形例２−３にかかる回路抵抗用上限指令電圧マップを表すグラフである。
【図２１】変形例２−３にかかる操舵アシスト制御ルーチンを表すフローチャートである。
【図２２】変形例２−４にかかる上限指令電圧マップを表すグラフである。
【図２３】変形例２−５にかかる上限指令電圧マップを表すグラフである。
【図２４】変形例２−７にかかるモータ制限値設定ルーチンを表すフローチャートである。
【図２５】変形例２−７にかかるモータ温度用上限電流マップと基板温度用上限電流マップとを表すグラフである。
【図２６】変形例２−８にかかるモータ温度ゲインマップと基板温度ゲインマップとを表すグラフである。
【図２７】変形例３−３にかかるモータ制限値設定ルーチンを表すフローチャートである。
【発明を実施するための形態】
【００４０】
以下、本発明の一実施形態に係る電動パワーステアリング装置について図面を用いて説明する。図１は、同実施形態に係る車両の電動パワーステアリング装置１の概略構成を表している。
【００４１】
この電動パワーステアリング装置１は、操舵ハンドル１１の操舵操作により転舵輪を転舵するステアリング機構１０と、ステアリング機構１０に組み付けられ操舵アシストトルクを発生するモータ２０と、操舵ハンドル１１の操作状態に応じてモータ２０の作動を制御する電子制御ユニット１００とを主要部として備えている。以下、電子制御ユニット１００をアシストＥＣＵ１００と呼ぶ。
【００４２】
ステアリング機構１０は、操舵ハンドル１１の回転操作により左右前輪ＦＷ１，ＦＷ２を転舵するための機構で、操舵ハンドル１１を上端に一体回転するように接続したステアリングシャフト１２を備える。このステアリングシャフト１２の下端には、ピニオンギヤ１３が一体回転するように接続されている。ピニオンギヤ１３は、ラックバー１４に形成されたギヤ部１４ａと噛み合って、ラックバー１４とともにラックアンドピニオン機構を構成する。
【００４３】
ラックバー１４は、ギヤ部１４ａがラックハウジング１６内に収納され、その左右両端がラックハウジング１６から露出してタイロッド１７と連結される。このラックバー１４のタイロッド１７との連結部には、ストロークエンドを構成するストッパ１８が形成され、このストッパ１８とラックハウジング１６の端部との当接によりラックバー１４の左右動ストロークが機械的に規制されている。左右のタイロッド１７の他端は、左右前輪ＦＷ１，ＦＷ２２に設けられたナックル１９に接続される。こうした構成により、左右前輪ＦＷ１，ＦＷ２は、ステアリングシャフト１２の軸線回りの回転に伴うラックバー１４の軸線方向の変位に応じて左右に操舵される。
【００４４】
ステアリングシャフト１２には減速ギヤ２５を介してモータ２０が組み付けられている。モータ２０は、その回転により減速ギヤ２５を介してステアリングシャフト１２をその軸中心に回転駆動して、操舵ハンドル１１の回動操作に対してアシスト力を付与する。このモータ２０は、ブラシ付直流モータである。
【００４５】
ステアリングシャフト１２には、操舵ハンドル１１と減速ギヤ２５との中間位置に操舵トルクセンサ２１が組みつけられている。操舵トルクセンサ２１は、例えば、ステアリングシャフト１２の中間部に介装されたトーションバー（図示略）の捩れ角度をレゾルバ等により検出し、この捩れ角に基づいてステアリングシャフト１２に働いた操舵トルクｔｒを検出する。操舵トルクｔｒは、正負の値により操舵ハンドル１１の操作方向が識別される。例えば、操舵ハンドル１１の左方向への操舵時における操舵トルクｔｒを正の値で、操舵ハンドル１１の右方向への操舵時における操舵トルクｔｒを負の値で示す。尚、本実施形態においては、トーションバーの捩れ角度をレゾルバにより検出するが、エンコーダ等の他の回転角センサにより検出することもできる。
【００４６】
次に、アシストＥＣＵ１００について図２を用いて説明する。アシストＥＣＵ１００は、モータ２０の目標制御量を演算し、演算された目標制御量に応じたスイッチ駆動信号を出力する電子制御回路５０と、電子制御回路５０から出力されたスイッチ駆動信号にしたがってモータ２０に通電するモータ駆動回路４０とを含んで構成される。
【００４７】
電子制御回路５０は、ＣＰＵ，ＲＯＭ，ＲＡＭ等からなるマイコン６０と、各種のセンサ信号を入力してマイコン６０に読み取り可能な信号に変換する入力インタフェース７０と、マイコン６０から出力されるスイッチ制御信号を増幅してモータ駆動回路４０に供給するスイッチ駆動回路８０とを備える。
【００４８】
アシストＥＣＵ１００は、電源装置２００から電力供給される。この電源装置２００は、図示しないバッテリと、エンジンの回転により発電するオルタネータとから構成される。この電源装置２００の定格出力電圧は、例えば１２Ｖに設定されている。尚、図中においては、電源装置２００からモータ駆動回路４０への電源供給ラインである電源ライン２１０のみを示しているが、電子制御回路５０の作動電源も電源装置２００から供給される。
【００４９】
モータ駆動回路４０は、電源ライン２１０とグランドライン２２０との間に設けられ、スイッチング素子Ｑ１とスイッチング素子Ｑ３とを並列接続した上アーム回路４５Ｈと、スイッチング素子Ｑ２とスイッチング素子Ｑ４とを並列接続した下アーム回路４５Ｌとを直列に接続し、この上アーム回路４５Ｈと下アーム回路４５Ｌとの接続部Ａ１，Ａ２から、モータ２０への電力供給を行うための通電ライン４７ａ，４７ｂを引き出したＨブリッジ回路で構成されている。従って、モータ２０の一方の通電端子２０ａは、スイッチング素子Ｑ１を介して電源ライン２１０に接続されるとともに、スイッチング素子Ｑ２を介してグランドライン２２０に接続される。また、モータ２０の他方の通電端子２０ｂは、スイッチング素子Ｑ３を介して電源ライン２１０に接続されるとともに、スイッチング素子Ｑ４を介してグランドライン２２０に接続される。
【００５０】
モータ駆動回路４０に設けられるスイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４としては、ＭＯＳ−ＦＥＴ（Ｍetal  Ｏxide  Ｓemiconductor  Ｆield  Ｅffect  Ｔransistor）が使用される。スイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４は、各ソース−ドレイン間に電源電圧が印加されるように上下のアーム回路４５Ｈ，４５Ｌに設けられ、また、各ゲートが電子制御回路５０のスイッチ駆動回路８０に接続される。
【００５１】
尚、図中に回路記号で示すように、ＭＯＳ−ＦＥＴには構造上、ダイオードが寄生している。このダイオードを寄生ダイオードと呼ぶ。各スイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４の寄生ダイオードは、電源ライン２１０からグランドライン２２０への電流の流れを遮断し、グランドライン２２０から電源ライン２１０へ向かう電流のみを許容する逆導通ダイオードである。また、モータ駆動回路４０は、寄生ダイオードとは別の逆導通ダイオード（電流遮断方向は寄生ダイオードと同じであって、電源電圧方向に対して逆方向にのみ導通するダイオード）をスイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４に並列に接続した構成であってもよい。
【００５２】
マイコン６０は、スイッチ駆動回路８０を介してモータ駆動回路４０の各スイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４のゲートに独立した駆動信号を出力する。この駆動信号により、各スイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４のオン状態とオフ状態とが切り替えられる。
【００５３】
モータ駆動回路４０においては、スイッチング素子Ｑ２とスイッチング素子Ｑ３とがオフに維持された状態でスイッチング素子Ｑ１とスイッチング素子Ｑ４とがオンすると、図中の（＋）方向に電流Ｉ１が流れる。これにより、モータ２０は、正回転方向のトルクを発生する。また、スイッチング素子Ｑ１とスイッチング素子Ｑ４とがオフに維持された状態でスイッチング素子Ｑ２とスイッチング素子Ｑ３とがオンすると、図中の（−）方向に電流Ｉ２が流れる。これにより、モータ２０は、逆回転方向のトルクを発生する。
【００５４】
アシストＥＣＵ１００は、モータ２０に流れる電流を検出する電流センサ３１を備えている。この電流センサ３１は、下アーム回路４５Ｌとグランドとを接続するグランドライン２２０に設けられる。電流センサ３１は、例えば、グランドライン２２０にシャント抵抗（図示略）を設け、このシャント抵抗の両端に現れる電圧をアンプ（図示略）で増幅した電圧信号、あるいは、その電圧信号をデジタル信号に変換した信号を電子制御回路５０の入力インタフェース７０に供給する。以下、電流センサ３１により検出されるモータ２０に流れる電流の値を、モータ実電流Ｉｍと呼ぶ。
【００５５】
また、アシストＥＣＵ１００は、モータ２０の端子電圧を検出する第１電圧センサ３２と第２電圧センサ３３を備えている。第１電圧センサ３２は、モータ２０の一方の通電端子２０ａの電圧を表す信号を入力インタフェース７０に供給する。第１電圧センサ３２により検出される電圧の値を、第１モータ端子電圧Ｖ１と呼ぶ。また、通電端子２０ａを第１モータ端子２０ａと呼ぶ。第１モータ端子電圧Ｖ１は、スイッチング素子Ｑ１とスイッチング素子Ｑ２との接続部Ａ１のグランドに対する電位を表す。
【００５６】
第２電圧センサ３３は、モータ２０の他方の通電端子２０ｂの電圧Ｖ２を表す信号を入力インタフェース７０に供給する。第２電圧センサ３３により検出される電圧の値を、第２モータ端子電圧Ｖ２と呼ぶ。また、通電端子２０ｂを第２モータ端子２０ｂと呼ぶ。第２モータ端子電圧Ｖ２は、スイッチング素子Ｑ３とスイッチング素子Ｑ４との接続部Ａ２のグランドに対する電位を表す。
【００５７】
また、アシストＥＣＵ１００は、モータ駆動回路４０に供給される電源電圧、つまり、電源装置２００の出力電圧を検出する電源電圧センサ３４を備えている。この電源電圧センサ３４は、電源ライン２１０の電圧を表す信号を入力インタフェース７０に供給する。電源電圧センサ３４により検出される電圧の値を電源電圧Ｖccと呼ぶ。
【００５８】
また、アシストＥＣＵ１００は、モータ駆動回路４０の温度を検出する基板温度センサ３５を備えている。基板温度センサ３５は、モータ駆動回路４０におけるスイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４が設けられる基板の温度を表す信号を入力インタフェース７０に供給する。基板温度センサ３５により検出される温度の値を、基板温度Ｔｂと呼ぶ。基板温度Ｔｂは、スイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４の発熱状態に応じた温度を表す。
【００５９】
また、アシストＥＣＵ１００は、操舵トルクセンサ２１、車速センサ９１、カーテシスイッチ９２を接続している。操舵トルクセンサ２１は、操舵ハンドル１１から入力された操舵トルクｔｒを表す検出信号を入力インタフェース７０に供給する。車速センサ９１は、車速ｖｘを表す検出信号を入力インタフェース７０に供給する。カーテシスイッチ９２は、車両のドアの開閉状態Ｓを表す検出信号を入力インタフェース７０に供給する。カーテシスイッチ９２は、例えば、ドアが閉まっているときにはオフ信号を、ドアが開いているときにはオン信号を出力する。
【００６０】
次に、マイコン６０の制御処理について説明する。まず、マイコン６０の実行する操舵アシスト制御処理について説明する、図３は、マイコン６０の実行する操舵アシスト制御ルーチンを表す。操舵アシスト制御ルーチンは、イグニッションスイッチがオンしている期間中において、所定の短い周期で繰り返し実行される。
【００６１】
本制御ルーチンが起動すると、マイコン６０は、ステップＳ１において、車速センサ９１によって検出された車速ｖｘと、操舵トルクセンサ２１によって検出された操舵トルクｔｒを読み込む。続いて、ステップＳ２において、図４に示すアシストマップを参照して、入力した車速ｖｘおよび操舵トルクｔｒに応じて設定される目標アシストトルクｔｒ＊を計算する。アシストマップは、代表的な複数の車速ｖｘごとに、操舵トルクｔｒと目標アシストトルクｔｒ＊との関係を設定した関係付けデータである。アシストマップは、操舵トルクｔｒが大きくなるにしたがって目標アシストトルクｔｒ＊が増加し、車速が低くなるにしたがって目標アシストトルクｔｒ＊が増加する特性を有している。尚、図４は、左方向の操舵時におけるアシストマップであって、右方向の操舵時におけるアシストマップは、左方向のものに対して操舵トルクｔｒと目標アシストトルクｔｒ＊の符号をそれぞれ反対（つまり負）にしたものとなる。
【００６２】
続いて、マイコン６０は、ステップＳ３において、目標アシストトルクｔｒ＊を発生させるために必要な必要電流Ｉ＊を計算する。必要電流Ｉ＊は、目標トルクアシストｔｒ＊をトルク定数で除算することにより求められる。続いて、マイコン６０は、ステップＳ４において、上限電流Ｉmaxを読み込む。この上限電流Ｉmaxは、モータ２０に流す電流の上限値を表す。ステップＳ４では、後述するモータ制限値設定ルーチンにより計算された最新の上限電流Ｉmaxが読み込まれる。
【００６３】
続いて、マイコン６０は、ステップＳ５において、必要電流Ｉ＊が上限電流Ｉmaxよりも大きいか否かを判断し、必要電流Ｉ＊が上限電流Ｉmaxよりも大きい場合には、ステップＳ６において、上限電流Ｉmaxを目標電流Ｉｍ＊として設定し（Ｉｍ＊←Ｉmax）、必要電流Ｉ＊が上限電流Ｉmax以下となる場合には、ステップＳ７において、必要電流Ｉ＊を目標電流Ｉｍ＊として設定する（Ｉｍ＊←Ｉ＊）。尚、本明細書において、方向（符号）を有する検出値の大きさについて論じる場合には、その絶対値を用いる。従って、ここでは、電流の流す向きに関係しない絶対値の比較となる。
【００６４】
続いて、マイコン６０は、ステップＳ８において、目標電流Ｉｍ＊から電流センサ３１により検出されたモータ実電流Ｉｍを減算した偏差ΔＩを算出し、この偏差ΔＩを使ったＰＩ制御（比例積分制御）により、モータ実電流Ｉｍが目標電流Ｉｍ＊に追従するように目標指令電圧Ｖ＊を計算する。目標指令電圧Ｖ＊は、例えば、下記式により計算する。
Ｖ＊＝Ｋｐ・ΔＩ＋Ｋｉ・∫ΔＩ  ｄｔ
ここでＫｐは、ＰＩ制御における比例項の制御ゲイン、Ｋｉは、ＰＩ制御における積分項の制御ゲインである。
【００６５】
続いて、マイコン６０は、ステップＳ９において、目標指令電圧Ｖ＊に応じたＰＷＭ（Ｐulse  Ｗidth  Ｍodulation）制御信号をスイッチ駆動回路８０に出力する。スイッチ駆動回路８０は、入力した制御信号を増幅してモータ駆動回路４０に出力する。これにより、目標指令電圧Ｖ＊に応じたデューティ比のパルス信号列がＰＷＭ制御信号としてモータ駆動回路４０に出力される。このＰＷＭ制御信号により、各スイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４のデューティ比が制御され、モータ２０の駆動電圧が目標指令電圧Ｖ＊に調整される。こうして、モータ２０には、操舵操作方向に回転する向きに目標電流Ｉｍ＊が流れる。この結果、モータ２０は、運転者の操舵操作をアシストする。
【００６６】
マイコンは、ステップＳ９にて、ＰＷＭ制御信号を出力すると操舵アシスト制御ルーチンを一旦終了する。そして、所定の周期で上述した処理を繰り返す。
【００６７】
モータ駆動回路４０は、スイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４の劣化、ハンダ付け部の劣化等により内部抵抗が増加する。また、モータ２０は、ブラシ部の接触抵抗の増加などにより内部抵抗が増加する。内部抵抗（電気抵抗）が増加した場合には、発熱量が増加し、部品が破損する可能性がある。部品が破損した場合には、その時点から操舵アシストを実行できなくなる。そこで、本実施形態においては、モータ２０およびモータ駆動回路４０の内部抵抗値を測定（計算）し、測定した内部抵抗値が正常範囲から外れている場合には、内部抵抗値に応じてモータ２０の通電を制限する。例えば、内部抵抗値の増加にしたがってモータ２０の通電制限を厳しくする。
【００６８】
まず、モータ駆動回路４０およびモータ２０の内部抵抗値の測定方法から説明する。
【００６９】
図５に示すように、スイッチング素子Ｑ１の内部抵抗値をＲq1、スイッチング素子Ｑ２の内部抵抗値をＲq2、スイッチング素子Ｑ３の内部抵抗値をＲq3、スイッチング素子Ｑ４の内部抵抗値をＲq4、モータ２０の内部抵抗値をＲｍ、モータのインダクタンスをＬｍとする。スイッチング素子Ｑ２、Ｑ３をオフ、スイッチング素子Ｑ１、Ｑ４をオンにしてモータ２０を正回転させる方向に流れる電流をＩ１とし、スイッチング素子Ｑ１、Ｑ４をオフ、スイッチング素子Ｑ２、Ｑ３をオンにしてモータ２０を逆回転させる方向に流れる電流をＩ２とする。
【００７０】
電流Ｉ１を流したときの電圧方程式は、次式（１）にて表される。
Ｖcc＝Ｒq1・Ｉ１＋Ｒq4・Ｉ１＋（Ｖ１−Ｖ２）
＝（Ｒq1＋Ｒq4）・Ｉ１＋（Ｖ１−Ｖ２）    ・・・（１）
電流Ｉ２を流したときの電圧方程式は、次式（２）にて表される。
Ｖcc＝Ｒq3・Ｉ２＋Ｒq2・Ｉ２＋（Ｖ２−Ｖ１）
＝（Ｒq3＋Ｒq2）・Ｉ２−（Ｖ１−Ｖ２）    ・・・（２）
【００７１】
また、モータ２０の回転速度をω、モータ２０の誘起電圧定数をφ、モータ２０に流れる電流をＩ（＝Ｉ１またはＩ２）とすると、モータ２０の端子間電圧は、次式（３）にて表される。
Ｖ１−Ｖ２＝Ｒｍ・Ｉ＋Ｌｍ・ｄＩ／ｄｔ＋φ・ω    ・・・（３）
【００７２】
本実施形態においては、モータ２０の内部抵抗値Ｒｍの計算に当たっては、操舵ハンドル１１が回転しない程度の小さな直流電流Ｉ１をモータ２０に流し、そのときのモータ２０の各端子電圧Ｖ１，Ｖ２を測定する。例えば、スイッチング素子Ｑ２，Ｑ３をオフに維持した状態で、スイッチング素子Ｑ１，Ｑ４を所定のデューティ比で作動させてモータ２０に通電する。勿論、スイッチング素子Ｑ１，Ｑ４をオフに維持した状態で、スイッチング素子Ｑ２，Ｑ３を所定のデューティ比で作動させてモータ２０に通電してもよい。
【００７３】
モータ内部抵抗値Ｒｍは、（３）式において、ｄＩ／ｄｔ＝０，ω＝０を代入して、次式（４）にて求めることができる。
Ｒｍ＝（Ｖ１−Ｖ２）／Ｉ    ・・・（４）
この場合、電流センサ３１により検出されるモータ電流ＩがＩ１になるようにスイッチング素子Ｑ１，Ｑ４のデューティ比を制御し、その状態におけるモータ２０の各端子電圧Ｖ１，Ｖ２を測定すればよい。モータ２０に流す電流Ｉ１は小さな値に設定されるため、スイッチング素子Ｑ１，Ｑ４のデューティ比も小さくなる。
【００７４】
尚、本実施形態においては、モータ端子間電圧（Ｖ１−Ｖ２）を、第１電圧センサ３２により検出される第１モータ端子電圧Ｖ１から第２電圧センサ３３により検出される第２モータ端子電圧Ｖ２を減算して内部抵抗値を求めるが、電圧センサ３２，３３に代えて、第１モータ端子２０ａと第２モータ端子２０ｂとの間の電圧（端子間電圧）を直接検出する電圧センサを設けた構成であってもよい。
【００７５】
スイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４の内部抵抗値Ｒq1，Ｒq2，Ｒq3，Ｒq4の計算に当たっては、モータ２０を正回転させる方向に流れる電流とモータ２０を逆回転させる方向に流れる電流とを所定の周期で交互に流す。この場合、スイッチング素子Ｑ２，Ｑ３をオフにしてスイッチング素子Ｑ１，Ｑ４を一定時間（例えば、数ミリ秒程度）だけオンした状態でモータ電流Ｉ１とモータ端子電圧Ｖ１，Ｖ２と電源電圧Ｖccを測定し、次に、スイッチング素子Ｑ１，Ｑ４をオフにしてスイッチング素子Ｑ２，Ｑ３を一定時間（例えば、数ミリ秒程度）だけオンした状態でモータ電流Ｉ２とモータ端子電圧Ｖ１，Ｖ２と電源電圧Ｖccを測定する。これにより、モータ２０には正回転方向の電流と逆回転方向の電流とが交互に流れるため、操舵ハンドル１１の回転が防止される。
【００７６】
スイッチング素子Ｑ１，Ｑ４の内部抵抗値については、上記式（１）に基づいて次式（５）により計算することができる。
（Ｒq1＋Ｒq4）＝｛Ｖcc−（Ｖ１−Ｖ２）｝／Ｉ１    ・・・（５）
また、スイッチング素子Ｑ３，Ｑ２の内部抵抗値については、式（２）に基づいて次式（６）により計算することができる。
（Ｒq3＋Ｒq2）＝｛Ｖcc＋（Ｖ１−Ｖ２）｝／Ｉ２    ・・・（６）
【００７７】
また、スイッチング素子Ｑ１，Ｑ３，Ｑ２，Ｑ４の内部抵抗値の計算は、次式（７），（８），（９），（１０）にて行うようにすることもできる。これによれば、スイッチング素子Ｑ１，Ｑ３，Ｑ２，Ｑ４の個々の内部抵抗値Ｒq1，Ｒq3，Ｒq2，Ｒq4を計算することができる。
Ｒq1＝（Ｖcc−Ｖ１）／Ｉ１    ・・・（７）
Ｒq3＝（Ｖcc−Ｖ２）／Ｉ２    ・・・（８）
Ｒq2＝Ｖ１／Ｉ２    ・・・（９）
Ｒq4＝Ｖ２／Ｉ１    ・・・（１０）
【００７８】
次に、測定した内部抵抗値に基づいてモータ２０の作動を制限する処理について説明する。図６は、マイコン６０の実行するモータ制限値設定ルーチンを表す。モータ制限値設定ルーチンは、所定の周期で繰り返し実行される。
【００７９】
本ルーチンが起動すると、マイコン６０は、まず、ステップＳ１１において、カーテシスイッチ９２の検出信号Ｓを読み込み、検出信号Ｓがオフ状態からオン状態に変化したか否かを判断する。つまり、車両のドアが開けられたか（閉→開）否かを判断する。マイコン６０は、検出信号Ｓがオフ状態からオン状態に変化していない場合には、本ルーチンを一旦終了する。
【００８０】
本実施形態においては、車両が起動していないときに、運転者に気付かせないようにモータ２０に電流を流して、モータ２０およびモータ駆動回路４０の内部抵抗値を測定する。従って、ステップＳ１１は、運転者がドアを開けて車両に乗り込んだタイミング、あるいは、車両を降りるタイミングを検出するものである。尚、ステップＳ１１においては、電動パワーステアリング装置１のシステムがすでに起動して、操舵アシスト制御が行われている状況である場合には、「Ｎｏ」と判定する。また、この例では、運転者がドアを開けて車両に乗り込んだときと、運転者がドアを開けて車両を降りるときの両方において、「Ｙｅｓ」と判定されるが、何れか一方のみのタイミングを検出する構成であってもよい。
【００８１】
マイコン６０は、ステップＳ１１の判断を繰り返す。そして、カーテシスイッチ９２の検出信号Ｓがオフ状態からオン状態に変化したことを検出すると、続くステップＳ１２において、電動パワーステアリング装置１のシステムを起動させる。続いて、ステップＳ１３において、正常にシステムが起動したか否かを判断し、正常に起動できなかった場合には、ステップＳ１４において、操舵アシストを停止して本ルーチンを終了する。
【００８２】
電動パワーステアリング装置１のシステムが正常に起動した場合には、マイコン６０は、ステップＳ２０において、モータ２０の内部抵抗値の計算処理を実行する。図７は、その計算処理であるモータ内部抵抗値計算ルーチン（サブルーチン）を表すフローチャートである。
【００８３】
マイコン６０は、モータ内部抵抗値計算ルーチンを開始すると、ステップＳ２１において、カウンタ値ｉをゼロクリアする。続いて、ステップＳ２２において、カウンタ値ｉを値１だけインクリメントする。続いて、ステップＳ２３において、モータ２０に電流Ｉ１を流す。この場合、スイッチング素子Ｑ２，Ｑ３をオフに維持した状態で、スイッチング素子Ｑ１，Ｑ４のデューティ比を制御することにより、モータ２０に電流Ｉ１を流す。続いて、マイコン６０は、ステップＳ２４において、この通電状態におけるモータ端子電圧Ｖ１、第２モータ端子電圧Ｖ２、モータ電流Ｉ（モータ実電流Ｉｍ）を測定して、式（４）を使って、モータ内部抵抗値Ｒｍｉを計算する。このモータ内部抵抗値Ｒｍｉは、ＲＡＭ等のメモリに一時的に記憶される。
【００８４】
続いて、マイコン６０は、ステップＳ２５において、カウンタ値ｉが所定値Ｎ（例えば、Ｎ＝１０）以上であるか否かを判断し、カウンタ値ｉが所定値Ｎ未満である場合には、その処理をステップＳ２２に戻して同様の処理を行う。マイコン６０は、モータ２０への通電とモータ内部抵抗値Ｒｍｉの計算をＮ回繰り返すと（Ｓ２５：Ｙｅｓ）、ステップＳ２６において、Ｎ回計算したモータ内部抵抗値Ｒｍｉの平均値を計算する。マイコン６０は、モータ内部抵抗値Ｒｍｉの平均値を最終的な計算結果であるモータ内部抵抗値Ｒｍとして設定する。マイコン６０は、モータ内部抵抗値Ｒｍを計算すると、モータ内部抵抗値計算ルーチンを終了して、図６のメインルーチンのステップＳ３０からの処理を開始する。
【００８５】
モータ内部抵抗値は、ブラシと整流子片との接触位置によってばらつく。従って、内部抵抗値計算ルーチンにおいては、モータ内部抵抗値Ｒｍｉの移動平均を使って、最終的なモータ内部抵抗値Ｒｍを計算する。これにより、ブラシと整流子片との接触位置の影響がモータ内部抵抗値Ｒｍの計算値に現れなくなる。
【００８６】
マイコン６０は、モータ内部抵抗値Ｒｍを計算すると、続いて、メインルーチン（図６）のステップＳ３０において、モータ駆動回路４０内部抵抗値の計算処理を実行する。図８は、その計算処理である駆動回路内部抵抗値計算ルーチン（サブルーチン）を表すフローチャートである。
【００８７】
マイコン６０は、駆動回路内部抵抗値計算ルーチンを開始すると、ステップＳ３１において、カウンタ値ｊをゼロクリアする。続いて、ステップＳ３２において、カウンタ値ｊを値１だけインクリメントする。続いて、ステップＳ３３において、スイッチング素子Ｑ２，Ｑ３をオフに維持した状態で、スイッチング素子Ｑ１，Ｑ４を所定時間（例えば、数ミリ秒）だけオンにする。そして、ステップＳ３４において、この通電状態における第１モータ端子電圧Ｖ１、第２モータ端子電圧Ｖ２、電源電圧Ｖcc、モータ電流Ｉ（モータ実電流Ｉｍ）を測定して、式（７），（１０）を使って、スイッチング素子Ｑ１，Ｑ４の内部抵抗値Ｒq1ｊ，Ｒq4ｊを計算する。この内部抵抗値Ｒq1ｊ，Ｒq4ｊは、ＲＡＭ等のメモリに一時的に記憶される。
【００８８】
続いて、マイコン６０は、ステップＳ３５において、スイッチング素子Ｑ１，Ｑ４をオフに維持した状態で、スイッチング素子Ｑ２，Ｑ３を所定時間（例えば、数ミリ秒）だけオンにする。そして、ステップＳ３６において、この通電状態における第１モータ端子電圧Ｖ１、第２モータ端子電圧Ｖ２、電源電圧Ｖccを測定して、式（８），（９）を使って、スイッチング素子Ｑ２，Ｑ３の内部抵抗値Ｒq2ｊ，Ｒq3ｊを計算する。この内部抵抗値Ｒq2ｊ，Ｒq3ｊは、ＲＡＭ等のメモリに一時的に記憶される。
【００８９】
続いて、マイコン６０は、ステップＳ３７において、カウンタ値ｊが所定値Ｎ（例えば、Ｎ＝１０）以上であるか否かを判断し、カウンタ値ｊが所定値Ｎ未満である場合には、その処理をステップＳ３２に戻して同様の処理を行う。こうして正回転用のスイッチング素子Ｑ１，Ｑ４と逆回転用のスイッチング素子Ｑ２，Ｑ３とが所定の周期で交互にオンされる。この周期は、操舵ハンドル１１が回転しない程度の短時間に設定されている。
【００９０】
マイコン６０は、モータ２０への通電と内部抵抗値Ｒq1ｊ，Ｒq2ｊ，Ｒq3ｊ，Ｒq4ｊの計算をＮ回繰り返すと（Ｓ３７：Ｙｅｓ）、ステップＳ３８において、Ｎ回計算した内部抵抗値Ｒq1ｊ，Ｒq2ｊ，Ｒq3ｊ，Ｒq4ｊのそれぞれの平均値を計算する。マイコン６０は、内部抵抗値Ｒq1ｊ，Ｒq2ｊ，Ｒq3ｊ，Ｒq4ｊのそれぞれの平均値を最終的な計算結果である内部抵抗値Ｒq1，Ｒq2，Ｒq3，Ｒq4として設定する。マイコン６０は、内部抵抗値Ｒq1，Ｒq2，Ｒq3，Ｒq4を計算すると、駆動回路内部抵抗値計算ルーチンを終了して、図６のメインルーチンのステップＳ４０からの処理を開始する。
【００９１】
マイコン６０は、ステップＳ４０において、モータ内部抵抗値Ｒｍに基づいて、モータ２０の内部抵抗に関する正常、異常、半異常を判定する。例えば、マイコン６０は、予め、モータ内部抵抗値Ｒｍの正常範囲と異常範囲と半異常範囲とを区別する閾値として、第１閾値Ｒref_m1と第２閾値Ｒref_m2（＞Ｒref_m1）とを記憶している。第１閾値Ｒref_m1は、正常範囲の最大抵抗値を表し、第２閾値Ｒref_m2は異常範囲の最小抵抗値を表す。マイコン６０は、モータ内部抵抗値Ｒｍが第１Ｒref_m1より小さい場合には正常である判定し、モータ内部抵抗値Ｒｍが第２Ｒref_m1より大きい場合には異常である判定し、モータ内部抵抗値Ｒｍが第１閾値Ｒref_m1と第２閾値Ｒref_m2との間に入る場合（Ｒref_m1≦Ｒｍ≦Ｒref_m2）には半異常である判定する。尚、正常範囲に下限値を設定して短絡異常を検出するようにしてもよい。
【００９２】
マイコン６０は、ステップＳ４０において、モータ２０が異常であると判定した場合には、その処理をステップＳ１４に進めて、操舵アシストを停止して本ルーチンを終了する。一方、モータ２０が半異常であると判定した場合には、ステップＳ４１において、モータ抵抗用上限電流Ｉmax_mを設定する。マイコン６０は、例えば、図９に示すようなモータ抵抗用上限電流マップを記憶しており、このマップを参照してモータ抵抗用上限電流Ｉmax_mを設定する。モータ抵抗用上限電流マップは、モータ内部抵抗値Ｒｍが大きくなるにしたがってモータ抵抗用上限電流Ｉmax_mを小さくする特性を有する。
【００９３】
マイコン６０は、ステップＳ４０においてモータ２０が正常であると判定すると、あるいは、モータ２０が半異常であると判定してモータ抵抗用上限電流Ｉmax_mを設定すると、続くステップＳ４２において、スイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４の内部抵抗値Ｒq1，Ｒq2，Ｒq3，Ｒq4に基づいて、モータ駆動回路４０の内部抵抗に関する正常、異常、半異常を判定する。
【００９４】
マイコン６０は、例えば、内部抵抗値Ｒq1，Ｒq2，Ｒq3，Ｒq4のうちで最も大きな内部抵抗値Ｒｑを抽出し、その内部抵抗値Ｒｑを使って正常、異常、半異常を判定する。以下、内部抵抗値Ｒq1，Ｒq2，Ｒq3，Ｒq4の最大値を回路内部抵抗値Ｒｑと呼ぶ。
【００９５】
マイコンは、予め、回路内部抵抗値Ｒｑの正常範囲と異常範囲と半異常範囲とを区別する閾値として、第１閾値Ｒref_q1と第２閾値Ｒref_q2（＞Ｒref_q1）とを記憶している。第１閾値Ｒref_q1は、正常範囲の最大抵抗値を表し、第２閾値Ｒref_q2は異常範囲の最小抵抗値を表す。マイコン６０は、回路内部抵抗値Ｒｑが第１Ｒref_q1より小さい場合には正常である判定し、回路内部抵抗値Ｒｑが第２Ｒref_q1より大きい場合には異常である判定し、回路内部抵抗値Ｒｑが第１閾値Ｒref_q1と第２閾値Ｒref_q2との間に入る場合（Ｒref_q1≦Ｒｑ≦Ｒref_q2）には半異常である判定する。尚、正常範囲に下限値を設定して短絡異常を検出するようにしてもよい。
【００９６】
マイコン６０は、ステップＳ４２において、モータ駆動回路４０が異常であると判定した場合には、その処理をステップＳ１４に進めて、操舵アシストを停止して本ルーチンを終了する。一方、モータ駆動回路４０が半異常であると判定した場合には、ステップＳ４３において、回路抵抗用上限電流Ｉmax_qを設定する。マイコン６０は、例えば、図１０に示すような回路抵抗用上限電流マップを記憶しており、このマップを参照して回路抵抗用上限電流Ｉmax_qを設定する。回路抵抗用上限電流マップは、回路内部抵抗値Ｒｑが大きくなるにしたがって回路抵抗用上限電流Ｉmax_qを小さくする特性を有する。
【００９７】
モータ抵抗用上限電流マップと回路抵抗用上限電流マップとは、それぞれ独立して設定されている。従って、モータ２０が半異常状態となっている場合に適した上限電流値（モータ抵抗用上限電流Ｉmax_m）と、モータ駆動回路４０が半異常状態となっている場合に適した上限電流値（回路抵抗用上限電流Ｉmax_q）とを別々に設定することができる。
【００９８】
マイコン６０は、ステップＳ４２においてモータ駆動回路４０が正常であると判定すると、あるいは、モータ駆動回路４０が半異常であると判定して回路抵抗用上限電流Ｉmax_qを設定すると、続くステップＳ４４において、モータ抵抗用上限電流Ｉmax_mが回路抵抗用上限電流Ｉmax_qよりも大きいか否かを判定する。
【００９９】
マイコン６０は、モータ抵抗用上限電流Ｉmax_mが回路抵抗用上限電流Ｉmax_qよりも大きい場合には（Ｓ４４：Ｙｅｓ）、ステップＳ４５において、上述した操舵アシスト制御ルーチンで使用する上限電流Ｉmaxとして回路抵抗用上限電流Ｉmax_qを設定する（Ｉmax←Ｉmax_q）。逆に、モータ抵抗用上限電流Ｉmax_mが回路抵抗用上限電流Ｉmax_q以下となる場合には（Ｓ４４：Ｎｏ）、ステップＳ４６において、モータ抵抗用上限電流Ｉmax_mを上限電流Ｉmaxとして設定する（Ｉmax←Ｉmax_m）。これにより、上限電流Ｉmaxは、モータ抵抗用上限電流Ｉmax_mと回路抵抗用上限電流Ｉmax_qのうち、小さい方の値が設定される。尚、ステップＳ４０，４２のどちらにおいても正常と判定された場合には、上限電流Ｉmaxは、正常時用の値に設定される。正常時における上限電流Ｉmaxは、予め設定した固定値でもよいし、後述する変形例のように、モータ推定温度Ｔｍと基板温度Ｔｂに応じて設定される変動値であってもよい。
【０１００】
マイコン６０は、上限電流Ｉmaxを設定すると、モータ制限値設定ルーチンを一旦終了する。
【０１０１】
以上説明した本実施形態の電動パワーステアリング装置１によれば、以下の作用効果を奏する。
１．モータ２０およびモータ駆動回路４０の内部抵抗値を測定するため、それらの半異常状態を確実に検出することができる。例えば、スイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４の内部抵抗の増加、ハンダ付け部の劣化、モータ２０のブラシの接触抵抗の増加などにより、モータ通電路の内部抵抗が増加すると、発熱量が増加してモータ通電路に損傷が発生する可能性があるが、本実施形態においては、こうした損傷に至る前の半異常状態を検出することができる。
【０１０２】
２.半異常状態を検出した場合には、モータ２０の上限電流Ｉmaxを正常時に比べて低く設定するため、モータ２０およびモータ駆動回路４０の発熱を抑えることができる。これにより、それらの劣化進行を抑制することができる。また、モータ２０あるいはモータ駆動回路４０の内部抵抗値が大きいほどモータ２０の上限電流Ｉmaxを小さく設定するため、半異常の程度に応じた適切な上限電流Ｉmaxを設定することができる。これにより、適切に電動パワーステアリング装置１の延命を図ることができる。
【０１０３】
３．モータ２０あるいはモータ駆動回路４０に故障が発生したとしても、それ以前から、内部抵抗値の増加に基づいてモータ２０の作動が制限されているため、突然、操舵アシストが停止して操舵力が急変することがない。このため、運転者の負担を軽減することができる。
【０１０４】
４．モータ２０およびモータ駆動回路４０の内部抵抗値の測定は、カーテシスイッチ９２がオンしたタイミングで行うようにしているため、運転者が気付かないようにすることができる。
【０１０５】
５．モータ２０およびモータ駆動回路４０の内部抵抗は、徐々に変化していくが、予め設定されたタイミングが到来する度に抵抗値測定を行うため、内部抵抗増加の進行を確実に検出することができる。
【０１０６】
６．モータ駆動回路４０の内部抵抗値の測定時においては、正回転方向の通電と逆回転方向の通電とを交互に行うようにしているため、操舵ハンドル１１を回らないようにすることができる。また、モータ２０の内部抵抗値の測定時においては、モータ２０に流す電流を小さくしているため、操舵ハンドル１１を回らないようにすることができる。
【０１０７】
７．内部抵抗値の測定は、複数回行った移動平均値を用いているため、ブラシと整流子片との接触位置の影響が計算値に現れなくなり、精度の高いものとなる。
【０１０８】
８．モータ２０の内部抵抗値Ｒｍから設定されるモータ抵抗用上限電流Ｉmax_mと、モータ駆動回路４０の内部抵抗値Ｒｑから設定される回路抵抗用上限電流Ｉmax_qとの両方を計算し、両者のうちの小さい方の値を上限電流Ｉmaxに設定するため、モータ２０とモータ駆動回路４０との両方を適正に保護することができる。
【０１０９】
次に、本実施形態の変形例について説明する。
＜変形例１：内部抵抗値の測定タイミング＞
上記実施形態においては、カーテシスイッチ９２の検出信号Ｓを使って内部抵抗値の測定を開始するようにしているが（Ｓ１１参照）、内部抵抗値の測定を行うタイミングは、種々設定することができる。例えば、カーテシスイッチ９２に代えて、着座センサ９３（図１に破線にて示す）の検出信号Ｓを使って、内部抵抗値の測定を行うタイミングを設定しても良い。着座センサ９３は、運転者の運転座席への着座状態を表す検出信号Ｓを出力する。従って、着座センサ９３により運転者が運転席に座ったことを検出したタイミング、あるいは、着座センサ９３により運転者が運転席から降りたことを検出したタイミングで内部抵抗値の測定を行うようにするとよい。
【０１１０】
また、内部抵抗値の測定は、夜間に行うようにしてもよい。この場合、例えば、マイコン６０に設けられた時計機能を使って、予め設定された夜間の所定時刻において、内部抵抗値の測定を行うようにすればよい。
【０１１１】
また、予め設定した所定時間間隔で内部抵抗値の測定を行うようにしてもよい。
【０１１２】
＜変形例２：モータの作動制限＞
上記実施形態においては、モータ２０あるいはモータ駆動回路４０の半異常状態を検出したときに、内部抵抗値Ｒｍ，Ｒｑに応じた上限電流Ｉmaxを設定してモータ２０の作動を制限しているが、モータ２０の作動制限についても、種々の手法を採用することができる。
＜変形例２−１：経過時間に応じた電流制限＞
例えば、上限電流Ｉmaxを時間の経過とともに徐々に低減させる構成を採用することができる。モータ２０あるいはモータ駆動回路４０の内部抵抗値Ｒは、図１１に示すように、時間ｔの経過とともに徐々に増加していく。そこで、この変形例においては、図１２に示すように、半異常状態を最初に検出してからの経過時間ｔを測定し、上限電流Ｉmaxを、正常時における上限電流Ｉmax０を初期値として、時間経過ｔとともに初期値Ｉmax０から徐々に低減させる。この場合、経過時間ｔは、電動パワーステアリング装置１のシステムが作動している時間の累積値、つまり、操舵アシスト制御が行われている時間の累積値とすればよい。この例では、経過時間ｔが停止設定時間ｔ１に達したときに、操舵アシストを停止する。従って、停止設定時間ｔ１は、半異常状態が検出されてからの操舵アシスト実行可能期間となる。
【０１１３】
図１３、図１４は、この変形例２−１におけるマイコン６０の処理を表す。この処理は、実施形態のモータ制限値設定ルーチン（図６）に代えるものである。図１３が内部抵抗値判定ルーチンを表し、図１４がモータ制限値設定ルーチンを表す。以下、実施形態のモータ制限値設定ルーチン（図６）と同じ処理については、図面に実施形態と同一のステップ番号を付して説明を省略する。内部抵抗値判定ルーチン、モータ制限値設定ルーチンは、並行して所定の周期で実行される。
【０１１４】
内部抵抗値判定ルーチン（図１３）が起動すると、マイコン６０は、まず、ステップＳ５１において、半異常判定フラグＦが「０」であるか否かを判断する。この半異常判定フラグＦは、「１」によりモータ２０あるいはモータ駆動回路４０の半異常状態が検出されたことを表し、「０」により上記半異常状態が検出されていないことを表す。半異常判定フラグＦの初期値は「０」に設定されている。マイコン６０は、半異常判定フラグＦが「０」（Ｆ＝０）であれば、ステップＳ１１からの処理を行う。
【０１１５】
マイコン６０は、ステップＳ４０において、モータ２０の半異常状態を検出した場合、あるいは、ステップＳ４２において、モータ駆動回路４０の半異常状態を検出した場合には、ステップＳ５２において、半異常判定フラグＦを「１」に設定して内部抵抗値判定ルーチンを一旦終了する。
【０１１６】
また、マイコン６０は、ステップＳ４０，Ｓ４２において、モータ２０とモータ駆動回路４０とが正常であると判定した場合には、そのまま内部抵抗値判定ルーチンを一旦終了する。この場合は、上限電流Ｉmaxは、正常時用の値に設定される。
【０１１７】
内部抵抗値判定ルーチンは所定の周期で繰り返されるが、一旦、半異常判定フラグＦが「１」に設定された後は、ステップＳ５１の判断が「Ｎｏ」となる。この場合、モータ２０およびモータ駆動回路４０の内部抵抗値の検出が行われなくなり、代わりに、図１４に示すモータ制限値設定ルーチンによる上限電流Ｉmaxの計算が行われるようになる。
【０１１８】
マイコン６０は、モータ制限値設定ルーチン（図１４）のステップＳ６１において、半異常判定フラグＦが「１」に設定されているか否かについて判断する。マイコン６０は、半異常判定フラグＦが「１」に設定されるまでこの判断を繰り返すが、半異常判定フラグＦが「１」に設定されるまでの期間においては、上述した内部抵抗値判定ルーチンで内部抵抗値による異常判定（Ｓ４０，Ｓ４２）を行う。
【０１１９】
半異常判定フラグＦが「１」に設定されると（Ｓ６１：Ｙｅｓ）、マイコン６０は、ステップＳ６２において、タイマ値ｔを値１だけインクリメントする。このタイマ値ｔは、半異常判定フラグＦが「１」に設定されてからの経過時間、つまり、モータ２０あるいはモータ駆動回路４０の半異常状態が検出されてからの経過時間を表す。タイマ値ｔの初期値は、ゼロに設定されている。
【０１２０】
続いて、マイコン６０は、ステップＳ６３において、タイマ値ｔに応じた上限電流Ｉmaxを計算する。マイコンは、図１２に示すような上限電流マップを記憶しており、この上限電流マップを参照して、タイマ値ｔ（経過時間）に応じた上限電流Ｉmaxを設定する。上限電流マップは、上限電流Ｉmaxを時間経過とともに初期値Ｉmax０から徐々に低減させる特性を有する。上限電流Ｉmaxは、操舵アシスト制御ルーチンのステップＳ４において使用されるモータ２０の電流制限値である。続いて、マイコン６０は、ステップＳ６４において、タイマ値ｔが予め設定された停止設定時間ｔ１に達したか否かを判断する。タイマ値ｔが停止設定時間ｔ１に到達していない場合には、モータ制限値設定ルーチンを一旦終了する。
【０１２１】
マイコン６０は、こうした処理を所定の周期で繰り返す。これにより、経過時間ｔが増加していくにしたがって徐々に減少する上限電流Ｉmaxが設定されることになる。従って、時間経過とともにモータ２０の作動制限が大きく（厳しく）なっていく。そして、経過時間ｔが停止設定時間ｔ１に到達すると（Ｓ６４：Ｙｅｓ）、マイコン６０は、ステップＳ６５において、操舵アシストを停止し、それ以降の操舵アシスト制御を禁止する。また、内部抵抗値判定ルーチンおよびモータ制限値設定ルーチンを終了する。
【０１２２】
尚、上限電流マップは、予め想定されるモータ２０あるいはモータ駆動回路４０の内部抵抗値の変化（図１１参照）に基づいて設定されている。従って、停止設定時間ｔ１は、非常に長い時間を想定したものである。このため、マイコン６０は、イグニッションスイッチがオフになってもタイマ値ｔを記憶保持できるように、モータ制限値設定ルーチンを終了する都度、図示しない不揮発性メモリにタイマ値ｔを記憶する。そして、モータ制限値設定ルーチンを再開させる都度、不揮発性メモリに記憶したタイマ値ｔを読み込んで、このタイマ値ｔをインクリメントしていくことで累積時間をカウントする。
【０１２３】
この変形例２−１によれば、モータ２０あるいはモータ駆動回路４０の半異常状態が検出された場合、その時点から、内部抵抗値の経時変化に応じた上限電流Ｉmaxを設定するため、モータ２０の作動制限を適切に行うことができる。
【０１２４】
＜変形例２−２：半異常発生部位に応じた電流制限＞
モータ２０の半異常状態が検出されてから異常状態へ至るまでの時間（残存寿命）と、モータ駆動回路４０の半異常状態が検出されてから異常状態へ至るまでの時間（残存寿命）とは必ずしも一致しない。そこで、この変形例２−２においては、モータ２０の半異常状態が検出された場合と、モータ駆動回路４０の半異常状態が検出された場合とで、停止設定時間ｔ１が異なるように設定した上限電流マップを使用して上限電流Ｉmaxを計算する。これにより、半異常部位の残存寿命に応じた適切な操舵アシスト実行可能期間を設定することができる。
【０１２５】
図１５、図１６は、この変形例２−２におけるマイコン６０の処理を表す。この処理は、実施形態のモータ制限値設定ルーチン（図６）に代えるものである。図１５が内部抵抗値判定ルーチンを表し、図１６がモータ制限値設定ルーチンを表す。以下、実施形態のモータ制限値設定ルーチン（図６）と同じ処理については、図面に実施形態と同一のステップ番号を付して説明を省略する。内部抵抗値判定ルーチン、モータ制限値設定ルーチンは、並行して所定の周期で実行される。
【０１２６】
内部抵抗値判定ルーチン（図１５）が起動すると、マイコン６０は、まず、ステップＳ７１において、モータ半異常判定フラグＦｍが「０」であるか否かを判断する。このモータ半異常判定フラグＦｍは、「１」によりモータ２０の半異常状態が検出されたことを表し、「０」により上記半異常状態が検出されていないことを表す。モータ半異常判定フラグＦｍの初期値は「０」に設定されている。マイコン６０は、モータ半異常判定フラグＦｍが「０」（Ｆｍ＝０）であれば、テップＳ７２において、回路半異常判定フラグＦｑが「０」であるか否かを判断する。この回路半異常判定フラグＦｑは、「１」によりモータ駆動回路４０の半異常状態が検出されたことを表し、「０」により上記半異常状態が検出されていないことを表す。回路半異常判定フラグＦｑの初期値は「０」に設定されている。
【０１２７】
マイコン６０は、回路半異常判定フラグＦｑが「０」（Ｆｑ＝０）であれば、ステップＳ１１からの処理を行う。
【０１２８】
マイコン６０は、ステップＳ４０において、モータ２０の半異常状態を検出した場合には、ステップＳ７３において、モータ半異常判定フラグＦｍを「１」に設定して内部抵抗値判定ルーチンを一旦終了する。また、ステップＳ４２において、モータ駆動回路４０の半異常状態を検出した場合には、ステップＳ７４において、回路半異常判定フラグＦｑを「１」に設定して内部抵抗値判定ルーチンを一旦終了する。
【０１２９】
また、マイコン６０は、ステップＳ４０，Ｓ４２において、モータ２０とモータ駆動回路４０とが正常であると判定した場合には、そのまま内部抵抗値判定ルーチンを一旦終了する。この場合は、上限電流Ｉmaxは、正常時用の値に設定される。
【０１３０】
内部抵抗値判定ルーチンは所定の周期で繰り返されるが、一旦、モータ半異常判定フラグＦｍ、あるいは、回路半異常判定フラグＦｑが「１」に設定された後は、ステップＳ７１あるいはステップＳ７２の判断が「Ｎｏ」となる。この場合、モータ２０およびモータ駆動回路４０の内部抵抗値の検出が行われなくなり、代わりに、図１６に示すモータ制限値設定ルーチンによる上限電流Ｉmaxの計算が行われるようになる。
【０１３１】
マイコン６０は、モータ制限値設定ルーチン（図１６）のステップＳ８１において、モータ半異常判定フラグＦｍが「１」に設定されているか否かを判断する。モータ半異常判定フラグＦｍが「０」（Ｆｍ＝０）であれば、マイコン６０は、ステップＳ８２において、回路半異常判定フラグＦｑが「１」に設定されているか否かを判断する。マイコン６０は、モータ半異常判定フラグＦｍあるいは回路半異常判定フラグＦｑが「１」に設定されるまでこの２つの判断を繰り返すが、モータ半異常判定フラグＦｍあるいは回路半異常判定フラグＦｑが「１」に設定されるまでの期間においては、上述した内部抵抗値判定ルーチンで内部抵抗値による異常判定（Ｓ４０，Ｓ４２）を行う。
【０１３２】
マイコン６０は、２つの半異常判定フラグＦｍ，Ｆｑの設定状態を繰り返し判断して、モータ半異常判定フラグＦｍが「１」に設定された場合には（Ｓ８１：Ｙｅｓ）、ステップＳ８３において、タイマ値ｔを値１だけインクリメントする。このタイマ値ｔは、モータ半異常判定フラグＦｍが「１」に設定されてからの経過時間、つまり、モータ２０の半異常状態が検出されてからの経過時間を表す。タイマ値ｔの初期値は、ゼロに設定されている。
【０１３３】
続いて、マイコン６０は、ステップＳ８４において、タイマ値ｔに応じた上限電流Ｉmaxを計算する。マイコンは、図１７に示すような上限電流マップを記憶しており、この上限電流マップを参照して、タイマ値ｔ（経過時間）に応じた上限電流Ｉmaxを設定する。この上限電流マップは、上限電流Ｉmaxを時間経過とともに初期値Ｉmax０から徐々に低減させる特性を有するが、モータ半異常判定フラグＦｍが「１」に設定されている場合、つまり、モータ２０の半異常状態が検出されている場合と、回路半異常判定フラグＦｑが「１」に設定されている場合、つまり、モータ駆動回路４０の半異常状態が検出されている場合とで、その特性が異なるように設定されている。
【０１３４】
例えば、モータ２０の半異常状態が検出されてからの残存寿命が、モータ駆動回路４０の半異常状態が検出されてから残存寿命よりも短い場合には、図１７のように、モータ２０の半異常状態が検出された場合の停止設定時間ｔ１ｍを、モータ駆動回路４０の半異常状態が検出され場合の停止設定時間ｔ１ｑよりも短くするとよい。尚、モータ２０とモータ駆動回路４０とで残存寿命の関係が逆になる場合には、この特性を逆にして、停止設定時間ｔ１ｍを停止設定時間ｔ１ｑよりも長く設定するとよい。
【０１３５】
マイコン６０は、ステップＳ８４において、上限電流マップを参照して上限電流Ｉmaxを設定すると、続くステップＳ８５において、タイマ値ｔが予め設定された停止設定時間ｔ１ｍに達したか否かを判断する。タイマ値ｔが停止設定時間ｔ１ｍに到達していない場合には、モータ制限値設定ルーチンを一旦終了する。
【０１３６】
マイコン６０は、こうした処理を所定の周期で繰り返す。これにより、経過時間ｔが増加していくにしたがって徐々に減少する上限電流Ｉmaxが設定されることになる。従って、時間経過とともにモータ２０の作動制限が大きく（厳しく）なっていく。そして、経過時間ｔが停止設定時間ｔ１ｍに到達すると（Ｓ８５：Ｙｅｓ）、マイコン６０は、ステップＳ８６において、操舵アシストを停止し、それ以降の操舵アシスト制御を禁止する。また、内部抵抗値判定ルーチンおよびモータ制限値設定ルーチンを終了する。
【０１３７】
一方、回路半異常判定フラグＦｑが「１」に設定された場合には（Ｓ８２：Ｙｅｓ）、ステップＳ８７において、タイマ値ｔを値１だけインクリメントする。このタイマ値ｔは、回路半異常判定フラグＦｑが「１」に設定されてからの経過時間、つまり、モータ駆動回路４０の半異常状態が検出されてからの経過時間を表す。タイマ値ｔの初期値は、ゼロに設定されている。
【０１３８】
続いて、マイコン６０は、ステップＳ８８において、上限電流マップ（図１７）を参照してタイマ値ｔに応じた上限電流Ｉmaxを計算する。続いて、ステップＳ８９において、タイマ値ｔが予め設定された停止設定時間ｔ１ｑに達したか否かを判断する。タイマ値ｔが停止設定時間ｔ１ｑに到達していない場合には、モータ制限値設定ルーチンを一旦終了する。
【０１３９】
マイコン６０は、こうした処理を所定の周期で繰り返す。これにより、経過時間ｔが増加していくにしたがって徐々に減少する上限電流Ｉmaxが設定されることになる。従って、時間経過とともにモータ２０の作動制限が大きく（厳しく）なっていく。そして、経過時間ｔが停止設定時間ｔ１ｑに到達すると（Ｓ８９：Ｙｅｓ）、マイコン６０は、ステップＳ８６において、操舵アシストを停止し、それ以降の操舵アシスト制御を禁止する。また、内部抵抗値判定ルーチンおよびモータ制限値設定ルーチンを終了する。
【０１４０】
この変形例２−２によれば、モータ２０が半異常状態になった場合と、モータ駆動回路４０が半異常状態になった場合とで、それぞれ独立した上限電流Ｉmaxの特性および停止設定時間ｔ１が設定される。つまり、半異常が発生した部位に応じて、上限電流Ｉmaxの特性および停止設定時間ｔ１が切り替えられる。これにより、半異常部位の劣化進行度合に応じた適切な操舵アシストを実行することができる。また、半異常部位の残存寿命に応じた適切な操舵アシスト実行可能期間を設定することができる。この結果、一層適切にモータ２０の作動制限を行うことができる。
【０１４１】
＜変形例２−３：最大電圧による作動制限＞
モータ２０の作動制限については、モータ２０に印加する最大電圧を制限する構成を採用することもできる。例えば、目標指令電圧Ｖ＊の上限値である上限指令電圧Ｖmaxを内部抵抗値に応じた値に設定する。この場合、マイコン６０は、図１９に示すようなモータ抵抗用上限指令電圧マップ、および、図２０に示すような回路抵抗用上限指令電圧マップを記憶している。モータ抵抗用上限指令電圧マップは、内部抵抗値Ｒｍが大きくなるにしたがってモータ抵抗用上限指令電圧Ｖmax_mを小さくする特性を有する。また、回路抵抗用上限指令電圧マップは、内部抵抗値Ｒｑが大きくなるにしたがって回路抵抗用上限指令電圧Ｖmax_qを小さくする特性を有する。
【０１４２】
マイコン６０は、図１８に示すモータ制限値設定ルーチンを実行する。このモータ制限値設定ルーチンは、実施形態におけるモータ制限値設定ルーチン(図６）を一部変更したものである。以下、実施形態と同じ処理については、図面に実施形態と同一のステップ番号を付して説明を省略する。
【０１４３】
マイコン６０は、ステップＳ４０において、モータ２０が半異常であると判定した場合には、ステップＳ９１において、図１９に示すモータ抵抗用上限指令電圧マップを参照して、モータ抵抗用上限指令電圧Ｖmax_mを設定する。また、ステップＳ４２において、モータ駆動回路４０が半異常であると判定した場合には、ステップＳ９３において、図２０に示す回路抵抗用上限指令電圧マップを参照して、回路抵抗用上限指令電圧Ｖmax_qを設定する。
【０１４４】
マイコン６０は、モータ抵抗用上限指令電圧Ｖmax_mが回路抵抗用上限指令電圧Ｖmax_qよりも大きい場合には（Ｓ９４：Ｙｅｓ）、ステップＳ９５において、上限指令電圧Ｖmaxを回路抵抗用上限指令電圧Ｖmax_qに設定する。逆に、モータ抵抗用上限指令電圧Ｖmax_mが回路抵抗用上限指令電圧Ｖmax_q以下となる場合には（Ｓ９４：Ｎｏ）、ステップＳ９６において、上限指令電圧Ｖmaxをモータ抵抗用上限指令電圧Ｖmax_mに設定する。これにより、上限指令電圧Ｖmaxは、モータ抵抗用上限指令電圧Ｖmax_mと回路抵抗用上限指令電圧Ｖmax_qとのうち、小さい方の値が設定される。
【０１４５】
この上限指令電圧Ｖmaxは操舵アシスト制御ルーチンに使用される。図２１は、変形例としての操舵アシスト制御ルーチンを表す。この操舵アシスト制御ルーチンは、実施形態における操舵アシスト制御ルーチン(図３）を一部変更したものである。以下、実施形態と同じ処理については、図面に実施形態と同一のステップ番号を付して説明を省略する。
【０１４６】
マイコン６０は、ステップＳ３において必要電流Ｉ＊を計算すると、ステップＳ８において、この必要電流Ｉ＊を目標電流Ｉｍ＊に設定して、目標電流Ｉｍ＊から電流センサ３１により検出されたモータ実電流Ｉｍを減算した偏差ΔＩを算出し、この偏差ΔＩを使ったＰＩ制御（比例積分制御）により、モータ実電流Ｉｍが目標電流Ｉｍ＊に追従するための目標指令電圧Ｖ＊を計算する。
【０１４７】
続いて、マイコンは、ステップＳ１０１において、上述したモータ制限値設定ルーチンで計算した上限指令電圧Ｖmaxを読み込む。続いて、ステップＳ１０２において、目標指令電圧Ｖ＊が上限指令電圧Ｖmaxよりも大きいか否かを判断し、目標指令電圧Ｖ＊が上限指令電圧Ｖmaxよりも大きい場合には、ステップＳ１０３において、目標指令電圧Ｖ＊を上限指令電圧Ｖmaxに設定する。一方、目標指令電圧Ｖ＊が上限指令電圧Ｖmax以下であれば、ステップＳ１０３の処理を飛ばす。つまり、目標指令電圧Ｖ＊を変更しない。
【０１４８】
この変形例２−３においては、モータ２０あるいはモータ駆動回路４０が半異常状態となった場合には、半異常の程度に応じた上限指令電圧Ｖmaxを設定するため、実施形態と同様の作用効果を得ることができる。
【０１４９】
＜変形例２−４：経過時間に応じた電圧制限＞
上記変形例２−１においては、上限電流Ｉmaxを時間の経過とともに徐々に低減させるようにしたが、この変形例２−４においては、それに代えて、図２２に示すように、上限指令電圧Ｖmaxを時間の経過とともに徐々に低減させる。この場合、マイコン６０は、図１３に示す内部抵抗値判定ルーチンと、図１４に示すモータ制限値設定ルーチンと、図２１に示す操舵アシスト制御ルーチンと同様の処理を実行する。但し、マイコン６０は、図２２に示すような特性を有する上限指令電圧マップを記憶しており、モータ制限値設定ルーチン（図１４）のステップＳ６３においては、上限電流Ｉmaxの設定に代えて、この上限指令電圧マップを参照した上限指令電圧Ｖmaxの設定を行う。
【０１５０】
従って、マイコン６０は、モータ２０あるいはモータ駆動回路４０の半異常状態を検出すると、半異常状態を最初に検出してからの経過時間ｔをカウントし、上限指令電圧Ｖmaxを、正常時における上限指令電圧Ｖmax０を初期値として、時間経過とともに初期値Ｖmax０から徐々に低減させる。そして、経過時間ｔが停止設定時間ｔ１に到達すると（Ｓ６４：Ｙｅｓ）、操舵アシストを停止する。この変形例２−４においても、変形例２−１と同様に、マイコン６０は、タイマ値ｔを不揮発性メモリに記憶保持して累積時間をカウントする。
【０１５１】
この変形例２−４によれば、モータ２０あるいはモータ駆動回路４０の半異常状態が検出された場合、その時点から、内部抵抗値の経時変化に応じた上限指令電圧Ｖmaxを設定するため、モータ２０の作動制限を適切に行うことができる。
【０１５２】
＜変形例２−５：半異常発生部位に応じた電圧制限＞
上記変形例２−２においては、上限電流Ｉmaxを時間の経過とともに徐々に低減させ、かつ、モータ２０の半異常状態が検出された場合と、モータ駆動回路４０の半異常状態が検出された場合とで、特性の異なる上限電流マップを使用して上限電流Ｉmaxを計算したが、この変形例２−５においては、上限電流Ｉmaxに代えて、上限指令電圧Ｖmaxを時間の経過とともに徐々に低減させる。この場合、マイコン６０は、図１５に示す内部抵抗値判定ルーチンと、図１６に示すモータ制限値設定ルーチンと、図２１に示す操舵アシスト制御ルーチンと同様の処理を実行する。
【０１５３】
但し、マイコン６０は、図２３に示すような特性を有する上限指令電圧マップを記憶しており、モータ制限値設定ルーチン（図１６）のステップＳ８４，Ｓ８８においては、この上限指令電圧マップを参照して、上限指令電圧Ｖmaxを設定する。また、ステップＳ８５，Ｓ８９においては、この上限指令電圧マップで設定される停止設定時間ｔ１ｍまたは停止設定時間ｔ１ｑにて操舵アシストを停止する。
【０１５４】
この上限指令電圧マップは、上限指令電圧Ｖmaxを時間経過とともに初期値Ｖmax０から徐々に低減させる特性を有するが、モータ半異常判定フラグＦｍが「１」に設定されている場合、つまり、モータ２０の半異常状態が検出されている場合と、回路半異常判定フラグＦｑが「１」に設定されている場合、つまり、モータ駆動回路４０の半異常状態が検出されている場合とで、その特性が異なるように設定されている。
【０１５５】
図２３は、モータ２０の半異常状態が検出されてからの残存寿命が、モータ駆動回路４０の半異常状態が検出されてから残存寿命よりも短い場合の、上限指令電圧Ｖmaxの設定例を表す。この例では、モータ２０の半異常状態が検出された場合には、停止設定時間ｔ１ｍが設定され、モータ駆動回路４０の半異常状態が検出された場合には、停止設定時間ｔ１ｍよりも長い停止設定時間ｔ１Qが設定される。尚、モータ２０とモータ駆動回路４０とで残存寿命の関係が逆になる場合には、この特性を逆にして、停止設定時間ｔ１ｍを停止設定時間ｔ１ｑよりも長く設定するとよい。
【０１５６】
この変形例２−５によれば、モータ２０が半異常状態になった場合と、モータ駆動回路４０が半異常状態になった場合とで、それぞれ独立した上限指令電圧Ｖmaxの特性および停止設定時間ｔ１が設定される。つまり、半異常が発生した部位に応じて、上限指令電圧Ｖmaxの特性および停止設定時間ｔ１が切り替えられる。これにより、半異常部位の劣化進行度合に応じた適切な操舵アシストを実行することができる。また、半異常部位の残存寿命に応じた適切な操舵アシスト実行可能期間を設定することができる。この結果、一層適切にモータ２０の作動制限を行うことができる。
【０１５７】
＜変形例２−６：目標アシストトルクによる作動制限＞
モータ２０の作動制限については、モータ２０あるいはモータ駆動回路４０の半異常状態が検出されたときに、目標アシストトルクｔｒ＊を正常時に比べて小さくするようにしてもよい。例えば、操舵アシスト制御ルーチン（図３）のステップＳ２において、アシストマップから設定された目標アシストトルクｔｒ＊に制限係数Ｋ（０≦Ｋ＜１）を乗じ、その計算値（ｔｒ＊×Ｋ）を、最終的な目標アシストトルクｔｒ＊に設定するような補正を行うようにしてもよい。この場合、制限係数Ｋは、モータ２０あるいはモータ駆動回路４０の内部抵抗値が大きくなるにしたがって小さな値に設定されると良い。
【０１５８】
また、半異常状態を最初に検出してからの経過時間ｔを測定し、制限係数Ｋを、正常時における値「１」から徐々に低減させるようにして、経過時間ｔが停止設定時間ｔ１に達したときに、操舵アシストを停止するようにしてもよい。
【０１５９】
また、モータ２０あるいはモータ駆動回路４０の半異常状態が検出された場合には、車速ｖｘに関わらず、常に、高速走行時のアシストマップの特性を使って目標アシストトルクｔｒ＊を設定するようにしてもよい（図４参照）。これによれば、目標アシストトルクｔｒ＊が正常時に比べて小さく設定されてモータ２０の作動が制限される。
【０１６０】
＜変形例２−７：推定温度による電流制限との組み合わせ＞
上記実施形態においては、モータ２０の内部抵抗値Ｒｍとモータ駆動回路４０の内部抵抗値Ｒｑとに基づいて上限電流Ｉmaxを設定しているが、これに加えて、モータ推定温度Ｔｍと基板温度Ｔｂとを考慮して上限電流Ｉmaxを設定するようにしてもよい。図２４は、マイコン６０により所定の周期で実行されるモータ制限値設定ルーチンを表す。このモータ制限値設定ルーチンを実行するにあたって、マイコン６０は、図２５（ａ）に示すように、モータ推定温度Ｔｍとモータ温度用上限電流Ｉmax_Tmとの関係を設定したモータ温度用上限電流マップと、図２５（ｂ）に示すように、基板温度Ｔｂと基板温度用上限電流Ｉmax_Tbとの関係を設定した基板温度用上限電流マップとを記憶している。モータ温度用上限電流マップは、モータ推定温度Ｔｍが高くなるにしたがってモータ温度用上限電流Ｉmax_Tmを小さくする特性を有し、基板温度用上限電流マップは、基板温度Ｔｂが高くなるにしたがって基板温度用上限電流Ｉmax_Tbを小さくする特性を有する。
【０１６１】
モータ制限値設定ルーチン（図２４）は、操舵アシスト制御ルーチンと並行して所定の短い周期で繰り返される。マイコン６０は、ステップＳ１１１において、電流センサ３１により検出されるモータ実電流Ｉｍと基板温度センサ３５により検出される基板温度Ｔｂを読み込む。続いて、ステップＳ１１２において、モータ推定温度Ｔｍを計算する。モータ推定温度Ｔｍは、モータ２０の発熱による温度上昇分を表すもので、電流センサ３１により検出されるモータ実電流Ｉｍの二乗積算値を使って計算することができる。温度推定用電流二乗積算値ＳＵＭは、次式（１１）にて計算される。
ＳＵＭ(n)＝ＳＵＭ(n-1)＋Ｋtm・（Ｉｍ2−ＳＵＭ(n-1)）    ・・・（１１）
ここで、Ｋtmは、モータ実電流Ｉｍの二乗値に応じてモータ２０が温度変化する程度を表す予め定めた係数である。また、(n)は、所定の短い周期にて繰り返し実行される上限電流Ｉmax設定ルーチンにおける今回の処理により演算される値であることを意味する。従って、ＳＵＭ(n)は、今回計算により求めようとする温度推定用電流二乗積算値であり、ＳＵＭ(n-1)は、１演算周期前に算出した温度推定用電流二乗積算値である。
マイコン６０は、次式（１２）に示すように、この温度推定用電流二乗積算値ＳＵＭ(n)にモータ温度ゲインＧｍを乗算してモータ推定温度Ｔｍを算出する。
Ｔｍ＝Ｇｍ・ＳＵＭ(n)    ・・・（１２）
【０１６２】
この計算にあたっては、ＳＵＭ(n-1)の初期値が必要となる。ＳＵＭ(n-1)の初期値は、例えば、操舵アシスト制御ルーチンを終了したときの温度推定用電流二乗積算値ＳＵＭ(n)を不揮発性メモリに記憶しておき、次回の操舵アシスト制御ルーチンが開始されたときに、その記憶した温度推定用電流二乗積算値ＳＵＭ(n)から、放熱による温度変化分（ΔＴ）を減算して求めるようにしてもよい。温度変化分（ΔＴ）は、例えば、基板温度Ｔｂの温度変化量に基づいて算出することができる。また、モータ２０の作動停止期間が長い場合には、ＳＵＭ(n-1)の初期値をゼロに設定することができる。
【０１６３】
続いて、マイコン６０は、ステップＳ１１３において、モータ温度用上限電流マップを参照して、モータ推定温度Ｔｍからモータ温度用上限電流Ｉmax_Tmを計算する。続いて、ステップＳ１１４において、基板温度用上限電流マップを参照して、基板温度Ｔｂから基板温度用上限電流Ｉmax_Tbを計算する。
【０１６４】
続いて、マイコン６０は、ステップＳ１１５において、モータ温度用上限電流Ｉmax_Tmと基板温度用上限電流Ｉmax_Tbとを比較し、ステップＳ１１６，Ｓ１１７において、小さい方の値を温度用上限電流Ｉmax_Tに設定する。
【０１６５】
続いて、マイコン６０は、ステップＳ１１８において、実施形態におけるモータ制限値設定ルーチンのステップＳ４５，Ｓ４６で設定した上限電流Ｉmaxが温度用上限電流Ｉmax_Tより大きいか否かを判断し、上限電流Ｉmaxが温度用上限電流Ｉmax_Tより大きい場合には（Ｓ１１８：Ｙｅｓ）、ステップＳ１１９において、上限電流Ｉmaxを温度用上限電流Ｉmax_Tの値に変更する（Ｉmax  ←Ｉmax_T）。一方、上限電流Ｉmaxが温度用上限電流Ｉmax_T以下の場合には（Ｓ１１８：Ｎｏ）、ステップＳ１１９の処理をスキップする。
【０１６６】
マイコン６０は、このようにして上限電流Ｉmaxを設定するとモータ制限値設定ルーチンを一旦終了する。マイコン６０は、操舵アシスト制御ルーチンのステップＳ４において、このモータ制限値設定ルーチンで設定された上限電流Ｉmaxを読み込む。
【０１６７】
この変形例２−７によれば、モータ２０の内部抵抗値Ｒｍと、モータ推定温度Ｔｍと、モータ駆動回路４０の内部抵抗値Ｒｑと、基板温度Ｔｂとに基づいてそれぞれ上限電流を設定し、それらの上限電流の最も小さい値を使ってモータ２０の上限電流を設定する。従って、モータ２０およびモータ駆動回路４０を一層適正に保護して延命を図ることができる。
【０１６８】
＜変形例２−８：温度ゲインによる作動制限＞
上記実施形態においては、モータ２０あるいはモータ駆動回路４０の半異常状態が検出されたときに、内部抵抗値に応じた上限電流Ｉmaxを設定してモータ２０の作動を制限しているが、この変形例２−８では、内部抵抗値に応じた温度ゲインを設定することにより上限電流Ｉmaxを変更する。
【０１６９】
この変形例２−８においては、マイコン６０は、操舵アシスト制御ルーチンのステップＳ４において使用する上限電流Ｉmaxをモータ推定温度Ｔｍおよび基板温度Ｔｂに基づいて設定する。例えば、変形例２−７におけるステップＳ１１１〜Ｓ１１７と同様の処理を行って、温度用上限電流Ｉmax_Tを計算し、この温度用上限電流Ｉmax_Tを、操舵アシスト制御ルーチンで使用する上限電流Ｉmaxに設定する。
【０１７０】
この場合、マイコン６０は、ステップＳ１１２でモータ推定温度Ｔｍを計算するとき、モータ２０の内部抵抗値Ｒｍに応じて設定されるモータ温度ゲインＧｍを使用する。モータ推定温度Ｔｍは、次式（１２）にて計算される。
Ｔｍ＝Ｇｍ・ＳＵＭ(n)    ・・・（１２）
従って、この式におけるモータ温度ゲインＧｍを内部抵抗値Ｒｍに応じて可変することで、モータ推定温度Ｔｍを調整することができる。
【０１７１】
マイコン６０は、図２６（ａ）に示す特性のモータ温度ゲインマップを記憶しており、このモータ温度ゲインマップを参照して内部抵抗値Ｒｍからモータ温度ゲインＧｍ（≧１）を計算する。モータ温度ゲインマップは、モータ２０の内部抵抗値Ｒｍが大きくなるにしたがってモータ温度ゲインＧｍが増加する特性を有する。従って、モータ推定温度Ｔｍは、モータ２０の内部抵抗値Ｒｍが大きくなるにしたがって高くなる。
【０１７２】
また、マイコン６０は、ステップＳ１１４で基板温度用上限電流Ｉmax_Tbを設定する場合、基板温度Ｔｂを基板温度ゲインＧｂで補正する。つまり、次式（１３）に示すように、基板温度センサ３５にて検出される基板温度Ｔｂに基板温度ゲインＧｂを乗算した値を、最終的な基板温度Ｔｂに設定する。
Ｔｂ＝Ｇｂ・Ｔｂ    ・・・（１３）
従って、この式における基板温度ゲインＧｂをモータ駆動回路４０の内部抵抗値Ｒｑに応じて可変することで、基板温度Ｔｂを調整することができる。
【０１７３】
マイコン６０は、図２６（ｂ）に示す特性の基板温度ゲインマップを記憶しており、この基板温度ゲインマップを参照して内部抵抗値Ｒｑから基板温度ゲインＧｂ（≧１）を計算する。基板温度ゲインマップは、モータ駆動回路４０の内部抵抗値Ｒｑが大きくなるにしたがって基板温度ゲインＧｂが増加する特性を有する。従って、基板温度Ｔｂは、モータ駆動回路４０の内部抵抗値Ｒｑが大きくなるにしたがって高くなる。
【０１７４】
この変形例２−８によれば、モータ２０の内部抵抗値Ｒｍが増加して半異常状態となった場合には、計算上のモータ推定温度Ｔｍが上昇するため、これに伴って上限電流Ｉmaxが低下する（図２５（ａ）参照）。従って、モータ２０に流れる電流を正常時に比べて制限することができる。また、モータ駆動回路４０の内部抵抗値Ｒｑが増加して半異常状態となった場合には、計算上の基板温度Ｔｂが上昇するため、これに伴って上限電流Ｉmaxが低下する（図２５（ｂ）参照）。従って、モータ２０に流れる電流を正常時に比べて制限することができる。
【０１７５】
また、モータ温度ゲインマップと基板温度ゲインマップとを独自の特性に設定することができるため、半異常状態が発生した部位に応じた適正なモータ２０の作動制限を行うことができる。
【０１７６】
＜変形例３：半異常状態の判定＞
上記実施形態においては、測定した内部抵抗値Ｒｍ，Ｒｑと、予め設定した判定値（（Ｒref_m1，Ｒref_m2），（Ｒref_q１，Ｒref_q2）との比較により半異常状態を判定しているが（Ｓ４０，Ｓ４２参照）、半異常状態の判定方法については、種々の手法を採用することができる。
【０１７７】
＜変形例３−１：内部抵抗値の初期値に基づく判定＞
例えば、最初に測定した内部抵抗値を初期値として設定し、この初期値からの変動に基づいて半異常状態を判定するようにしても良い。この場合、最初に測定した内部抵抗値を初期値Ｒｍ０，Ｒｑ０として不揮発性メモリ（図示略）に記憶しておき、その後、内部抵抗値を測定する度に、ステップＳ４０及びステップＳ４２において、測定した内部抵抗値Ｒｍ，Ｒｑと初期値Ｒｍ０，Ｒｑ０とを比較するようにする。
【０１７８】
判定に際しては、例えば、測定した内部抵抗値の初期値に対する増加幅（Ｒｍ−Ｒｍ０，Ｒｑ−Ｒｑ０）あるいは増加率（Ｒｍ／Ｒｍ０，Ｒｑ／Ｒｑ０）を計算し、その増加幅あるいは増加率が予め設定した第１基準値を超えている場合に半異常状態であると判定し、第１基準値より大きな第２基準基準値を超えている場合に異常状態であると判定するとよい。尚、スイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４の内部抵抗値の初期値Ｒｑ０は、例えば、最初に測定した内部抵抗値Ｒq1，Ｒq2，Ｒq3，Ｒq4の任意の値を採用しても良いし、平均値あるいは最大値あるいは最小値を採用してもよい。また、個々のスイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４の内部抵抗値Ｒq1，Ｒq2，Ｒq3，Ｒq4の増加幅あるいは増加率を計算し、その増加幅あるいは増加率に基づいて判定するようにしてもよい。この場合、４つの増加幅あるいは増加率の最大値を基準値と比較するようにするとよい。
【０１７９】
＜変形例３−２：判定値の温度補正＞
測定した内部抵抗値Ｒｍ，Ｒｑを判定するための判定値（（Ｒref_m1，Ｒref_m2），（Ｒref_q１，Ｒref_q2））が温度補正される構成であってもよい。マイコン６０は、モータ実電流Ｉｍに基づいてモータ２０の温度Ｔｍを推定する機能と、基板温度センサ３５により基板温度Ｔｂを検出する機能を備えている。従って、モータ２０の推定温度Ｔｍに基づいて、モータ２０の半異常状態を判定する判定値（Ｒref_m1およびＲref_m2）を補正することができる。また、基板温度Ｔｂに基づいて、モータ駆動回路４０の半異常状態を判定する判定値（Ｒref_q１およびＲref_q2）を補正することができる。
【０１８０】
モータ２０の推定温度Ｔｍと内部抵抗値Ｒｍとの関係、および、基板温度ｔｂと内部抵抗値Ｒｑとの関係は、予め実験により求めることができる。従って、推定温度Ｔｍと補正係数との関係を表す補正マップ、基板温度ｔｂと補正係数との関係を表す補正マップをマイコン６０に記憶しておくことができる。
【０１８１】
マイコン６０は、ステップＳ４０において、モータ内部抵抗値Ｒｍに基づいて、モータ２０の正常、異常、半異常を判定するにあたって、モータ２０の推定温度Ｔｍを読み込む。そして、補正マップを参照して推定温度Ｔｍに応じた補正係数を設定し、この補正係数を判定値（Ｒref_m1，Ｒref_m2）に乗算した値を、新たな判定値（Ｒref_m1，Ｒref_m2）とする。マイコン６０は、この補正された判定値（Ｒref_m1，Ｒref_m2）を使って、モータ２０の正常、異常、半異常を判定する。尚、モータ２０の推定温度Ｔｍは、上述の変形例２−７で説明した方法で計算することができる。
【０１８２】
同様に、マイコン６０は、ステップＳ４２において、回路内部抵抗値Ｒｑに基づいて、モータ駆動回路４０の正常、異常、半異常を判定するにあたって、基板温度センサ３５により検出される基板温度Ｔｂを読み込む。そして、補正マップを参照して基板温度Ｔｂに応じた補正係数を設定し、この補正係数を判定値（Ｒref_q１，Ｒref_q2）に乗算した値を、新たな判定値（Ｒref_q１，Ｒref_q2）とする。マイコン６０は、この補正された判定値（Ｒref_q１，Ｒref_ｑ2）を使って、モータ駆動回路４０の正常、異常、半異常を判定する。
【０１８３】
この変形例３−２によれば、モータ２０およびモータ駆動回路４０の内部抵抗に関する状態（正常、異常、半異常）をさらに高精度に判定することができる。
【０１８４】
＜変形例３−３：電圧変化に基づく判定＞
上記実施形態においては、モータ２０の内部抵抗値Ｒｍとモータ駆動回路４０の内部抵抗値Ｒｑとを測定したが、必ずしも内部抵抗値を測定する必要はない。例えば、モータ２０の端子間電圧の経時変化に基づいて半異常状態を検出することができる。
【０１８５】
この変形例３−３においては、マイコン６０は、図２７に示すモータ制限値設定ルーチンを実行する。この変形例３−３のモータ制限値設定ルーチンは、実施形態のモータ制限値設定ルーチン（図６）のステップＳ２０からステップＳ４６の処理を変更したものである。以下、実施形態と同じ処理については、図面に実施形態と同一のステップ番号を付して説明を省略する。
【０１８６】
マイコン６０は、電動パワーステアリング装置１のシステムが正常に起動した場合には（Ｓ１３：Ｙｅｓ）、続く、ステップＳ１２０において、予め設定したデューティ比αにてスイッチング素子Ｑ１，Ｑ４をオンオフ作動させる。続いて、ステップＳ１２１において、そのときの第１モータ端子間Ｖ１と第２モータ端子電圧Ｖ２と電源電圧Ｖｃｃとを測定する。続いて、マイコン６０は、ステップＳ１２２において、電源電圧Ｖｃｃにデューティ比αを乗算した値（α×Ｖｃｃ）と、モータ２０の端子間電圧（Ｖ１−Ｖ２）との偏差ΔＶ１（＝｜（α×Ｖｃｃ）−（Ｖ１−Ｖ２）｜）を計算する。
【０１８７】
続いて、マイコン６０は、ステップＳ１２３において、デューティ比αにてスイッチング素子Ｑ２，Ｑ３をオンオフ作動させる。続いて、ステップＳ１２４において、そのときの第１モータ端子間Ｖ１と第２モータ端子電圧Ｖ２と電源電圧Ｖｃｃとを測定する。続いて、マイコン６０は、ステップＳ１２５において、電源電圧Ｖｃｃにデューティ比αを乗算した値（α×Ｖｃｃ）と、モータ２０の端子間電圧（Ｖ２−Ｖ１）との偏差ΔＶ２（＝｜（α×Ｖｃｃ）−（Ｖ２−Ｖ１）｜）を計算する。
【０１８８】
続いて、マイコン６０は、ステップＳ１２６〜Ｓ１２８において、偏差ΔＶ１と偏差ΔＶ２との大きい方の値を偏差ΔＶに設定する。尚、偏差ΔＶ１と偏差ΔＶ２の測定は、交互に複数回行うようにして、それらの平均値を求めるようにしてもよい。
【０１８９】
モータ２０の内部抵抗値とモータ駆動回路４０の内部抵抗値がともに正常であれば、偏差ΔＶは小さな値となるが、モータ２０の内部抵抗値あるいはモータ駆動回路４０の内部抵抗値が増加すると偏差ΔＶが増大する。このことを利用して、マイコン６０は、ステップＳ１２９において、偏差ΔＶに基づいて、モータ２０およびモータ駆動回路４０からなるモータ通電路の正常、半異常、異常を判定する。例えば、最初に測定した偏差ΔＶを初期値ΔＶ０として不揮発性メモリ（図示略）に記憶しておき、その後は、ステップＳ１２２で計算した偏差ΔＶと初期値ΔＶ０とを比較して判定する。
【０１９０】
判定に際しては、例えば、偏差ΔＶの初期値ΔＶ０に対する増加幅（ΔＶ−ΔＶ０）あるいは増加率（ΔＶ／ΔＶ０）を計算し、その増加幅あるいは増加率が予め設定した第１基準値を超えている場合に半異常状態であると判定し、第１基準値より大きな第２基準基準値を超えている場合に異常状態であると判定するとよい。尚、初期値ΔＶ０に代えて、予め設定された設定値ΔＶ０と比較して判定してもよい。
【０１９１】
マイコンは、ステップＳ１２９において、半異常状態を検出した場合には、ステップＳ１３０において、上限電流Ｉmaxを設定する。この場合、上限電流Ｉmaxは、増加幅（ΔＶ−ΔＶ０）あるいは増加率（ΔＶ／ΔＶ０）が大きくなるにしたがって小さな値に設定されるようにするとよい。
【０１９２】
＜変形例４：半異常の報知＞
アシストＥＣＵ１００にウォーニングランプ９４（図１参照）を接続して、モータ２０あるいはモータ駆動回路４０の半異常状態が検出された場合に、ウォーニングランプ９４を点灯させる構成を採用することもできる。これによれば、運転者は、モータ２０あるいはモータ駆動回路４０が半異常となった段階で、その異常を知ることができる。従って、適切なタイミングで（部品故障が発生する前に）、修理の手配をすることができる。
【０１９３】
以上、実施形態および変形例にかかる電動パワーステアリング装置１について説明したが、本発明は上記実施形態および変形例に限定されるものではなく、本発明の目的を逸脱しない限りにおいて種々の変更が可能である。
【０１９４】
例えば、本実施形態においては、モータ２０とモータ駆動回路４０との両方の内部抵抗値を測定して、その内部抵抗値に応じてモータ２０の作動を制限する構成を採用しているが、モータ２０とモータ駆動回路４０の何れか一方の内部抵抗値を測定して、その内部抵抗値に応じてモータ２０の作動を制限する構成を採用してもよい。例えば、モータ２０に比べてモータ駆動回路４０の信頼性が高い場合には、モータ駆動回路４０の内部抵抗値の測定、判定、モータ作動制限（Ｓ２０，Ｓ４０，Ｓ４１）を省略して、モータ２０の内部抵抗値に応じてモータ２０の作動を制限するようにしてもよく、逆に、モータ駆動回路４０に比べてモータ２０の信頼性が高い場合には、モータ２０の内部抵抗値の測定、判定、モータ作動制限（Ｓ３０，Ｓ４２，Ｓ４３）を省略して、モータ駆動回路４０の内部抵抗値に応じてモータ２０の作動を制限するようにしてもよい。
【０１９５】
また、本実施形態においては、モータ駆動回路（Ｈブリッジ回路）４０に使用するスイッチング素子Ｑ１，Ｑ２，Ｑ３，Ｑ４としてＭＯＳ―ＦＥＴを用いているが、これに限るものではなく、他のスイッチング半導体素子を用いることも可能である。
【０１９６】
また、本実施形態および変形例においては、各種のマップを用いて変数を導き出しているが、マップに代えて、関数等を使った計算式を用いるようにしてもよい。
【０１９７】
また、本実施形態においては停止設定時間を設けていないが、例えば、変形例２−１，２−２，２−４，２−５，２−６のように、半異常状態を検出した場合には、その検出した時点からの経過時間が停止設定時間に到達したら、操舵アシストを停止するようにしてもよい。
【０１９８】
また、変形例３−２においては、測定した内部抵抗値Ｒｍ，Ｒｑと比較する判定値（（Ｒref_m1，Ｒref_m2），（Ｒref_q１，Ｒref_q2））の温度補正を行うようにしているが、測定した内部抵抗値Ｒｍ，Ｒｑを温度補正するようにしてもよい。
【０１９９】
また、本実施形態においては、モータ２０の発生するトルクをステアリングシャフト１２に付与するコラムアシスト式の電動パワーステアリング装置１について説明したが、モータの発生するトルクをラックバー１４に付与するラックアシスト式の電動パワーステアリング装置であってもよい。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
操舵ハンドルから入力された操舵トルクを検出する操舵トルク検出手段と、
操舵機構に設けられるモータと、
前記モータの通電を制御するためのスイッチング素子を備えたモータ駆動回路と、
前記操舵トルク検出手段により検出された操舵トルクに基づいて前記モータの制御量を演算する制御量演算手段と、
前記制御量演算手段により演算された制御量に従って前記モータ駆動回路のスイッチング素子を制御して、前記モータから操舵アシストトルクを発生させるスイッチ制御手段と
を備えた電動パワーステアリング装置において、
前記操舵ハンドルが回転しないように前記モータに通電して、前記モータ駆動回路を介して前記モータに電流が流れる通電路の内部抵抗値を測定する内部抵抗値測定手段と、
前記内部抵抗値測定手段により測定された内部抵抗値が、正常範囲を超え、かつ、前記モータを停止すべき異常範囲に入らない半異常値となる前記通電路の内部抵抗に関する半異常状態を検出する半異常状態検出手段と、
前記半異常状態が検出された場合には、前記内部抵抗値が正常範囲内に入る場合に比べて、前記操舵アシストトルクを発生させる時の前記モータの通電が制限されるように前記モータの制御量を制限する半異常時制御量制限手段と
を備えたことを特徴とする電動パワーステアリング装置。
【請求項２】
前記内部抵抗値測定手段は、前記モータの内部抵抗値と前記モータ駆動回路の内部抵抗値とを測定し、
前記半異常状態検出手段は、前記内部抵抗値測定手段により測定された前記モータの内部抵抗値が前記正常範囲を超え、かつ、前記異常範囲に入らない半異常値となる前記モータの内部抵抗に関する半異常状態と、前記内部抵抗値測定手段により測定された前記モータ駆動回路の内部抵抗値が前記正常範囲を超え、かつ、前記異常範囲に入らない半異常値となる前記モータ駆動回路の内部抵抗に関する半異常状態とを検出することを特徴とする請求項１記載の電動パワーステアリング装置。
【請求項３】
前記モータの内部抵抗値が前記半異常値となる場合と、前記モータ駆動回路の内部抵抗値が前記半異常値となる場合とで、それぞれ独立した前記モータの通電の制限度合を設定する制限度合独立設定手段を備えたことを特徴とする請求項２記載の電動パワーステアリング装置。
【請求項４】
前記モータは、ブラシ付直流モータであり、
前記モータ駆動回路は、前記モータを正回転方向に駆動するときに電流が流れる正回転用通電路と、前記モータを逆回転方向に駆動するときに電流が流れる逆回転用通電路とを有するＨブリッジ回路であり、
前記内部抵抗値測定手段は、前記正回転用通電路に設けられた正回転用スイッチング素子の内部抵抗値と、前記逆回転用通電路に設けられた逆回転用スイッチング素子の内部抵抗値と、前記モータの内部抵抗値とを測定することを特徴とする請求項２または請求項３記載の電動パワーステアリング装置。
【請求項５】
前記内部抵抗値測定手段は、前記正回転用スイッチング素子と前記逆回転用スイッチング素子とを交互にオンし、前記正回転用スイッチング素子をオンしているときに前記正回転用スイッチング素子の内部抵抗値を測定し、前記逆回転用スイッチング素子をオンしているときに前記逆回転用スイッチング素子の内部抵抗値を測定することを特徴とする請求項４記載の電動パワーステアリング装置。
【請求項６】
前記半異常時制御量制限手段は、前記内部抵抗値測定手段により測定された内部抵抗値が大きくなるにしたがってモータに流す電流の上限値を小さく設定することを特徴とする請求項１ないし請求項５の何れか一項記載の電動パワーステアリング装置。
【請求項７】
前記半異常時制御量制限手段は、前記内部抵抗値測定手段により測定された内部抵抗値が大きくなるにしたがってモータに印加する電圧の上限値を小さく設定することを特徴とする請求項１ないし請求項６の何れか一項記載の電動パワーステアリング装置。
【請求項８】
前記半異常時制御量制限手段は、前記半異常状態検出手段により半異常状態が検出された場合、前記モータに流す電流の上限値を時間の経過とともに漸減するように設定することを特徴とする請求項１ないし請求項５の何れか一項記載の電動パワーステアリング装置。
【請求項９】
前記半異常時制御量制限手段は、前記半異常状態検出手段により半異常状態が検出された場合、前記モータに印加する電圧の上限値を時間の経過とともに漸減するように設定することを特徴とする請求項１ないし請求項５の何れか一項記載の電動パワーステアリング装置。
【請求項１０】
前記半異常状態検出手段により半異常状態が検出されてからの経過時間が予め設定された停止時間に到達したとき前記モータの通電を禁止する時間制限手段を備えたことを特徴とする請求項１ないし請求項９の何れか一項記載の電動パワーステアリング装置。
【請求項１１】
前記モータの内部抵抗値が前記半異常値となる場合と、前記モータ駆動回路の内部抵抗値が前記半異常値となる場合とで、前記停止時間を独立して設定する停止時間設定手段を備えたことを特徴とする請求項１０記載の電動パワーステアリング装置。
【請求項１２】
前記内部抵抗値測定手段は、車両のドアの開閉状態を表すドア開閉信号、あるいは、運転者の運転座席への着座状態を表す着座信号に基づいて、前記内部抵抗値の測定を開始することを特徴とする請求項１ないし請求項１１の何れか一項記載の電動パワーステアリング装置。
【請求項１３】
前記内部抵抗値測定手段は、前記モータ駆動回路に印加される電源電圧と、前記モータに流れるモータ電流と、前記モータの各端子電圧あるいは端子間電圧とに基づいて、前記スイッチング素子の内部抵抗値を計算により求めることを特徴とする請求項１ないし請求項１２の何れか一項記載の電動パワーステアリング装置。
【請求項１４】
前記内部抵抗値測定手段は、前記モータに流れるモータ電流と、前記モータの端子間電圧とに基づいて、前記モータの内部抵抗値を計算により求めることを特徴とする請求項１ないし請求項１３の何れか一項記載の電動パワーステアリング装置。
【国際調査報告】
2012124098.tif 000030
2012124098.tif 000031
2012124098.tif 000032
2012124098.tif 000033