"車両に搭載される電池の状態推定装置であって、前記電池の端子間電圧を検出する電圧センサと、前記電池を流れる電流を検出する電流センサと、前記電池の通電時に前記電圧センサが検出した実電圧および前記電流センサが検出した実電流に基づいて、前記電池の開路電圧を推定する電圧推定部と、前記開路電圧に基づいて前記電池の第1残存容量を推定する第1残存容量推定部と、前記実電流に基づいて前記電池の第2残存容量を推定する第2残存容量推定部と、前記第1残存容量と前記第2残存容量との比較結果に基づいて前記電圧推定部による前記開路電圧の推定手法を調整する調整部とを含む、電池の状態推定装置。前記調整部は、前記第1残存容量の変化量と前記第2残存容量の変化量とが異なる場合、前記第1残存容量の変化量を前記第2残存容量の変化量に近づけるように前記開路電圧の推定手法を調整する、請求項1に記載の電池の状態推定装置。前記調整部は、前記電流センサの誤差に基づいて前記第2残存容量の変化量の最大値および最小値を算出し、前記第1残存容量の変化量が前記第2残存容量の変化量の最大値および最小値の間に含まれるように前記開路電圧の推定手法を調整する、請求項2に記載の電池の状態推定装置。前記調整部は、充電開始時点で推定された前記開路電圧と放電移行時点で推定された前記開路電圧とに基づいて前記第1残存容量の変化量を算出し、前記充電開始時点から前記放電移行時点までの前記実電流の積算値に基づいて前記第2残存容量の変化量を算出する、請求項1に記載の電池の状態推定装置。前記状態推定装置は、前記電池の状態をパラメータとして前記電池の開路電圧と閉路電圧との間の電圧差を予め設定したマップを予め記憶する記憶部をさらに備え、前記電圧推定部は、前記マップを用いて前記電池の実際の状態に対応する前記電圧差を算出し、前記電圧差とゲインとの積を前記実電圧から減じた値を前記開路電圧の推定値として算出し、前記調整部は、前記第1残存容量の変化量を前記第2残存容量の変化量に近づけるように前記ゲインを調整する、請求項1~4のいずれかに記載の電池の状態推定装置。ところで、SOCは、電池の開路電圧が決まればほぼ一義的に決まる。そのため、電池の開路電圧を計測すればSOCを推定することが可能である。しかし、電池の通電時には、閉路電圧CCV:ClosedCircuitVoltageは計測できるが、開路電圧は直接計測することができない。そのため、閉路電圧の計測値などから開路電圧を推定し、推定された開路電圧から残存容量を推定することが望ましい。しかしながら、従来においては、開路電圧の推定精度が必ずしも十分ではなく、残存容量の推定精度が十分ではない場合がある。本発明は、上述の課題を解決するためになされたものであって、その目的は、電池の開路電圧の推定精度を向上させることによって電池の残存容量の推定精度を向上させることである。この発明に係る状態推定装置は、車両に搭載される電池の状態を推定する。この状態推定装置は、電池の端子間電圧を検出する電圧センサと、電池を流れる電流を検出する電流センサと、電池の通電時に電圧センサが検出した実電圧および電流センサが検出した実電流に基づいて、電池の開路電圧を推定する電圧推定部と、開路電圧に基づいて電池の第1残存容量を推定する第1残存容量推定部と、実電流に基づいて電池の第2残存容量を推定する第2残存容量推定部と、第1残存容量と第2残存容量との比較結果に基づいて電圧推定部による開路電圧の推定手法を調整する調整部とを含む。好ましくは、調整部は、第1残存容量の変化量と第2残存容量の変化量とが異なる場合、第1残存容量の変化量を第2残存容量の変化量に近づけるように開路電圧の推定手法を調整する。好ましくは、調整部は、電流センサの誤差に基づいて第2残存容量の変化量の最大値および最小値を算出し、第1残存容量の変化量が第2残存容量の変化量の最大値および最小値の間に含まれるように開路電圧の推定手法を調整する。好ましくは、調整部は、充電開始時点で推定された開路電圧と放電移行時点で推定された開路電圧とに基づいて第1残存容量の変化量を算出し、充電開始時点から放電移行時点までの実電流の積算値に基づいて第2残存容量の変化量を算出する。好ましくは、状態推定装置は、電池の状態をパラメータとして電池の開路電圧と閉路電圧との間の電圧差を予め設定したマップを予め記憶する記憶部をさらに備える。電圧推定部は、マップを用いて電池の実際の状態に対応する電圧差を算出し、電圧差とゲインとの積を実電圧から減じた値を開路電圧の推定値として算出する。調整部は、第1残存容量の変化量を第2残存容量の変化量に近づけるようにゲインを調整する。本発明によれば、電池の開路電圧の推定精度を向上させることによって電池の残存容量の推定精度を向上させることができる。以下、本発明の実施の形態について図面を参照して詳細に説明する。なお、以下では図中の同一または相当部分には同一符号を付してその説明は原則として繰り返さないものとする。図1は、本発明の実施の形態による制御装置を備えた車両5の概略構成を示すブロック図である。なお、図1に示す車両5はハイブリッド車両であるが、本発明はハイブリッド車両に限定されず電動車両全般に適用可能である。図1を参照して、車両5は、バッテリ10と、システムメインリレーSMR22,24と、パワーコントロールユニットPCU30と、モータジェネレータMG41,42と、エンジン50と、動力分割機構60と、駆動軸70と、車輪80と、制御回路100とを備える。バッテリ10は、充放電可能な電池であり、たとえばリチウムイオン等の複数の二次電池セルが直列に接続されて構成される。バッテリ10は、MG41,42を駆動するための高い電圧たとえば200ボルト程度を出力する。エンジン50は、燃料の燃焼エネルギによって運動エネルギを出力する。動力分割機構60は、MG41,42およびエンジン50の出力軸と連結されて、MG42および/またはエンジン50の出力によって駆動軸70を駆動する。そして、駆動軸70によって車輪80が回転される。このように、車両5は、エンジン50および/またはMG42の出力によって走行する。MG41,42は、発電機としても電動機としても機能し得る。MG41は、加速時等のエンジン始動要求時において、エンジン50を始動する始動機として用いられる。このとき、MG41は、PCU30を介してバッテリ10からの電力供給を受けて電動機として駆動し、エンジン50をクランキングして始動する。さらに、エンジン50の始動後において、MG41は、動力分割機構60を介して伝達されたエンジン出力によって回転されて発電可能である。MG42は、バッテリ10に蓄えられた電力およびMG41の発電した電力の少なくともいずれか一方によって駆動される。MG42の駆動力は、駆動軸70に伝達される。これにより、MG42は、エンジン50をアシストして車両5を走行させたり、自己の駆動力のみによって車両5を走行させたりする。また、車両5の回生制動時には、MG42は、車輪の回転力によって駆動されることによって発電機として動作する。このとき、MG42により発電された回生電力は、PCU30を介してバッテリ10に充電される。SMR22,24は、PCU30とバッテリ10の間に設けられる。SMR22,24は、制御回路100からの制御信号S1に応じてオンオフされる。SMR22,24のオフ開放時には、バッテリ10の充放電経路が機械的に遮断される。PCU30は、制御回路100からの制御信号S2に応じてバッテリ10とMG41,42との間で双方向の電圧変換および電力変換を行ない、MG41,42をそれぞれの動作指令値代表的にはトルク指令値に従って動作させる。さらに、車両5は、バッテリ10の状態を監視する温度センサ12、電圧センサ14、電流センサ16を備える。温度センサ12は、バッテリ10の温度バッテリ温度Tbを検出する。電流センサ16は、バッテリ10を流れる電流バッテリ電流ibを検出する。電圧センサ14は、バッテリ10の両端子間電圧バッテリ電圧Vbを検出する。なお、バッテリ10には、一般的に内部抵抗Rが存在する。この影響などで、バッテリ10に電流が流れていない状態非通電時でのバッテリ電圧Vbとバッテリ10に電流が流れている状態通電時でのバッテリ電圧Vbとは異なる値となる。以下の説明では、非通電時のバッテリ電圧Vbをバッテリ開路電圧OCVあるいは単にOCVOpenCircuitVoltageと記載し、通電時のバッテリ電圧Vbをバッテリ閉路電圧CCVあるいは単にCCVClosedCircuitVoltageと記載する。なお、OCVとCCVとの関係については後に詳述する。温度センサ12、電圧センサ14、電流センサ16の検出結果は制御回路100に送信される。制御回路100は、図示しないCPUCentralProcessingUnitおよびメモリを内蔵した電子制御ユニットECU:ElectronicControlUnitにより構成される。制御回路100は、各センサの検出結果や当該メモリに記憶された情報などに基づいて、所定の演算処理を実行し、その結果で制御信号S1,S2を生成し、それぞれSMR22,24、PCU30に出力する。なお、エンジン50は、図示しない他のECUによって制御される。また、図1では、制御回路100を単一のユニットとして記載しているが、2つ以上の別個のユニットとしてもよい。以上のような構成を有する車両5において、制御回路100は、車両走行中、バッテリ10の残存容量が目標領域内に収まるようにバッテリ10とPCU30との間の充放電を制御する。なお、以下では、残存容量を、バッテリ10の満充電容量FullChargeCapacity、以下では単に満充電容量Fともいうに対するバッテリ10の残存電力量の割合で表わす。すなわち、残存容量=残存電力量/満充電容量×100である。ここで、残存容量は、直接的には計測できないが、バッテリ開路電圧OCVが決まればほぼ一義的に決まることが知られている。そのため、バッテリ開路電圧OCVを計測すれば残存容量を推定することが可能である。しかし、車両走行中は、バッテリ10に電流が流れるため、バッテリ開路電圧OCVもまた直接計測することができない。そのため、制御回路100は、車両走行中に電圧センサ14が検出したバッテリ電圧Vbすなわちバッテリ閉路電圧CCVと電流センサ16が検出したバッテリ電流ibとを用いてバッテリ開路電圧OCVを推定し、推定されたバッテリ開路電圧OCVを用いて残存容量を推定する。なお、以下では、OCVの推定値に基づいて推定される残存容量を第1残存容量Svという。これに対し、バッテリ電流ibの検出値を積算して算出される残存容量を第2残存容量Siということにする。従来においては、バッテリ開路電圧OCVの推定精度が必ずしも十分ではなかった。そのため、第1残存容量Svの精度も十分ではなかった。そこで、本実施の形態による制御回路100は、バッテリ開路電圧OCVの推定精度を向上させることによって、第1残存容量Svの精度を向上させる。図2は、制御回路100の機能ブロック図である。図2に示した各機能ブロックは、ハードウェアによって実現してもよいし、ソフトウェアによって実現してもよい。制御回路100は、F算出部110、F記憶部120、マップ記憶部130、OCV推定部140、K調整部150、K記憶部160、Sv推定部170、Si算出部180、SOC算出部190を含む。F算出部110は、車両5のトリップ毎に、満充電容量Fを算出する。なお、トリップとは、ユーザが車両5の走行システムを起動させる操作IGオン操作を行なってから走行システムを停止させる操作IGオフ操作を行なうまでの期間である。図3は、F算出部110による満充電容量Fの算出手法を説明するための図である。なお、図3では、時刻t1でトリップAが開始され、時刻t2でトリップAが終了し、時刻t3で次のトリップBが開始される場合が例示されている。まず、F算出部110は、時刻t1において、SMR22,24が閉じられる前バッテリ10の充放電が開始される前に電圧センサ14が検出したバッテリ電圧Vbを取得する。この時に取得されたバッテリ電圧Vbが、時刻t1のバッテリ開路電圧OCVt1である。さらに、F算出部110は、時刻t1から時刻t3まで電流センサ16が検出したバッテリ電流ibを積算し、積算した値をトリップA中のバッテリ電流積算値∫iAとして記憶する。ここで、電流センサ16が検出したバッテリ電流ibには、電流センサ16のオフセット誤差が含まれている。オフセット誤差を±α、トリップA中の最小電流値、最大電流値をそれぞれimin、imaxとすると、imin=ib-α、imax=ibαとなる。この点を考慮し、F算出部110は、トリップA中の最小電流値iminの積算値∫iAmin、トリップA中の最大電流値imaxの積算値∫iAmaxも算出して記憶する。さらに、F算出部110は、時刻t3において、SMR22,24が閉じられる前バッテリ10の充放電が開始される前に電圧センサ14が検出したバッテリ電圧Vbを取得する。この時に取得されたバッテリ電圧Vbが、時刻t3のバッテリ開路電圧OCVt3である。そして、F算出部110は、マップ記憶部130に記憶されているOCV-Svマップ131を用いて、OCVt1に対応する第1残存容量Svt1、OCVt3に対応する第1残存容量Svt3をそれぞれ算出し、Svt3からSvt1を減じた値をトリップA中の第1残存容量変化量ΔSvAとして算出する。図4は、OCV-Svマップ131を示す図である。OCV-Svマップ131には、予め実験等によって求められたバッテリ開路電圧OCVと第1残存容量Svとの対応関係がマップ化されている。F算出部110は、このマップを用いて、バッテリ開路電圧OCVに対応する第1残存容量Svを算出する。図3に戻って、F算出部110は、時刻t3において、バッテリ10の満充電容量F、最大満充電容量Fmax、最小満充電容量Fminを下記の式1~3で算出する。F=∫iA×100/ΔSvA1Fmax=∫iAmax×100/ΔSvA2Fmin=∫iAmin×100/ΔSvA3このように、F算出部110は、満充電容量Fだけでなく、電流センサ16のオフセット誤差を考慮して最大満充電容量Fmaxおよび最小満充電容量Fminを算出する。図2に戻って、F記憶部120は、F算出部110が算出した満充電容量F、最大満充電容量Fmax、最小満充電容量Fminを記憶する。マップ記憶部130は、上述したOCV-Svマップ131の他に、OCV推定部140によるOCVの推定に用いられるVirマップ132、V1マップ133、V2マップ134を記憶する。なお、Virマップ132、V1マップ133、V2マップ134は、バッテリ電流ib、バッテリ温度Tbをパラメータとして、それぞれ、内部抵抗による電圧変動量Vir、分極短時定数による電圧変動量V1、分極長時定数による電圧変動量V2を、予めマップ化したものである。OCV推定部140は、トリップ中車両走行中に、バッテリ電圧Vb=バッテリ閉路電圧CCV、バッテリ電流ib、バッテリ温度Tbなどを用いてバッテリ開路電圧OCVを推定する。図5は、バッテリ開路電圧OCVとバッテリ閉路電圧CCVとの対応関係を示す図である。バッテリ10の通電中においては、バッテリ閉路電圧CCVは、バッテリ開路電圧OCVよりも高い値となる。その要因には、主に、バッテリ10の内部抵抗Rによる電圧変動量Virと、バッテリ10の電解液中のイオンの分極短時定数による電圧変動量V1と、分極長時定数による電圧変動量V2とが含まれる。なお、図5に示すように、内部抵抗Rによる電圧変動量Virは、通電開始とともに生じるが、分極短時定数による電圧変動量V1は通電開始から僅かな時間0.1~1.0秒程度が経過した後に生じ、分極長時定数による電圧変動量V2は通電開始から数秒程度が経過した後に生じる。これらの電圧変動量Vir,V1,V2は、バッテリ電流ib、バッテリ温度Tbなどに応じて変化する。図2に戻って、OCV推定部140は、トリップ中、バッテリ閉路電圧CCV電圧センサ14の検出値を取得する。また、OCV推定部140は、マップ記憶部130からVirマップ132、V1マップ133、V2マップ134を読み出し、これらの各マップを用いてバッテリ電流ib、バッテリ温度Tbに応じた電圧変動量Vir,V1,V2を算出する。そして、OCV推定部140は、図5に示した対応関係をモデル化した下記の式4を用いて、バッテリ開路電圧OCVを推定する。OCV=CCV-VirV1V2×K4ここで、Kは、上述した電圧変動量Vir,V1,V2による影響を調整するための係数である。以下、このKをゲインKともいう。ゲインKは、K記憶部160に記憶されており、必要に応じてOCV推定部140によって読み出される。なお、式4では電圧変動量Vir,V1,V2の合計に対して1つのゲインKを設定しているが、電圧変動量Vir,V1,V2のそれぞれに対してゲインを設けるようにしてもよい。K調整部150は、OCV推定部140によるOCV推定精度を向上させるために、ゲインKを調整する。K調整部150は、ΔSv算出部151、ΔSi算出部152、比較調整部153を含む。ΔSv算出部151は、車両走行中に、バッテリ10の充電または放電開始時点から放電または充電開始時点までの第1残存容量Svの変化量以下第1残存容量変化量ΔSvというを算出する。具体的には、ΔSv算出部151は、充電開始時点のバッテリ開路電圧OCVsを取得し、OCV-Svマップ131を用いてOCVsに対応する第1残存容量Svsを算出する。同様に、ΔSv算出部151は、放電開始時点のバッテリ開路電圧OCVeを取得し、OCV-Svマップ131を用いてOCVeに対応する第1残存容量Sveを算出する。そして、ΔSv算出部151は、第1残存容量変化量ΔSvを下記の式5を用いて算出する。ΔSv=Sve-Svs5なお、第1残存容量変化量ΔSvの算出手法はこれに限定されない。たとえば、後述するSv推定部170が推定した第1残存容量Svの変化から第1残存容量変化量ΔSvを算出してもよい。一方、ΔSi算出部152は、車両走行中に、バッテリ10の充電開始時点から放電開始時点までの第2残存容量Siの変化量以下第2残存容量変化量ΔSiというを算出する。なお、以下では、電流センサ16のオフセット誤差を考慮して、第2残存容量最大変化量ΔSimax、第2残存容量最小変化量ΔSiminを算出する場合について説明する。ΔSi算出部152は、最小電流値imin=ib-αの充電開始時点から放電開始時点までの積算値∫imin、最大電流値imax=ibαの充電開始時点から放電開始時点までの積算値∫imaxを算出する。そして、ΔSi算出部152は、F記憶部120から最大満充電容量Fmax、最小満充電容量Fminを読み出し、第2残存容量最大変化量ΔSimax、第2残存容量最小変化量ΔSiminを下記の式6、7を用いて算出する。ΔSimin=∫imin/Fmax×1006ΔSimax=∫imax/Fmin×1007このように、ΔSi算出部152は、バッテリ電流ib電流センサ16の検出値を用いて第2残存容量変化量ΔSiを算出する際、電流センサ16のオフセット誤差を考慮して、最大電流値imaxに対応する第2残存容量最大変化量ΔSimax、最小電流値iminに対応する第2残存容量最小変化量ΔSiminを算出する。したがって、真の残存容量の変化量は、この第2残存容量最小変化量ΔSiminと第2残存容量最大変化量ΔSimaxとの間のいずれかの値となる。なお、第2残存容量変化量ΔSiの算出手法はこれに限定されない。たとえば、後述するSi算出部180が算出した第2残存容量Svの変化から第2残存容量変化量ΔSiを算出してもよい。比較調整部153は、ΔSv算出部151が算出した第1残存容量変化量ΔSvと、ΔSi算出部152が算出した第2残存容量変化量ΔSiとを比較し、第1残存容量変化量ΔSvを第2残存容量変化量ΔSiに近づけるように、ゲインKを調整する。具体的には、比較調整部153は、ΔSv<ΔSiminの場合、または、ΔSv>ΔSimaxの場合、第1残存容量変化量ΔSvが第2残存容量最小変化量ΔSiminと第2残存容量最大変化量ΔSimaxとの間に含まれるように、ゲインKを調整する。図6は、K調整部150によるゲインKの調整手法の一例を示す図である。なお、図6には、一定の電流値で時刻tsから時刻teまで充電を継続した場合を示している。ΔSimin、ΔSimaxは、いずれも電流センサ16のオフセット誤差が考慮された値である。そのため、真の残存容量の変化量は、少なくともΔSiminとΔSimaxとの間の範囲図6の斜線領域に含まれるはずである。したがって、図6に示すように、ΔSvがΔSimaxを超えている場合には、ΔSvは真の残存容量の変化量よりも大きい値であることになる。そこで、K調整部150は、時刻tsから時刻teまでのΔSvおよびΔSi詳しくはΔSimin、ΔSimaxを算出し、時刻teで両者を比較し、ΔSimin<ΔSv<ΔSimaxとなるように、ゲインKを調整する。このような手法でゲインKを調整することにより、上述の式4を用いてバッテリ開路電圧OCVを推定する際、電圧変動量Vir,V1,V2による影響をバッテリ10の状態に応じて適切に反映させることができ、バッテリ開路電圧OCVの推定精度を向上させることができる。この点が本発明の最も特徴的な点である。図2に戻って、K記憶部160は、K調整部150によって調整されたゲインKを記憶する。この調整後のゲインKがOCV推定部140によるバッテリ開路電圧OCVの推定上述の式4参照に用いられるため、バッテリ開路電圧OCVの推定精度が向上することになる。Sv推定部170は、OCV推定部140が推定したバッテリ開路電圧OCVに対応する第1残存容量SvをOCV-Svマップ131を用いて算出する。上述したようにK調整部150によるゲインKの調整によってバッテリ開路電圧OCVの推定精度が向上しているため、第1残存容量Svの推定精度も向上することになる。Si算出部180は、車両走行中のバッテリ電流ibの積算値∫ibを算出し、F記憶部120から満充電容量Fを読み出して、第2残存容量Siを下記の式8を用いて算出する。Si=Si0∫ib/F8ここで、Si0は、今回トリップ開始時の第2残存容量Siの初期値である。たとえば、前回トリップ終了時の第2残存容量Siの値を記憶しておき、この値を今回トリップ開始時にSi0に設定すればよい。SOC算出部190は、第1残存容量Svおよび第2残存容量Siに基づいて、バッテリ10の充放電制御に用いられる制御残存容量SOCを算出する。たとえば、SOC算出部190は、下記の式9を用いて制御残存容量SOCを算出する。SOC=SiSv-SiG9ここで、Gは、SvとSiとの差分をSOCに反映させる度合いを調整する係数である。制御回路100は、このように算出された制御残存容量SOCが目標制御域内に収まるようにバッテリ10の充放電を制御する。図7は、上述のK調整部150の機能ゲインKの調整手法を実現するための制御回路100の処理手順を示すフローチャートである。ステップ以下、ステップをSと略す10にて、制御回路100は、バッテリ10の充電が開始されたか否かを判断する。充電が開始されるとS10にてYES、制御回路100は、S11にて電流積算最小電流値の積算値∫iminおよび最大電流値の積算値∫imaxの算出を開始し、S12にて充電開始時点のバッテリ閉路電圧CCVsを検出する。S13にて、制御回路100は、上述の式4を用いて充電開始時点のバッテリ開路電圧OCVsを推定するOCVs=CCVs-VirV1V2×K。S14にて、制御回路100は、OCVsに対応する第1残存容量Svsを算出する。S15にて、制御回路100は、バッテリ10の放電が開始されたか否かを判断する。放電が開始されるまではS15にてNO、処理はS15に戻され、放電が開始されるまで待つ。放電が開始されるとS15にてYES、制御回路100は、S16にて電流積算を終了し、S17にて上述の式6、7を用いて第2残存容量最小変化量ΔSimin、第2残存容量最大変化量ΔSimaxを算出するΔSimin=∫imin/Fmax×100、ΔSimax=∫imax/Fmin×100S18にて、制御回路100は、放電開始時点のバッテリ閉路電圧CCVeを検出する。S19にて、制御回路100は、上述した式4を用いて放電開始時点のバッテリ開路電圧OCVeを推定するOCVe=CCVe-VirV1V2×K。S20にて、制御回路100は、OCVeに対応する第1残存容量Sveを算出する。S21にて、制御回路100は、ΔSimin<ΔSv=Sve-Svs<ΔSimaxであるか否かを判断する。ΔSv<ΔSiminあるいはΔSimax<ΔSvであるとS21にてNO、制御回路100は、ΔSimin<ΔSv<ΔSimaxとなるように、ゲインKを調整する。一方、ΔSimin<ΔSv<ΔSimaxであるとS21にてYES、制御回路100は、ゲインKを調整することなく、処理を終了させる。以上のように、本実施の形態による制御回路100は、車両走行中において、電圧センサ14の検出値=CCVからOCVを推定し、推定されたOCVを用いて第1残存容量Svを推定する。この際、制御回路100は、充電中の第1残存容量変化量ΔSvを算出するとともに、充電中の電流センサ16の検出値を積算して第2残存容量変化量ΔSiを算出し、ΔSvをΔSiに近づけるようにOCVの推定に用いられるゲインKを調整する。そのため、OCVの推定精度を向上させることができ、第1残存容量Svの推定精度も向上させることができる。<変形例>上述の実施の形態では、ΔSv算出部151が算出した第1残存容量変化量ΔSvとΔSi算出部152が算出した第2残存容量変化量ΔSiとを比較した結果でOCVの推定に用いられるゲインKを調整した。これに対し、Sv推定部170が算出した第1残存容量SvとSi算出部180が算出した第2残存容量Siとを比較した結果でゲインKを調整するようにしてもよい。この場合には、Sv推定部170が算出した第1残存容量Svの変化量をSi算出部180が算出した第2残存容量Siの変化量に近づけるようにゲインKを調整するようにしてもよいし、Sv推定部170が算出した第1残存容量SvをSi算出部180が算出した第2残存容量Siに近づけるようにゲインKを調整するようにしてもよい。また、上述の実施の形態では、第2残存容量変化量ΔSiを求める際に、満充電容量Fおよび電流積算値∫iの双方について電流センサ16のオフセット誤差を考慮した上述の式6、7参照。これに対し、満充電容量Fと電流積算値∫iとのいずれか一方についてのみオフセット誤差を考慮するようにしてもよい。図8は、満充電容量Fについてのみオフセット誤差を考慮する場合のゲインKの調整手法の一例を示す図である。図8に示すように、満充電容量Fについてはオフセット誤差を考慮して電流積算値∫iについてはオフセット誤差を考慮せずに、ΔSimin=∫i/Fmax×100、ΔSimax=∫i/Fmin×100とし、ΔSimin<ΔSv<ΔSimaxとなるようにゲインKを調整するようにしてもよい。また、その逆に、電流積算値∫iについてオフセット誤差を考慮し満充電容量Fについてはオフセット誤差を考慮せずに、ΔSimin=∫imin/F×100、ΔSimax=∫imax/F×100としてもよい。また、満充電容量Fと電流積算値∫iとの双方について電流センサ16のオフセット誤差を考慮せずに、ΔSi=∫i/F×100とし、ΔSvをΔSiに近づけるようにゲインKを調整するようにしてもよい。いずれの場合においても、OCVの推定精度を向上させることができる。今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。"