"直列接続された複数の蓄電池にそれぞれ設けられ、各々が対応する蓄電池を流れる電流を検出する複数の電流センサの異常を検出する異常検出装置であって、所定期間における各前記複数の電流センサの検出値が電流軸上で変化した軌跡の長さを示す軌跡長を算出する第1の算出手段と、前記所定期間における各前記複数の電流センサの検出値の平均値を算出する第2の算出手段と、前記第1および第2の算出手段の算出結果に基づいて、前記複数の電流センサの異常の有無および異常内容を診断する異常診断手段とを備える、電流センサの異常検出装置。前記異常診断手段は、前記複数の電流センサ間において前記軌跡長の比が判定値を超えるときには、前記複数の電流センサ間でゲインにずれが生じる異常と判定する、請求項1に記載の電流センサの異常検出装置。前記異常診断手段は、前記複数の電流センサ間において前記平均値の偏差が判定値を超えるときには、前記複数の電流センサ間でオフセットが生じる異常と判定する、請求項1に記載の電流センサの異常検出装置。前記ゲインにずれが生じる異常と判定された場合には、軌跡長が最大となる電流センサの検出値に基づいて前記複数の蓄電池の充放電電流を制御するように構成された制御手段をさらに備える、請求項2に記載の電流センサの異常検出装置。前記ゲインにずれが生じる異常と判定された場合には、前記複数の電流センサのうちの一の電流センサの検出値を前記軌跡長の比を用いて補正した値に基づいて前記複数の蓄電池の充放電電流を制御するように構成された制御手段をさらに備える、請求項2に記載の電流センサの異常検出装置。前記オフセットが生じる異常と判定された場合には、放電時の検出値が最大となる電流センサの検出値に基づいて前記複数の蓄電池の放電電流を制御し、かつ、充電時の検出値が最大となる電流センサの検出値に基づいて前記複数の蓄電池の充電電流を制御するように構成された制御手段をさらに備える、請求項3に記載の電流センサの異常検出装置。前記オフセットが生じる異常と判定された場合には、前記複数の電流センサのうちの一の電流センサの検出値を前記平均値の偏差を用いて補正した値に基づいて前記複数の蓄電池の充放電電流を制御するように構成された制御手段をさらに備える、請求項3に記載の電流センサの異常検出装置。直列接続された複数の蓄電池にそれぞれ設けられ、各々が対応する蓄電池を流れる電流を検出する複数の電流センサの異常を検出する異常検出方法であって、所定期間における各前記複数の電流センサの検出値が電流軸上で変化した軌跡の長さを示す軌跡長を算出するステップと、前記所定期間における各前記複数の電流センサの検出値の平均値を算出するステップと、前記軌跡長を算出するステップおよび前記平均値を算出するステップの算出結果に基づいて、前記複数の電流センサの異常の有無および異常内容を診断するステップとを備える、電流センサの異常検出方法。しかしながら、上記の特許文献1に記載の異常検出装置は、電流センサの異常の有無を診断するに止まり、その異常内容までも診断することができない。そのため、異常発生時に蓄電池の安全を保証するためのフェールセーフ処理を適切に行なうことが困難となっていた。その結果、蓄電池の過充電や過放電を引き起こす虞があった。それゆえ、この発明はかかる課題を解決するためになされたものであり、その目的は、蓄電池に流れる電流を検出する電流センサの異常検出装置および異常検出方法において、電流センサの異常の有無および異常内容を診断可能とすることにより、異常発生時のフェールセーフ性を向上することである。この発明のある局面では、直列接続された複数の蓄電池にそれぞれ設けられ、各々が対応する蓄電池を流れる電流を検出する複数の電流センサの異常を検出する異常検出装置であって、所定期間における各複数の電流センサの検出値が電流軸上で変化した軌跡の長さを示す軌跡長を算出する第1の算出手段と、所定期間における各複数の電流センサの検出値の平均値を算出する第2の算出手段と、第1および第2の算出手段の算出結果に基づいて、複数の電流センサの異常の有無および異常内容を診断する異常診断手段とを備える。好ましくは、異常診断手段は、複数の電流センサ間において軌跡長の比が判定値を超えるときには、複数の電流センサ間でゲインにずれが生じる異常と判定する。好ましくは、異常診断手段は、複数の電流センサ間において平均値の偏差が判定値を超えるときには、複数の電流センサ間でオフセットが生じる異常と判定する。好ましくは、電流センサの異常検出装置は、ゲインにずれが生じる異常と判定された場合には、軌跡長が最大となる電流センサの検出値に基づいて複数の蓄電池の充放電電流を制御するように構成された制御手段をさらに備える。好ましくは、電流センサの異常検出装置は、ゲインにずれが生じる異常と判定された場合には、複数の電流センサのうちの一の電流センサの検出値を軌跡長の比を用いて補正した値に基づいて複数の蓄電池の充放電電流を制御するように構成された制御手段をさらに備える。好ましくは、電流センサの異常検出装置は、オフセットが生じる異常と判定された場合には、放電時の検出値が最大となる電流センサの検出値に基づいて複数の蓄電池の放電電流を制御し、かつ、充電時の検出値が最大となる電流センサの検出値に基づいて複数の蓄電池の充電電流を制御するように構成された制御手段をさらに備える。好ましくは、電流センサの異常検出装置は、オフセットが生じる異常と判定された場合には、複数の電流センサのうちの一の電流センサの検出値を平均値の偏差を用いて補正した値に基づいて複数の蓄電池の充放電電流を制御するように構成された制御手段をさらに備える。この発明の別の局面では、直列接続された複数の蓄電池にそれぞれ設けられ、各々が対応する蓄電池を流れる電流を検出する複数の電流センサの異常を検出する異常検出方法であって、所定期間における各複数の電流センサの検出値が電流軸上で変化した軌跡の長さを示す軌跡長を算出するステップと、所定期間における各複数の電流センサの検出値の平均値を算出するステップと、軌跡長を算出するステップおよび平均値を算出するステップの算出結果に基づいて、複数の電流センサの異常の有無および異常内容を診断するステップとを備える。この発明によれば、蓄電池に流れる電流を検出する電流センサの異常検出装置および異常検出方法において、電流センサの異常の有無および異常内容を診断可能とすることにより、異常発生時のフェールセーフ性を向上できる。以下、本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明が繰返さない。電動機制御の全体構成図1は、本発明の実施の形態に従う電流センサの異常検出装置が適用されるモータ駆動制御システム100を搭載した車両10の全体ブロック図である。図1を参照して、車両10は、モータ駆動制御システム100と、交流電動機200と、駆動輪210とを備える。モータ駆動制御システム100は、直流電圧発生部105と、コンデンサC1と、インバータ140と、制御装置以下、ECUElectronicControlUnitとも称する300とを含む。交流電動機200は、たとえば、ハイブリッド自動車、電気自動車や燃料電池車等の電気エネルギによって車両駆動力を発生する車両において、駆動輪210を駆動するためのトルクを発生する駆動用電動機である。あるいは、この交流電動機200は、エンジン図示せずによって駆動される発電機の機能を持つように構成されてもよく、または電動機および発電機の機能を併せ持つように構成されてもよい。さらに、交流電動機200は、エンジンに対して電動機として動作し、たとえば、エンジン始動を行ない得るようなものとしてハイブリッド自動車に組み込まれるようにしてもよい。すなわち、本実施の形態において、交流電動機は、交流駆動の電動機、発電機および電動発電機モータジェネレータを含むものである。直流電圧発生部105は、蓄電装置Bと、システムリレーSR1,SR2と、コンデンサC2と、コンバータ120と、電圧センサ170と、電流センサ160とを含む。蓄電装置Bは、再放電可能な電力貯蔵要素であり、代表的には、ニッケル水素電池またはリチウムイオン電池等の二次電池が適用される。あるいは、電気二重層キャパシタ等の他の電力貯蔵要素によって、蓄電装置Bを構成してもよい。蓄電装置Bは、図2に示すように、二次電池が出力する直流電圧VBを検出するための電圧センサおよび、二次電池に流れる電流IBを検出するための電流センサをさらに含んでいる。これらの検出値は、ECU300へ出力される。システムリレーSR1は、蓄電装置Bの正極端子と電力線PL1との間に接続される。システムリレーSR2は、蓄電装置Bの負極端子と接地線NL1との間に接続される。システムリレーSR1,SR2は、ECU300からの制御信号SE1により制御され、蓄電装置Bとコンバータ120との間での電力の供給と遮断とを切換える。図2には、蓄電装置B図1のさらに詳細な構成が示される。図2を参照して、蓄電装置Bは、直列接続された複数の電池ブロックB1,B2と、電池ブロックB1,B2にそれぞれ対応付けられた複数の電圧センサ121,122と、システムリレーSR3,SR4とを含む。本実施の形態における蓄電装置Bは、一例として、直列接続された第1電池ブロックB1および第2電池ブロックB2から構成される。第1電池ブロックB1は、直列接続された複数の電池セルCLと、複数の電池セルCLに流れる電流Ib1を検出する第1電流センサ111とを含む。第1電圧センサ121は、第1電池ブロックB1の電圧値端子間電圧Vb1を検出する。第2電池ブロックB2は、直列接続された複数の電池セルCLと、複数の電池セルCLに流れる電流Ib2を検出する第2電流センサ112とを含む。第2電圧センサ122は、第2電池ブロックB2の電圧値Vb2を検出する。蓄電装置Bの電流IBは、第1電流センサ111の検出値Ib1および第2電流センサ112の検出値Ib2を包括的に示すものである。蓄電装置Bの電圧VBは、第1電圧センサ121の検出値Vb1および第2電圧センサ122の検出値Vb2を包括的に示すものである。上述のように、蓄電装置Bとして代表的には二次電池が用いられるため、蓄電装置Bの電流IBおよび電圧VBについて、以下では、電池電流IBおよび電池電圧VBとも称する。また、電池電流IBおよび電池電圧VBを包括的に電池データとも総称する。なお、この電池データには、蓄電装置Bに設けられた温度センサ図示せずにより検出された蓄電装置Bの温度以下、電池温度とも称するTBをさらに含めることができる。蓄電装置Bの電池データは、ECU300へ出力される。再び図1を参照して、コンバータ120は、リアクトルL1と、スイッチング素子Q1,Q2と、ダイオードD1,D2とを含む。スイッチング素子Q1,Q2は、電力線PL2と接地線NL1との間に直列に接続される。スイッチング素子Q1,Q2は、ECU300からのスイッチング制御信号PWCによって制御される。本実施の形態においては、スイッチング素子として、IGBTInsulatedGateBipolarTransistor、電力用MOSMetalOxideSemiconductorトランジスタあるいは、電力用バイポーラトランジスタ等を用いることができる。スイッチング素子Q1,Q2に対しては、逆並列ダイオードD1,D2が配置される。リアクトルL1は、スイッチング素子Q1,Q2の接続ノードと電力線PL1との間に接続される。コンデンサC2は、電力線PL1および接地線NL1の間に接続され、電力線PL1と接地線NL1との間の電圧変動を低減する。電圧センサ170は、コンデンサC2の両端の電圧VLを検出し、その検出値をECU300へ出力する。コンバータ120は、基本的には、各スイッチング周期内でスイッチング素子Q1,Q2が相補的かつ交互にオンオフするように制御される。コンバータ120は、昇圧動作時には、蓄電装置Bから供給された直流電圧VLを直流電圧VHインバータ140への入力電圧に相当するこの直流電圧を、以下システム電圧とも称するに昇圧する。この昇圧動作は、スイッチング素子Q2のオン期間にリアクトルL1に蓄積された電磁エネルギを、スイッチング素子Q1および逆並列ダイオードD1を介して、電力線PL2へ供給することにより行なわれる。また、コンバータ120は、降圧動作時には、直流電圧VHを直流電圧VLに降圧する。この降圧動作は、スイッチング素子Q1のオン期間にリアクトルL1に蓄積された電磁エネルギを、スイッチング素子Q2および逆並列ダイオードD2を介して、接地線NL1へ供給することにより行なわれる。これらの昇圧動作および降圧動作における電圧変換比VHおよびVLの比は、上記スイッチング周期におけるスイッチング素子Q1,Q2のオン期間比デューティ比により制御される。なお、スイッチング素子Q1をオンに、スイッチング素子Q2をオフにそれぞれ固定すれば、VH=VL電圧変換比=1.0とすることもできる。コンデンサC1は、コンバータ120からの直流電圧を平滑化し、その平滑化した直流電圧をインバータ140へ供給する。電圧センサ130は、コンデンサC1の両端の電圧、すなわち、システム電圧VHを検出し、その検出値をECU300へ出力する。インバータ140は、電力線PL2と接地線NL1との間に並列に設けられる、U相上下アーム141と、V相上下アーム142と、W相上下アーム143とを含んで構成される。各相上下アームは、電力線PL2と接地線NL1との間に直列接続されたスイッチング素子を含む。たとえば、U相上下アーム141はスイッチング素子Q3,Q4を含み、V相上下アーム142はスイッチング素子Q5,Q6を含み、W相上下アーム143はスイッチング素子Q7,Q8を含む。また、スイッチング素子Q3~Q8に対して、逆並列ダイオードD3~D8がそれぞれ接続される。スイッチング素子Q3~Q8は、ECU300からの制御信号PWIによって制御される。交流電動機200は、代表的には3相の永久磁石型同期電動機であり、U,V,W相における3つのコイルの一方端が中性点に共通に接続される。さらに、各相コイルの他方端は、各相上下アーム141~143におけるスイッチング素子の接続ノードに接続される。インバータ140は、交流電動機200のトルク指令値が正Trqcom>0の場合には、ECU300からの制御信号PWIに応答したスイッチング素子Q3~Q8のスイッチング動作により、コンデンサC1から供給される直流電圧を交流電圧に変換して正のトルクを出力するように交流電動機200を駆動する。また、インバータ140は、交流電動機200のトルク指令値が零の場合Trqcom=0には、制御信号PWIに応答したスイッチング動作により、直流電圧を交流電圧に変換してトルクが零になるように交流電動機200を駆動する。これにより、交流電動機200は、トルク指令値Trqcomによって指定された零または正のトルクを発生するように駆動される。さらに、モータ駆動制御システム100が搭載された車両の回生制動時には、交流電動機200のトルク指令値Trqcomは負に設定されるTrqcom<0。この場合には、インバータ140は、制御信号PWIに応答したスイッチング動作により、交流電動機200が発電した交流電圧を直流電圧に変換し、その変換した直流電圧システム電圧VHを、コンデンサC1を介してコンバータ120へ供給する。なお、ここで言う回生制動とは、車両を運転するドライバによるフットブレーキ操作があった場合の回生発電を伴う制動や、フットブレーキを操作しないものの、走行中にアクセルペダルをオフすることで回生発電をさせながら車両を減速または加速の中止させることを含む。電流センサ240は、交流電動機200に流れるモータ電流MCRTを検出し、その検出したモータ電流をECU300へ出力する。なお、三相電流iu,iv,iwの瞬時値の和は零であるので、図1に示すように電流センサ240は2相分のモータ電流たとえば、V相電流ivおよびW相電流iwを検出するように配置すれば足りる。回転角センサレゾルバ250は、交流電動機200の回転角θを検出し、その検出した回転角θをECU300へ出力する。ECU300では、回転角θに基づき交流電動機200の回転速度MRTおよび角速度ωrad/sを算出できる。なお、回転角センサ250については、ECU300にてモータ電圧や電流から回転角θを直接演算することによって、配置を省略してもよい。ECU300は、電子制御ユニット制御装置により構成され、予め記憶されたプログラムを図示しないCPUで実行することによるソフトウェア処理、および/または、専用の電子回路によるハードウェア処理によって、モータ駆動制御システム100の動作を制御する。代表的な機能として、ECU300は、入力されたトルク指令値Trqcom、蓄電装置Bからの電池データ電池電流IB、電池電圧VB、電圧センサ170によって検出された直流電圧VL、電圧センサ130によって検出されたシステム電圧VHおよび電流センサ240からのモータ電流iv,iw、回転角センサ250からの回転角θ等に基づいて、トルク指令値Trqcomに従ったトルクを交流電動機200が出力するように、コンバータ120およびインバータ140の動作を制御する。すなわち、ECU300は、コンバータ120およびインバータ140を制御するための制御信号PWC,PWIを生成して、コンバータ120およびインバータ140へ出力する。コンバータ120の昇圧動作時には、ECU300は、システム電圧VHをフィードバック制御し、システム電圧VHが電圧指令値に一致するように制御信号PWCを生成する。また、ECU300は、車両が回生制動モードに入ったことを示す回生信号RGEを外部制御装置から受けると、交流電動機200で発電された交流電圧を直流電圧に変換するように制御信号PWIを生成してインバータ140へ出力する。これにより、インバータ140は、交流電動機200で発電された交流電圧を直流電圧に変換してコンバータ120へ供給する。そして、ECU300は、インバータ140から供給された直流電圧を降圧するように制御信号PWCを生成し、コンバータ120へ出力する。これにより、交流電動機200が発電した交流電圧は、直流電圧に変換かつ降圧されて蓄電装置Bに供給される。図3は、本実施の形態による蓄電装置Bの充放電制御を説明する機能ブロック図である。なお、図3のブロック図に示された各機能ブロックについては、予め設定されたプログラムに従ってECU300がソフトウェア処理を実行することにより実現することができる。あるいは、ECU300の内部に、当該機能ブロックに相当する機能を有する回路ハードウェアを構成することも可能である。図3を参照して、ECU300は、充放電制御部310と、走行制御部320と、異常診断部330とを含む。充放電制御部310は、蓄電装置Bからの電池データ電池電圧VBおよび電池電流IBに基づいて、蓄電装置Bの充電状態SOC:StateofChargeを推定する。SOCは、満充電容量に対する現在の残容量を百分率0~100で示したものである。ここで、充放電制御部310には、図2で示したように、電池電流IBとして、電池ブロックB1,B2に対応付けて設けられた電流センサ111,112から検出値Ib1,Ib2が入力される。図2に示したように、電池ブロックB1,B2は直列接続されているため、電流センサ111,112が正常であれば、検出値Ib1およびIb2は必然的に等しい値となる。本実施の形態では、充放電制御部310は、電池電流IBのデフォルト値を、第1電流センサ111からの検出値Ib1に設定する。すなわち、電流センサ111,112が正常である場合には、第1電流センサ111の検出値Ib1に基づいて、蓄電装置Bで充放電される電力が制御される。充放電制御部310は、電池データ電池電流IBIb1、電池電圧VBVb1,Vb2および電池温度TBに基づいて、蓄電装置B全体のSOCを算出する。詳細には、電池ブロックごとの検出値に基づいて当該電池ブロックのSOCを算出するとともに、算出した電池ブロックごとのSOCに基づいて蓄電装置B全体のSOCを算出する。たとえば、充放電制御部310は、電池ブロックごとのSOCを、電池電流IBの積算値に基づいて算出する。あるいは、開回路電圧OCV:OpenCircuitVoltageとSOCとの間の相関関係および電池電圧VBに基づいて、電池ブロックごとのSOCを一定周期ごとに算出してもよい。各電池ブロックのSOCから蓄電装置BのSOCを算出する方法は特に限定されず、たとえば蓄電装置BのSOCは、各電池ブロックのSOCの平均値であってもよい。さらに充放電制御部310は、蓄電装置BのSOCに少なくとも基づいて、許容充電電力Winおよび許容放電電力Woutを設定する。SOCが低下すると、許容放電電力Woutは徐々に低く設定される。反対に、SOCが高くなると、許容充電電力Winは徐々に低下するように設定される。なお、二次電池を始めとする蓄電装置Bは、特に低温時に内部抵抗が上昇する温度依存性を有する。また、高温時には、さらなる発熱によって温度が過上昇する虞がある。このため、低温時および高温時には、充放電電力を制限することが好ましい。よって、許容充電電力Winおよび許容放電電力Woutの設定に、SOCおよび電池温度TBを反映するようにしてもよい。走行制御部320は、車両10の車両状態およびドライバ操作に応じて、車両10全体で必要な車両駆動力や車両制動力を算出する。ドライバ操作には、アクセルペダル図示せずの踏込み量、シフトレバー図示せずのポジション、ブレーキペダル図示せずの踏込み量等が含まれる。そして、要求された車両駆動力あるいは車両制動力を実現するように、交流電動機200への出力要求を決定する。交流電動機200への出力要求は、蓄電装置Bの充放電可能な電力範囲内Win~Woutで蓄電装置Bの充放電が実行されるように制限した上で設定される。すなわち、蓄電装置Bの出力電力が確保できないときには、交流電動機200による出力が制限される。さらに、走行制御部320は、設定された交流電動機200への出力要求に応じて、交流電動機200のトルクや回転速度を演算する。そして、トルクや回転速度についての制御指令トルク指令値Trqcomを含むに応じて、交流電動機200を駆動するための制御信号PWIを生成する。この制御信号PWIはインバータ140へ出力される。走行制御部320は、交流電動機200への出力要求に応じてシステム電圧VHの電圧指令値を生成すると、電圧指令値に従ってシステム電圧VHが制御されるように、制御信号PWCを生成すると。この制御信号PWCに従ったコンバータ120の電圧変換によって、蓄電装置Bの充放電電力が制御されることになる。このようにして、車両状態およびドライバ操作に応じて、車両10の走行制御が実現される。異常診断部330は、蓄電装置Bに設けられた電流センサ111,112の異常の有無および異常内容を診断する。具体的には、異常診断部330は、電流センサ111,112からの検出値Ib1,Ib2に基づいて、電流センサ111,112における異常の有無および異常内容を診断する。ここで、上述したように、電流センサ111,112は、直列接続された電池ブロックB1,B2にそれぞれ対応付けて設けられるため、電流センサ111,112がともに正常であれば、検出値Ib1と検出値Ib2とは必然的に等しい値となる。異常診断部330は、電流センサ111,112から入力される検出値Ib1,Ib2を常時モニタしており、これらの検出値Ib1,Ib2の間に所定の許容量を超えるずれが検出された場合には、少なくとも一方の電流センサが故障したことに基づく電流センサの異常と判定する。異常診断部330による異常診断は、予め設定された時間間隔ごとに実行される。具体的には、異常診断部330は、一定時間間隔で電流センサ111,112の検出値Ib1,Ib2をモニタすると、このモニタ間隔での検出値Ib1,Ib2を積算する。そして、検出値Ib1,Ib2の積算結果に基づいて、電流センサ111,112の異常を診断する。電流センサ111,112の異常と判定されると、異常診断部330は、異常検出フラグをオンする。充放電制御部310は、異常検出フラグがオンされた場合、すなわち、電流センサ111,112に異常が生じた場合には、蓄電装置Bの安全を保証するフェールセーフ処理を実行する。これにより、誤った検出値に基づいて蓄電装置Bの充放電制御が実行されることによって蓄電装置Bの過充電や過放電が発生するのを防止する。図4は、本発明の実施の形態によるモータ駆動制御システムにおける蓄電装置の充放電制御を実現するための制御処理手順を示したフローチャートである。図4を参照して、ECU300は、ステップS10により、蓄電装置Bから電池データVB,IBを取得する。ECU300は、ステップS20により、ステップS10で取得した電池データに含まれる電流センサ111,112の検出値Ib1,Ib2に基づいて、電流センサ111,112の異常を診断する。ステップS20の処理は、図3の異常診断部330の機能に相当する。電流センサ111,112の異常と判定されると、異常検出フラグがオンされる。なお、上述したように、異常診断部330による異常診断は、予め設定されたモニタ間隔で行なわれる。したがって、異常診断は図4のフローチャートの実行周期ごとに実行されなくてもよい。すなわち、ステップS20は、過去に異常診断により設定された異常検出フラグをメモリ領域から読出すことによって実行されてもよい。ECU300は、ステップS30では、異常検出フラグを参照することにより、電流センサ111,112の異常と判定されたか否かを判定する。電流センサ111,112の異常と判定されなかった場合ステップS30においてNOには、ECU300は、ステップS50により、ステップS10で取得した電池データに基づいて、蓄電装置Bの充放電制御を実行する。このとき、上述したように、電池電流IBは第1電流センサ111の検出値Ib1デフォルト値となる。したがって、ECU300は、電池電流IB=Ib1および電池電圧VBに基づいて、蓄電装置BのSOCを算出する。そして、算出されたSOCに少なくとも基づいて、蓄電装置Bの許容充電電力Winおよび許容放電電力Woutを設定する。そして、ECU300は、蓄電装置Bの充放電可能な電力範囲内Win~Woutで蓄電装置Bの充放電が実行されるように制限した上で、交流電動機200への出力要求を決定する。すなわち、ステップS50の処理は、図3の充放電制御部310および走行制御部320の機能に相当する。これに対して、電流センサ111,112の異常と判定された場合ステップS30においてYESには、ECU30は、ステップS40により、フェールセーフ処理を実行する。なお、ステップS40のフェールセーフ処理は、ステップS20で診断された電流センサ111,112の異常内容によって、その処理手順が異なるように設定されている。以上に説明したように、本実施の形態による電流センサの異常検出装置では、電流センサ111,112の異常の有無に加えて、異常内容が診断される。さらに、診断された異常内容に応じたフェールセーフ処理が実行される。ここで、電流センサ111,112に発生する異常としては、電流センサ111,112間で、実電流値に対するセンサ出力の大きさを表わすゲインにずれが生じる異常以下、ゲイン異常とも称するが想定される。または、電流センサ111,112間で検出値にオフセットが生じる異常以下、オフセット異常とも称するが想定される。以下では、電流センサの異常として想定されるゲイン異常およびオフセット異常のそれぞれについて、その詳細および診断手法を説明する。さらに、これらの異常に応じたフェールセーフ処理について説明する。[1]電流センサのゲイン異常最初に、電流センサのゲイン異常の診断手法およびゲイン異常に応じたフェールセーフ処理について、図5から図7を用いて説明する。図5は、電流センサ111,112の検出値の時間的な変化を示す図である。なお、以下の説明では、電池電流IBの方向を、蓄電装置Bが電力線PL1に電力を供給する放電方向を正方向とし、電力線PL1が蓄電装置Bに電力を供給する充電方向を負方向とする。すなわち、交流電動機200により駆動力を発生する力行動作時には、電池電流IBは正方向に流れ、交流電動機200による回生動作時には、電池電流IBは負方向に流れる。図5を参照して、第1電流センサ111の検出値Ib1と第2電流センサ112の検出値Ib2とを比較すると、極性が同じとなる一方で、絶対値は検出値Ib1よりも検出値Ib2の方が大きくなっている。すなわち、第1電流センサ111と第2電流センサ112との間でゲインにずれが生じている。異常診断部330は、一定時間間隔モニタ間隔Tmにおける各電流センサ111,112の検出値の軌跡長を算出し、その算出結果を比較する。なお、電流センサの検出値の軌跡長とは、電流センサの検出値が電流軸上で動いた軌跡の長さを示す。図6は、軌跡長を説明するための図である。図6を参照して、第1電流センサ111の検出値Ib1およびその軌跡長Ib1intと、第2電流センサ112の検出値Ib2およびその軌跡長Ib2intとが示される。時刻t0~t6までのモニタ間隔Tmにおいて検出値Ib1の差が演算される。たとえば、時刻t1における検出値Ib1と時刻t0における検出値Ib1との差がΔIb11である。そして次の時刻の電流の差の絶対値が次々と積算されて軌跡長Ib1intが求められる。このようにして、電流センサ111,112ごとに検出値の軌跡長Ib1int,Ib2intが求められる。そして、モニタ間隔Tmごとに、軌跡長Ib1intと軌跡長Ib2intとが比較される。図7は、軌跡長の変化と異常判定との関係を説明するための図である。図7において、横軸には第1電流センサ111の検出値Ib1の軌跡長Ib1intが示され、縦軸には第2電流センサ112の検出値Ib2の軌跡長Ib2intが示される。電流センサ111,112がともに正常であれば、図7の平面上において2つの軌跡長の組をプロットした点は、Ib1int=Ib2int傾き1で示される直線理想値付近に位置する。しかし、電流センサ111または112に異常が発生した場合には、この直線から大きく離れた点にプロットされることとなる。図7では、傾き1の直線理想値に対して傾きが許容誤差範囲内となる領域を、電流センサ111,112が正常であることを示す正常領域に設定する。したがって、2つの軌跡長の組が正常領域内にプロットされる場合には、電流センサ111,112が正常と判定される。そして、図7において、この正常領域よりも傾きがさらに小さくなる領域RE1と、正常領域よりも傾きがさらに大きくなる領域RE2とを、電流センサ111または112に異常が生じたことを示す異常領域に設定する。なお、領域RE1よりも軌跡長Ib1intが0に近くなる領域、および領域RE2よりも軌跡長Ib2intが0に近くなる領域については、2つの軌跡長の間に有意な差がないとして、ゲイン異常の判定を行なわない不感帯とする。異常診断部330は、モニタ間隔Tmごとに、軌跡長Ib1int,Ib2intを求めると、これら2つの軌跡長の組が図7のいずれの領域にプロットされるかを判定する。このとき、2つの軌跡長の組が領域RE1およびRE2のいずれかにプロットされれば、異常診断部330は、電流センサ111,112のゲイン異常と判定する。そして、異常診断部330は、電流センサ111,112のゲイン異常が検出されたことを示す異常検出フラグ以下、ゲイン異常検出フラグともいうをオンする。充放電制御部310は、電流センサ111,112のゲイン異常と判定されたときのフェールセーフ処理として、電流センサ111,112のうち、検出値の軌跡長が大きい方の電流センサの検出値に基づいて蓄電装置Bの充放電電流を制御する。たとえば、検出値Ib1,Ib2が図5に示すような時間的変化をする場合には、検出値の軌跡長が相対的に大きくなる第2電流センサ112の検出値Ib2に基づいて充放電電流が制御されることとなる。以下では、第2電流センサ112の検出値Ib2を用いて充放電電流を制御する場合を例として説明する。具体的には、充放電制御部310は、電池電流IBを、デフォルト値である第1電流センサ111の検出値Ib1から第2電流センサ112の検出値Ib2に変更する。そして、充放電制御部310は、変更後の電池電流IB=Ib2および電池電圧VBに基づいて、蓄電装置BのSOCを算出すると、算出されたSOCに少なくとも基づいて、蓄電装置Bの許容充電電力Winおよび許容放電電力Woutを設定する。走行制御部320は、蓄電装置Bの充放電可能な電力範囲内Win~Woutで蓄電装置Bの充放電が実行されるように、蓄電装置Bの充放電を制御する。具体的には、蓄電装置Bの充電時には、許容充電電力Winを超えないように充電電力がフィードバック制御される。また、蓄電装置Bの放電時には、許容放電電力Woutを超えないように放電電力がフィードバック制御される。この結果、蓄電装置Bの電池電流IBは、許容充電電力Winおよび許容放電電力Woutに対応する電流値で制限される。このような構成とすることにより、図5に示すように、ゲイン異常と判定された時刻t1以降においてフェールセーフ処理が開始されると、第2電流センサ112の検出値Ib2は、許容充電電力Winおよび許容放電電力Woutに対応する電流値で制限される。これにより、電流センサのゲイン異常が生じた場合であっても、蓄電装置Bの過充電や過放電を防止することができる。変更例なお、本実施の形態によるモータ駆動制御システム100においては、第1電流センサ111を、蓄電装置Bの電池電流IBを検出するためのメインの電流センサとして使用するとともに、第2電流センサを、第1電流センサ111の検出値Ib1の確度を監視するためのサブの電流センサとして使用することも可能である。すなわち、第1電流センサ111を、蓄電装置Bの充放電制御に用いる電池電流IBを検出する制御用電流センサとする一方で、第2電流センサ112を、第1電流センサ111の検出値Ib1との比較に用いる検出値Ib2を検出する比較用電流センサとする。このような構成とした場合には、メインの電流センサ第1電流センサ111のサンプリング周期よりも、サブの電流センサ第2電流センサ112のサンプリング周期を長くすることにより、制御に支障を生じることなく、電流センサ全体の処理負荷を軽減することができる。しかしながら、電流センサのゲイン異常と判定された場合に、上記のように、メインの電流センサ第1電流センサ111に代えて、サブの電流センサ第2電流センサ112を制御用電流センサとして用いると、電流センサのサンプリング周期が長くなることに起因して制御応答性が低下することにより、制御が不安定になってしまう虞がある。このような場合には、フェールセーフ処理として、サブの電流センサ第2電流センサ112の検出値Ib2を充放電制御に用いるのではなく、メインの電流センサ第1電流センサ111の検出値Ib1を補正した値Ib1’を、充放電制御に用いることとする。このとき、検出値Ib1の補正は、次式1により実行する。Ib1’i=Ib1i×Ib2int/Ib1int1式1において、Ib2int/Ib1intは、検出値Ib1を補正するための係数であり、上記のゲイン異常判定で求めた軌跡長Ib1intと軌跡長Ib2intとの比に対応する。このような構成とすることにより、ゲイン異常と判定された後においても、制御応答性を低下させずに、蓄電装置Bの充放電制御が実行可能となるため、蓄電装置Bの過充電や過放電を確実に防止することができる。[2]電流センサのオフセット異常次に、最初に、電流センサのオフセット異常の診断手法およびオフセット異常に応じたフェールセーフ処理について、図8および図9を用いて説明する。図8は、電流センサ111,112の検出値の時間的な変化を示す図である。図8を参照して、第1電流センサ111の検出値Ib1と第2電流センサ112の検出値Ib2とを比較すると、検出値Ib2よりも検出値Ib1の方が大きくなっている。すなわち、第1電流センサ111と第2電流センサ112との間でオフセットが生じている。異常診断部330は、一定時間間隔モニタ間隔Tmにおける各電流センサ111,112の検出値の平均値を算出し、その算出結果を比較する。図9は、平均値を説明するための図である。図9を参照して、第1電流センサ111の検出値Ib1の平均値Ib1aveと、第2電流センサ112の検出値Ib2の平均値Ib2aveとが示される。異常診断部330は、モニタ間隔Tmごとに、検出値の平均値Ib1aveと平均値Ib2aveとを比較する。平均値Ib1aveと平均値Ib2aveとの偏差ΔIbが判定値を超える場合には、異常診断部330は、電流センサ111,112のオフセット異常と判定する。そして、異常診断部330は、電流センサ111,112のオフセット異常が検出されたことを示す異常検出フラグ以下、オフセット異常検出フラグともいうをオンする。充放電制御部310は、電流センサ111,112のオフセット異常と判定されたときのフェールセーフ処理として、放電時の検出値が大きくなる方の電流センサの検出値に基づいて蓄電装置Bの放電電流を制御し、かつ、充電時の検出値が大きくなる方の電流センサの検出値に基づいて蓄電装置Bの充電電流を制御する。たとえば、検出値Ib1,Ib2が図8に示すような時間的変化をする場合には、充電時の検出値が相対的に大きくなる第2電流センサ112の検出値Ib2に基づいて充電電流が制御される一方で、放電時の検出値が相対的に大きくなる第1電流センサ111の検出値Ib1に基づいて放電電流が制御されることとなる。具体的には、充放電制御部310は、蓄電装置Bの充電時交流電動機200の回生動作時には、電池電流IBを、デフォルト値である第1電流センサ111の検出値Ib1から第2電流センサ112の検出値Ib2に変更する。そして、充放電制御部310は、変更後の電池電流IB=Ib2および電池電圧VBに基づいて、蓄電装置BのSOCを算出すると、算出されたSOCに少なくとも基づいて、蓄電装置Bの充電許容電力Winを設定する。また、充放電制御部310は、蓄電装置Bの放電時交流電動機200の力行動作時には、電池電流IBを、デフォルト値である第1電流センサ111の検出値Ib1とする。そして、充放電制御部310は、電池電流IB=Ib1および電池電圧VBに基づいて、蓄電装置BのSOCを算出すると、算出されたSOCに少なくとも基づいて、蓄電装置Bの許容放電電力Woutを設定する。走行制御部320は、蓄電装置Bの充放電可能な電力範囲内Win~Woutで蓄電装置Bの充放電が実行されるように、蓄電装置Bの充放電を制御する。この結果、蓄電装置Bの電池電流IBは、許容充電電力Winおよび許容放電電力Woutに対応する電流値で制限される。このような構成とすることにより、図8に示すように、オフセット異常と判定された時刻t2以降においてフェールセーフ処理が開始されると、第2電流センサ112の検出値Ib2は、許容充電電力Winに対応する電流値で制限される。また、第1電流センサ111の検出値Ib1は、許容放電電力Woutに対応する電流値で制限される。これにより、電流センサのオフセット異常が生じた場合であっても、蓄電装置Bの過充電や過放電を防止することができる。変更例なお、上記のように、第1電流センサ111を制御用電流センサとする一方で、第2電流センサ112を比較用電流センサとする構成とした場合には、電流センサのオフセット異常と判定されたときに、比較用電流センサの検出値Ib2を充放電制御に用いると、制御が不安定になる虞がある。このような場合には、フェールセーフ処理として、第2電流センサ112の検出値Ib2を充放電制御に用いるのに代えて、第1電流センサ111の検出値Ib1を補正した値Ib1’を充放電制御に用いる。検出値Ib1の補正は、次式2により実行する。Ib1’=Ib1Ib2ave-Ib1ave2このような構成とすることにより、オフセット異常と判定された後においても、制御応答性を低下させずに、蓄電装置Bの充放電制御が実行可能となるため、蓄電装置Bの過充電や過放電を確実に防止することができる。処理フロー以上に説明した電流センサの異常診断処理およびフェールセーフ処理は、次のような処理フローにまとめることができる。電流センサの異常診断処理図10は、図4のステップS20の処理をさらに詳細に説明するフローチャートである。なお、図10のフローチャートの処理は、所定のメインルーチンから一定時間ごとまたは所定の条件が成立するごとに呼出されて実行される。図10を参照して、異常診断部330は、ステップS21では、システムリレーSR1~SR4がオンされているか否かを判定する。すなわち、異常診断部330は、蓄電装置Bを構成する第1電池ブロックB1および第2電池ブロックB2がモータ駆動制御システム100に接続されているか否かを判定する。システムリレーSR1~SR4がオンされていない場合ステップS21においてNOには、制御はメインルーチンに戻される。一方、システムリレーSR1~SR4がオンされている場合ステップS21においてYESには、異常診断部330は、ステップS22により、第1電池ブロックB1について、異常診断のためのパラメータを積算する。具体的には、異常診断部330は、第1電流センサ111の検出値Ib1の軌跡長Ib1intを積算する。軌跡長Ib1intは、図6で説明したとおり、検出値Ib1が電流軸上で変化した軌跡の長さを示す値である。具体的には、軌跡長Ib1intは、次式3によって算出される。Ib1inti=Ib1inti-1|Ib1i-Ib1i-1|3また、異常診断部330は、第1電流センサ111の検出値Ib1の平均値Ib1aveを積算する。平均値Ib1aveは、図9で説明したとおり、モニタ間隔Tmにおける検出値Ib1の平均値である。具体的には、平均値Ib1aveは、次式4によって算出される。Ib1avei=Ib1avei―1Ib1/Tm4続いてステップS23において、第2電池ブロックB2について、異常診断のためのパラメータを積算する。具体的には、異常診断部330は、第2電流センサ112の検出値Ib2の軌跡長Ib2intを積算する。軌跡長Ib2intは、次式5によって算出される。Ib2inti=Ib2inti-1|Ib2i-Ib2i-1|5また、異常診断部330は、第2電流センサ112の検出値Ib2の平均値Ib2aveを積算する。平均値Ib2aveは、次式6によって算出される。Ib2avei=Ib2avei―1Ib2/Tm6さらにステップS24において、異常診断部330は、モニタ間隔計測カウンタの加算を行なう。モニタ間隔計測カウンタは、ECU300が内蔵しているカウンタであり、異常の有無を判定するタイミングを規定するモニタ間隔Tmを計測するために用いられる。ステップS24において、カウント値に1が加算される。ステップS25では、異常診断部330は、モニタ間隔計測カウンタの加算値がモニタ間隔Tmに達したか否かを判定する。加算値がモニタ間隔Tmに達していない場合ステップS25においてNOには、制御はメインルーチンに戻される。一方、加算値がモニタ間隔Tmに達した場合ステップS25においてYESには、ステップ26に処理が進む。ステップS26において、異常診断部330は、電流センサ111,112におけるゲイン異常の有無を判定する。図11は、図10のステップS26の処理をさらに詳細に説明するフローチャートである。図11を参照して、ステップS311において、異常診断部330は、第1電流センサ111の検出値の軌跡長Ib1intと第2電流センサ112の検出値の軌跡長Ib2intとの比が判定値αよりも大きいか否かを判定する。なお、判定値αは、図7において、正常領域と異常領域RE1との境界、および正常領域と異常領域RE2との境界を示す値である。軌跡長Ib1intと軌跡長Ib2intとの比が判定値αよりも大きい場合ステップS311においてYESには、異常診断部330は、ステップS312により、電流センサのゲイン異常と判定し、ゲイン異常検出フラグをオンする。一方、比が判定値α以下となる場合ステップS311においてNOには、異常診断部330は、ステップS313により、電流センサ111,112のゲインが正常と判定する。再び図10を参照して、異常診断部330は、上記のステップS26に続くステップS27では、電流センサ111,112におけるオフセット異常の有無を判定する。図12は、図10のステップS27の処理をさらに詳細に説明するフローチャートである。図12を参照して、ステップS321において、異常診断部330は、第1電流センサ111の検出値の平均値Ib1aveと第2電流センサ112の検出値の平均値Ib2aveとの偏差ΔIb=|Ib1ave-Ib2ave|が判定値βよりも大きいか否かを判定する。この偏差ΔIbが判定値βよりも大きい場合ステップS321においてYESには、異常診断部330は、ステップS322により、電流センサのオフセット異常と判定し、オフセット異常検出フラグをオンする。一方、偏差が判定値β以下となる場合ステップS322においてNOには、異常診断部330は、ステップS323により、電流センサ111,112のオフセット異常が生じていないオフセットが正常と判定する。図10のステップS26およびS27の処理が終了すると、ステップS28においては、モニタ間隔計測カウンタがクリアされ、カウント値が0に初期化される。ステップS31においては、充放電制御部310は、異常検出フラグを参照することにより、ステップS26の処理において電流センサ111,112のゲイン異常と判定されたか否かを判定する。電流センサ111,112のゲイン異常と判定されなかった場合ステップS31においてNOには、続いてステップS32において、充放電制御部310は、ステップS27の処理において電流センサ111,112のオフセット異常と判定されてか否かを判定する。電流センサ111,112のオフセット異常と判定されなかった場合ステップS32においてNOには、制御はメインルーチンに戻される。これに対して、電流センサ111,112のゲイン異常と判定された場合ステップS31においてYESおよび電流センサ111,112のオフセット異常と判定された場合ステップS32においてYESには、ステップS40に処理が進み、その異常内容に応じたフェールセーフ処理が実行される。フェールセーフ処理図13は、図4および図10のステップS40の処理をさらに詳細に説明するフローチャートである。図13を参照して、ステップS41においては、充放電制御部310は、異常検出フラグを参照することにより、ステップS26の処理において電流センサ111,112のゲイン異常と判定されたか否かを判定する。電流センサ111,112のゲイン異常と判定された場合ステップS41においてYESには、充放電制御部310は、続いてステップS42において、軌跡長Ib1intと軌跡長Ib2intとを比較する。軌跡長Ib1intが軌跡長Ib2intよりも大きい場合ステップS42においてYESには、ステップS43において、充放電制御部310は、電池電流IBとして第1電流センサ111の検出値Ib1に基づいて、蓄電装置Bの充放電電流を制御する。すなわち、検出値Ib1を用いて許容充電電力Winおよび許容放電電力Woutを設定し、検出値Ib1を許容充電電力Winおよび許容放電電力Woutに対応する電流値で制限する。一方、軌跡長Ib2intが軌跡長Ib1intよりも大きい場合ステップS42においてNOには、ステップS44において、充放電制御部310は、電池電流IBとして第2電流センサ112の検出値Ib2に基づいて、蓄電装置Bの充放電電流を制御する。すなわち、検出値Ib2を用いて許容充電電力Winおよび許容放電電力Woutを設定し、検出値Ib2を許容充電電力Winおよび許容放電電力Woutに対応する電流値で制限する。ステップS41において電流センサ111,112のゲイン異常と判定されなかった場合ステップS41においてNOには、充放電制御部310は、続いてステップS45において、電流センサ111,112のオフセット異常と判定されたか否かを判定する。電流センサ111,112のオフセット異常と判定されなかった場合ステップS45においてNOには、制御はメインルーチンに戻される。一方、電流センサ111,112のオフセット異常と判定された場合ステップS45においてYESには、充放電制御部310は、続いてステップS46において、平均値Ib1aveと平均値Ib2aveとを比較する。平均値Ib1aveが平均値Ib2aveよりも大きい場合ステップS46においてYESには、ステップS47において、充放電制御部310は、電池電流IBとして第1電流センサ111の検出値Ib1に基づいて、蓄電装置Bの放電電流を制御する。すなわち、検出値Ib1を用いて許容放電電力Woutを設定し、検出値Ib1を許容放電電力Woutに対応する電流値で制限する。また、充放電制御部310は、電池電流IBとして第2電流センサ112の検出値Ib2に基づいて、蓄電装置Bの充電電流を制御する。すなわち、検出値Ib2を用いて許容充電電力Winを設定し、検出値Ib2を許容充電電力Winに対応する電流値で制限する。一方、平均値Ib2aveが平均値Ib1aveよりも大きい場合ステップS46においてNOには、ステップS48において、充放電制御部310は、電池電流IBとして第2電流センサ112の検出値Ib2に基づいて、蓄電装置Bの放電電流を制御する。すなわち、検出値Ib2を用いて許容放電電力Woutを設定し、検出値Ib2を許容放電電力Woutに対応する電流値で制限する。また、充放電制御部310は、電池電流IBとして第1電流センサ111の検出値Ib1に基づいて、蓄電装置Bの充電電流を制御する。すなわち、検出値Ib1を用いて許容充電電力Winを設定し、検出値Ib1を許容充電電力Winに対応する電流値で制限する。以上説明したように、この発明の実施の形態によれば、電流センサの異常の有無および異常内容を診断することができるため、異常内容に応じたフェールセーフ処理を行なうことができる。これにより、異常発生時のフェールセーフ性を向上できるため、蓄電装置の過充電や過放電を確実に防止することができる。今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。"