二次電池の制御装置であって、二次電池の充放電電流を検出する手段と、前記二次電池の端子電圧を検出する手段と、前記二次電池を定電流で充電した場合の端子電圧と充電状態との関係、又は前記二次電池を定電流で放電した場合の端子電圧と充電状態との関係を記憶する記憶手段と、前記二次電池の前記充電電流又は放電電流の変動が所定値以下である状態が一定時間以上継続する場合に、前記記憶手段に記憶された関係を用いて前記二次電池の端子電圧から前記二次電池の充電状態を算出する手段と、を備えることを特徴とする二次電池の制御装置。二次電池の制御装置であって、二次電池の充放電電流を検出する手段と、前記二次電池の端子電圧を検出する手段と、前記二次電池を定電流で充電した場合の端子電圧と充電状態との関係、又は前記二次電池を定電流で放電した場合の端子電圧と充電状態との関係を記憶する記憶手段と、前記二次電池の充電電流又は放電電流を所定時間にわたって積算することで第1の充電状態を算出する第1充電状態算出手段と、前記二次電池の前記充電電流又は放電電流の変動が所定値以下である状態が一定時間以上継続する場合に、前記記憶手段に記憶された関係を用いて前記二次電池の端子電圧から前記二次電池の第2の充電状態を算出する第2充電状態算出手段と、前記第1充電状態と前記第2充電状態とを用いて前記二次電池の充電状態を算出する手段と、を備えることを特徴とする二次電池の制御装置。二次電池の制御装置であって、二次電池の充放電電流を検出する手段と、前記二次電池の端子電圧を検出する手段と、前記二次電池を定電流で充電した場合の端子電圧と充電状態との関係、又は前記二次電池を定電流で放電した場合の端子電圧と充電状態との関係を記憶する記憶手段と、前記二次電池の充電電流又は放電電流を所定時間にわたって積算することで第1の充電状態を算出する第1充電状態算出手段と、前記二次電池の前記充電電流又は放電電流の変動が所定値以下である状態が一定時間以上継続する場合に、前記記憶手段に記憶された関係を用いて前記二次電池の端子電圧から前記二次電池の第2の充電状態を算出し、それ以外の場合に、前記二次電池の充電電流又は放電電流と端子電圧のペアデータを用いて前記二次電池の第2の充電状態を算出する第2充電状態算出手段と、前記第1充電状態と前記第2充電状態とを用いて前記二次電池の充電状態を算出する手段と、を備えることを特徴とする二次電池の制御装置。二次電池の制御装置であって、二次電池の充放電電流を検出する手段と、前記二次電池の端子電圧を検出する手段と、前記二次電池を定電流で充電した場合の端子電圧と充電状態との関係、又は前記二次電池を定電流で放電した場合の端子電圧と充電状態との関係を記憶する記憶手段と、前記二次電池の前記充電電流又は放電電流の変動が所定値以下であり、かつ、前記充電電流又は放電電流を積算して得られる充電状態が所定値以上変化する場合に、前記記憶手段に記憶された関係を用いて前記二次電池の端子電圧から前記二次電池の充電状態を算出する手段と、を備えることを特徴とする二次電池の制御装置。二次電池の制御装置であって、二次電池の充放電電流を検出する手段と、前記二次電池の端子電圧を検出する手段と、前記二次電池を定電流で充電した場合の端子電圧と充電状態との関係、又は前記二次電池を定電流で放電した場合の端子電圧と充電状態との関係を記憶する記憶手段と、前記二次電池の充電電流又は放電電流を所定時間にわたって積算することで第1の充電状態を算出する第1充電状態算出手段と、前記二次電池の前記充電電流又は放電電流の変動が所定値以下であり、かつ、前記充電電流又は放電電流を積算して得られる充電状態が所定値以上変化する場合に、前記記憶手段に記憶された関係を用いて前記二次電池の端子電圧から前記二次電池の第2の充電状態を算出する第2充電状態算出手段と、前記第1充電状態と前記第2充電状態とを用いて前記二次電池の充電状態を算出する手段と、を備えることを特徴とする二次電池の制御装置。二次電池の制御装置であって、二次電池の充放電電流を検出する手段と、前記二次電池の端子電圧を検出する手段と、前記二次電池を定電流で充電した場合の端子電圧と充電状態との関係、又は前記二次電池を定電流で放電した場合の端子電圧と充電状態との関係を記憶する記憶手段と、前記二次電池の充電電流又は放電電流を所定時間にわたって積算することで第1の充電状態を算出する第1充電状態算出手段と、前記二次電池の前記充電電流又は放電電流の変動が所定値以下であり、かつ、前記充電電流又は放電電流を積算して得られる充電状態が所定値以上変化する場合に、前記記憶手段に記憶された関係を用いて前記二次電池の端子電圧から前記二次電池の第2の充電状態を算出し、それ以外の場合に、前記二次電池の充電電流又は放電電流と端子電圧のペアデータを用いて前記二次電池の第2の充電状態を算出する第2充電状態算出手段と、前記第1充電状態と前記第2充電状態とを用いて前記二次電池の充電状態を算出する手段と、を備えることを特徴とする二次電池の制御装置。上記の第1の方法と第2の方法でSOCを算出し、これらを適宜組み合わせて最終的なSOCを算出する方法は有効であるが、その前提として、これらの方法で算出されたSOCの精度が確保されていることが必要である。ところが、特に第2の方法では、二次電池の充放電履歴によりSOCを算出するものであり、充放電電流と端子電圧のペアデータから回帰分析により無負荷電圧を算出しているため、回帰分析の精度が直接的にSOCの推定精度に影響を及ぼす。したがって、充放電電流と端子電圧のペアデータが適度に分散している場合にはともかく、充放電電流と端子電圧のペアデータが偏っている場合には、SOCの算出精度が低下してしまう問題がある。本発明の目的は、少なくとも二次電池の充放電履歴により充電状態を算出する技術を含む場合において、充放電電流と端子電圧のペアデータが偏っているような場合においても高精度に充電状態を算出することができる装置を提供することにある。本発明は、二次電池の制御装置であって、二次電池の充放電電流を検出する手段と、前記二次電池の端子電圧を検出する手段と、前記二次電池を定電流で充電した場合の端子電圧と充電状態との関係、又は前記二次電池を定電流で放電した場合の端子電圧と充電状態との関係を記憶する記憶手段と、前記二次電池の前記充電電流又は放電電流の変動が所定値以下である状態が一定時間以上継続する場合に、前記記憶手段に記憶された関係を用いて前記二次電池の端子電圧から前記二次電池の充電状態を算出する手段とを備えることを特徴とする。本発明では、二次電池の充電電流又は放電電流の変動が所定値以下である状態が一定時間以上継続する場合、すなわち実質的に定電流での充電若しくは放電が一定時間以上継続する場合に、電流履歴を用いて充電状態を算出するのではなく、予め求められている二次電池の定電流での充電若しくは放電における端子電圧と充電状態との関係を用いて、検出された二次電池の端子電圧に対応する充電状態を検出する。二次電池では、頻繁に充放電が繰り返されるような使用方法では、分極が充放電の履歴の影響を受ける。これにより二次電池の端子電圧は同じ充電状態でも変化する。しかしながら、定電流での充電若しくは放電が一定時間以上継続すると、充電若しくは放電による分極の発生が安定してくるため、二次電池の端子電圧と充電状態との所定の関係を用いて二次電池の充電状態を算出することができる。また、本発明は、二次電池の制御装置であって、二次電池の充放電電流を検出する手段と、前記二次電池の端子電圧を検出する手段と、前記二次電池を定電流で充電した場合の端子電圧と充電状態との関係、又は前記二次電池を定電流で放電した場合の端子電圧と充電状態との関係を記憶する記憶手段と、前記二次電池の前記充電電流又は放電電流の変動が所定値以下であり、かつ、前記充電電流又は放電電流を積算して得られる充電状態が所定値以上変化する場合に、前記記憶手段に記憶された関係を用いて前記二次電池の端子電圧から前記二次電池の充電状態を算出する手段とを備えることを特徴とする。本発明では、二次電池の充電電流又は放電電流の変動が所定値以下であり、電流積算により得られる充電状態が所定値以上変化する場合、すなわち実質的に定電流での充電若しくは放電が継続して充電状態が変化する場合に、電流履歴を用いて充電状態を算出するのではなく、予め求められている二次電池の定電流での充電若しくは放電における端子電圧と充電状態との関係を用いて、検出された二次電池の端子電圧に対応する充電状態を検出する。二次電池では、頻繁に充放電が繰り返されるような使用方法では、分極が充放電の履歴の影響を受ける。これにより二次電池の端子電圧は同じ充電状態でも変化する。しかしながら、定電流での充電若しくは放電が一定時間以上継続すると、充電若しくは放電による分極の発生が安定してくるため、二次電池の端子電圧と充電状態との所定の関係を用いて二次電池の充電状態を算出することができる。本発明の1つの実施形態では、電流積算により得られた充電状態と、上記の手段により得られた充電状態とを用いて、二次電池の最終的な充電状態を算出する。また、本発明の他の実施形態では、電流積算により得られた充電状態と、電流履歴により得られた充電状態とを用いて二次電池の最終的な充電状態を算出する場合において、実質的に定電流での充電若しくは放電が一定時間以上あるいは充電状態の変化量が所定量以上である場合に、電流履歴に代えて上記の手段により得られた充電状態を用いて二次電池の最終的な充電状態を算出する。本発明によれば、二次電池の充電状態を高精度に算出することができる。したがって、二次電池の充電状態に応じて充放電を制御する場合においても、高精度に算出された充電状態を用いた信頼性の高い制御が可能となる。以下、図面に基づき本発明の実施形態について説明する。<基本構成及び基本原理>まず、本実施形態の基本構成及び基本原理について説明する。本実施形態では、二次電池の電流及び電圧端子電圧、さらには必要に応じて温度をそれぞれセンサで検出して取得する。そして、これら電流値と電圧値を用いて、二次電池の制御装置としての電池ECUが二次電池の充電状態SOCを算出する。SOCは、満充電状態を100とした場合の残存容量の比率で表現されるが、充電状態を残存容量の絶対値Ahで算出してもよい。算出されたSOCは、上位の制御装置、例えば二次電池が車両に搭載される場合には、車両の走行を制御する車両ECUに供給する。本実施形態における電池ECUは、従来におけるSOC算出の2つの方法を基本的に用いてSOCを算出する。すなわち、電流積算を用いた第1の方法と、充放電履歴を用いた第2の方法とを併用する。但し、第2の方法でSOCを算出する場合に、充放電電流と端子電圧のペアデータが適度に分散している場合と偏っている場合とで、SOCの算出方法を切り替える。具体的には、充放電電流と端子電圧のペアデータが適度に分散しており回帰分析の精度が担保される場合には、従来の第2の方法をそのまま援用してSOCを算出する。一方、充放電電流と端子電圧のペアデータが偏っていて回帰分析の精度が確保されない場合には、電流値の変動幅が所定値以下であり、かつ、電流積算で得られたSOCの変化量が所定量以上であるとの条件の下で、端子電圧とSOCの2次元マップを用いてSOCを算出する。電流値の変動幅が所定値以下であり、かつ、SOCの変化量が所定値以上である場合とは、一定時間以上定電流状態が継続する場合であり、このようにほぼ定電流の充電若しくは放電が継続すると、分極が充電若しくは放電側で安定して発生してくるため、既知の定電流の充電若しくは放電曲線にほぼ合致してくる。本実施形態では、このような原理に基づき、ほぼ定電流の充電若しくは放電が継続した場合に、既知の充電曲線若しくは放電曲線を用いてSOCを算出するのである。既知の充電曲線及び放電曲線は、予め記憶手段にテーブルあるいはマップとして記憶しておく。本実施形態では、第2の方法で算出する場合に、場合に応じてさらに2つの方法これを便宜上、A方法とB方法と称するで算出するといえる。そして、第1の方法でSOCを算出し、第2の方法A方法あるいはB方法のいずれか、あるいはA方法とB方法をともに用いてでSOCを算出すると、これらの方法で算出したSOCを用いて補正演算を行う。補正演算は、第1の方法で算出したSOCを、第2の方法で算出したSOCで補正することにより実行される。すなわち、第1の方法で算出したSOCと第2の方法で算出したSOCとの差に応じて、補正係数を第1の方法で算出したSOCに乗算することで補正する。補正係数は、予め充放電実験等を行うことにより求めてテーブルとして記憶しておく。以上のようにして補正されたSOCを最終的な推定SOCとして出力する。本実施形態では、従来の第2の方法でSOCを算出する場合において、回帰分析の精度が担保されないような場合に、他の方法でSOCを算出して精度を確保できるため、結果として最終的に算出されるSOCの精度低下を効果的に抑制することができる。次に、ハイブリッド自動車に搭載される場合を例にとり、本実施形態をより具体的に説明する。<第1実施形態>本実施形態のハイブリッド自動車は、駆動輪に動力を伝達する動力源としてエンジンとモータを備え、モータへの電力源として二次電池が搭載される。二次電池に充電が必要な場合には、エンジンの動力の一部が発電機に伝達され、発電機で生じた電力が二次電池に供給される。また、ハイブリッド車両の減速時や制動時においても、モータが発電機として利用され、モータにより発生した電力も二次電池に供給される。二次電池の入出力、すなわち充放電は、電池ECUにより制御され、モータは車両ECUにより制御される。図1に、本実施形態のシステム構成図を示す。二次電池10は、電池ブロックを直列に接続して構成される。各電池ブロックは、1個または複数の電池モジュールを電気的に直列に接続して構成され、各電池モジュールは、さらに1個または複数の単電池セルを電気的に直列に接続して構成される。単電池はニッケル水素電池やリチウムイオン電池等である。二次電池10には、電池ECU12が接続される。電池ECU12は、電流測定部16と、電圧測定部18と、温度測定部20と、制御部22と、記憶部34を備える。電流測定部16は、二次電池10の充放電電流を測定する。具体的には、電流センサで測定したアナログ電流値をデジタル電流データに変換して制御部22に出力する。電圧測定部18は、二次電池10の端子電圧を測定する。具体的には、電圧センサで各電池ブロック毎に測定したアナログ端子電圧値をデジタル電圧データに変換して制御部22に出力する。温度測定部20は、二次電池10の温度を測定する。具体的には、温度センサで二次電池10の特定箇所あるいは複数個所で測定したアナログ温度値をデジタル温度データに変換して制御部22に出力する。制御部22は、第1SOC算出部24と、第2SOC算出部26と、補正部32を備える。また、第2SOC算出部26は、A算出部28と、B算出部30を備える。第1SOC算出部24は、電流測定部16からの電流データに基づき、第1の方法で二次電池10のSOCを算出する。第1の方法とは、二次電池10の充放電時の電流を積算してSOCを算出する方法である。具体的には、第1SOC算出部24は、記憶部34に記憶された電流データを読み出し、電流値が充電時放電時を、充電時を-とするの場合に充電効率を乗算する。得られた電流値を設定時間にわたって積算して積算容量Qを算出する。そして、予め実験により求められた満充電時の容量と積算容量Qとの差を求め、満充電時の容量に対する差の比率としてSOCを算出する。第1SOC算出部24は、算出したSOCを補正部32に出力する。第2SOC算出部26は、電流測定部16からの電流データ、電圧測定部18からの電圧データ、温度測定部20からの温度データに基づき、A方法あるいはB方法で二次電池10のSOCを算出する。A方法は、A算出部28で算出される方法であり、二次電池10の充放電履歴に基づいてSOCを算出する方法である。A算出部28は、二次電池10の電池ブロック毎に充放電された電流と端子電圧のペアデータを複数取得し、これらを充放電履歴として記憶部34に記憶する。そして、記憶されたペアデータの中から代表となる電池ブロックの平均的なペアデータを選択し、回帰分析を用いて1次の近似直線を求める。求めた近似直線から電流値がゼロに対応する電圧値を無負荷電圧として求め、、無負荷電圧とSOCの二次元マップから対応するSOCを算出する。B方法は、B算出部30で算出される方法であり、二次電池10のほぼ定電流での充電若しくは放電の状態が一定時間継続して続く場合にSOCを算出する方法である。一般に、充放電を繰り返している場合には、分極の影響が不明であるため、二次電池10の端子電圧からSOCを算出することは困難であるが、ほぼ定電流の充電若しくは放電が一定時間以上継続すると、分極が充電若しくは放電側に安定して発生し、ほぼ定電流の充電若しくは放電曲線にほぼ合致するようになる。定電流での充電曲線若しくは定電流での放電特性は、予め実験により求めることができるから、予め求められた定電流での充電曲線及び放電曲線を記憶部34に記憶しておけば、これを用いて二次電池10の端子電圧からSOCを算出することができる。このように、第2SOC算出部26は、A算出部28またはB算出部30でSOCを算出して補正部32に出力する。すなわち、第2SOC算出部26は、ほぼ定電流での充電若しくは放電が一定時間以上継続している場合にはB算出部30で算出されたSOCを選択的に出力し、それ以外の場合にはA算出部28で算出されたSOCを選択的に出力する。ほぼ定電流での充電若しくは放電が一定時間以上継続している場合には、電流値の変動幅が所定値以下であり、かつ、電流積算により得られたSOCの変化量が所定値以上となるため、第2SOC算出部26は、この条件を満たすか否かにより出力を切り替える。この処理についてはさらに後述する。補正部32は、第1SOC算出部24から出力されたSOC以下、これを第1SOCと称すると、第2SOC算出部26から出力されたSOC以下、これを第2SOCと称するに基づき、最終的なSOCを算出して車両ECU14に二次電池10のSOCとして出力する。具体的には、第1SOCと、第2SOCとの差に応じた補正係数を第1SOCに乗算することにより補正する。第1SOCと第2SOCの差と補正係数との関係は、予め実験的に求めて記憶部34にテーブルとして記憶させておく。図2に、本実施形態におけるSOC算出処理の処理フローチャートを示す。まず、電池ECU12は、二次電池10の電流データ、電圧データ端子電圧データ、温度データを所定の制御タイミングで取得し、記憶部34に順次記憶するS101。次に、電池ECU12内の第1SOC算出部24は、記憶部34に記憶された電流データを用いて第1SOCを算出するS102。また、これと並行して、第2SOC算出部26は、記憶部34に記憶された電流データ、電圧データ、温度データを用いて第2SOCを算出するS103。第2SOCは、上記のとおり、A算出部28及びB算出部30で算出され、これらを充放電状態に応じて適応的に切り替えて出力されたSOCである。第1SOC算出部24で算出された第1SOC、及び第2SOC算出部26で算出された第2SOCは、ともに補正部32に供給される。次に、電池ECU12内の補正部32は、第1SOCと第2SOCを用いて補正演算を行って最終的なSOCを算出するS104。補正部32は、補正演算して得られた最終的な結果を二次電池10のSOCとして車両ECU14に出力するS105。図3に、図2におけるS103の処理、すなわち第2SOC算出処理の詳細フローチャートを示す。まず、第2SOC算出部26は、記憶部34から電流データ、電圧データ、温度データを読み出して取得するS201。次に、第2SOC算出部26は、電流値の変動幅が所定量以下であるか否かを判定するS202。この判定は、実質的に定電流であるか否かを判定するものであり、電流値の変動幅を所定の閾値と大小比較することにより行われる。電流幅の変動幅が所定量以下である場合には、次に電流積算SOCの変化量が所定量以上であるか否かを判定するS203。この判定は、実質的に定電流での充電若しくは放電が一定時間以上継続しているか否かを判定するものであり、例えば、電流積算SOCの変化量が5以上であるか否かを判定する。電流積算SOCは第1SOC算出部24で算出される第1SOCをそのまま利用することができる。なお、5は例示であり、適宜設定することができる。但し、充放電が繰り返されることによる分極の影響が少なくなって定電流による充電曲線若しくは放電曲線に合致するには3~10、特に5程度が適当であるとの知見が実験的に得られている。この所定量を超えるようなSOCの変化量が存在すると、定電流での充電曲線若しくは放電曲線を利用することが可能であるが、所定量を大きくしすぎると例えば20等とすると、条件を満たす状況が出現する頻度が著しく低下してしまう。以上より、SOCの変化量としては3~10、特に5前後が好適である。電流値の変動幅が所定量以下であり、かつ、電流積算SOCの変化量が所定量以上であれば、B算出部30で算出されたSOCを選択して出力するS204。一方、この条件を満たさない場合には、A算出部28で算出されたSOCを選択して出力するS205。以上のように、本実施形態によれば、第1SOCと第2SOCを用いて二次電池10のSOCを算出する際に、第2SOCの算出精度が低下するような場合、すなわちほぼ定電流の充電若しくは放電が一定時間以上継続するような場合に、定電流での充電曲線若しくは放電曲線を用いて端子電圧からSOCを算出し、これをもって第2SOCとして算出するので、従来においてSOCの算出精度低下を招くような場合においてもこれを抑制し、高精度にSOCを算出できる。図4に、二次電池10の電流、電圧、SOCの時間変化の一例を示す。図4aは電流変化、図4bは電圧変化、図4cはSOC変化である。図中、B区間が実質的にほぼ定電流の区間であり、この区間の開始から一定時間経過した後に、A算出部28で算出されたSOCからB算出部30で算出されたSOCに切り替わる。図5に、定電流での充電曲線及び定電流での放電曲線を示す。図において、横軸はSOC、縦軸は端子電圧Vであり、放電曲線100及び充電曲線200をそれぞれ示す。放電曲線100に着目すると、定電流での放電に伴って、SOCが減少し、端子電圧もこれに応じて一義的に減少していく。一方、充放電が繰り返された場合、分極の発生が一定でないために、同じSOCでも端子電圧は大きく変動するため、必ずしも曲線100上に沿って変動するわけではないが、一定時間以上の定電流の放電が行われ、SOCが所定量以上例えば5以上変化すると、図の曲線150のようにSOCと端子電圧との関係が変化し、やがて分極の発生が安定して曲線100に合致するようになる図において、P点を合致点としてを示す。このように、分極の発生が安定して端子電圧とSOCとの関係が放電曲線100に合致するようになると、予め求められた放電曲線100に従ってSOCを算出できる。充電側も放電側と同様であり、定電流での充電が一定時間以上継続すると、曲線250のようにSOCと端子電圧との関係が変化し、やがて分極の発生が安定して曲線200に合致するようになる図において、R点を合致点として示す。そして、端子電圧とSOCとの関係が曲線200で規定されるような状況において、予め求められた充電曲線200に従ってSOCを算出できる。なお、ほぼ定電流での充電若しくは放電は、SOCが高い状態のときにエアコンが動作した状態のまま信号待ち等でエンジンが停止した状態となるとき、あるいはSOCが低下している状態のときにエンジンが動作した状態での停車が続いたとき、あるいは高速道路等の一定速度で負荷の変化が少ないようなときに出現する。また、電気自動車の場合には、一定速度で走行するときに定電流での放電が続く。したがって、このような走行状況のときにB算出部30で算出されたSOCを用いて二次電池10のSOCを算出するといえる。本実施形態では、充放電電流の変動が所定値以上である状態が一定時間以上継続する場合にB算出部30を用いているが、充電電流のみ、又は放電電流のみの変動に着目し、当該電流の変動が所定値以上である状態が一定時間以上継続する場合に、B算出部30を用いてもよい。この場合、記憶部34には、二次電池を定電流で充電した場合の端子電圧と充電状態との関係か、定電流で放電した場合の端子電圧と充電状態との関係のうち、対応するいずれか一方の関係のみを記憶しておけばよい。また、第1SOC算出部24による第1SOCの算出方法は、充放電電流の積算による方法に限られず、その他周知の方法を用いてもよい。<第2実施形態>第1実施形態では、図3のS203の処理で電流積算SOCの変化量が所定量以上であるか否かを判定しているが、この処理に代えて、電流値の変動幅が所定量以下の状態が一定時間以上継続しているか否かを判定する処理に代えてもよい。<第3実施形態>また、第1実施形態では、第2SOC算出部26のA算出部28あるいはB算出部30で二次電池10のSOCを算出しているが、第2SOC算出部26としてB算出部30のみを備え、第1SOC算出部24からの第1SOCと、B算出部30からの第2SOCに基づいて二次電池10のSOCを算出してもよい。<第4実施形態>さらに、第1実施形態において、車両が特定の走行状況にある場合に、B算出部30からの第2SOCを二次電池10の最終的なSOCとして出力することもできる。この場合、第1SOC算出部24、A算出部28、補正部32は不要となる。