"電池の充放電電流の積算および充放電電力の積算のうちのいずれか一方に基づいて、電池の残存容量を算出する残存容量算出手段と、第1の所定条件が成立すると、前記残存容量算出手段によって算出される残存容量を補正するための第1の補正残存容量を算出する第1の補正残存容量算出手段と、前記第1の所定条件より成立頻度が多い第2の所定条件が成立すると、前記第1の補正残存容量算出手段の算出精度より低い算出精度の方法で、前記残存容量算出手段によって算出される残存容量を補正するための第2の補正残存容量を算出する第2の補正残存容量算出手段と、前記第1の所定条件が成立すると、補正量が第1の補正上限量以下の範囲で、前記残存容量算出手段によって算出される残存容量を前記第1の補正残存容量に基づいて補正するとともに、前記第2の所定条件が成立すると、補正量が前記第1の補正上限量より小さい第2の補正上限量以下の範囲で、前記残存容量算出手段によって算出される残存容量を前記第2の補正残存容量に基づいて補正する残存容量補正手段とを備えることを特徴とする電池の残存容量検出装置。請求項1に記載の電池の残存容量検出装置において、前記第1の補正上限量および前記第2の補正上限量を、前記残存容量算出手段が前記残存容量を求める際に生じる誤差の最大値以下となるように補正する補正上限量補正手段をさらに備えることを特徴とする電池の残存容量検出装置。請求項2に記載の電池の残存容量検出装置において、前記充放電電流の積算値および前記充放電電力の積算値のうちのいずれか一方の演算を開始してから経過した時間を測定する計時手段と、前記充放電電流の積算値および前記充放電電力の積算値のうちのいずれか一方を求める際の単位時間あたりの最大誤差と、前記計時手段によって測定される時間とに基づいて、前記残存容量算出手段が前記残存容量を求める際に生じる誤差の最大値を求める最大誤差算出手段とをさらに備え、前記補正上限量補正手段は、前記最大誤差算出手段によって算出される誤差の最大値に基づいて、前記第1の補正上限量および前記第2の補正上限量を補正することを特徴とする電池の残存容量検出装置。請求項1から請求項3のいずれか一項に記載の電池の残存容量検出装置において、前記第2の所定条件より成立頻度が多い第3の所定条件が成立すると、前記第2の補正残存容量算出手段の算出精度より低い算出精度の方法で、前記残存容量算出手段によって算出される残存容量を補正するための第3の補正残存容量を算出する第3の補正残存容量算出手段をさらに備え、前記残存容量補正手段は、さらに、前記第3の所定条件が成立すると、補正量が前記第2の補正上限量より小さい第3の補正上限量以下の範囲で、前記残存容量算出手段によって算出される残存容量を前記第3の補正残存容量に基づいて補正することを特徴とする電池の残存容量検出装置。請求項4に記載の電池の残存容量検出装置において、前記第3の補正残存容量算出手段は、前記電池の電流-電圧特性を示すIV直線を求め、求めたIV直線から得られる前記電池の開放電圧に基づいて、第3の補正残存容量を算出することを特徴とする電池の残存容量検出装置。請求項1から請求項5のいずれか一項に記載の電池の残存容量検出装置において、前記第1の補正残存容量算出手段は、前記電池が無負荷状態とみなせる時の開放電圧に基づいて、前記第1の補正残存容量を算出することを特徴とする電池の残存容量検出装置。請求項6に記載の電池の残存容量検出装置において、前記第1の補正残存容量算出手段は、前記電池の充放電電流の絶対値が所定値未満となってから所定時間経過後の端子間電圧を前記開放電圧として、前記第1の補正残存容量を算出することを特徴とする電池の残存容量検出装置。請求項1から請求項7のいずれか一項に記載の電池の残存容量検出装置において、前記電池の内部抵抗を算出する内部抵抗算出手段と、前記第2の補正残存容量算出手段は、前記内部抵抗算出手段によって算出される内部抵抗と、前記電池の端子間電圧および充放電電流とに基づいて、前記電池の開放電圧を求め、求めた開放電圧に基づいて、前記第2の目標SOCを算出することを特徴とする電池の残存容量検出装置。しかしながら、従来の技術では、電池の電流が定電流状態である時の電池電圧に基づいて、補正用の残存容量を求めているので、電流積算によって求めた残存容量を補正する機会が少ないという問題があった。本発明による電池の残存容量検出装置は、電池の充放電電流の積算および充放電電力の積算のうちのいずれか一方に基づいて算出する電池の残存容量を補正する装置であって、第1の所定条件が成立すると、残存容量を補正するための第1の補正残存容量を算出するととともに、第1の所定条件より成立頻度が多い第2の所定条件が成立すると、第1の補正残存容量の算出精度より低い算出精度の方法で、第2の補正残存容量を算出し、第1の所定条件が成立すると、補正量が第1の補正上限量以下の範囲で、残存容量を第1の補正残存容量に基づいて補正するとともに、第2の所定条件が成立すると、補正量が第1の補正上限量より小さい第2の補正上限量以下の範囲で、残存容量を第2の補正残存容量に基づいて補正することを特徴とする。本発明による電池の残存容量検出装置によれば、第1の補正残存容量だけではなく、第1の補正残存容量の算出頻度より算出頻度の多い第2の補正残存容量にも基づいて、電池の残存容量を補正するので、補正回数を多くすることができる。また、第1の補正残存容量より算出精度の低い第2の補正残存容量に基づいて補正を行う場合には、第1の補正上限量より小さい第2の補正上限量の範囲内で補正を行うので、補正精度を悪化させることもない。図1は、一実施の形態における電池の残存容量検出装置を搭載した電気自動車の駆動システムを示す図である。組電池1は、例えば、リチウムイオン二次電池であり、複数のセルC1~Cnを直列に接続して構成されている。組電池1の直流電圧は、インバータ2において、3相交流電圧に変換されて、電気自動車の走行駆動源である3相交流モータ3に印加される。組電池1と、インバータ2との間を結ぶ強電ハーネス9には、強電リレー8aおよび8bが設けられている。強電リレー8a,8bのオン/オフは、電池制御装置7によって制御される。電圧センサ4は、組電池1の総電圧BATVOLを検出する。電流センサ5は、組電池1の充電電流および放電電流以下、まとめて充放電電流BATCURと記載するを検出する。ここでは、充電電流検出時に負の値が検出され、放電電流検出時に正の値が検出されるものとする。サーミスタ6は、組電池1の温度を検出する。電池制御装置7は、CPU7a、メモリ7b、および、タイマ7cを備えており、電圧センサ4によって検出される電圧BATVOL、電流センサ5によって検出される充放電電流BATCUR、および、サーミスタ6によって検出される電池温度を所定のサンプリング周期で取得する。メモリ7bには、組電池1の開放電圧とSOC残存容量との関係を示すデータ、組電池1の内部抵抗とSOCとの関係を示すデータ、および、組電池1の温度と内部抵抗を補正するための補正係数との関係を示すデータが記憶されている。図2は、組電池1の開放電圧とSOCとの関係の一例を示す図、図3は、組電池1の内部抵抗とSOCとの関係の一例を示す図、図4は、組電池1の内部抵抗と電池温度との関係の一例を示す図である。電池制御装置7は、また、組電池1の充放電時に検出される充放電電流BATCURを積算することによって、組電池1のSOCを常時算出するとともに、算出したSOCを後述する方法によって、補正リセットする処理を行う。電池制御装置7と車内LANで接続されている車両制御装置10は、車両全般の制御を行う。充放電電流BATCURの積算値に基づいてSOCを算出する方法について説明する。組電池1の電流積算容量充放電電流を積算することによって求めた残容量の最新値AHCAPnewAhは、電流積算容量の前回演算値をAHCAPoldAh、電流検出のサンプリング周期をRUNARATEsとすると、次式1により求めることができる。なお、上述したように、充放電電流BATCURは、充電電流検出時の値を負の値とし、放電電流検出時の値を正の値とする。AHCAPnew=AHCAPold-BATCUR×RUNARATE/36001ただし、AHCAPoldの初期値は、組電池1が無負荷状態の時リレー8a,8bがオフの時の開放電圧と、メモリ7bに記憶されている開放電圧-SOCデータとに基づいてSOCを求め、求めたSOCと次式2より算出する。上式1により求められた電流積算容量AHCAPnewから、次式2により、組電池1のSOCを求める。ここでは、電流積算により求めるSOCをAHSOCと表記する。AHSOC=AHCAPnew/AHFULLAh×1002ただし、AHFULLは、組電池1の満充電時の容量Ahである。充放電電流BATCURの積算値に基づいて求めたSOCを補正するための目標SOCを算出する方法について説明する。一実施の形態における電池の残存容量検出装置では、補正用の目標SOCとして、第1の目標SOC、第2の目標SOC、および、第3の目標SOCの3つのSOCを算出する。=第1の目標SOC=第1の目標SOCは、3つの目標SOCの中で算出頻度算出条件の成立頻度が最も少ないが、SOCの算出精度が最も高いSOCであり、組電池1の開放電圧に基づいて求める。ここでは、組電池1の充放電電流BATCURの絶対値が所定電流I1未満となってから所定時間Ta経過後の組電池1の端子間電圧と、メモリ7bに記憶されている開放電圧-SOCデータとに基づいて、SOCを求める。このSOCを第1目標SOCとする。なお、所定電流I1は、組電池が非充放電状態無負荷状態とみなせるくらいの小さな値とする。組電池1の充放電電流BATCURの絶対値が所定値未満となってから所定時間Ta経過後の組電池1の端子間電圧を開放電圧として用いる理由について説明する。図5は、組電池1を構成するセルの内部構成を等価回路で示した図である。セルは、図5に示すように、化学反応によって生じる発電要素21と、内部抵抗要素22とに分類することができ、内部抵抗要素22は、溶液抵抗23、二重層容量24、電荷移動抵抗25、および、ワールブルグインピーダンス26に分類することができる。図6は、組電池1に一定の負荷をかけた後、負荷開放を行った際の端子間電圧の時間変化を示す図である。時刻t1において、放電電流Idで放電を開始すると、組電池1の端子間電圧は低下する。時刻t2において、放電を停止すると、端子間電圧は上昇するが、電池内部の内部抵抗要素22が存在することによって、所定期間Taを経過しなければ、開放電圧E0付近の値まで回復しない。従って、組電池1の充放電電流BATCURの絶対値が所定値未満となってから所定時間Ta経過後の端子間電圧を開放電圧として用いる。なお、第1の目標SOCを算出できる条件、すなわち、組電池1の充放電電流BATCURの絶対値が所定電流I1未満となった状態で所定時間Ta経過するという条件をリセット1条件と呼ぶ。=第2の目標SOC=第2の目標SOCは、3つの目標SOCの中で算出頻度算出条件の成立頻度が2番目に高く、かつ、SOCの算出精度が2番目に高いSOCである。第2の目標SOCの算出方法について説明する。まず、電流積算値に基づいて求めたSOCと、メモリ7に記憶されている内部抵抗-SOCデータとに基づいて、組電池1の内部抵抗RESTを求める。ただし、内部抵抗は、組電池1の温度に応じて変化するため、求めた内部抵抗を、温度補正係数を用いて補正する。温度補正係数は、サーミスタ6によって検出される組電池1の温度と、メモリ7に記憶されている電池温度-温度補正係数データに基づいて求める。続いて、組電池1が放電を開始してから所定時間例えば、5秒経過し、かつ、放電電流が所定電流I2以下の時に、電圧センサ4によって検出される電圧BATVOL、および、電流センサ5によって検出される放電電流BATCURと、上述した方法によって求めた内部抵抗RESTとに基づいて、次式3により、組電池1の開放電圧EZEROを求める。なお、一般に、放電電流が大きすぎると内部抵抗が急激に上昇し、下記式3で求めた開放電圧EZEROと実際の内部抵抗との誤差が大きくなる。このため、下記式3で開放電圧EZEROが精度良く求められる範囲の電流値を所定電流I2とし、所定電流I2以下の場合にのみ、下記式3に基づいて、開放電圧EZEROを求める。EZERO=BATVOLBATCUR×REST3最後に、式3により求めた開放電圧EZEROと、メモリ7bに記憶されている開放電圧-SOCデータとに基づいて、SOCを求める。このSOCを第2目標SOCとする。なお、第2の目標SOCを算出できる条件、すなわち、組電池1が放電を開始してから所定時間経過し、かつ、放電電流が所定電流I2以下となっている条件をリセット2条件と呼ぶ。このリセット2条件における所定時間とは、電流検出時の条件を後述するリセット3条件と合わせるために設定される値であり、適宜変更可能な時間である。=第3の目標SOC=第3の目標SOCは、3つの目標SOCの中で算出頻度算出条件の成立頻度が最も多いが、SOCの算出精度が最も低いSOCである。第3の目標SOCの算出方法について説明する。まず、組電池1の充放電を行っている間に、リセット2条件と同様に放電開始から所定時間例えば、5秒経過した時点で電圧センサ4によって検出される電圧BATVOL、および、電流センサ5によって検出される放電電流BATCURのデータを複数取得して回帰直線IV直線を求める。図7は、電圧検出値および電流検出値の複数のデータに基づいて求めた回帰直線70の一例を示す図である。図7において、放電電流が0となる直線と、回帰直線70との交点71は、組電池1の開放電圧となる。従って、求めた回帰直線から組電池1の開放電圧を求め、求めた開放電圧と、メモリ7bに記憶されている開放電圧-SOCデータとに基づいて、SOCを求める。このSOCを第3目標SOCとする。なお、第3の目標SOCの算出条件、すなわち、回帰直線を演算するために必要なデータ数が集まるという条件をリセット3条件と呼ぶ。図8は、一実施の形態における電池の残存容量検出装置によって行われる処理内容を示すフローチャートである。車両が起動して、電池制御装置7に電力が供給されると、電池制御装置7のCPU7aは、ステップS10の処理を開始する。ステップS10では、タイマ7cによる計時を開始して、ステップS20に進む。ステップS20では、上述したリセット1条件が成立しているか否かを判定する。リセット1条件が成立していると判定するとステップS30に進む。ステップS30では、上述した方法により、第1の目標SOCを算出する。ここでは、算出した第1の目標SOCをECAPSOCと表す。第1の目標SOCを算出すると、ステップS40に進む。ステップS40では、電流積算によって求めた残存容量AHSOCを、第1の目標SOCに基づいて補正する際の補正上限量を求める。まず初めに、タイマ7cによって計測されている時間TIMRSTsに基づいて、次式4より、前回リセット時からの電流積算誤差の最大値SOCRSTMAXを求める。SOCRSTMAX=MAXDSOC×TIMRST4ただし、MAXDSOCは、電池制御装置7が取得する電流検出値と実際の電流値との誤差を予め実験などにより求め、求めた誤差に基づいて予め設定された、単位時間あたりの電流積算誤差の最大値である。続いて、式4により求めたSOCRSTMAXと、第1の補正上限量SOCRST1とを比較して、小さい方の値を補正上限量SOCRSTに設定する。すなわち、SOCRSTMAX<SOCRST1が成り立つ場合には、SOCRST=SOCRSTMAXとし、SOCRST1≦SOCRSTMAXが成り立つ場合には、SOCRST=SOCRST1とする。なお、第1の補正上限量SOCRST1については、後述する。ステップS40に続くステップS50では、電流積算により求めた残存容量AHSOCを、ステップS30で求めた第1の目標SOCECAPSOCに基づいて補正リセットする。ここでは、ECAPSOCと、電流積算により求めた残存容量AHSOCとの差の絶対値がステップS40で求めた補正上限量SOCRST以下であるか否かに基づいて、リセット処理を行う。a|ECAPSOC-AHSOC|≦SOCRSTの場合この場合には、電流積算により求めた残存容量AHSOCの値を、ECAPSOC、すなわち、第1の目標SOCの値に置き換える。b|ECAPSOC-AHSOC|>SOCRST、かつ、ECAPSOC>AHSOCの場合この場合には、次式5より、補正処理を行う。AHSOC最新=AHSOC前回SOCRST5c|ECAPSOC-AHSOC|>SOCRST、かつ、ECAPSOC<AHSOCの場合この場合には、次式6より、補正処理を行う。AHSOC最新=AHSOC前回-SOCRST6すなわち、電流積算により求めた残存容量AHSOCを、第1の目標SOCであるECAPSOCを目標値として補正する際に、補正量が補正上限量SOCRST以下となるように、補正を行う。ステップS50に続くステップS60では、タイマ7cの時間計測値をクリア0にセットして、ステップS170に進む。一方、ステップS20において、リセット1条件が成立していないと判定するとステップS70に進む。ステップS70では、上述したリセット2条件が成立しているか否かを判定する。リセット2条件が成立していると判定するとステップS80に進む。ステップS80では、上述した方法により、第2の目標SOCを算出する。ここでは、算出した第2の目標SOCをECAPSOCとする。第2の目標SOCを算出すると、ステップS90に進む。ステップS90では、電流積算によって求めた残存容量AHSOCを、第2の目標SOCに基づいて補正する際の補正上限量を求める。ここでも、タイマ7cによって計測されている時間TIMRSTsに基づいて、上式4より、電流検出誤差の最大値SOCRSTMAXを求め、求めたSOCRSTMAXと、第2の補正上限量SOCRST2とを比較して、小さい方の値を補正上限量SOCRSTに設定する。第2の補正上限量SOCRST2は、第1の補正上限量SOCRST1よりは小さい所定の値に設定されている。ステップS90に続くステップS100では、電流積算により求めた残存容量AHSOCを、ステップS80で求めた第2の目標SOCECAPSOCに基づいて補正リセットする。残存容量AHSOCの補正方法は、ステップS50で行う補正方法と同じであるため、ここでは詳しい説明を省略する。ステップS100に続くステップS110では、タイマ7cの時間計測値をクリア0にセットして、ステップS170に進む。ステップS70において、リセット2条件が成立していないと判定するとステップS120に進む。ステップS120では、上述したリセット3条件が成立しているか否かを判定する。リセット3条件が成立していないと判定するとステップS20に戻り、成立していると判定するとステップS130に進む。ステップS130では、上述した方法により、第3の目標SOCを算出する。ここでは、算出した第3の目標SOCをECAPSOCとする。第3の目標SOCを算出すると、ステップS140に進む。ステップS140では、電流積算によって求めた残存容量AHSOCを、第3の目標SOCに基づいて補正する際の補正上限量を求める。ここでも、タイマ7cによって計測されている時間TIMRSTsに基づいて、上式3より、電流検出誤差の最大値SOCRSTMAXを求め、求めたSOCRSTMAXと、第3の補正上限量SOCRST3とを比較して、小さい方の値を補正上限量SOCRSTに設定する。第3の補正上限量SOCRST3は、第2の補正上限量SOCRST2よりは小さい所定の値である。すなわち、第1の補正上限量SOCRST1、第2の補正上限量SOCRST2、および、第3の補正上限量SOCRST3の間には、次式7の関係が成り立つ。SOCRST3<SOCRST2<SOCRST17ステップS140に続くステップS150では、電流積算により求めたAHSOCを、ステップS130で求めた第3の目標SOCECAPSOCに基づいて補正リセットする。AHSOCのリセット方法は、ステップS50で行うリセット方法と同じであるため、ここでは詳しい説明を省略する。ステップS150に続くステップS160では、タイマ7cの時間計測値をクリア0にセットして、ステップS170に進む。ステップS170では、シャットダウン要求を受信したか否かを判定する。ドライバが図示しないキースイッチをオフにすると、電池制御装置7にシャットダウン要求が入力される。シャットダウン要求を受信していないと判定すると、ステップS10に戻り、シャットダウン要求を受信したと判定すると、組電池1のSOCを算出する処理を終了する。一実施の形態における電池の残存容量検出装置によれば、電池の充放電電流の積算に基づいて電池の残存容量を算出し、第1の所定条件が成立すると、電流積算によって算出される残存容量を補正するための第1の補正残存容量の算出を行うとともに、第1の所定条件より成立頻度が多い第2の所定条件が成立すると、第1の補正残存容量の算出精度より低い算出精度の方法を用いて、第2の補正残存容量の算出を行う。そして、第1の所定条件が成立すると、補正量が第1の補正上限量以下の範囲で、電流積算によって算出される残存容量を第1の補正残存容量に基づいて補正するとともに、第2の所定条件が成立すると、補正量が第1の補正上限量より小さい第2の補正上限量以下の範囲で、電流積算によって算出される残存容量を第2の補正残存容量に基づいて補正する。これにより、残存容量の補正頻度および補正精度のバランスが取れた補正を行うことができる。すなわち、第1の補正残存容量のみに基づいて補正を行う場合には、補正回数が少なくなるが、第2の補正残存容量も用いて補正することにより、補正回数が多くなる。また、算出精度の低い第2の補正残存容量に基づいて補正を行う場合には、第1の補正残存容量に基づいて補正を行う際の補正上限量より小さい補正上限量の範囲内で補正を行うので、補正後の残存容量が補正前の残存容量に比べて急激に変化することはない。従って、第1の補正残存容量より算出精度の低い第2の補正残存容量に基づいて補正を行う場合でも、補正精度が極端に低下するのを防ぐことができる。また、一実施の形態における電池の残存容量検出装置によれば、第1の補正上限量および第2の補正上限量が残存容量を求める際の最大誤差以下となるように補正するので、必要な補正量を超えて残存容量の補正が行われるのを防ぐことができる。特に、充放電電流の積算値の演算を開始してから経過した時間を測定し、測定した時間と充放電電流の積算値を求める際の単位時間あたりの最大誤差とに基づいて、残存容量を求める際の最大誤差を求めるので、電流積算によって残存容量を求める際の最大算出誤差を適切に求めることができる。さらに、一実施の形態における電池の残存容量検出装置によれば、第2の所定条件より成立頻度が多い第3の所定条件が成立すると、第2の補正残存容量の算出精度より低い算出精度の方法で、電流積算によって求める残存容量を補正するための第3の補正残存容量を算出し、第3の所定条件が成立すると、補正量が第2の補正上限量より小さい第3の補正上限量以下の範囲で、電流積算によって求める残存容量を第2の補正残存容量に基づいて補正する。これにより、さらに、残存容量の補正頻度および補正精度のバランスが取れた補正を行うことができる。すなわち、第3の補正残存容量に基づいて補正を行うことにより、補正回数をさらに増やすことができ、また、補正量が第2の補正上限量より小さい第3の補正上限量以下の範囲で補正を行うので、残存容量が急激に変化することはない。本発明は、上述した一実施の形態に限定されることはない。例えば、SOCは、組電池1の充放電電流を積算することによって常時算出するものとして説明したが、組電池1の充放電電力を積算することによって算出することもできる。上述した一実施の形態では、充放電電流BATCURの積算値に基づいて求めたSOCを補正するための目標SOCとして、第1の目標SOC、第2の目標SOC、および、第3の目標SOCの3つのSOCを算出したが、例えば、第1の目標SOCと第2の目標SOC、第1の目標SOCと第3の目標SOC、第2の目標SOCと第3の目標SOCの2つだけを算出するようにしてもよい。また、電流積算によって求めたSOCを補正するための目標SOCの算出方法は、上述した方法に限られることはない。第2の目標SOCを求めるために、組電池1が放電を開始してから所定時間経過し、かつ、放電電流が所定電流I2以下の時に、電圧センサ4によって検出される電圧BATVOL、および、電流センサ5によって検出される放電電流BATCURと、内部抵抗RESTとに基づいて、開放電圧EZEROを求めたが、組電池の充電時に、同様の手法によって開放電圧EZEROを求めることもできる。SOCの算出精度が最も高い第1の目標SOCに基づいて、電流積算によって求めたSOCを補正する場合には、補正量に制限を設けないようにしてもよい。すなわち、上述した第1の補正上限量SOCRST1を∞無限大のように大きい値に設定すれば、第1の目標SOCに基づいて補正を行う際の補正量が制限されることはない。上述した一実施の形態では、電池の残存容量検出装置を電気自動車に適用した例を挙げて説明したが、ハイブリッド自動車や燃料電池車に適用することもできるし、車両以外の電池を用いるシステムに適用することもできる。特許請求の範囲の構成要素と一実施の形態の構成要素との対応関係は次の通りである。すなわち、電池制御装置7が残存容量算出手段、第1の補正残存容量算出手段、第2の補正残存容量算出手段、第3の補正残存容量算出手段、残存容量補正手段、補正上限量補正手段、最大誤差算出手段、および、内部抵抗算出手段を、タイマ7cが計時手段をそれぞれ構成する。なお、以上の説明はあくまで一例であり、発明を解釈する上で、上記の実施形態の構成要素と本発明の構成要素との対応関係に何ら限定されるものではない。"