以下、図面に基づいて、本願の開示する推定プログラム、推定方法および推定装置の実施例を詳細に説明する。なお、本実施例により、開示技術が限定されるものではない。また、以下の実施例は、矛盾しない範囲で適宜組みあわせてもよい。
図1は、実施例1の推定装置の構成の一例を示すブロック図である。図1に示す推定装置100は、測定部101と、出力部102と、記憶部120と、制御部130とを有する。推定装置100は、例えば、リチウムイオン二次電池モジュールに組み込まれる。また、推定装置100は、セルの充放電を制御する制御部を含んでもよい。なお、推定装置100は、例えば、電気自動車や電動バイク等の制御装置の一機能として実装して、リチウムイオン二次電池モジュールを制御するようにしてもよい。
測定部101は、リチウムイオン二次電池の電流および端子電圧を測定する。測定部101は、例えば、電流計および電圧計で、それぞれ電流および端子電圧を測定する。測定部101は、測定された電流および端子電圧を、それぞれ測定電流および測定端子電圧として制御部130に出力する。また、測定部101は、リチウムイオン二次電池の動作モードを取得して制御部130に出力する。
出力部102は、制御部130から充電率情報が入力されると、充電率情報を、例えば、他の装置に出力する。ここで、他の装置は、例えば、電気自動車や電動バイク等であれば、車両の制御装置であり、例えば、スマートフォン等の携帯情報端末であれば、画面を表示する表示部である。他の装置は、充電率情報が入力されると、例えば、使用者が視認できるように、車両のメータや表示部に充電率を表示する。
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部120は、条件記憶部121を有する。また、記憶部120は、制御部130での処理に用いる情報を記憶する。
条件記憶部121は、OCV(Open Circuit Voltage)特性曲線、カルマンフィルタの各種パラメータ、等価電気回路モデルの各パラメータ、閾値r、閾値a等を記憶する。OCV特性曲線は、リチウムイオン二次電池のOCV−SoC特性を示すグラフであり、詳細は後述する。カルマンフィルタの各種パラメータとしては、例えば、予測ノイズを示すΣv、および、測定ノイズを示すΣw等が挙げられる。等価電気回路モデルの各パラメータは、後述するR0、R1、R2、C1、C2等が挙げられる。なお、等価電気回路モデルの各パラメータは、予め実際のリチウムイオン二次電池に合致するように設定する。
閾値rは、測定端子電圧とカルマンフィルタにより予測された予測端子電圧との差分である誤差を、電流に対して正規化する際に場合分けを行う閾値である。閾値rは、例えばr=5とすることができる。閾値aは、カルマンフィルタによる充電率の補正値に突発的な過剰誤差が発生した場合に、過剰誤差による補正を行わないためのしきい値である。
制御部130は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、内部の記憶装置に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。また、制御部130は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されるようにしてもよい。制御部130は、算出部131と、補正部132と、判定部133とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、図1に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
算出部131は、測定部101から測定電流および測定端子電圧が入力されると、カルマンフィルタを用いて、SoC(充電率)、および、予測端子電圧を算出する。また、算出部131は、測定端子電圧と予測端子電圧との差分y*(k)を誤差として算出する。さらに、算出部131は、SoCを補正するために、後述するカルマンフィルタで算出された状態推定値の逆行列と、差分y*(k)と、カルマンゲインG(k)とを、1ステップごとに補正部132に出力する。また、算出部131は、1ステップごとに補正部132から1ステップ前の状態推定値が入力される。
ここで、図2および図3を用いて、カルマンフィルタを用いたSoC推定処理について説明する。図2は、リチウムイオン二次電池の等価電気回路モデルの一例を示す説明図である。図2に示すように、リチウムイオン二次電池の等価電気回路モデルは、SoCの変化に応じて変化する電位差OCVを表す電流源VOCV_DC(SoC)、および、VOCV_CC(SoC)を有する。ここで、電流源VOCV_DC(SoC)、および、VOCV_CC(SoC)は、それぞれ、放電時の電位差OCVおよび充電時の電位差OCVを表す。また、図2に示す等価電気回路モデルは、電流変化に対して発生する電圧v0の変化を表す抵抗R0、電流変化に対して過渡的な電圧v1、v2の変化を表すRC回路(R1C1、および、R2C2)を有する。つまり、等価電気回路モデルは、リチウムイオン二次電池の内部抵抗を、測定電流iに依存する関数とするために用いる。なお、内部抵抗の正確性は、カルマンフィルタを用いたSoC推定精度に大きな影響を与える。
図2に示す等価電気回路モデルの端子電圧vは、電位差OCVと、電圧v0と、電圧v1と、電圧v2との和で表現される。つまり、端子電圧vは、下記の式(1)で表すことができる。算出部131は、カルマンフィルタを用いて、OCVがSoCに応じて変化することを利用して、SoCの推定を行う。
図3は、OCV特性曲線の一例を示すグラフである。図3に示すOCV特性曲線は、条件記憶部121に記憶されている。算出部131は、カルマンフィルタを用いてSoCの推定を行う際に、条件記憶部121に記憶されたOCV特性曲線を参照する。
算出部131は、等価電気回路モデルを用いて、1ステップ前のv1、v2、およびOCVと、入力される測定電流iとに基づいて、現在のv1、v2、およびOCVと、予測端子電圧とを予測する。また、算出部131は、OCV特性曲線を用いてOCVからSoCを算出する。ここで、下記の式(2)〜(4)に、対応する式を示す。ここで、式(2)は現在の状態推定値を示す。式(3)は、OCV特性に基づく端子電圧を示す。式(4)は、1ステップ前の状態推定値を示す。
次に、算出部131は、実際に測定された測定端子電圧と、予測端子電圧との差分を算出する。算出部131は、v1、v2、およびSoCと、端子電圧とに想定されるノイズを考慮して、測定端子電圧と予測端子電圧との誤差の原因となるv1、v2、およびSoCの誤差を推定する。算出部131は、推定したv1、v2、およびSoCの誤差を、予測したv1、v2、およびSoCに加えて補正することで、正しいSoCの推定値を充電率情報として出力部102に出力する。
続いて、図4を用いてカルマンフィルタを用いたSoC推定処理の詳細について説明する。図4は、カルマンフィルタを用いたSoC推定処理の一例を示す説明図である。まず、図4の説明に用いる文字を説明する。kは、カルマンフィルタのステップ数を示す。
[文字1]
は、ステップk−1のカルマンフィルタの状態推定値を示し、以下、1ステップ前の状態推定値という。
[文字2]
は、ステップkのカルマンフィルタの状態推定値を示し、以下、状態推定値という。
[文字3]
は、ステップkの測定端子電圧を示し、以下、測定端子電圧という。
[文字4]
は、ステップkの測定端子電圧と予測端子電圧との差分を正規化した差分を示し、以下、差分の正規化値という。
[文字5]
は、ステップkのカルマンフィルタの状態推定値の逆行列を示し、以下、状態推定値の逆行列という。
[文字6]
は、ステップkのカルマンフィルタの状態推定値の修正値を示し、以下、修正値という。G(k)は、ステップkのカルマンゲインを示す。Aは、ヤコビアンを示す。P(k)は、ステップkの誤差の共分散行列、つまり推定値の精度を示す。Σvは、予測ノイズを示す。Σwは、測定ノイズを示す。
カルマンフィルタは、フィードバック系の処理であるので、図4のSoC推定処理の説明では、便宜上「S」から処理を説明する。ここで、本実施例では、以下のカルマンフィルタのステップS11〜S16に相当する処理を算出部131で実行し、ステップS17〜S19に相当する処理を補正部132で実行する。従って、以下の説明では、制御部130がカルマンフィルタの処理を実行するものとして説明する。
制御部130は、測定電流i(k)が入力されると、1ステップ前の状態推定値と、測定電流i(k)とに基づいて、下記の式(5)を用いて状態推定値の逆行列、つまり予測値を算出する(ステップS11)。ここで、測定電流i(k)は、1秒ごとに入力される場合を示しており、下記に示す式(6)の関係となる。
制御部130は、測定端子電圧が入力されると、測定端子電圧と、状態推定値の逆行列と、測定電流i(k)とに基づいて、下記の式(7)を用いて測定端子電圧と予測端子電圧y(k)との差分y*(k)を算出する(ステップS12)。また、式(7)は、予測端子電圧y(k)を用いて、下記の式(8)とも表現できる。ここで、測定端子電圧は、下記の式(9)の関係となる。
次に、制御部130は、1ステップ前の状態推定値に基づいて、下記の式(10)を用いてヤコビアンAを算出する(ステップS13)。
制御部130は、ヤコビアンAと、1ステップ前の共分散行列P(k−1)と、予測ノイズΣvとに基づいて、下記の式(11)を用いて共分散行列の逆行列P−(k)を算出する(ステップS14)。
制御部130は、共分散行列の逆行列P−(k)と、測定ノイズΣwとに基づいて、下記の式(12)を用いてカルマンゲインG(k)を算出する(ステップS15)。
制御部130は、カルマンゲインG(k)と、共分散行列の逆行列P−(k)とに基づいて、下記の式(13)を用いて共分散行列P(k)を算出する(ステップS16)。制御部130は、ステップS14〜S16を1ステップごとに繰り返す。
次に、制御部130は、ステップS12で算出された差分y*(k)と、ステップS15で算出されたカルマンゲインG(k)とに基づいて、下記の式(14)を用いて、状態推定値を修正するための修正値を算出する(ステップS17)。
制御部130は、ステップS11で算出された状態推定値の逆行列と、ステップS17で算出された修正値とに基づいて、下記の式(15)を用いて状態推定値を算出する(ステップS18)。ここで、状態推定値は、下記の式(16)とも表すことができる。
制御部130は、状態推定値に基づいて、下記の式(17)を用いてSoCを算出する(ステップS19)。
このように、制御部130は、SoC推定処理として、ステップS11〜S19の処理を1ステップごとに繰り返すことによって、例えば、1秒ごとにSoCを算出できる。
図1に戻って、補正部132は、まず、初期設定として、制御部130が条件記憶部121を参照して、閾値rと、閾値aとが設定される。補正部132は、測定部101から測定電流、つまり、当該ステップの測定電流i(k)が入力される。また、補正部132は、算出部131から状態推定値の逆行列と、差分y*(k)と、カルマンゲインG(k)とが、1ステップごとに入力される。
補正部132は、測定電流i(k)を用いて、差分y*(k)を正規化する。まず、補正部132は、測定電流i(k)が閾値rより大きいか否かを判定する。補正部132は、測定電流i(k)が閾値rより大きい場合には、下記の式(18)に示すように、差分y*(k)を測定電流i(k)の絶対値で除算した値と、閾値rとを乗算して、差分の正規化値を算出する。補正部132は、測定電流i(k)が閾値r以下の場合には、下記の式(19)に示すように、差分y*(k)を、そのまま差分の正規化値とする。
また、補正部132は、判定部133からモード情報が入力される。補正部132は、モード情報がCC(Constant Current)モード、つまり定電流モードである場合には、下記の式(20)に示すように、カルマンゲインG(k)と、差分の正規化値とに基づいた値のSoCに対応する行列の成分が、閾値aより大きいか否かを判定する。これは、予測端子電圧の誤差が突発的に極めて大きくなる場合に対応する。例えば、SoCの推定に、カルマンフィルタをより簡単にしたモデルを用いた場合や、電池パック内の測定器の精度が悪い場合などが挙げられる。
補正部132は、カルマンゲインG(k)と、差分の正規化値とに基づいた値のSoCに対応する行列の成分が、閾値a以下の場合には、カルマンゲインG(k)と差分の正規化値とを乗算した値を、状態推定値の正規化修正値Gy(k)として算出する。つまり、状態推定値の正規化修正値Gy(k)は、下記の式(21)で算出できる。
補正部132は、測定電流i(k)が閾値rより大きい場合、つまり、式(18)の演算を行った場合には、SoC以外のパラメータについて電流依存性を戻すため、下記の式(22)によって状態推定値の補正修正値Gyr(k)を算出する。
ここで、式(22)は、より詳細には、例えば、下記の式(23)および式(24)と表すことができる。
補正部132は、状態推定値の逆行列に、補正修正値Gyr(k)を加算して状態推定値とする。この場合の状態推定値は、下記の式(25)によって算出できる。
補正部132は、カルマンゲインG(k)と、差分の正規化値とに基づいた値のSoCに対応する行列の成分が、閾値aより大きい場合には、下記の式(26)に示すように、状態推定値の逆行列を状態推定値とする。
補正部132は、式(25)または式(26)によって算出された状態推定値を、1ステップごとに算出部131に出力する。また、補正部132は、算出された状態推定値から式(17)によってSoCを算出する。補正部132は、算出されたSoCを出力部102に出力する。
補正部132は、モード情報がCV(Constant Voltage)モード、つまり定電圧モードである場合には、SoCをクーロンカウンタにより推定する。補正部132は、推定したSoCと、v1、v2とに基づいて、状態推定値を算出する。補正部132は、算出された状態推定値を、1ステップごとに算出部131に出力する。補正部132は、推定されたSoCを出力部102に出力する。
判定部133は、出力部102から動作モードが入力されると、動作モードがCVモード(定電圧モード)であるか否かを判定する。判定部133は、動作モードがCVモードである場合には、モード情報をCVモードとして補正部132に出力する。判定部133は、動作モードがCVモードでない場合には、モード情報をCCモードとして補正部132に出力する。
次に、実施例1の推定装置100の動作について説明する。
図5は、実施例1の推定装置の処理の一例を示すフローチャートである。推定装置100の制御部130は、条件記憶部121から各種パラメータを読み込んで、算出部131、補正部132および判定部133に初期設定する。制御部130は、例えば、条件記憶部121を参照して、閾値r、閾値aを補正部132に設定する(ステップS101)。
推定装置100は、接続されたリチウムイオン二次電池のSoCの推定を開始する。測定部101は、測定された電流および端子電圧を、それぞれ測定電流および測定端子電圧として制御部130に出力する。また、測定部101は、リチウムイオン二次電池の動作モードを取得して制御部130に出力する。
算出部131は、測定部101から測定電流および測定端子電圧が入力されると、カルマンフィルタを用いて、1ステップ前の状態推定値と、測定電流i(k)とに基づいて、SoCと、予測端子電圧y(k)と、状態推定値の逆行列と、カルマンゲインG(k)とを算出する(ステップS102)。
算出部131は、測定端子電圧と、予測端子電圧y(k)との差分y*(k)とを算出する(ステップS103)。
補正部132は、測定部101から測定電流、つまり、当該ステップの測定電流i(k)が入力される。また、補正部132は、算出部131から状態推定値の逆行列と、差分y*(k)と、カルマンゲインG(k)とが、1ステップごとに入力される。補正部132は、測定電流i(k)が閾値rより大きいか否かを判定する(ステップS104)。補正部132は、測定電流i(k)が閾値rより大きい場合には(ステップS104:肯定)、式(18)に示すように、差分y*(k)を測定電流i(k)の絶対値で除算した値と、閾値rとを乗算して、差分の正規化値を算出する(ステップS105)。補正部132は、測定電流i(k)が閾値r以下の場合には(ステップS104:否定)、式(19)に示すように、差分y*(k)を、そのまま差分の正規化値とする(ステップS106)。
判定部133は、出力部102から動作モードが入力されると、動作モードがCVモードであるか否かを判定する(ステップS107)。判定部133は、動作モードがCVモードである場合には(ステップS107:肯定)、モード情報をCVモードとして補正部132に出力する。判定部133は、動作モードがCVモードでない場合には(ステップS107:否定)、モード情報をCCモードとして補正部132に出力する。
補正部132は、判定部133からCCモードであるモード情報が入力されると、式(20)に示すように、カルマンゲインG(k)と、差分の正規化値とに基づいた値のSoCに対応する行列の成分が、閾値aより大きいか否かを判定する(ステップS108)。補正部132は、カルマンゲインG(k)と、差分の正規化値とに基づいた値のSoCに対応する行列の成分が、閾値a以下の場合には(ステップS108:否定)、状態推定値の正規化修正値Gy(k)を式(21)に示すように算出する。つまり、補正部132は、カルマンゲインG(k)と差分の正規化値とを乗算した値を、状態推定値の正規化修正値Gy(k)とする(ステップS109)。
補正部132は、測定電流i(k)が閾値rより大きいか否かを判定する(ステップS110)。補正部132は、測定電流i(k)が閾値rより大きい場合には(ステップS110:肯定)、状態推定値の補正修正値Gyr(k)を式(22)に示すように算出する(ステップS111)。補正部132は、測定電流i(k)が閾値r以下の場合には(ステップS110:否定)、ステップS112に進む。すなわち、補正部132は、ステップS104で、測定電流i(k)が閾値rより大きいと判定して、ステップS105の処理を行った場合に、ステップS111の処理を行う。
補正部132は、状態推定値を、式(25)に示すように算出する。つまり、補正部132は、状態推定値の逆行列に、補正修正値Gyr(k)を加算して状態推定値とする(ステップS112)。
補正部132は、カルマンゲインG(k)と、差分の正規化値とに基づいた値のSoCに対応する行列の成分が、閾値aより大きい場合には(ステップS108:肯定)、式(26)に示すように、状態推定値の逆行列を状態推定値とする(ステップS113)。
補正部132は、判定部133からCVモードであるモード情報が入力されると(ステップS107:肯定)、SoCをクーロンカウンタにより推定する(ステップS114)。補正部132は、推定したSoCと、v1、v2とに基づいて、状態推定値を算出する。補正部132は、ステップS112〜ステップS114のいずれかによって算出された状態推定値を、1ステップごとに算出部131に出力する。
補正部132は、算出された状態推定値から式(17)によってSoCを算出する(ステップS115)。補正部132は、算出されたSoCを出力部102に出力する(ステップS116)。補正部132は、カルマンフィルタを次のステップに進めるために、kをインクリメントして(ステップS117)、ステップS102の処理に戻る。推定装置100は、ステップS102〜S117を繰り返す。これにより、大電流時における過剰な補正を防止しつつ、電池の等価電気モデルの電流変化に対する過渡的な電圧に電流依存性を戻し、突発的に発生する過剰な誤差に基づく過剰な補正を防止するので、充電率の推定精度の劣化を防止できる。
このように、推定装置100は、電池の測定電流および測定端子電圧に基づいて、カルマンフィルタを用いて電池の充電率および予測端子電圧を算出し、測定端子電圧と予測端子電圧との差分を算出する。また、推定装置100は、差分を測定電流の絶対値で除算した値と、カルマンフィルタのカルマンゲインとに基づいて修正値を算出する。また、推定装置100は、該修正値における電池の等価電気回路モデルの電流変化に対する過渡的な電圧に対応する成分に、測定電流の絶対値を乗算して、充電率を補正する。その結果、充電率の推定精度の劣化を防止できる。すなわち、推定装置100は、等価電気回路モデル誤差、測定誤差、動作モードの違いによる突発性の誤差によるSoC推定精度の劣化を防止できる。また、推定装置100は、電池の等価電気回路モデルの電流変化に対する過渡的な電圧に電流依存性を戻すので、より充電率の推定精度の劣化を防止できる。
また、推定装置100は、測定電流の絶対値が所定値を超える場合に、差分を測定電流の絶対値で除算した値と、カルマンフィルタのカルマンゲインとに基づいて修正値を算出する。また、推定装置100は、該修正値における電池の等価電気回路モデルの電流変化に対する過渡的な電圧に対応する成分に、測定電流の絶対値を乗算して充電率を補正する。また、推定装置100は、測定電流の絶対値が所定値以下の場合に、差分とカルマンフィルタのカルマンゲインとに基づいて、充電率を補正する。その結果、大電流時における過剰な補正をより防止できる。
また、推定装置100は、充電率を補正する補正値が所定値以上の場合に、補正値をゼロとして充電率を補正する。その結果、突発的に発生する過剰な誤差に基づく過剰な補正を防止できる。
また、推定装置100は、さらに、電池の動作モードが定電圧モードであるか否かを判定する。また、推定装置100は、電池が定電圧モードである場合に、充電率を補正する補正値をゼロとして充電率を補正する。その結果、SoCの推定モデルが異なることによる過剰な補正を防止できる。
また、上記実施例1では、測定電流i(k)に応じて、測定端子電圧と予測端子電圧との差分y*(k)を正規化して充電率を算出したが、これに限定されない。例えば、測定電流i(k)に応じて、カルマンフィルタの予測ノイズΣvを修正するようにしてもよい。
そこで、測定電流i(k)に応じて、カルマンフィルタの予測ノイズΣvを修正する実施の形態につき、実施例2として以下に説明する。なお、上記実施例1の推定装置100と同一の構成には、同一符号を付すことで、その重複する構成および動作の説明については省略する。実施例2の推定装置200が実施例1の推定装置100と異なるところは、測定端子電圧と予測端子電圧との差分y*(k)を正規化せずに、測定電流i(k)に応じて、カルマンフィルタの予測ノイズΣvを修正する点にある。
図6は、実施例2の推定装置の構成の一例を示すブロック図である。実施例2の推定装置200は、実施例1の制御部130に代えて、制御部230を有する点が異なる。また、制御部230は、実施例1の制御部130の算出部131および補正部132に代えて、算出部231および補正部232を有する点が異なる。また、実施例2の推定装置200は、カルマンフィルタの処理として、実施例1のカルマンフィルタと比べて、ステップS14にて修正されたΣvを用いる他は同一の処理であるので、その重複する処理の説明については省略する。
算出部231は、補正部232から予測ノイズΣvまたは補正予測ノイズΣvmが入力される。算出部231は、カルマンフィルタを用いて、状態推定値と、測定電流i(k)と、予測ノイズΣvまたは補正予測ノイズΣvmとに基づいて、SoCと、予測端子電圧y(k)と、状態推定値の逆行列と、カルマンゲインG(k)とを算出する。
補正部232は、まず、初期設定として、制御部230が条件記憶部121を参照して、閾値rと、閾値aとが設定される。補正部232は、測定部101から測定電流、つまり、当該ステップの測定電流i(k)が入力される。また、補正部232は、算出部231から状態推定値の逆行列と、差分y*(k)と、カルマンゲインG(k)とが、1ステップごとに入力される。
補正部232は、測定電流i(k)が閾値rより大きいか否かを判定する。補正部232は、測定電流i(k)が閾値rより大きい場合には、下記の式(27)に示すように、予測ノイズΣvのうち、SoCに対応しない複数の成分に、閾値rを測定電流i(k)で除算した値に基づく値を乗算して、補正予測ノイズΣvmを算出する。
補正部232は、式(27)に示すように、例えば、予測ノイズΣvの(1,1),(1,2),(2,1),(2,2)成分を、(rb/|i(k)|)2倍とする。また、補正部232は、例えば、予測ノイズΣvの(1,3),(2,3),(3,1),(3,2)成分を、(rb/|i(k)|)倍とする。なお、予測ノイズΣvの(3,3)成分は、SoCに対応するのでそのままとする。また、bは、任意の設定パラメータである。なお、式(27)の「×」は、Σvの行列の各成分に対して、各成分を(rb/|i(k)|)2倍、(rb/|i(k)|)倍、または1倍する意味で用いている。すなわち、各成分を(rb/|i(k)|)2倍、(rb/|i(k)|)倍、または1倍する行列をΣm1とすると、Σvpq×Σm1pq(p=1〜3,q=1〜3)とも表せる。
ここで、予測ノイズΣvの一例を下記の式(28)に示す。なお、式(28)中のl、m、nは、それぞれv1、v2、SoCに対応するパラメータを示す。
補正部232は、測定電流i(k)が閾値r以下の場合には、予測ノイズΣvは修正せず、そのままとする。補正部232は、予測ノイズΣvまたは補正予測ノイズΣvmを算出部231に出力する。
また、補正部232は、判定部133からモード情報が入力される。補正部232は、モード情報がCCモード、つまり定電流モードである場合には、下記の式(29)に示すように、カルマンゲインG(k)と、差分y*(k)とに基づいた値のSoCに対応する行列の成分が、閾値aより大きいか否かを判定する。
補正部232は、カルマンゲインG(k)と、差分y*(k)とに基づいた値のSoCに対応する行列の成分が、閾値a以下の場合には、カルマンゲインG(k)と、差分y*(k)とを乗算した値を、式(14)に示すように修正値として算出する。補正部232は、式(15)に示すように、状態推定値の逆行列に修正値を加算して状態推定値とする。
補正部232は、カルマンゲインG(k)と、差分y*(k)とに基づいた値のSoCに対応する行列の成分が、閾値aより大きい場合には、式(26)に示すように、状態推定値の逆行列を状態推定値とする。
補正部232は、式(15)または式(26)によって算出された状態推定値を、1ステップごとに算出部131に出力する。また、補正部132は、算出された状態推定値から式(17)によってSoCを算出する。補正部132は、算出されたSoCを出力部102に出力する。
補正部232は、モード情報がCVモード、つまり定電圧モードである場合には、SoCをクーロンカウンタにより推定する。補正部232は、推定したSoCと、v1、v2とに基づいて、状態推定値を算出する。補正部232は、算出された状態推定値を、1ステップごとに算出部231に出力する。補正部232は、推定されたSoCを出力部102に出力する。
図7は、実施例2のカルマンフィルタを用いたSoC推定処理の一例を示す説明図である。ここで、実施例2では、以下のカルマンフィルタのステップS11〜S16に相当する処理を算出部231で実行し、ステップS10およびS17〜S19に相当する処理を補正部232で実行する。実施例2のカルマンフィルタでは、実施例1のカルマンフィルタと比較して、ステップS10およびステップS14が異なるので、当該ステップのみ説明する。なお、以下の説明では、実施例1と同様に、制御部230がカルマンフィルタの処理を実行するものとして説明する。
制御部230は、測定電流i(k)が入力されると、測定電流i(k)が閾値rより大きいか否かを判定する。補正部232は、測定電流i(k)が閾値rより大きい場合には、式(27)に示すように、予測ノイズΣvのうち、SoCに対応しない複数の成分に、閾値rを測定電流i(k)で除算した値に基づく値を乗算して、補正予測ノイズΣvmを算出する。すなわち、制御部230は、予測ノイズΣvを補正予測ノイズΣvmに修正する。補正部232は、測定電流i(k)が閾値r以下の場合には、予測ノイズΣvは修正せず、そのままとする(ステップS10)。
制御部230は、ヤコビアンAと、1ステップ前の共分散行列P(k−1)と、予測ノイズΣvまたは補正予測ノイズΣvmとに基づいて、式(11)を用いて共分散行列の逆行列P−(k)を算出する(ステップS14)。制御部230は、実施例1と同様に、SoC推定処理として、ステップS10〜S19の処理を1ステップごとに繰り返すことによって、例えば、1秒ごとに測定電流i(k)に応じた予測ノイズを用いてSoCを算出できる。
次に、実施例2の推定装置200の動作について説明する。
図8は、実施例2の推定装置の処理の一例を示すフローチャートである。推定装置200の制御部230は、条件記憶部121から各種パラメータを読み込んで、算出部231、補正部232および判定部133に初期設定する。制御部230は、例えば、条件記憶部121を参照して、閾値r、閾値aを補正部232に設定する(ステップS201)。
推定装置200は、接続されたリチウムイオン二次電池のSoCの推定を開始する。測定部101は、測定された電流および端子電圧を、それぞれ測定電流および測定端子電圧として制御部230に出力する。また、測定部101は、リチウムイオン二次電池の動作モードを取得して制御部230に出力する。
補正部232は、測定部101から測定電流i(k)が入力されると、測定電流i(k)が閾値rより大きいか否かを判定する(ステップS202)。補正部232は、測定電流i(k)が閾値rより大きい場合には(ステップS202:肯定)、予測ノイズΣvのうち、SoCに対応しない複数の成分に、閾値rを測定電流i(k)で除算した値に基づく値を乗算して、補正予測ノイズΣvmを算出する。補正部232は、予測ノイズΣvを算出した補正予測ノイズΣvmに修正する(ステップS203)。補正部232は、測定電流i(k)が閾値r以下の場合には(ステップS202:否定)、予測ノイズΣvは修正しない。補正部232は、予測ノイズΣvまたは補正予測ノイズΣvmを算出部231に出力する。
算出部231は、補正部232から予測ノイズΣvまたは補正予測ノイズΣvmが入力される。算出部231は、カルマンフィルタを用いて、1ステップ前の状態推定値と、測定電流i(k)と、予測ノイズΣvまたはΣvmとに基づいて、SoCと、予測端子電圧y(k)と、状態推定値の逆行列と、カルマンゲインG(k)とを算出する(ステップS204)。
算出部231は、測定端子電圧と、予測端子電圧y(k)との差分y*(k)とを算出する(ステップS205)。
判定部133は、出力部102から動作モードが入力されると、動作モードがCVモードであるか否かを判定する(ステップS206)。判定部133は、動作モードがCVモードである場合には(ステップS206:肯定)、モード情報をCVモードとして補正部232に出力する。判定部133は、動作モードがCVモードでない場合には(ステップS206:否定)、モード情報をCCモードとして補正部232に出力する。
補正部232は、判定部133からCCモードであるモード情報が入力されると、式(29)に示すように、カルマンゲインG(k)と、差分y*(k)とに基づいた値のSoCに対応する行列の成分が、閾値aより大きいか否かを判定する(ステップS207)。補正部232は、カルマンゲインG(k)と、差分y*(k)とに基づいた値のSoCに対応する行列の成分が、閾値a以下の場合には(ステップS207:否定)、状態推定値の修正値を算出する。修正値は、式(14)に示すように、カルマンゲインG(k)と、差分y*(k)とを乗算した値として算出する(ステップS208)。補正部232は、式(15)に示すように、状態推定値の逆行列に修正値を加算して状態推定値とする(ステップS209)。
補正部232は、カルマンゲインG(k)と、差分y*(k)とに基づいた値のSoCに対応する行列の成分が、閾値aより大きい場合には、式(26)に示すように、状態推定値の逆行列を状態推定値とする(ステップS210)。
補正部232は、判定部133からCVモードであるモード情報が入力されると(ステップS206:肯定)、SoCをクーロンカウンタにより推定する(ステップS211)。補正部232は、推定したSoCと、v1、v2とに基づいて、状態推定値を算出する。補正部232は、ステップS209〜ステップS211のいずれかによって算出された状態推定値を、1ステップごとに算出部231に出力する。
補正部232は、算出された状態推定値から式(17)によってSoCを算出する(ステップS212)。補正部232は、算出されたSoCを出力部102に出力する(ステップS213)。補正部232は、カルマンフィルタを次のステップに進めるために、kをインクリメントして(ステップS214)、ステップS202の処理に戻る。推定装置200は、ステップS202〜S214を繰り返す。これにより、大電流時における過剰な補正を防止しつつ、電池の等価電気モデルの電流変化に対する過渡的な電圧の電流依存性を修正し、突発的に発生する過剰な誤差に基づく過剰な補正を防止するので、充電率の推定精度の劣化を防止できる。
このように、推定装置200は、電池の測定電流および測定端子電圧に基づいて、カルマンフィルタを用いて電池の充電率を算出する。また、推定装置200は、測定電流の絶対値が所定値を超える場合に、カルマンフィルタの予測ノイズを表す行列のうち、充電率に対応しない複数の成分に、所定値を測定電流で除算した値に基づく値を乗算して、充電率を補正する。その結果、充電率の推定精度の劣化を防止できる。すなわち、推定装置200は、等価電気回路モデル誤差、測定誤差、動作モードの違いによる突発性の誤差によるSoC推定精度の劣化を防止できる。また、推定装置200は、電池の等価電気回路モデルの電流変化に対する過渡的な電圧の電流依存性を修正するので、より充電率の推定精度の劣化を防止できる。
また、上記実施例2では、カルマンフィルタの予測ノイズΣvのSoCに対応しない複数の成分を補正したが、これに限定されない。例えば、カルマンフィルタの予測ノイズΣvのSoCに対応する成分を補正するようにしてもよい。
そこで、カルマンフィルタの予測ノイズΣvのSoCに対応する成分を補正する実施の形態につき、実施例3として以下に説明する。なお、上記実施例2の推定装置200と同一の構成には、同一符号を付すことで、その重複する構成および動作の説明については省略する。実施例3の推定装置が実施例2の推定装置300と異なるところは、予測ノイズΣvの修正を、式(27)に代えて、下記の式(30)に示すように修正する点にある。
実施例3の推定装置は、式(30)に示すように、予測ノイズΣvのうち、SoCに対応する成分を含む成分に、測定電流i(k)を閾値rで除算した値に基づく値を乗算して、補正予測ノイズΣvmを算出する。
実施例3の推定装置は、式(30)に示すように、例えば、予測ノイズΣvの(3,3)成分を(|i(k)|・c/r)2倍とする。また、推定装置は、例えば、予測ノイズΣvの(1,3),(2,3),(3,1),(3,2)成分を、(|i(k)|・c/r)倍とする。なお、予測ノイズΣvの残りの成分は、そのままとする。また、cは、任意の設定パラメータである。なお、式(30)の「×」は、Σvの行列の各成分に対して、各成分を(|i(k)|・c/r)2倍、(|i(k)|・c/r)倍、または1倍する意味で用いている。すなわち、各成分を(|i(k)|・c/r)2倍、(|i(k)|・c/r)倍、または1倍する行列をΣm2とすると、Σvpq×Σm2pq(p=1〜3,q=1〜3)とも表せる。
このように、実施例3の推定装置は、電池の測定電流および測定端子電圧に基づいて、カルマンフィルタを用いて電池の充電率を算出する。また、推定装置は、測定電流の絶対値が所定値を超える場合に、カルマンフィルタの予測ノイズを表す行列のうち、充電率に対応する成分を含む成分に、測定電流を所定値で除算した値に基づく値を乗算して、充電率を補正する。その結果、充電率の推定精度の劣化を防止できる。すなわち、実施例3の推定装置は、等価電気回路モデル誤差、測定誤差、動作モードの違いによる突発性の誤差によるSoC推定精度の劣化を防止できる。また、実施例3の推定装置は、電池の等価電気回路モデルの電流変化に対する過渡的な電圧の電流依存性を修正するので、より充電率の推定精度の劣化を防止できる。
なお、上記の各実施例では、二次電池の一例として、リチウムイオン二次電池を挙げたが、これに限定されない。推定装置100または200は、対象となる電池のOCV特性曲線と、等価電気回路モデルとが得られれば、他の種類の電池に対してもSoCを推定することができる。他の電池としては、例えば、リチウムイオンポリマー二次電池、カルシウムイオン二次電池、ナノワイヤバッテリ、ニッケル水素二次電池、鉛蓄電池等にも適用できる。また、リチウムイオン二次電池としては、コバルト酸リチウムイオン電池、リン酸鉄リチウムイオン電池等に適用できる。これにより、多種の電池のSoCを推定できる。
また、上記の各実施例では、等価電気回路モデルとして、電流変化に対して過渡的な電圧の変化を表すRC回路として、R1C1、および、R2C2の2組のRC回路を用いたが、これに限定されない。推定装置100または200は、等価電気回路モデルとして、例えば、3組以上とした等価電気回路モデルを用いてもよい。これにより、等価電気回路モデルの精度が上がるので、カルマンフィルタによるSoCの推定精度が向上する。
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、補正部132と判定部133とを統合して、電池の動作モードによる判定を補正と同時に行うようにしてもよい。
さらに、各部で行われる各種処理機能は、CPU(又はMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部又は任意の一部を実行するようにしても良い。また、各種処理機能は、CPU(又はMPU、MCU等のマイクロ・コンピュータ)で解析実行されるプログラム上、又はワイヤードロジックによるハードウェア上で、その全部又は任意の一部を実行するようにしても良いことは言うまでもない。
ところで、上記の各実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の各実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図9は、推定プログラムを実行するコンピュータの一例を示す説明図である。
図9が示すように、コンピュータ300は、各種演算処理を実行するCPU301と、バッテリからの情報を受け付けるバッテリ情報インタフェース302と、測定された電流および電圧の情報を受け付ける電流測定インタフェース303とを有する。また、コンピュータ300は、他の装置と接続して行う各種情報の授受、他の装置にUI(User Interface)を提供して行うコンピュータ300の操作等に用いる外部インタフェース304を有する。また、外部インタフェース304は、後述するフラッシュメモリ306に対する他の装置からのプログラム等の書き込み等にも用いることができる汎用的なインタフェースである。また、コンピュータ300は、各種情報を一時記憶するRAM305と、フラッシュメモリ306とを有する。また、各構成要素301〜306は、バス307に接続される。コンピュータ300は、例えば、電気自動車や電動バイクの制御装置、スマートフォン、ノート型のパーソナルコンピュータ等である。
フラッシュメモリ306には、図1に示した算出部131、補正部132および判定部133、または、図6に示した算出部231および補正部232の各処理部と同様の機能を有する推定プログラムが記憶される。また、フラッシュメモリ306には、条件記憶部121が記憶される。また、フラッシュメモリ306には、推定プログラムを実現するための各種データが記憶される。バッテリ情報インタフェース302は、図1に示した測定部101のリチウムイオン二次電池の動作モードを取得する機能と同様の機能を有する。電流測定インタフェース303は、図1に示した測定部101の電流計および電圧計と同様の機能を有する。外部インタフェース304は、図1に示した出力部102と同様の機能を有する。また、外部インタフェース304は、例えば、データロガー等が接続され、リチウムイオン二次電池の充放電の状態を記録できるようにしてもよい。
CPU301は、フラッシュメモリ306に記憶された各プログラムを読み出して、RAM305に展開して実行することで、各種の処理を行う。また、これらのプログラムは、コンピュータ300を図1に示した算出部131、補正部132および判定部133、または、図6に示した算出部231、補正部232および判定部133として機能させることができる。
なお、上記の推定プログラムは、必ずしもフラッシュメモリ306に記憶されている必要はない。例えば、コンピュータ300が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ300が読み出して実行するようにしてもよい。コンピュータ300が読み取り可能な記憶媒体は、例えば、CD−ROMやDVDディスク、USB(Universal Serial Bus)メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN(Local Area Network)等に接続された装置にこの推定プログラムを記憶させておき、コンピュータ300がこれらから推定プログラムを読み出して実行するようにしてもよい。なお、コンピュータ300は、例えば、リチウムイオン二次電池に組み込まれるモジュールや、MPUを用いたいわゆる組込用マイコン等としてもよい。