(57)【特許請求の範囲】
【請求項１】
二次電池の電流Ｉと端子電圧Ｖとを計測し、適応デジタルフィルタを用いて、前記電流Ｉと端子電圧Ｖの計測値から開路電圧Ｖ０を推定し、予め求めた開路電圧Ｖ０と充電率ＳＯＣとの関係に基づいて充電率を推定する充電率推定装置において、
下記（数１）式に示す連続時間系の電池モデルを用いて、適応デジタルフィルタ演算を行い、（数１）式中のオフセット項であるＶ０および過渡項であるＡ(ｓ）、Ｂ(ｓ）に対応するパラメータを一括推定し、
かつ、前記の推定した各パラメータから電池内部抵抗または電池時定数を求め、予め記憶してある電池内部抵抗と充電率のマップデータ、または電池時定数と充電率のマップデータに基づいて電池劣化度を推定することを特徴とする二次電池の充電率推定装置。
【数１】
0003747826.tif 000019
ただし、ｓはラプラス演算子、Ａ(ｓ）、Ｂ(ｓ）は、ｓの多項式関数
【請求項２】
前記（数１）式に示す連続時間系の電池モデルを、離散時間系表現に変換した下記（数２）式で示される自己回帰型モデルを用いて、適応デジタルフィルタ演算を行い、各パラメータ（ａｋ、ｂｋ、ｃｋ、ｒｋ）を一括推定し、さらに、下記（数３）式を用いて開路電圧Ｖ０を推定演算することを特徴とする請求項１に記載の二次電池の充電率推定装置。
【数２】
0003747826.tif 000020
【数３】
0003747826.tif 000021
ただし、（数２）式、（数３）式において、
Ｖｊ−ｋはｋサンプリング周期前の端子電圧
Ｉｊ−ｋはｋサンプリング周期前の電流
ａｋ、ｂｋ、ｃｋは定数     ｒｊ−ｋはオフセット項の仮変数
Ｎ，Ｐは次数              ｅｊは白色雑音
【請求項３】
二次電池の電流を検出する手段と、
二次電池の端子電圧を検出する手段と、
前記電流検出値と前記端子電圧検出値とを、電池モデルを用いた適応デジタルフィルタに入力して開路電圧推定値を演算する開路電圧推定手段を複数個と、
前記複数の開路電圧推定手段を一定周期で順に初期化する初期化手段と、
前記複数個の開路電圧推定手段の中から最新の開路電圧推定値を選択し、その値から予め求めた開路電圧と充電率ＳＯＣとの関係に基づいて充電率を推定する充電率推定手段と、
を備えたことを特徴とする二次電池の充電率推定装置。
【請求項４】
二次電池の電流を検出する手段と、
二次電池の端子電圧を検出する手段と、
二次電池の温度を検出する手段と、
前記電流検出値と前記端子電圧検出値とを、電池モデルを用いた適応デジタルフィルタに入力して開路電圧推定値を演算する開路電圧推定手段を複数個と、
前記温度検出値に基づいて、前記複数の開路電圧推定手段のうちの不適合な開路電圧推定手段を判定し、それを初期化する初期化手段と、
前記温度検出値に基づいて前記複数の開路電圧推定手段のうちから最適な開路電圧推定値を選択し、その値から予め求めた開路電圧と充電率ＳＯＣとの関係に基づいて充電率を推定する充電率推定手段と、
を備えたことを特徴とする二次電池の充電率推定装置。
【請求項５】
前記複数個の開路電圧推定手段の演算周期を相互に異なる時間に設定したことを特徴とする請求項４に記載の二次電池の充電率推定装置。
【請求項６】
前記初期化手段は、最適な開路電圧推定手段が演算する開路電圧推定値を、開路電圧推定値の初期値とすることを特徴とする請求項３乃至請求項５の何れかに記載の二次電池の充電率推定装置。
【請求項７】
前記初期化手段は、最適な開路電圧推定手段が演算した電池の内部抵抗推定値と、前記電流検出値と前記端子電圧検出値から、初期化時の開路電圧推定値を演算し、それを初期値とすることを特徴とする請求項３乃至請求項５の何れかに記載の二次電池の充電率推定装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、二次電池の充電率（ＳＯＣ）を推定する装置に関する。
【０００２】
【従来の技術】
二次電池の充電率ＳＯＣ（充電状態とも言う）は開路電圧Ｖ０（通電遮断時の電池端子電圧であり、起電力、開放電圧とも言う）と相関があるので、開路電圧Ｖ０を求めれば充電率を推定することが出来る。しかし、二次電池の端子電圧は、通電を遮断（充放電を終了）した後も安定するまでに時間を要するので、正確な開路電圧Ｖ０を求めるには、充放電を終了してから所定の時間が必要である。したがって充放電中や充放電直後では、正確な開路電圧Ｖ０を求めることが出来ないので、上記の方法で充電率ＳＯＣを求めることが出来ない。そのため、従来は、下記のような種々の方法を用いて開路電圧Ｖ０を推定している。
【０００３】
二次電池の充電率（ＳＯＣ）を推定する技術に関する第一の公知例としては、特開２０００−３２３１８３号公報に記載されたものがある。この公知例においては、所定時間にわたって、電池の端子電圧（単に電圧とも言う）Ｖと電池が充放電される電流Ｉと電池の温度Ｔとを検出し、電流Ｉの積算値Ｑとその変動幅△Ｑを算出し、変動幅△Ｑが所定値より小さい場合に限り、検出した電流Ｉと電圧ＶをＩ−Ｖ直線（Ｖ＝Ｒ・Ｉ＋Ｖ０）で近似し、その傾きから内部抵抗Ｒを算出し、また切片から電池の開路電圧Ｖ０を算出し、予め測定しておいた開路電圧Ｖ０と充電率ＳＯＣとの相関から、充電率ＳＯＣを算出する技術が記載されている。
【０００４】
また、第二の公知例（論文“適応デジタルフィルタを用いた鉛電池の開路電圧と残存容量の推定”四国総研、四国電力、湯浅電池  T.IEEE Japan Vol.112-C,No.4 1992）に記載された電池状態検出手法は、通電中の二次電池（鉛電池やリチウムイオン電池等の充放電可能な電池）の端子電圧と電流の計測データに、「適応デジタルフィルタ」を用いて開路電圧Ｖ０を推定（パラメータ同定）して、この値から電池の充電率ＳＯＣを推定するものである。
【０００５】
また、第三の公知例（特開２０００−２６８８８６号公報）に記載された電池状態検出装置は、等価回路モデルを用いて、電池電圧推定値Ｖｍを算出し、計測された電池電圧Ｖとの差異で、電流積算量（放電量）を補正して充電率ＳＯＣを推定し、このＳＯＣ推定値によって電池モデルのパラメータを修正する、という操作を繰り返すものであり、一種の適応アルゴリズムである。
【０００６】
【発明が解決しようとする課題】
しかし、上記のごとき従来例においては次のような問題があった。まず、第一の公知例において、変動幅△Ｑが所定の変動幅より小さい場合でも、電池の開路電圧Ｖ０は電流Ｉに応じて充放電している最中に時々刻々と変化する特徴がある。第一の公知例では、変動幅△Ｑが所定値より小さい場合に限り充電率ＳＯＣを算出するという構成になっていたため、充電率ＳＯＣを算出できる機会が極めて少ないし、無理に、変動幅△Ｑが所定値より大きい場合に同様の推定を行っても推定誤差が極端に大きくなるという問題があった。
【０００７】
また、第二の公知例においては、実際の電池の物理特性とは全く異なる「非回帰型の電池モデル（出力値が入力値の現在値および過去値だけで決るモデル）」に相当する下記（数４）式に、「適応デジタルフィルタ（逐次型のモデルパラメータ同定アルゴリズム）」を用いて、（数４）式中のパラメータの一つである開路電圧Ｃｊを算出して、この値から充電率ＳＯＣを算出している。
【０００８】
【数４】
0003747826.tif 000002
ただし、Ｖｊ：端子電圧    Ｉｊ−ｋ：ｋサンプル周期前の電流
Ｃｊ：開路電圧    ｂｋ，ｊ：定数    Ｎ：次数
そのため、実際の電池特性（入力：電流、出力：電圧）に応用した場合、電池特性によっては推定演算が全く収束しなかったり、真値に収束しないという問題があった。
【０００９】
また、第三の公知例においては、モデル推定誤差（Ｖ−Ｖｍ）を用いて、電流積算値（放電量）のみをまず補正してＳＯＣ推定値を確定させてから、このＳＯＣに応じて予め設定したマップに従って電池モデルの各パラメータ（開路電圧を除く）を修正するという構成になっていたため、モデル推定誤差（Ｖ−Ｖｍ）には、当然、開路電圧Ｖ０（起電力）および内部抵抗値Ｒや容量Ｃ等の全ての影響を受けており、これらを同時に配慮しないと誤った修正を行い真値に推定値が収束しない可能性が高いという問題があった。また、この公知例では、ＳＯＣ推定値と計測温度のみからモデルパラメータ（開路電圧を除く）を算出するという構成になっていたので、電池劣化が、総容量やモデルパラメータに及ぼす影響が考慮されていないため、電池劣化の影響を受けてＳＯＣ推定精度が悪化しやすいという問題があった。
【００１０】
本発明は上記のごとき従来技術の問題を解決するためになされたものであり、充電率ＳＯＣおよびその他のパラメータを正確に推定することの出来る二次電池の充電率推定装置を提供することを目的とする。
【００１１】
【課題を解決するための手段】
上記の目的を達成するため本発明においては、特許請求の範囲に記載するように構成している。すなわち、請求項１においては、「適応デジタルフィルタ」（最小二乗法等を用いた逐次型モデルパラメータ同定手法）を用いて、電流Ｉと端子電圧Ｖの計測値から開路電圧Ｖ０を推定し、予め求めた開路電圧Ｖ０と充電率ＳＯＣとの関係に基づいて充電率を推定する充電率推定装置において、（数１）式に示す連続時間系の電池モデルを用いて、適応デジタルフィルタ演算を行い、（数１）式中のオフセット項である開路電圧Ｖ０および過渡項であるＡ(ｓ）、Ｂ(ｓ）に対応するパラメータを一括推定するように構成し、さらに前記の推定した各パラメータから電池内部抵抗または電池時定数を求め、予め記憶してある電池内部抵抗と充電率のマップデータ、または電池時定数と充電率のマップデータに基づいて電池劣化度を推定するように構成している。この構成は例えば後記実施例１および実施例２に相当する。
【００１２】
また、請求項２においては、前記（数１）式に示した連続時間系の電池モデルを、離散時間系表現に変換した（数２）式で示される「自己回帰型モデル」を用いて、適応デジタルフィルタ演算を行い、各パラメータ（ａｋ、ｂｋ、ｃｋ、ｒｋ）を一括推定し、さらに、（数３）式を用いて開路電圧Ｖ０を推定演算するように構成している。この構成は、例えば後記実施例１および実施例２に相当する。
【００１４】
また、請求項３においては、電池モデルを用いた適応デジタルフィルタに電流検出値と端子電圧検出値とを入力して開路電圧推定値を演算する開路電圧推定手段を複数個と、複数の開路電圧推定手段を一定周期で順に初期化する初期化手段と、を備え、複数個の開路電圧推定手段の中から最新の開路電圧推定値を選択し、その値から予め求めた開路電圧と充電率ＳＯＣとの関係に基づいて充電率を推定するように構成している。この構成は例えば後記実施例４に相当する。
【００１５】
また、請求項４においては、二次電池の温度を検出する手段と、電池モデルを用いた適応デジタルフィルタに電流検出値と端子電圧検出値とを入力して開路電圧推定値を演算する開路電圧推定手段を複数個と、前記温度検出値に基づいて、前記複数の開路電圧推定手段のうちの不適合な開路電圧推定手段を判定し、それを初期化する初期化手段と、を備え、温度検出値に基づいて複数の開路電圧推定手段のうちから最適な開路電圧推定値を選択し、その値から予め求めた開路電圧と充電率ＳＯＣとの関係に基づいて充電率を推定するように構成している。この構成は、例えば後記実施例３に相当する。
【００１６】
また、請求項５においては、前記複数個の開路電圧推定手段の演算周期を相互に異なる時間に設定している。この構成も例えば後記実施例３に相当する。
【００１７】
また、請求項６においては、前記初期化手段は、最適な開路電圧推定手段が演算する開路電圧推定値を、開路電圧推定値の初期値とするように構成している。この構成は例えば後記実施例３や実施例４に相当する。
【００１８】
また、請求項７においては、前記初期化手段は、最適な開路電圧推定手段が演算した電池の内部抵抗推定値と、前記電流検出値と前記端子電圧検出値から、初期化時の開路電圧推定値を演算し、それを初期値とするように構成している。この構成は例えば後記実施例３や実施例４に相当する。
【００１９】
【発明の効果】
請求項１に記載の発明においては、二次電池の電流Ｉと端子電圧Ｖと開路電圧Ｖ０の関係を、（数１）式に示す伝達関数で近似して、開路電圧Ｖ０の項を定常項（オフセット項）とみなす（定式化する）ことで、「最小二乗法」等の「適応デジタルフィルタ」（公知の推定アルゴリズム）を適用することが可能となる。その結果、(数１）式中のパラメータ（オフセット項であるＶ０、および過渡項であるＡ(ｓ）やＢ(ｓ）に対応するパラメータ）を一括推定することが可能となる。これらパラメータは、充電率ＳＯＣや温度や劣化度などに影響され、時々刻々変化するものであるが、適応デジタルフィルタにより精度良く逐次推定することが可能である。なお、例えば後記図５に示す開路電圧Ｖ０と充電率ＳＯＣの関係は、温度や電池の劣化度に影響されにくく一定の相関関係にあるので、この特性を予め記憶しておけば、開路電圧Ｖ０から充電率ＳＯＣが直接算出できる。したがって、充電率ＳＯＣについても開路電圧Ｖ０と同様に、条件によらず正確な推定が可能である、という効果がある。また、請求項１においては、充放電中でも、条件制約なく、常に精度の高い電池劣化度を推定できる、という効果もある。
【００２０】
請求項２に記載の発明においては、具体的な方法の一つとして、連続時間系で記述された（数１）式の等価回路モデルを、離散時間系に変換する際に、オフセット項である開路電圧Ｖ０を（数２）式の右辺第３項のように展開することで、拡大最小二乗法などの適応デジタルフィルタを適用することが可能となる。その結果、マイコン等による演算で推定処理が実行可能になる、という効果がある。また、請求項２においては、充放電中でも、条件制約なく、常に精度の高い電池劣化度を推定できる、という効果もある。
【００２２】
請求項３に記載の発明においては、複数の開路電圧推定手段を備え、それらを一定周期で順に初期化するので、温度変化等で電池パラメータが変化した場合でも、最新に初期化された開路電圧推定手段によって開路電圧が推定できる。したがって、環境条件が変化した場合に、パラメータ推定値が電池パラメータの変化に追従することができる、という効果がある。
【００２３】
請求項４に記載の発明においては、複数の開路電圧推定手段（適応フィルタ）を備え、電池温度に基づいて不適合な開路電圧推定手段を判断し、それを初期化するので、温度変化で電池パラメータが変化した場合でも、初期化された回路電圧推定手段のパラメータ推定値が電池パラメータの変化に追従することができる。また、初期化の前後で推定値を切り替える際には、若干のハンチングを生じる可能性があるので、初期化は必要最小回数が望ましい。請求項４においては不適合になった開路電圧推定手段のみを初期化するので、初期化を必要最小回数に抑えることが出来る、という効果がある。
【００２４】
請求項５に記載の発明においては、複数個の開路電圧推定手段の演算周期をそれぞれ異なる時間に設定するので、温度により電池パラメータが大きく異なる場合に、それに応じた最適な演算周期の開路電圧推定手段が演算しているために、電池パラメータが変化した場合でも最適な推定（パラメータ同定）を行うことが出来る、という効果がある。
【００２５】
請求項６に記載の発明においては、複数個の開路電圧推定手段の中で最適な開路電圧推定手段が演算する最新の開路電圧推定値を、開路電圧推定値の初期値としているので、初期化時に電流が０であることに関係なく、適応フィルタの演算を初期化して再度開始できる、という効果がある。
【００２６】
請求項７に記載の発明においては、複数個の開路電圧推定手段の中で最適な開路電圧推定手段が演算する最新の内部抵抗推定値と、電流検出値と端子電圧検出値から、初期化時に開路電圧推定値の初期値を（数１８）式で演算する。内部抵抗推定値は前回の演算値であるが、電流検出値と端子電圧検出値は初期化する時点の検出値なので、前回演算の開路電圧推定値よりも真値により近い値を初期値として用いることが出来る、という効果がある。
【００２７】
【発明の実施の形態】
（実施例１）
図１は、本発明の実施例１を機能ブロックで表した図である。図１において、１は適応フィルタ演算手段であり、開路電圧Ｖ０(ｋ）をオフセット項とする電池モデルに基づいたものである。この適応フィルタ演算手段１はパラメータベクトルθ(ｋ）演算手段２、ゲイン行列Ｐ(ｋ）演算手段３、オフセット項変数ｒ(ｋ−１）演算手段４からなる。また、５は開路電圧Ｖ０(ｋ）演算手段、６は開路電圧から充電率を演算するＳＯＣ演算手段である。また、７は電池の電流を検出する電池電流Ｉ(ｋ）計測手段、８は電池の端子電圧を検出する電池電圧Ｖ(ｋ）計測手段である。
【００２８】
図２は、実施例１の具体的な構成を示すブロック図である。この実施例は、二次電池でモータ等の負荷を駆動したり、モータの回生電力で二次電池を充電するシステムに、二次電池の充電率推定装置を設けた例を示す。
図２において、１０は二次電池（単に電池とも言う）、２０はモータ等の負荷、３０は電池の充電状態を推定する電子制御ユニットで、プログラムを演算するＣＰＵやプログラムを記憶したＲＯＭや演算結果を記憶するＲＡＭから成るマイクロコンピュータと電子回路等で構成される。４０は電池から充放電される電流を検出する電流計、５０は電池の端子電圧を検出する電圧計、６０は電池の温度を検出する温度計であり、それぞれ電子制御ユニット３０に接続される。上記の電子制御ユニット３０は前記図１の適応フィルタ演算手段１、開路電圧Ｖ０(ｋ）演算手段５およびＳＯＣ演算手段６の部分に相当する。また、電流計４０は電池電流Ｉ(ｋ）計測手段７に、電圧計５０は電池電圧Ｖ(ｋ）計測手段８に、それぞれ相当する。
【００２９】
まず、本実施例で用いる「電池モデル」を説明する。図３は、二次電池の等価回路モデルを示す図であり、下記（数５）式で示される。
（数５）式において、モデル入力は電流Ｉ［Ａ］（正値は充電、負値は放電）、モデル出力は端子電圧Ｖ［Ｖ］、Ｒ１〔Ω］は電荷移動抵抗、Ｒ２［Ω］は純抵抗、Ｃ１［Ｆ］は電気二重層容量、Ｖ０［Ｖ］は開路電圧である。なお、ｓはラプラス演算子である。本モデルは、正極、負極を特に分離していないリダクションモデル（一次）であるが、実際の電池の充放電特性を比較的正確に示すことが可能である。
【００３０】
【数５】
0003747826.tif 000003
上記（数５）式に零次ホールドを付加してＺ変換することで、線形離散時間システム（数６）式を得る。
【００３１】
【数６】
0003747826.tif 000004
ただし、ａ１、ｂ０、ｂ１は定数、ｚ−１は遅延演算子
Ｖ(ｋ）は現時点の端子電圧、Ｖ(ｋ−ｎ）はｎサンプル周期前の端子電圧を示すものであり、以後、他の変数もこれに準ずる。
【００３２】
次に、「拡大最小二乗法」と呼ばれる公知の「適応デジタルフィルタ（逐次型同定アルゴリズム）」を一般形でまず説明する。
線形離散時間システムで記述されるプラントモデルを（数７）式とする。
【００３３】
【数７】
0003747826.tif 000005
ただし、Ａ(ｚ−１）、Ｂ(ｚ−１）はｚ−１の多項式
ｎはＡ(ｚ−１）、Ｂ(ｚ−１）の次数
ｙ(ｋ）は出力、ｕ(ｋ）は入力、ｒ(ｋ）は式誤差（雑音）
上記のｒ(ｋ）は一般に白色雑音ではなく、通常の「最小二乗法」を用いると推定値に偏り（バイアス）が生じる（電池の場合、開路電圧が数７式の右辺第２項の定常値に相当）。この問題に対応する幾つかの改良手法の一つとして、「拡大最小二乗法」がある。この手法では、（数８）式のように式誤差を改めて定義する。
【００３４】
【数８】
0003747826.tif 000006
ただし、ｅ(ｋ）は平均値零で分散σ２の白色雑音
Ｃ(ｚ−１）はｚ−１の多項式
ｐはＣ(ｚ−１）の次数
上記の（数７）式、（数８）式を用いて下記（数９）式が求まる。
【００３５】
【数９】
0003747826.tif 000007
更に（数１１）式の定義を用いて（数９）式を（数１０）式に変形する。
【００３６】
【数１０】
0003747826.tif 000008
なお、（数１０）式中のＴは行列の配置を示す。
【００３７】
【数１１】
0003747826.tif 000009
ｋ時点のパラメータ推定値をθ＊(ｋ）とすると、逐次推定アルゴリズムは（数１２）式に示すようになる。
【００３８】
【数１２】
0003747826.tif 000010
次に、前記（数６）式の電池モデルに以上の適応フィルタアルゴリズムを適用する。（数１０）式において下記（数１３）式のように定義すると、（数６）式と（数９）式のモデルが一致するので前述の同定アルゴリズム（数１２）式を適用することができ、パラメータθ(ｋ）を推定することができる。
【００３９】
【数１３】
0003747826.tif 000011
なお、ｒ＊(ｋ）の導出には下記（数１４）式を用いる。
【００４０】
【数１４】
0003747826.tif 000012
上記のように「適応フィルタ」で同定されたパラメータθ＊(ｋ）から下記（数１５）式に示すように、電池の重要パラメータである開路電圧Ｖ０、内部抵抗Ｒ１＋Ｒ２、時定数Ｒ１・Ｃ１が求まる。
【００４１】
【数１５】
0003747826.tif 000013
図４は、電子制御ユニット３０のマイクロコンピュータが行う処理のフローチャートである。図４のルーチンは一定周期Ｔ０毎に実施される。なお、（ｋ）は今回の値、（ｋ−ｎ）はｎサンプル周期前（ｎ周期前の演算）の値を意味する。
【００４２】
ステップＳ１０では、電流Ｉ(ｋ）、端子電圧Ｖ(ｋ）、温度Ｔ(ｋ）を計測する。
ステップＳ２０では、ＳＯＣ推定演算（同定アルゴリズム）を実行するか否かを判定する。電子制御ユニット３０は、バッテリ遮断リレーの制御も行っており、リレー遮断時（電流Ｉ＝０）は推定を停止してステップＳ３０へ進む。リレー締結時（オン状態時）は、推定演算を実行する。
【００４３】
ステップＳ３０では、端子電圧Ｖ(ｋ）を端子電圧初期値Ｖ_ｉｎｉとして記憶する。
ステップＳ４０では、端子電圧差分値△Ｖ(ｋ）＝Ｖ(ｋ）−Ｖ_ｉｎｉを演算する。これは、非ゼロの電圧値が「適応デジタルフィルタ」に初期値として入力されると誤った推定をする可能性があり、これを避けるためである。なお、電源リレー締結開始時から適応フィルタ演算を行うので、電流値Ｉ(ｋ）はゼロを初期値として入力される。したがって、電流値Ｉ(ｋ）は、必ずしも偏差を用いる必要性はない。
【００４４】
ステップＳ５０では、ノイズ除去の為に、電流Ｉ(ｋ）および端子電圧差分値△Ｖ(ｋ）にローパスフィルタ演算を行う。
ステップＳ６０では、電池モデルである（数１０）式、（数１３）式における入力ベクトルω(ｋ）を設定する。
ステップＳ７０では、電池モデルにおけるオフセット項変数ｒ(ｋ−１）を（数１４）式に基づいて算出する〔図１のオフセット項変数演算手段４に相当〕。
【００４５】
ステップＳ８０では、ゲイン行列Ｐ(ｋ）を（数１２−２）式に基づいて演算する（図１のゲイン行列演算手段３に相当）。
ステップＳ９０では、電池モデルにおけるパラメータベクトルθ＊(ｋ）を（数１２−１）式に基づいて算出する（図１のパラメータベクトル演算手段２に相当）。
ステップＳ１００では、開路電圧Ｖ０(ｋ）を算出する（図１の開路電圧演算手段５に相当）。本実施例の場合、（数１５）式で求まるのは、同定アルゴリズム開始時からの開路電圧の変化分△Ｖ０(ｋ）であるから、下記（数１６）式に示すように、開路電圧初期値Ｖ０_ｉｎｉ（＝端子電圧初期値Ｖ_ｉｎｉ）を加算して開路電圧Ｖ０(ｋ）を算出する。
【００４６】
【数１６】
0003747826.tif 000014
ステップＳ１１０では、図５に示すような開路電圧Ｖ０と充電率ＳＯＣの相関マップを用いて、上記で算出したＶ０(ｋ）から充電率ＳＯＣ(ｋ）を算出する（図１のＳＯＣ演算手段６に相当）。なお、図５中のＶＬはＳＯＣ＝０％に、ＶＨはＳＯＣ＝１００％に相当する開路電圧である。
【００４７】
（実施例２）
図６は、実施例２の処理を示すフローチャートであり、前記図４のフローチャートにステップＳ１２０、Ｓ１３０の処理を追加し、電池の劣化度を算出するように構成したものである。
ステップＳ１２０では、（数１５）式に基づいて、電池内部抵抗Ｒ(ｋ）、または時定数Ｔｄ(ｋ）を逐次推定する。そしてステップＳ１３０では、予め記憶しておいた電池特性マップ（図７）を用いて、電池劣化度を算出する。ただし、図７Ａは電池内部抵抗に対応するマップ、図７Ｂは時定数に対応するマップである。これらのマップは、電池温度Ｔ(ｋ）に応じて、予め複数枚のマップが記憶されており、温度計６０で計測した電池温度に応じて適合するマップが選択される。
【００４８】
図８は、実施例１および実施例２における各数値の推定シミュレーション結果の一例を示す図であり、比較的詳細な電池モデル（開路電圧Ｖ０が充放電積算量、効率および図５の非線形特性で算出される）を用いたシミュレーション結果である。図８から判るように、実線で示した推定値は破線で示した真値に良く収束しており、充放電最中でも常に、正確な開路電圧Ｖ０が推定できていることが確認できる。
【００４９】
（実施例３）
これまで説明したように、実施例１、実施例２に記載の発明は、通電中の二次電池（鉛蓄電池やリチウムイオン電池等の充放電可能な電池）の端子電圧と電流に、適応デジタルフィルタを用いて開路電圧（通電遮断時の端子電圧、起電力）を推定（パラメータ同定）して、この値から電池のＳＯＣ（充電率）を推定する構成である。しかし、上記の構成では次のごとき問題が残る。
すなわち、適応デジタルフィルタに用いている最小二乗法による逐次型モデルパラメータ同定手法は、電池モデルからの推定電圧と実電圧の偏差にゲインを乗じたものを、パラメータ推定値の前回値に加算して、逐次演算でパラメータ推定値を同定する手法である。そして、偏差に乗じるゲインが時間と共に減って行く「漸減ゲイン方式」を用いた演算方式という構成になっているため、パラメータ同定を開始してパラメータ推定値が真値に収束した後に、温度変化で電池パラメータが変化した場合は、パラメータ同定を続けていても「漸減ゲイン方式」のためにゲインが小さくなって行くので、パラメータ推定値が電池パラメータの変化に追従できない。
【００５０】
また、適応デジタルフィルタに用いている最小二乗法による逐次型モデルパラメータ同定手法は、一定の演算周期で適応デジタルフィルタを演算するという構成になっているが、温度により電池パラメータは大きく変化し、それに応じた最適な演算周期があるので、一定の演算周期では電池パラメータが変化した場合には最適に同定できない。
【００５１】
以下、実施例３、実施例４として、実施例１をさらに改良して、上記のごとき問題を解決した構成を説明する。
前記のように、演算で求めるパラメータ推定値が収束した後に、外的なパラメータ（例えば温度）が変化すると、その変化に追随出来ない。そのため、実施例３および実施例４においては、複数の開路電圧推定手段を備え、電池温度に応じて不適合な開路電圧推定手段を判断し、それを初期化する構成（実施例３）、または一定周期で各開路電圧推定手段を順に初期化する構成（実施例４）とし、開路電圧推定手段をリセットしながら、最も新しく求めた推定値を用いるように構成している。これにより新しい環境に適応したパラメータ推定値を用いることが出来る。なお、開路電圧推定手段が１個では、初期化してから新しい推定値が求まるまでの間（例えば１０分程度の時間が必要）は充電率を求めることが出来ない。したがって最少でも２個の開路電圧推定手段を設ける必要がある。
【００５２】
実施例３においては、電池温度が変化した場合には、温度が変化する前に推定値が収束した開路電圧推定手段を初期化する。これにより常に温度に適応した推定値を求めることが出来る。
また、演算周期は電池温度に応じて最適な演算周期があるので、温度に応じて演算周期を変えている。例えば２５℃では１秒、０℃では０.５秒、−２５℃では０.１秒程度であり、温度の高い方が最適な演算周期は長くなる傾向がある。
【００５３】
また、初期化する際の初期値としては、１演算前の最適推定値を用いる方法と、１演算前の内部抵抗Ｒの値を用い、ＶとＩは今回の値を用いてＶ＝ＲＩ＋Ｖ０で求めたＶ０を用いる方法とがある。
【００５４】
図９は、実施例３を機能ブロックで表した図である。この実施例は、複数の開路電圧推定手段を備え、電池温度に応じて不適合な開路電圧推定手段を判断し、それを初期化するように構成したものである。
図９において、１１は開路電圧推定手段Ａ、１２は開路電圧推定手段Ｂであり、それぞれ前記図１の適応フィルタ演算手段１と開路電圧演算手段５の部分に相当する。１３は開路電圧推定手段Ａ１１と開路電圧推定手段Ｂ１２を初期化する初期化手段、１４は開路電圧から充電率を演算するＳＯＣ演算手段、１５は電池電流計測手段（図１の７に相当）、１６は電池電圧計測手段（図１の８に相当）、１７は電池温度検出手段（図２の温度計６０に相当）である。
なお、具体的な構成を示すブロック図は前記図２と同様である。
【００５５】
図１１は、図９の開路電圧推定手段Ａ１１に相当する演算処理を示すフローチャート、図１２は、図９の開路電圧推定手段Ｂ１２に相当する演算処理を示すフローチャート、図１３は、図９の初期化手段１３に相当する演算処理を示すフローチャートである。
【００５６】
まず、図１１において、このルーチンは一定周期ＴＡ毎に実施される。周期ＴＡは、或る温度（例えば２５℃）に最適な演算周期である。また、前記（数１２−１）式、（数１２−２）式、（数１３）式、（数１４）式、（数１５）式の演算で使用される全ての変数と定数は、周期ＴＡ毎のルーチンで使用されるものであり、図１２の周期ＴＢ毎のルーチンで使用されるものとは異なる。なお、（ｋ）は今回の値、（ｋ−ｑ）はｑ回前の値を意味する。また、初期化要求フラグＦＩＮＩ Ａの初期状態は１である。
【００５７】
まず、ステップＳＡ１０では、電流検出手段１５で検出した電流Ｉ Ａ(ｋ）と、端子電圧検出手段１６で検出した端子電圧Ｖ Ａ(ｋ）とを読み込む。
ステップＳＡ２０では、初期化要求フラグに基づいて初期化を判断する、初期化要求フラグＦＩＮＩ Ａ＝１（初期化：要）の場合はステップＳＡ３０へ進む。ＦＩＮＩ Ａ＝０（初期化：不要）の場合はステップＳＡ４０へ進む。
ステップＳＡ３０では、初期化処理を行う。すなわち、初期値を例えば下記（数１７）式に設定して適応デジタルフィルタ（同定アルゴリズムとも言う）の初期化を行い、演算開始時点における電流初期値Ｉ Ａ ｉｎｉと、端子電圧初期値Ｖ Ａ ｉｎｉと、開路電圧初期値Ｖ０ Ａ ｉｎｉを算出し、ステップＳＡ４０へ進む。
【００５８】
【数１７】
0003747826.tif 000015
上記の演算開始時点における電流初期値Ｉ Ａ ｉｎｉと、端子電圧初期値Ｖ Ａ ｉｎｉと、開路電圧初期値Ｖ０ Ａ ｉｎｉは下記のようになる。
Ｉ Ａ ｉｎｉ＝Ｉ Ａ(ｋ）
Ｖ Ａ ｉｎｉ＝Ｖ Ａ(ｋ）
Ｖ０ Ａ ｉｎｉ＝Ｖ Ａ(ｋ)−ＮＡＩＢＵ(ｋ−１)×Ｉ Ａ(ｋ）
ＦＩＮＩ Ａ＝０
ＦＳＨＵ Ａ＝０  （ＦＳＨＵ Ａは収束フラグ）
ただし、ＮＡＩＢＵ(ｋ−１）は、最新の内部抵抗最適値である。演算開始時が電流Ｉ Ａ＝０であれば、開路電圧初期値は端子電圧初期値に等しい。また、収束フラグをクリアする。
ここでは、複数個の開路電圧推定手段の中で最適な開路電圧推定手段が演算する最新の内部抵抗推定値と、電流検出値と端子電圧検出値から、初期化時に開路電圧推定値の初期値を下記の（数１８）式で演算する。
0003747826.tif 000016
なお、開路電圧初期値として、最新の開路電圧推定値の最適値Ｖ０(ｋ−１）を用いる方法もある。
Ｖ０ Ａ ｉｎｉ＝Ｖ０(ｋ−１）
前記のように、最適な開路電圧推定手段が演算する最新の開路電圧推定値を初期値とした場合には、その値は初期化する時点よりも以前の推定値であるので、開路電圧の真値から多少ずれている可能性がある。したがって、上記（数１８）式のように構成すれば、内部抵抗推定値は前回値であるが、電流検出値と端子電圧検出値は初期化する時点の検出値なので、開路電圧の真値により近い初期値を用いることが出来る。
【００５９】
ステップＳＡ４０では、下記のように、その時の電流、電圧値から初期値を減算して電流差分値△Ｉ Ａ(ｋ）と端子電圧差分値△Ｖ Ａ(ｋ）を算出する。
△Ｉ Ａ(ｋ)＝Ｉ Ａ(ｋ)−Ｉ Ａ ｉｎｉ
△Ｖ Ａ(ｋ)＝Ｖ Ａ(ｋ)−Ｖ Ａ ｉｎｉ
ステップＳＡ４２では、開路電圧推定手段Ａ１１の推定値が収束したか否かを、電流差分値△Ｉ Ａ(ｋ）で判定する。つまり、電流差分値が充分大きな所定値（例えば５Ａ）であれば、推定値は収束していると判断（ＹＥＳ）出来る。したがって、△Ｉ Ａ(ｋ）≧所定値  の場合は収束したものと判断してステップＳＡ４４へ進み、その他の場合（ＮＯ）はステップＳＡ５０へ進む。
なお、収束判定を確実にするために、電流差分値が充分大きな所定値を、所定時間経過した場合に収束したと判断するように構成してもよい。ステップＳＡ４４では、開路電圧推定手段Ａ１１の推定値が収束したとして、収束フラグＦＳＨＵ Ａ＝１とする（収束処理）。
【００６０】
ステップＳＡ５０では、電流差分値△Ｉ Ａ(ｋ）と端子電圧差分値△Ｖ Ａ(ｋ）に、ノイズ除去のために適切なローパスフィルタ処理をし、処理後に改めて電流差分値△Ｉ Ａ(ｋ）と端子電圧差分値△Ｖ Ａ(ｋ）とする。
ステップＳＡ６０では、適応デジタルフィルタに、△Ｉ Ａ(ｋ）および△Ｖ Ａ(ｋ）を入力して、前記（数１３）式を演算する。なお、電流差分値と端子電圧差分値を入力するのは、適応デジタルフィルタ内の推定パラメータの初期値を約０としているので、推定演算開始時に推定パラメータが発散しないように、入力を全て０とするためである。
ｕ(ｋ)＝△Ｉ Ａ(ｋ)、  ｙ Ａ(ｋ)＝△Ｖ Ａ(ｋ)
θＴ(ｋ)＝{−ａ１(ｋ)，ｂ０(ｋ)，ｂ１(ｋ)，−ｃ１(ｋ)}
ωＴ(ｋ)＝{ｙ(ｋ−１)，ｕ(ｋ)，ｕ(ｋ−１)，ｒ(ｋ−１)}
なお、ｒ(ｋ−１)は（数１４）式で算出する。
【００６１】
ステップＳＡ７０では、（数１２−１）式、（数１２−２）式、（数１４）式を演算する。
ステップＳＡ８０では、（数１５）式を演算し、下記のように、△Ｖ０ Ａ(ｋ）、Ｒ１＋Ｒ２、Ｒ１・Ｃ１、△Ｖ Ａ(ｋ)を求める。ただし、△Ｖ０ Ａ(ｋ）は推定演算開始時からの開路電圧推定値の変化分、△Ｖ Ａ(ｋ）は推定演算開始時からの端子電圧推定値の変化分である。
0003747826.tif 000017
ステップＳＡ９０では、下記のように、開路電圧推定値Ｖ０ Ａ(ｋ）と端子電圧推定値Ｖ Ａ(ｋ）を算出する。つまり、ステップＳＡ８０で算出した△Ｖ０ Ａ(ｋ）は同定アルゴリズム開始時からの開路電圧の変化分であるから、それに開路電圧初期値Ｖ０ Ａ ｉｎｉを加算して開路電圧推定値Ｖ０ Ａ(ｋ）を算出する。また、△Ｖ Ａ(ｋ）は同定アルゴリズム開始時からの端子電圧の変化分であるから、それに端子電圧初期値Ｖ Ａ ｉｎｉを加算して端子電圧推定値Ｖ Ａ(ｋ）を算出する。
Ｖ０ Ａ(ｋ)＝△Ｖ０ Ａ(ｋ)＋Ｖ０ Ａ ｉｎｉ
Ｖ Ａ(ｋ)＝△Ｖ Ａ(ｋ)＋Ｖ Ａ ｉｎｉ
ステップＳＡ１００では、次回の演算に必要な数値を保存して、開路電圧推定手段Ａ１１の今回演算を終了する。
【００６２】
図１２は、開路電圧推定手段Ｂ１２のフローチャートであり、このルーチンは一定周期ＴＢ毎に実施される。周期ＴＢは、或る温度（例えば０℃）に最適な演算周期である。また、前記（数１２−１）式、（数１２−２）式、（数１３）式、（数１４）式、（数１５）式の演算で使用される全ての変数と定数は、周期ＴＢ毎のルーチンで使用されるものであり、図１１の周期ＴＡ毎のルーチンで使用されるものとは異なる。また、初期化要求フラグＦＩＮＩ Ｂの初期状態は１である。
【００６３】
ステップＳＢ１０では、電流検出手段１５で検出した電流Ｉ Ｂ(ｋ）と、端子電圧検出手段１６で検出した端子電圧Ｖ Ｂ(ｋ）とを読み込む。
ステップＳＢ２０では、初期化要求フラグに基づいて初期化を判断する。つまり、初期化要求フラグＦＩＮＩ Ｂ＝１（要）の場合はステップＳＢ３０へ進む。ＦＩＮＩ Ｂ＝０（不要）の場合はステップＳＢ４０へ進む。
ステップＳＢ３０では、初期化処理を行う。すなわち、初期値を例えば前記（数１７）式に設定して適応デジタルフィル（同定アルゴリズムとも言う）の初期化を行い、演算開始時点における電流初期値Ｉ Ｂ ｉｎｉと、端子電圧初期値Ｖ Ｂ ｉｎｉと、開路電圧初期値Ｖ０ Ｂ ｉｎｉを算出し、ステップＳＢ４０へ進む。
【００６４】
上記の演算開始時点における電流初期値Ｉ Ｂ ｉｎｉと、端子電圧初期値Ｖ Ｂ ｉｎｉと、開路電圧初期値Ｖ０ Ｂ ｉｎｉは下記のようになる。ただし、ＮＡＩＢＵ(ｋ−１）は最新の内部抵抗最適値である。演算開始時が電流Ｉ Ｂ＝０であれば、開路電圧初期値は端子電圧初期値に等しい。また、収束フラグをクリアする。
Ｉ Ｂ ｉｎｉ＝Ｉ Ｂ(ｋ)
Ｖ Ｂ ｉｎｉ＝Ｖ Ｂ(ｋ)
Ｖ０ Ｂ ｉｎｉ＝Ｖ Ｂ(ｋ)−ＮＡＩＢＵ(ｋ−１)×Ｉ Ｂ(ｋ)
ＦＩＮＩ Ｂ＝０
ＦＳＨＵ Ｂ＝０
ここでは、複数個の開路電圧推定手段の中で最適な開路電圧推定手段が演算する最新の内部抵抗推定値と、電流検出値と端子電圧検出値から、初期化時に開路電圧推定値の初期値を前記（数１８）式で演算する。
【００６５】
なお、開路電圧初期値として、下記のように、最新の開路電圧推定値の最適値Ｖ０(ｋ−１）とする方法もある。
Ｖ０ Ｂ ｉｎｉ＝Ｖ０(ｋ−１)
ステップＳＢ４０では、下記のように、電流差分値△Ｉ Ｂ(ｋ）と端子電圧差分値△Ｖ Ｂ(ｋ）を算出する。
△Ｉ Ｂ(ｋ)＝Ｉ Ｂ(ｋ)−Ｉ Ｂ ｉｎｉ
△Ｖ Ｂ(ｋ)＝Ｖ Ｂ(ｋ)−Ｖ Ｂ ｉｎｉ
ステップＳＢ４２では、開路電圧推定手段Ｂ１２の推定値が収束したか否かを、電流差分値△Ｉ Ｂ(ｋ）で判定する。つまり、電流差分値が充分大きな所定値（例えば５Ａ）であれば、推定値は収束していると判断出来る。したがって、
△Ｉ Ｂ(ｋ）≧所定値  の場合は、収束したと判断（ＹＥＳ）してステップＳＢ４４へ進み、その他の場合（ＮＯ）はステップＳＢ５０へ進む。なお、収束判定を確実にするために、電流差分値が充分大きな所定値を、所定時間経過した場合に収束したと判断するように構成してもよい。
【００６６】
ステップＳＢ４４では、開路電圧推定手段Ｂ１２の推定値が収束したとして、収束フラグＦＳＨＵ Ｂ＝１とする。
ステップＳＢ５０では、電流差分値△Ｉ Ｂ(ｋ）と端子電圧差分値△Ｖ Ｂ(ｋ）に、ノイズ除去のために適切なローパスフィルタ処理をし、処理後に改めて電流差分値△Ｉ Ｂ(ｋ）と端子電圧差分値△Ｖ Ｂ(ｋ）とする。
【００６７】
ステップＳＢ６０では、適応デジタルフィルタに、△Ｉ Ｂ(ｋ）および△Ｖ Ｂ(ｋ）を入力して、（数１３）式を演算する。電流差分値と端子電圧差分値を入力するのは、適応デジタルフィルタ内の推定パラメータの初期値を約０としているので、推定演算開始時に推定パラメータが発散しないように、入力を全て０とするためである。
ｕ(ｋ）＝△Ｉ Ｂ(ｋ)、  ｙ Ｂ(ｋ)＝△Ｖ Ｂ(ｋ)
θＴ(ｋ)＝{−ａ１(ｋ)，ｂ０(ｋ)，ｂ１(ｋ)，−ｃ１(ｋ)}
ωＴ(ｋ)＝{ｙ(ｋ−１)，ｕ(ｋ)，ｕ(ｋ−１)，ｒ(ｋ−１)}
ｒ(ｋ−１）は（数１４）式から算出する。
【００６８】
ステップＳＢ７０では、（数１２−１）式、（数１２−２）式、（数１４）式を行う。
ステップＳＢ８０では、（数１５）式を行う。ただし、△Ｖ０ Ｂ(ｋ）は推定演算開始時からの開路電圧推定値の変化分であり、△Ｖ Ｂ(ｋ）は推定演算開始時からの端子電圧推定値の変化分である。
0003747826.tif 000018
ステップＳＢ９０では、下記のように、開路電圧推定値Ｖ０ Ｂ(ｋ）と端子電圧推定値Ｖ Ｂ(ｋ）を算出する。つまり、ステップＳＢ８０で算出した△Ｖ０ Ｂ(ｋ）は同定アルゴリズム開始時からの開路電圧の変化分であるから、それに開路電圧初期値Ｖ０ Ｂ ｉｎｉを加算して開路電圧推定値Ｖ０ Ｂ(ｋ）を算出する。また、△Ｖ Ｂ(ｋ）は同定アルゴリズム開始時からの端子電圧の変化分であるから、それに端子電圧初期値Ｖ Ｂ ｉｎｉを加算して端子電圧推定値Ｖ Ｂ(ｋ）を算出する。
Ｖ０ Ｂ(ｋ)＝△Ｖ０ Ｂ(ｋ)＋Ｖ０ Ｂ ｉｎｉ
Ｖ Ｂ(ｋ)＝△Ｖ Ｂ(ｋ)＋Ｖ Ｂ ｉｎｉ
ステップＳＢ１００では、次回の演算に必要な数値を保存して、開路電圧推定手段Ｂ１２の今回の演算を終了する。
【００６９】
図１３は、前記図９の初期化手段１３に相当する演算処理を示すフローチャートであり、開路電圧推定手段Ａ１１と開路電圧推定手段Ｂ１２との何れの推定手段を選択するかを決定する。このルーチンは一定周期ＴＣ毎に実施される。周期ＴＣは、前記の周期ＴＡと周期ＴＢより小さい値である。なお、図１３においては、開路電圧推定手段Ａ１１を推定器Ａ、開路電圧推定手段Ｂ１２を推定器Ｂと表示している。
【００７０】
ステップＳＣ１０では、図１０の電池温度検出手段１７で検出した電池温度Ｔ(ｋ）を読み込む。この際、ノイズ除去のためにフィルタ処理をしてもよい。  ステップＳＣ２０では、初期化の必要性を判定する。この判定は前回の初期化からの時間ＣＮＴＩＮＴ(ｋ）に基づいて行う。つまりＣＮＴＩＮＩ(ｋ）≧所定値（例えば１０分）の場合は、初期化が必要と判断してステップＳＣ３０へ進む。その他の場合はＣ２５へ進む。ただし、初期値ＣＮＴＩＮＩ(ｋ）＝０である。
【００７１】
ステップＳＣ２５では、前回初期化からの時間を計数する。
ＣＮＴＩＮＩ(ｋ)＝ＣＮＴＩＮＩ(ｋ−１)＋１
ステップＳＣ３０では、電池温度Ｔ(ｋ）に基づいて、開路電圧推定手段Ａ１１と開路電圧推定手段Ｂ１２とのうちで、その時の温度に適合していない推定手段を判定する。つまり開路電圧推定手段の演算周期は所定の温度に適合するように設定されているので、二つの開路電圧推定手段の設定温度のうちで、その時の温度との差が大きい方の手段を不適合と判断する。例えば、開路電圧推定手段Ａ１１の設定温度が２５℃で、開路電圧推定手段Ｂ１２の設定温度が０℃であった場合に、Ｔ(ｋ）≧所定値(例えば１５℃）の場合は、開路電圧推定手段Ａ１１の方が適合しているので、より適合していない方の開路電圧推定手段Ｂ１２を初期化するためステップＳＣ４０へ進む。その他の場合、開路電圧推定手段Ｂ１２が適合しているので、ステップＳＣ５０へ進む。
【００７２】
ステップＳＣ４０では、開路電圧推定手段Ａ１１が適合している場合なので、開路電圧推定手段Ｂ１２を初期化するために、初期化フラグを１とする。ただし、実際の初期化処理を行うのは前記図１２のステップＳＢ３０である。また、ここで初期化されるので、前回の初期化からの時間ＣＮＴＩＮＩ(ｋ）と収束フラグＦＳＨＵ Ｂをクリアする。
ＦＩＮＩ Ｂ＝１、ＦＳＨＵ Ｂ＝０、ＣＮＴＩＮＩ(ｋ)＝０
ステップＳＣ５０では、開路電圧推定手段Ｂ１２が適合している場合なので、開路電圧推定手段Ａ１１を初期化するために、初期化フラグを１とする。ただし、実際に初期化処理を行うのは前記図１１のステップＳＡ３０である。また、ここで初期化されるので、前回の初期化からの時間ＣＮＴＩＮＩ(ｋ）と収束フラグＦＳＨＵ Ａをクリアする。
ＦＩＮＩ Ａ＝１、ＦＳＨＵ Ａ＝０、ＣＮＴＩＮＩ(ｋ)＝０
ステップＳＣ６０では、初期化された方の開路電圧推定手段の推定値が収束したか否かを判定する（ＹＥＳ：収束した場合、ＮＯ：未収束の場合）。二つの開路電圧推定手段のどちらかが初期化された場合、初期化された開路電圧推定手段の推定値が収束しているのは、
ＦＳＨＵ Ａ＝１で、かつＦＳＨＵ Ｂ＝１
の場合だけであるので、ステップＳＣ８０へ進む。その他の場合は、初期化された方の開路電圧推定手段の推定値が収束していないので、ステップＳＣ７０へ進む。
なお、電源投入時の初回は開路電圧推定手段Ａ１１、Ｂ１２共に初期化しているので、上記条件は初回をも含む。
【００７３】
ステップＳＣ７０では、初期化された方の開路電圧推定手段の推定値が未だ収束していないので、前回選択した開路電圧推定手段の推定値として、開路電圧最適値Ｖ０(ｋ）と内部抵抗最適値ＮＡＩＢＵ(ｋ）を選択する。
【００７４】
ＦＳＨＵ Ａ＝１で、かつＦＳＨＵ Ｂ＝０  の場合は、開路電圧推定手段Ａ１１を選択する。
Ｖ０(ｋ)＝Ｖ０ Ａ(ｋ)
ＮＡＩＢＵ(ｋ)＝ＮＡＩＢＵ Ａ(ｋ)
ＦＳＨＵ Ａ＝０で、かつＦＳＨＵ Ｂ＝１の場合は、開路電圧推定手段Ｂ１２を選択する。
Ｖ０(ｋ)＝Ｖ０ Ｂ(ｋ)
ＮＡＩＢＵ(ｋ)＝ＮＡＩＢＵ Ｂ(ｋ)
ＦＳＨＵ Ａ＝０で、かつＦＳＨＵ Ｂ＝０の場合は、電源投入時の初回の演算から両方の開路電圧推定手段が未だ収束していない間で、両者の開路電圧推定手段から推定値が得られていない。そのため、初回の演算では両方の開路電圧推定手段の開路電圧は共に等しく、殆ど動いていないことを考慮して、開路電圧推定手段Ａ１１を選択する。内部抵抗の方は、初期値から殆ど動いていない。
Ｖ０(ｋ)＝Ｖ０ Ａ(ｋ)
ＮＡＩＢＵ(ｋ)＝ＮＡＩＢＵ Ａ(ｋ)
ステップＳＣ８０では、初期化された方の開路電圧推定手段の推定値が収束しているので、電池温度Ｔ(ｋ）に適合している開路電圧推定手段を判定する。Ｔ(ｋ）≧所定値（例えば１５℃）の場合は、開路電圧推定手段Ａ１１が適合しているのでステップＳＣ９０へ進む。その他の場合、開路電圧推定手段Ｂ１２が適合しているのでステップＳＣ１００へ進む。
【００７５】
ステップＳＣ９０では、開路電圧推定手段Ａ１１を選択し、その開路電圧推定値を用いる。
Ｖ０(ｋ)＝Ｖ０ Ａ(ｋ)
ＮＡＩＢＵ(ｋ)＝ＮＡＩＢＵ Ａ(ｋ)
ステップＳＣ１００では、開路電圧推定手段Ｂ１２を選択し、その開路電圧推定値を用いる。
Ｖ０(ｋ)＝Ｖ０ Ｂ(ｋ)
ＮＡＩＢＵ(ｋ)＝ＮＡＩＢＵ Ｂ(ｋ)
ステップＳＣ１１０では、前記図５に示した開路電圧と充電率の相関マップを用いて、ステップＳＣ７０、ステップＳＣ９０またはステップＳＣ１００で選択したＶ０(ｋ）から充電率ＳＯＣ(ｋ）を算出する。
なお、図５中のＶＬはＳＯＣ＝０％に、ＶＨはＳＯＣ＝１００％に相当する開路電圧である。
以上で、初期化手段１３のルーチンを終了する。
【００７６】
なお、上記の実施例では、それぞれ別の温度に適した二つの開路電圧推定手段Ａ１１およびＢ１２を用いる例を説明したが、さらに多くの温度に適した複数個の開路電圧推定手段を動作させ、ステップＳＣ３０またはステップＳＣ８０で木目細かく最適な開路電圧推定手段を選択するように構成してもよい。
【００７７】
（実施例４）
また、図１０は、実施例４を機能ブロックで表した図であり、図９から電池温度検出手段１７を除いたものである。この実施例は、複数の開路電圧推定手段を有し、それぞれの開路電圧推定手段を定周期で順に初期化するように構成したものである。この実施例では、複数個の適応フィルタ（開路電圧推定手段）を一定周期で順に初期化し、最新の適応フィルタの推定値を選択する。そのため、少なくとも１つの適応フィルタは初期化されているので、パラメータ同定が止まることは無く、電池パラメータが変化した場合でも継続してパラメータを推定することができる。なお、具体的な構成を示すブロック図は前記図２と同様である。
【００７８】
図１４は、初期化手段１３に相当する他の演算処理（実施例４）を示すフローチャートである。このルーチンは一定周期ＴＤ毎に実施される。周期ＴＤは、周期ＴＡと周期ＴＢより小さい値である。また、ここでは、周期ＴＡ＝ＴＢである。なお、図１３においては、開路電圧推定手段Ａ１１を推定器Ａ、開路電圧推定手段Ｂ１２を推定器Ｂと表示している。
【００７９】
ステップＳＤ１０では、前回の初期化からの時間ＣＮＴＩＮＩ(ｋ）に基づいて初期化の必要性を判定する。つまりＣＮＴＩＮＩ(ｋ）≧所定値（例えば１０分）の場合は、初期化が必要と判断してステップＳＤ３０へ進む。その他の場合はステップＳＤ２０へ進む。ただし、初期値ＣＮＴＩＮＩ(０）＝０である。
【００８０】
ステップＳＤ２０では、前回の初期化からの時間を計数する。
ＣＮＴＩＮＩ(ｋ)＝ＣＮＴＩＮＩ(ｋ−１)＋１
ステップＳＤ３０では、初期化する開路電圧推定手段を順番フラグＦＪＵＮで判定する。ＦＪＵＮ＝０の場合は開路電圧推定手段Ｂ１２を初期化する順番なので、ステップＳＤ４０へ進む。ＦＪＵＮ＝１の場合は開路電圧推定手段Ａ１１を初期化する順番なので、ステップＳＤ５０へ進む。ただし、初期値ＦＪＵＮ＝０とする。このフローにおいては、二つ（或いはそれ以上の複数）の開路電圧推定手段を順番に初期化する。
【００８１】
ステップＳＤ４０では、開路電圧推定手段Ｂ１２を初期化するためにＢの初期化フラグを１とするが、実際に初期化処理を行うのは前記図１２のステップＳＢ３０である。また、ここで初期化されるので前回の初期化からの時間ＣＮＴＩＮＩ(ｋ）と収束フラグＦＳＨＵ Ｂをクリアする。そして、順番フラグＦＪＵＮを反転させる。
ＦＩＮＩ Ｂ＝１、  ＦＳＨＵ Ｂ＝０
ＣＮＴＩＮＩ(ｋ)＝０、  ＦＪＵＮ＝１
ステップＳＤ５０では、開路電圧推定手段Ａ１１を初期化するためにＡの初期化フラグを１とするが、実際に初期化処理を行うのは、前記図１１のステップＳＡ３０である。また、ここで初期化されるので前回の初期化からの時間ＣＮＴＩＮＩ(ｋ）と収束フラグＦＳＨＵ Ａをクリアする。そして順番フラグＦＪＵＮを反転させる。
ＦＩＮＩ Ａ＝１、  ＦＳＨＵ Ａ＝０
ＣＮＴＩＮＩ(ｋ)＝０、  ＦＪＵＮ＝０
ステップＳＤ６０では、初期化された開路電圧推定手段の推定値が収束したか否かを判定する。開路電圧推定手段のどちらかが初期化された場合、初期化された開路電圧推定手段の推定値が収束しているのは、
ＦＳＨＵ Ａ＝１で、かつＦＳＨＵ Ｂ＝１
の時だけなので、ステップＳＤ８０へ進む。その他の場合は、初期化された開路電圧推定手段の推定値が収束していないので、ステップＳＤ７０へ進む。
なお、電源投入時の初回の演算では、開路電圧推定手段Ａ１１、開路電圧推定手段Ｂ１２が共に初期化しているので、上記条件は初回をも含む。
【００８２】
ステップＳＤ７０では、初期化された開路電圧推定手段の推定値が収束していないので、前回選択した開路電圧推定手段の推定値として、開路電圧最適値Ｖ０(ｋ）と内部抵抗最適値ＮＡＩＢＵ(ｋ）を選択する。すなわち、
ＦＳＨＵ Ａ＝１で、かつＦＳＨＵ Ｂ＝０の場合には、開路電圧推定手段Ａ１１を選択する。
Ｖ０(ｋ)＝Ｖ０ Ａ(ｋ)
ＮＡＩＢＵ(ｋ)＝ＮＡＩＢＵ Ａ(ｋ)
ＦＳＨＵ Ａ＝０で、かつＦＳＨＵ Ｂ＝１の場合には、開路電圧推定手段Ｂ１２を選択する。
Ｖ０(ｋ)＝Ｖ０ Ｂ(ｋ)
ＮＡＩＢＵ(ｋ)＝ＮＡＩＢＵ Ｂ(ｋ)
ＦＳＨＵ Ａ＝０かつＦＳＨＵ Ｂ＝０の場合は、電源投入時の初回から両方の開路電圧推定手段が未だ収束していない間なので、両者の開路電圧推定手段から推定値が得られていない。そのため、初回の演算では両方の開路電圧推定手段の開路電圧は共に等しく、殆ど動いていないことを考慮して、開路電圧推定手段Ａ１１を選択する。内部抵抗の方は、初期値から殆ど動いていない。
Ｖ０(ｋ)＝Ｖ０ Ａ(ｋ)
ＮＡＩＢＵ(ｋ)＝ＮＡＩＢＵ Ａ(ｋ)
ステップＳＤ８０では、初期化された開路電圧推定手段の推定値が収束しているので、最新の開路電圧推定手段を判定する。ＦＪＵＮ＝０の場合は、開路電圧推定手段Ａ１１が初期化された場合なので、ステップＳＤ９０へ進む。ＦＪＵＮ＝１の場合は、開路電圧推定手段Ｂ１２が初期化された場合なので、ステップＳＤ１００へ進む。
【００８３】
ステップＳＤ９０では、開路電圧推定手段Ａ１１を選択する。
Ｖ０(ｋ)＝Ｖ０ Ａ(ｋ)
ＮＡＩＢＵ(ｋ)＝ＮＡＩＢＵ Ａ(ｋ)
ステップＳＤ１００では、開路電圧推定手段Ｂ１２を選択する。
Ｖ０(ｋ)＝Ｖ０ Ｂ(ｋ)
ＮＡＩＢＵ(ｋ)＝ＮＡＩＢＵ Ｂ(ｋ)
ステップＳＤ１１０では、前記図５に示した開路電圧と充電率の相関マップを用いて、ステップＳＤ７０、ステップＳＤ９０またはステップＳＤ１００で選択したＶ０(ｋ）から充電率ＳＯＣ(ｋ）を算出する。
なお、図５中のＶＬはＳＯＣ＝０％に、ＶＨはＳＯＣ＝１００％に相当する開路電圧である。
【００８４】
以下、実施例３と実施例４の作用、効果を説明するが、まず、実施例４の作用、効果を説明する。
【００８５】
図１５は、比較のために示した実施例１におけるパラメータ同定結果を示す図、図１６は実施例４におけるパラメータ同定結果を示す図である。これらの図は、電池モデルに０℃と２５℃のパラメータを真値として与えて、シミュレーション途中で電池モデルのパラメータを０℃から２５℃に切り替えた場合のパラメータ同定結果である。なお、図１５〜図１８において、真値は破線、推定値は実線で示している。
【００８６】
図１５に示した実施例１では、０℃でのパラメータ同定は成功して内部抵抗推定値は０℃の真値に収束し、開路電圧推定値も電池モデルから算出した真値と一致する。しかし、電池モデルのパラメータを０℃から２５℃に切り替えた場合（図１５の▲１▼）には、パラメータ同定が進まず内部抵抗推定値は０℃から２５℃の真値に変化しない（図１５の▲２▼）。そのため２５℃では開路電圧推定値は真値と全く一致しない。これは、時間＝０で開始した適応フィルタのゲイン行列が小さくなり、パラメータ同定が止まったためである。
【００８７】
それに対して実施例４では、図１６に示すように、０℃でのパラメータ同定は成功して内部抵抗推定値は０℃の真値に収束し、開路電圧推定値も電池モデルから算出する真値と一致する。更に、電池モデルのパラメータを０℃から２５℃に切り替えた場合（図１６の▲１▼）でも、開路電圧推定手段（適応フィルタ）を一定周期で順に初期化するため、初期化された最新の適応フィルタでパラメータ同定が進み、内部抵抗推定値は０℃から２５℃の真値に変化する（図１６の▲２▼）。そのため２５℃では開路電圧推定値も真値と一致する。
【００８８】
次に、実施例３の作用効果について説明する。実施例３においては、電池温度に基づいて不適切な開路電圧推定手段を判断し、それを初期化するので、温度変化で電池パラメータが変化した場合でも、パラメータ推定値が電池パラメータの変化に追従できないという問題を解決できる。
【００８９】
図１７は実施例３におけるパラメータ同定結果を示す図であり、電池モデルに０℃と２５℃のパラメータを真値として与えて、シミュレーション途中で電池モデルのパラメータを０℃から２５℃に切り替えた場合のパラメータ同定結果である。
【００９０】
前記実施例４では、適応フィルタを一定周期で順に初期化するので、図１６の▲３▼や▲４▼などのように、パラメータが変化していない場合でも初期化している。しかし、初期化の前後で適応フィルタの推定値を切り替える際には、若干のハンチングを生じる可能性があるので、初期化は必要最小回数が望ましい。実施例３においては、温度が０℃から２５℃に変化して不適合になった開路電圧推定手段のみを初期化（図１７の▲１▼）するので、初期化を必要最小回数に抑えることが出来る。この場合には、当然、初期化された方の適応フィルタでパラメータ同定が進み、内部抵抗推定値は０℃から２５℃の真値に変化する（図１７の▲２▼）。そのため２５℃では開路電圧推定値も真値とほぼ一致する。
【００９１】
また、複数個の開路電圧推定手段の演算周期を異なる時間に設定した場合（周期ＴＡ≒周期ＴＢ）には、温度により電池パラメータが大きく異なる場合に、それに応じた最適な演算周期で開路電圧推定手段を演算することができるので、電池パラメータが変化した場合にも最適に同定できないという問題を解決できる。図１８は周期ＴＡは２５℃に適合し、周期ＴＢは０℃に適合する値に設定し、０℃と２５℃のパラメータを真値として与えて、シミュレーション途中で電池モデルのパラメータを０℃から２５℃に切り替えた場合のパラメータ同定結果を示す図である。図１７に示した例では、複数個の適応フィルタの演算周期が同一なので、０℃で最適な演算周期に設定した場合、２５℃でのパラメータ同定には最適でないために開路電圧推定値の収束が遅れる（図１７の▲３▼）。それに対して図１８の例では、０℃で最適な演算周期に設定した開路電圧推定手段でのパラメータ同定は成功して、内部抵抗推定値は０℃の真値に収束し、開路電圧推定値も電池モデルから算出する真値と一致する。さらに、電池モデルのパラメータを０℃から２５℃に切り替えた場合（図１８の▲１▼）、２５℃で最適な演算周期に設定されている開路電圧推定手段を初期化するので、初期化された方の開路電圧推定手段はパラメータ同定が進み、内部抵抗推定値は０℃から２５℃の真値に速やかに変化する（図１８の▲２▼）。そのため２５℃では開路電圧推定値も真値と速やかに一致する（図１８の▲３▼）。
【００９２】
また、適応フィルタを初期化して再度開始する際には、開路電圧推定値の初期値が必要である。電流＝０の時は
端子電圧＝開路電圧推定値の初期値
であるから初期化して再度開始できるが、電流≠０時は
端子電圧≠開路電圧推定値の初期値
なので初期化して再度開始することができない。そのため複数個の開路電圧推定手段の中で最適な開路電圧推定手段が演算する最新の開路電圧推定値を、開路電圧推定値の初期値として用いる。このようにすれば、初期化時に電流が０であるか否かに関係なく、適応フィルタの演算を初期化して再度開始することができる。
【００９３】
上記のように、最適な開路電圧推定手段が演算する最新の開路電圧推定値を初期値とした場合には、適応フィルタの演算を初期化して再度開始することができるが、その値は初期化する時点よりも以前の推定値であるので、開路電圧の真値から多少ずれている可能性がある。したがって、複数個の開路電圧推定手段の中で最適な開路電圧推定手段が演算する最新の内部抵抗推定値と、初期化時点における電流検出値と端子電圧検出値から、初期化時に開路電圧推定値の初期値を前記（数１８）式で演算する。
上記のように構成すれば、内部抵抗推定値は前回値であるが、電流検出値と端子電圧検出値は初期化する時点の検出値なので、開路電圧の真値により近い初期値を用いることが出来る。
【図面の簡単な説明】
【図１】本発明の実施例１の基本構成を機能ブロックで表した図。
【図２】本発明の具体的構成を示すブロック図。
【図３】二次電池の等価回路モデルを示す図。
【図４】電子制御ユニット３０のマイクロコンピュータが行う処理のフローチャート。
【図５】開路電圧Ｖ０と充電率ＳＯＣの相関マップ。
【図６】実施例２の処理を示すフローチャート。
【図７】電池特性マップを示す図であり、Ａは電池内部抵抗に対応するマップ、Ｂは時定数に対応するマップ。
【図８】実施例１および実施例２における各数値の推定シミュレーション結果の一例を示す図。
【図９】実施例３を機能ブロックで表した図。
【図１０】実施例４を機能ブロックで表した図。
【図１１】開路電圧推定手段Ａ１１に相当する演算処理を示すフローチャート。
【図１２】開路電圧推定手段Ｂ１２に相当する演算処理を示すフローチャート。
【図１３】初期化手段１３に相当する演算処理を示すフローチャート。
【図１４】初期化手段１３に相当する他の演算処理を示すフローチャート。
【図１５】実施例１におけるパラメータ同定結果を示す図。
【図１６】実施例４におけるパラメータ同定結果を示す図。
【図１７】実施例３におけるパラメータ同定結果を示す図。
【図１８】実施例３において、温度に応じてそれぞれ異なった演算周期を用いる場合のパラメータ同定結果を示す図。
【符号の説明】
１…適応フィルタ演算手段        ２…パラメータベクトルθ(ｋ)演算手段
３…ゲイン行列Ｐ(ｋ)演算手段    ４…オフセット項変数ｒ(ｋ−１)演算手段
５…開路電圧Ｖ０(ｋ)演算手段     ６…ＳＯＣ演算手段
７…電池電流Ｉ(ｋ)計測手段      ８…電池電圧Ｖ(ｋ)計測手段
１０…二次電池                  １１…開路電圧推定手段Ａ
１２…開路電圧推定手段Ｂ        １３…初期化手段
１４…ＳＯＣ演算手段            １５…電池電流計測手段
１６…電池電圧計測手段          １７…電池温度検出手段
２０…モータ等の負荷            ３０…電子制御ユニット
４０…電流計                    ５０…電圧計
６０…温度計
【図１】
0003747826.tif 000022
【図２】
0003747826.tif 000023
【図３】
0003747826.tif 000024
【図４】
0003747826.tif 000025
【図５】
0003747826.tif 000026
【図６】
0003747826.tif 000027
【図７】
0003747826.tif 000028
【図８】
0003747826.tif 000029
【図９】
0003747826.tif 000030
【図１０】
0003747826.tif 000031
【図１１】
0003747826.tif 000032
【図１２】
0003747826.tif 000033
【図１３】
0003747826.tif 000034
【図１４】
0003747826.tif 000035
【図１５】
0003747826.tif 000036
【図１６】
0003747826.tif 000037
【図１７】
0003747826.tif 000038
【図１８】
0003747826.tif 000039