(57)【要約】【課題】電池の状態を正確に推定すること。【解決手段】電池のインピーダンス値を所定の周期で測定する測定手段（Ｉ／Ｆ１０ｄ）と、測定手段によって測定されたインピーダンス値を格納する格納手段（ＲＡＭ１０ｃ）と、時間的に前後して測定された１組のインピーダンス値としてのインピーダンス値ペアの差分値が所定の閾値よりも大きいか否かを判定する判定手段（ＣＰＵ１０ａ）と、判定手段によって差分値が所定の閾値よりも大きいと判定されたインピーダンス値ペアが複数存在する場合には、当該インピーダンス値ペアに共通に含まれているインピーダンス値については測定誤差を含むとして除外する除外手段（ＣＰＵ１０ａ）と、除外手段によって除外されなかったインピーダンス値に基づいて電池の内部状態を推定する推定手段（ＣＰＵ１０ａ）とを有することを特徴とする。【選択図】図２
2011203189.tif 000002
【特許請求の範囲】
【請求項１】
電池の内部状態を推定する電池内部状態推定装置において、
前記電池のインピーダンス値を所定の周期で測定する測定手段と、
前記測定手段によって測定されたインピーダンス値を格納する格納手段と、
時間的に前後して測定された１組のインピーダンス値としてのインピーダンス値ペアの差分値が所定の閾値よりも大きいか否かを判定する判定手段と、
前記判定手段によって前記差分値が所定の閾値よりも大きいと判定されたインピーダンス値ペアが複数存在する場合には、当該インピーダンス値ペアに共通に含まれているインピーダンス値については測定誤差を含むとして除外する除外手段と、
前記除外手段によって除外されなかったインピーダンス値に基づいて前記電池の内部状態を推定する推定手段と、
を有することを特徴とする電池内部状態推定装置。
【請求項２】
前記除外手段は、前記判定手段によって差分値が所定の閾値よりも大きいと判定されたインピーダンス値ペアが単独に存在する場合であって、測定開始時または測定終了時のインピーダンス値ペアであるときには、当該インピーダンス値ペアに含まれている先頭または末尾のインピーダンス値を除外することを特徴とする請求項１に記載の電池内部状態推定装置。
【請求項３】
前記測定手段は、前記電池に電流を放電させ、そのときの電圧値と電流値に基づいて前記インピーダンス値を測定することを特徴とする請求項１または２に記載の電池内部状態推定装置。
【請求項４】
前記除外手段は、差分値が所定の閾値よりも大きいと判定されたインピーダンス値ペアが２つ連続して存在する場合には、これら２つのインピーダンス値ペアに共通に含まれているインピーダンス値については測定誤差を含むとして除外することを特徴とする請求項１乃至３のいずれか１項に記載の電池内部状態推定装置。
【請求項５】
前記除外手段は、差分値が所定の閾値よりも大きいと判定されたインピーダンス値ペアが間隔を空けて２つ存在する場合には、当該２つのインピーダンス値ペアの間に存在するインピーダンス値ペアを構成するインピーダンス値については測定誤差を含むとして除外し、当該２つのインピーダンス値ペアについては測定されたタイミングが最先および最後のインピーダンス値以外を除外することを特徴とする請求項１乃至４のいずれか１項に記載の電池内部状態推定装置。
【請求項６】
各インピーダンス値ペアに対してビット情報が対応付けされており、
前記判定手段は、差分値が所定の閾値よりも大きいインピーダンス値ペアに対しては対応するビット情報を反転させ、
前記除外手段は、対応するビット情報が反転されているインピーダンス値ペアが複数存在する場合には、当該インピーダンス値ペアに共通に含まれているインピーダンス値については測定誤差を含むとして除外する、
ことを特徴とする請求項１乃至５のいずれか１項に記載の電池内部状態推定装置。
【請求項７】
電池の内部状態を推定する電池内部状態推定方法において、
前記電池のインピーダンス値を所定の周期で測定する測定ステップと、
前記測定ステップによって測定されたインピーダンス値をメモリに格納する格納ステップと、
時間的に前後して測定された１組のインピーダンスとしてのインピーダンス値ペアの差分値が所定の閾値よりも大きいか否かを判定する判定ステップと、
前記判定ステップにおいて前記差分値が所定の閾値よりも大きいと判定されたインピーダンス値ペアが複数存在する場合には、当該インピーダンス値ペアに共通に含まれているインピーダンス値については測定誤差を含むとして除外する除外ステップと、
前記除外ステップにおいて除外されなかったインピーダンス値に基づいて前記電池の内部状態を推定する推定ステップと、
を有することを特徴とする電池内部状態推定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電池内部状態推定装置および電池内部状態推定方法に関するものである。
【背景技術】
【０００２】
特許文献１には、鉛蓄電池の電圧および電流を複数回測定し、測定結果の平均値に基づいて鉛蓄電池の特性を推定する方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開昭５８−１９２２７０号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、電池に負荷が接続されている場合には、測定時に負荷に電流が流れると測定値に誤差が含まれてしまうため、正確な推定ができないという問題点がある。
【０００５】
そこで、本発明の目的は、電池の状態を正確に推定することができる電池内部状態推定装置および電池内部状態推定方法を提供することである。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の電池内部状態推定装置は、電池の内部状態を推定する電池内部状態推定装置において、前記電池のインピーダンス値を所定の周期で測定する測定手段と、前記測定手段によって測定されたインピーダンス値を格納する格納手段と、時間的に前後して測定された１組のインピーダンス値としてのインピーダンス値ペアの差分値が所定の閾値よりも大きいか否かを判定する判定手段と、前記判定手段によって前記差分値が所定の閾値よりも大きいと判定されたインピーダンス値ペアが複数存在する場合には、当該インピーダンス値ペアに共通に含まれているインピーダンス値については測定誤差を含むとして除外する除外手段と、前記除外手段によって除外されなかったインピーダンス値に基づいて前記電池の内部状態を推定する推定手段と、を有することを特徴とする。
このような構成によれば、電池の状態を正確に推定することができる。
【０００７】
また、他の発明は、上記発明に加えて、前記除外手段は、前記判定手段によって差分値が所定の閾値よりも大きいと判定されたインピーダンス値ペアが単独に存在する場合であって、測定開始時または測定終了時のインピーダンス値ペアであるときには、当該インピーダンス値ペアに含まれている先頭または末尾のインピーダンス値を除外することを特徴とする。
このような構成によれば、冒頭または末尾に測定誤差を含むインピーダンス値が存在する場合には当該値を確実に除外できる。
【０００８】
また、他の発明は、上記発明に加えて、前記測定手段は、前記電池に電流を放電させ、そのときの電圧値と電流値に基づいて前記インピーダンス値を測定することを特徴とする。
このような構成によれば、測定誤差を有するインピーダンス値を除外し、それ以外のインピーダンス値によって内部状態を推定することにより、再測定によって浪費される電力を少なくすることができる。
【０００９】
また、他の発明は、上記発明に加えて、前記除外手段は、差分値が所定の閾値よりも大きいと判定されたインピーダンス値ペアが２つ連続して存在する場合には、これら２つのインピーダンス値ペアに共通に含まれているインピーダンス値については測定誤差を含むとして除外することを特徴とする。
このような構成によれば、インピーダンス値ペアが２つ連続して存在する場合には、これらに共通に含まれるインピーダンス値を除外することにより、測定誤差を有するインピーダンス値を確実に除外することができる。
【００１０】
また、他の発明は、上記発明に加えて、前記除外手段は、差分値が所定の閾値よりも大きいと判定されたインピーダンス値ペアが間隔を空けて２つ存在する場合には、当該２つのインピーダンス値ペアの間に存在するインピーダンス値ペアを構成するインピーダンス値については測定誤差を含むとして除外し、当該２つのインピーダンス値ペアについては測定されたタイミングが最先および最後のインピーダンス値以外を除外することを特徴とする。
このような構成によれば、測定誤差を有するインピーダンス値が連続して存在する場合に、判断が不定となるインピーダンス値を除外することにより、より正確な測定を可能にすることができる。
【００１１】
また、他の発明は、上記発明に加えて、各インピーダンス値ペアに対してビット情報が対応付けされており、前記判定手段は、差分値が所定の閾値よりも大きいインピーダンス値ペアに対しては対応するビット情報を反転させ、前記除外手段は、対応するビット情報が反転されているインピーダンス値ペアが複数存在する場合には、当該インピーダンス値ペアに共通に含まれているインピーダンス値については測定誤差を含むとして除外する、ことを特徴とする。
このような構成によれば、ビット情報を用いることにより、少ない記憶容量で、かつ、測定誤差を含むインピーダンス値を確実に知ることが可能になる。
【００１２】
また、本発明は、電池の内部状態を推定する電池内部状態推定方法において、前記電池のインピーダンス値を所定の周期で測定する測定ステップと、前記測定ステップによって測定されたインピーダンス値をメモリに格納する格納ステップと、時間的に前後して測定された１組のインピーダンスとしてのインピーダンス値ペアの差分値が所定の閾値よりも大きいか否かを判定する判定ステップと、前記判定ステップにおいて前記差分値が所定の閾値よりも大きいと判定されたインピーダンス値ペアが複数存在する場合には、当該インピーダンス値ペアに共通に含まれているインピーダンス値については測定誤差を含むとして除外する除外ステップと、前記除外ステップにおいて除外されなかったインピーダンス値に基づいて前記電池の内部状態を推定する推定ステップと、を有することを特徴とする。
このような方法によれば、電池の状態を正確に推定することができる。
【発明の効果】
【００１３】
本発明によれば、電池の状態を正確に推定することが可能な電池内部状態推定装置および電池内部状態推定方法を提供することが可能となる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１実施形態に係る電池内部状態推定装置の構成例を示す図である。
【図２】図１に示す制御部の構成例を示す図である。
【図３】第１実施形態において実行される処理の流れを説明するためのフローチャートである。
【図４】電流および電圧とサンプリング期間との関係を示す図である。
【図５】実際の測定値の一例を示す図である。
【図６】図３のステップＳ２２の「除外処理」の詳細を説明するためのフローチャートである。
【図７】テーブルの一例を説明するための図である。
【図８】テーブルの他の一例を説明するための図である。
【図９】第２実施形態において実行される処理の一例を説明するためのフローチャートである。
【図１０】異常なインピーダンス値が連続して現れる場合の判定の内容を説明するための図である。
【発明を実施するための形態】
【００１５】
次に、本発明の実施形態について説明する。
【００１６】
（Ａ）第１実施形態の構成の説明
図１は本発明の第１実施形態に係る電池内部状態推定装置の構成例を示す図である。この図１に示すように、第１実施形態の電池内部状態推定装置１は、制御部１０、電圧検出部１１（請求項中の「測定手段」の一部に対応）、電流検出部１２（請求項中の「測定手段」の一部に対応）、および、放電回路１４を主要な構成要素としており、鉛蓄電池１３（請求項中の「電池」に対応）の内部状態を推定する。この例では、鉛蓄電池１３には、電流検出部１２を介してオルタネータ１５、セルモータ１６、および、負荷１７が接続されている。なお、本実施形態では、電池内部状態推定装置１が、例えば、自動車等の車両に搭載されている場合を例に挙げて説明する。これ以外の用途であってもよいことはいうまでもない。
【００１７】
制御部１０は、図２に示すように、ＣＰＵ（Central Processing Unit）１０ａ（請求項中の「判定手段」、「除外手段」、および、「推定手段」に対応）、ＲＯＭ（Read Only Memory）１０ｂ、ＲＡＭ（Random Access Memory）１０ｃ（請求項中の「格納手段」に対応）、および、Ｉ／Ｆ（Interface）１０ｄ（請求項中の「測定手段」の一部に対応）を主要な構成要素としている。ＣＰＵ１０ａは、ＲＯＭ１０ｂに格納されているプログラム１０ｂａに基づいて装置の各部を制御する。ＲＯＭ１０ｂは、半導体メモリによって構成され、プログラム１０ｂａその他の情報を格納している。ＲＡＭ１０ｃは、半導体メモリによって構成され、後述するインピーダンス値等を示す測定値１０ｃａその他の情報を書き換え可能に格納する。Ｉ／Ｆ１０ｄは、電圧検出部１１および電流検出部１２からの検出信号をデジタル信号に変換して入力するとともに、制御信号を供給して放電回路１４を制御する。
【００１８】
電圧検出部１１は、鉛蓄電池１３の端子電圧を検出して制御部１０に通知する。電流検出部１２は、鉛蓄電池１３に流れる電流を検出して制御部１０に通知する。放電回路１４は、例えば、半導体スイッチを内蔵しており、制御部１０の制御に応じてこの半導体スイッチをオンまたはオフすることにより、鉛蓄電池１３を放電させる。オルタネータ１５は、例えば、レシプロエンジン等の原動機（不図示）によって駆動され、直流電力を生成して鉛蓄電池１３を充電する。セルモータ１６は、例えば、直流モータによって構成され、鉛蓄電池１３から供給される直流電力によって回転し、原動機を始動する。負荷１７は、例えば、自動車のヘッドライト、ワイパー、方向指示ライト、ナビゲーション装置その他の装置によって構成されている。
【００１９】
（Ｂ）第１実施形態の動作の説明
つぎに、第１実施形態の動作を説明する。図３は、図１に示す第１実施形態において実行される処理の流れを説明するためのフローチャートである。このフローチャートの処理が開始されると、以下のステップが実行される。
【００２０】
ステップＳ１０では、ＣＰＵ１０ａは、処理の回数をカウントする変数ｉに初期値として「０」を代入する。
【００２１】
ステップＳ１１では、ＣＰＵ１０ａは、放電回路１４を制御して鉛蓄電池１３に蓄えられている電力を放電させる。より具体的には、所定の周期（例えば、１０ｍｓ周期）、かつ、所定のデューティー比（例えば、５０％のデューティー比）で放電回路１４をオンまたはオフすることで鉛蓄電池１３から放電回路１４に電流を通じる。
【００２２】
ステップＳ１２では、ＣＰＵ１０ａは、電圧検出部１１および電流検出部１２による検出値に基づいて鉛蓄電池１３の内部インピーダンスＺを算出する。具体的には、放電回路１４がオンの状態になっている場合に、例えば、０．１［ｍＳ］周期で電圧検出部１１および電流検出部１２による検出値をサンプリングし、得られた測定値により、鉛蓄電池１３を示すシミュレーションモデルを用いて適応学習を実行し、インピーダンス値を求める。
【００２３】
なお、本明細書中において「適応学習」とは、パラメータを有する柔軟で一般的なモデルを用意し、学習によって統計的・適応的にパラメータを最適化する手法を言う。適応学習としては、例えば、拡張カルマンフィルタを用いた手法がある。なお、本発明は拡張カルマンフィルタのみに限定されるものではなく、例えば、ニューラルネットワークモデルを用いた適応学習や、遺伝的アルゴリズムモデルを用いた適応学習等を用いることも可能である。すなわち、学習対象のモデルを作成し、観測により得られた結果によって、モデルを構成するパラメータを最適化する手法であれば、どのような手法でも使用することができる。
【００２４】
図４は、サンプリング動作の一例を示す図である。この図の例では、所定の周期τで放電が実行されるとともに、各放電動作中において複数回（例えば、５０回）のサンプリングが実行されて測定値が取得され、取得された複数の（例えば、５０回分の）測定値に基づいて適応学習により、それぞれの放電動作におけるインピーダンス値が算出される。なお、以下では、放電動作中において複数回のサンプリングが実行される期間をサンプリング期間と称し、サンプリング期間＃０〜＃４のように記述する。図４の例では、サンプリング期間＃０〜＃４のそれぞれにおいて、例えば、５０回のサンプリングが実行されているものとする。
【００２５】
ステップＳ１３では、ＣＰＵ１０ａは、配列Ｓ［］の第ｉ番目に、ステップＳ１２で算出したインピーダンスＺの値を測定値１０ｃａとして格納する。なお、いまの例では、Ｎ回のサンプリングを実行するものとし、変数ｉの値は０〜（Ｎ−１）の間で変化するものとする。例えば、初回の処理ではｉ＝０であるので、配列Ｓ［０］に初回のサンプリング（サンプリング期間＃０）で得られた測定値に基づいて算出されたインピーダンス値が格納される。なお、Ｎの値としては、例えば、数〜数十程度の間で選択することができる。もちろん、これ以外の値でもよい。
【００２６】
ステップＳ１４では、ＣＰＵ１０ａは、処理回数をカウントする変数ｉの値を「１」だけインクリメントする。
【００２７】
ステップＳ１５では、ＣＰＵ１０ａは、変数ｉの値が定数Ｎの値以上であるか否かを判定し、変数ｉの値が定数Ｎの値以上である場合（ステップＳ１５：ＹＥＳ）にはステップＳ１６に進み、それ以外の場合（ステップＳ１５：ＮＯ）にはステップＳ１１に戻って前述の場合と同様の処理を繰り返す。以上のステップＳ１１〜Ｓ１５の処理の繰り返しにより、配列Ｓ［０］〜Ｓ［Ｎ−１］にＮ個のインピーダンス値が格納される。例えば、図４（Ａ）の例では、サンプル期間＃０〜＃４でそれぞれ算出された５個のインピーダンス値が配列Ｓ［］の第０番目から第４番目の要素として格納される。
【００２８】
ステップＳ１６では、ＣＰＵ１０ａは、処理回数をカウントする変数ｉに初期値「０」を代入するとともに、測定誤差の発生位置を特定するための変数Ｅに初期値「０」を代入する。なお、変数Ｅの詳細については後述する。
【００２９】
ステップＳ１７では、ＣＰＵ１０ａは、配列Ｓ［］の第ｉ番目の要素から、配列Ｓ［］の第（ｉ＋１）番目の要素を減算した値を、差分値を格納する変数Ｄに格納する。具体的には、例えば、ｉ＝０の場合には、配列Ｓ［］の第０番目の要素から、配列Ｓ［］の第１番目の要素を減算した値が、変数Ｄに格納される。ここで、Ｓ［ｉ］のインピーダンス値とＳ［ｉ＋１］のインピーダンス値は、請求項中の「インピーダンス値ペア」に対応している。
【００３０】
ステップＳ１８では、ＣＰＵ１０ａは、ステップＳ１７で求めた差分値Ｄの絶対値ＡＢＳ（Ｄ）の値が、所定の閾値Ｔｈよりも大きいか否かを判定し、ＡＢＳ（Ｄ）＞Ｔｈが成立する場合（ステップＳ１８：ＹＥＳ）にはステップＳ１９に進み、それ以外の場合（ステップＳ１８：ＮＯ）にはステップＳ２０に進む。具体的には、差分値Ｄの絶対値ＡＢＳ（Ｄ）の値が、例えば、閾値Ｔｈである０．５ｍΩよりも大きい場合にはステップＳ１９に進む。なお、閾値Ｔｈは前述した以外の値であってもよく、鉛蓄電池１３の容量等に応じて適切な値を選択することができる。
【００３１】
ステップＳ１９では、ＣＰＵ１０ａは、現在の変数Ｅの値に２ｉを加算して得られた値によって変数Ｅの値を更新する。例えば、図４（Ａ）に示すように、５回の測定を行う場合に、全ての測定値が正常であって、ＡＢＳ（Ｄ）＞Ｔｈが成立しない場合には、５回の処理ループ中、ステップＳ１９の演算は１度も実行されないので、変数Ｅの値は０のままとなる。また、図４（Ｂ）に示すように、５回の測定を行う場合に、サンプリング期間♯２の測定値が測定中の時刻ｔにおいて異常を生じた場合には、図５に示すようにサンプリング期間♯１，♯２の差分値と、サンプリング期間♯２，♯３の差分値が閾値Ｔｈよりも大きくなる（０．５ｍΩよりも大きくなる）。この結果、変数Ｅには２１と２２の合計値である６が格納される。なお、図４（Ｂ）の例では、時刻ｔにおいて、例えば、負荷１７に対して電流が流れ始めたことから、それ以降の電流および電圧が通常状態から乖離している。なお、サンプリング期間＃３およびサンプリング期間＃４では、電圧および電流は正常な状態から乖離しているが、適応学習が実行されるため、負荷１７に流れる電流の影響を排除してインピーダンス値を正確に求めることができる。一方、サンプリング期間＃２では、適応学習の最中に負荷１７への電流が流れて測定値が大幅に変化することから、適応学習が行われるにも拘わらず、誤差を生じてしまう。したがって、サンプリング期間＃２で求めたインピーダンス値は、後述するように、除外の対象となる。
【００３２】
ステップＳ２０では、ＣＰＵ１０ａは、処理回数をカウントする変数ｉの値を「１」だけインクリメントする。
【００３３】
ステップＳ２１では、ＣＰＵ１０ａは、変数ｉの値が（Ｎ−１）以上であるか否かを判定し、変数ｉの値が（Ｎ−１）以上である場合（ステップＳ２１：ＹＥＳ）にはステップＳ２２に進み、それ以外の場合（ステップＳ２１：ＮＯ）にはステップＳ１７に戻って前述の場合と同様の処理を繰り返す。以上のステップＳ１７〜Ｓ２１の処理の繰り返しにより、配列Ｓ［０］〜Ｓ［Ｎ−１］に格納されている全てのインピーダンス値の差分値が計算され、閾値Ｔｈとの比較により、変数Ｅの値が更新される。
【００３４】
ステップＳ２２では、ＣＰＵ１０ａは、誤差を有するインピーダンス値を除外する処理である「除外処理」を実行する。具体的には、ＣＰＵ１０ａは、変数Ｅに格納されている値に基づいて誤差を有するサンプリング期間のインピーダンス値を特定し、当該インピーダンス値については計算対象から除外する。例えば、図５の例では、前述したように、変数Ｅには値「６」が格納されていることから、サンプリング期間＃２で求めたインピーダンス値が誤差を有していることが特定できるため、図５の最下行に示されるように、サンプリング期間＃２に対応するインピーダンス値が無効（ＩＮＶＡＬＩＤ）とされる。なお、図４（Ａ）に示すように、全ての測定値が正常であって、ＡＢＳ（Ｄ）＞Ｔｈが成立しない場合には、ステップＳ１９の演算は実行されないので、変数Ｅの値は０のままとなる。その場合には、除外処理の対象となるインピーダンス値は存在しない。
【００３５】
ステップＳ２３では、ＣＰＵ１０ａは、配列Ｓ［］に格納されているインピーダンス値のうち、除外されていないもの（「ＩＮＶＡＬＩＤ」となっていないもの）の平均値を算出し、処理を終了する。これにより、例えば、図４（Ａ）の例では、サンプリング期間＃０〜＃４の５回分全てのインピーダンス値の平均値が算出される。また、図４（Ａ）の例では、サンプリング期間＃２以外のインピーダンス値の平均値が算出される。これにより、正常でないインピーダンス値を迅速に検出して平均値の算出対象から除外することができる。また、測定誤差が生じた場合には、当該誤差が生じたインピーダンス値のみを除外して、他のインピーダンス値は有効に利用することができる。このため、従来のように、測定誤差が生じた場合には、測定を再実行することにより浪費される電力を削減することができる。
【００３６】
つぎに、図６を参照して、図３に示すステップＳ２２の処理の詳細について説明する。図６に示すフローチャートの処理が実行されると、以下のステップが実行される。
【００３７】
ステップＳ３０では、ＣＰＵ１０ａは、ＲＯＭ１０ｂに格納されているテーブルから、図３に示す処理で求めた変数Ｅの値に対応するサンプリング期間を示す情報を検索する。図７は、５つのサンプリング期間を有する測定に対応する（図４に対応する）テーブルである。図７の左側の列には変数Ｅの値が格納されており、右側の列には左側の列の値に対応するサンプリング期間を示す値が格納されている。具体的には、第１番目の行の左側の列には「１」が格納されており、右側の列には「０」が格納されている。これは、変数Ｅの値が「１」である場合には、サンプリング期間＃０のインピーダンス値が異常であることが示されている。なお、最後の行の「その他」は、テーブルに記載されている以外の値については、異常が複数のサンプリング期間で発生したことを示している。図８は、８回のサンプリング期間を有する測定に対応するテーブルである。この図の例でも、図７の場合と同様に、左側の列には変数Ｅの値が格納されており、右側の列には左側の列の値に対応するサンプリング期間を示す値が格納されている。
【００３８】
ステップＳ３１では、ＣＰＵ１０ａは、ステップＳ３０における検索に基づいて、変数Ｅの値に対応するｉの値（サンプリング期間を示す値）を取得する。例えば、前述したように、Ｅに値「６」が格納されている場合には、図７に示すように、値「２」が取得される。
【００３９】
ステップＳ３２では、ＣＰＵ１０ａは、ステップＳ３１で取得した値が「複数発生」であるか否かを判定し、複数発生の場合（ステップＳ３２：ＹＥＳ）にはステップＳ３３に進み、それ以外の場合（ステップＳ３２：ＮＯ）にはステップＳ３４に進む。具体的には、複数のサンプリング期間において異常が発生している場合には、ステップＳ３１では複数発生がテーブルから取得されるので、その場合にはステップＳ３３に進む。
【００４０】
ステップＳ３３では、ＣＰＵ１０ａは、エラー処理を実行する。具体的には、複数のサンプリング期間において異常が発生している場合には、正確なインピーダンスの算出は困難と判断し、例えば、図３のステップＳ１０に戻って同様の処理を繰り返す。
【００４１】
ステップＳ３４では、ＣＰＵ１０ａは、配列Ｓ［］の第ｉ番目の要素として「ＩＮＶＡＬＩＤ」を格納する。具体的には、前述した変数Ｅの値が「６」である場合には、ステップＳ３１において「２」が取得され、ｉ＝２となるので、ステップＳ３４の処理では、配列Ｓ［］の第２番目の要素として「ＩＮＶＡＬＩＤ」が格納される。そして、ステップＳ２３の処理に復帰（リターン）する。なお、ステップＳ２３の処理では、「ＩＮＶＡＬＩＤ」が格納されていないインピーダンス値を対象として、平均インピーダンスが計算される。具体的には、前述した例では、配列Ｓ［］の第２番目の要素以外を対象として平均インピーダンスが算出される。
【００４２】
以上に説明したように、本実施形態では、時間的に前後して測定されたインピーダンス値の差分値を求め、当該差分値が所定の閾値よりも大きい場合には異常が発生したと判断するようにしたので、異常なインピーダンス値を迅速に見つけることができる。また、異常が発生した場合には、そのサンプリング期間に特有の値を変数Ｅに格納し、テーブルとの比較でサンプリング期間を特定するようにしたので、異常が発生した期間を簡単に特定することができるとともに、異常を有するインピーダンス値を確実に除外することができる。また、異常が発生したインピーダンス値を除外して使用することにより、全ての測定値を廃棄して再測定する場合に比較して、鉛蓄電池１３の電力が浪費されることを防止できる。
【００４３】
（Ｃ）第２実施形態
第２実施形態は、第１実施形態と比較して、図６に示す除外処理の内容（図３のステップＳ２２の処理の内容）が異なっている。それ以外は、第１実施形態の場合と同様である。すなわち、第１実施形態では、図７，８に示すテーブルを参照して異常が発生したサンプリング期間を特定するようにしたが、第２実施形態では、図９のフローチャートに示すように、変数Ｅに格納されているビット情報に基づいて、異常が発生したサンプリング期間を特定する。具体的に説明する。図９に示すフローチャートの処理が実行されると、以下のステップが実行される。なお、以下では、変数Ｅに格納されている情報は、２進数のビット情報（「１」または「０」の情報）を表すものとする。具体的には、Ｅに１０進数の値「６」が格納されている場合にはビット情報は、例えば、「００１１０」であるものとする。また、フローチャート中に記載されているＥ（ｉ）は、変数ＥのＬＳＢ（Least Significant Bit）を第０ビットとした場合の第ｉビットの情報を示すものとする。例えば、Ｅに値「６」が格納されている場合では、Ｅ（０）＝Ｅ（３）＝Ｅ（４）＝０であり、Ｅ（１）＝Ｅ（２）＝１である。なお、前述した例では、変数Ｅが５ビットである場合を例に挙げて説明したが、これ以外であってもよいことはいうまでもない。
【００４４】
ステップＳ５０では、ＣＰＵ１０ａは、処理の回数をカウントする変数ｉに対して初期値「０」を代入する。
【００４５】
ステップＳ５１では、ＣＰＵ１０ａは、Ｅ（ｉ）＝１であり、かつ、Ｅ（ｉ＋１）＝１が成立するか否かを判定し、成立する場合（ステップＳ５１：ＹＥＳ）にはステップＳ５２に進み、それ以外の場合（ステップＳ５１：ＮＯ）にはステップＳ５３に進む。具体的には、変数Ｅの値が「６」である場合（図７の上から第３番目の場合）には、ｉ＝１の場合に、Ｅ（１）＝１、かつ、Ｅ（２）＝１が成立するので、その場合にはステップＳ５２に進む。
【００４６】
ステップＳ５２では、ＣＰＵ１０ａは、配列Ｓ［］の第（ｉ＋１）番目の要素として、「ＩＮＶＡＬＩＤ」を格納する（上書きする）。先ほどの例（Ｅ＝６，ｉ＝１）では、配列Ｓ［］の第２番目の要素として「ＩＮＶＡＬＩＤ」が上書きされる。これにより、図５に示すように、「８．５ｍΩ」が「ＩＮＶＡＬＩＤ」によって上書きされる。
【００４７】
ステップＳ５３では、ＣＰＵ１０ａは、処理回数をカウントする変数ｉの値を「１」だけインクリメントする。
【００４８】
ステップＳ５４では、ＣＰＵ１０ａは、変数ｉの値が（Ｎ−１）の値以上であるか否かを判定し、変数ｉの値が（Ｎ−１）の値以上である場合（ステップＳ５４：ＹＥＳ）にはステップＳ５５に進み、それ以外の場合（ステップＳ５４：ＮＯ）にはステップＳ５１に戻って前述の場合と同様の処理を繰り返す。以上のステップＳ５１〜Ｓ５４の処理の繰り返しにより、変数Ｅに連続するビットが存在する場合には、対応する配列Ｓ［］の要素が「ＩＮＶＡＬＩＤ」とされる。
【００４９】
ステップＳ５５では、ＣＰＵ１０ａは、Ｅ（０）＝１であり、かつ、Ｅ（１）＝０が成立するか否かを判定し、成立する場合（ステップＳ５５：ＹＥＳ）にはステップＳ５６に進み、それ以外の場合（ステップＳ５５：ＮＯ）にはステップＳ５７に進む。具体的には、変数Ｅの値が「１」である場合（Ｓ［０］が異常である場合）には、Ｅ（０）＝１、かつ、Ｅ（１）＝０が成立するので、その場合にはステップＳ５６に進む。
【００５０】
ステップＳ５６では、ＣＰＵ１０ａは、配列Ｓ［］の第０番目の要素に対して「ＩＮＶＡＬＩＤ」を上書きする。先ほどの例では、配列Ｓ［］の第０番目の要素に対して「ＩＮＶＡＬＩＤ」が上書きされる。
【００５１】
ステップＳ５７では、ＣＰＵ１０ａは、Ｅ（Ｎ−１）＝１であり、かつ、Ｅ（Ｎ−２）＝０が成立するか否かを判定し、成立する場合（ステップＳ５７：ＹＥＳ）にはステップＳ５８に進み、それ以外の場合（ステップＳ５７：ＮＯ）にはステップＳ２３の処理に復帰（リターン）する。具体的には、変数Ｅの値が「８」である場合（Ｓ［４］が異常である場合）には、Ｅ（４）＝１、かつ、Ｅ（３）＝０が成立するので、その場合にはステップＳ５８に進む。
【００５２】
ステップＳ５８では、ＣＰＵ１０ａは、配列Ｓ［］の第（Ｎ−１）番目の要素として、「ＩＮＶＡＬＩＤ」を上書きする。先ほどの例では、配列Ｓ［］の第４番目の要素として「ＩＮＶＡＬＩＤ」が上書きされる。そして、ステップＳ２３の処理に復帰（リターン）する。
【００５３】
以上の処理によれば、変数Ｅのビット情報に基づいて、配列Ｓ［］に格納されている異常なインピーダンス値を見つけることが可能になる。このような実施形態によれば、任意の個数のインピーダンス値に対する処理が可能になる。また、テーブルが不要になることから、メモリの記憶容量を削減できる。
【００５４】
また、第２実施形態では、２つ以上異常が存在する場合であっても、エラー処理を実行することなく、インピーダンス値の平均値を求めることが可能になるので、測定処理が再実行されて鉛蓄電池１３の電力が浪費されることを防止できる。
【００５５】
（Ｄ）変形実施形態
なお、上記の各実施形態は、一例であって、これ以外にも各種の変形実施態様が存在する。例えば、以上の各実施形態では、異常が連続して発生する場合については想定していないが、異常が連続して発生する場合には、これらのインピーダンスについては、例えば、全て無視するようにしてもよい。これについて、図１０を参照して説明する。図１０（Ａ）では、サンプリング期間＃２およびサンプリング期間＃３において異常が発生している。この場合、サンプリング期間＃１，＃２に対するステップＳ１８の判定およびサンプリング期間＃３，＃４に対する同判定では、「ＮＧ」と判断される。しかしながら、サンプリング期間＃２，＃３に対する同判定では、これらの期間における異常の発生の仕方によっては、異常と判断されたりされなかったりする。例えば、図５の例において、サンプリング期間＃３において「６．７ｍΩ」ではなく「８．６ｍΩ」が測定された場合、これは異常な値ではあるが、サンプリング期間＃２との関係では、差分値が「０．１ｍΩ」であるので正常と判断されてしまう。また、「４．５ｍΩ」と測定された場合には、異常と判断される。つまり、サンプリング期間＃２，＃３に対する判定は、測定値に応じて定まることから、いわば「不定」となる。
【００５６】
また、図１０（Ｂ）は、異常が３回連続して発生した場合の例である。この例では、サンプリング期間＃２，＃３およびサンプリング期間＃３，＃４に対する判定が「不定」となる。したがって、異常と判定されたサンプリング期間が２つ存在する場合には、これら２つのサンプリング期間に挟まれた期間に対応するインピーダンス値は無効と判断するようにすることで、「不定」であるインピーダンス値が計算に使用されることを防止できる。もちろん、「不定」であるインピーダンス値を除外することで、使用できるインピーダンス値の個数が少なくなる場合（例えば、５０％以上になる場合）には、平均値そのものの精度が低下するので、除外する対象となるインピーダンス値の個数が多い場合には、再度測定を実行するようにしてもよい。
【００５７】
また、以上の実施形態では、拡張カルマンフィルタを用いて適応学習を行う場合を例に挙げて説明したが、これ以外の方法を用いるようにしてもよい。具体的には、ニューラルネットワークモデルを用いて適応学習を行うようにしたり、遺伝的アルゴリズムモデルを用いて適応学習を行うようにしたりしてもよい。また、モデルを使用せずに直接インピーダンス値を測定するようにしてもよい。
【００５８】
また、以上の実施形態では、インピーダンス値を測定するようにしたが、インピーダンスの実数成分（抵抗成分）または虚数成分（リアクタンス成分）を単独で測定するようにしたり、それ以外の値（例えば、鉛蓄電池１３の等価回路に含まれるＣＰＥ（Constant Phase Element））を測定するようにしたりしてもよい。
【００５９】
また、以上の実施形態では、放電回路１４による放電電流に基づいて適応学習を実行するようにしたが、これ以外の負荷に流れる電流に基づいて適応学習を実行するようにしてもよい。例えば、セルモータ１６に流れる電流を利用したり、車両を駆動するためのモータ（例えば、ハイブリッド車のモータ）が存在する場合には、当該モータに流れる電流に基づいて適応学習を行うようにしたりしてもよい。また、例えば、一般家庭で使用される太陽光発電の蓄電池の場合には、家庭内に使用される様々な負荷（例えば、起動時に大きな電流が流れる空調装置等）に流れる電流を用いることができる。さらに、放電する場合ではなく、充電される場合の充電電流に基づいて測定を行うようにしてもよい。
【００６０】
また、以上の実施形態では、鉛蓄電池を例として説明を行ったが、これ以外の電池（例えば、ニッケルカドミウム電池等）についても本発明を適用することが可能である。なお、その場合には、電池の種類に応じてシミュレーションモデルを変更するようにすればよい。
【００６１】
また、以上の実施形態では、制御部１０は、ＣＰＵ、ＲＯＭ、ＲＡＭ等から構成されるようにしたが、例えば、ＤＳＰ（Digital Signal Processor）等によって構成するようにしてもよい。
【符号の説明】
【００６２】
１  電池内部状態推測装置
１０  制御部
１０ａ  ＣＰＵ（判定手段、除外手段、推定手段）
１０ｂ  ＲＯＭ
１０ｃ  ＲＡＭ（格納手段）
１０ｄ  Ｉ／Ｆ（測定手段の一部）
１１  電圧検出部（測定手段の一部）
１２  電流検出部（測定手段の一部）
１３  鉛蓄電池（電池）
１４  放電回路
１５  オルタネータ
１６  セルモータ
１７  負荷
【図１】
2011203189.tif 000003
【図２】
2011203189.tif 000004
【図３】
2011203189.tif 000005
【図４】
2011203189.tif 000006
【図５】
2011203189.tif 000007
【図６】
2011203189.tif 000008
【図７】
2011203189.tif 000009
【図８】
2011203189.tif 000010
【図９】
2011203189.tif 000011
【図１０】
2011203189.tif 000012