(57)【特許請求の範囲】
【請求項１】
２次電池の充電容量または放電容量の積算値である積算容量を求める容量積算方法であって、
前記２次電池の現在容量を検出し、
前記現在容量が所定のステップ幅以上変化している場合、前記積算容量を、その値に、前記現在容量の所定のステップ幅以上の変化を加算したものに更新する
ことを特徴とする容量積算方法。
【請求項２】
前記現在容量と所定の基準レベルとを比較し、
前記現在容量が、所定の基準レベルより、前記所定のステップ幅以上大きいとき、前記所定の基準レベルまたは積算容量を、それぞれの値に、前記所定のステップ幅単位の値を加算したものに更新する
ことを特徴とする請求項１に記載の容量積算方法。
【請求項３】
前記現在容量が、前記所定の基準レベルより小さいとき、前記所定の基準レベルを、その値から、前記所定のステップ幅単位の値を減算したものに更新する
ことを特徴とする請求項２に記載の容量積算方法。
【請求項４】
前記現在容量が、所定の基準レベルより、所定のステップ幅以上小さいとき、前記所定の基準レベルを、その値から、前記所定のステップ幅単位の値を減算したものに更新する
ことを特徴とする請求項２に記載の容量積算方法。
【請求項５】
前記現在容量が、前記所定の基準レベルより小さいとき、前記所定の基準レベルを、前記現在容量に更新する
ことを特徴とする請求項２に記載の容量積算方法。
【請求項６】
前記現在容量が前記所定のステップ幅以上増加したときの、その増加前の前記現在容量である容量極小値を、前記現在容量が前記所定のステップ幅以上減少したときの、その減少前の前記現在容量である容量極大値から減算した減算値を求め、
前記積算容量を、その値に、前記減算値を加算した値に更新する
ことを特徴とする請求項１に記載の容量積算方法。
【請求項７】
前記現在容量として、その移動平均値を用いる
ことを特徴とする請求項１に記載の容量積算方法。
【請求項８】
前記現在容量は、前記２次電池の、現在の残容量または空き容量である
ことを特徴とする請求項１に記載の容量積算方法。
【請求項９】
２次電池を内蔵し、その充電容量または放電容量の積算値である積算容量を求めるバッテリパックであって、
前記２次電池の現在容量を検出する検出手段と、
前記現在容量が所定のステップ幅以上変化しているかどうかを判定する判定手段と、
前記現在容量が所定のステップ幅以上変化している場合、前記積算容量を、その値に、前記現在容量の所定のステップ幅以上の変化を加算したものに更新する更新手段と
を備えることを特徴とするバッテリパック。
【請求項１０】
前記積算容量を表示する表示手段をさらに備える
ことを特徴とする請求項９に記載のバッテリパック。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、容量積算方法およびバッテリパックに関し、特に、２次電池の充電容量または放電容量の積算値を、精度良く求めることができるようにする容量積算方法およびバッテリパックに関する。
【０００２】
【従来の技術】
従来より、２次電池の寿命を知るための目安として、充放電の回数（サイクル）の他、充電容量または放電容量の積算値（累積値）も用いられている。
【０００４】
【発明が解決しようとする課題】
ところで、このような２次電池の寿命を知るための目安として、充電容量または放電容量の積算値（以下、適宜、積算容量）が用いられる場合、その積算容量の従来の求め方としては、２次電池の残容量（２次電池に残っている容量）を検出し、その変化を積算していくことで、何Ａｈ（アンペアアワー）、あるいは何Ｗｈ（ワットアワー）の充電または放電が行われたのかを求める方法がある。しかしながら、２次電池の残容量は、ノイズや、充放電レートにより変化する場合があり、また、その検出結果に誤差が含まれる場合もあるため、２次電池の残容量の、誤差と考えられる微小な変化を積算していくと、従来の求め方で求められた積算容量に含まれる誤差が大きなものとなる課題があった。このような誤差が大きな積算容量、即ち、精度の悪い積算容量が、２次電池の寿命を知るための目安として不適であることは自明である。
【０００５】
本発明は、このような状況に鑑みてなされたものであり、積算容量を、比較的精度良く求めることができるようにするものである。
【０００６】
【課題を解決するための手段】
請求項１に記載の容量積算方法は、２次電池の現在容量を検出し、現在容量が所定のステップ幅以上変化している場合、積算容量を、その値に、現在容量の所定のステップ幅以上の変化を加算したものに更新することを特徴とする。
【０００７】
請求項９に記載のバッテリパックは、２次電池の現在容量を検出する検出手段と、現在容量が所定のステップ幅以上変化しているかどうかを判定する判定手段と、現在容量が所定のステップ幅以上変化している場合、積算容量を、その値に、現在容量の所定のステップ幅以上の変化を加算したものに更新する更新手段とを備えることを特徴とする。
【０００８】
請求項１に記載の容量積算方法においては、２次電池の現在容量を検出し、現在容量が所定のステップ幅以上変化している場合、積算容量を、その値に、現在容量の所定のステップ幅以上の変化を加算したものに更新するようになされている。
【０００９】
請求項９に記載のバッテリパックにおいては、検出手段は、２次電池の現在容量を検出し、判定手段は、現在容量が所定のステップ幅以上変化しているかどうかを判定するようになされている。更新手段は、現在容量が所定のステップ幅以上変化している場合、積算容量を、その値に、現在容量の所定のステップ幅以上の変化を加算したものに更新するようになされている。
【００１０】
【発明の実施の形態】
図１は、本発明を適用したパソコンシステムの一実施例の構成を示している。このパソコンシステムは、例えば携帯型のパソコン（本体）３０と、それに対して着脱可能なバッテリパック２０とから構成されており、パソコン３０は、バッテリパック２０を電源として動作可能なようになされている。
【００１１】
バッテリパック２０は、２次電池Ｅの状態（例えば、２次電池Ｅの電圧や、充放電電流、残容量など）をモニタして、充電器（図示せず）や、パソコン３０などの負荷との間でデータのやりとり（通信）を行う、いわゆるインテリジェントバッテリ（スマートバッテリ（Smart Battery）（デュラセル（Duracell）社、インテル（Intel）社で提唱されている））などと呼ばれるもので、例えば、電池監視用のマイコン（マイクロコンピュータ）１を内蔵している。このようなバッテリパック２０によれば、そこから送信されてくる２次電池Ｅの状態を、充電器あるいは負荷側において、ユーザに報知することができる。
【００１２】
バッテリパック２０が内蔵する２次電池Ｅは、例えば、リチウムイオン系の２次電池Ｅで、その＋端子は、パック（バッテリパック２０のパッケージ）の＋端子７に接続されており、また、その−端子は、電流検出回路３およびスイッチ２を介して、パックの−端子（ＧＮＤ端子）８に接続されている。従って、２次電池Ｅの放電電流は、＋端子２および−端子８を介して流れる（パソコン３０に対して、＋端子２および−端子８を介して放電電流が供給される）。なお、バッテリパック２０が充電される場合も、充電電流は、＋端子２および−端子８を介して流れる。
【００１３】
マイコン（マイクロコンピュータ）１（検出手段）（判定手段）（更新手段）は、例えば、ＣＰＵなどを内蔵し、電流検出回路３または電圧検出回路４の出力を、周期的に受信し、これにより、２次電池Ｅに流れる電流（放電電流および充電電流）または２次電池Ｅの電圧（以下、適宜、電池電圧という）を、それぞれ認識するようになされている。そして、マイコン１は、その電圧や電流に基づいて、通常はオンになっているスイッチ２を制御してオフにさせるようになされており、これにより、電流（充電電流または放電電流）を遮断し、過充電や過放電、過電流を防止するようになされている。
【００１４】
また、マイコン１は、上述したようにして認識した電池電圧に基づいて、２次電池Ｅの現在の残容量を求め（検出し）（検出された残容量を、以下、適宜、現在容量という）、さらに、その現在容量に基づいて、充電容量についての積算容量を求めるようにもなされている。さらに、マイコン１は、パックの通信端子９に接続されており、この通信端子９を介して、パソコン３０と、所定の通信手順にしたがって通信を行うようにもなされている。即ち、マイコン１は、通信端子９を介して送信されてくるデータ（コマンド）に応じて、所定の処理を行ったり、あるいは、電池電圧、充放電電流、２次電池Ｅの残容量、積算容量などを、通信端子９を介して、パソコン３０に送信するようになされている。
【００１５】
ここで、リチウムイオン電池については、その電池電圧（オープン電圧）と残容量とに関連性があり、電池電圧がわかれば、残容量を求めることができる。そこで、マイコン１は、リチウムイオン電池である２次電池Ｅの残容量を、上述したように、その電池電圧に基づいて求めるようになされている。
【００１６】
スイッチ２は、マイコン１の制御にしたがってスイッチングし、これにより、充電電流、放電電流をオン／オフするようになされている。電流検出回路３は、そこに流れる電流、即ち、２次電池Ｅの放電電流、および２次電池Ｅに対する充電電流を検出し、マイコン１に供給するようになされている。電圧検出回路４は、電池電圧を検出し、マイコン１に供給するようになされている。レジスタ部５は、例えば、積算容量や、後述する基準レベル、容量極小値、容量極大値が保持される変数その他の値を記憶するためのレジスタで構成されている。表示部６（表示手段）は、例えば、液晶ディスプレイなどでなり、マイコン１の制御の下、積算容量その他の情報を表示するようになされている。ＲＯＭ１０には、マイコン１の動作上必要なプログラムやデータが記憶されている。即ち、マイコン１は、このＲＯＭ１０に記憶されているデータを必要に応じて参照しながら、同じくＲＯＭ１０に記憶されているプログラムを実行することで各種の処理を行うようになされている。
【００１７】
以上のように構成されるバッテリパック２０が、パソコン３０に正常に装着されると、その＋端子７、−端子８、および通信端子９がパソコン３０と電気的に接続される。パソコン３０は、バッテリパック２０を電源として動作し、この場合、２次電池Ｅの放電電流が、＋端子７、パソコン３０、−端子８という経路で流れる。また、パソコン３０は、充電器を内蔵しており、バッテリパック２０（２次電池Ｅ）の充電を行うことができるようになされている。この場合、パソコン３０（充電器）からの充電電流が、＋端子７、２次電池Ｅ、−端子８という経路で流れる。
【００１８】
バッテリパック２０では、電流検出回路３または電圧検出回路４において、２次電池Ｅに流れる電流（放電電流、充電電流）またはその電池電圧がそれぞれ検出されており、その電流値および電圧値は、マイコン１において、周期的に受信される。そして、マイコン１は、この電流値、電圧値に基づいて、２次電池Ｅが過充電状態若しくは過放電状態または過電流状態にあるかどうかを判定し、２次電池Ｅが過充電状態若しくは過放電状態または過電流状態にあるときは、スイッチ２をオフにして、電流（充電電流、放電電流）を遮断する。
【００１９】
また、マイコン１は、２次電池Ｅの電池電圧に基づいて、現在容量（ここでは、上述したように、２次電池Ｅの残容量）を算出し、さらに、その現在容量に基づき、必要に応じて、レジスタ部５を参照しながら、積算容量を算出する。
【００２０】
マイコン１は、以上のようにして算出した積算容量や、電流検出回路３から供給される電流値、電圧検出回路４から供給される電圧値を、パソコン３０からの要求に応じて、通信端子９を介して送信する。また、マイコン１は、求めた積算容量を、表示部６に供給して表示させる。なお、表示部６における積算容量の表示は、必要なときだけ（例えば、図示せぬ操作部が操作されたときなど）行うようにすることも可能である。
【００２１】
次に、マイコン１において行われる、充電容量についての積算容量の算出の方法について説明する。まず、図２のフローチャートは、第１の方法により積算容量が算出される場合のマイコン１の処理を示しており、図３は、そのときの基準レベルの時間変化（図３（Ａ））と、積算容量（図３（Ｂ））の時間変化を示している。
【００２２】
ここで、基準レベルとは、現在容量と比較することにより、現在容量の変化が所定のステップ幅Ｃｐｈ以上あったかどうかを認識するために用いるもので、基準レベルの初期値としては、例えば、最初（バッテリパック２０の使用開始前（製造時））の現在容量が設定されている。また、ステップ幅Ｃｐｈは、誤差とみることができる現在容量の増加より大きな値（例えば、１０Ｗｈなど）に設定されており、適正なステップ幅Ｃｐｈは、例えば、実験などにより統計的に求めることができる。
【００２３】
なお、ステップ幅Ｃｐｈは、あらかじめＲＯＭ１０に、変更不可能な値として記憶させておくようにすることもできるし、また、レジスタ部５に記憶させておき、必要に応じて、ユーザが変更することができるようにしておくことも可能である。
【００２４】
第１の方法による場合においては、まず最初に、ステップＳ１において、現在容量が検出され、ステップＳ２に進み、現在容量と、所定の基準レベルとの差分（現在容量−基準レベル）が、所定のステップ幅Ｃｐｈ（＞０）以上であるかどうかが判定される。ステップＳ２において、現在容量と基準レベルとの差分が、所定のステップ幅Ｃｐｈ以上であると判定された場合、即ち、充電が行われることにより、現在容量が、基準レベルよりステップ幅Ｃｐｈ以上増加した場合、ステップＳ３に進み、基準レベルが、その値に、ステップ幅Ｃｐｈを加算したものに更新されるとともに、積算容量も、その値に、ステップ幅Ｃｐｈを加算したものに更新され、ステップＳ１に戻る。
【００２５】
従って、充電が行われることにより、現在容量が、基準レベルよりステップ幅Ｃｐｈ以上大きくなっている場合においては、基準レベルおよび積算容量は、ステップ幅Ｃｐｈ（以下、適宜、１ステップともいう）だけインクリメントされる。
【００２６】
一方、ステップＳ２において、現在容量と基準レベルとの差分が、所定のステップ幅Ｃｐｈ以上でないと判定された場合、即ち、現在容量が、基準レベル＋ステップ幅Ｃｐｈより小さい場合、ステップＳ４に進み、現在容量が、基準レベルより小さいかどうかが判定される。ステップＳ４において、現在容量が、基準レベルより小さいと判定された場合、即ち、放電が行われることにより、現在容量が、基準レベルより下がった場合、ステップＳ５に進み、基準レベルが、１ステップだけデクリメントされ、ステップＳ４に戻る。従って、この場合、ステップＳ４において、現在容量が、基準レベルより小さくないと判定されるまで、即ち、基準レベルが、現在容量以下になるまで、基準レベルは１ステップずつデクリメントされる。
【００２７】
そして、ステップＳ４において、現在容量が、基準レベルより小さくないと判定された場合、即ち、現在容量が基準レベル以上である場合、ステップＳ１に戻り、再び、ステップＳ１からの処理を繰り返す。
【００２８】
従って、現在容量が、基準レベル以上であって、ステップ幅Ｃｐｈの範囲内にある場合は、ステップＳ１，Ｓ２、およびＳ４の処理が繰り返され、この場合、基準レベルおよび積算容量のいずれも更新されない。そして、現在容量が、基準レベルよりステップ幅Ｃｐｈ以上大きくなると、ステップＳ３において、基準レベルおよび現在容量の両方が１ステップだけインクリメントされる。即ち、この場合、基準レベルまたは現在容量は、それぞれの値に、ステップ幅Ｃｐｈを加算したものに更新される。また、現在容量が、基準レベルより小さくなると、ステップＳ４およびＳ５の処理ループにおいて、基準レベルは、現在容量以下になるまで、１ステップ単位でデクリメントされる。即ち、この場合、基準レベルは、その値から、ステップ幅Ｃｐｈ単位の値（ステップ幅Ｃｐｈの倍数であって、現在容量と、更新前の基準レベルとの差分以上の最小値）を減算したものに更新される。
【００２９】
図３は、以上のようにして積算容量が算出される場合の基準レベル（図３（Ａ））、および積算容量（図３（Ｂ））の時間変化を示している。
【００３０】
なお、図３（Ａ）における点線が基準レベルを表している。また、図３（Ａ）における実線は、現在容量の時間変化を表しており、図３は、同図（Ａ）に示すように現在容量が変化した場合の、基準レベルおよび積算容量の時間変化を示している。さらに、図３において、縦軸に付してある数字は便宜的なもので、実際の値とは関係ない。また、図３（Ｂ）における実線は積算容量を示しており、同図（Ｂ）における点線は、現在容量の増加分を、単純に積算して求められる積算値（単純な積算値）を示している。なお、以上のことは、後述する図５、図７、図９、図１１、図１３、および図１５においても同様である。
【００３１】
図３の実施例においては、最初に、現在容量（図３（Ａ））が増加しており、従って、充電が行われている。この場合、現在容量が、現在の基準レベルを越えてから、その基準レベルよりステップ幅Ｃｐｈ以上大きくなると、ステップＳ２からステップＳ３に進み、基準レベル（図３（Ａ））がステップ幅Ｃｐｈだけ増加されるとともに、積算容量（図３（Ｂ））もステップ幅Ｃｐｈだけ増加される。
【００３２】
その後、充電が終了し、放電が開始されると、現在容量（図３（Ａ））は減少するが、この現在容量が、基準レベルより小さくなると、ステップＳ４およびＳ５において、基準レベル（図３（Ｂ））が、ステップ幅Ｃｐｈ単位の値で減少される。そして、現在容量（図３（Ａ））が、所定値となった後、再び充電が開始され、これにより、現在容量が、基準レベルよりステップ幅Ｃｐｈ以上増加すると、上述したように、ステップＳ２からステップＳ３に進み、基準レベル（図３（Ａ））がステップ幅Ｃｐｈだけ増加されるとともに、積算容量（図３（Ｂ））もステップ幅Ｃｐｈだけ増加される。
【００３３】
以下、同様にして、積算容量が求められていく。
【００３４】
以上のように、現在容量が、基準レベルより、ステップ幅Ｃｐｈ以上大きいときは、基準レベルおよび積算容量を、ステップ幅Ｃｐｈ（１ステップ）だけインクリメントし、また、現在容量が、基準レベルより小さくなったとき、基準レベルを、現在容量以下の最も大きな値になるように、ステップ幅Ｃｐｈ単位で減少させるようにしたので、誤差とみることができるＣｐｈ未満の現在容量の増加は無視され、その結果、積算容量を、比較的精度良く求めることができる。
【００３５】
ところで、第１の方法による場合においては、現在容量が、その検出周期の間に急増し、基準レベルより、はるかに大きな値となっても、積算容量および基準レベルは１ステップしかインクリメントされないため、そのような現在容量の急激な増加に対応しきれないことがある（但し、このような現在容量の急激な増加は、通常生じない）。
【００３６】
そこで、このような場合に対応すべく、図４のフローチャートは、第２の方法により積算容量が算出される場合のマイコン１の処理を示しており、図５は、そのときの基準レベル（図５（Ａ））、および積算容量（図５（Ｂ））の時間変化を示している。
【００３７】
第２の方法による場合においては、ステップＳ１１乃至Ｓ１３，Ｓ１５、またはＳ１６において、図２のステップＳ１乃至Ｓ３，Ｓ４、またはＳ５における場合とそれぞれ同様の処理が行われるようになされており、ステップＳ１３の処理後に、ステップＳ１１に直接戻らず、ステップＳ１４の処理が行われることが、第１の方法による場合と異なっている。
【００３８】
即ち、第２の方法による場合においては、ステップＳ１３の処理後、ステップＳ１４に進み、ステップＳ１２における場合と同様に、現在容量と基準レベルとの差分が、所定のステップ幅Ｃｐｈ以上であるかどうかが判定される。
【００３９】
ステップＳ１４において、現在容量と基準レベルとの差分が、所定のステップ幅Ｃｐｈ以上であると判定された場合、即ち、ステップＳ１３において、基準レベルを１ステップインクリメントしても、まだ、現在容量が、基準レベルよりステップ幅Ｃｐｈ以上大きい場合、再び、ステップＳ１３に戻る。従って、この場合、現在容量と基準レベルとの差分が、ステップ幅Ｃｐｈ以下になるまで、基準レベル（積算容量も）が１ステップずつデクリメントされる。
【００４０】
そして、ステップＳ１４において、現在容量と基準レベルとの差分が、所定のステップ幅Ｃｐｈ以上でないと判定された場合、ステップＳ１１に戻り、再び、ステップＳ１１からの処理を繰り返す。
【００４１】
従って、現在容量が、基準レベル以上であって、ステップ幅Ｃｐｈの範囲内にある場合は、図２における場合と同様に、基準レベルおよび現在レベルのいずれも更新されない。また、現在容量が、基準レベルより小さくなった場合も、図２における場合と同様に、基準レベルは、現在容量以下になるまで、１ステップ単位でデクリメントされる。そして、現在容量が、基準レベルよりステップ幅Ｃｐｈ以上大きくなると、ステップＳ１３およびＳ１４のループ処理において、現在容量と基準レベルとの差分が、ステップ幅Ｃｐｈ以下となるまで、基準レベルおよび現在容量の両方が１ステップ単位でインクリメントされる。即ち、この場合、基準レベルまたは現在容量は、それぞれの値に、ステップ幅Ｃｐｈ単位の値（ステップ幅Ｃｐｈの倍数であって、現在容量と、更新前の基準レベルとの差分以下の最大値）を加算したものに更新される。
【００４２】
図５は、以上のようにして積算容量が算出される場合の基準レベル（図５（Ａ））、および積算容量（図５（Ｂ））の時間変化を示している。
【００４３】
図５の実施例においても、最初に、現在容量（図５（Ａ））が増加しており、従って、充電が行われている。この場合、現在容量が、現在の基準レベルを越えてから、その基準レベルよりステップ幅Ｃｐｈ以上大きくなると、ステップＳ１３およびＳ１４において、基準レベル（図５（Ａ））に、ステップ幅Ｃｐｈ単位の値が加算されるとともに、積算容量（図５（Ｂ））にも、ステップ幅Ｃｐｈ単位の値が加算される。
【００４４】
その後、充電が終了し、放電が開始されると、現在容量（図５（Ａ））は減少するが、この現在容量が、基準レベルより小さくなると、ステップＳ１５およびＳ１６において、基準レベル（図５（Ｂ））から、ステップ幅Ｃｐｈ単位の値が減算される。そして、現在容量（図５（Ａ））が、所定値となった後、再び充電が開始され、これにより、現在容量が、基準レベルよりステップ幅Ｃｐｈ以上増加すると、上述したように、ステップＳ１３およびＳ１４において、基準レベル（図５（Ａ））に、ステップ幅Ｃｐｈ単位の値が加算されるとともに、積算容量（図５（Ｂ））にも、ステップ幅Ｃｐｈ単位の値が加算される。
【００４５】
以下、同様にして、積算容量が求められていく。
【００４６】
以上のように、現在容量が、基準レベルより、ステップ幅Ｃｐｈ以上大きいときは、基準レベルおよび積算容量を、ステップ幅Ｃｐｈ単位でインクリメントし、また、現在容量が、基準レベルより小さくなったとき、基準レベルを、ステップ幅Ｃｐｈ単位で減少させるようにしたので、誤差とみることができるＣｐｈ未満の現在容量の増加は無視され、その結果、積算容量を、比較的精度良く求めることができる。さらに、急激な現在容量の増加にも対応することが可能となる。
【００４７】
次に、第１および第２の方法による場合においては、現在容量が基準レベルより小さくなると、即座に、基準レベルを、ステップ幅Ｃｐｈ単位で減少させるようにしたので、図３（Ａ）および図５（Ａ）の後半部分（右半分の部分）に示したように、現在容量が、基準レベルがとり得る値を横切るようにふらついている場合には、基準レベルのインクリメントとデクリメントとが繰り返される。第１および第２の方法によれば、積算容量は、基準レベルとともにインクリメントされるから、現在容量が、基準レベルがとり得る値を横切るようにふらついている場合には、積算容量は、真の値に比較して大きくなってしまうことになる。
【００４８】
そこで、このような場合に対応すべく、図６のフローチャートは、第３の方法により積算容量が算出される場合のマイコン１の処理を示しており、図７は、そのときの基準レベル（図７（Ａ））、および積算容量（図７（Ｂ））の時間変化を示している。
【００４９】
第３の方法による場合においては、ステップＳ２４において、図２のステップＳ４における場合と異なる処理が行われる他は、ステップＳ２１乃至Ｓ２３またはＳ２５において、図２のステップＳ１乃至Ｓ３またはＳ５における場合とそれぞれ同様の処理が行われるようになされている。
【００５０】
即ち、第３の方法による場合においては、ステップＳ２４において、基準レベルと現在容量との差分（基準レベル−現在容量）が、ステップ幅Ｃｐｈより大きいかどうかどうかが判定される。ステップＳ２４において、基準レベルと現在容量との差分が、ステップ幅Ｃｐｈより大きいと判定された場合、ステップＳ２５に進み、基準レベルが、１ステップだけデクリメントされ、ステップＳ２４に戻る。そして、ステップＳ２４において、基準レベルと現在容量との差分が、ステップ幅Ｃｐｈより大きくないと判定された場合、ステップＳ２１に戻る。
【００５１】
従って、第３の方法によれば、現在容量が、基準レベルよりステップ幅Ｃｐｈ以上大きくなった場合は、第１の方法における場合と同様に、基準レベルおよび現在容量の両方がインクリメントされる。また、現在容量が、基準レベルから、ステップ幅Ｃｐｈの範囲内（基準レベル±Ｃｐｈ）にある場合は、基準レベルおよび現在レベルのいずれも更新されない。そして、基準レベルは、それより、現在容量がステップ幅以上小さくなったときのみデクリメントされる。
【００５２】
図７は、以上のようにして積算容量が算出される場合の基準レベル（図７（Ａ））、および積算容量（図７（Ｂ））の時間変化を示している。
【００５３】
図７の実施例においては、最初に、現在容量（図７（Ａ））が増加しており、従って、充電が行われている。この場合、現在容量が、現在の基準レベルを越えてから、その基準レベルよりステップ幅Ｃｐｈ以上大きくなると、ステップＳ２２からステップＳ２３に進み、基準レベル（図７（Ａ））がステップ幅Ｃｐｈだけ増加されるとともに、積算容量（図７（Ｂ））もステップ幅Ｃｐｈだけ増加される。
【００５４】
その後、充電が終了し、放電が開始されると、現在容量（図７（Ａ））は減少するが、この現在容量が、基準レベルよりステップ幅以上小さくなると、ステップＳ２４およびＳ２５において、基準レベル（図７（Ｂ））から、ステップ幅Ｃｐｈ単位の値が減算される。そして、現在容量（図７（Ａ））が、所定値となった後、再び充電が開始され、これにより、現在容量が、基準レベルよりステップ幅Ｃｐｈ以上増加すると、上述したように、ステップＳ２２からステップＳ２３に進み、基準レベル（図７（Ａ））がステップ幅Ｃｐｈだけ増加されるとともに、積算容量（図７（Ｂ））もステップ幅Ｃｐｈだけ増加される。
【００５５】
以下、同様にして、積算容量が求められていく。
【００５６】
以上のように、現在容量が、基準レベルより、ステップ幅Ｃｐｈ以上大きいときは、基準レベルおよび積算容量を、ステップ幅Ｃｐｈ（１ステップ）だけインクリメントし、また、現在容量が、基準レベルより、ステップ幅Ｃｐｈ以上小さくなったとき、基準レベルを、ステップ幅Ｃｐｈ単位で減少させるようにしたので、誤差とみることができるＣｐｈ未満の現在容量の増加は無視され、その結果、積算容量を、比較的精度良く求めることができる。さらに、図７（Ａ）の後半部分に示すように、現在容量が、基準レベルがとり得る値を横切るようにふらついている場合であっても、積算容量が、真の値に比較して大きくなってしまうことを防止することができる。
【００５７】
次に、第３の方法による場合においては、第１の方法における場合と同様に、積算容量および基準レベルのインクリメントを、現在容量が、基準レベルよりステップ幅Ｃｐｈ以上大きいときに、１ステップ分だけ行うようにしたが、現在容量が、基準レベルよりステップ幅Ｃｐｈ以上大きいときには、第２の方法における場合のように、積算容量および基準レベルのインクリメントは、１ステップ分だけでなく、必要に応じて、その整数倍の値（ステップ幅Ｃｐｈ単位の値）だけ行うようにすることが可能である。
【００５８】
図８のフローチャートは、そのような第４の方法により積算容量が算出される場合のマイコン１の処理を示しており、図９は、そのときの基準レベル（図９（Ａ））、および積算容量（図９（Ｂ））の時間変化を示している。
【００５９】
なお、第４の方法による場合においては、ステップＳ３１乃至Ｓ３４において、図４のステップＳ１１乃至Ｓ１４における場合とそれぞれ同様の処理が行われ、また、ステップＳ３５またはＳ３６において、図６のステップＳ２４またはＳ２５における場合とそれぞれ同様の処理が行われることから、図８および図９についての詳細な説明は省略する。
【００６０】
第４の方法によれば、積算容量を、比較的精度良く求めることができる他、図９（Ａ）の後半部分に示すように、現在容量が、基準レベルがとり得る値を横切るようにふらついている場合であっても、積算容量が、真の値に比較して大きくなってしまうことを防止することができ、さらに、急激な現在容量の増加にも対応することが可能となる。
【００６１】
ところで、第１乃至第４の方法による場合においては、基準レベルの増減が、ｎステップ（ｎは１以上の整数）単位で行われるため、そのとり得る値は、例えば、Ｃｐｈ，２Ｃｐｈ，３Ｃｐｈ，・・・などのように固定値となる。基準レベルが、このように固定値のみをとる場合、その値を、ＲＯＭ１０（図１）に記憶させておき、必要な基準レベルは、ＲＯＭ１０にアドレスを与えて読み出すようにすることができ、レジスタ部５に基準レベルを記憶するレジスタを設けずに済むようになる。即ち、書換可能なレジスタは、一般的に、読み出し専用のＲＯＭ１０に比較して、高価で、その大きさも大きいため、基準レベルがとり得る固定値を、ＲＯＭ１０に記憶させておくようにした場合には、装置の低コスト化、小型化を図ることが可能となる。
【００６２】
しかしながら、その一方、基準レベルが固定値しかとり得ない場合、即ち、例えば、第３や第４の方法によれば、最悪の場合、現在容量が増加することにより、基準レベルより２Ｃｐｈ近く大きくなり、その後減少したときに、積算容量がまったくインクリメントされないことがある。即ち、この場合、誤差とは考えにくい、２Ｃｐｈ近くの現在容量の増加が、積算容量に反映されないことになり、その結果、積算容量の精度が低下することになる。
【００６３】
そこで、このようなことを防止すべく、基準レベルを可変な値をとることができるようにすることができる。図１０のフローチャートは、可変な値をとり得る基準レベルを用いる第５の方法により積算容量が算出される場合のマイコン１の処理を示しており、図１１は、そのときの基準レベル（図１１（Ａ））、および積算容量（図１１（Ｂ））の時間変化を示している。
【００６４】
第５の方法による場合においては、ステップＳ４１乃至Ｓ４４において、図２のステップＳ１乃至Ｓ４における場合とそれぞれ同様の処理が行われる。そして、ステップＳ４４において、現在容量が、基準レベルより小さいと判定された場合、即ち、現在容量が、基準レベルより下がった場合、ステップＳ４５に進み、基準レベルに、現在容量の値がコピーされ（基準レベルの値が現在容量に等しい値に更新され）、ステップＳ４１に戻る。
【００６５】
図１１は、以上のようにして積算容量が算出される場合の基準レベル（図１１（Ａ））、および積算容量（図１１（Ｂ））の時間変化を示している。
【００６６】
充電が行われている場合においては、図３における場合と同様に、現在容量が、基準レベルを越えてから、その基準レベルよりステップ幅Ｃｐｈだけ増加すると、基準レベル（図１１（Ａ））が１ステップだけ増加されるとともに、積算容量（図１１（Ｂ））も１ステップだけ増加される（ステップＳ４３）。
【００６７】
その後、充電が終了し、放電が開始されると、現在容量（図１１（Ａ））は減少するが、この現在容量が、基準レベル以下となると、基準レベル（図１１（Ａ））も、現在容量とともに減少される（ステップＳ４５）。そして、現在容量（図１１（Ａ））が、所定値となった後、再び充電が開始され、これにより、現在容量が、基準レベルよりステップ幅Ｃｐｈだけ大きくなると、上述したように、基準レベル（図１１（Ｂ））が１ステップだけ増加されるとともに、積算容量（図１１（Ｃ））も１ステップだけ増加される。
【００６８】
以下、同様にして、積算容量が求められていく。
【００６９】
以上のように、現在容量が、基準レベルより、ステップ幅Ｃｐｈだけ大きくなったとき、基準レベルおよび積算容量を、ステップ幅Ｃｐｈ（１ステップ）だけインクリメントし、また、現在容量が、基準レベルより小さくなったとき、その基準レベルを、現在容量とともに減少させるようにしたので、誤差とみることができる現在容量の増加は無視されるとともに、誤差とは考えにくい現在容量の増加が考慮されることになり、その結果、積算容量を、より精度良く求めることができる。
【００７０】
次に、第５の方法による場合においては、第１の方法における場合と同様に、積算容量および基準レベルのインクリメントを、現在容量が、基準レベルよりステップ幅Ｃｐｈ以上大きいときに、１ステップ分だけ行うようにしたが、現在容量が、基準レベルよりステップ幅Ｃｐｈ以上大きいときには、第２の方法における場合のように、積算容量および基準レベルのインクリメントは、１ステップ分だけでなく、必要に応じて、その整数倍の値（ステップ幅Ｃｐｈ単位の値）だけ行うようにすることが可能である。
【００７１】
図１２のフローチャートは、そのような第６の方法により積算容量が算出される場合のマイコン１の処理を示しており、図１３は、そのときの基準レベル（図１３（Ａ））、および積算容量（図１３（Ｂ））の時間変化を示している。
【００７２】
なお、第６の方法による場合においては、ステップＳ５１乃至Ｓ５４において、図４のステップＳ１１乃至Ｓ１４における場合とそれぞれ同様の処理が行われ、また、ステップＳ５５またはＳ５６において、図１０のステップＳ４４またはＳ４５における場合とそれぞれ同様の処理が行われることから、図１２および図１３についての詳細な説明は省略する。
【００７３】
第６の方法によれば、積算容量を、より精度良く求めることができる他、急激な現在容量の増加にも対応することが可能となる。
【００７４】
次に、例えば、第１の方法による場合においては、図３（Ａ）に示したように、現在容量が、Ｃmax（＜６Ｃｐｈ）まで増加し、その後減少しているが、この場合において、現在容量が、５Ｃｐｈを越えてからＣmaxとなるまでに、Ｃmax−５Ｃｐｈ分の容量が充電されているのにも拘らず、Ｃmaxは、そのとき基準レベル（５Ｃｐｈ）＋ステップ幅Ｃｐｈ以下であるため、その容量分（このような容量を、以下、適宜、積算すべき容量という）は、積算容量には含められない。
【００７５】
従って、第１の方法による場合には、真の積算容量より、積算すべき容量だけ小さな積算容量が算出される。このことは、第２乃至第６の方法についても同様である。
【００７６】
そこで、図１４のフローチャートは、このような積算すべき容量をも積算の対象とする第７の方法により積算容量が算出される場合のマイコン１の処理を示しており、図１５は、そのときの基準レベル（図１５（Ａ））、および積算容量（図１５（Ｂ））の時間変化を示している。
【００７７】
第７の方法による場合においては、現在容量が、ステップ幅Ｃｐｈ以上増加または減少したかどうかを検出し、そのステップ幅Ｃｐｈ以上増加または減少する前の現在容量を、それぞれ容量極小値または容量極大値として、その容量極大値と容量極小値との差分を、積算容量に積算するようになされている。
【００７８】
即ち、現在容量がステップ幅Ｃｐｈ以上減少し、その後、ステップ幅Ｃｐｈ以上増加したとき、その区間における現在容量の最小値（極小値）を検出し、それを、容量極小値とする。また、現在容量がステップ幅Ｃｐｈ以上増加し、その後、ステップ幅Ｃｐｈ以上減少したとき、その区間における現在容量の最大値（極大値）を検出し、それを、容量極大値とする。容量極小値と容量極大値とは、必ず交互に出現し、第７の方法によれば、例えば、容量極大値が検出されると、その容量極大値から、その直前に検出された容量極小値を減算した減算値が、積算容量に加算されることにより、積算容量が更新される。
【００７９】
具体的には、まず最初に、ステップＳ６１において、現在容量が検出され、ステップＳ６２に進み、その現在容量が、変数ＲＡＭＬおよびＲＡＭＨに、初期値としてセットされる。
【００８０】
ここで、変数ＲＡＭＬとＲＡＭＨは、レジスタ部５（図１）を構成するレジスタに記憶されるようになされており、それぞれは、容量極小値または容量極大値を検出するために用いられる。
【００８１】
その後、ステップＳ６３に進み、再び、現在容量が検出される。そして、ステップＳ６４において、現在容量と変数ＲＡＭＬとの差分Ｄ1（＝現在容量−ＲＡＭＬ）が求められるとともに、変数ＲＡＭＨと現在容量との差分Ｄ2（＝ＲＡＭＨ−現在容量）が求められ、ステップＳ６５に進み、差分Ｄ1がステップ幅Ｃｐｈより大きいかどうかが判定される。ステップＳ６５において、差分Ｄ1がステップ幅Ｃｐｈより大きいと判定された場合、即ち、現在容量が、最初に検出された現在容量（ステップＳ６１で検出された現在容量）（例えば、ユーザが、バッテリパック２０を購入し、その使用を開始したときに検出された現在容量）より、ステップ幅Ｃｐｈ以上増加した場合、最初に検出された現在容量が容量極小値とみなされる。そして、ステップＳ６６に進み、変数ＲＡＭＨが有効とされ、ステップＳ６９に進む。ここで、変数ＲＡＭＨが有効とされている間は、後段の処理において、変数ＲＡＭＨが更新の対象とされ、変数ＲＡＭＬは更新の対象とはされない。
【００８２】
一方、ステップＳ６５においいて、差分Ｄ1がステップ幅Ｃｐｈより大きくないと判定された場合、ステップＳ６７に進み、差分Ｄ2がステップ幅Ｃｐｈより大きいかどうかが判定される。ステップＳ６７において、差分Ｄ2がステップ幅Ｃｐｈより大きくないと判定された場合、即ち、現在容量が、最初に検出された現在容量より、ステップ幅Ｃｐｈ以上増加もしていないし、また、減少もしていない場合、ステップＳ６３に戻る。
【００８３】
また、ステップＳ６７において、差分Ｄ2がステップ幅Ｃｐｈより大きいと判定された場合、即ち、現在容量が、最初に検出された現在容量より、ステップ幅Ｃｐｈ以上減少した場合、最初に検出された現在容量が容量極大値とみなされる。そして、ステップＳ６８に進み、変数ＲＡＭＬが有効とされ、ステップＳ６９に進む。ここで、変数ＲＡＭＬが有効とされている間は、後段の処理において、変数ＲＡＭＬが更新の対象とされ、変数ＲＡＭＨは更新の対象とはされない。
【００８４】
以上のようにして、変数ＲＡＭＨまたはＲＡＭＬのうちのいずれか一方が有効とされると、ステップＳ６９において、再び、現在容量が検出され、ステップＳ７０に進み、いま、変数ＲＡＭＨまたはＲＡＭＬのうちのいずれが有効となっているのかが判定される。ステップＳ７０において、変数ＲＡＭＨが有効になっていると判定された場合、即ち、現在容量の前回の極値が極小値（容量極小値）であった場合、ステップＳ７１に進み、現在容量が変数ＲＡＭＨより大きいかどうかが判定される。
【００８５】
ステップＳ７１において、現在容量が変数ＲＡＭＨより大きいと判定された場合、ステップＳ７２に進み、変数ＲＡＭＨが現在容量に更新され、ステップＳ６９に戻り、ステップＳ６９からの処理を繰り返す。即ち、この場合、変数ＲＡＭＨは有効とされたままであるから、ステップＳ６９乃至Ｓ７２の処理が繰り返され、これにより、変数ＲＡＭＨには、前回の容量極小値が検出されてから現在までの現在容量の最大値が記憶される。
【００８６】
また、ステップＳ７１において、現在容量が変数ＲＡＭＨより大きくないと判定された場合、即ち、いま検出された現在容量が、前回の容量極小値が検出されてから現在までの現在容量の最大値以下の値である場合、ステップＳ７３に進み、変数ＲＡＭＨと現在容量との差分Ｄ2が求められ、ステップＳ７４に進む。ステップＳ７４では、差分Ｄ2がステップ幅Ｃｐｈより大きいかどうかが判定される。
【００８７】
ステップＳ７４において、差分Ｄ2がステップ幅Ｃｐｈより大きくないと判定された場合、即ち、現在容量が減少したが、その減少幅が、ステップ幅Ｃｐｈ以下である場合、ステップＳ６９に戻る。また、ステップＳ７４において、差分Ｄ2がステップ幅Ｃｐｈより大きいと判定された場合、即ち、現在容量が、変数ＲＡＭＨ（前回の容量極小値が検出されてから現在までの現在容量の最大値）よりステップ幅Ｃｐｈ以上減少した場合、そのときの変数ＲＡＭＨが、容量極大値として確定される。そして、ステップＳ７５に進み、積算容量が、その値に、変数ＲＡＭＨとＲＡＭＬとの差分を加算したものに更新され、ステップＳ７６に進む。
【００８８】
ステップＳ７６では、変数ＲＡＭＨに代えて、変数ＲＡＭＬが有効とされ、即ち、容量極大値が検出された後は、変数ＲＡＭＬが有効とされ、ステップＳ７７に進み、変数ＲＡＭＬが現在容量に更新され、ステップＳ６９に戻り、ステップＳ６９からの処理を繰り返す。
【００８９】
この場合、ステップＳ７０では、変数ＲＡＭＬが有効であると判定される。ステップＳ７０において、変数ＲＡＭＬが有効であると判定された場合、ステップＳ７８に進み、現在容量が変数ＲＡＭＬより小さいかどうかが判定される。
【００９０】
ステップＳ７８において、現在容量が変数ＲＡＭＬより小さいと判定された場合、ステップＳ７９に進み、変数ＲＡＭＬが現在容量に更新され、ステップＳ６９に戻り、ステップＳ６９からの処理を繰り返す。即ち、この場合、変数ＲＡＭＬは有効とされたままであるから、ステップＳ６９，Ｓ７０，Ｓ７８、およびＳ７９の処理が繰り返され、これにより、変数ＲＡＭＬには、前回の容量極大値が検出されてから現在までの現在容量の最小値が記憶される。
【００９１】
また、ステップＳ７８において、現在容量が変数ＲＡＭＬより小さくないと判定された場合、即ち、いま検出された現在容量が、前回の容量極大値が検出されてから現在までの現在容量の最小値以上の値である場合、ステップＳ８０に進み、現在容量と変数ＲＡＭＬとの差分Ｄ1が求められ、ステップＳ８１に進む。ステップＳ８１では、差分Ｄ1がステップ幅Ｃｐｈより大きいかどうかが判定される。
【００９２】
ステップＳ８１において、差分Ｄ1がステップ幅Ｃｐｈより大きくないと判定された場合、即ち、現在容量が増加したが、その増加幅が、ステップ幅Ｃｐｈ以下である場合、ステップＳ６９に戻る。また、ステップＳ８１において、差分Ｄ1がステップ幅Ｃｐｈより大きいと判定された場合、即ち、現在容量が、変数ＲＡＭＬ（前回の容量極大値が検出されてから現在までの現在容量の最小値）よりステップ幅Ｃｐｈ以上増加した場合、そのときの変数ＲＡＭＬが、容量極小値として確定される。そして、ステップＳ８２において、変数ＲＡＭＬに代えて、変数ＲＡＭＨが有効とされ、即ち、容量極小値が検出された後は、変数ＲＡＭＨが有効とされ、ステップＳ８３に進み、変数ＲＡＭＨが現在容量に更新され、ステップＳ６９に戻り、ステップＳ６９からの処理を繰り返す。
【００９３】
図１５は、以上のようにして積算容量が算出される場合の基準レベル（図１５（Ａ））、および積算容量（図１５（Ｂ））の時間変化を示している。
【００９４】
図１５の実施例においては、最初に、現在容量（図１５（Ａ））が増加しており、従って、充電が行われている。この場合、現在容量が、最初の現在容量からステップ幅Ｃｐｈ以上増加した時刻ｔ１において、最初の現在容量が、容量極小値とされるとともに、変数ＲＡＭＨが有効とされる。
【００９５】
変数ＲＡＭＨが有効とされている間、この変数ＲＡＭＨは、時刻ｔ１からいままでにおける現在容量の最大値に更新されていく。そして、充電が終了し、放電が開始されると、現在容量（図１５（Ａ））は減少するが、この現在容量が、変数ＲＡＭＨよりステップ幅Ｃｐｈ以上小さい値に減少すると、その時刻ｔ３において変数ＲＡＭＨに記憶されていた値（現在容量）が、容量極大値として確定される。即ち、例えば、図１５（Ａ）に示した場合においては、時刻ｔ２において極大値が出現しているが、この極大値は、時刻ｔ３において、容量極大値として確定される。
【００９６】
容量極大値が確定すると、積算容量が（図１５（Ｂ））が、変数ＲＡＭＨとＲＡＭＬとの差分だけ増加され、さらに、変数ＲＡＭＬが有効とされるとともに、その変数ＲＡＭＬに、現在容量（時刻ｔ３において検出された現在容量）がセットされる。
【００９７】
その後、変数ＲＡＭＬが有効とされている間は、変数ＲＡＭＬは、時刻ｔ３（変数ＲＡＭＬが有効とされた時刻）からいままでにおける現在容量の最小値に更新されていく。そして、放電が終了し、充電が再び開始されると、現在容量（図１５（Ａ））は増加するが、この現在容量が、変数ＲＡＭＬよりステップ幅Ｃｐｈ以上大きい値に増加すると、その時刻ｔ４において変数ＲＡＭＬに記憶されていた値（現在容量）が、容量極小値として確定される。
【００９８】
容量極小値が確定すると、変数ＲＡＭＨが再び有効とされ、さらに、変数ＲＡＭＨに、現在容量（時刻ｔ４において検出された現在容量）がセットされる。そして、変数ＲＡＭＨを更新していき、以下、同様にして、積算容量が求められていく。
【００９９】
以上のように、現在容量が、ステップ幅Ｃｐｈ以上増加または減少したかどうかを検出し、そのステップ幅Ｃｐｈ以上増加または減少する前の現在容量を、それぞれ容量極小値または容量極大値として、その容量極大値と容量極小値との差分を、積算容量に積算するようにしたので、誤差とみることができるＣｐｈ未満の現在容量の増加は無視され、その結果、積算容量を、比較的精度良く求めることができる。さらに、第７の方法によれば、積算すべき容量も積算容量に含められるので、より精度良く、積算容量を求めることができる。
【０１００】
なお、上述した、基準レベルが所定の固定値のみをとる第１乃至第４の方法は、その固定値どうしの間隔を小さくすることで、この第７の方法に近づくことになる。
【０１０１】
次に、以上のような方法で求められた積算容量は、上述したように、表示部６などにおいて表示されるが、第７の方法による場合においては、容量極大値が確定されるまでは、前回の容量極小値からの充電容量は、積算容量に加算されないから、その間における積算容量の変化は表示に反映されないことになる（容量極大値が出現したときしか、積算容量の表示が変化しない）。即ち、第７の方法により求められた積算容量値を、そのまま表示するのでは、表示部６の表示値（以下、適宜、表示容量値という）はリアルタイムに変化しない。
【０１０２】
そこで、表示容量値をリアルタイムに変化させるには、マイコン１に、例えば、図１６に示すフローチャートにしたがった表示処理を行わせるようにすれば良い。即ち、この場合、まず最初に、ステップＳ９１において、変数ＲＡＭＬまたはＲＡＭＨのうちのいずれが有効であるかが判定される。ステップＳ９１において、変数ＲＡＭＨが有効であると判定された場合、ステップＳ９２に進み、積算容量に、変数ＲＡＭＨとＲＡＭＬとの差分が加算され、その加算値が、表示容量値として表示され、表示処理を終了する。
【０１０３】
また、ステップＳ９１において、変数ＲＡＭＬが有効であると判定された場合、ステップＳ９３に進み、積算容量が、そのまま表示容量値として表示され、表示処理を終了する。
【０１０４】
この場合、図１７に示すように、前回の容量極小値から、次の容量極大値が出現するまでの間は、その容量極小値からの容量の増分（ＲＡＭＨ−ＲＡＭＬ）が、積算容量（同図において点線で示す部分）に加算されて表示されるので、表示容量値をリアルタイムに変化させることが可能となる。
【０１０５】
以上、本発明をパソコンシステムに適用した場合について説明したが、本発明は、パソコン以外の電子機器に用いられるバッテリパックなどにも適用可能である。
【０１０６】
なお、図１４における場合においては、容量極大値が確定されたときに、前回の容量極小値からの差分を、積算容量に加算し、変数ＲＡＭＬを現在容量に更新するようにしたが、その他、例えば、現在容量が、変数ＲＡＭＬよりステップ幅Ｃｐｈ以上の値に増加したときに、変数ＲＡＭＨとＲＡＭＬとの差分を、積算容量に加算し、変数ＲＡＭＬを、変数ＲＡＭＨに記憶された値に更新することにより、積算容量を求めるようにすることもできる。この場合、リアルタイムに変化する積算容量を得ることが可能となる。
【０１０７】
また、本実施例においては、電池電圧から、現在容量を検出するようにしたが、現在容量は、例えば、電流積算法その他によって検出するようにしても良い。
【０１０８】
さらに、２次電池Ｅは、リチウムイオン電池に限定されるものではなく、２次電池Ｅとしては、例えば、Ｎｉｃｄ電池その他を用いることが可能である。
【０１０９】
また、以上説明した第１乃至第７の方法のうちの、第７の方法による場合においては、基準レベルを用いずに積算容量を求めるようにしたが、第７の方法による場合においても、基準レベルを用いて、積算容量を求めるようにすることが可能である。この場合、基準レベルは、第１乃至第６の方法のうちのいずれかと同様に変化させるようにし、変数ＲＡＭＨおよびＲＡＭＬには、そこに本来記憶させるべき値の、基準レベルからの差分値を記憶させるようにする。この場合、変数ＲＡＭＨおよびＲＡＭＬを記憶させるために必要なレジスタのビット数を小さくすることが可能となる。
【０１１０】
さらに、積算容量は、バッテリパック２０が使用不可能となるまで計算されるものであり、従って、莫大な値になることもあることから、その表示などのための有効桁数は、適宜定める必要がある。
【０１１１】
また、本実施例では、電池電圧から検出された残容量を、現在容量としてそのまま用いるようにしたが、その他、例えば、マイコン１に、残容量の、所定の期間における移動平均値を計算させ、これを、現在容量として用いるようにすることが可能である。
【０１１２】
ここで、残容量の、所定の期間における移動平均値とは、次のようにして計算することができる。即ち、所定の期間に相当する時間窓が時刻の進行方向に移動していくことを考えた場合、現在時刻における残容量が時間窓に取り込まれるときに、既に取り込まれている残容量の総和から、その平均値（既に、時間窓内にある残容量の総和を、時間窓の幅で除算したもの）を減算した値に、現在時刻における残容量を加算した値を、時間窓の幅で除算した値が移動平均値となる。従って、現在の移動平均値は、時間窓内の残容量それぞれを記憶しておかなくても、前回の移動平均値を計算するのに用いた残容量の総和値を記憶しておくだけで計算することができる。即ち、現在の移動平均値は、前回の移動平均値を計算するのに用いた残容量の総和値から、その値を時間窓の幅で除算した値（これは、前回の移動平均値である）を減算し、その減算値に、現在時刻の残容量を加算し、時間窓の幅で除算することにより求めることができる。
【０１１３】
なお、この移動平均値は、残容量を、時間窓の幅に対応する時間のタイムコンスタントの、抵抗とコンデンサでなるローパスフィルタ（ＲＣフィルタ）を通過させて得られる値と等価である。
【０１１４】
また、本実施例においては、充電容量の積算値を求める場合について説明したが、本発明は、放電容量の積算値を求める場合にも適用可能である。即ち、現在容量を、現在の２次電池の残容量ではなく、現在の２次電池の空き容量（満充電時を、例えば０とした、使用された容量）とすることにより（これは、例えば、図３（Ａ）などに示した現在容量の時間変化の縦軸の値の符号を、正から負にすることと等価である）、上述した場合と同様にして、放電容量の積算値を求めることができる。
【０１１５】
なお、本発明においては、「より大きい」という場合と、「以上」という場合とを、特に厳密に区別する必要はないので、本明細書中および図面においても、厳密には使い分けていない。「より小さい」（あるいは、「未満」）という場合と、「以下」という場合についても同様である。
【０１１６】
【発明の効果】
請求項１に記載の容量積算方法および請求項９に記載のバッテリパックによれば、２次電池の現在容量が検出され、現在容量が所定のステップ幅以上変化している場合、積算容量が、その値に、現在容量の所定のステップ幅以上の変化を加算したものに更新される。従って、比較的精度の高い容量の積算値を求めることが可能となる。
【図面の簡単な説明】
【図１】本発明を適用したパソコンシステムの一実施例の構成を示すブロック図である。
【図２】第１の容量算出方法を説明するためのフローチャートである。
【図３】第１の容量算出方法を説明するための図である。
【図４】第２の容量算出方法を説明するためのフローチャートである。
【図５】第２の容量算出方法を説明するための図である。
【図６】第３の容量算出方法を説明するためのフローチャートである。
【図７】第３の容量算出方法を説明するための図である。
【図８】第４の容量算出方法を説明するためのフローチャートである。
【図９】第４の容量算出方法を説明するための図である。
【図１０】第５の容量算出方法を説明するためのフローチャートである。
【図１１】第５の容量算出方法を説明するための図である。
【図１２】第６の容量算出方法を説明するためのフローチャートである。
【図１３】第６の容量算出方法を説明するための図である。
【図１４】第７の容量算出方法を説明するためのフローチャートである。
【図１５】第７の容量算出方法を説明するための図である。
【図１６】図１４のフローチャートにしたがって算出された積算容量を表示するときの処理を説明するためのフローチャートである。
【図１７】表示容量値の時間変化を示す図である。
【符号の説明】
１  マイコン（検出手段）（判定手段）（更新手段）  ２  スイッチ，  ３  電流検出回路，  ４  電圧検出回路，  ５  レジスタ部，  ６  表示部（表示手段），  ２０  バッテリパック
【図１】
0003666697.tif 000002
【図２】
0003666697.tif 000003
【図３】
0003666697.tif 000004
【図４】
0003666697.tif 000005
【図５】
0003666697.tif 000006
【図６】
0003666697.tif 000007
【図７】
0003666697.tif 000008
【図８】
0003666697.tif 000009
【図９】
0003666697.tif 000010
【図１０】
0003666697.tif 000011
【図１１】
0003666697.tif 000012
【図１２】
0003666697.tif 000013
【図１３】
0003666697.tif 000014
【図１４】
0003666697.tif 000015
【図１５】
0003666697.tif 000016
【図１６】
0003666697.tif 000017
【図１７】
0003666697.tif 000018