バッテリの充放電電流値を検出する充放電電流検出手段と、前記バッテリの端子電圧値を検出する端子電圧検出手段と、前記充放電電流検出手段から入力された前記充放電電流を積算して得た充電率とこの前の時刻に得た充電率とから前記バッテリの電流積算法充電率を推定するとともに、前記充放電電流検出手段の検出精度に関する情報を元に電流積算法充電率の分散を算出する電流積算充電率推定手段と、前記充放電電流検出手段から入力された前記充放電電流値と前記端子電圧検出手段から入力された前記端子電圧値とに基づきバッテリ等価回路モデルを用いて前記バッテリの開放電圧値を推定し、該開放電圧値から開放電圧法充電率を推定するとともに、前記充放電電流検出手段および前記端子電圧検出手段の検出精度に関する情報を元に開放電圧法充電率の分散を算出する開放電圧法充電率推定手段と、前記開放電圧法充電率と前記電流積算法充電率との差、前記電流積算法充電率の分散、前記開放電圧法充電率の分散に基づいて前記電流積算法充電率の推定誤差を推定する誤差推定手段と、前記電流積算法充電率と前記誤差推測手段で推定した推定誤差とから前記バッテリの充電率を求める充電率算出手段と、ことを特徴とするバッテリの充電率推定装置。請求項1に記載のバッテリの充電率推定装置において、前記開放電圧法充電率推定手段および前記誤差推定手段は、それぞれカルマンフィルタを用いる、ことを特徴とするバッテリの充電率推定装置。請求項1又は2に記載のバッテリの充電率推定装置において、前記電流積算法充電率推定手段は、前記前に得た充電率に前記充電率算出手段で得た充電率を用いて前記電流積算法充電率を推定する、ことを特徴とするバッテリの充電率推定装置。しかしながら、上記両従来発明にあっては、以下の問題点をそれぞれ有している。すなわち、上記前者の従来の充電率推定装置にあっては、電流積算値法と適応デジタルフィルタを用いた開放電圧法とを用いてそれぞれ推定した電気量の変化量を比較し、これらの差分から電流検出部の誤差値電流測定値のオフセット量を推定している。しかしながら、これらの方法で求めた電気量などの推定値はそれぞれ異なった統計的特徴を有しているので、上記方法で得た電気量の変化量をそのまま比較し合っても、上記統計的特徴に起因した誤差を避けることはできず、高精度で放電電流計測器の検出誤差を推定することはできず、その結果、バッテリの充電率の推定精度も低下してしまうといった問題がある。また、上記後者の従来の充電率推定方法にあっては、放電電流計測器の特性が使用時間使用状況使用環境などによって変化して行く上、計測器自体の個体差によるばらつきを避けることができない。それにもかかわらず、この従来方法にあっては、すべての放電電流計測器が同じ特性を有するものと仮定して上記推定を行っているので、実際の特性との相違に起因した検出値の誤差には対応できず、高い精度で放電電流計測器の検出誤差を推定することはできず、その結果、この方法でもバッテリの充電率も高精度に推定することは難しいといった問題がある。本発明は、上記不具合に鑑みなされたもので、その目的は充放電電流検出手段の特性の変動やばらつきにもかかわらず、高精度でバッテリの充電率の推定ができるようにしたバッテリの充電率推定装置を提供することにある。この目的のため、本発明の請求項1のバッテリの充電率推定装置は、バッテリの充放電電流値を検出する充放電電流検出手段と、バッテリの端子電圧値を検出する端子電圧検出手段と、充放電電流検出手段から入力された充放電電流値を積算して得た充電率とこの前の時刻に得た充電率とからバッテリの電流積算法充電率を推定するとともに、充放電電流検出手段の検出精度に関する情報を元に電流積算法充電率の分散を算出する電流積算充電率推定手段と、充放電電流検出手段から入力された充放電電流値と端子電圧検出手段から入力された端子電圧値とに基づきバッテリ等価回路モデルを用いてバッテリの開放電圧値を推定し、この開放電圧値から開放電圧法充電率を推定するとともに、充放電電流検出手段および端子電圧検出手段の検出精度に関する情報を元に開放電圧法充電率の分散を算出する開放電圧法充電率推定手段と、開放電圧法充電率と電流積算法充電率との差、電流積算法充電率の分散、開放電圧法充電率の分散に基づいて電流積算法充電率の推定誤差を推定する誤差推定手段と、電流積算法充電率と誤差推測手段で推定した推定誤差とからバッテリの充電率を求める充電率算出手段と、を有することを特徴とする。本発明の請求項2に記載のバッテリの充電率推定装置は、上記請求項1に記載の装置にあって、開放電圧法充電率推定手段および誤差推定手段は、それぞれカルマンフィルタを用いる、ことを特徴とする。本発明の請求項3に記載のバッテリの充電率推定装置は、上記請求項1又は2に記載の装置にあって、電流積算法充電率推定手段は、前に得た充電率に充電率算出手段で得たバッテリの充電率を用いて電流積算法充電率を推定する、ことを特徴とする。請求項1の本発明のバッテリの充電率推定装置にあっては、電流積算法充電率推定手段と開放電圧法充電率推定手段でそれぞれ電流積算法充電率と開放電圧法充電率を求めるとき、併せて平均値および分散をも用いて統計的な処理を施すようにしたので、充放電電流検出手段や端子電検出手段の特性の変動やばらつきがあっても、上記従来発明のものより高い精度でバッテリBの充電率を推定できるようになる。請求項2の本発明のバッテリの充電率推定装置にあっては、開放電圧法充電率推定手段および誤差推定手段に、それぞれカルマンフィルタを用いたので、バッテリの状態量を容易かつ高い精度で推測できるようになるとともに、カルマンフィルタではもともと推定平均値と推定分散値を逐次的に推定算出していることから、これらの値を新たに別途算出する必要がなくなる。請求項3の本発明のバッテリの充電率推定装置にあっては、充電流積算法充電率推定手段が、充電率算出手段で得た充電率を用いて電流積算法充電率を推定するので、高精度で電流積算法充電率を推定することが可能となる。以下、本発明の実施の形態を、図面に示す実施例に基づき詳細に説明する。実施例1のバッテリの充電率推定装置の構成を図1に示す。同図に示すように、バッテリBに接続された充電率推定装置は、充放電電流検出部1と、端子電圧検出部2と、電流積算法充電率推定部3と、開放電圧法充電率推定法4と、減算器5と、誤差推定部6と、減算器7と、を有する。バッテリBは、本実施例にあっては、リチャージャブルバッテリであり、たとえばリチウムイオンバッテリを用いるが、これに限られることはなく、ニッケル水素バッテリ等、他の種類のバッテリを用いてもよいことは言うまでもない。充放電電流検出部1は、バッテリBから図示しない電気モータ等へ電力を供給する場合の放電電流の大きさ、および制動時に電気モータを発電機として機能して制動エネルギの一部を回収したり地上の電源設備から充電したりする場合の充電電流の大きさを検出するもので、たとえば、シャント抵抗等を使ってバッテリBに流れる充放電電流値Iを検出する。検出した充放電電流値Iは、入力信号として電流積算法充電率推定部3と開放電圧法充電率推定法4との双方へ入力される。なお、電流検出部1は、種々の構造形式を有するものを適宜採用でき、本発明の充放電電流検出手段に相当する。端子電圧検出部2は、バッテリBの端子間の電圧を検出するものであり、ここで検出した端子電圧値Vは開放電圧法充電率推定法4へ入力される。なお、電圧検出部2は、種々の構造形式を有するものを適宜採用でき、本発明の端子電圧検出手段に相当する。電流積算法充電率推定部3は、減算器7で最終的に得られるバッテリBの充電率SOCと充放電電流検出部1で検出された充放電電流値Iとが入力されて、この充放電電流値Iを積算して電流積算値を算出することでバッテリBに出入りした電荷量を求め、これと減算器7から入力された充電率SOCとから電流積算法充電率SOCiを算出するとともに、あらかじめ得られている充放電電流検出部1の検出精度に関する情報q図2参照に基づいて電流積算法分散Qiを求めるものである。なお、電流積算法充電率SOCiは、真の充電率SOCに誤差niが重畳された値になっている。また、電流積算法充電率推定部3は、本発明の電流積算法充電率推定手段に相当する。図2に、この電流積算法充電率推定部3の具体的構成を示す。同図に示すように、電流積算法充電率推定部3は、係数倍器31および積分器32からなる充電率算出部3Aと、電流積算法分散算出部3Bと、を備える。積分器32は、乗算器321と、遅延器322と、加算器323と、を有する。乗算器31は、充放電電流検出部1から演算周期TSごとに得られた充放電電流値I平均値に、係数1FCCを掛ける演算器である。ここで、FCCはバッテリBの満充電気量であり、バッテリBの公称値新品時の値でも、劣化度を考慮した値のいずれでも良い。積分器32の乗算器321は、係数倍器31からの出力値に演算周期TSを掛けるものであり、この出力値はそのとき現在の充電率となる。遅延器322は、減算器7で得た充電率SOCに1zzはz変換を示すを掛けて現在より1つ前の充電率SOCを得るものである。加算器323は、乗算器321からの出力値と遅延器322からの出力値とを加算して、電流積算法充電率SOCiを出力する。一方、電流積算法分散算出部3Bは、あらかじめ得られている充放電電流検出部1の検出精度に関する情報qに基づき、電流積算法分散Qiを求めるものであって、この算出には、以下の式を用いて再帰的行列演算を行う。なお、以下の式において、Pは共分散行列、Fは状態遷移行列、Qはノイズ行列、TSは演算周期であり、添え字kは時刻、上付き添え字Tは転置を表す記号である。ここで、Qiは共分散行列P中のP11として求まる。開放電圧法充電率推定部4は、充放電電流検検出部1から演算周期TSごとに得られた充放電電流値Iと、端子電圧検出部2から演算周期TSごとに入力された端子電圧値Vと、に基づき、バッテリBのバッテリ等価回路モデルを用いて推定した開放電圧値VOCVから開放電圧法充電率SOCVを求めるとともに、充放電電流検出部1および端子電圧検出部2のあらかじめ与えられた検出精度の情報を元に開放電圧値VOCVの分散POCVや開放電圧法充電率SOCVの分散PSOCV=Qvを算出するものである。本実施例では、開放電圧法充電率推定部4には、カルマンフィルタを用いる。カルマンフィルタについては後で説明する。なお、開放電圧法充電率推定部4は、本発明の開放電圧法充電率推定手段に相当する。図3に、開放電圧法充電率推定部4の具体的構成を示す。開放電圧法充電率推定部4は、同図に示すように、開放電圧推定部4Aと、充電率算出部4Bと、遅延器4Cと、開放電圧部コンデンサ容量算出部4Dと、を有する。開放電圧推定部4Aは、充放電電流検出部1から演算周期TSごとに得られた充放電電流値Iと、端子電圧検出部2から演算周期TSごとに得られた端子電圧値Vと、開放電圧部コンデンサ容量算出部4Dから入力された開放電圧部コンデンサ容量値COCVと、が入力され、カルマンフィルタを用いてバッテリBの開放電圧値VOCVを推定するとともに、あらかじめ得られている充放電電流検出部1と端子電圧検出部2の検出精度に関する情報から、開放電圧の分散POCVを算出するものである。充電率算出部4Bは、開放電圧推定部4Aで推定した開放電圧値VOCVに基づき、あらかじめ計測して記憶している、開放電圧値と開放電圧法充電率との関係のデータを用いて開放電圧法充電率SOCVを算出するとともに、開放電圧推定部4Aで算出した開放電圧の分散POCVに基づき、開放電圧法充電率SOCVの分散PSOCVを算出するものである。なお、充電率算出部4Bで推定した開放電圧法充電率SOCVは、図1に示すように、真の充電率SOCに推定誤差nvが重畳した値となっている。遅延器4Cは、開放電圧推定部4Aで推定した開放電圧値VOCVが入力されて1zが掛けられて現在の1つ前の開放電圧値を算出するものである。開放電圧部コンデンサ容量算出部4Dは、遅延器4Cで算出された開放電圧値に基づき、バッテリBの開放電圧コンデンサ容量値COCVを算出して開放電圧推定部4Aへ出力するものである。なお、開放電圧コンデンサ容量値COCVは、COCV=FCC/{100×1つ前のサンプリング時に得られた開放電圧値のときの開放電圧法充電率SOCVに対する開放電圧の傾き}の式を用いて得られる。減算器5は、開放電圧法充電率推定部4で得た開放電圧法充電率SOCVから電流積算法充電率推定部3で得た電流積算法充電率SOCiを減算して得た減算値yを誤差推定部6へ出力するものである。誤差推定部6は、電流積算法充電率推定部3で得た電流積算法分散Qiと、減算器5で得た充電率の減算値yと、開放電圧法充電率推定部4で得た開放電圧法分散QVと、に基づき、カルマンフィルタを用いて、電流積算法充電率SOCiの推定誤差niを推定するものである。なお、誤差推定部6では、開放電圧法充電率SOCVの推定誤差nvも推定される。誤差推定部6は、本発明の誤差推定手段に相当する。ここで、上記開放電圧法充電率推定部4や誤差推定部6で用いるカルマンフィルタにつき、説明する。開放電圧法充電率推定部4でのカルマンフィルタでは、バッテリBのバッテリ等価回路モデルに、実際のバッテリBと同じ入力充放電電流、端子電流、バッテリ温度などを入力し、これらの出力端子電圧を比較し、両者に差があれば、この差にカルマンゲインを掛けてフィードバックし、誤差が最小になるようにバッテリ等価回路モデルを修正していく。これを逐次繰り返して、真の内部状態量である開放電圧値などを推定する。誤差推定部6でのカルマンフィルタでは、誤差モデルで推定した誤差の差を減算器5で得た充電率の減算値と比較し、両者に差があれば、この差にカルマンゲインを掛けてフィードバックし、誤差が最小になるように推定誤差を修正していく。これを逐次繰り返して、真の充電率推定誤差を推定する。カルマンフィルタでは、以下のような離散システムを考える。ただし、添え字kは時刻を表わしている。また、上記式でである。ここで、プロセスノイズと検出部ノイズは、平均値0、分散Q、Rの正規性白色ノイズであって、電流積算法充電率推定部3と開放電圧法充電率推定部4とでそれぞれ求めた充電率の分散Qi、Qvを用いて、以下の式で表される。本実施例では、電流積算法充電率推定部3と開放電圧法充電率推定部4とで算出された分散の値を用いるので、上記値は可変値となる。したがって、誤差推定部6の上流側にある電流積算法充電率推定部3と開放電圧法充電率推定部4との逐次的な推定精度分散の値を考慮した誤差推定が可能となり、より高精度での充電率SOCの推定が可能となる。カルマンフィルタは、以下の式を用いたアルゴリズムを利用する。ここで、Kkはカルマンゲイン、Xkは推定平均値、Pkは推定分散値である。図4に示すように、カルマンフィルタは、分散値算出部8と、カルマンゲイン算出部9と、平均値算出部10と、を備えている。分散値算出部8は、共分散行列Pと、ノイズ行列Qと、分散値算出部8からの出力値である分散値と、カルマンゲイン算出部9からのカルマンゲインKが入力され、上記式3を用いて推定分散値Pkを算出するものである。カルマンゲイン算出部9は、分散値算出部8から入力された推定分散値Pkと正規白色ノイズRとが入力され、上記式1を用いてカルマンゲインKを算出するものである。平均値算出部10は、減算器11と、乗算器12と、加算器13と、遅延器14と、乗算器15と、乗算器16と、を有し、減算器5から入力された観測値y=SOCV-SOCiとカルマンゲイン算出部9で得られたカルマンゲインKとに基づき、上記式2を用いて、状態変数xを演算するものである。平均値算出部11の減算器11は、入力された観測値yから乗算器16の出力値を減算するものである。乗算器12は、カルマンゲイン算出部9で得たカルマンゲインKに減算器11の出力値を掛けるものである。加算器13は、乗算器12の出力値と乗算器15の出力値とを加算して得た加算値を遅延器14へ出力するものである。遅延器14は、加算器13の加算値に1zをかけて現在の1つ前の加算値を得てこの値を状態変数xとするものである。乗算器15は、状態行列Fに遅延器14から入力された状態変数xを掛けて得た値を加算器13と乗算器16へ出力するものである。乗算器16は、出力行列Hに乗算器15の出力値を掛けて得た値を減算器11へ出力するものである。なお、カルマンフィルタでは、もともとバッテリBの状態量を推定するに際し、その推定の平均値と分散値を逐次的に推定算出しているので、これらの値を新たに別途算出する必要はない。減算器7は、電流積算法充電率推定部3で推定した電流積算法充電率SOCiから、誤差推定部6で得た推定誤差niを減算して、バッテリBの充電率SOCを得るものである。減算器7は、本発明の充電率算出手段に相当する。上記実施例1の充電率算出装置は、以下のように作用する。バッテリBの充放電電流値Iと端子電圧値Vとは、充放電電流検出部1と端子電圧検出部2とにより充電率算出装置の起動中、逐次検出される。なお、これらの検出値は検出したアナログ値がデジタル値に変換されて、それらの後のデジタル演算に利用される。電流積算法充電率推定部3では、充放電電流値と、充放電電流検出部1のあらかじめ与えておいた情報分散と、減算器7で得た充電率SOCと、に基づき、電流積算法充電率SOCiとこの分散Qiとを得る。一方、開放電圧法充電率推定部4では、充放電電流値Iと、端子電圧値Vと、充放電電流検出部1および端子電圧検出部2のあらかじめ与えておいた情報分散と、に基づき、カルマンフィルタを利用して、開放電圧法充電率SOCVとこの分散Qvとを得る。電流積算法充電率推定部3、開放電圧法充電率推定部4でそれぞれ得られた充電率の分散Qi、Qvと、減算器5で得られた観測値y=SOCV-SOCiとは、誤差推定部6に入力されて、ここでカルマンフィルタを利用して電流積算法充電率SOCiの推定誤差niを推定する。減算器7では、電流積算法充電率推定部3で得た電流積算法充電率SOCiからこのノイズとしての推定誤差niを減算して、バッテリBの充電率SOCを得る。ここで、推定された充電率の時間的変化の結果につき、実施例1の充電率算出装置と従来発明に記載のものとで比較した結果のイメージを図5に示す。なお、同図において、aは電流積算法を用いて得られた充電率の時間的変化を示す図、bは開放電圧法を用いて得られた充電率の時間的変化を示す図、cは従来発明で得られた充電率の時間的変化を示す図、dは実施例1の充電率推定装置で得られた充電率の時間的変化を示す図である。図5aに示すように、電流積算法による充電率の推定値は、時間が経過するにしたがって、誤差も積算されて行き、充電率真値から大きくずれて行くことが分かる。また、図5bに示すように、開放電圧法による充電率の推定値と充電率真値との誤差は、時間が経つにつれ大きくなっていくということはないが、絶えず短い時間で充電率真値に対し、大きくなったり小さくなったりして、大きくずれていることが分かる。また、図5cに示すように、従来発明のもので得られた充電率は、補正されているため、この充電率の誤差は、上記電流積算法や開放電圧法に比べると小さくなっている。しかしながら、この補正は電圧値を元に電流値を補正しているため、電圧値の影響から逃れることができない。この結果、電流検出部のばらつきを十分に補正しきれず、時間が経つにつれて誤差が大きくなっていくことが分かる。一方、図5dに示すように、実施例1の充電率推定装置では、電圧の変動や充放電電流検出部1のばらつきをよく吸収して誤差を従来発明の場合より小さく抑え、かつ時間が経っても誤差が増大していかないことが分かる。次に、シミュレーションを行って得た、実施例1の充電率算出装置で推定した充電率SOCと充電率真値との比較結果を、図6に示す。電流積算法充電率推定部3で推定した電流積算法充電率SOCiは、図6aに示すように、時間が経つにしたがって大きくずれて行くことが分かる。また、開放電圧法充電率推定部4で推定した、開放電圧法充電率SOCVは、図6bに示すように、時間が経つにしたがって大きくずれて行くことはないものの、絶えず短時間で大きく変動し、たびたび大きな誤差が生じることが分かる。しかしながら、実施例1の充電率推定装置では、図6cに示すように、電流積算法充電率推定部3と開放電圧法充電率推定部4で平均値、分散を考慮して誤差推定部6や減算器7で得た充電率SOCは、真値からのずれ、すなわち誤差は小さく、また時間が経つにしたがって大きくずれて行くこともないことが分かる。すなわち、実施例1の充電率推定装置は、高精度で充電率を推定できることが分かる。以上のように、実施例1のバッテリの充電率推定装置にあっては、以下の効果を得ることができる。実施例1のバッテリの充電率推定装置にあっては、電流積算法充電率推定部3、開放電圧法充電率推定部4で電流積算法充電率SOCiと開放電圧法充電率SOCVを求めるとき、併せて平均値および分散をも用いて統計的な処理を施し、これらから推定誤差を求めて充電率を算出するようにしたので、充放電電流検出部1や端子電圧検出部2の特性の変動やばらつきがあっても、従来発明のものよりも高い精度でバッテリBの充電率SOCを推定できるようになる。また、開放電圧法充電率推定部4および誤差推定部6には、それぞれカルマンフィルタを用いたので、バッテリBの状態量を容易かつ高い精度で推測できるようになるとともに、カルマンフィルタではもともと推定平均値と推定分散値を逐次的に推定算出していることから、これらの値を新たに別途算出する必要がなくなる。また、電流積算法充電率推定部3では、減算器7で得た充電率を用いて電流積算法充電率SOCiを推定するので、高精度で流積算法充電率SOCiを推定することが可能となる。次に、本発明に係る実施例2のバッテリの充電率推定装置につき、図7に基づいて説明する。なお、実施例2にあっては、実施例1と同様の構成部分には実施例1のものと同じ番号を付し、それらの説明は省略する。実施例2の充電率推定装置では、図1の実施例1において、電流積算法充電率推定部3の遅延器32に減算器7の出力値である充電率SOCを入力しているが、実施例2では減算器7の充電率SOCの代わりに、電流積算法充電率推定部3の出力値である電流積算法充電率SOCiを用いて、これを遅延器32へ入力するようにしている。その他の構成は、実施例1と同じである。このように、電流積算法充電率推定部3の遅延器32に電流積算法充電率推定部3から出力された電流積算法充電率SOCiを入力しても、実施例1の場合より若干誤差が大きくなるものの、従来発明のものより充電率の誤差を小さくすることができる。以上、本発明を上記各実施例に基づき説明してきたが、本発明はこれらの実施例に限られず、本発明の要旨を逸脱しない範囲で設計変更等があった場合でも、本発明に含まれる。たとえば、本発明にあっては、実施例1、2ではノイズ行列Qを可変値としたが、通常のカルマンフィルタのように固定値を用いることも可能である。この場合、可変値を用いた場合より若干推定精度は低下するものの、従来発明で得た推定精度より高い精度を得ることができることは言うまでもない。