(57)【特許請求の範囲】
【請求項１】
二次電池のパックに内蔵されたマイクロコンピュータにより遂行されて、前記二次電池の充電及び放電状態をモニタリング及び制御するためのデータを生成する方法において、
（Ｓ１）前記二次電池の平均電圧値を周期的に求めて更新する段階と、
（Ｓ２）前記二次電池に流れる瞬時電流値の大きさ及び符号に基づいて、充電モード、放電モード及び自己放電モード中からいずれか一つを適用して実行する段階と、
（Ｓ３）前記放電モードが始まれば、放電容量を周期的に累算してその結果値を現在の周期の完全充電必要容量として更新する段階と、
（Ｓ４）前記段階Ｓ３の遂行途中に、Ｓ１で更新されて得られた前記平均電圧値が下限完全放電電圧値より低くなれば、以前の周期の基準完全充電容量と所定の定格完全充電容量との偏差の絶対値を計算する段階と、
（Ｓ５）計算された偏差の絶対値が予め設定された基準値より大きければ、現在の周期の基準完全充電容量を前記定格完全充電容量と同じになるように更新する一方、前記偏差の絶対値が前記基準値以内であれば、現在の周期の基準完全充電容量を前記現在の周期の完全充電必要容量と同じになるように更新する段階と、
を含むことを特徴とするデータ生成方法。
【請求項２】
前記段階Ｓ３において単位周期の放電容量は、前記二次電池に流れる瞬時電流値、単位周期の時間、及び前記二次電池の瞬時温度に対応する放電効率をすべて掛けた結果値であることを特徴とする請求項１に記載のデータ生成方法。
【請求項３】
二次電池のパックに内蔵されたマイクロコンピュータにより遂行されて、前記二次電池の充電及び放電状態をモニタリング及び制御するためのデータを生成する方法において、
（Ｓ１）前記二次電池の平均電圧値を周期的に求めて更新する段階と、
（Ｓ２）前記二次電池に流れる瞬時電流値の大きさ及び符号に基づいて、充電モード、放電モード及び自己放電モード中からいずれか一つを適用して実行する段階と、
（Ｓ３）前記放電モードが始まれば、放電容量を周期的に累算してその結果値を現在の周期の完全充電必要容量として更新する段階と、
（Ｓ４）前記段階Ｓ３の遂行途中に、Ｓ１で更新されて得られた前記平均電圧値が下限完全放電電圧値より低くなれば、基準完全充電容量を現在の周期の完全充電必要容量と同じくなるように更新する段階と、を含み、
前記段階Ｓ４は、
（Ｓ４１）前記下限完全放電電圧値より高く設定された第１完全放電電圧値を前記平均電圧値と比較する段階と、
（Ｓ４２）前記平均電圧値が前記第１完全放電電圧値より低ければ、前記平均電圧値を前記下限完全放電電圧値と比較する段階と、
（Ｓ４３）前記平均電圧値が前記第１電圧完全放電電圧値以上であれば、前記二次電池の寿命の残余時間を知らせるための寿命接近値を前記残余時間が短くなる方向に第１値だけ更新し、前記平均電圧値が前記第１電圧完全放電電圧値より低くて前記下限完全放電電圧値以上であれば、前記残余時間が短くなる方向に前記第１値以上の第２値だけ前記寿命接近値を更新し、前記平均電圧値が前記下限完全放電電圧値より低ければ、前記残余時間が短くなる方向に前記第２値以上の第３値だけ前記寿命接近値を更新する段階と、
を含むことを特徴とするデータ生成方法。
【請求項４】
前記段階Ｓ４２は、
前記平均電圧値が前記第１完全放電電圧値より低くて前記下限完全放電電圧値以上であれば、以前の周期の基準完全充電容量と所定の定格完全充電容量との偏差の絶対値を計算する段階と、
計算された偏差の絶対値が予め設定された基準値以内であれば、現在の周期の基準完全充電容量を前記定格完全充電容量と同じくなるように更新する段階と、
をさらに含むことを特徴とする請求項３に記載のデータ生成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、二次電池の充電及び放電状態をモニタリング及び制御するためのデータを生成する方法に係り、より詳しくは、二次電池のパックに内蔵されたマイクロコンピュータにより外部装置に伝送されるデータを生成する方法に関する。
【０００２】
【従来の技術】
二次電池は携帯用電子機器、例えば、ノート型パソコン、携帯電話及びカムコーダ（カメラ一体型ビデオレコーダー）等に用いられる。このような二次電池の充電及び放電状態をモニタリング及び制御するためのデータを精密に生成するには、その根本になる基準完全充電容量を周期的にモニタリングして更新することが必要である。なぜなら、この基準完全充電容量とは、二次電池を完全に充電したときの容量であるが、二次電池の使用を繰り返していくうちに、二次電池の劣化により完全に充電したときの容量が変化するからである。すなわち、二次電池の基準完全充電容量とは実質的に時間に対して変化する容量である。
【０００３】
このために、二次電池のパックにマイクロコンピュータ及び周辺回路が内蔵されて、二次電池の充電及び放電状態をモニタリング及び制御するためのデータを生成するようになっている。このようなマイクロコンピュータにプログラミングされたアルゴリズムにおいて、従来には、二次電池の充電モード時に学習過程を通して基準完全充電容量を周期的に設定するようになっている。すなわち、二次電池の充電率に比例した実際の完全充電容量を求めて基準完全充電容量として設定するようになっている。
【０００４】
ところが、二次電池の充電特性は時間に対して大きな変化を持たないので、二次電池の動作特性を精密に反映するとは限らない。すなわち、従来の二次電池のパックに内蔵されたマイクロコンピュータのアルゴリズムにより更新される基準完全充電容量は、二次電池の動作特性を精密に反映するとは限らない。したがって、基準完全充電容量と関連した全てのデータの精度も相対的に低くなる。加えて、従来のアルゴリズムによると、現在の充電電圧値を読み取り、得られた瞬時電圧値のみで判断するので、その精度がより低くなる。
【０００５】
【発明が解決しようとする課題】
本発明は、上述のような従来の問題点を改善するために創案され、二次電池の動作特性をより精密に反映して充電及び放電状態をモニタリング及び制御できるデータ生成方法を提供することを目的とする。
【０００６】
【課題を解決するための手段】
前記目的を達成するための本発明のデータ生成方法は、二次電池のパックに内蔵されたマイクロコンピュータにより遂行されて、前記二次電池の充電及び放電状態をモニタリング及び制御するためのデータを生成する方法である。この方法は、前記二次電池の平均電圧値avadvolを周期的に求めて更新する段階Ｓ１を含む。次に、前記二次電池に流れる現在の電流値を読み取り得られた瞬時電流値adcurの大きさ及び符号に基づいて、充電モード、放電モード及び自己放電モード中からいずれか一つを適用して実行する(段階Ｓ２)。
【０００７】
前記放電モードが始まれば、放電容量DCRが周期的に累算されてその結果値が現在の周期において完全に充電するために必要な容量（以下、完全充電必要容量という）s_dcrとして更新される(段階Ｓ３)。前記段階Ｓ３の遂行途中に、現在の周期における平均電圧値avadvolが、放電状態の基準とするために予め設定されている電圧値の最小限界値（以下、下限完全放電電圧値という）s_edv0より低くなると、以前の周期の基準完全充電容量f_c_capacと所定の定格完全充電容量TFCCとの偏差の絶対値を計算する(段階Ｓ４)。計算された偏差の絶対値が予め設定された基準値より大きければ、現在の周期の基準完全充電容量f_c_capacを定格完全充電容量TFCCと同じになるように更新する一方、偏差の絶対値が基準値以内であれば、現在の周期の基準完全充電容量f_c_capacを現在の周期の完全充電必要容量s_dcrと同じになるように更新する（段階Ｓ５）。
【０００８】
本発明の前記データ生成方法によると、前記基準完全充電容量f_c_capacを、放電モードの実行時に得られる前記完全充電必要容量s_dcrと同じくなるように更新する。したがって、前記基準完全充電容量f_c_capacには時間に対して大きな変化を有する放電特性が反映されるので、精密なデータにより前記二次電池の充電及び放電状態をモニタリング及び制御できる。また、前記二次電池の平均電圧値により充電状態を判断するのでより正確なデータを生成することができる。
【０００９】
【発明の実施の形態】
以下、添付した図面を参照しながら本発明をより詳しく説明する。
【００１０】
図１は、本発明に係るアルゴリズムが適用される二次電池パックの内部構成を示す。図１を参照すると、本実施の形態の二次電池パックには、挿入される二次電池１１、電界効果トランジスタ(FETs)１２、周辺回路１３、抵抗素子１４、保護素子１５、マイクロコンピュータ１６、ＥＥＰＲＯＭ１７及びサーミスタ１８が含まれている。
【００１１】
電界効果トランジスタ(FETs)１２は周辺回路１３からの制御信号によりオン(On)またはオフ(Off)されて二次電池１１の充電及び放電を制御する。周辺回路１３は、二次電池１１の瞬時電圧を測定して、抵抗素子１４に流れる電流を測定することにより二次電池１１の瞬時電流を測定する。測定された瞬時電流及び電圧はデジタルデータとしてマイクロコンピュータ１６に伝送される。また、周辺回路１３はマイクロコンピュータ１６からの制御信号により電界効果トランジスタ１２をオン(On)またはオフ(Off)させる。保護素子１５は電界効果トランジスタ１２の機能が円滑に遂行できない場合に過充電及び過放電を防止するための素子である。
【００１２】
本発明によるアルゴリズムを遂行するマイクロコンピュータ１６は、周辺回路１３からの瞬時電圧及び瞬時電流、並びに、サーミスタ１８からの周囲温度が入力され、二次電池１１の充電及び放電状態をモニタリング及び制御するためのデータを生成する。ここで、制御用データは周辺回路１３に伝送されて、モニタリング用データは直列通信線路１９１、１９２を通してノートブックコンピュータに伝送される。図１の参照符号ＳＭＣＬＫはクロック信号を、ＳＭＤＴはデータ信号を示す。
【００１３】
図２は、本発明の一実施の形態による図１のマイクロコンピュータ１６の基本アルゴリズムを示す。以下説明されるアルゴリズムには、設定された周期に対する二次電池(図１の１１)の平均電圧値avadvolを持続的に求めて更新する段階が含まれていることを前提とする。このように二次電池１１の平均電圧値avadvolにより充電状態を判断するのでより正確なデータを生成することができる。
【００１４】
図２を参照すると、いちばん初めにマイクロコンピュータ１６内の状態レジスタ及び状態ビットを初期化させる(段階２０１)。次に、二次電池１１に流れる瞬時電流値adcurの大きさ及び符号により充電モード、放電モード及び自己放電モードの中からいずれか一つを適用して実行させる(段階２０２から２１０まで)。この段階２０２から２１０までは繰り返して遂行されて、各段階を詳述すると次の通りである。
【００１５】
まず、瞬時電流値adcurが入力される(段階２０２)。次に瞬時電流値adcurが‘０ｍＡ’以上であれば充放電情報ビットf_ampnを‘１’に、そして瞬時電流値adcurが‘０ｍＡ’より小さければ、充放電情報ビットf_ampnを‘０’に設定する(段階２０３から２０５まで)。次に瞬時電流値adcurの絶対値abs(adcur)が‘１０ｍＡ'以下であれば、自己放電モードを実行して(段階２０６及び２０７)、瞬時電流値adcurの絶対値abs(adcur)が‘１０ｍＡ'より大きければ、充放電情報ビットf_ampnが‘１’であるのかを判別する(段階２０８)。充放電情報ビットf_ampnが‘１’であれば、充電モードを実行して(段階２０９)、充放電情報ビットf_ampnが‘１’でなければ、放電モードを実行する(段階２１０)。
【００１６】
図３は、図２の段階２１０に相応する放電モードの実行プログラムを示す。この放電モードの実行プログラムには、放電効率dis_effを求める段階(３０４及び３０５)、放電容量DCRを求める段階(３０７に含む)、完全充電必要容量s_dcrを更新する段階(３０７)及び基準完全充電容量f_c_capacを更新する段階(３２２)が含まれている。
【００１７】
放電効率dis_effを求める段階(３０４及び３０５)では、二次電池１１の現在の温度を読み取り得られた瞬時温度adtempに対応する放電効率dis_effが求められる。放電容量DCRを求める段階(３０７に含む)では、二次電池１１に流れる瞬時電流値adcur、二次電池１１の放電時点から現在時点までの経過時間Δｔ及び放電効率dis_effをすべて掛けて経過時間Δｔ中の放電容量DCRが求められる。完全充電必要容量s_dcrを更新する段階(３０７)では、求められた放電容量DCRを以前の周期で設定された完全充電必要容量s_dcrに加算して、その結果値を現在周期の完全充電必要容量s_dcrとして更新する。
【００１８】
そして、基準完全充電容量f_c_capacを更新する段階(３２２)では、容量学習プログラムによって、現在の周期に対する二次電池１１の平均電圧値avadvolが下限完全放電電圧値(lower limit of full discharge voltage value)s_edv0より低ければ、現在の周期の基準完全充電容量f_c_capacは、現在の周期の完全充電必要容量s_dcrと同じになるように更新される。
【００１９】
このように、本発明によるデータ生成方法によると、基準完全充電容量f_c_capacは、放電モードの実行時に得られる完全充電必要容量s_dcrと同じになるように更新される。したがって、基準完全充電容量f_c_capacには時間に対して大きな変化を有する放電特性が反映されるので、精密なデータにより二次電池１１の充電及び放電状態をモニタリング及び制御できる。
【００２０】
図３の放電モードの実行プログラム(段階２１０)を順次的に説明すると次の通りである。
【００２１】
まず放電情報ビットf_dischgを‘１’に設定して、放電モードであることを知らせる(段階３０１)。次に、単位時間に二次電池１１に流れる平均電流値avr_curを求める(段階３０２)。次に、瞬時電流値adcurを所定の充電容量design_capacで割ってその結果である放電率d_crateを計算する(段階３０３)。次に瞬時温度adtempを読み取り(段階３０４)、ＥＥＰＲＯＭ１７に記憶されている瞬時温度と放電効率との対応表に基づいて、瞬時温度に対応する放電効率dis_effを求める(段階３０５)。
【００２２】
次に、平均電圧値avadvolが下限完全放電電圧値s_edv０以下であれば(段階３０６)、段階３１０に進み、平均電圧値avadvolが下限完全放電電圧値s_edv０より大きければ、段階３０７に進む。
【００２３】
段階３０７では、求められた放電容量DCRを以前の周期で設定された完全充電必要容量s_dcrに加算して、その結果値を現在の周期の完全充電必要容量s_dcrとして更新する。段階３０８では、以前の周期で得られた実際に充電されている容量（以下、実際充電容量という）RRCから放電容量DCRを減算して、その結果を現在の周期の実際充電容量RRCとして更新する。段階３０９では、所定の不使用容量s_bla_cに現在の周期の実際充電容量RRCを加算してその結果が現在の周期における充電容量の推定値（以下、推定充電容量という）rc_capaaになるように更新する。
【００２４】
段階３１０では、推定充電容量rc_capaaを設定されている完全充電容量f_c_capacで割って、その結果を相対充電率(relative charge rate)re_st_chとして更新する。次に、推定充電容量rc_capaaを所定の充電容量design_capacで割って、その結果を絶対充電率(absolute charge rate)ab_st_chとして更新する(段階３１１)。
【００２５】
次に、推定充電容量rc_capaaを読み取られた瞬時電流値adcurで割って、その結果を完全に放電状態に到達するまでの時間（以下、完全放電到達時間という）r_t_empcとして更新する(段階３１２)。次に、推定充電容量rc_capaaを上述の平均電流値avr_curで割って、その結果を充電進行時間avr_t_eaとして更新する(段階３１３)。
【００２６】
次に、推定充電容量rc_capaaが警報を発生するための基準となる充電容量（以下、警報充電容量という）r_c_acより少なければ充電容量が非常に小さくなることをユーザーに警報で知らせる(段階３１４から３１５)。また、推定充電容量を読み取られた瞬時電流値adcurで割ると、完全に放電状態に達するまでの推定時間（以下、推定完全放電時間という）avr_t_epが解るので、警報を発生するための基準となる所定の時間（以下、警報完全放電時間という）r_t_aと比較することができる。そして、推定完全放電時間avr_t_epが警報完全放電時間r_t_aより短ければ完全放電が差し迫ったことを、ユーザーに警報で知らせる (段階３１７から３１９)。
【００２７】
次に、最大完全充電ビットf_fullchg0のデータを確認し、容量学習を実行(段階３２２)するか否かを判別する(段階３２０)。最大完全充電ビットf_fullchg0は、初期化段階（図２の２０１）の遂行により‘１’になるが、後述する容量学習実行段階（３２２）内の段階５３２（図５参照）が行われる場合に‘０’になる。したがって、最大完全充電ビットf_fullchg0の論理値が‘０’であれば、容量学習実行(段階３２２)が遂行された状態であるから、電源オフ(Off)等によってシステムが再び初期化される時までは無理やりに容量学習実行(段階３２２)をする必要がない。また、一度、完全に充電したときの電圧の最高値として設定されている値（以下、最高完全充電電圧という）に到達すれば、容量学習を実行する必要ができるので、最大完全充電ビットf_fullchg0を‘１’に設定する。
【００２８】
最大完全充電ビットf_fullchg0のデータが‘１’であれば、平均電圧値avadvolが第２完全放電電圧値s_edv2以上であるのかを判別する(段階３２１)。ここで、第２完全放電電圧値s_edv2は、容量学習実行(段階３２２)の基準とするために予め設定されている値である。
【００２９】
図４を参照すると、容量学習実行段階３２２で用いられる完全放電電圧値は、下限完全放電電圧値s_edv0と、下限完全放電電圧値s_edv0より高い所定の第１完全放電電圧値s_edv1、そして第１完全放電電圧値s_edv1より高い所定の第２完全放電電圧値s_edv2の３個である。その理由は、第２完全放電電圧値s_edv2及び第１完全放電電圧値s_edv1により二次電池(図１の１１)の平均電圧値avadvolをモニタリングすることにより、容量学習実行段階３２２における二次電池(図１の１１)の瞬時電圧がシステムのスレショルド電圧以下に下がる確率を最小化させるためである。
【００３０】
図５は、図３のプログラム中から容量学習実行段階３２２を遂行するためのプログラムを示す。図５を参照すると、段階５０１から５０８までは二次電池(図１の１１)の平均電圧値avadvolが第２完全放電電圧値s_edv2より低くて第１完全放電電圧値s_edv1以上の場合に遂行される第1容量学習段階である。段階５１１から５２１までは二次電池１１の平均電圧値avadvolが第1完全放電電圧値s_edv1より低くて下限完全放電電圧値s_edv0以上の場合に遂行される第２容量学習段階である。段階５３１から５４０までは二次電池１１の平均電圧値avadvolが下限完全放電電圧値s_edv0より低い場合に遂行される最終容量学習段階である。
【００３１】
第１容量学習段階(５０１から５０８まで)を説明すると次の通りである。
【００３２】
まず平均電圧値avadvolが第１完全放電電圧値s_edv1と比較される(段階５０１)。平均電圧値avadvolが第１完全放電電圧値s_edv1より小さければ段階５１１に進む。平均電圧値avadvolが第１完全放電電圧値s_edv1以上であれば、第２完全充電ビットf_fullchg2の論理状態が確認される(段階５０２)。第２完全充電ビットf_fullchg2の論理状態が‘１’であれば段階５０３に進む。これに対し、第２完全充電ビットf_fullchg2の論理状態が‘１’でなければ、段階２０２に進む。
【００３３】
第２完全充電ビットf_fullchg2は、初期化段階（図２の２０１）の遂行により‘１’になるが、段階５０８が行われる場合に‘０’になる。したがって、第２完全充電ビットf_fullchg2の論理値が‘０’であれば、第１容量学習段階(５０１から５０８まで)が遂行された状態であるから、電源オフ(Off)等によってシステムが再び初期化される時までは無理やりに第１容量学習段階(５０１から５０８まで)を実行する必要がない。また、一度、最高完全充電電圧に到達すれば、容量学習を実行する必要ができるので、最大完全充電ビットf_fullchg2を‘１’に設定する。
【００３４】
段階５０３では第２完全放電ビットf_edv2の論理状態が確認される。第２完全放電ビットf_edv2の論理状態が‘１’であれば、段階５０４に進む。第２完全放電ビットf_edv2の論理状態が‘１’でなければ、段階２０２に復帰する。第２完全放電ビットf_edv2はシステム初期化以後に第１容量学習段階(５０１から５０８まで)が遂行されたことがあれば‘０’に更新される(段階５０４)。次に、二次電池の寿命の残余時間を知らせるための寿命接近値ccountを０．２増加し更新する(段階５０５)。この意味は、二次電池(図１の１１)の平均電圧値avadvolが第２完全放電電圧値s_edv2と第１完全放電電圧値s_edv1との間の範囲に到達したので、これに相応する容量劣化程度を勘案して、二次電池の寿命の残余時間を更新するということである。
【００３５】
次に、第１完全放電ビットf_edv1を‘１’に更新した後(段階５０６)予備補正ルーチン(段階５０７)を実行する。この予備補正ルーチン(段階５０７)は第２容量学習段階(５１１から５２１まで)中に含まれた予備補正ルーチン(段階５２０)と同じであるが、最終補正ルーチン(段階５３９)とは異なる。予備補正ルーチン(段階５０７)の実行が完了すると、第２補正ビットf_count2の論理値を‘１’に、そして第２完全充電ビットf_fullchg2の論理値を‘０’に更新した後(段階５０８)、図２の段階２０２に戻る。
【００３６】
第２容量学習段階(５１１から５２１まで)を説明すると次の通りである。
【００３７】
まず、平均電圧値avadvolが下限完全放電電圧値s_edv0以上であれば、段階５１２に進み、平均電圧値avadvolが下限完全放電電圧値s_edv0未満であれば、段階５３１に進む(段階５１１)。段階５１２では、第１完全充電ビットf_fullchg1の論理状態を確認して‘１’であれば、段階５１３に進み、第１完全充電ビットf_fullchg1が‘１’でなければ、段階２０２に戻る。第１完全充電ビットf_fullchg1も、初期化段階（図２の段階２０１）の遂行により‘１’になるが、段階５２１が行われる場合に‘０’になる。
【００３８】
したがって、第１完全充電ビットf_fullchg1の論理値が‘０’であれば、第２容量学習段階(５１１から５２１まで)が遂行された状態であるから、電源オフ(Off)等によってシステムが再び初期化される時までは無理やりに第２容量学習段階(５１１から５２１まで)を実行する必要がない。また、一度、最高完全充電電圧に到達すれば、容量学習を実行する必要ができるので、最大完全充電ビットf_fullchg1を‘１’に設定する。
【００３９】
段階５１３では第１完全放電ビットf_edv1の論理状態を確認して‘１’であれば、段階５１４に進み、第１完全放電ビットf_edv1が‘１’でなければ、段階２０２に戻る。第１完全放電ビットf_edv1も、システム初期化以後に第２容量学習段階(５１１から５２１まで)が遂行されたことがあれば‘０’に更新される(段階５１４)。次に、第２補正ビットf_count2の論理値を確認して(段階５１５)、‘１’であれば、寿命接近値ccountを０．３増加し更新して(段階５１６)、第２補正ビットf_count2が‘１’でなければ、寿命接近値ccountを０．５増加し更新する(段階５１７)。
【００４０】
この意味は、二次電池(図１の１１)の平均電圧値avadvolが第１完全放電電圧値s_edv1と下限完全放電電圧値s_edv0との間の範囲に到達したので、これに相応する容量劣化程度を勘案して、さらに、第２補正f_count2を勘案して、二次電池の寿命の残余時間を更新するということである。すなわち、第２補正f_count2の論理値が‘１’であれば、第１容量学習段階(５０１から５０８まで)が遂行されているので、これに相応する容量劣化程度を勘案して、寿命接近値ccountを０．３増加し更新する。また、第２補正f_count2の論理値が‘１’でなければ、これに相応する容量劣化程度を勘案して、寿命接近値ccountを０．５増加し更新する。
【００４１】
次に、用いられた第２補正ビットf_count2の論理値を‘０’に初期化して(段階５１８)、最終完全放電ビットf_edv0を‘１’に更新した後（段階５１９）予備補正ルーチン(段階５２０)を実行する。予備補正ルーチン(段階５２０)の実行が完了されると、第１補正ビットf_count1の論理値を‘１’に、そして第１完全充電ビットf_fullchg1の論理値を‘０’に更新した後(段階５２１)、段階２０２に戻る。
【００４２】
最終容量学習段階(５３１から５４０まで)を説明すると次の通りである。
【００４３】
まず、平均電圧値avadvolが下限完全放電電圧値s_edv0より低ければ、段階５３２に進み、平均電圧値avadvolが下限完全放電電圧値s_edv0より高ければ、図２の段階２０２に戻る(段階５３１)。段階５３２では、最大完全充電ビットf_fullchg0の論理状態を‘０’に更新する。
【００４４】
次に、最終完全放電ビットf_edv0の論理状態を確認して‘１’であれば、段階５３４に進み、最終完全放電ビットf_edv0が‘１’でなければ、段階２０２に戻る(段階５３３)。最終完全放電ビットf_edv0は、システム初期化以後に最終容量学習段階(５３１から５４０まで)が遂行されたことがあれば‘０’に更新される(段階５３４)。次に、第１補正ビットf_count1の論理値を確認して(段階５３５)、‘１’であれば、寿命接近値ccountを０．５増加し更新して(段階５３６)、第１補正ビットf_count1の論理値が‘１’でなければ、寿命接近値ccountを１．０増加し更新する(段階５３７)。
【００４５】
この意味は、二次電池(図１の１１)の平均電圧値avadvolが平均電圧値avadvolが下限完全放電電圧値s_edv0より低い範囲に到達したので、これに相応する容量劣化程度を勘案して、さらに、第１補正f_count1を勘案して、二次電池の寿命の残余時間を更新するということである。すなわち、第１補正f_count1の論理値が‘１’であれば、第２容量学習段階(５１１から５２１まで)が遂行されているので、これに相応する容量劣化程度を勘案して、寿命接近値ccountを０．５増加し更新する。また、第２補正f_count2の論理値が‘１’でなければ、これに相応する容量劣化程度を勘案して、寿命接近値ccountを１．０増加し更新する。
【００４６】
次に、用いられた第１補正ビットf_count1の論理値を‘０’に初期化した後(段階５３８)最終補正ルーチン(段階５３９)を実行する。最終補正ルーチン(段階５３９)の実行が完了すると、最大完全放電ビットf_fulldisの論理値を‘０’に更新した後(段階５４０)、図２の段階２０２に戻る。
【００４７】
図６は、図５のプログラム中から予備補正ルーチン(段階５０７または５２０)を示す。図６を参照すると、まず二次電池(図１の１１)の推定充電容量rc_capaaと定格充電容量TRCとの間の偏差CRCを求める。定格充電容量TRCとは、予め設定されている充電容量であり、寿命接近値ccountに基づいて変化する値である (段階６０１)。
【００４８】
次に、求められた偏差CRCの絶対値abs(CRC)を所定の上限値‘５０’と比較して(段階６０２)、上限値‘５０’以下であれば段階６０３に進み、上限値‘５０’よりも大きければ、図５の相応する段階５０８または５２１に戻る。段階６０３では、以前の周期の基準完全充電容量f_c_capacと所定の定格完全充電容量TFCCとの間の偏差CFCCを求める。
【００４９】
次に、この偏差CFCCの絶対値abs(CFCC)が所定の基準設定値‘５０’と比較される(段階６０４)。この偏差CFCCの絶対値abs(CFCC)が‘５０’より大きければ図５の相応する段階５０８または５２１に戻る。一方、この偏差CFCCの絶対値abs(CFCC)が‘５０’以下であれば、現在周期の基準完全充電容量f_c_capacが定格完全充電容量TFCCと同じになるように更新される(段階６０５)。
【００５０】
これは、偏差CFCCの絶対値abs(CFCC)が‘５０’より大きい場合は、後述する最終補正ルーチン(段階５３９)が行われる周期においてのみ基準完全充電容量f_c_capacを定格完全充電容量TRCCと同等になるように更新し、段階６０５では更新しないようにするためである。こうすることによって、基準完全充電容量f_c_capacをより正確にすることができる。
【００５１】
図７は、図５のプログラム中から最終補正ルーチン(段階５３９)を示す。図７を参照すると、まず以前の周期の基準完全充電容量f_c_capacと所定の定格完全充電容量TFCCとの間の偏差CFCCを求める(段階６０６)。次に、この偏差CFCCの絶対値abs(CFCC)が所定の基準設定値‘５０’と比較される(段階６０７)。
【００５２】
この偏差CFCCの絶対値abs(CFCC)が‘５０’以下であれば、現在の周期の基準完全充電容量f_c_capacを現在周期の完全充電必要容量s_dcrと同じになるように更新した後、図５の段階５４０に戻る(段階６０８)。一方、この偏差CFCCの絶対値abs(CFCC)が‘５０’より大きければ、現在の周期の基準完全充電容量f_c_capacが定格完全充電容量TFCCと同じになるように更新される(段階６０９)。
【００５３】
このように、偏差CFCCの絶対値abs(CFCC)が‘５０’以下なら、現在の周期の基準完全充電容量f_c_capacを現在周期の完全充電必要容量s_dcrと同じになるように更新し、‘５０’より大きければ、現在の周期の基準完全充電容量f_c_capacが定格完全充電容量TFCCと同じになるように更新するので、以前の周期において非正常に測定された完全充電必要容量s_dcrに基づいて基準完全充電容量f_c_capacが更新されたとしても、現在の周期では、段階６０９が行われるので、基準完全充電容量f_c_capacの正確度を一層高めることができる。
【００５４】
【発明の効果】
以上説明したように、本発明によるデータ生成方法によると、基準完全充電容量f_c_capacが放電モードの実行時に得られる完全充電必要容量s_dcrと同じく更新される。したがって、基準完全充電容量f_c_capacには時間に対して大きな変化を有する放電特性が反映されるので、精密なデータにより前記二次電池の充電及び放電状態をモニタリング及び制御できる。また、二次電池の平均電圧値により充電状態を判断するのでより正確なデータを生成することができる。
【００５５】
本発明は、上記実施の形態に限られず、請求範囲で定義された発明の思想及び範囲内で当業者により変形及び改良できる。
【図面の簡単な説明】
【図１】  本発明によるアルゴリズムが適用される二次電池パックの内部構成を示すブロック図である。
【図２】  本発明の一実施の形態による図１の二次電池パックのマイクロコンピュータの基本アルゴリズムを示す流れ図である。
【図３】  図２の基本アルゴリズム中から放電モードの実行プログラムを示す流れ図である。
【図４】  図３の容量学習実行段階に用いられる電圧値を示すための放電特性図である。
【図５】  図３のプログラム中から容量学習実行段階を遂行するためのプログラムを示す流れ図である。
【図６】  図５のプログラム中から予備補正ルーチンを示す流れ図である。
【図７】  図５のプログラム中から最終補正ルーチンを示す流れ図である。
【符号の説明】
１１  二次電池
１２  電界効果トランジスタ
１３  周辺回路
１４  抵抗素子
１５  保護素子
１６  マイクロコンピュータ
１７  ＥＥＰＲＯＭ
１８  サーミスタ
【図１】
0003892641.tif 000002
【図２】
0003892641.tif 000003
【図３】
0003892641.tif 000004
【図４】
0003892641.tif 000005
【図５】
0003892641.tif 000006
【図６】
0003892641.tif 000007
【図７】
0003892641.tif 000008