(57)【要約】【課題】高精度な電池の満充電容量を可能とする電池容量検出方法を提供する。【解決手段】第１の検出タイミングと、第２の検出タイミングとの間における電池の容量変化値、および等価回路モデル方式によって算出された電池の残容量の変化率と、電流値積算値から電池の満充電容量を検出するバッテリ容量算出装置１において、第１の検出タイミングおよび第２の検出タイミングは、等価回路モデルによるモデル化誤差が大きくなる条件を避けたタイミングであることを特徴とする。【選択図】図１
2011106953.tif 000002
【特許請求の範囲】
【請求項１】
第１の検出タイミングと、第２の検出タイミングとの間における電池の容量変化値、および等価回路モデル方式によって算出された電池の残容量の変化率から式（１）に従って、電池の満充電容量を検出する電池容量検出装置による電池容量検出方法であって、
前記第１の検出タイミングおよび前記第２の検出タイミングは、
等価回路モデルによる電圧推定値と、電圧センサから取得される実電圧値との誤差が所定の誤差以下であり、
電流センサから取得される実電流値が所定の電流値以下であり、
所定期間内の実電流変動値が所定の電流変動値以下であり、
所定期間内の実電圧変動値が所定の電圧変動値以下であり、
温度センサから取得される電池温度が所定の電池温度以上である
ことを特徴とする電池容量検出方法。
ＣＡＰＡ＝ΔＡｈ／ΔＳＯＣ  ・・・（１）
ただし、ＣＡＰＡは前記電池の満充電容量であり、ΔＡｈは前記第１の検出タイミングと、前記第２の検出タイミングとの間における前記電池の容量変化値であり、ΔＳＯＣは第１の検出タイミングと、第２の検出タイミングとの間における等価回路モデル方式によって算出された電池の残容量の変化率である。
【請求項２】
前記所定の電流値が、前記所定の電流値以下、かつ、前記所定の電流値よりも低い第２の所定の電流値以上である
ことを特徴とする請求項１に記載の電池容量検出方法。
【請求項３】
前記満充電容量は、式（２）によって補正されることを特徴とする請求項１に記載の電池容量検出方法。
ＣＡＰＡ（ｎ）＝Ｗ×ＣＡＰＡ（ｎ−１）＋（１−Ｗ）×（ΔＡｈ／ΔＳＯＣ）  ・・・（２）
ここで、ＣＡＰＡ（ｎ）は前記満充電容量の今回値、ＣＡＰＡ（ｎ−１）は前記満充電容量の前回値、Ｗは０≦Ｗ≦１の値をとる重み係数である。
【請求項４】
前記式（２）によって算出される前記満充電容量は、式（３）によって補正されることを特徴とする請求項３に記載の電池容量検出方法。
ＣＡＰＡＦ（ｎ）＝Ｆ×ＣＡＰＡ（ｎ）＋（１−Ｆ）×ＣＡＰＡＦ（ｎ−１）  ・・・（３）
ここで、ＣＡＰＡＦ（ｎ）は満充電容量フィルタ値の今回値、ＣＡＰＡＦ（ｎ−１）は満充電容量フィルタ値の前回値、Ｆは０≦Ｆ≦１の値をとるフィルタ係数である。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電池容量検出方法の技術に関する。
【背景技術】
【０００２】
特許文献１では、以下の手順によってバッテリ容量を算出する満充電容量検出方法が開示されている。
１．第１の検出タイミングと、第２の検出タイミングとの間において、電池の充放電電流の積算値から充放電電気量を算出する。
２．第１の検出タイミングにおけるＯＣＶ（Open Circuit Voltage）と、第２のタイミングにおけるＯＣＶを検出し、これらのＯＣＶからバッテリのＳＯＣ（State Of Charge：電池の残容量）を算出する。
３．第１のタイミングおよび第２のタイミングにおけるＳＯＣの変動値（ΔＳＯＣ）と、充放電電気量（ΣＩ）から下記の式（Ｂ１）よりバッテリ容量ＣＡＰＡを算出する。
【０００３】
ＣＡＰＡ＝ΔＡｈ／ΔＳＯＣ  ・・・（Ｂ１）
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２４１３５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の技術ではＯＣＶの検出に、充放電電気量に対するＯＣＶ特性の関数またはマップなどを用いている。この方法では、バッテリの経時変化や温度変化などによる特性変化には対応することが困難であり、ＯＣＶの検出誤差が大きくなってしまう。この結果、バッテリ容量の推定精度が悪化してしまうという問題がある。
【０００６】
そこで、本発明の課題は、高精度な電池の満充電容量を可能とする電池容量検出方法を提供することにある。
【課題を解決するための手段】
【０００７】
前記課題を解決する本発明のうち請求項１に記載の発明は、第１の検出タイミングと、第２の検出タイミングとの間における電池の容量変化値、および等価回路モデル方式によって算出された電池の残容量の変化率からＣＡＰＡ＝ΔＡｈ／ΔＳＯＣに従って、電池の満充電容量を検出する電池容量検出装置による電池容量検出方法であって、前記第１の検出タイミングおよび前記第２の検出タイミングは、等価回路モデルによる電圧推定値と、電圧センサから取得される実電圧値との誤差が所定の誤差以下であり、電流センサから取得される実電流値が所定の電流値以下であり、所定期間内の実電流変動値が所定の電流変動値以下であり、所定期間内の実電圧変動値が所定の電圧変動値以下であり、温度センサから取得される電池温度が所定の電池温度以上であることを特徴とする。
ただし、ＣＡＰＡは前記電池の満充電容量であり、ΔＡｈは前記第１の検出タイミングと、前記第２の検出タイミングとの間における前記電池の容量変化値であり、ΔＳＯＣは第１の検出タイミングと、第２の検出タイミングとの間における等価回路モデル方式によって算出された電池の残容量の変化率である。
【０００８】
請求項１に係る発明によれば、等価回路モデルのモデル化誤差が大きくなる条件を避けた状況で、等価回路モデルで算出されたＳＯＣを用いた電池の満充電容量を算出できるため、電池の経時的変化に追従した精度の高い電池の満充電容量を検出することが可能となる。
【０００９】
また、請求項２に係る発明は、前記所定の電流値が、前記所定の電流値以下、かつ、前記所定の電流値よりも低い第２の所定の電流値以上であることを特徴とする。
【００１０】
請求項２に係る発明によれば、電流値を所定の範囲内に収めることができるため、より精度の高い電池の満充電容量を検出することが可能となる。
【００１１】
また、請求項３に係る発明において、前記満充電容量は、ＣＡＰＡ（ｎ）＝Ｗ×ＣＡＰＡ（ｎ−１）＋（１−Ｗ）×（ΔＡｈ／ΔＳＯＣ）によって補正されることを特徴とする。
ここで、ＣＡＰＡ（ｎ）は前記満充電容量の今回値、ＣＡＰＡ（ｎ−１）は前記満充電容量の前回値、Ｗは０≦Ｗ≦１の値をとる重み係数である。
【００１２】
請求項３に係る発明によれば、センサの誤差などに起因する算出満充電容量の急激な変化を防止することができる。
【００１３】
そして、請求項４に係る発明において、ＣＡＰＡ（ｎ）＝Ｗ×ＣＡＰＡ（ｎ−１）＋（１−Ｗ）×（ΔＡｈ／ΔＳＯＣ）によって算出される前記満充電容量は、ＣＡＰＡＦ（ｎ）＝Ｆ×ＣＡＰＡ（ｎ）＋（１−Ｆ）×ＣＡＰＡＦ（ｎ−１）によって補正されることを特徴とする。
ここで、ＣＡＰＡＦ（ｎ）は満充電容量フィルタ値の今回値、ＣＡＰＡＦ（ｎ−１）は満充電容量フィルタ値の前回値、Ｆは０≦Ｆ≦１の値をとるフィルタ係数である。
【００１４】
請求項４に係る発明によれば、電池の満充電容量の急激な変化を防止することができる。
【発明の効果】
【００１５】
本発明によれば、高精度な電池の満充電容量を可能とする電池容量検出方法を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】本実施形態に係るバッテリ容量算出装置の構成例を示すブロック図である。
【図２】本実施形態に係る条件Ｚ１および条件Ｚ２を判定するためのブロック線図である。
【図３】本実施形態に係る条件Ｚ３を判定するためのブロック線図である。
【図４】本実施形態に係る条件Ｚ４を判定するためのブロック線図である。
【図５】本実施形態に係る条件Ｚ５を判定するためのブロック線図である。
【図６】等価回路モデル演算処理の流れを示すフローチャートである。
【図７】本実施形態に係るタイミング条件判定処理の流れを示すフローチャートである。
【図８】本実施形態に係るバッテリ容量演算処理の流れを示すフローチャートである（その１）。
【図９】本実施形態に係るバッテリ容量演算処理の流れを示すフローチャートである（その２）。
【発明を実施するための形態】
【００１７】
次に、本発明を実施するための最良の形態（「実施形態」という）について、適宜図面を参照しながら詳細に説明する。
【００１８】
（バッテリ容量算出装置）
図１は、本実施形態に係るバッテリ容量算出装置の構成例を示すブロック図である。
バッテリ容量算出装置（電池容量検出装置）１は、等価回路モデル演算部１０と、タイミング条件判定部２０と、バッテリ容量演算部３０と、記憶部４０とを有している。
等価回路モデル演算部１０は、車両に搭載される図示しないバッテリ（電池）に設置されている電圧センサ６０、電流センサ７０、温度センサ８０から得られる実電圧値、実電流値、バッテリ温度の各センサ値が入力され、これらの値から等価回路モデル方式によるＳＯＣ推定値を算出し、算出したＳＯＣ推定値をバッテリ容量演算部３０へ出力する機能を有する。
【００１９】
タイミング条件判定部２０は、各センサ６０，７０、８０から入力される実電圧値、実電流値、バッテリ温度や、記憶部４０に記憶されている安定電流値マップ４１、安定電流変動値マップ４２、安定電圧変動値マップ４３、基準抵抗値マップ４４を用いて、以下の５つの条件（タイミング条件）のすべてが満たされているか否かを判定し、判定の結果にしたがって切替フラグをバッテリ容量演算部３０へ出力する機能を有する。
【００２０】
条件Ｚ１：等価回路モデル方式で推定された電圧変動値の推定値と、電圧センサ６０から入力された実電圧変動値の差分値閾値（所定の誤差）以下
条件Ｚ２：電流センサ７０から入力された実電流値が所定上限値（所定の電流値）以下、もしくは実電流値が所定範囲（所定の下限電流値以上、所定の上限電流値以下）内
条件Ｚ３：所定期間内における実電流変動値が所定値（所定の電流変動値）以下
条件Ｚ４：所定期間内における実電圧変動値が所定値（所定の電圧変動値）以下
条件Ｚ５：温度センサ８０から入力されたバッテリ温度が閾値（所定の電池温度）以上
【００２１】
バッテリ容量演算部３０は、タイミング条件Ｚ１〜Ｚ５の成立を検知すると、これを第１のタイミングまたは第２のタイミングとして等価回路モデルを用いて推定したＳＯＣ推定値を基に、バッテリ容量を算出する機能を有する。なお、バッテリ容量演算部３０は、条件Ｚ１〜Ｚ５の成立に加えて、以下の条件（容量算出条件）Ｗ１〜Ｗ４が成立したときに、バッテリ容量を算出する。
条件Ｗ１：第１のタイミングと、第２のタイミングでのＳＯＣの変動値（ΔＳＯＣ）が所定値以上（後記する式（５）の第２項における分母を小さくしないための条件）
条件Ｗ２：第１のタイミングと、第２のタイミング間で積算された実電流値（ΔＡｈ＝｜ΣＩ｜）が所定値以上（例えば、ΔＡｈが０に近い値である場合、後記する式（５）の第２項で算出されるバッテリ容量の今回値が０に近い値となってしまうのを避けるための条件）
条件Ｗ３：第１のタイミングと、第２のタイミングの間隔が所定時間Ｔ１以上、所定時間Ｔ２以下（短い時間でバッテリ容量の算出が行われないようにするためと、長期間にわたって実電流値が積算されるために生じるΔＡｈの誤差を避けるための条件）
条件Ｗ４：ΔＳＯＣと、ΔＡｈの正負が同符号（本来同符号であるはずのΔＳＯＣとΔＡｈが、異符号となっているときは電流センサ７０などの誤差が生じていると考えられるため）
【００２２】
これらの条件Ｗ１〜Ｗ４が成立したときに、バッテリ容量演算部３０は重み係数およびフィルタ係数を用いてバッテリ容量を算出する。重み係数およびフィルタ係数を用いたバッテリ容量（電池の満充電容量）の算出方法については後記する。
【００２３】
等価回路モデル演算部１０は、電圧・電流変動値演算部１１、ＲＬＳ（Recursive Least Square：逐次最小二乗法）同定部１２、ＯＣＶ推定部１３およびＳＯＣ変換部１４を有する。
電圧・電流変動値演算部１１は、入力された実電圧値、実電流値と、記憶部４０に一時記憶している前回実電圧値、前回実電流値から、実電圧変動値および実電流変動値を算出する機能を有する。
ＲＬＳ同定部１２は、電圧・電流変動値演算部１１から入力された実電圧変動値および実電流変動値と、温度センサ８０から入力されたバッテリ温度を基に、逐次最小二乗法によってバッテリの内部抵抗値を推定する機能を有する。
ＯＣＶ推定部１３は、ＲＬＳ同定部１２から入力された内部抵抗値の推定値を基に、ＯＣＶを推定する機能を有する。
そして、ＳＯＣ変換部１４は、図示しないＯＣＶ−ＳＯＣマップを用いて、ＯＣＶから等価回路モデル方式によるＳＯＣを推定する機能を有する。
なお、等価回路モデル演算部１０は、公知の技術（例えば、特開２００９−１０３４７１号公報参照）である。
【００２４】
記憶部４０には、後記して説明する安定電流値マップ４１、安定電流変動値マップ４２、安定電圧変動値マップ４３、基準抵抗値マップ４４が格納されている。なお、安定電流値マップ４１、安定電流変動値マップ４２、安定電圧変動値マップ４３、基準抵抗値マップ４４の代わりに、各マップ４１〜４４に相当する関数が格納されていてもよい。
なお、バッテリ容量算出装置１は、ＥＣＵ（Electronic Control Unit）などに搭載されるものであり、等価回路モデル演算部１０、タイミング条件判定部２０、バッテリ容量演算部３０および等価回路モデル演算部１０における各部１１〜１４はＲＯＭ（Read Only Memory）などに格納されたプログラムが、ＣＰＵ（Central Processing Unit）によって実行されることによって具現化する。
【００２５】
次に、図２〜図５を参照して、第１のタイミングおよび第２のタイミングを検出するための条件Ｚ１〜Ｚ５を判定する処理を説明する。
【００２６】
（条件Ｚ１：推定電圧値と実電圧値の差分値が所定値以下）
図２（ａ）は、本実施形態に係る条件Ｚ１を判定するためのブロック線図である。
条件Ｚ１は、実電圧変動値と、等価回路モデルを使用して推定された電圧変動値の誤差が大きいときは、等価回路モデル方式のモデル化誤差が大きいため、バッテリ容量を算出するための第１のタイミングおよび第２のタイミングとはしないための条件である。
まず、タイミング条件判定部２０は、電圧センサ６０、電流センサ７０から入力された実電圧値、実電流値から、記憶部４０に一時記憶していた実電圧値、実電流値の前回値を減算することによって、実電圧変動値、実電流変動値を算出する。そして、タイミング条件判定部２０は、実電流変動値に等価回路モデル演算部１０によって算出された内部抵抗値の推定値を乗算することによって（Ｓ１０１）、電圧変動値の推定値を算出する。
【００２７】
次に、タイミング条件判定部２０は、実電圧変動値から電圧変動値の推定値を減算することによって（Ｓ１０２）、電圧変動値の差分値を算出する。
そして、タイミング条件判定部２０は、予め設定してある閾値（所定の誤差）と、ステップＳ１０２で算出した差分値とを比較し（Ｓ１０３）、比較結果を出力する。タイミング条件判定部２０は、例えば、差分値が閾値以下であれば比較結果として「１」、差分値が閾値より大きければ「０」を出力する。
なお、閾値の値は、例えば１ｍＶなどが考えられる。
【００２８】
（条件Ｚ２：電流センサ７０から入力された実電流値が所定値以下、もしくは実電流値が所定範囲内）
図２（ｂ）は、本実施形態に係る条件Ｚ２を判定するためのブロック線図である。
条件Ｚ２は、大電流が流れているときや、実電流値が小さいときは、等価回路モデル方式のモデル化誤差が大きいため、バッテリ容量を算出するための第１のタイミングおよび第２のタイミングとはしないための条件である。大電流が流れるときとは、車両加速時にバッテリからモータへの供給電力が大きいときや、車両減速時にモータからバッテリへの回生電力量が大きいときなどである。
まず、タイミング条件判定部２０は、温度センサ８０から入力されたバッテリ温度を基に、記憶部４０に記憶されている安定電流値マップ４１から、入力されたバッテリ温度における安定電流値を算出する（Ｓ２０１）。図２（ｂ）に示すように安定電流値マップ４１は、バッテリ温度（Ｔ［℃］）と、安定電流値（Ｉ［Ａ］）とが対応付けられているマップである。
そして、タイミング条件判定部２０は、実電流値の絶対値を算出すると（Ｓ２０２）、この絶対値と、ステップＳ２０１で算出した安定電流値（所定の電流値）を比較し（Ｓ２０３）、比較結果を出力する。ステップＳ２０２で絶対値を算出したのは、充電方向と放電方向で電流の符号が変わることを考慮するためである。タイミング条件判定部２０は、例えば、絶対値が安定電流値以下であれば、比較結果として「１」を出力し、絶対値が安定電流値より大きければ「０」を出力する。
【００２９】
なお、図２（ｂ）では、ステップＳ２０２の絶対値が安定電流値以下であれば「１」を出力するとしたが、タイミング条件判定部２０は以下の手順で実電流値の絶対値が所定範囲内にあることを判定してもよい。すなわち、バッテリ容量算出装置１は最高安定電流値マップ、最低安定電流値マップを記憶部４０に格納しており、タイミング条件判定部２０はバッテリ温度を基に、最高安定電流値マップ、最低安定電流値マップから最高安定電流値（所定の上限電流値）および最低安定電流値（所定の下限電流値）を算出する。そして、タイミング条件判定部２０は、実電流値の絶対値が最高安定電流値および最低安定電流値の範囲内であれば「１」を出力し、絶対値が最高安定電流値および最低安定電流値の範囲外であれば「０」を出力する。
さらに、タイミング条件判定部２０は、絶対値が３０［Ａ］以下であれば「１」を出力したり、絶対値が３［Ａ］以上３０［Ａ］以下であれば「１」を出力したりするなど、マップを用いずに定数値で判定を行ってもよい。
【００３０】
（条件Ｚ３：所定期間内における実電流変動値が所定値以下）
図３は、本実施形態に係る条件Ｚ３を判定するためのブロック線図である。
条件Ｚ３は、実電流値の変動が大きいときは、等価回路モデル方式のモデル化誤差が大きいため、バッテリ容量を算出するための第１のタイミングおよび第２のタイミングとはしないための条件である。
まず、タイミング条件判定部２０は、予め設定されており、記憶部４０に一時記憶されている所定時間ΔＴ１前の実電流値を取得し（Ｓ３０１）、実電流値の現在値から、所定時間前の実電流値を減算して（Ｓ３０２）、所定期間内実電流変動値ΔＩ０を算出する。なお、所定時間ΔＴ１は、例えば１秒間が設定される。
一方、タイミング条件判定部２０は、温度センサ８０から入力されたバッテリ温度と、記憶部４０に格納されている安定電流変動値マップ４２から、このバッテリ温度における安定電流変動値を算出する（Ｓ３０３）。図３に示すように、安定電流変動値マップ４２は、バッテリ温度（Ｔ［℃］）と、安定電流変動値（ΔＩ［Ａ］）とが対応付けられているマップである。
【００３１】
そして、タイミング条件判定部２０は、所定期間内実電流変動値（ΔＩ０）と、安定電流変動値（ΔＩ：所定の電流変動値）とを比較し（Ｓ３０４）、比較結果を出力する。タイミング条件判定部２０は、例えば、実電流変動値が安定電流変動値以下であれば、比較結果として「１」を出力し、実電流変動値が安定電流変動値より大きければ、比較結果として「０」を出力する。
なお、実電流変動値が１０［Ａ］以下であれば、タイミング条件判定部２０は比較結果として「１」を出力するなど、マップを用いずに定数で比較を行ってもよい。
【００３２】
（条件Ｚ４：所定期間内における実電圧変動値が所定値以下）
図４は、本実施形態に係る条件Ｚ４を判定するためのブロック線図である。
条件Ｚ４は、実電圧値の変動が大きいときは、等価回路モデル方式のモデル化誤差が大きいため、バッテリ容量を算出するための第１のタイミングおよび第２のタイミングとはしないための条件である。
まず、タイミング条件判定部２０は、予め設定されており、記憶部４０に一時記憶している所定時間ΔＴ２前の実電圧値を取得し（Ｓ４０１）、実電圧値の現在値から所定時間前の実電圧値を減算して（Ｓ４０２）、所定期間内実電圧変動値ΔＶ０を算出する。なお、所定時間ΔＴ２は、例えば１秒間が設定される。
一方、タイミング条件判定部２０は、温度センサ８０から入力されたバッテリ温度と、記憶部４０に格納されている安定電圧変動値マップ４３から安定電圧値変動値を取得する（Ｓ４０３）。図４に示すように安定電圧変動値マップ４３は、バッテリ温度（Ｔ［℃］）と、安定電圧変動値（ΔＶ［Ｖ］）とが対応付けられているマップである。
【００３３】
また、タイミング条件判定部２０は、入力されたバッテリ温度と、記憶部４０に記憶されている基準抵抗値マップ４４から基準抵抗値Ｒ０を算出する（Ｓ４０４）。基準抵抗値とは、例えば、新品のバッテリにおいて、該当するバッテリ温度下の内部抵抗値などである。図４に示すように、基準抵抗値マップ４４はバッテリ温度（Ｔ［℃］）と、基準抵抗値（Ｒ０［ｍΩ］）とが対応付けられているマップである。
そして、タイミング条件判定部２０は等価回路モデルで算出した推定内部抵抗値Ｒを、ステップＳ４０４で算出したＲ０で除算し（Ｓ４０５）、算出したＲ／Ｒ０をステップＳ４０３で算出した安定電圧変動値に乗算する（Ｓ４０６）。これは、バッテリの劣化に伴う内部抵抗値の影響を考慮するために行われる処理である。
【００３４】
最後に、タイミング条件判定部２０はステップＳ４０２で算出した所定期間内実電圧変動値（ΔＶ０）と、ステップＳ４０６でＲ／Ｒ０を乗算された安定電圧変動値（所定の電圧変動値）とを比較し（Ｓ４０７）、比較結果を出力する。
タイミング条件判定部２０は、例えば、実電圧変動値が安定電圧変動値以下であれば、比較結果として「１」を出力し、実電圧変動値が安定電圧変動値より大きければ「０」を出力する。
なお、実電圧変動値が０．１［Ｖ］以下であれば、タイミング条件判定部２０は比較結果として「１」を出力するなど、マップを用いずに定数を用いてもよい。
【００３５】
（条件Ｚ５：バッテリ温度が所定値以上）
図５は、本実施形態に係る条件Ｚ５を判定するためのブロック線図である。
条件Ｚ５は、極低温条件下ではバッテリの内部抵抗値が大きくなるため、このような極低温条件下では等価回路モデル方式のモデル化誤差が大きくなるのでバッテリ容量を算出するための第１のタイミングおよび第２のタイミングとはしないための条件である。
タイミング条件判定部２０は、温度センサ８０から入力されたバッテリ温度と、予め設定してある閾値（所定の電池温度）とを比較し（Ｓ５０１）、比較結果を出力する。
タイミング条件判定部２０は、例えば、バッテリ温度が閾値より大きければ「１」を出力し、バッテリ温度が閾値以下であれば「０」を出力する。
閾値としては、例えば「−３０［℃］」などが考えられる。
【００３６】
（等価回路モデル演算処理）
次に、図６〜図８を参照して、等価回路モデル演算処理、タイミング条件判定処理およびバッテリ容量演算処理の説明を行う。
図６は、等価回路モデル演算処理の流れを示すフローチャートである。図６に示す等価回路モデル演算処理は、前記したように公知の処理である。等価回路モデル演算処理は特開２００９−１０３４７１号公報などに記載されている技術である。
まず、実電圧値の今回値をＶ（ｋ）、実電流の今回値をＩ（ｋ）、実電圧値の前回値をＶ（ｋ−１）、実電流値の前回値をＩ（ｋ−１）、実電流変動値をｄＶ（ｋ）、実電流変動値をｄＩ（ｋ）とすると、電圧・電流変動値演算部１１は、以下の式（１）、式（２）を演算することにより実電圧変動値（ｄＶ（ｋ））と、実電流変動値（（ｄＩ（ｋ））とを算出する（Ｓ６０１）。
【００３７】
ｄＶ（ｋ）＝Ｖ（ｋ）−Ｖ（ｋ−１）  ・・・（１）
ｄＩ（ｋ）＝Ｉ（ｋ）−Ｉ（ｋ−１）  ・・・（２）
【００３８】
次に、ＲＬＳ同定部１２が、ステップＳ６０１で算出した実電圧変動値（ｄＶ（ｋ））および実電流変動値（ｄＩ（ｋ））から、逐次最小二乗法により内部抵抗値Ｒの推定値を算出する（Ｓ６０２）。
そして、ＯＣＶ推定部１３が、推定した内部抵抗値を基に、バッテリの開路電圧値の推定値ＯＣＶ（ｋ）を算出する（Ｓ６０３）。
そして、ＳＯＣ変換部１４が、ステップＳ６０３で算出された開路電圧値の推定値ＯＣＶ（ｋ）を基に、等価回路モデルによる充電状態の推定値ＳＯＣ（ｋ）を算出する（Ｓ６０４）。
ステップＳ６０４で算出された充電状態の推定値ＳＯＣ（ｋ）はバッテリ容量演算部３０へ出力され、等価回路モデル演算部１０はステップＳ６０１へリターンする。
【００３９】
（タイミング条件判定処理）
図７は、本実施形態に係るタイミング条件判定処理の流れを示すフローチャートである。
まず、タイミング条件判定部２０は、等価回路モデル演算部１０から実電圧変動値（ｄＶ（ｋ））と、実電流変動値（ｄＩ（ｋ））と、バッテリの内部抵抗の推定値（Ｒ）とを取得すると、図２（ａ）で説明した処理を行うことによって、条件Ｚ１が成立しているか否か、すなわち式（３）の不等式が成立しているか否かを判定する（Ｓ７０１）。なお、式（４）における閾値は所定の誤差である。
【００４０】
｜ｄＶ（ｋ）−ｄＩ（ｋ）×Ｒ｜≦閾値  ・・・（３）
【００４１】
ステップＳ７０１の結果、式（３）の不等式が成立していない場合（Ｓ７０１→Ｎｏ：条件Ｚ１が不成立：図２（ａ）の比較結果が「０」に相当）、タイミング条件判定部２０はタイミングフラグを「０」として（Ｓ７０７）、バッテリ容量演算部３０へ出力し、ステップＳ７０１へリターンする。
【００４２】
ステップＳ７０１の結果、式（３）の不等式が成立している場合（Ｓ７０１→Ｙｅｓ：条件Ｚ１が成立：図２（ａ）の比較結果が「１」に相当）、タイミング条件判定部２０は、図２（ｂ）で説明した処理を行うことによって、条件Ｚ２が実電流値の絶対値（｜Ｉ｜）が所定下限値（図２（ｂ）における最低安定電流値：所定の下限電流値）以上、所定上限値（図２（ｂ）における最高安定電流値：所定の上限電流値）以下であるか否かを判定する（Ｓ７０２）。
なお、ステップＳ７０２の処理は、前記した図２（ｂ）で実電流値の絶対値が所定範囲内に入っているか否かを判定したものであり、ステップＳ７０２においてタイミング条件判定部２０は実電流値の絶対値が所定値（所定の電流値）以下であるか否かを判定してもよい。
ステップＳ７０２の結果、実電流値の絶対値が所定上限値より大きいか、または所定下限値未満の場合（Ｓ７０２→Ｎｏ：条件Ｚ２が不成立：図２（ｂ）の比較結果が「０」に相当）、タイミング条件判定部２０はタイミングフラグを「０」として（Ｓ７０７）、バッテリ容量演算部３０へ出力し、ステップＳ７０１へリターンする。
【００４３】
ステップＳ７０２の結果、実電流値の絶対値が所定上限値以下、所定下限値以上である場合（Ｓ７０２→Ｙｅｓ：条件Ｚ２が成立：図２（ｂ）の比較結果が「１」に相当）、タイミング条件判定部２０は、図３で説明した処理を行うことによって、条件Ｚ３が成立するか否か、すなわち所定期間内実電流変動値（ΔＩ０）が、所定値（図３における安定電流変動値ΔＩ：所定の電流変動値）以下であるか否かを判定する（Ｓ７０３）。
ステップＳ７０３の結果、所定期間内実電流変動値（ΔＩ０）が所定値より大きい場合（Ｓ７０３→Ｎｏ：条件Ｚ３が不成立：図３の比較結果が「０」に相当）、タイミング条件判定部２０はタイミングフラグを「０」として（Ｓ７０７）、バッテリ容量演算部３０へ出力し、ステップＳ７０１へリターンする。
【００４４】
ステップＳ７０３の結果、所定期間内実電流変動値（ΔＩ０）が所定値以下である場合（Ｓ７０３→Ｙｅｓ：条件Ｚ３が成立：図３の比較結果が「１」に相当）、タイミング条件判定部２０は、図４で説明した処理を行うことによって、条件Ｚ４が成立するか否か、すなわち所定期間内実電圧変動値（ΔＶ０）が、所定値（図４における安定電圧変動値ΔＶ：所定の電圧変動値）以下であるか否かを判定する（Ｓ７０４）。
ステップＳ７０４の結果、所定期間内実電圧変動値（ΔＶ０）が所定値より大きい場合（Ｓ７０４→Ｎｏ：条件Ｚ４が不成立：図４の比較結果が「０」に相当）、タイミング条件判定部２０はタイミングフラグを「０」として（Ｓ７０７）、バッテリ容量演算部３０へ出力し、ステップＳ７０１へリターンする。
【００４５】
ステップＳ７０４の結果、所定期間内実電圧変動値（ΔＶ０）が所定値以下である場合（Ｓ７０４→Ｙｅｓ：条件Ｚ４が成立：図４の比較結果が「１」に相当）、タイミング条件判定部２０は、図５で説明した処理を行うことによって、条件Ｚ５が成立するか否か、すなわちバッテリ温度Ｔが閾値以上であるか否かを判定する（Ｓ７０５）。
ステップＳ７０５の結果、バッテリ温度Ｔが閾値（所定の電池温度）未満である場合（Ｓ７０５→Ｎｏ：条件Ｚ５が不成立：図５の比較結果が「０」に相当）、タイミング条件判定部２０はタイミングフラグを「０」として（Ｓ７０７）、バッテリ容量演算部３０へ出力し、ステップＳ７０１へリターンする。
【００４６】
ステップＳ７０５の結果、バッテリ温度Ｔは閾値以上である場合（Ｓ７０５→Ｙｅｓ：条件Ｚ５が成立：図５の比較結果が「１」に相当）、タイミング条件判定部２０はタイミングフラグを「１」として（Ｓ７０６）、バッテリ容量演算部３０へ出力し、ステップＳ７０１へリターンする。
【００４７】
なお、本実施形態では、条件Ｚ１〜Ｚ５のすべてが成立した場合にタイミングフラグを「１」としたが、少なくとも条件Ｚ１が成立していればタイミングフラグを「１」としてもよい。
【００４８】
（バッテリ容量演算処理）
図８および図９は、本実施形態に係るバッテリ容量演算処理の流れを示すフローチャートである。
まず、バッテリ容量演算部３０は、タイミング条件判定部２０から取得したタイミングフラグが「１」であるか否かを判定する（図８のＳ８０１）ことによって、条件Ｚ１〜Ｚ５が成立したか否かを判定する。なお、条件Ｚ１〜Ｚ５のすべて成立したときのみ「Ｙｅｓ」と判定してもよいし、少なくとも条件Ｚ１が成立したときに「Ｙｅｓ」と判定してもよい。ここで、前回ＳＯＣ検出条件が成立したタイミングが第１の検出タイミングとなり、今回ＳＯＣ検出条件が成立したタイミングが第２の検出タイミングとなる。
ステップＳ８０１の結果、タイミングフラグが「１」である場合（Ｓ８０１→Ｙｅｓ）、バッテリ容量演算部３０は等価回路モデル演算部１０から等価回路モデル方式によるＳＯＣ推定値を取得する（Ｓ８０２）。
そして、バッテリ容量演算部３０は、ステップＳ８０２で取得したＳＯＣ推定値（ＳＯＣ）から、記憶部に一時記憶しているＳＯＣ推定値の前回値（ＳＯＣＰ）を減算した値の絶対値（｜ＳＯＣ−ＳＯＣＰ｜）が所定値以上であるか否かを判定する（Ｓ８０３：条件Ｗ１）。ステップＳ８０３における所定値としては、５（％）などが考えられる。
【００４９】
ステップＳ８０３の結果、所定値以上である場合（Ｓ８０３→Ｙｅｓ：条件Ｗ１が成立）、バッテリ容量演算部３０は、後記するステップＳ８０８において実電流値を積算した値の絶対値（｜ΣＩ｜）が所定値以上であるか否かを判定する（Ｓ８０４：条件Ｗ２）。ステップＳ８０４における所定値としては０．１（Ａｈ）などが考えられる。
ステップＳ８０４の結果、所定値以上である場合（Ｓ８０４→Ｙｅｓ：条件Ｗ２が成立）、バッテリ容量演算部３０は前回ＳＯＣ検出条件が成立してからの経過時間Ｔが、所定時間Ｔ１以上であるか否かを判定する（Ｓ８０５：条件Ｗ３の下限条件）。なお、Ｔ１としては１０（ｓｅｃ）などが考えられる。
【００５０】
ステップＳ８０５の結果、経過時間Ｔが、所定時間Ｔ１以上である場合（Ｓ８０５→Ｙｅｓ：条件Ｗ３の加減が成立）、バッテリ容量演算部３０はＳＯＣ推定値の今回値（ＳＯＣ）から、ＳＯＣ推定値の前回値（ＳＯＣＰ）を減算した値をΔＳＯＣ（電池の残容量の変化率）とし（ΔＳＯＣ＝ＳＯＣ−ＳＯＣＰ）、実電流値を積算した値の絶対値をΔＡｈ（電池の容量変化値）とし（ΔＡｈ＝ΣＩ）、カウンタＣＮＴを１インクリメントする（ＣＮＴ＝ＣＮＴ＋１）（Ｓ８０６）。
その後、バッテリ容量演算部３０はＳＯＣの前回値（ＳＯＣＰ）を今回値（ＳＯＣ）で更新し（ＳＯＣＰ＝ＳＯＣ）、実電流値の積算値を「０」に更新し（ΣＩ＝０）、経過時間Ｔを「０」に更新し（Ｔ＝０）（Ｓ８０７）、ステップＳ８０９へ処理を進める。
【００５１】
一方、ステップＳ８０１,Ｓ８０３，Ｓ８０４，Ｓ８０５のいずれかで「Ｎｏ」が判定された場合（つまり、条件Ｗ１〜Ｗ３のいずれかが不成立の場合）、バッテリ容量演算部３０は、電流センサから取得した実電流値Ｉを用いて、電流積算値ΣＩを以下の式（４）に従って更新し、経過時間Ｔに演算周期Ｔｓａｍｐｌｅを加えて経過時間Ｔを更新し（Ｔ＝Ｔ＋Ｔｓａｍｐｌｅ）（Ｓ８０８）、ステップＳ８０９へ処理を進める。
【００５２】
ΣＩ＝ΣＩ＋Ｉ／（３６００×Ｔｓａｍｐｌｅ）  ・・・（４）
【００５３】
ステップＳ８０７およびステップＳ８０８の後、バッテリ容量演算部３０は、前回ＳＯＣ検出条件が成立してからの経過時間Ｔが、所定時間Ｔ２以下であるか否かを判定する（図９のＳ８０９：条件Ｗ３の上限条件）。なお、Ｔ２としては１２０（ｓｅｃ）などが考えられる。
ステップＳ８０９の結果、経過時間Ｔが、所定時間Ｔ２以下である場合（Ｓ８０９→Ｙｅｓ：条件Ｗ３の上限条件が成立）、バッテリ容量演算部３０はΔＳＯＣ×ΔＡｈが正の値であるか否かを判定し（Ｓ８１０）、ΔＳＯＣとΔＡｈの正負が同符号であるか否かを判定する（条件Ｗ４）。
ステップＳ８１０でΔＳＯＣ×ΔＡｈが正の値である場合（Ｓ８１０→Ｙｅｓ：条件Ｗ４が成立）、バッテリ容量演算部３０は、カウンタＣＮＴがバッテリ容量演算条件成立回数ＥＳＴＮより大きな値であるか否かを判定する（Ｓ８１１）。ステップＳ８１１の処理は、ステップＳ８０６を経過したときのみ、つまり条件Ｗ１，Ｗ２と、条件Ｗ３の下限条件が成立したときのみステップＳ８１２でバッテリ容量を算出するためである。
【００５４】
ステップＳ８１１でカウンタＣＮＴがバッテリ容量演算条件成立回数ＥＳＴＮより大きな値である場合（Ｓ８１１→Ｙｅｓ）、バッテリ容量演算部３０は、バッテリ容量の前回値ＣＡＰＡや、予め設定してある重み係数Ｗ（０≦Ｗ≦１）などを用いて、式（５）よりバッテリ容量を更新し、さらにバッテリ容量演算条件成立回数ＥＳＴＮをカウンタＣＮＴで更新する（Ｓ８１２）。バッテリ容量演算部３０が、式（５）を演算することにより、センサのエラーなどが原因による算出バッテリ容量の急激な変化を防止することができる。
【００５５】
ＣＡＰＡ＝Ｗ×ＣＡＰＡ＋（１−Ｗ）×（ΔＡｈ／ΔＳＯＣ）  ・・・（５）
【００５６】
なお、ステップＳ８１２において、過去ｎ回のバッテリ容量を用いて移動平均のようにバッテリ容量の今回値を算出してもよい。
また、ステップＳ８１２において、重み係数を使用せずに以下の式（６）からバッテリ容量ＣＡＰＡを算出してもよい。
【００５７】
ＣＡＰＡ＝ΔＡｈ／ΔＳＯＣ  ・・・（６）
【００５８】
そして、バッテリ容量演算部３０は、ステップＳ８１２で更新したバッテリ容量ＣＡＰＡと、前回の最終バッテリ容量ＣＡＰＡＦと、予め設定してあるフィルタ係数Ｆ（０≦Ｆ≦１）を用いて、式（７）より最終バッテリ容量ＣＡＰＡＦを更新し（Ｓ８１３）、ステップＳ８０１へリターンする。ステップＳ８１３は、最終バッテリ容量が急激に変化することを防止するために行うフィルタ演算である。
【００５９】
ＣＡＰＡＦ＝Ｆ×ＣＡＰＡ＋（１−Ｆ）×ＣＡＰＡＦ  ・・・（７）
【００６０】
なお、ステップＳ８０９、ステップＳ８１０で「Ｎｏ」（条件Ｗ３の上限条件またはＷ４が不成立）またはステップＳ８１１で「Ｎｏ」が判定されたとき、バッテリ容量演算部３０はステップＳ８１２をスキップしてステップＳ８１３の処理を行う。つまり、バッテリ容量ＣＡＰＡの値は更新されずにステップＳ８１３の処理が行われる。
【００６１】
なお、条件Ｗ１〜Ｗ４はすべて成立する必要はなく、少なくとも条件Ｗ３の上限条件および条件Ｗ４が成立していればよい。つまり、図８において少なくともステップＳ８０１，Ｓ８０６，Ｓ８０７，Ｓ８０８，Ｓ８１０,Ｓ８１２が実行されればよい。
【００６２】
（まとめ）
本実施形態によれば、電流センサ７０の誤差が蓄積される電流積算方式を用いずに、等価回路モデル方式によるＳＯＣ推定値を用いてバッテリ容量の算出を行うことができる。このとき、等価回路モデル方式で大きな誤差が生じる条件Ｚ１〜Ｚ５を避けたタイミングを、バッテリ容量算出のための第１のタイミングおよび第２のタイミングとすることができるため、高精度のバッテリ容量の算出が可能となる。
従って、電池の特性変化に追従できる等価回路モデルを使用した精度の高いバッテリ容量の算出が可能となる。
【符号の説明】
【００６３】
１      バッテリ容量算出装置（電池容量検出装置）
１０    等価回路モデル演算部
１１    電圧・電流変動値演算部
１２    ＲＬＳ同定部
１３    ＯＣＶ推定部
１４    ＳＯＣ変換部
２０    タイミング条件判定部
３０    バッテリ容量演算部
４０    記憶部
４１    安定電流値マップ
４２    安定電流変動値マップ
４３    安定電圧変動値マップ
４４    基準抵抗値マップ
６０    電圧センサ
７０    電流センサ
８０    温度センサ
【図１】
2011106953.tif 000003
【図２】
2011106953.tif 000004
【図３】
2011106953.tif 000005
【図４】
2011106953.tif 000006
【図５】
2011106953.tif 000007
【図６】
2011106953.tif 000008
【図７】
2011106953.tif 000009
【図８】
2011106953.tif 000010
【図９】
2011106953.tif 000011