"操舵ハンドルからステアリングシャフトに入力された操舵トルクを検出する操舵トルク検出手段と、ステアリング機構に設けられて操舵アシストトルクを発生するためのモータと、前記モータに流れる電流の検出値をデジタル値にて取得する第1モータ電流検出手段と、前記第1モータ電流検出手段の異常を検出する異常検出手段と、前記第1モータ電流検出手段に異常が検出されていない場合に、少なくとも前記操舵トルク検出手段により検出された操舵トルクと前記第1モータ電流検出手段により検出された電流とに基づいて前記モータの制御量である電圧指令値を演算する第1モータ制御量演算手段と、前記第1モータ電流検出手段に異常が検出されている場合に、前記第1モータ制御量演算手段に代わって前記電圧指令値を演算する第2モータ制御量演算手段と、前記第1モータ制御量演算手段あるいは第2モータ制御量演算手段により演算された電圧指令値にしたがって前記モータを駆動するモータ駆動手段とを備えた電動パワーステアリング装置において、前記第1モータ電流検出手段の分解能よりも低い分解能で、前記モータに流れる電流の検出値をデジタル値にて取得する第2モータ電流検出手段を備え、前記第2モータ制御量演算手段は、少なくとも前記操舵トルクに基づいて基本電圧指令値を演算する基本電圧指令値演算手段と、前記演算された基本電圧指令値に、予め設定された周期で電圧値が交互に切り替わる交流電圧の値を加算する交流電圧加算手段と、前記交流電圧の値が加算された電圧指令値にしたがって前記モータが駆動されているときに、前記交流電圧の加算に応答して、前記第2モータ電流検出手段により検出される検出値が変化するタイミングと、そのときの検出値とを複数取得する検出値変化タイミング取得手段と、前記検出値変化タイミング取得手段により取得した複数のタイミングと検出値とに基づいて、前記電圧指令値を調整する電圧指令値調整手段とを備えたことを特徴とする電動パワーステアリング装置。前記基本電圧指令値演算手段は、少なくとも前記操舵トルクに基づいたフィードフォワード制御により基本電圧指令値を演算するものであり、前記電圧指令値調整手段は、前記検出値変化タイミング取得手段により取得した複数のタイミングと検出値とに基づいて、前記モータで発生する逆起電圧を推定する逆起電圧推定手段を備え、前記推定された逆起電圧に相当する電圧値が前記電圧指令値に加算されるように前記電圧指令値を調整することを特徴とする請求項1記載の電動パワーステアリング装置。前記基本電圧指令値演算手段は、少なくとも前記操舵トルクに基づいて設定した目標電流と、前記第2モータ電流検出手段により検出される検出電流とに基づく電流フィードバック制御により基本電圧指令値を演算するものであり、前記電圧指令値調整手段は、前記交流電圧の加算に応答して前記モータに流れる三角波状に変化する電流の平均値を、前記検出値変化タイミング取得手段により取得した複数のタイミングと検出値とに基づいて演算する平均電流演算手段を備え、前記平均電流演算手段により演算した平均値を、前記基本電圧指令値演算手段が電流フィードバック制御に使用する検出電流としてフィードバックすることにより前記電圧指令値を調整することを特徴とする請求項1記載の電動パワーステアリング装置。前記逆起電圧推定手段は、前記交流電圧の加算に応答して前記モータに流れる三角波状に変化する電流の増加期間における前記第2モータ電流検出手段により検出される検出値が変化する2つのタイミングの時間差と、前記三角波状に変化する電流の減少期間における前記第2モータ電流検出手段により検出される検出値が変化する2つのタイミングの時間差と、前記2つのタイミングを検出したときの検出値とに基づいて、前記モータで発生する逆起電圧を推定することを特徴とする請求項2記載の電動パワーステアリング装置。前記平均電流演算手段は、前記交流電圧の電圧値が切り替わってから次に切り替わるまでの期間において、前記第2モータ電流検出手段により検出される検出値が変化する第1タイミングから前記第1タイミングより後に前記検出値が変化する第2タイミングまでの時間と、前記交流電圧の電圧値が切り替わってから前記検出値が変化する前記第1タイミングまでの時間と、前記検出値が変化する前記第2タイミングから前記交流電圧の電圧値が切り替わるまでの時間と、前記第1タイミングと前記第2タイミングとを検出したときの検出値とに基づいて、前記モータに流れる三角波状に変化する電流の平均値を演算することを特徴とする請求項3記載の電動パワーステアリング装置。前記第2モータ電流検出手段は、前記モータに流れる電流を電圧に変換する電流電圧変換器と、前記電流電圧変換器により変換された電圧を増幅する電圧増幅器と、前記増幅された電圧を、その電圧値を表すデジタル値に変換するアナログデジタル変換器とを備えており、高電流域に比べて低電流域における最小検出幅が狭くなるように、前記電圧増幅器あるいは前記アナログデジタル変換器の出力特性が非線形に設定されていることを特徴とする請求項1ないし請求項5の何れか一項記載の電動パワーステアリング装置。第1モータ電流検出手段に異常が検出されていない場合に、前記第2モータ電流検出手段により検出される電流の検出値と、第1モータ電流検出手段により検出される電流の検出値との対応関係を記憶する対応関係記憶手段と、前記第2モータ制御量演算手段が前記電圧指令値を演算する場合に、前記第2モータ電流検出手段が検出した検出値を、前記対応関係記憶手段に記憶されている前記対応関係に基づいて補正する第2モータ電流検出値補正手段とを備えたことを特徴とする請求項1ないし請求項6の何れか一項記載の電動パワーステアリング装置。以下、本発明の一実施形態に係る電動パワーステアリング装置について図面を用いて説明する。図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を負の値で示す。尚、本実施形態においては、トーションバーの捩れ角度を、トーションバーの両端に設けた2つのレゾルバにより検出するが、エンコーダ等の他の回転角センサにより検出することもできる。次に、アシストECU100について図2を用いて説明する。アシストECU100は、モータ20の目標制御量である電圧指令値を演算し、演算された電圧指令値に応じたスイッチ駆動信号を出力する電子制御回路50と、電子制御回路50から出力されたスイッチ駆動信号にしたがってモータ20に通電するモータ駆動回路40とを含んで構成される。電子制御回路50は、CPU,ROM,RAM等からなる演算回路と入出力インタフェースを備えたマイクロコンピュータ60以下、マイコン60と呼ぶと、マイコン60から出力されるスイッチ制御信号を増幅してモータ駆動回路40に供給するスイッチ駆動回路30とを備える。アシストECU100は、電源装置200から電力供給される。この電源装置200は、図示しないバッテリと、エンジンの回転により発電するオルタネータとから構成される。この電源装置200の定格出力電圧は、例えば12Vに設定されている。尚、図中においては、電源装置200からモータ駆動回路40への電源供給ラインである電源ライン210のみを示しているが、電子制御回路50の作動電源も電源装置200から供給される。モータ駆動回路40は、電源ライン210とグランドライン220との間に設けられ、スイッチング素子Q1Hとスイッチング素子Q2Hとを並列接続した上アーム回路45Hと、スイッチング素子Q1Lとスイッチング素子Q2Lとを並列接続した下アーム回路45Lとを直列に接続し、この上アーム回路45Hと下アーム回路45Lとの接続部から、モータ20への電力供給を行うための通電ライン47a,47bを引き出したHブリッジ回路で構成されている。モータ駆動回路40に設けられるスイッチング素子Q1H,Q2H,Q1L,Q2Lとしては、MOS-FETMetalOxideSemiconductorFieldEffectTransistorが使用される。スイッチング素子Q1H,Q2H,Q1L,Q2Lは、各ソース-ドレイン間に電源電圧が印加されるように上下のアーム回路45H,45Lに設けられ、また、各ゲートが電子制御回路50のスイッチ駆動回路30に接続される。尚、図中に回路記号で示すように、MOS-FETには構造上、ダイオードが寄生している。このダイオードを寄生ダイオードと呼ぶ。各スイッチング素子Q1H,Q2H,Q1L,Q2Lの寄生ダイオードは、電源ライン210からグランドライン220への電流の流れを遮断し、グランドライン220から電源ライン210へ向かう電流のみを許容する逆導通ダイオードである。また、モータ駆動回路40は、寄生ダイオードとは別の逆導通ダイオード電流遮断方向は寄生ダイオードと同じであって、電源電圧方向に対して逆方向にのみ導通するダイオードをスイッチング素子Q1H,Q2L,Q2H,Q1Lに並列に接続した構成であってもよい。マイコン60は、スイッチ駆動回路30を介してモータ駆動回路40の各スイッチング素子Q1H,Q2H,Q1L,Q2Lのゲートに独立した駆動信号を出力する。この駆動信号により、各スイッチング素子Q1H,Q2H,Q1L,Q2Lのオン状態とオフ状態とが切り替えられる。モータ駆動回路40においては、スイッチング素子Q2Hとスイッチング素子Q1Lとがオフに維持された状態でスイッチング素子Q1Hとスイッチング素子Q2Lとがオンすると、図中の方向に電流が流れる。これにより、モータ20は、正回転方向のトルクを発生する。また、スイッチング素子Q1Hとスイッチング素子Q2Lとがオフに維持された状態でスイッチング素子Q2Hとスイッチング素子Q1Lとがオンすると、図中の-方向に電流が流れる。これにより、モータ20は、逆回転方向のトルクを発生する。アシストECU100は、モータ20に流れる電流を検出する第1電流センサ31と第2電流センサ32とを備えている。この第1電流センサ31と第2電流センサ32は、下アーム回路45Lとグランドとを接続するグランドライン220に直列に設けられる。第2電流センサ32は、第1電流センサ31の異常が検出されている場合に、バックアップ用として使用されるものである。第1電流センサ31は、図3に示すように、グランドライン220に設けた第1シャント抵抗器31aと、第1シャント抵抗器31aの両端電圧を増幅する第1増幅回路31bと、第1増幅回路31bの出力電圧をデジタル値に変換する第1A/D変換器31cアナログデジタル変換器とを備えている。この第1A/D変換器31cは、例えば、12ビットの分解能を有する。第2電流センサ32は、第1電流センサ31の第1シャント抵抗器31aと直列に設けられる第2シャント抵抗器32aと、第2シャント抵抗器32aの両端電圧を増幅する第2増幅回路32bと、第2増幅回路32bの出力電圧をデジタル値に変換する第2A/D変換器32cとを備えている。この第2A/D変換器32cは、第1A/D変換器31cよりも低分解能となる4ビットの分解能を有する。第1シャント抵抗器31aおよび第2シャント抵抗器32aは、モータ20に流れる電流に比例した両端電圧を発生させるため、電流電圧変換器として機能する。第1シャント抵抗器31aの抵抗値は、第1A/D変換器31cの分解能に応じて設定され、第2シャント抵抗器32aの抵抗値は、第2A/D変換器32cの分解能に応じて設定される。従って、第1A/D変換器31cと第2A/D変換器32cとにおける1LSBあたりの電圧幅電圧の最小検出幅を等しくした場合、第2A/D変換器32cが第1A/D変換器31cよりも低分解能であるため、第2シャント抵抗器32aの抵抗値R2は、第1シャント抵抗器31aの抵抗値R1に比べて小さい。従って、第1電流センサ31と第2電流センサ32とを直列に接続した構成は、第1電流センサ31を2組直列に設けた構成に比べて、抵抗値が小さく、また、増幅回路やA/D変換器の構成も簡易となる。第1電流センサ31および第2電流センサ32は、それぞれ検出したモータ20に流れる電流値を表すデジタル信号をマイコン60に出力する。以下、第1電流センサ31により検出されたモータ20に流れる電流の値を第1モータ実電流Im1と呼び、第2電流センサ32により検出されたモータ20に流れる電流の値を第2モータ実電流Im2と呼ぶ。尚、本実施形態においては、A/D変換機能を電流センサ31,32側に設けているが、マイコン60に設けた構成であってもよい。この場合は、第1電流センサ31および第2電流センサ32は、増幅回路31b,32bの出力するアナログ信号電圧信号をマイコン60に出力し、マイコン60でアナログ信号をデジタル値に変換するようにして電流を検出すればよい。また、アシストECU100は、車速センサ34を接続している。車速センサ34は、車速vxを表す検出信号をアシストECU100に出力する。次に、マイコン60の制御処理について説明する。マイコン60は、その機能に着目すると、正常時モータ制御量演算部70と、異常時モータ制御量演算部80と、制御切替部61と、PWM制御部62と、電流センサ異常検出部91とを備えている。各機能部における処理は、マイコン60に記憶された制御プログラムを所定の周期で繰り返し実行することにより行われる。正常時モータ制御量演算部70は、第1電流センサ31に異常が検出されていないとき、つまり、電流センサ異常検出部91から出力される異常判定信号Ffailが0であるとき、モータ20の制御量を演算するブロックである。正常時モータ制御量演算部70は、目標トルク演算部71と、目標電流演算部72と、電流フィードバック制御部73とを備えている。目標トルク演算部71は、車速センサ34よって検出された車速vxと、操舵トルクセンサ21によって検出された操舵トルクtrとを入力し、図4に示すアシストマップを参照して、入力した車速vxおよび操舵トルクtrに応じて設定される目標アシストトルクtを計算する。アシストマップは、代表的な複数の車速vxごとに、操舵トルクtrと目標アシストトルクtとの関係を設定した関係付けデータである。アシストマップは、操舵トルクtrが大きくなるにしたがって目標アシストトルクtが増加し、車速が低くなるにしたがって目標アシストトルクtが増加する特性を有している。尚、図3は、左方向の操舵時におけるアシストマップであって、右方向の操舵時におけるアシストマップは、左方向のものに対して操舵トルクtrと目標アシストトルクtの符号をそれぞれ反対つまり負にしたものとなる。目標トルク演算部71は、計算した目標アシストトルクtを目標電流演算部72に出力する。目標電流演算部72は、目標アシストトルクtを発生させるために必要な電流値である目標電流Iを計算する。目標電流Iは、目標アシストトルクtをトルク定数で除算することにより求められる。目標トルク演算部71は、計算した目標電流Iを電流フィードバック制御部73に出力する。電流フィードバック制御部73は、目標電流Iから第1電流センサ31により検出された第1モータ実電流Im1を減算した偏差ΔIを算出し、この偏差ΔIを使ったPI制御比例積分制御により、第1モータ実電流Im1が目標電流Iに追従するようにモータ20に印加する目標電圧を表す電圧指令値Vを計算する。電圧指令値Vは、例えば、下記式により計算する。V=KpΔIKi∫ΔIdtここでKpは、PI制御における比例項の制御ゲイン、Kiは、PI制御における積分項の制御ゲインである。電流フィードバック制御部73は、計算した電圧指令値Vを制御切替部61に出力する。制御切替部61は、正常時モータ制御量演算部70と異常時モータ制御量演算部80とから電圧指令値Vを入力するように構成され、電流センサ異常検出部91から出力される異常判定信号Ffailが0のときに、正常時モータ制御量演算部70から入力した電圧指令値VをそのままPWM制御部62に出力し、電流センサ異常検出部91から出力される異常判定信号Ffailが1のときに、異常時モータ制御量演算部80から入力した電圧指令値VをそのままPWM制御部62に出力する。PWM制御部62は、制御切替部61から出力される電圧指令値Vを入力し、電圧指令値Vで表される電圧がモータ20に印加されるようなデューティ比を設定したPWMPulseWidthModulation制御信号をスイッチ駆動回路30に出力する。スイッチ駆動回路30は、入力したPWM制御信号を増幅してモータ駆動回路40に出力する。これにより、電流センサ異常検出部91から出力される異常判定信号Ffailが0である場合には、正常時モータ制御量演算部70にて計算された電圧指令値Vに応じたデューティ比のパルス信号列がPWM制御信号としてモータ駆動回路40に出力される。このPWM制御信号により、各スイッチング素子Q1H,Q2H,Q1L,Q2Lのデューティ比が制御され、モータ20の駆動電圧が電圧指令値Vに調整される。こうして、モータ20には、操舵操作方向に回転する向きに目標電流Iが流れる。この結果、モータ20は、目標アシストトルクtに等しいトルクを出力し、運転者の操舵操作をアシストする。電流センサ異常検出部91は、第1電流センサ31により検出される第1モータ実電流Im1と、正常時モータ制御量演算部70で計算される目標電流Iとを入力し、第1モータ実電流Im1と目標電流Iとが所定期間にわたって大きく相違する場合に第1電流センサ31が故障していると判定する。例えば、第1モータ実電流Im1と目標電流Iとの偏差|Im1-I|を計算し、この偏差が予め設定された基準値よりも大きくなる連続時間が、予め設定された基準時間を超えた場合に、第1電流センサ31が故障していると判定する。電流センサ異常検出部91は、第1電流センサ31の異常を検出していない場合には、異常判定信号Ffailを0に設定し、第1電流センサ31の異常を検出した場合には、異常判定信号Ffailを1に設定する。電流センサ異常検出部91は、設定した異常判定信号Ffailを、正常時モータ制御量演算部70、異常時モータ制御量演算部80、制御切替部61に出力する。正常時モータ制御量演算部70は、異常判定信号Ffailが0である場合に作動状態となり、異常判定信号Ffailが1である場合に休止状態となる。また、異常時モータ制御量演算部80は、異常判定信号Ffailが0である場合に休止状態となり、異常判定信号Ffailが1である場合に作動状態となる。異常時モータ制御量演算部80は、第1電流センサ31に異常が検出されているとき、つまり、電流センサ異常検出部91から出力される異常判定信号Ffailが1であるとき、モータ20の制御量を演算するブロックである。異常時モータ制御量演算部80は、基本電圧演算部81と、逆起電圧推定部82と、第1電圧加算部83と、交流電圧信号生成部84と、第2電圧加算部85とを備えている。基本電圧演算部81は、操舵トルクセンサ21によって検出された操舵トルクtrを入力し、図5に示す基本電圧マップを参照して、入力した操舵トルクtrに応じて設定される基本電圧V0を計算する。基本電圧マップは、操舵トルクtrと基本電圧V0との関係を設定した関係付けデータである。基本電圧マップは、操舵トルクtrが大きくなるにしたがって基本電圧V0が増加する特性を有しており、例えば、実線にて示すように、操舵トルクtrに比例した基本電圧V0を設定する特性でもよいし、破線にて示すように、複数種類の一次関数を組み合わせて基本電圧V0を設定する特性でもよいし、一点鎖線にて示すように、多項式を使って基本電圧V0を設定する特性でもよい。基本電圧演算部81は、計算した基本電圧V0を表す電圧値を第1電圧加算部83に出力する。尚、図5は、左方向の操舵時における基本電圧マップであって、右方向の操舵時における基本電圧マップは、左方向のものに対して基本電圧V0と操舵トルクtrの符号を反対つまり負にしたものとなる。逆起電圧推定部82は、第2電流センサ32により検出される第2モータ実電流Im2と、交流電圧信号生成部84により生成される交流電圧信号V2とを入力し、モータ20で発生している逆起電圧を推定し、推定した逆起電圧の値に相当する補正電圧V1を演算する。この補正電圧V1の演算方法については後述する。逆起電圧推定部82は、計算した補正電圧V1を表す電圧値を第1電圧加算部83に出力する。第1電圧加算部83は、基本電圧演算部81により演算された基本電圧V0と逆起電圧推定部82により演算された補正電圧V1を加算した値V0V1を計算する。第1電圧加算部83は、計算した加算値V0V1を第2電圧加算部85に出力する。交流電圧信号生成部84は、予め設定した周期Tで電圧値が変動する交流電圧信号V2を生成する。この交流電圧信号V2は、図6に示すように、周期Tで電圧値の符号正負が切り替わる、つまり、電圧値がAと-Aとに交互に切り替わる方形波状の交流電圧信号の電圧値を表す。交流電圧信号生成部84は、生成した交流電圧信号V2を表す電圧値を第2電圧加算部85と逆起電圧推定部82とに出力する。この周期Tは短く、例えば、100分の1秒に設定されている周波数で表せば100Hz。第2電圧加算部85は、第1電圧加算部83から出力された値V0V1と、交流電圧信号生成部84から出力された交流電圧信号V2を表す電圧値とを加算した値V0V1V2を計算する。この加算結果が、最終的な目標電圧、つまり、電圧指令値Vとなる。第2電圧加算部85は、計算した電圧指令値Vを制御切替部61に出力する。従って、電圧指令値Vは、基本電圧V0に、補正電圧V1と交流電圧V2=±Aとを重畳したものとなる。これにより、電流センサ異常検出部91から出力される異常判定信号Ffailが1である場合には、異常時モータ制御量演算部80にて計算された電圧指令値Vに応じたデューティ比のパルス信号列がPWM制御信号としてモータ駆動回路40に出力される。このPWM制御信号により、各スイッチング素子Q1H,Q2H,Q1L,Q2Lのデューティ比が制御され、モータ20の駆動電圧が電圧指令値Vに調整される。基本電圧V0は、操舵トルクtrから決まる基本的な操舵アシスト量を決める電圧、つまり、基本電圧指令値となる。この基本電圧V0だけでは、モータ20の回転速度が増加したときに逆起電圧の影響で操舵アシストが不足してしまい追従性が低下する。基本電圧V0に、逆起電圧を加算することで適切な電圧指令値を求めることができるが、そのためには、逆起電圧を計算する必要がある。そこで、本実施形態においては、電圧指令値Vに交流電圧信号V2成分を含ませることにより逆起電圧を推定できるように構成している。従って、交流電圧信号V2は、逆起電圧を計算するために重畳する電圧信号である。そして、逆起電圧推定部82は、この交流電圧信号V2に応答した電流検出値の変化するタイミングと検出値とに基づいて逆起電圧を推定し、この逆起電圧に相当する補正電圧V1を計算する。尚、交流電圧信号V2が電圧指令値Vに加算されている場合、トルク変動が操舵フィーリングに及ぼす影響が懸念されるが、交流電圧信号V2の周期Tが非常に短く設定されているため、ステアリング機構10の慣性により操舵ハンドル11で発生する振動は、運転者が感じない程度に抑制されている。以下、逆起電圧推定部82が逆起電圧を推定する方法について説明する。モータの電圧方程式は、モータの内部抵抗をR、モータのインダクタンスをL、逆起電圧をEとすると次式1にて表される。この式からモータに流れる電流Iは、t=0での電流をI0として、次式2にて求めることができる指数関数はt=0での接線で近似する。ここで、図7の上段に示すような方形波の交流電圧V2A,-Aを重畳した電圧V0V1V2をモータに印加した場合、モータに流れる電流の波形は同図の中段に示すような三角波状となる。ここで、VUは、交流電圧信号V2がAの値をとるときの電圧指令値Vに相当しVU=V0V1A、VLは、交流電圧信号V2が-Aの値をとるときの電圧指令値Vに相当VL=V0V1-Aする。こうした三角波状の電流を分解能の低い第2電流センサ32にて検出した場合には、同図の下段に示すように、検出値は粗くなって矩形となる。この例では、モータの印加電圧がVUとなる期間において、モータ実電流は、I2より小さな値からI1より大きな値にまで増加し、モータの印加電圧がVLとなる期間において、モータ実電流がI1より大きな値からI2より小さな値にまで減少する。この1I,I2は、第2電流センサ32の検出値が変化する境界となる。この例では、モータ実電流が、第2電流センサ32の検出値が変化する2つの境界を跨ぐように交流電圧信号V2の電圧値Aが設定されている。従って、第2電流センサ32は、モータ実電流がI2未満のときにI3、モータ実電流がI2以上でI1未満のときにI2、モータ実電流がI1以上のときにI1という検出値を出力する。ここで、モータ実電流が増加しているときに検出値がI2となる期間をT1とし、モータ実電流が減少しているときに検出値がI2となる期間をT2とすると、電圧、電流、時間の関係は次式3にて表される。期間T1は、正の交流電圧が含まれた電圧指令値Vの電圧が印加されてから最初に第2モータ電流Im2の検出値が変化した時刻t11から、負の交流電圧が含まれた電圧指令値Vに切り替わる直前の第2モータ電流Im2の検出値が変化した時刻t12までの時間である。また、期間T2は、負の交流電圧が含まれた電圧指令値Vの電圧が印加されてから最初に第2モータ電流Im2の検出値が変化した時刻t21から、正の交流電圧が含まれた電圧指令値Vに切り替わる直前の第2モータ電流Im2の検出値が変化した時刻t22までの時間である。また、ΔIは、期間T1T2において、第2モータ電流Im2の検出値が変化した量を表す。また、I12は、I1とI2との平均値I1I2/2である。この3式を変形して逆起電圧を推定すると、推定逆起電圧Eestは、次式4にて計算することができる。逆起電圧推定部82が計算する補正電圧V1は、この推定逆起電圧Eestに相当する値となることが望ましい。そこで、逆起電圧推定部82は、推定逆起電圧Eestと補正電圧V1との差分に着目して、差分が少なくなるように、補正電圧V1を更新するように計算する。ここで逆起電圧推定部82の処理について説明する。図8は、逆起電圧推定部82の実行する補正電圧演算ルーチンを表すフローチャートである。補正電圧演算ルーチンは、短い周期で繰り返し実行される。本ルーチンが起動すると、逆起電圧推定部82は、ステップS11において、交流電圧信号V2を読み込み、続く、ステップS12において、第2電流センサ32により検出される第2モータ実電流Im2を読み込む。続いて、逆起電圧推定部82は、ステップS13において、交流電圧信号V2に基づいて、交流電圧信号V2の一周期分Tにおける第2モータ電流Im2を読み込んだか否かを判断する。逆起電圧推定部82は、交流電圧信号V2の一周期のあいだ、こうした処理を繰り返す。逆起電圧推定部82の演算周期は、交流電圧信号V2の周期Tよりも遙かに短い。従って、この間に、第2モータ電流Im2の検出値がサンプリングされていく。逆起電圧推定部82は、交流電圧信号V2の一周期T分の第2モータ電流Im2の読み込みが完了すると、続いて、ステップS14において、図7に示す期間T1,T2を計算する。続いて、逆起電圧推定部82は、ステップS15において、上記式4を使って推定逆起電圧Eestを計算する。続いて、ステップS16において、補正電圧V1と推定逆起電圧Eestとを比較する。補正電圧V1が推定逆起電圧Eestと等しければ、補正電圧V1が適正であるとして、補正電圧V1を変更しない。また、補正電圧V1が推定逆起電圧Eestよりも小さい場合には、ステップS17において、補正電圧V1を所定値ΔV1だけ増加させる。逆に、補正電圧V1が推定逆起電圧Eestよりも大きい場合には、ステップS18において、補正電圧V1を所定値ΔV1だけ減少させる。逆起電圧推定部82は、こうして補正電圧V1を計算すると、本ルーチンを一旦終了する。そして、所定の周期で本ルーチンを繰り返す。尚、補正電圧V1の初期値は、ゼロに設定しておけばよい。これにより、補正電圧V1は、交流電圧信号V2の一周期毎に、推定逆起電圧Eestに追従するように計算されていく。従って、補正電圧V1が加算された電圧指令値Vは、モータ20で発生する逆起電圧を考慮した適切な値に調整される。この場合、所定値ΔV1は、一定値でもよいし、推定逆起電圧Eestと補正電圧V1との差分Eest-V1に比例した値K×Eest-V1に設定してもよい。また、この例では、モータ実電流が、第2電流センサ32の検出値が変化する2つの境界を跨ぐように交流電圧信号V2が設定されているが、交流電圧信号V2は、モータ実電流が、第2電流センサ32の検出値が変化する境界を2つ以上跨ぐように設定すればよい。例えば、第2電流センサ32の検出値が3つ以上境界を跨いだ場合には、交流電圧信号V2が正または負となる一定期間のあいだに最初に検出値が変化した時刻から最後に検出値が変化した時刻までの時間をT1またはT2に設定すればよい。モータ実電流が、第2電流センサ32の検出値が変化する境界を2つ以上跨ぐように設定するためには、交流電圧信号V2は、電圧Aと周期Tとが、次の条件を満たすように設定されるとよい。尚、ΔIは、交流電圧信号V2に応答した一周期Tにおける実電流の変化量を表す。AT>4LΔI周期Tは、操舵ハンドル11への振動伝達を抑制するためには短い方が好ましいため、電圧Aは、大きい方がよいが、大電流を流す場合や高回転時などでモータ印加電圧が不足する場合には、電圧Aを小さくして周期Tを長くするとよい。以上説明した本実施形態の電動パワーステアリング装置によれば、第1電流センサ31が故障した場合には、正常時モータ制御量演算部70に代えて異常時モータ制御量演算部80が、第2電流センサ32により検出される第2モータ実電流Im2を使って、モータ制御量である電圧指令値Vを計算する。第2電流センサ32に第1電流センサ31と同じ性能を持たせると、シャント抵抗でのエネルギー損失が2倍になり、また、A/D変換器などの回路構成が複雑になりコストが2倍になってしまう。そこで、本実施形態においては、バックアップ用の第2電流センサ32には、第1電流センサ31に比べて分解能が低いものを使用して、エネルギー損失とコストアップを抑制する。この場合、第2電流センサ32をそのまま使って電流フィードバックを行うと、分解能の低さにより、操舵アシストトルクの変動が大きくなって操舵ハンドル11が振動して滑らかな操舵操作ができない。そこで、異常時モータ制御量演算部80は、電流フィードバック制御に代えて、フィードフォワード制御により操舵トルクtrに応じた基本電圧V0を計算する。さらに、モータ20で発生する逆起電圧を推定し、この逆起電圧に相当する補正電圧V1を基本電圧V0に加算して、この値V0V1をモータ20に印加すべき目標電圧に設定する。また、逆起電圧を推定するために、正負符号が周期的に切り替わる方形波状の交流電圧信号V2を目標電圧V0V1に加算した値V0V1V2を、最終的な電圧指令値Vに設定する。これにより、逆起電圧分を補償した電圧をモータ20に印加することができる。従って、分解能の低い第2電流センサ32を用いてモータ20を駆動制御しても、分解能の低さに起因する操舵ハンドル11の振動を抑制しつつ、追従性の良い操舵アシストトルクを発生させることができる。ここで、逆起電圧を考慮せずにオープンループ制御フィードフォワード制御を行った場合での、操舵アシストの追従性の低下について説明する。特許文献1に提案されている従来装置では、電流センサの故障時においてオープンループ制御を行っている。従って、目標電流Irefが与えられたとき、それに対する出力電圧Vは、以下の式5により計算される。しかし、実際には、逆起電圧が含まれた次式6のような微分方程式にしたがって電流Iが流れる従って、目標電流Irefと実電流Iとの比は、次式7のように計算される。尚、電流の変化は無視できる程度であるため、dI/dt=0としている。この式によれば、モータ20の回転速度ωがゼロω=0であれば、目標電流Irefと実電流Iとは同一値となるが、回転速度ωが上昇すると実電流Iが減少し、逆起電圧ωφが出力電圧Vを超えるとモータ20を制動するブレーキが発生することがわかる。このオープンループ制御による特性を図9に示す。図9は、回転速度ωと実電流Iとの関係を表している。実電流Iは、次式8のように表される。ここで、Imaxは、モータ駆動回路40で流すことが許容される最大の電流値を表し、スイッチング素子Q1H,Q2L,Q2H,Q1Lの仕様にて決定される。Imaxは、例えば、50アンペアに設定される。この一次関数の傾きをΔとすると、Δは次式9にて表される。尚、Vmaxは、電流最大値Imaxにモータ20の内部抵抗Rを乗じた値Imax×Rを表す。Vmaxは、例えば、モータ20の内部抵抗Rを0.1オームとすると、5ボルト50A×01Ωに設定される。尚、逆起電圧はモータ20の回転速度から推定できるが、ブラシ付モータは、通常、回転角センサや回転速度センサを備えていない。従って、従来装置は、電流センサ故障時においては、逆起電圧を考慮せずにオープンループ制御を行うようにしている。これに対して本実施形態では、交流電圧信号V2を含めた電圧指令値Vを設定し、低分解能の第2モータ電流センサ32により、交流電圧信号V2に応答した電流検出値の変化するタイミング時間差を検出する。そして、このタイミングと検出値とに基づいて逆起電圧を推定している。従って、回転角センサや回転速度センサを備えていなくても、逆起電圧を推定することができ、この逆起電力を補償する電圧指令値Vを設定することができる。この結果、速い操舵操作に対しても十分な操舵アシストが得られる。つまり、操舵アシストの追従性が良好となる。<第2実施形態>次に第2実施形態について説明する。以下、上述した実施形態を第1実施形態と呼ぶ。第2実施形態は、第1電流センサ31に異常が発生した場合におけるマイコン60の制御処理が第1実施形態と異なり、他の構成については第1実施形態と同じである。以下、第1実施形態と相違する構成について説明し、第1実施形態と同じ構成については、図面に第1実施形態と同じ符号を付して説明を省略する。図10は、第2実施形態にかかるアシストECU100の機能ブロック図である。このアシストECU100のマイコン60は、その機能に着目すると、正常時モータ制御量演算部70と、異常時モータ制御量演算部90と、PWM制御部62と、センサ切替部63と、電流センサ異常検出部91とを備えている。各機能部における処理は、マイコン60に記憶された制御プログラムを所定の周期で繰り返し実行することにより行われる。正常時モータ制御量演算部70は、第1実施形態と同様に、第1電流センサ31に異常が検出されていないとき、つまり、電流センサ異常検出部91から出力される異常判定信号Ffailが0であるとき、モータ20の制御量を演算するブロックである。正常時モータ制御量演算部70は、第1実施形態と同じ構成であり、目標トルク演算部71と、目標電流演算部72と、電流フィードバック制御部73とを備えている。センサ切替部63は、電流センサ異常検出部91から出力される異常判定信号Ffailにしたがって電流フィードバック制御部73に出力するモータ実電流を切り替えるもので、異常判定信号Ffailが0である場合には、第1電流センサ31により検出された第1モータ実電流Im1をそのまま電流フィードバック制御部73に出力する。また、異常判定信号Ffailが1である場合には、後述する平均電流演算部87で計算した平均モータ電流Imcを電流フィードバック制御部73に出力する。従って、第1電流センサ31が正常である場合には、電流フィードバック制御部73は、第1実施形態と同じ方法で電圧指令値Vを計算し、計算した電圧指令値VをPWM制御部62に出力する。電流センサ異常検出部91は、第1実施形態と同様であって、第1電流センサ31により検出される第1モータ実電流Im1と、正常時モータ制御量演算部70で計算される目標電流Iとを入力し、第1モータ実電流Im1と目標電流Iとが所定期間にわたって大きく相違する場合に第1電流センサ31が故障していると判定する。電流センサ異常検出部91は、第1電流センサ31の異常を検出していない場合には、異常判定信号Ffailを0に設定し、第1電流センサ31の異常を検出した場合には、異常判定信号Ffailを1に設定する。電流センサ異常検出部91は、異常判定信号Ffailを正常時モータ制御量演算部70と異常時モータ制御量演算部90とセンサ切替部63とに出力する。異常時モータ制御量演算部90は、第1電流センサ31に異常が検出されているとき、つまり、電流センサ異常検出部91から出力される異常判定信号Ffailが1であるとき、モータ20の制御量を演算するブロックである。異常時モータ制御量演算部90は、正常時モータ制御量演算部70目標トルク演算部71,目標電流演算部72,電流フィードバック制御部73に加えて、電圧加算部86と、交流電圧信号生成部84と、平均電流演算部87とを設けて構成される。従って、正常時モータ制御量演算部70は、異常判定信号Ffailが0,1何れであってもその処理が実行され、電圧加算部86,交流電圧信号生成部84,平均電流演算部87については、異常判定信号Ffailが1の場合にのみ、その処理が実行されることになる。ただし、異常時モータ制御量演算部90における電流フィードバック制御部73は、フィードバックされる電流が、第1モータ実電流Im1ではなく、平均電流演算部87で計算された平均モータ電流Imcとなっている。交流電圧信号生成部84は、第1実施形態と同様に、予め設定した周期Tで電圧値がAと-Aとに交互に切り替わる方形波状の交流電圧信号V2を生成する。交流電圧信号生成部84は、生成した交流電圧信号V2を表す電圧値を電圧加算部86に出力する。この周期Tは短く、例えば、100分の1秒に設定されている周波数で表せば100Hz。電圧加算部86は、電流フィードバック制御部73から出力された電圧指令値Vと、交流電圧信号生成部84から出力された交流電圧信号V2を入力し、電圧指令値Vに交流電圧信号V2の電圧値Aまたは-Aを加算した値VV2を計算する。電圧加算部86は、この計算結果VV2を、最終的な電圧指令値Vに設定してV←VV2、この電圧指令値VをPWM制御部62に出力する。以下、異常時モータ制御量演算部90において電流フィードバック制御部73が演算した電圧指令値Vを、最終的な電圧指令値Vと区別するために基本電圧指令値V0と呼ぶ。これにより、正常時モータ制御量演算部70の演算する電圧指令値V0が交流電圧信号V2で加算補正されて電圧指令値Vが算出されることになる。この交流電圧信号V2は、モータ20に流れる電流を三角波状に高速で変化させて、後述する平均電流演算部87が平均モータ電流Imcを計算できるようにするためのものである。第1電流センサ31が故障した場合、第1電流センサ31に代えて第2電流センサ32の検出値をそのまま使って電流フィードバック制御を行うと、分解能の低さにより、操舵アシストトルクの変動が大きくなって操舵ハンドル11が振動して滑らかな操舵操作ができない。そこで、第2実施形態においては、第2電流センサ32の検出値をそのまま電流フィードバック制御部73にフィードバックするのではなく、平均電流演算部87において、第2電流センサ32の検出値よりも実際の電流値に近い電流値となる平均モータ電流Imcを計算し、この平均モータ電流Imcを電流フィードバック制御部73にフィードバックする。以下、平均電流演算部87が実行する平均モータ電流Imcの計算方法について説明する。図11の上段に示すような方形波の交流電圧V2A、-Aを重畳した電圧V0V2をモータに印加した場合、モータに流れる電流の波形は同図の中段に示すような三角波状となる。ここでVUは、交流電圧信号V2がAの値をとるときの電圧指令値Vに相当しVU=V0A、VLは、交流電圧信号V2が-Aの値をとるときの電圧指令値Vに相当VL=V0-Aする。こうした三角波状の電流を分解能の低い第2電流センサ32にて検出した場合には、同図の下段に示すように、検出値は粗くなって矩形となる。この例では、モータの印加電圧がVUとなる期間において、モータ実電流は、I2より小さな値からI1より大きな値にまで増加し、モータの印加電圧がVLとなる期間において、モータ実電流がI1より大きな値からI2より小さな値にまで減少する。この1I,I2は、第2電流センサ32の検出値が変化する境界となる。この例では、モータ実電流が、第2電流センサ32の検出値が変化する2つの境界を跨ぐように交流電圧信号V2の電圧値Aが設定されている。従って、第2電流センサ32は、モータ実電流がI2未満のときにI3、モータ実電流がI2以上でI1未満のときにI2、モータ実電流がI1以上のときにI1という検出値を出力する。ここで、印加電圧電圧指令値Vにおいて、交流電圧信号V2が負の値-Aから正の値Aに切り替わるタイミングを時刻t3とする。また、交流電圧信号V2が正の値に切り替わってから最初に第2電流センサ32の検出値が変化するタイミング、つまり、この例では、検出値がI3からI2に変化したタイミングを時刻t34とする。また、交流電圧信号V2が正の値Aから負の値-Aに切り替わるタイミングを時刻t5とする。また、交流電圧信号V2が負の値に切り替わるまでの間において検出値が最後に変化するタイミング、つまり、この例では、検出値がI2からI3に変化したタイミングを時刻t45とする。また、時刻t3から時刻t34までの経過時間、つまり、交流電圧信号が正の値に切り替わってから検出値が最初に変化するまでの期間をT3とする。また、時刻t34から時刻t45までの経過時間、つまり、交流電圧信号が正の値を維持する期間において、検出値が最初に変化するタイミングから最後に変化するタイミングまでの経過時間をT4とする。また、時刻t45から時刻t5までの経過時間、つまり検出値が最後に変化するタイミングから交流電圧信号V2が負の値に切り替わるタイミングまでの経過時間をT5とする。また、交流電圧信号V2が負の値に切り替わるまでの間において、最初に変化したときの検出値と最後に変化したときの検出値との差、つまり、期間T4において第2モータ電流Im2の検出値が変化した量をΔI=I1-I2とする。平均モータ電流Imcは、交流電圧信号V2の半周期におけるモータ20に流れる電流を推定した値であり、第2電流センサ32の検出値が変化するタイミングt34,t45と交流電圧信号の正負が反転するタイミングt3,t5とに基づいた時間差T3,T4,T5と、そのときの変化した後の検出値I1,I2とから計算により求めることができる。検出値I1と検出値I2との平均値I1I2/2をI12とすると、時刻t3における電流値It3と、時刻t5における電流値It5とは次式10、11のように計算することができる。ここで、αは、電流の変化勾配ΔI/T4を表している。従って、平均モータ電流Imcは、次式12にて計算することができる。平均電流演算部87は、このようにして平均モータ電流Imcを計算して、その計算結果を電流フィードバック制御部73に出力する。以下、平均電流演算部87の処理について図12を用いて説明する。図12は、平均電流演算部87の実行する平均モータ電流演算ルーチンを表すフローチャートである。平均モータ電流演算ルーチンは、短い周期で繰り返し実行される。本ルーチンが起動すると、平均電流演算部87は、まず、ステップS21において、交流電圧信号V2を読み込み、続く、ステップS22において、第2電流センサ32により検出される第2モータ電流Im2を読み込む。続いて、平均電流演算部87は、ステップS23において、交流電圧信号V2に基づいて、交流電圧信号V2の半周期分交流電圧信号V2の符号が切り替わるまでの期間における第2モータ実電流Im2の検出値を読み込んだか否かを判断する。平均電流演算部87は、一定期間T/2のあいだ、こうした処理を繰り返す。平均電流演算部87の演算周期は、交流電圧信号V2の周期Tよりも遙かに短い。従って、この間に、第2モータ電流Im2の検出値がサンプリングされていく。平均電流演算部87は、交流電圧信号V2の半周期分T/2の第2モータ電流Im2の読み込みが完了すると、ステップS24において、第2電流センサ32の検出値が変化したタイミングと、交流電圧信号V2が切り替わるタイミングとに基づいて、期間T3,T4,T5を計算する。続いて、ステップS25において、式12を使って、平均モータ電流Imcを計算して、この計算結果を電流フィードバック制御部73に出力して本ルーチンを一旦終了する。平均電流演算部87は、平均モータ電流演算ルーチンを繰り返し実行する。従って、交流電圧信号V2の半周期毎に平均モータ電流Imcが計算され、この平均モータ電流Imcが電流フィードバック制御部73に出力されて電流フィードバック制御が行われる。この例では、モータ実電流が、第2電流センサ32の検出値が変化する2つの境界を跨ぐように交流電圧信号V2が設定されているが、交流電圧信号V2は、モータ実電流が、第2電流センサ32の検出値が変化する境界を2つ以上跨ぐように設定すればよい。例えば、第2電流センサ32の検出値が3つ以上境界を跨いだ場合には、交流電圧信号V2が負から正あるいは正から負に切り替わってから最初に検出値が変化した時刻をt34とし、交流電圧信号V2が次に切り替わるまでのあいだに最後に検出値が変化した時刻をt45として、期間T3,T4,T5を設定するようにしてもよい。また、必ずしも半周期における最初と最後に変化した検出値を使う必要はなく、任意の2つの検出値が変化するタイミングを抽出して、そのタイミングと交流電圧信号V2が切り替わる時刻とに基づいて期間T3,T4,T5を設定するようにしてもよい。また、この例では、交流電圧信号V2の半周期毎に平均モータ電流Imcを計算しているが、半周期に限らず1周期毎に計算するようにしてもよい。以上説明した第2実施形態の電動パワーステアリング装置によれば、第1電流センサ31が故障した場合には、正常時モータ制御量演算部70に代えて異常時モータ制御量演算部90が、第2電流センサ32により検出される第2モータ実電流Im2を使って、モータ制御量である電圧指令値Vを計算する。第2電流センサ32に第1電流センサ31と同じ性能を持たせると、シャント抵抗でのエネルギー損失が2倍になり、また、A/D変換器などの回路構成が複雑になりコストが2倍になってしまう。そこで、第2実施形態においては、第2電流センサ32には、第1電流センサ31に比べて分解能が低いものを使用して、エネルギー損失とコストアップを抑制する。この場合、第2電流センサ32をそのまま使って電流フィードバックを行うと、分解能の低さにより、操舵アシストトルクの変動が大きくなって操舵ハンドル11が振動して滑らかな操舵操作ができない。そこで、異常時モータ制御量演算部90は、電流指令値V0に交流電圧信号V2を重畳した電圧指令値Vによりモータ20を駆動制御し、モータ20に流れる電流を三角波状に変化させる。そして、この三角波状に変化する電流により第2電流センサ32の検出値が変化するタイミングと、交流電圧信号V2の符号が変化するタイミングとを検出し、これらのタイミングと第2電流センサ32の検出値とに基づいて、三角波状の電流の平均値である平均モータ電流Imcを計算する。平均モータ電流Imcは、第2電流センサ32が低分解能であっても、その検出値の中間的な値を扱うことができ、実電流に近い値となる。従って、平均モータ電流Imcを電流フィードバック制御部73にフィードバックすることにより、精度の高い電流フィードバック制御を行うことができる。また、電流フィードバック制御を行うため、結果的に、モータに発生する逆起電力が考慮された電圧指令値Vを演算することができる。これにより、分解能の低い第2電流センサ32を用いてモータ20を駆動制御しても、分解能の低さに起因する操舵ハンドル11の振動を抑制しつつ、追従性の良い操舵アシストトルクを発生させることができる。次に、上述した2つの実施形態における変形例について説明する。<第1変形例>上記実施形態においては、第2電流センサ32は、第2シャント抵抗器32aと第2増幅回路32bと第2A/D変換器32cとを主要部として備えた構成となっている。しかし、例えば、第1電流センサ31の第1シャント抵抗器31aと第1増幅回路31bとが信頼性の高いものである場合には、第2電流センサ32は、図13に示すように、第1シャント抵抗器31aと第1増幅回路31bとを第1電流センサ31とで兼用し、第2A/D変換器32cのみをバックアップ用として備えた構成であってもよい。また、例えば、第1電流センサ31の第1シャント抵抗器31aが信頼性の高いものである場合には、第2電流センサ32は、図14に示すように、第1シャント抵抗器31aを第1電流センサ31とで兼用し、第2増幅回路32bと第2A/D変換器32cとをバックアップ用として備えた構成であってもよい。<第2変形例>上記実施形態においては、第1電流センサ31と第2電流センサ32は、グランドライン220に設けているが、第1電流センサ31と第2電流センサ32を設ける位置は、これに限るものでなく、モータ電流が流れる通電路であれば任意に設定することができる。例えば、電源装置200からモータ駆動回路40への電源供給ラインである電源ライン210に設けても良い。また、モータ駆動回路40からモータ20への電源供給ラインである通電ライン47aあるいは通電ライン47bに設けても良い。また、モータ駆動回路40内に設けても良い。また、第1電流センサ31と第2電流センサ32とを並べて設ける必要はなく、モータ電流が流れる通電路であれば、互いに離れた位置に設けてもよい。<変形例3>一般に、増幅回路やA/D変換器は、線形な特性で設計することが多いが、特に、低分解能となる第2電流センサ32においては、非線形な特性で設計するようにしてもよい。第2電流センサ32を用いてモータ20を駆動制御すると、その分解能の低さに起因して、操舵ハンドル11が振動しやすい。この振動は、弱い操舵操作を行ったときに感じやすく、強い操舵操作を行ったときには感じにくい。また、強い操舵操作が行われる頻度は、弱い操舵操作が行われる頻度に比べて少ない。そこで、第2電流センサ32においては、図15に破線にて示すように、モータ電流が微少となる微少電流領域で1LSB最小検出幅を狭くし、最大電流付近で1LSBが広くなるような非線形特性の第2増幅回路32bあるいは第2A/D変換器32cを使用する。これによれば、第1電流センサ31の故障時での操舵アシスト制御第1実施形態、第2実施形態において、微小な操舵操作時におけるハンドル振動を抑制して、操舵フィーリングを更に向上させることができる。尚、この場合、モータ電流Im2またはImcが小さいほど交流電圧信号V2の振幅Aを小さくする、または、モータ電流Im2またはImcが小さいほど交流電圧信号V2の周期Tを短くするようにするとよい。また、非線形特性の第2増幅回路32bや第2A/D変換器32cを使用した場合でも、上述した実施形態における計算式は変更する必要はない。<変形例4>第1電流センサ31のバックアップ用として使用する第2電流センサ32は、低分解能であるため低コストにて実施することができるが、そのぶん、目標特性線形でも非線形でもよいに対するバラツキが第1電流センサ31よりも大きくなる可能性がある。そこで、第4変形例においては、第1電流センサ31に異常が検出されていないときに、第2電流センサ32の検出した検出値と、第1電流センサ31の検出した検出値との対応関係を学習しておき、第1電流センサ31に異常が検出されて第2電流センサ32を使用する場合に、学習した対応関係を使って第2電流センサ32の検出特性を補正する検出特性補正手段をマイコン60に設ける。マイコン60は、図16に示すように、対応関係情報記憶部65と、第2モータ電流検出値補正部66とを備えている。対応関係情報記憶部65は、電流センサ異常検出部91から出力される異常判定信号Ffailが0であるとき、第1電流センサ31により検出される第1モータ実電流Im1と第2電流センサ32により検出される第2モータ実電流Im2とを入力し、第2モータ実電流Im2の検出値が変化した瞬間に第2A/D変換器32cの出力値が変化した瞬間に、それと同時に、第1モータ実電流Im1の検出値第1A/D変換器31cの出力値を読み取る。そして、対応関係情報記憶部65は、第2電流センサ32の検出値と第1電流センサ31の検出値との対応関係を表す情報を不揮発性メモリ65aに記憶する。例えば、第2電流センサ32のA/D変換器32cの分解能が4ビットであれば、出力値の変化する点は15個所あるため、その15個所のそれぞれにおける第2電流センサ32の検出値第2A/D変換器32cの出力値と第1電流センサ31の検出値第1A/D変換器31cの出力値との対応関係を学習し、その対応関係を表す情報を不揮発性メモリ65aに記憶する。これにより、第2電流センサ32の検出値から第1電流センサ31の出力値に相当する値を導く対応関係テーブル対応関係情報が生成される。この対応関係テーブルは、不揮発性メモリ65aに記憶される。尚、運転者の操舵操作によっては、上記検出値の対応関係の学習を完了できない場合が考えられる。例えば、強い操舵操作が行われていない場合ではモータ20に最大電流が流れないため、最大電流付近の対応関係を学習できない。そうした状況においては、予め設定されているデフォルト値設計値を使用すればよい。第2モータ電流検出値補正部66は、電流センサ異常検出部91から出力される異常判定信号Ffailが1であるとき、第2電流センサ32により検出される電流検出値Im2第2モータ実電流Im2を読み込み、対応関係情報記憶部65に記憶されている対応関係テーブルを参照して、この電流検出値Im2に対応する第1電流センサ31の出力値に相当する電圧値を求め、この電圧値を新たな第2モータ実電流Im2として出力する。つまり、第2電流センサ32により検出された第2モータ実電流Im2を、対応関係テーブルを使って補正する。これにより、第2電流センサ32の検出特性が目標特性と相違している場合であっても、検出値が補正されて適正な検出特性が得られる。補正された第2モータ実電流Im2は、第1実施形態においては逆起電圧推定部82に出力され、第2実施形態においては平均電流演算部87に出力される。従って、第1実施形態においては、逆起電圧の推定値が一層正確となる。また、第2実施形態においては、平均モータ電流Imcの計算値が一層正確となる。これらの結果、第1電流センサ31の故障時における操舵フィーリングを一層良好にすることができる。以上、本実施形態および変形例の電動パワーステアリング装置について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の目的を逸脱しない限りにおいて種々の変更が可能である。例えば、本実施形態においては、交流電圧信号V1として、一定の振幅で符号正負が周期的に切り替わる方形波状の交流電圧を採用しているが、符号が同じで振幅のみが周期的に切り替わる方形波状の交流電圧を採用することもできる。この場合には、交流電圧信号V1の加算により電圧指令値Vが全体的にシフトするため、その分、電圧指令値Vをオフセットするようにすればよい。また、モータ20に流れる電流が三角波状になるような電圧指令値Vであれば、その波形形状は任意に設定できるものである。また、第1実施形態においては、操舵トルクtrのみから基本電圧V0を計算しているが、車速vxが大きくなるほど基本電圧V0が減少するように車速に応じて変化させるようにしてもよい。また、第1モータ電流センサ31に異常が検出されている場合でも、目標トルク演算部71、目標電流演算部72を作動させて、目標トルク演算部72により計算した目標電流Iに比例した基本電圧V0を設定するようにしてもよい。また、第1実施形態においては、基本電圧V0に逆起電圧に相当する補正電圧V1を加算した後に、交流電圧V2を加算するように構成しているが、加算する順番を逆にすることもできる。つまり、基本電圧V0に交流電圧V2を加算した後に、逆起電圧に相当する補正電圧V1を加算する構成であってもよい。また、本実施形態では、モータ20の発生するトルクをステアリングシャフト12に付与するコラムアシスト式の電動パワーステアリング装置について説明したが、モータの発生するトルクをラックバー14に付与するラックアシスト式の電動パワーステアリング装置であってもよい。"