"操舵ハンドルから入力された操舵トルクを検出する操舵トルク検出手段と、操舵機構に設けられるモータと、前記モータの通電を制御するためのスイッチング素子を備えたモータ駆動回路と、前記操舵トルク検出手段により検出された操舵トルクに基づいて前記モータの制御量を演算する制御量演算手段と、前記制御量演算手段により演算された制御量に従って前記モータ駆動回路のスイッチング素子を制御して、前記モータから操舵アシストトルクを発生させるスイッチ制御手段とを備えた電動パワーステアリング装置において、前記モータ駆動回路を介して前記モータに電流が流れる通電路の内部抵抗値が、正常範囲を超え、かつ、前記モータを停止すべき異常範囲に入らない状態となる半異常状態を検出する半異常状態検出手段と、前記半異常状態が検出された場合には、前記内部抵抗値が正常範囲内に入る場合に比べて、前記モータの通電が制限されるように前記モータの制御量を制限する半異常時制御量制限手段とを備えたことを特徴とする電動パワーステアリング装置。前記モータの内部抵抗値と前記モータ駆動回路の内部抵抗値とを測定する内部抵抗値測定手段を備え、前記半異常状態検出手段は、前記内部抵抗値測定手段により測定された前記モータの内部抵抗値と前記モータ駆動回路の内部抵抗値の少なくとも一方が前記正常範囲を超え、かつ、前記異常範囲に入らない半異常値となる状態を検出することを特徴とする請求項1記載の電動パワーステアリング装置。前記モータの内部抵抗値が前記半異常値となる場合と、前記モータ駆動回路の内部抵抗値が前記半異常値となる場合とで、それぞれ独立した前記モータの通電の制限度合を設定する制限度合独立設定手段を備えたことを特徴とする請求項2記載の電動パワーステアリング装置。前記モータは、ブラシ付直流モータであり、前記モータ駆動回路は、前記モータを正回転方向に駆動するときに電流が流れる正回転用通電路と、前記モータを逆回転方向に駆動するときに電流が流れる逆回転用通電路とを有するHブリッジ回路であり、前記内部抵抗値測定手段は、前記正回転用通電路に設けられた正回転用スイッチング素子の内部抵抗値と、前記逆回転用通電路に設けられた逆回転用スイッチング素子の内部抵抗値と、前記モータの内部抵抗値とを測定することを特徴とする請求項2または請求項3記載の電動パワーステアリング装置。前記内部抵抗値測定手段は、前記正回転用スイッチング素子と前記逆回転用スイッチング素子とを交互にオンし、前記正回転用スイッチング素子をオンしているときに前記正回転用スイッチング素子の内部抵抗値を測定し、前記逆回転用スイッチング素子をオンしているときに前記逆回転用スイッチング素子の内部抵抗値を測定することを特徴とする請求項4記載の電動パワーステアリング装置。前記半異常時制御量制限手段は、前記内部抵抗値測定手段により測定された内部抵抗値が大きくなるにしたがってモータに流す電流の上限値を小さく設定することを特徴とする請求項2ないし請求項5の何れか一項記載の電動パワーステアリング装置。前記半異常時制御量制限手段は、前記内部抵抗値測定手段により測定された内部抵抗値が大きくなるにしたがってモータに印加する電圧の上限値を小さく設定することを特徴とする請求項2ないし請求項6の何れか一項記載の電動パワーステアリング装置。前記半異常時制御量制限手段は、前記半異常状態検出手段により半異常状態が検出された場合、前記モータに流す電流の上限値を時間の経過とともに漸減するように設定することを特徴とする請求項1ないし請求項5の何れか一項記載の電動パワーステアリング装置。前記半異常時制御量制限手段は、前記半異常状態検出手段により半異常状態が検出された場合、前記モータに印加する電圧の上限値を時間の経過とともに漸減するように設定することを特徴とする請求項1ないし請求項5の何れか一項記載の電動パワーステアリング装置。前記半異常状態検出手段により半異常状態が検出されてからの経過時間が予め設定された停止時間に到達したとき前記モータの通電を禁止する時間制限手段を備えたことを特徴とする請求項1ないし請求項9の何れか一項記載の電動パワーステアリング装置。前記モータの内部抵抗値が前記半異常値となる場合と、前記モータ駆動回路の内部抵抗値が前記半異常値となる場合とで、前記停止時間を独立して設定する停止時間設定手段を備えたことを特徴とする請求項10記載の電動パワーステアリング装置。前記内部抵抗値測定手段は、車両のドアの開閉状態を表すドア開閉信号、あるいは、運転者の運転座席への着座状態を表す着座信号に基づいて、前記内部抵抗値の測定を開始することを特徴とする請求項2ないし請求項11の何れか一項記載の電動パワーステアリング装置。前記内部抵抗値測定手段は、前記モータ駆動回路に印加される電源電圧と、前記モータに流れるモータ電流と、前記モータの各端子電圧あるいは端子間電圧とに基づいて、前記スイッチング素子の内部抵抗値を計算により求めることを特徴とする請求項2ないし請求項12の何れか一項記載の電動パワーステアリング装置。前記内部抵抗値測定手段は、前記モータに流れるモータ電流と、前記モータの端子間電圧とに基づいて、前記モータの内部抵抗値を計算により求めることを特徴とする請求項2ないし請求項13の何れか一項記載の電動パワーステアリング装置。以下、本発明の一実施形態に係る電動パワーステアリング装置について図面を用いて説明する。図1は、同実施形態に係る車両の電動パワーステアリング装置1の概略構成を表している。この電動パワーステアリング装置1は、操舵ハンドル11の操舵操作により転舵輪を転舵するステアリング機構10と、ステアリング機構10に組み付けられ操舵アシストトルクを発生するモータ20と、操舵ハンドル11の操作状態に応じてモータ20の作動を制御する電子制御ユニット100とを主要部として備えている。以下、電子制御ユニット100をアシストECU100と呼ぶ。ステアリング機構10は、操舵ハンドル11の回転操作により左右前輪FW1,FW2を転舵するための機構で、操舵ハンドル11を上端に一体回転するように接続したステアリングシャフト12を備える。このステアリングシャフト12の下端には、ピニオンギヤ13が一体回転するように接続されている。ピニオンギヤ13は、ラックバー14に形成されたギヤ部14aと噛み合って、ラックバー14とともにラックアンドピニオン機構を構成する。ラックバー14は、ギヤ部14aがラックハウジング16内に収納され、その左右両端がラックハウジング16から露出してタイロッド17と連結される。このラックバー14のタイロッド17との連結部には、ストロークエンドを構成するストッパ18が形成され、このストッパ18とラックハウジング16の端部との当接によりラックバー14の左右動ストロークが機械的に規制されている。左右のタイロッド17の他端は、左右前輪FW1,FW22に設けられたナックル19に接続される。こうした構成により、左右前輪FW1,FW2は、ステアリングシャフト12の軸線回りの回転に伴うラックバー14の軸線方向の変位に応じて左右に操舵される。ステアリングシャフト12には減速ギヤ25を介してモータ20が組み付けられている。モータ20は、その回転により減速ギヤ25を介してステアリングシャフト12をその軸中心に回転駆動して、操舵ハンドル11の回動操作に対してアシスト力を付与する。このモータ20は、ブラシ付直流モータである。ステアリングシャフト12には、操舵ハンドル11と減速ギヤ25との中間位置に操舵トルクセンサ21が組みつけられている。操舵トルクセンサ21は、例えば、ステアリングシャフト12の中間部に介装されたトーションバー図示略の捩れ角度をレゾルバ等により検出し、この捩れ角に基づいてステアリングシャフト12に働いた操舵トルクtrを検出する。操舵トルクtrは、正負の値により操舵ハンドル11の操作方向が識別される。例えば、操舵ハンドル11の左方向への操舵時における操舵トルクtrを正の値で、操舵ハンドル11の右方向への操舵時における操舵トルクtrを負の値で示す。尚、本実施形態においては、トーションバーの捩れ角度をレゾルバにより検出するが、エンコーダ等の他の回転角センサにより検出することもできる。次に、アシストECU100について図2を用いて説明する。アシストECU100は、モータ20の目標制御量を演算し、演算された目標制御量に応じたスイッチ駆動信号を出力する電子制御回路50と、電子制御回路50から出力されたスイッチ駆動信号にしたがってモータ20に通電するモータ駆動回路40とを含んで構成される。電子制御回路50は、CPU,ROM,RAM等からなるマイコン60と、各種のセンサ信号を入力してマイコン60に読み取り可能な信号に変換する入力インタフェース70と、マイコン60から出力されるスイッチ制御信号を増幅してモータ駆動回路40に供給するスイッチ駆動回路80とを備える。アシストECU100は、電源装置200から電力供給される。この電源装置200は、図示しないバッテリと、エンジンの回転により発電するオルタネータとから構成される。この電源装置200の定格出力電圧は、例えば12Vに設定されている。尚、図中においては、電源装置200からモータ駆動回路40への電源供給ラインである電源ライン210のみを示しているが、電子制御回路50の作動電源も電源装置200から供給される。モータ駆動回路40は、電源ライン210とグランドライン220との間に設けられ、スイッチング素子Q1とスイッチング素子Q3とを並列接続した上アーム回路45Hと、スイッチング素子Q2とスイッチング素子Q4とを並列接続した下アーム回路45Lとを直列に接続し、この上アーム回路45Hと下アーム回路45Lとの接続部A1,A2から、モータ20への電力供給を行うための通電ライン47a,47bを引き出したHブリッジ回路で構成されている。従って、モータ20の一方の通電端子20aは、スイッチング素子Q1を介して電源ライン210に接続されるとともに、スイッチング素子Q2を介してグランドライン220に接続される。また、モータ20の他方の通電端子20bは、スイッチング素子Q3を介して電源ライン210に接続されるとともに、スイッチング素子Q4を介してグランドライン220に接続される。モータ駆動回路40に設けられるスイッチング素子Q1,Q2,Q3,Q4としては、MOS-FETMetalOxideSemiconductorFieldEffectTransistorが使用される。スイッチング素子Q1,Q2,Q3,Q4は、各ソース-ドレイン間に電源電圧が印加されるように上下のアーム回路45H,45Lに設けられ、また、各ゲートが電子制御回路50のスイッチ駆動回路80に接続される。尚、図中に回路記号で示すように、MOS-FETには構造上、ダイオードが寄生している。このダイオードを寄生ダイオードと呼ぶ。各スイッチング素子Q1,Q2,Q3,Q4の寄生ダイオードは、電源ライン210からグランドライン220への電流の流れを遮断し、グランドライン220から電源ライン210へ向かう電流のみを許容する逆導通ダイオードである。また、モータ駆動回路40は、寄生ダイオードとは別の逆導通ダイオード電流遮断方向は寄生ダイオードと同じであって、電源電圧方向に対して逆方向にのみ導通するダイオードをスイッチング素子Q1,Q2,Q3,Q4に並列に接続した構成であってもよい。マイコン60は、スイッチ駆動回路80を介してモータ駆動回路40の各スイッチング素子Q1,Q2,Q3,Q4のゲートに独立した駆動信号を出力する。この駆動信号により、各スイッチング素子Q1,Q2,Q3,Q4のオン状態とオフ状態とが切り替えられる。モータ駆動回路40においては、スイッチング素子Q2とスイッチング素子Q3とがオフに維持された状態でスイッチング素子Q1とスイッチング素子Q4とがオンすると、図中の方向に電流I1が流れる。これにより、モータ20は、正回転方向のトルクを発生する。また、スイッチング素子Q1とスイッチング素子Q4とがオフに維持された状態でスイッチング素子Q2とスイッチング素子Q3とがオンすると、図中の-方向に電流I2が流れる。これにより、モータ20は、逆回転方向のトルクを発生する。アシストECU100は、モータ20に流れる電流を検出する電流センサ31を備えている。この電流センサ31は、下アーム回路45Lとグランドとを接続するグランドライン220に設けられる。電流センサ31は、例えば、グランドライン220にシャント抵抗図示略を設け、このシャント抵抗の両端に現れる電圧をアンプ図示略で増幅した電圧信号、あるいは、その電圧信号をデジタル信号に変換した信号を電子制御回路50の入力インタフェース70に供給する。以下、電流センサ31により検出されるモータ20に流れる電流の値を、モータ実電流Imと呼ぶ。また、アシストECU100は、モータ20の端子電圧を検出する第1電圧センサ32と第2電圧センサ33を備えている。第1電圧センサ32は、モータ20の一方の通電端子20aの電圧を表す信号を入力インタフェース70に供給する。第1電圧センサ32により検出される電圧の値を、第1モータ端子電圧V1と呼ぶ。また、通電端子20aを第1モータ端子20aと呼ぶ。第1モータ端子電圧V1は、スイッチング素子Q1とスイッチング素子Q2との接続部A1のグランドに対する電位を表す。第2電圧センサ33は、モータ20の他方の通電端子20bの電圧V2を表す信号を入力インタフェース70に供給する。第2電圧センサ33により検出される電圧の値を、第2モータ端子電圧V2と呼ぶ。また、通電端子20bを第2モータ端子20bと呼ぶ。第2モータ端子電圧V2は、スイッチング素子Q3とスイッチング素子Q4との接続部A2のグランドに対する電位を表す。また、アシストECU100は、モータ駆動回路40に供給される電源電圧、つまり、電源装置200の出力電圧を検出する電源電圧センサ34を備えている。この電源電圧センサ34は、電源ライン210の電圧を表す信号を入力インタフェース70に供給する。電源電圧センサ34により検出される電圧の値を電源電圧Vccと呼ぶ。また、アシストECU100は、モータ駆動回路40の温度を検出する基板温度センサ35を備えている。基板温度センサ35は、モータ駆動回路40におけるスイッチング素子Q1,Q2,Q3,Q4が設けられる基板の温度を表す信号を入力インタフェース70に供給する。基板温度センサ35により検出される温度の値を、基板温度Tbと呼ぶ。基板温度Tbは、スイッチング素子Q1,Q2,Q3,Q4の発熱状態に応じた温度を表す。また、アシストECU100は、操舵トルクセンサ21、車速センサ91、カーテシスイッチ92を接続している。操舵トルクセンサ21は、操舵ハンドル11から入力された操舵トルクtrを表す検出信号を入力インタフェース70に供給する。車速センサ91は、車速vxを表す検出信号を入力インタフェース70に供給する。カーテシスイッチ92は、車両のドアの開閉状態Sを表す検出信号を入力インタフェース70に供給する。カーテシスイッチ92は、例えば、ドアが閉まっているときにはオフ信号を、ドアが開いているときにはオン信号を出力する。次に、マイコン60の制御処理について説明する。まず、マイコン60の実行する操舵アシスト制御処理について説明する、図3は、マイコン60の実行する操舵アシスト制御ルーチンを表す。操舵アシスト制御ルーチンは、イグニッションスイッチがオンしている期間中において、所定の短い周期で繰り返し実行される。本制御ルーチンが起動すると、マイコン60は、ステップS1において、車速センサ91によって検出された車速vxと、操舵トルクセンサ21によって検出された操舵トルクtrを読み込む。続いて、ステップS2において、図4に示すアシストマップを参照して、入力した車速vxおよび操舵トルクtrに応じて設定される目標アシストトルクtrを計算する。アシストマップは、代表的な複数の車速vxごとに、操舵トルクtrと目標アシストトルクtrとの関係を設定した関係付けデータである。アシストマップは、操舵トルクtrが大きくなるにしたがって目標アシストトルクtrが増加し、車速が低くなるにしたがって目標アシストトルクtrが増加する特性を有している。尚、図4は、左方向の操舵時におけるアシストマップであって、右方向の操舵時におけるアシストマップは、左方向のものに対して操舵トルクtrと目標アシストトルクtrの符号をそれぞれ反対つまり負にしたものとなる。続いて、マイコン60は、ステップS3において、目標アシストトルクtrを発生させるために必要な必要電流Iを計算する。必要電流Iは、目標トルクアシストtrをトルク定数で除算することにより求められる。続いて、マイコン60は、ステップS4において、上限電流Imaxを読み込む。この上限電流Imaxは、モータ20に流す電流の上限値を表す。ステップS4では、後述するモータ制限値設定ルーチンにより計算された最新の上限電流Imaxが読み込まれる。続いて、マイコン60は、ステップS5において、必要電流Iが上限電流Imaxよりも大きいか否かを判断し、必要電流Iが上限電流Imaxよりも大きい場合には、ステップS6において、上限電流Imaxを目標電流Imとして設定しIm←Imax、必要電流Iが上限電流Imax以下となる場合には、ステップS7において、必要電流Iを目標電流Imとして設定するIm←I。尚、本明細書において、方向符号を有する検出値の大きさについて論じる場合には、その絶対値を用いる。従って、ここでは、電流の流す向きに関係しない絶対値の比較となる。続いて、マイコン60は、ステップS8において、目標電流Imから電流センサ31により検出されたモータ実電流Imを減算した偏差ΔIを算出し、この偏差ΔIを使ったPI制御比例積分制御により、モータ実電流Imが目標電流Imに追従するように目標指令電圧Vを計算する。目標指令電圧Vは、例えば、下記式により計算する。V=KpΔIKi∫ΔIdtここでKpは、PI制御における比例項の制御ゲイン、Kiは、PI制御における積分項の制御ゲインである。続いて、マイコン60は、ステップS9において、目標指令電圧Vに応じたPWMPulseWidthModulation制御信号をスイッチ駆動回路80に出力する。スイッチ駆動回路80は、入力した制御信号を増幅してモータ駆動回路40に出力する。これにより、目標指令電圧Vに応じたデューティ比のパルス信号列がPWM制御信号としてモータ駆動回路40に出力される。このPWM制御信号により、各スイッチング素子Q1,Q2,Q3,Q4のデューティ比が制御され、モータ20の駆動電圧が目標指令電圧Vに調整される。こうして、モータ20には、操舵操作方向に回転する向きに目標電流Imが流れる。この結果、モータ20は、運転者の操舵操作をアシストする。マイコンは、ステップS9にて、PWM制御信号を出力すると操舵アシスト制御ルーチンを一旦終了する。そして、所定の周期で上述した処理を繰り返す。モータ駆動回路40は、スイッチング素子Q1,Q2,Q3,Q4の劣化、ハンダ付け部の劣化等により内部抵抗が増加する。また、モータ20は、ブラシ部の接触抵抗の増加などにより内部抵抗が増加する。内部抵抗電気抵抗が増加した場合には、発熱量が増加し、部品が破損する可能性がある。部品が破損した場合には、その時点から操舵アシストを実行できなくなる。そこで、本実施形態においては、モータ20およびモータ駆動回路40の内部抵抗値を測定計算し、測定した内部抵抗値が正常範囲から外れている場合には、内部抵抗値に応じてモータ20の通電を制限する。例えば、内部抵抗値の増加にしたがってモータ20の通電制限を厳しくする。まず、モータ駆動回路40およびモータ20の内部抵抗値の測定方法から説明する。図5に示すように、スイッチング素子Q1の内部抵抗値をRq1、スイッチング素子Q2の内部抵抗値をRq2、スイッチング素子Q3の内部抵抗値をRq3、スイッチング素子Q4の内部抵抗値をRq4、モータ20の内部抵抗値をRm、モータのインダクタンスをLmとする。スイッチング素子Q2、Q3をオフ、スイッチング素子Q1、Q4をオンにしてモータ20を正回転させる方向に流れる電流をI1とし、スイッチング素子Q1、Q4をオフ、スイッチング素子Q2、Q3をオンにしてモータ20を逆回転させる方向に流れる電流をI2とする。電流I1を流したときの電圧方程式は、次式1にて表される。Vcc=Rq1I1Rq4I1V1-V2=Rq1Rq4I1V1-V21電流I2を流したときの電圧方程式は、次式2にて表される。Vcc=Rq3I2Rq2I2V2-V1=Rq3Rq2I2-V1-V22また、モータ20の回転速度をω、モータ20の誘起電圧定数をφ、モータ20に流れる電流をI=I1またはI2とすると、モータ20の端子間電圧は、次式3にて表される。V1-V2=RmILmdI/dtφω3本実施形態においては、モータ20の内部抵抗値Rmの計算に当たっては、操舵ハンドル11が回転しない程度の小さな直流電流I1をモータ20に流し、そのときのモータ20の各端子電圧V1,V2を測定する。例えば、スイッチング素子Q2,Q3をオフに維持した状態で、スイッチング素子Q1,Q4を所定のデューティ比で作動させてモータ20に通電する。勿論、スイッチング素子Q1,Q4をオフに維持した状態で、スイッチング素子Q2,Q3を所定のデューティ比で作動させてモータ20に通電してもよい。モータ内部抵抗値Rmは、3式において、dI/dt=0,ω=0を代入して、次式4にて求めることができる。Rm=V1-V2/I4この場合、電流センサ31により検出されるモータ電流IがI1になるようにスイッチング素子Q1,Q4のデューティ比を制御し、その状態におけるモータ20の各端子電圧V1,V2を測定すればよい。モータ20に流す電流I1は小さな値に設定されるため、スイッチング素子Q1,Q4のデューティ比も小さくなる。尚、本実施形態においては、モータ端子間電圧V1-V2を、第1電圧センサ32により検出される第1モータ端子電圧V1から第2電圧センサ33により検出される第2モータ端子電圧V2を減算して内部抵抗値を求めるが、電圧センサ32,33に代えて、第1モータ端子20aと第2モータ端子20bとの間の電圧端子間電圧を直接検出する電圧センサを設けた構成であってもよい。スイッチング素子Q1,Q2,Q3,Q4の内部抵抗値Rq1,Rq2,Rq3,Rq4の計算に当たっては、モータ20を正回転させる方向に流れる電流とモータ20を逆回転させる方向に流れる電流とを所定の周期で交互に流す。この場合、スイッチング素子Q2,Q3をオフにしてスイッチング素子Q1,Q4を一定時間例えば、数ミリ秒程度だけオンした状態でモータ電流I1とモータ端子電圧V1,V2と電源電圧Vccを測定し、次に、スイッチング素子Q1,Q4をオフにしてスイッチング素子Q2,Q3を一定時間例えば、数ミリ秒程度だけオンした状態でモータ電流I2とモータ端子電圧V1,V2と電源電圧Vccを測定する。これにより、モータ20には正回転方向の電流と逆回転方向の電流とが交互に流れるため、操舵ハンドル11の回転が防止される。スイッチング素子Q1,Q4の内部抵抗値については、上記式1に基づいて次式5により計算することができる。Rq1Rq4={Vcc-V1-V2}/I15また、スイッチング素子Q3,Q2の内部抵抗値については、式2に基づいて次式6により計算することができる。Rq3Rq2={VccV1-V2}/I26また、スイッチング素子Q1,Q3,Q2,Q4の内部抵抗値の計算は、次式7,8,9,10にて行うようにすることもできる。これによれば、スイッチング素子Q1,Q3,Q2,Q4の個々の内部抵抗値Rq1,Rq3,Rq2,Rq4を計算することができる。Rq1=Vcc-V1/I17Rq3=Vcc-V2/I28Rq2=V1/I29Rq4=V2/I110次に、測定した内部抵抗値に基づいてモータ20の作動を制限する処理について説明する。図6は、マイコン60の実行するモータ制限値設定ルーチンを表す。モータ制限値設定ルーチンは、所定の周期で繰り返し実行される。本ルーチンが起動すると、マイコン60は、まず、ステップS11において、カーテシスイッチ92の検出信号Sを読み込み、検出信号Sがオフ状態からオン状態に変化したか否かを判断する。つまり、車両のドアが開けられたか閉→開否かを判断する。マイコン60は、検出信号Sがオフ状態からオン状態に変化していない場合には、本ルーチンを一旦終了する。本実施形態においては、車両が起動していないときに、運転者に気付かせないようにモータ20に電流を流して、モータ20およびモータ駆動回路40の内部抵抗値を測定する。従って、ステップS11は、運転者がドアを開けて車両に乗り込んだタイミング、あるいは、車両を降りるタイミングを検出するものである。尚、ステップS11においては、電動パワーステアリング装置1のシステムがすでに起動して、操舵アシスト制御が行われている状況である場合には、Noと判定する。また、この例では、運転者がドアを開けて車両に乗り込んだときと、運転者がドアを開けて車両を降りるときの両方において、Yesと判定されるが、何れか一方のみのタイミングを検出する構成であってもよい。マイコン60は、ステップS11の判断を繰り返す。そして、カーテシスイッチ92の検出信号Sがオフ状態からオン状態に変化したことを検出すると、続くステップS12において、電動パワーステアリング装置1のシステムを起動させる。続いて、ステップS13において、正常にシステムが起動したか否かを判断し、正常に起動できなかった場合には、ステップS14において、操舵アシストを停止して本ルーチンを終了する。電動パワーステアリング装置1のシステムが正常に起動した場合には、マイコン60は、ステップS20において、モータ20の内部抵抗値の計算処理を実行する。図7は、その計算処理であるモータ内部抵抗値計算ルーチンサブルーチンを表すフローチャートである。マイコン60は、モータ内部抵抗値計算ルーチンを開始すると、ステップS21において、カウンタ値iをゼロクリアする。続いて、ステップS22において、カウンタ値iを値1だけインクリメントする。続いて、ステップS23において、モータ20に電流I1を流す。この場合、スイッチング素子Q2,Q3をオフに維持した状態で、スイッチング素子Q1,Q4のデューティ比を制御することにより、モータ20に電流I1を流す。続いて、マイコン60は、ステップS24において、この通電状態におけるモータ端子電圧V1、第2モータ端子電圧V2、モータ電流Iモータ実電流Imを測定して、式4を使って、モータ内部抵抗値Rmiを計算する。このモータ内部抵抗値Rmiは、RAM等のメモリに一時的に記憶される。続いて、マイコン60は、ステップS25において、カウンタ値iが所定値N例えば、N=10以上であるか否かを判断し、カウンタ値iが所定値N未満である場合には、その処理をステップS22に戻して同様の処理を行う。マイコン60は、モータ20への通電とモータ内部抵抗値Rmiの計算をN回繰り返すとS25:Yes、ステップS26において、N回計算したモータ内部抵抗値Rmiの平均値を計算する。マイコン60は、モータ内部抵抗値Rmiの平均値を最終的な計算結果であるモータ内部抵抗値Rmとして設定する。マイコン60は、モータ内部抵抗値Rmを計算すると、モータ内部抵抗値計算ルーチンを終了して、図6のメインルーチンのステップS30からの処理を開始する。モータ内部抵抗値は、ブラシと整流子片との接触位置によってばらつく。従って、内部抵抗値計算ルーチンにおいては、モータ内部抵抗値Rmiの移動平均を使って、最終的なモータ内部抵抗値Rmを計算する。これにより、ブラシと整流子片との接触位置の影響がモータ内部抵抗値Rmの計算値に現れなくなる。マイコン60は、モータ内部抵抗値Rmを計算すると、続いて、メインルーチン図6のステップS30において、モータ駆動回路40内部抵抗値の計算処理を実行する。図8は、その計算処理である駆動回路内部抵抗値計算ルーチンサブルーチンを表すフローチャートである。マイコン60は、駆動回路内部抵抗値計算ルーチンを開始すると、ステップS31において、カウンタ値jをゼロクリアする。続いて、ステップS32において、カウンタ値jを値1だけインクリメントする。続いて、ステップS33において、スイッチング素子Q2,Q3をオフに維持した状態で、スイッチング素子Q1,Q4を所定時間例えば、数ミリ秒だけオンにする。そして、ステップS34において、この通電状態における第1モータ端子電圧V1、第2モータ端子電圧V2、電源電圧Vcc、モータ電流Iモータ実電流Imを測定して、式7,10を使って、スイッチング素子Q1,Q4の内部抵抗値Rq1j,Rq4jを計算する。この内部抵抗値Rq1j,Rq4jは、RAM等のメモリに一時的に記憶される。続いて、マイコン60は、ステップS35において、スイッチング素子Q1,Q4をオフに維持した状態で、スイッチング素子Q2,Q3を所定時間例えば、数ミリ秒だけオンにする。そして、ステップS36において、この通電状態における第1モータ端子電圧V1、第2モータ端子電圧V2、電源電圧Vccを測定して、式8,9を使って、スイッチング素子Q2,Q3の内部抵抗値Rq2j,Rq3jを計算する。この内部抵抗値Rq2j,Rq3jは、RAM等のメモリに一時的に記憶される。続いて、マイコン60は、ステップS37において、カウンタ値jが所定値N例えば、N=10以上であるか否かを判断し、カウンタ値jが所定値N未満である場合には、その処理をステップS32に戻して同様の処理を行う。こうして正回転用のスイッチング素子Q1,Q4と逆回転用のスイッチング素子Q2,Q3とが所定の周期で交互にオンされる。この周期は、操舵ハンドル11が回転しない程度の短時間に設定されている。マイコン60は、モータ20への通電と内部抵抗値Rq1j,Rq2j,Rq3j,Rq4jの計算をN回繰り返すとS37:Yes、ステップS38において、N回計算した内部抵抗値Rq1j,Rq2j,Rq3j,Rq4jのそれぞれの平均値を計算する。マイコン60は、内部抵抗値Rq1j,Rq2j,Rq3j,Rq4jのそれぞれの平均値を最終的な計算結果である内部抵抗値Rq1,Rq2,Rq3,Rq4として設定する。マイコン60は、内部抵抗値Rq1,Rq2,Rq3,Rq4を計算すると、駆動回路内部抵抗値計算ルーチンを終了して、図6のメインルーチンのステップS40からの処理を開始する。マイコン60は、ステップS40において、モータ内部抵抗値Rmに基づいて、モータ20の内部抵抗に関する正常、異常、半異常を判定する。例えば、マイコン60は、予め、モータ内部抵抗値Rmの正常範囲と異常範囲と半異常範囲とを区別する閾値として、第1閾値Rrefm1と第2閾値Rrefm2>Rrefm1とを記憶している。第1閾値Rrefm1は、正常範囲の最大抵抗値を表し、第2閾値Rrefm2は異常範囲の最小抵抗値を表す。マイコン60は、モータ内部抵抗値Rmが第1Rrefm1より小さい場合には正常である判定し、モータ内部抵抗値Rmが第2Rrefm1より大きい場合には異常である判定し、モータ内部抵抗値Rmが第1閾値Rrefm1と第2閾値Rrefm2との間に入る場合Rrefm1≦Rm≦Rrefm2には半異常である判定する。尚、正常範囲に下限値を設定して短絡異常を検出するようにしてもよい。マイコン60は、ステップS40において、モータ20が異常であると判定した場合には、その処理をステップS14に進めて、操舵アシストを停止して本ルーチンを終了する。一方、モータ20が半異常であると判定した場合には、ステップS41において、モータ抵抗用上限電流Imaxmを設定する。マイコン60は、例えば、図9に示すようなモータ抵抗用上限電流マップを記憶しており、このマップを参照してモータ抵抗用上限電流Imaxmを設定する。モータ抵抗用上限電流マップは、モータ内部抵抗値Rmが大きくなるにしたがってモータ抵抗用上限電流Imaxmを小さくする特性を有する。マイコン60は、ステップS40においてモータ20が正常であると判定すると、あるいは、モータ20が半異常であると判定してモータ抵抗用上限電流Imaxmを設定すると、続くステップS42において、スイッチング素子Q1,Q2,Q3,Q4の内部抵抗値Rq1,Rq2,Rq3,Rq4に基づいて、モータ駆動回路40の内部抵抗に関する正常、異常、半異常を判定する。マイコン60は、例えば、内部抵抗値Rq1,Rq2,Rq3,Rq4のうちで最も大きな内部抵抗値Rqを抽出し、その内部抵抗値Rqを使って正常、異常、半異常を判定する。以下、内部抵抗値Rq1,Rq2,Rq3,Rq4の最大値を回路内部抵抗値Rqと呼ぶ。マイコンは、予め、回路内部抵抗値Rqの正常範囲と異常範囲と半異常範囲とを区別する閾値として、第1閾値Rrefq1と第2閾値Rrefq2>Rrefq1とを記憶している。第1閾値Rrefq1は、正常範囲の最大抵抗値を表し、第2閾値Rrefq2は異常範囲の最小抵抗値を表す。マイコン60は、回路内部抵抗値Rqが第1Rrefq1より小さい場合には正常である判定し、回路内部抵抗値Rqが第2Rrefq1より大きい場合には異常である判定し、回路内部抵抗値Rqが第1閾値Rrefq1と第2閾値Rrefq2との間に入る場合Rrefq1≦Rq≦Rrefq2には半異常である判定する。尚、正常範囲に下限値を設定して短絡異常を検出するようにしてもよい。マイコン60は、ステップS42において、モータ駆動回路40が異常であると判定した場合には、その処理をステップS14に進めて、操舵アシストを停止して本ルーチンを終了する。一方、モータ駆動回路40が半異常であると判定した場合には、ステップS43において、回路抵抗用上限電流Imaxqを設定する。マイコン60は、例えば、図10に示すような回路抵抗用上限電流マップを記憶しており、このマップを参照して回路抵抗用上限電流Imaxqを設定する。回路抵抗用上限電流マップは、回路内部抵抗値Rqが大きくなるにしたがって回路抵抗用上限電流Imaxqを小さくする特性を有する。モータ抵抗用上限電流マップと回路抵抗用上限電流マップとは、それぞれ独立して設定されている。従って、モータ20が半異常状態となっている場合に適した上限電流値モータ抵抗用上限電流Imaxmと、モータ駆動回路40が半異常状態となっている場合に適した上限電流値回路抵抗用上限電流Imaxqとを別々に設定することができる。マイコン60は、ステップS42においてモータ駆動回路40が正常であると判定すると、あるいは、モータ駆動回路40が半異常であると判定して回路抵抗用上限電流Imaxqを設定すると、続くステップS44において、モータ抵抗用上限電流Imaxmが回路抵抗用上限電流Imaxqよりも大きいか否かを判定する。マイコン60は、モータ抵抗用上限電流Imaxmが回路抵抗用上限電流Imaxqよりも大きい場合にはS44:Yes、ステップS45において、上述した操舵アシスト制御ルーチンで使用する上限電流Imaxとして回路抵抗用上限電流Imaxqを設定するImax←Imaxq。逆に、モータ抵抗用上限電流Imaxmが回路抵抗用上限電流Imaxq以下となる場合にはS44:No、ステップS46において、モータ抵抗用上限電流Imaxmを上限電流Imaxとして設定するImax←Imaxm。これにより、上限電流Imaxは、モータ抵抗用上限電流Imaxmと回路抵抗用上限電流Imaxqのうち、小さい方の値が設定される。尚、ステップS40,42のどちらにおいても正常と判定された場合には、上限電流Imaxは、正常時用の値に設定される。正常時における上限電流Imaxは、予め設定した固定値でもよいし、後述する変形例のように、モータ推定温度Tmと基板温度Tbに応じて設定される変動値であってもよい。マイコン60は、上限電流Imaxを設定すると、モータ制限値設定ルーチンを一旦終了する。以上説明した本実施形態の電動パワーステアリング装置1によれば、以下の作用効果を奏する。1.モータ20およびモータ駆動回路40の内部抵抗値を測定するため、それらの半異常状態を確実に検出することができる。例えば、スイッチング素子Q1,Q2,Q3,Q4の内部抵抗の増加、ハンダ付け部の劣化、モータ20のブラシの接触抵抗の増加などにより、モータ通電路の内部抵抗が増加すると、発熱量が増加してモータ通電路に損傷が発生する可能性があるが、本実施形態においては、こうした損傷に至る前の半異常状態を検出することができる。2半異常状態を検出した場合には、モータ20の上限電流Imaxを正常時に比べて低く設定するため、モータ20およびモータ駆動回路40の発熱を抑えることができる。これにより、それらの劣化進行を抑制することができる。また、モータ20あるいはモータ駆動回路40の内部抵抗値が大きいほどモータ20の上限電流Imaxを小さく設定するため、半異常の程度に応じた適切な上限電流Imaxを設定することができる。これにより、適切に電動パワーステアリング装置1の延命を図ることができる。3.モータ20あるいはモータ駆動回路40に故障が発生したとしても、それ以前から、内部抵抗値の増加に基づいてモータ20の作動が制限されているため、突然、操舵アシストが停止して操舵力が急変することがない。このため、運転者の負担を軽減することができる。4.モータ20およびモータ駆動回路40の内部抵抗値の測定は、カーテシスイッチ92がオンしたタイミングで行うようにしているため、運転者が気付かないようにすることができる。5.モータ20およびモータ駆動回路40の内部抵抗は、徐々に変化していくが、予め設定されたタイミングが到来する度に抵抗値測定を行うため、内部抵抗増加の進行を確実に検出することができる。6.モータ駆動回路40の内部抵抗値の測定時においては、正回転方向の通電と逆回転方向の通電とを交互に行うようにしているため、操舵ハンドル11を回らないようにすることができる。また、モータ20の内部抵抗値の測定時においては、モータ20に流す電流を小さくしているため、操舵ハンドル11を回らないようにすることができる。7.内部抵抗値の測定は、複数回行った移動平均値を用いているため、ブラシと整流子片との接触位置の影響が計算値に現れなくなり、精度の高いものとなる。8.モータ20の内部抵抗値Rmから設定されるモータ抵抗用上限電流Imaxmと、モータ駆動回路40の内部抵抗値Rqから設定される回路抵抗用上限電流Imaxqとの両方を計算し、両者のうちの小さい方の値を上限電流Imaxに設定するため、モータ20とモータ駆動回路40との両方を適正に保護することができる。次に、本実施形態の変形例について説明する。<変形例1:内部抵抗値の測定タイミング>上記実施形態においては、カーテシスイッチ92の検出信号Sを使って内部抵抗値の測定を開始するようにしているがS11参照、内部抵抗値の測定を行うタイミングは、種々設定することができる。例えば、カーテシスイッチ92に代えて、着座センサ93図1に破線にて示すの検出信号Sを使って、内部抵抗値の測定を行うタイミングを設定しても良い。着座センサ93は、運転者の運転座席への着座状態を表す検出信号Sを出力する。従って、着座センサ93により運転者が運転席に座ったことを検出したタイミング、あるいは、着座センサ93により運転者が運転席から降りたことを検出したタイミングで内部抵抗値の測定を行うようにするとよい。また、内部抵抗値の測定は、夜間に行うようにしてもよい。この場合、例えば、マイコン60に設けられた時計機能を使って、予め設定された夜間の所定時刻において、内部抵抗値の測定を行うようにすればよい。また、予め設定した所定時間間隔で内部抵抗値の測定を行うようにしてもよい。<変形例2:モータの作動制限>上記実施形態においては、モータ20あるいはモータ駆動回路40の半異常状態を検出したときに、内部抵抗値Rm,Rqに応じた上限電流Imaxを設定してモータ20の作動を制限しているが、モータ20の作動制限についても、種々の手法を採用することができる。<変形例2-1:経過時間に応じた電流制限>例えば、上限電流Imaxを時間の経過とともに徐々に低減させる構成を採用することができる。モータ20あるいはモータ駆動回路40の内部抵抗値Rは、図11に示すように、時間tの経過とともに徐々に増加していく。そこで、この変形例においては、図12に示すように、半異常状態を最初に検出してからの経過時間tを測定し、上限電流Imaxを、正常時における上限電流Imax0を初期値として、時間経過tとともに初期値Imax0から徐々に低減させる。この場合、経過時間tは、電動パワーステアリング装置1のシステムが作動している時間の累積値、つまり、操舵アシスト制御が行われている時間の累積値とすればよい。この例では、経過時間tが停止設定時間t1に達したときに、操舵アシストを停止する。従って、停止設定時間t1は、半異常状態が検出されてからの操舵アシスト実行可能期間となる。図13、図14は、この変形例2-1におけるマイコン60の処理を表す。この処理は、実施形態のモータ制限値設定ルーチン図6に代えるものである。図13が内部抵抗値判定ルーチンを表し、図14がモータ制限値設定ルーチンを表す。以下、実施形態のモータ制限値設定ルーチン図6と同じ処理については、図面に実施形態と同一のステップ番号を付して説明を省略する。内部抵抗値判定ルーチン、モータ制限値設定ルーチンは、並行して所定の周期で実行される。内部抵抗値判定ルーチン図13が起動すると、マイコン60は、まず、ステップS51において、半異常判定フラグFが0であるか否かを判断する。この半異常判定フラグFは、1によりモータ20あるいはモータ駆動回路40の半異常状態が検出されたことを表し、0により上記半異常状態が検出されていないことを表す。半異常判定フラグFの初期値は0に設定されている。マイコン60は、半異常判定フラグFが0F=0であれば、ステップS11からの処理を行う。マイコン60は、ステップS40において、モータ20の半異常状態を検出した場合、あるいは、ステップS42において、モータ駆動回路40の半異常状態を検出した場合には、ステップS52において、半異常判定フラグFを1に設定して内部抵抗値判定ルーチンを一旦終了する。また、マイコン60は、ステップS40,S42において、モータ20とモータ駆動回路40とが正常であると判定した場合には、そのまま内部抵抗値判定ルーチンを一旦終了する。この場合は、上限電流Imaxは、正常時用の値に設定される。内部抵抗値判定ルーチンは所定の周期で繰り返されるが、一旦、半異常判定フラグFが1に設定された後は、ステップS51の判断がNoとなる。この場合、モータ20およびモータ駆動回路40の内部抵抗値の検出が行われなくなり、代わりに、図14に示すモータ制限値設定ルーチンによる上限電流Imaxの計算が行われるようになる。マイコン60は、モータ制限値設定ルーチン図14のステップS61において、半異常判定フラグFが1に設定されているか否かについて判断する。マイコン60は、半異常判定フラグFが1に設定されるまでこの判断を繰り返すが、半異常判定フラグFが1に設定されるまでの期間においては、上述した内部抵抗値判定ルーチンで内部抵抗値による異常判定S40,S42を行う。半異常判定フラグFが1に設定されるとS61:Yes、マイコン60は、ステップS62において、タイマ値tを値1だけインクリメントする。このタイマ値tは、半異常判定フラグFが1に設定されてからの経過時間、つまり、モータ20あるいはモータ駆動回路40の半異常状態が検出されてからの経過時間を表す。タイマ値tの初期値は、ゼロに設定されている。続いて、マイコン60は、ステップS63において、タイマ値tに応じた上限電流Imaxを計算する。マイコンは、図12に示すような上限電流マップを記憶しており、この上限電流マップを参照して、タイマ値t経過時間に応じた上限電流Imaxを設定する。上限電流マップは、上限電流Imaxを時間経過とともに初期値Imax0から徐々に低減させる特性を有する。上限電流Imaxは、操舵アシスト制御ルーチンのステップS4において使用されるモータ20の電流制限値である。続いて、マイコン60は、ステップS64において、タイマ値tが予め設定された停止設定時間t1に達したか否かを判断する。タイマ値tが停止設定時間t1に到達していない場合には、モータ制限値設定ルーチンを一旦終了する。マイコン60は、こうした処理を所定の周期で繰り返す。これにより、経過時間tが増加していくにしたがって徐々に減少する上限電流Imaxが設定されることになる。従って、時間経過とともにモータ20の作動制限が大きく厳しくなっていく。そして、経過時間tが停止設定時間t1に到達するとS64:Yes、マイコン60は、ステップS65において、操舵アシストを停止し、それ以降の操舵アシスト制御を禁止する。また、内部抵抗値判定ルーチンおよびモータ制限値設定ルーチンを終了する。尚、上限電流マップは、予め想定されるモータ20あるいはモータ駆動回路40の内部抵抗値の変化図11参照に基づいて設定されている。従って、停止設定時間t1は、非常に長い時間を想定したものである。このため、マイコン60は、イグニッションスイッチがオフになってもタイマ値tを記憶保持できるように、モータ制限値設定ルーチンを終了する都度、図示しない不揮発性メモリにタイマ値tを記憶する。そして、モータ制限値設定ルーチンを再開させる都度、不揮発性メモリに記憶したタイマ値tを読み込んで、このタイマ値tをインクリメントしていくことで累積時間をカウントする。この変形例2-1によれば、モータ20あるいはモータ駆動回路40の半異常状態が検出された場合、その時点から、内部抵抗値の経時変化に応じた上限電流Imaxを設定するため、モータ20の作動制限を適切に行うことができる。<変形例2-2:半異常発生部位に応じた電流制限>モータ20の半異常状態が検出されてから異常状態へ至るまでの時間残存寿命と、モータ駆動回路40の半異常状態が検出されてから異常状態へ至るまでの時間残存寿命とは必ずしも一致しない。そこで、この変形例2-2においては、モータ20の半異常状態が検出された場合と、モータ駆動回路40の半異常状態が検出された場合とで、停止設定時間t1が異なるように設定した上限電流マップを使用して上限電流Imaxを計算する。これにより、半異常部位の残存寿命に応じた適切な操舵アシスト実行可能期間を設定することができる。図15、図16は、この変形例2-2におけるマイコン60の処理を表す。この処理は、実施形態のモータ制限値設定ルーチン図6に代えるものである。図15が内部抵抗値判定ルーチンを表し、図16がモータ制限値設定ルーチンを表す。以下、実施形態のモータ制限値設定ルーチン図6と同じ処理については、図面に実施形態と同一のステップ番号を付して説明を省略する。内部抵抗値判定ルーチン、モータ制限値設定ルーチンは、並行して所定の周期で実行される。内部抵抗値判定ルーチン図15が起動すると、マイコン60は、まず、ステップS71において、モータ半異常判定フラグFmが0であるか否かを判断する。このモータ半異常判定フラグFmは、1によりモータ20の半異常状態が検出されたことを表し、0により上記半異常状態が検出されていないことを表す。モータ半異常判定フラグFmの初期値は0に設定されている。マイコン60は、モータ半異常判定フラグFmが0Fm=0であれば、テップS72において、回路半異常判定フラグFqが0であるか否かを判断する。この回路半異常判定フラグFqは、1によりモータ駆動回路40の半異常状態が検出されたことを表し、0により上記半異常状態が検出されていないことを表す。回路半異常判定フラグFqの初期値は0に設定されている。マイコン60は、回路半異常判定フラグFqが0Fq=0であれば、ステップS11からの処理を行う。マイコン60は、ステップS40において、モータ20の半異常状態を検出した場合には、ステップS73において、モータ半異常判定フラグFmを1に設定して内部抵抗値判定ルーチンを一旦終了する。また、ステップS42において、モータ駆動回路40の半異常状態を検出した場合には、ステップS74において、回路半異常判定フラグFqを1に設定して内部抵抗値判定ルーチンを一旦終了する。また、マイコン60は、ステップS40,S42において、モータ20とモータ駆動回路40とが正常であると判定した場合には、そのまま内部抵抗値判定ルーチンを一旦終了する。この場合は、上限電流Imaxは、正常時用の値に設定される。内部抵抗値判定ルーチンは所定の周期で繰り返されるが、一旦、モータ半異常判定フラグFm、あるいは、回路半異常判定フラグFqが1に設定された後は、ステップS71あるいはステップS72の判断がNoとなる。この場合、モータ20およびモータ駆動回路40の内部抵抗値の検出が行われなくなり、代わりに、図16に示すモータ制限値設定ルーチンによる上限電流Imaxの計算が行われるようになる。マイコン60は、モータ制限値設定ルーチン図16のステップS81において、モータ半異常判定フラグFmが1に設定されているか否かを判断する。モータ半異常判定フラグFmが0Fm=0であれば、マイコン60は、ステップS82において、回路半異常判定フラグFqが1に設定されているか否かを判断する。マイコン60は、モータ半異常判定フラグFmあるいは回路半異常判定フラグFqが1に設定されるまでこの2つの判断を繰り返すが、モータ半異常判定フラグFmあるいは回路半異常判定フラグFqが1に設定されるまでの期間においては、上述した内部抵抗値判定ルーチンで内部抵抗値による異常判定S40,S42を行う。マイコン60は、2つの半異常判定フラグFm,Fqの設定状態を繰り返し判断して、モータ半異常判定フラグFmが1に設定された場合にはS81:Yes、ステップS83において、タイマ値tを値1だけインクリメントする。このタイマ値tは、モータ半異常判定フラグFmが1に設定されてからの経過時間、つまり、モータ20の半異常状態が検出されてからの経過時間を表す。タイマ値tの初期値は、ゼロに設定されている。続いて、マイコン60は、ステップS84において、タイマ値tに応じた上限電流Imaxを計算する。マイコンは、図17に示すような上限電流マップを記憶しており、この上限電流マップを参照して、タイマ値t経過時間に応じた上限電流Imaxを設定する。この上限電流マップは、上限電流Imaxを時間経過とともに初期値Imax0から徐々に低減させる特性を有するが、モータ半異常判定フラグFmが1に設定されている場合、つまり、モータ20の半異常状態が検出されている場合と、回路半異常判定フラグFqが1に設定されている場合、つまり、モータ駆動回路40の半異常状態が検出されている場合とで、その特性が異なるように設定されている。例えば、モータ20の半異常状態が検出されてからの残存寿命が、モータ駆動回路40の半異常状態が検出されてから残存寿命よりも短い場合には、図17のように、モータ20の半異常状態が検出された場合の停止設定時間t1mを、モータ駆動回路40の半異常状態が検出され場合の停止設定時間t1qよりも短くするとよい。尚、モータ20とモータ駆動回路40とで残存寿命の関係が逆になる場合には、この特性を逆にして、停止設定時間t1mを停止設定時間t1qよりも長く設定するとよい。マイコン60は、ステップS84において、上限電流マップを参照して上限電流Imaxを設定すると、続くステップS85において、タイマ値tが予め設定された停止設定時間t1mに達したか否かを判断する。タイマ値tが停止設定時間t1mに到達していない場合には、モータ制限値設定ルーチンを一旦終了する。マイコン60は、こうした処理を所定の周期で繰り返す。これにより、経過時間tが増加していくにしたがって徐々に減少する上限電流Imaxが設定されることになる。従って、時間経過とともにモータ20の作動制限が大きく厳しくなっていく。そして、経過時間tが停止設定時間t1mに到達するとS85:Yes、マイコン60は、ステップS86において、操舵アシストを停止し、それ以降の操舵アシスト制御を禁止する。また、内部抵抗値判定ルーチンおよびモータ制限値設定ルーチンを終了する。一方、回路半異常判定フラグFqが1に設定された場合にはS82:Yes、ステップS87において、タイマ値tを値1だけインクリメントする。このタイマ値tは、回路半異常判定フラグFqが1に設定されてからの経過時間、つまり、モータ駆動回路40の半異常状態が検出されてからの経過時間を表す。タイマ値tの初期値は、ゼロに設定されている。続いて、マイコン60は、ステップS88において、上限電流マップ図17を参照してタイマ値tに応じた上限電流Imaxを計算する。続いて、ステップS89において、タイマ値tが予め設定された停止設定時間t1qに達したか否かを判断する。タイマ値tが停止設定時間t1qに到達していない場合には、モータ制限値設定ルーチンを一旦終了する。マイコン60は、こうした処理を所定の周期で繰り返す。これにより、経過時間tが増加していくにしたがって徐々に減少する上限電流Imaxが設定されることになる。従って、時間経過とともにモータ20の作動制限が大きく厳しくなっていく。そして、経過時間tが停止設定時間t1qに到達するとS89:Yes、マイコン60は、ステップS86において、操舵アシストを停止し、それ以降の操舵アシスト制御を禁止する。また、内部抵抗値判定ルーチンおよびモータ制限値設定ルーチンを終了する。この変形例2-2によれば、モータ20が半異常状態になった場合と、モータ駆動回路40が半異常状態になった場合とで、それぞれ独立した上限電流Imaxの特性および停止設定時間t1が設定される。つまり、半異常が発生した部位に応じて、上限電流Imaxの特性および停止設定時間t1が切り替えられる。これにより、半異常部位の劣化進行度合に応じた適切な操舵アシストを実行することができる。また、半異常部位の残存寿命に応じた適切な操舵アシスト実行可能期間を設定することができる。この結果、一層適切にモータ20の作動制限を行うことができる。<変形例2-3:最大電圧による作動制限>モータ20の作動制限については、モータ20に印加する最大電圧を制限する構成を採用することもできる。例えば、目標指令電圧Vの上限値である上限指令電圧Vmaxを内部抵抗値に応じた値に設定する。この場合、マイコン60は、図19に示すようなモータ抵抗用上限指令電圧マップ、および、図20に示すような回路抵抗用上限指令電圧マップを記憶している。モータ抵抗用上限指令電圧マップは、内部抵抗値Rmが大きくなるにしたがってモータ抵抗用上限指令電圧Vmaxmを小さくする特性を有する。また、回路抵抗用上限指令電圧マップは、内部抵抗値Rqが大きくなるにしたがって回路抵抗用上限指令電圧Vmaxqを小さくする特性を有する。マイコン60は、図18に示すモータ制限値設定ルーチンを実行する。このモータ制限値設定ルーチンは、実施形態におけるモータ制限値設定ルーチン=SUMKtmIm2-SUM11ここで、Ktmは、モータ実電流Imの二乗値に応じてモータ20が温度変化する程度を表す予め定めた係数である。また、は、所定の短い周期にて繰り返し実行される上限電流Imax設定ルーチンにおける今回の処理により演算される値であることを意味する。従って、SUMは、今回計算により求めようとする温度推定用電流二乗積算値であり、SUMは、1演算周期前に算出した温度推定用電流二乗積算値である。マイコン60は、次式12に示すように、この温度推定用電流二乗積算値SUMにモータ温度ゲインGmを乗算してモータ推定温度Tmを算出する。Tm=GmSUM12この計算にあたっては、SUMの初期値が必要となる。SUMの初期値は、例えば、操舵アシスト制御ルーチンを終了したときの温度推定用電流二乗積算値SUMを不揮発性メモリに記憶しておき、次回の操舵アシスト制御ルーチンが開始されたときに、その記憶した温度推定用電流二乗積算値SUMから、放熱による温度変化分ΔTを減算して求めるようにしてもよい。温度変化分ΔTは、例えば、基板温度Tbの温度変化量に基づいて算出することができる。また、モータ20の作動停止期間が長い場合には、SUMの初期値をゼロに設定することができる。続いて、マイコン60は、ステップS113において、モータ温度用上限電流マップを参照して、モータ推定温度Tmからモータ温度用上限電流ImaxTmを計算する。続いて、ステップS114において、基板温度用上限電流マップを参照して、基板温度Tbから基板温度用上限電流ImaxTbを計算する。続いて、マイコン60は、ステップS115において、モータ温度用上限電流ImaxTmと基板温度用上限電流ImaxTbとを比較し、ステップS116,S117において、小さい方の値を温度用上限電流ImaxTに設定する。続いて、マイコン60は、ステップS118において、実施形態におけるモータ制限値設定ルーチンのステップS45,S46で設定した上限電流Imaxが温度用上限電流ImaxTより大きいか否かを判断し、上限電流Imaxが温度用上限電流ImaxTより大きい場合にはS118:Yes、ステップS119において、上限電流Imaxを温度用上限電流ImaxTの値に変更するImax←ImaxT。一方、上限電流Imaxが温度用上限電流ImaxT以下の場合にはS118:No、ステップS119の処理をスキップする。マイコン60は、このようにして上限電流Imaxを設定するとモータ制限値設定ルーチンを一旦終了する。マイコン60は、操舵アシスト制御ルーチンのステップS4において、このモータ制限値設定ルーチンで設定された上限電流Imaxを読み込む。この変形例2-7によれば、モータ20の内部抵抗値Rmと、モータ推定温度Tmと、モータ駆動回路40の内部抵抗値Rqと、基板温度Tbとに基づいてそれぞれ上限電流を設定し、それらの上限電流の最も小さい値を使ってモータ20の上限電流を設定する。従って、モータ20およびモータ駆動回路40を一層適正に保護して延命を図ることができる。<変形例2-8:温度ゲインによる作動制限>上記実施形態においては、モータ20あるいはモータ駆動回路40の半異常状態が検出されたときに、内部抵抗値に応じた上限電流Imaxを設定してモータ20の作動を制限しているが、この変形例2-8では、内部抵抗値に応じた温度ゲインを設定することにより上限電流Imaxを変更する。この変形例2-8においては、マイコン60は、操舵アシスト制御ルーチンのステップS4において使用する上限電流Imaxをモータ推定温度Tmおよび基板温度Tbに基づいて設定する。例えば、変形例2-7におけるステップS111~S117と同様の処理を行って、温度用上限電流ImaxTを計算し、この温度用上限電流ImaxTを、操舵アシスト制御ルーチンで使用する上限電流Imaxに設定する。この場合、マイコン60は、ステップS112でモータ推定温度Tmを計算するとき、モータ20の内部抵抗値Rmに応じて設定されるモータ温度ゲインGmを使用する。モータ推定温度Tmは、次式12にて計算される。Tm=GmSUM12従って、この式におけるモータ温度ゲインGmを内部抵抗値Rmに応じて可変することで、モータ推定温度Tmを調整することができる。マイコン60は、図26aに示す特性のモータ温度ゲインマップを記憶しており、このモータ温度ゲインマップを参照して内部抵抗値Rmからモータ温度ゲインGm≧1を計算する。モータ温度ゲインマップは、モータ20の内部抵抗値Rmが大きくなるにしたがってモータ温度ゲインGmが増加する特性を有する。従って、モータ推定温度Tmは、モータ20の内部抵抗値Rmが大きくなるにしたがって高くなる。また、マイコン60は、ステップS114で基板温度用上限電流ImaxTbを設定する場合、基板温度Tbを基板温度ゲインGbで補正する。つまり、次式13に示すように、基板温度センサ35にて検出される基板温度Tbに基板温度ゲインGbを乗算した値を、最終的な基板温度Tbに設定する。Tb=GbTb13従って、この式における基板温度ゲインGbをモータ駆動回路40の内部抵抗値Rqに応じて可変することで、基板温度Tbを調整することができる。マイコン60は、図26bに示す特性の基板温度ゲインマップを記憶しており、この基板温度ゲインマップを参照して内部抵抗値Rqから基板温度ゲインGb≧1を計算する。基板温度ゲインマップは、モータ駆動回路40の内部抵抗値Rqが大きくなるにしたがって基板温度ゲインGbが増加する特性を有する。従って、基板温度Tbは、モータ駆動回路40の内部抵抗値Rqが大きくなるにしたがって高くなる。この変形例2-8によれば、モータ20の内部抵抗値Rmが増加して半異常状態となった場合には、計算上のモータ推定温度Tmが上昇するため、これに伴って上限電流Imaxが低下する図25a参照。従って、モータ20に流れる電流を正常時に比べて制限することができる。また、モータ駆動回路40の内部抵抗値Rqが増加して半異常状態となった場合には、計算上の基板温度Tbが上昇するため、これに伴って上限電流Imaxが低下する図25b参照。従って、モータ20に流れる電流を正常時に比べて制限することができる。また、モータ温度ゲインマップと基板温度ゲインマップとを独自の特性に設定することができるため、半異常状態が発生した部位に応じた適正なモータ20の作動制限を行うことができる。<変形例3:半異常状態の判定>上記実施形態においては、測定した内部抵抗値Rm,Rqと、予め設定した判定値Rrefm1,Rrefm2,Rrefq1,Rrefq2との比較により半異常状態を判定しているがS40,S42参照、半異常状態の判定方法については、種々の手法を採用することができる。<変形例3-1:内部抵抗値の初期値に基づく判定>例えば、最初に測定した内部抵抗値を初期値として設定し、この初期値からの変動に基づいて半異常状態を判定するようにしても良い。この場合、最初に測定した内部抵抗値を初期値Rm0,Rq0として不揮発性メモリ図示略に記憶しておき、その後、内部抵抗値を測定する度に、ステップS40及びステップS42において、測定した内部抵抗値Rm,Rqと初期値Rm0,Rq0とを比較するようにする。判定に際しては、例えば、測定した内部抵抗値の初期値に対する増加幅Rm-Rm0,Rq-Rq0あるいは増加率Rm/Rm0,Rq/Rq0を計算し、その増加幅あるいは増加率が予め設定した第1基準値を超えている場合に半異常状態であると判定し、第1基準値より大きな第2基準基準値を超えている場合に異常状態であると判定するとよい。尚、スイッチング素子Q1,Q2,Q3,Q4の内部抵抗値の初期値Rq0は、例えば、最初に測定した内部抵抗値Rq1,Rq2,Rq3,Rq4の任意の値を採用しても良いし、平均値あるいは最大値あるいは最小値を採用してもよい。また、個々のスイッチング素子Q1,Q2,Q3,Q4の内部抵抗値Rq1,Rq2,Rq3,Rq4の増加幅あるいは増加率を計算し、その増加幅あるいは増加率に基づいて判定するようにしてもよい。この場合、4つの増加幅あるいは増加率の最大値を基準値と比較するようにするとよい。<変形例3-2:判定値の温度補正>測定した内部抵抗値Rm,Rqを判定するための判定値Rrefm1,Rrefm2,Rrefq1,Rrefq2が温度補正される構成であってもよい。マイコン60は、モータ実電流Imに基づいてモータ20の温度Tmを推定する機能と、基板温度センサ35により基板温度Tbを検出する機能を備えている。従って、モータ20の推定温度Tmに基づいて、モータ20の半異常状態を判定する判定値Rrefm1およびRrefm2を補正することができる。また、基板温度Tbに基づいて、モータ駆動回路40の半異常状態を判定する判定値Rrefq1およびRrefq2を補正することができる。モータ20の推定温度Tmと内部抵抗値Rmとの関係、および、基板温度tbと内部抵抗値Rqとの関係は、予め実験により求めることができる。従って、推定温度Tmと補正係数との関係を表す補正マップ、基板温度tbと補正係数との関係を表す補正マップをマイコン60に記憶しておくことができる。マイコン60は、ステップS40において、モータ内部抵抗値Rmに基づいて、モータ20の正常、異常、半異常を判定するにあたって、モータ20の推定温度Tmを読み込む。そして、補正マップを参照して推定温度Tmに応じた補正係数を設定し、この補正係数を判定値Rrefm1,Rrefm2に乗算した値を、新たな判定値Rrefm1,Rrefm2とする。マイコン60は、この補正された判定値Rrefm1,Rrefm2を使って、モータ20の正常、異常、半異常を判定する。尚、モータ20の推定温度Tmは、上述の変形例2-7で説明した方法で計算することができる。同様に、マイコン60は、ステップS42において、回路内部抵抗値Rqに基づいて、モータ駆動回路40の正常、異常、半異常を判定するにあたって、基板温度センサ35により検出される基板温度Tbを読み込む。そして、補正マップを参照して基板温度Tbに応じた補正係数を設定し、この補正係数を判定値Rrefq1,Rrefq2に乗算した値を、新たな判定値Rrefq1,Rrefq2とする。マイコン60は、この補正された判定値Rrefq1,Rrefq2を使って、モータ駆動回路40の正常、異常、半異常を判定する。この変形例3-2によれば、モータ20およびモータ駆動回路40の内部抵抗に関する状態正常、異常、半異常をさらに高精度に判定することができる。<変形例3-3:電圧変化に基づく判定>上記実施形態においては、モータ20の内部抵抗値Rmとモータ駆動回路40の内部抵抗値Rqとを測定したが、必ずしも内部抵抗値を測定する必要はない。例えば、モータ20の端子間電圧の経時変化に基づいて半異常状態を検出することができる。この変形例3-3においては、マイコン60は、図27に示すモータ制限値設定ルーチンを実行する。この変形例3-3のモータ制限値設定ルーチンは、実施形態のモータ制限値設定ルーチン図6のステップS20からステップS46の処理を変更したものである。以下、実施形態と同じ処理については、図面に実施形態と同一のステップ番号を付して説明を省略する。マイコン60は、電動パワーステアリング装置1のシステムが正常に起動した場合にはS13:Yes、続く、ステップS120において、予め設定したデューティ比αにてスイッチング素子Q1,Q4をオンオフ作動させる。続いて、ステップS121において、そのときの第1モータ端子間V1と第2モータ端子電圧V2と電源電圧Vccとを測定する。続いて、マイコン60は、ステップS122において、電源電圧Vccにデューティ比αを乗算した値α×Vccと、モータ20の端子間電圧V1-V2との偏差ΔV1=|α×Vcc-V1-V2|を計算する。続いて、マイコン60は、ステップS123において、デューティ比αにてスイッチング素子Q2,Q3をオンオフ作動させる。続いて、ステップS124において、そのときの第1モータ端子間V1と第2モータ端子電圧V2と電源電圧Vccとを測定する。続いて、マイコン60は、ステップS125において、電源電圧Vccにデューティ比αを乗算した値α×Vccと、モータ20の端子間電圧V2-V1との偏差ΔV2=|α×Vcc-V2-V1|を計算する。続いて、マイコン60は、ステップS126~S128において、偏差ΔV1と偏差ΔV2との大きい方の値を偏差ΔVに設定する。尚、偏差ΔV1と偏差ΔV2の測定は、交互に複数回行うようにして、それらの平均値を求めるようにしてもよい。モータ20の内部抵抗値とモータ駆動回路40の内部抵抗値がともに正常であれば、偏差ΔVは小さな値となるが、モータ20の内部抵抗値あるいはモータ駆動回路40の内部抵抗値が増加すると偏差ΔVが増大する。このことを利用して、マイコン60は、ステップS129において、偏差ΔVに基づいて、モータ20およびモータ駆動回路40からなるモータ通電路の正常、半異常、異常を判定する。例えば、最初に測定した偏差ΔVを初期値ΔV0として不揮発性メモリ図示略に記憶しておき、その後は、ステップS122で計算した偏差ΔVと初期値ΔV0とを比較して判定する。判定に際しては、例えば、偏差ΔVの初期値ΔV0に対する増加幅ΔV-ΔV0あるいは増加率ΔV/ΔV0を計算し、その増加幅あるいは増加率が予め設定した第1基準値を超えている場合に半異常状態であると判定し、第1基準値より大きな第2基準基準値を超えている場合に異常状態であると判定するとよい。尚、初期値ΔV0に代えて、予め設定された設定値ΔV0と比較して判定してもよい。マイコンは、ステップS129において、半異常状態を検出した場合には、ステップS130において、上限電流Imaxを設定する。この場合、上限電流Imaxは、増加幅ΔV-ΔV0あるいは増加率ΔV/ΔV0が大きくなるにしたがって小さな値に設定されるようにするとよい。<変形例4:半異常の報知>アシストECU100にウォーニングランプ94図1参照を接続して、モータ20あるいはモータ駆動回路40の半異常状態が検出された場合に、ウォーニングランプ94を点灯させる構成を採用することもできる。これによれば、運転者は、モータ20あるいはモータ駆動回路40が半異常となった段階で、その異常を知ることができる。従って、適切なタイミングで部品故障が発生する前に、修理の手配をすることができる。以上、実施形態および変形例にかかる電動パワーステアリング装置1について説明したが、本発明は上記実施形態および変形例に限定されるものではなく、本発明の目的を逸脱しない限りにおいて種々の変更が可能である。例えば、本実施形態においては、モータ20とモータ駆動回路40との両方の内部抵抗値を測定して、その内部抵抗値に応じてモータ20の作動を制限する構成を採用しているが、モータ20とモータ駆動回路40の何れか一方の内部抵抗値を測定して、その内部抵抗値に応じてモータ20の作動を制限する構成を採用してもよい。例えば、モータ20に比べてモータ駆動回路40の信頼性が高い場合には、モータ駆動回路40の内部抵抗値の測定、判定、モータ作動制限S20,S40,S41を省略して、モータ20の内部抵抗値に応じてモータ20の作動を制限するようにしてもよく、逆に、モータ駆動回路40に比べてモータ20の信頼性が高い場合には、モータ20の内部抵抗値の測定、判定、モータ作動制限S30,S42,S43を省略して、モータ駆動回路40の内部抵抗値に応じてモータ20の作動を制限するようにしてもよい。また、本実施形態においては、モータ駆動回路Hブリッジ回路40に使用するスイッチング素子Q1,Q2,Q3,Q4としてMOS―FETを用いているが、これに限るものではなく、他のスイッチング半導体素子を用いることも可能である。また、本実施形態および変形例においては、各種のマップを用いて変数を導き出しているが、マップに代えて、関数等を使った計算式を用いるようにしてもよい。また、本実施形態においては停止設定時間を設けていないが、例えば、変形例2-1,2-2,2-4,2-5,2-6のように、半異常状態を検出した場合には、その検出した時点からの経過時間が停止設定時間に到達したら、操舵アシストを停止するようにしてもよい。また、変形例3-2においては、測定した内部抵抗値Rm,Rqと比較する判定値Rrefm1,Rrefm2,Rrefq1,Rrefq2の温度補正を行うようにしているが、測定した内部抵抗値Rm,Rqを温度補正するようにしてもよい。また、本実施形態においては、モータ20の発生するトルクをステアリングシャフト12に付与するコラムアシスト式の電動パワーステアリング装置1について説明したが、モータの発生するトルクをラックバー14に付与するラックアシスト式の電動パワーステアリング装置であってもよい。"