(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に記載の技術では、バッテリパックが充電器に挿入された時点で各セル電圧を測定している。この測定電圧は、各セルから負荷へ電流が供給されていない状態での電圧、即ち開放電圧である。つまり、特許文献1に記載の技術では、各セルの開放電圧を測定し、その開放電圧に基づいてバランシング対象のセルを決定している。
【0006】
セルの開放電圧は、無負荷時(非通電時)の電圧であるため、セルの内部インピーダンスが反映されない。そのため、セルの内部インピーダンスの状態によっては、本来バランシングが不要なセルであるにもかかわらずバランシング対象とされて、不必要なバランシングが行われてしまう可能性がある。また、本来バランシングが必要なセルであるにもかかわらず、バランシング非対象とされて、バランシングできない可能性もある。
【0007】
例えば、内部インピーダンスが高いセルの場合、開放時は他のセルよりもセル電圧が高いものの、放電時には内部インピーダンスの影響でセル電圧が大きく低下し、他のセルのセル電圧よりも低くなることがある。このようなセルが開放電圧に基づいてバランシング対象とされ、バランシング実行により容量が低下すると、放電時のセル電圧がより低下してしまい、他の正常なセルとの電圧差がより広がってしまう可能性がある。
【0008】
逆に、内部インピーダンスが低いセルの場合、開放時と放電時のセル電圧差が小さいため、他のセルより多くの容量が入っていても開放時に他のセルよりも電圧が低くなってバランシング対象にならず、他の容量の少ないセルとの容量差を減らすことができない可能性がある。
【0009】
本発明は上記課題に鑑みなされたものであり、バッテリを構成する複数のセルの電圧のばらつきを低減するバランシング機能を有する電動機械器具用バッテリパックにおいて、バランシングの実行対象のセルを決定するにあたり、各セルの内部インピーダンスを加味した適切な決定を行えるようにすることを目的とする。
【課題を解決するための手段】
【0010】
上記課題を解決するためになされた本発明の電動機械器具用バッテリパックは、バッテリと、セル放電部と、電圧検出部と、対象セル判定部と、放電制御部と、を備える。
バッテリは、充放電可能な複数のセルが直列接続されて構成されている。セル放電部は、 複数のセルを個々に放電させる。電圧検出部は、バッテリから電動機械器具へその駆動用電力が供給されているときに、複数のセル毎にその電圧であるセル電圧をそれぞれ検出する。対象セル判定部は、複数のセルのうち、電圧検出部により検出されたセル電圧が所定の閾値以下であるセルが少なくとも1つある場合に、各セル電圧のばらつきを低減させるために放電させるべき対象セルの判定を行う。具体的には、閾値以下のセル電圧のうち最も低いセル電圧を最小セル電圧として、その最小セル電圧よりも規定値以上高いか又は閾値よりも規定値以上高いセル電圧の他のセルが少なくとも1つあった場合、その少なくとも1つのセルを対象セルと判定する。放電制御部は、対象セル判定部により対象セルと判定されたセルをセル放電部によって放電させる。
【0011】
このように構成された電動機械器具用バッテリパックでは、電動機械器具への駆動用電力の供給が行われているとき、即ちバッテリから電動機械器具へその動作に必要な放電が行われているときに、そのときの各セル電圧に基づいて、セル放電部による放電(バランシング)の対象セルの判定が行われる。駆動用電力の供給時に検出される各セル電圧は、セルの内部インピーダンスが加味された値である。そのため、仮に開放電圧が相対的に非常に高くても、内部インピーダンスが高くて電動機械器具への放電時のセル電圧が低下するようなセル、即ちバランシングを行う必要のないセルが、対象セルとされてしまうことが抑制される。
【0012】
従って、上記構成の電動機械器具用バッテリパックによれば、バランシングの実行対象のセルを決定するにあたり、各セルの内部インピーダンスを加味した適切な決定を行うことができる。
【0013】
電動機械器具用バッテリパックは、バッテリの温度を検出する温度検出部を備えた構成であってもよい。その場合、電圧検出部は、温度検出部により検出されたバッテリの温度が規定温度範囲内の場合に、複数のセル毎のセル電圧を検出するようにしてもよい。
【0014】
バッテリは、一般に、温度が低いほど内部インピーダンスが大きくなる。そのため、温度が低いときのセル電圧では対象セルを適切に判定できない可能性がある。そこで、セル電圧を適切に検出可能な規定温度範囲を予め設定しておき、バッテリ温度がその規定温度範囲内の場合に各セル電圧を検出するようにすることで、対象セルをより適切に決定することが可能となる。
【0015】
電動機械器具用バッテリパックは、情報を記憶可能な記憶部を備え、対象セル判定部は、対象セルと判定したセルが少なくとも1つあった場合は、その少なくとも1つの対象セルを記憶部に記憶するようにしてもよい。そして、放電制御部は、記憶部に記憶されている少なくとも1つの対象セルをそれぞれセル放電部によって放電させるようにしてもよい。
【0016】
このように、対象セルを記憶部に記憶して、その記憶部の内容に基づいて対象セルを放電させることで、対象セルに対する放電の実施を確実に行うことができる。
対象セル判定部は、対象セルと判定したセルが少なくとも1つあった場合、対象セル毎に、放電制御部による放電実施の優先順位を示すパラメータを演算し、そのパラメータを対象セル毎に記憶部に記憶するようにしてもよい。
【0017】
パラメータを演算し記憶しておくことで、特に対象セルが複数ある場合に、どの対象セルから放電を実施すべきかを適切且つ容易に判断することができ、適切な順序で放電を実施することができる。
【0018】
対象セル判定部が対象セル毎のパラメータとして具体的にどのような値を演算するかについては種々考えられる。例えば、パラメータとして、対象セルのセル電圧から最小セル電圧を減算した値を示す第1バラツキデータ、又は対象セルのセル電圧から閾値を減算した値を示す第2バラツキデータを演算し、記憶部に記憶するようにしてもよい。
【0019】
第1バラツキデータ及び第2バラツキデータのいずれも、値が大きいほどそのセルを優先的に放電させるのが好ましい。そのため、パラメータとして第1バラツキデータ又は第2バラツキデータを演算、記憶することで、放電の順序を容易且つ適切に決めることができる。また、何れかのバラツキデータを演算、記憶するという簡素な処理で済むため、バッテリパックにおいて実施される他の各種処理への影響を抑制できる。
【0020】
なお、各バラツキデータは、対象セルのセル電圧が大きいほど大きい値となる。そのため、対象セルのバランシングを行う際、パラメータに基づいてバランシングの実施順序を決めるのに加え、対象セル毎に、バランシングの実施時間(即ち放電時間、ひいては放電容量)をパラメータに応じて適宜設定するようにしてもよい。
【0021】
また例えば、パラメータとして、対象セルのセル電圧から最小セル電圧を減算した値が大きい順の順位、又は対象セルのセル電圧から閾値を減算した値が大きい順の順位を演算し、記憶部に記憶するようにしてもよい。つまり、実質的に、上記第1バラツキデータの大きい順の順位、又は上記第2バラツキデータの大きい順の順位を、パラメータとして記憶する。このように、パラメータとして順位まで演算して記憶しておくことで、後にバランシングを実施する際の実施順序をより容易に決めることができる。
【0022】
放電制御部は、バッテリが予め設定された一定時間以上充電されておらず、且つ、電動機械器具への駆動用電力の供給が一定時間以上行われていないときに、セル放電部による対象セルの放電を実施するようにしてもよい。
【0023】
対象セルのバランシングを実施している間は、各セル電圧(特にバランシング実施中の対象セルのセル電圧)を正しく測定できない可能性がある。そのため、バランシングの実施中に、各セル電圧に基づいてバッテリの充電を制御したり電動機械器具への放電を制御したりすると、これら各種制御が正常に実行されなくなるおそれがある。そこで、バランシングは充電及び電動機械器具への駆動用電力の供給が一定時間以上行われていない場合に行うようにすることで、バッテリの充電制御や電動機械器具への放電制御などの各種の通常処理への影響を抑制することができる。
【0024】
セルの充電容量や内部インピーダンスによっては、電動機械器具へ駆動用電力が供給されている状態では対象セルが決定されない可能性もある。その場合、バランシングが必要なセルはないとしてバランシングを行わないようにしてもよい。ただし、開放電圧の差が大きい場合にはその大きさによってはバランシングを実施した方がよい場合がある。
【0025】
そこで、各セルの開放電圧に基づいて対象セルを判定する無負荷時判定部を備えるようにしてもよい。無負荷時判定部は、対象セル判定部による判定の結果、対象セルが1つも判定されなかった場合に、開放電圧に基づいてバランシングの要否を判定する。具体的には、バッテリから電動機械器具への駆動用電力の供給が行われていない期間における所定の判定タイミングで、各セル電圧を検出し、その検出した各セル電圧に基づいて、その各セル電圧のばらつきを低減させるために放電させるべきセルが有るか否か判定する。そして、放電制御部は、無負荷時判定部によって放電させるべきセルが有ると判定された場合は、そのセルを対象セルとして、セル放電部によって放電(バランシング)させる。
【0026】
このように、電動機械器具への放電時に各セル電圧を検出して対象セルの有無を判定することを基本としつつ、対象セルがなかった場合には各セルの開放電圧に基づいて対象セルの有無を判定することで、バランシングを実施すべき対象セルをより適切に判定することができる。
【発明を実施するための形態】
【0028】
以下に、本発明が適用された実施形態について、図面を用いて説明する。
(1)バッテリパック1の構成
図1及び
図2に示すように、本実施形態の電動機械器具用バッテリパック(以下「バッテリパック」と略称する)1は、バッテリ10を備える。バッテリ10は、繰り返し充放電可能な複数のセルが直列接続されて構成されている。本実施形態のバッテリ10においては、5つのセル11、12、13、14、15が直列接続されている。なお、本実施形態の各セル11〜15は、例えばリチウムイオン2次電池セルである。
【0029】
バッテリパック1の筐体は、充電器60及び工具本体80の何れかに選択的に着脱可能に構成されている。
バッテリ10の正極は正極端子3に接続され、バッテリ10の負極は負極端子4に接続されている。バッテリパック1を充電器60に装着すると、
図1に示すように、バッテリパック1の正極端子3が充電器60の正極端子66に接続され、バッテリパック1の負極端子4が充電器60の負極端子67に接続される。これにより、充電器60からバッテリ10への充電を行うことができる。
【0030】
また、バッテリパック1を工具本体80に装着すると、
図2に示すように、バッテリパック1の正極端子3が工具本体80の正極端子86に接続され、バッテリパック1の負極端子4が工具本体80の負極端子87に接続される。これにより、バッテリ10から工具本体80への給電(換言すればバッテリ10の放電)を行うことができる。
【0031】
バッテリ10には、バッテリ10の状態を監視してその監視結果を制御回路31へ出力する監視IC30が接続されている。監視IC30の主な機能(監視内容)は、各セル11〜15の電圧(セル電圧)及びバッテリ10の電圧(バッテリ電圧)を検出してその検出結果を制御回路31へ出力することである。各セル11〜15の両端はそれぞれ監視IC30に接続されている。監視IC30は、各セル11〜15の両端の電圧(即ちセル電圧)及びバッテリ電圧を検出し、その検出した各セル電圧及びバッテリ電圧に応じた電圧検出信号を制御回路31に出力する。なお、制御回路31が、各セル電圧に基づいてバッテリ電圧10を演算する機能を備えている場合は、監視IC30からは必ずしもバッテリ電圧を示す電圧検出信号を出力する必要はない。
【0032】
監視IC30による各セル電圧及びバッテリ電圧の検出タイミングは適宜決めることができる。例えば、周期的に検出するようにしてもよいし、所定の検出条件成立時に検出するようにしてもよいし、制御回路31から検出指示を受けて検出するようにしてもよい。また、監視IC30から制御回路31への検出結果(電圧検出信号)の出力タイミングについても適宜決めることができる。例えば、各セル電圧及びバッテリ電圧を検出する度にその検出結果を出力(つまり周期的に出力)するようにしてもよいし、制御回路31からの出力指示を受けて出力するようにしてもよい。制御回路31が適切なタイミングで各セル電圧及びバッテリ電圧を適切に取得(例えば可能な限り最新の値を取得)できる限り、監視IC30による検出タイミングや検出結果の出力タイミングは特に限定されない。
【0033】
本実施形態では、制御回路31で実行される後述の各種処理の中で、セル電圧を対象とした各種の判断処理や演算処理が行われるが、その際に用いるセル電圧は、その処理の都度監視IC30から取得してもよいし、例えば周期的な取得によって既に取得している最新の値を用いてもよい。
【0034】
バッテリ10の各セル11〜15には、それぞれ個別に放電制御部21,22,23,24,25が並列接続されている。各セル11〜15と、対応する各放電制御部21〜25とによって、セル毎にそれぞれ放電経路が形成される。各放電制御部21〜25は、放電電流制限用の抵抗を備えている。各セル11〜15はそれぞれ、正極と負極の両端が、対応する放電制御部の抵抗を介して接続されており、これにより、正極から抵抗を介して負極へ至る放電経路が形成される。
【0035】
また、各放電制御部21〜25には、対応する放電経路を導通・遮断するためのスイッチが設けられている。このスイッチは、通常は開いており、よって放電経路は通常は遮断されている。このスイッチは、制御回路31から各放電制御部21〜25に対して個別に出力される放電制御信号に従ってオン・オフされる。このスイッチが閉じると、放電経路が導通し、対応するセルの放電が行われる。即ち、対応するセルの正極から抵抗及びスイッチを介して負極へ電流が流れ、これによりそのセルの容量が低下していく。放電時の放電電流は、抵抗の抵抗値によって調整可能である。或いは、スイッチをデューティ駆動させることで放電電流の大きさを制御できるようにしてもよい。
【0036】
各放電制御部21〜25は、上記のような構成により、対応するセルを略定電流にて放電させることができる。なお、各放電制御部21〜25の構成として、上述した抵抗及びスイッチを備えた構成はあくまでも一例である。
【0037】
バッテリ10の負極と負極端子4とを接続する負極側の接続ラインには、電流検出素子33が接続されている。電流検出素子33は、バッテリパック1が充電器60に装着されている場合に充電器60からの充電電流を検出したり、バッテリパック1が工具本体80に装着されている場合に工具本体80への放電電流を検出したりするために設けられている。電流検出素子33は、制御回路31に接続されている。具体的には、電流検出素子33の両端の電圧が直接、又はその両端の電圧を示す信号が、電流検出信号として制御回路31に入力される。
【0038】
また、バッテリパック1は、バッテリ10の温度(以下「バッテリ温度」という)を検出してその検出結果を示す温度検出信号を出力する温度検出回路34を備えている。温度検出回路34は、バッテリ温度に応じた信号を出力する検出素子(例えばサーミスタ)と、その検出素子からの信号を処理して温度検出信号を生成・出力する信号処理回路とを有する。このうち検出素子は、バッテリ温度を可能な限り正確に検出できるよう、バッテリ10のごく近傍に設置されている。
【0039】
制御回路31は、演算部41とメモリ42とを備える。メモリ42には、記憶内容を書き換えできない不揮発性のメモリ(例えばROM)と、記憶内容を書き換え可能な揮発性のメモリ(例えばRAM)と、記憶内容を電気的に書き換え可能な不揮発性のメモリ(例えばフラッシュメモリ)が含まれる。メモリ42のうち不揮発性のメモリには、主に、バッテリパック1が有する各種機能を実現するための各種プログラムやデータ等が記憶されている。各種プログラムやデータのうち一部がフラッシュメモリに記憶されていてもよい。
【0040】
演算部41は、メモリ42に記憶されている各種プログラムを実行することによりバッテリパック1が有する各種機能を実現する。なお、制御回路31の具体的なハードウェア構成は種々考えられるが、本実施形態では、制御回路31は、CPU、ROM、RAM等を中心とするワンチップのマイクロコンピュータ(マイコン)にて構成されている。そのため、演算部41は、本実施形態ではCPUである。メモリ42のうち揮発性のメモリは、主に、演算部41が各種プログラムを実行する際のワークエリアとして用いられる。
【0041】
なお、制御回路31は、入力される各種アナログ信号をデジタルデータに変換するためのA/D変換器(不図示)を備えている。電流検出素子33から入力される電流検出信号や、監視IC30から入力される電圧検出信号、温度検出回路34から入力される温度検出信号は、A/D変換器によりA/D変換されて演算部41に入力される。演算部41は、それらA/D変換後の入力信号に基づいて、各セル電圧、バッテリ電圧、バッテリ10からの放電電流、バッテリ10への充電電流、及びバッテリ温度を検出することができる。
【0042】
またバッテリパック1には、Vcc入力端子6、AS出力端子7、及び通信端子8が備えられている。バッテリパック1が充電器60に装着されたとき、バッテリパック1のVcc入力端子6は充電器60のVcc出力端子69と接続され、バッテリパック1の通信端子8は充電器60の通信端子68と接続される。バッテリパック1が工具本体80に接続されたときは、バッテリパック1のAS出力端子7が工具本体80のAS入力端子88に接続される。
【0043】
また、バッテリパック1は、装着検出部36を備えている。装着検出部36は、バッテリパック1が充電器60に装着されているか否かを検出し、その検出結果を示す装着検出信号を制御回路31へ出力する。バッテリパック1が充電器60に装着されたときに充電器60内で制御電圧Vccが生成されていれば、その制御電圧Vccが充電器60からVcc入力端子6を介して装着検出部36に入力される。装着検出部36は、制御電圧Vccが入力されていない場合は、充電器60に装着されていないことを示す装着検出信号を出力し、制御電圧Vccが入力されている場合は、充電器60に装着されていることを示す装着検出信号を出力する。制御回路31は、装着検出部36から入力される装着検出信号に基づいて、バッテリパック1が充電器60に装着されているか否かを認識することができる。
【0044】
また、制御回路31は、バッテリパック1の異常を検出する異常検出機能を備えている。具体的には、監視IC30から入力される電圧検出信号、温度検出回路34から入力される温度検出信号、電流検出素子33から入力される電流検出信号などに基づいて、バッテリパック1内に異常が発生しているか否かを判断する。そして、異常が発生していると判断した場合は、AS(オートストップの略称)信号を出力したり、異常が発生していることを示す異常検出データを出力したりする。
【0045】
なお、AS信号は、バッテリパック1が工具本体80に装着されてバッテリ10から工具本体80への放電が行われている間に異常が発生すると出力され、AS出力端子7を介して工具本体80へ入力される。一方、異常検出データは、バッテリパック1が充電器60に装着されている場合に出力され、通信端子8を介して充電器60に入力される。その他、制御回路31は、充電器60が装着されている間、必要に応じて、通信端子8を介して充電器60と各種データ通信を行うことができる。
【0046】
バッテリパック1において、Vcc入力端子6には、ダイオード38のアノードが接続されている。このダイオード38のカソードは、レギュレータ32に接続されている。また、バッテリパック1において、正極端子3には、ダイオード37のアノードが接続されている。このダイオード37のカソードは、レギュレータ32に接続されている。即ち、レギュレータ32には、充電器60からの制御電圧Vccがダイオード38を介して入力可能であると共に、バッテリ電圧がダイオード37を介して入力可能である。
【0047】
レギュレータ32は、バッテリパック1が充電器60に装着されているとき、充電器60から供給される制御電圧Vccよりもバッテリ電圧の方が高いときには、バッテリ10から電源供給を受けて動作し、電源電圧を生成する。また、レギュレータ32は、充電器60から供給される制御電圧Vccよりもバッテリ電圧の方が低くなっているときには、充電器60から供給される制御電圧Vccにより動作し、電源電圧を生成する。レギュレータ32で生成される電源電圧は、制御回路31や監視IC30を含む、バッテリパック1内の各部の動作用電源として用いられる。
【0048】
また、バッテリパック1には、残容量LED制御回路35が備えられている。残容量LED制御回路35は、より具体的には、所定数(例えば3つ)のLED(不図示)と、各LEDへの通電を制御(つまり各LEDの点灯・消灯を制御)する制御部とを有する。なお、残容量LED制御回路35は備えられていなくてもよい。
【0049】
制御回路31は、監視IC30から入力される電圧検出信号に基づいて、バッテリ10の残容量を演算し、その演算した残容量に応じた残容量信号を残容量LED制御回路35へ出力する。残容量LED制御回路35は、制御回路31から入力される残容量信号に基づき、その残容量信号が示す残容量に応じた点灯パターンにて各LEDを点灯又は消灯させる。
【0050】
(2)充電器60の構成
図1に示すように、充電器60は、電源回路61と、充電制御回路62と、正極端子66と、負極端子67と、通信端子68と、Vcc出力端子69と、を備えている。
【0051】
充電制御回路62は、本実施形態では、バッテリパック1内の制御回路31と同様、マイコンにて構成されており、通信端子68に接続されている。この通信端子68は、バッテリパック1が充電器60に装着された際に、バッテリパック1の通信端子8と接続され、これにより充電制御回路62とバッテリパック1の制御回路31とがデータ通信可能となる。
【0052】
電源回路61は、外部の商用電源(例えばAC100V電源)等から電源供給を受け、バッテリパック1内のバッテリ10を充電するための充電電力を生成する。電源回路61にて生成された充電電力は、充電器60にバッテリパック1が装着されているときに、正極端子66及び負極端子67を介してバッテリパック1へ供給される。
【0053】
また、電源回路61には、制御電圧Vccを生成する制御用電源回路が内蔵されている。制御用電源回路にて生成された制御電圧Vccは、充電制御回路62の動作用電源として用いられるほか、既述の通り、Vcc出力端子69を介してバッテリパック1にも供給される。
【0054】
充電制御回路62は、バッテリ10への充電電力の供給時に、バッテリパック1の制御回路31からデータ通信にてバッテリ電圧や充電電流などの各種データを取得し、その取得した各種データに従って充電制御を実行する。
【0055】
(3)工具本体80の構成
図2に示すように、工具本体80は、バッテリパック1が装着されてバッテリパック1からの電力供給が可能な状態のとき、バッテリパック1と共に全体として電動工具として機能する。工具本体80は、モータ81と、トリガスイッチ82と、スイッチング素子83と、ドライブ回路84と、正極端子86と、負極端子87と、AS入力端子88とを備えている。
【0056】
正極端子86は、トリガスイッチ82を介してモータ81の一端に接続されている。負極端子87は、スイッチング素子83を介してモータ81の他端に接続されている。
トリガスイッチ82は、工具本体80に設けられた図示しないトリガを使用者が操作することによりオン・オフされる。即ち、使用者がトリガを引くとオンし、使用者がトリガを離すとオフされる。トリガスイッチ82のオン・オフの状態やトリガの引き量などの、トリガスイッチ82に関する各種情報は、ドライブ回路84に入力される。
【0057】
ドライブ回路84は、トリガスイッチ82のオン・オフの状態やトリガの引き量などに応じてスイッチング素子83をオン・オフ制御(デューティ制御)することにより、バッテリ10からモータ81への通電(放電)を開始させ、これによりモータ81をトリガの引き量に応じた回転速度で回転させる。モータ81が回転すると、その回転駆動力によって図示しない工具要素が動作し、これにより電動工具としての機能が発揮される。トリガスイッチ82がオフされると、ドライブ回路84は、スイッチング素子83をオフさせることで、バッテリパック1からモータ81への放電を停止させ、モータ81を停止させる。
【0058】
また、ドライブ回路84は、モータ81への通電を実行している間に、バッテリパック1からAS入力端子88を介してAS信号が入力された場合は、モータ81への通電を強制停止させる。
【0059】
(4)バランシング制御の説明
次に、バッテリパック1の制御回路31が備えている各種制御機能のうち、特に、各セル電圧のばらつきを低減するためのバランシング制御について、詳しく説明する。バランシング制御は、各セル電圧に基づいて放電の必要なセルの有無を判断し、放電の必要なセルが有った場合にそのセルをバランシング対象のセルに決定して、そのセルのバランシング(放電による容量低減、ひいてはセル電圧低下)を行う制御である。
【0060】
本実施形態では、バランシング制御におけるバランシング対象のセルの決定は、基本的には、バッテリ10から工具本体80へモータ81駆動用の放電(電力供給)が行われている間(以下「負荷放電時」ともいう)に行われる。具体的には、負荷放電時に、各セル電圧を監視し、各セル電圧のうち最小セル電圧が閾値以下になった場合であって且つその最小セル電圧との電圧差が規定値以上のセルがある場合に、そのセルをバランシング対象に決定する。以下、負荷放電時にバランシング対象に決定されたセルを「有負荷バランシング対象セル」ともいう。
【0061】
ただし、負荷放電時に有負荷バランシング対象セルが決定されなかった場合は、バッテリパック1が充電器60に装着された際に、その装着時の各セル電圧(つまり開放電圧)に基づいて、バランシング対象のセルの有無を判断する。
【0062】
そして、バッテリ10が使用されず安定した状態に移行した場合に、バランシング対象セルに対するバランシングを実行する。具体的には、各放電制御部21〜25のうちバランシング対象セルに対応した放電制御部を動作させて、そのバランシング対象セルを放電さることにより、そのバランシング対象セルの容量を低減(ひいてはセル電圧を低下)させる。
【0063】
上述したバランシング制御を実現するためにバッテリパック1の制御回路31が実行するメイン処理について、
図3を用いて説明する。レギュレータ32から制御回路31へ電源電圧が供給されることにより制御回路31が起動(詳しくは演算部41が起動)すると、演算部41は、メモリ42から
図3のメイン処理のプログラムを読み込んで実行する。
【0064】
制御回路31の演算部41は、
図3のメイン処理を開始すると、S110で、放電電流が有るか否か、即ち負荷放電時であるか否か判断する。放電電流がない場合、即ち工具本体80へ放電が行われていない場合は(S110:NO)、S120に進む。放電電流が有る場合、即ち負荷放電時である場合は(S110:YES)、S140で、放電時対象セル決定処理を実行する。この放電時対象セル決定処理は、負荷放電時の各セル電圧に基づいて有負荷バランシング対象セルを決定するための処理である。
【0065】
S140の放電時対象セル決定処理の詳細は、
図4に示す通りである。放電時対象セル決定処理に移行すると、S210で、バッテリ温度が規定温度内にあるか否か判断する。例えば、バッテリ温度の下限値を設定しておき、バッテリ温度がその下限値以上ならば規定温度内にあると判断することができる。また例えば、下限値及び上限値を設定しておき、バッテリ温度が下限値以上且つ上限値以下の範囲内ならば規定温度内にあると判断してもよい。
【0066】
バッテリ温度が規定温度内にない場合は(S210:NO)、放電時対象セル決定処理を終了し、S120(
図3)へ移行する。バッテリ温度が規定温度内にない場合は、バランシング対象セルを適切に判定できない可能性がある。特に、バッテリ温度が非常に低いと、セルの内部インピーダンスも非常に高くなる。そのため、負荷放電時については、バッテリ温度が規定温度内にある場合に、バランシング対象セルを判定するようにしている。
【0067】
バッテリ温度が規定温度内にある場合は(S210:YES)、S220で、監視IC30から現在の各セル電圧を取得し、そのうち最小セル電圧が所定の閾値以下か否か判断する。最小セル電圧が閾値を超えている場合は(S220:NO)、放電時対象セル決定処理を終了し、S120(
図3)へ移行する。放電末期のセルのセル電圧を基準にしてバランシング対象セルの有無を判定するために、S220の判断処理を行っている。放電末期のセルがない場合は、バランシングを行う必要性は比較的少ないため、本実施形態ではバランシングは実行しないようにしている。ただし、最小セル電圧が閾値を超えている場合にバランシングを行わないことは必須ではなく、最小セル電圧が閾値を超えていてもバランシング対象セルを判断し、必要に応じてバランシングを行うようにしてもよい。
【0068】
最小セル電圧が閾値以下の場合は(S220:YES)、S230に進む。S230では、各セル11〜15のうち、セル電圧が「最小セル電圧+規定値」以上のセルが有るか否か判断する。セル電圧が「最小セル電圧+規定値」以上のセルがない場合は(S230:NO)、放電時対象セル決定処理を終了し、S120(
図3)へ移行する。セル電圧が「最小セル電圧+規定値」以上のセルが有る場合は(S230:YES)、S240に進む。
【0069】
S240では、各セル11〜15のうち、セル電圧が「最小セル電圧+規定値」以上のセルを、バランシング対象セルに決定し、メモリ42に記憶する。ここで決定されるバランシング対象セルは、負荷放電時に決定されるものであるため、有負荷バランシング対象セルである。
【0070】
S250では、パラメータ演算処理を実行する。ここでいうパラメータとは、バランシング対象セル毎に演算される値であって、バランシングの実施の優先順位を示す値である。S250のパラメータ演算処理の詳細は、
図5に示す通りである。
【0071】
図5に示すように、本実施形態では、パラメータ演算処理として3通りの処理方法がある。そして、3通りの処理方法のうち何れかを採用することができる。3通りのパラメータ演算処理について、順次説明する。
【0072】
まず、
図5(A)に示すパラメータ演算処理(以下「第1のパラメータ演算処理」ともいう)について説明する。第1のパラメータ演算処理に移行すると、S310で、S240で決定されたバランシング対象セルのうち、まだ第1バラツキデータを演算していないバランシング対象セルを1つ選択する。なお、第1バラツキデータとは、S320で演算されるデータである。
【0073】
S320では、S310で選択したバランシング対象セルについて、第1バラツキデータを演算する。具体的には、当該バランシング対象セルのセル電圧から最小セル電圧を減算することで、当該バランシング対象セルの第1バラツキデータを演算する。
【0074】
S330では、バランシング対象セル全てについて第1バラツキデータを演算済みか否か判断する。まだ第1バラツキデータを演算していないバランシング対象セルがあれば(S330:NO)、S310に戻る。
【0075】
バランシング対象セル全て、第1バラツキデータを演算済みならば(S330:YES)、S340に進む。S340では、バランシング対象セル毎に、そのバランシング対象セルの第1バラツキデータをパラメータとしてメモリ42に記憶する。つまり、バランシング対象セル毎に対応するパラメータを紐付けてメモリ42に記憶する。後述するS440及びS550の処理も同様である。S340の処理が終わると、
図4の放電時対象セル決定処理が終了することになり、よってS120(
図3)に進む。
【0076】
次に、
図5(B)に示すパラメータ演算処理(以下「第2のパラメータ演算処理」ともいう)について説明する。第2のパラメータ演算処理に移行すると、S410で、S240で決定されたバランシング対象セルのうち、まだ第2バラツキデータを演算していないバランシング対象セルを1つ選択する。なお、第2バラツキデータとは、S420で演算されるデータである。
【0077】
S420では、S410で選択したバランシング対象セルについて、第2バラツキデータを演算する。具体的には、当該バランシング対象セルのセル電圧から閾値を減算することで、当該バランシング対象セルの第2バラツキデータを演算する。なお、ここで用いる閾値は、S220(
図4)で用いる閾値と同じである。
【0078】
S430では、バランシング対象セル全てについて第2バラツキデータを演算済みか否か判断する。まだ第2バラツキデータを演算していないバランシング対象セルがあれば(S430:NO)、S410に戻る。
【0079】
バランシング対象セル全て、第2バラツキデータを演算済みならば(S430:YES)、S440に進む。S440では、バランシング対象セル毎に、そのバランシング対象セルの第2バラツキデータをパラメータとしてメモリ42に記憶する。S440の処理が終わると、
図4の放電時対象セル決定処理が終了することになり、よってS120(
図3)に進む。
【0080】
次に、
図5(C)に示すパラメータ演算処理(以下「第3のパラメータ演算処理」ともいう)について説明する。第3のパラメータ演算処理において、S510〜S530の処理は、第1のパラメータ演算処理におけるS310〜S330と同じであるため、説明を省略する。S540では、第1バラツキデータの大きい順に、各バランシング対象セルの順位付けを行う。即ち、第1バラツキデータが最も大きい(つまり最小セル電圧との差が最も大きい)バランシング対象セルから順に1位、2位、・・・と順位付けしていく。
【0081】
S550では、バランシング対象セル毎に、そのバランシング対象セルにつけられた上記順位をパラメータとしてメモリ42に記憶する。S550の処理が終わると、
図4の放電時対象セル決定処理が終了することになり、よってS120(
図3)に進む。
【0082】
本実施形態では、S250のパラメータ演算処理として
図5に示した3通りのパラメータ演算処理のうちどれを採用するかについては、予め決められており、その決められたパラメータ演算処理にて、バランシング対象セル(有負荷バランシングセル)毎のパラメータが演算され、記憶される。
【0083】
S120では、充電器60の接続時か否か、即ちバッテリパック1が充電器60に接続された(但し充電開始前)か否か判断する。この判断は、装着検出部36から入力される装着検出信号に基づいて行う。即ち、装着検出部36から、充電器60が装着されていないことを示す装着検出信号が入力されている場合には、バッテリパック1が充電器60に接続されていないと判断し(S120:NO)、S130に進む。装着検出部36から、充電器60が装着されていることを示す装着検出信号が入力されている場合には、バッテリパック1が充電器60に接続されたと判断し(S120:YES)、S150で、充電前対象セル決定処理を実行する。この充電前対象セル決定処理は、充電器60が接続されて充電が開始される前の各セル電圧(開放電圧)に基づいてバランシング対象セルを決定するための処理である。
【0084】
S150の充電前対象セル決定処理の詳細は、
図6に示す通りである。充電前対象セル決定処理に移行すると、S610で、有負荷バランシング対象セルが有るか否か判断する。有負荷バランシング対象セルが1つでもある場合は(S610:YES)、充電前対象セル決定処理を終了し、S130(
図3)へ移行する。つまり、有負荷バランシング対象セルが1つでもある場合は、充電前の開放電圧に基づくバランシング対象セルの決定は行わない。有負荷バランシング対象セルが1つもない場合に、S620以降の処理を経て、開放電圧に基づくバランシング対象セルの有無判断を行う。
【0085】
即ち、有負荷バランシングセルがない場合は(S610:NO)、S620で、一定時間放電電流が無いか否か、即ちモータ81への放電が行われていない時間が一定時間以上継続しているか否か判断する。放電電流の無い継続時間がまだ一定時間未満なら(S620:NO)、充電前対象セル決定処理を終了し、S130(
図3)へ移行する。つまり、放電が停止してからまだ一定時間経過していない場合は、各セル電圧がまだ安定していない可能性があるため、セル電圧に基づく各種の演算は行わない。放電電流の無い状態が一定時間以上継続している場合は(S620:YES)、S630に進む。
【0086】
S630では、監視IC30から現在の各セル電圧を取得し、各セル11〜15のうち、セル電圧が「最小セル電圧+規定値」以上のセルが有るか否か判断する。セル電圧が「最小セル電圧+規定値」以上のセルがない場合は(S630:NO)、充電前対象セル決定処理を終了し、S130(
図3)へ移行する。セル電圧が「最小セル電圧+規定値」以上のセルが有る場合は(S630:YES)、S640に進む。
【0087】
S640では、各セル11〜15のうち、セル電圧が「最小セル電圧+規定値」以上のセルを、バランシング対象セルに決定し、メモリ42に記憶する。そして、S650のパラメータ演算処理に進む。S650のパラメータ演算処理は、放電時対象セル決定処理におけるS250のパラメータ演算処理と全く同じであり、
図5に示す3通りのパラメータ演算処理のうち予め決められたパラメータ演算処理が実行される。S650のパラメータ演算処理の実行後は、S130(
図3)に進む。
【0088】
このように、有負荷バランシング対象セルが1つもない場合は、充電前の開放電圧に基づいてバランシング対象セルの有無を判断し、バランシング対象セルがある場合にはそのバランシング対象セル毎にパラメータを演算する。
【0089】
S130では、バッテリパック1の不使用状態が一定時間継続しているか否か判断する。具体的には、バッテリ10から工具本体80への放電及びバッテリ10の充電の何れも行われておらず制御回路31が待機状態にある時間が一定時間(例えば1分)継続しているか否かによって判断できる。
【0090】
バッテリパック1の不使用状態がまだ一定時間継続していない場合は(S130:NO)、S110に戻る。バッテリパック1の不使用状態が一定時間継続している場合は(S130:YES)、S160で、バランシング処理を実行する。
【0091】
S130の判断処理は、要するに各セル電圧が安定した状態であるか否かを判断する処理であるため、その処理の目的を達成できる限り、他の方法で判断を行うようにしてもよい。
【0092】
また、バッテリ10のバランシングは、S130で肯定判断された場合にS160の中で実行される。S160のバランシング処理の中では、後述するように、制御回路31はスリープモードに入り、動作を停止する。そして、そのスリープモードの期間中に(但し定期的なウェイクアップ時間を含む)バランシングが行われる。つまり、本実施形態では、制御回路31が通常動作をしている間は、バランシングは行われない。
【0093】
そのため、S130の判断処理は、スリープモード時にバランシングを行うべく、スリープモードへの移行タイミングであるか否かを判断する処理であるともいえる。
なお、制御回路31が通常動作しているときにバランシングを行わないことは必須ではなく、制御回路31の通常動作中であってもバランシングを行うようにしてもよい。つまり、例えば工具本体80への放電中であったり充電器60によるバッテリ10の充電中であっても、バランシングを行うようにしてもよい。ただし本実施形態では、制御回路31が通常動作中はバランシングを行わないようにしている。その理由は、バランシング実行中の各セル電圧は不安定な状態になっている可能性があり、そのような不安定なセル電圧に基づいて各種制御を行うと制御精度が低下する可能性があるからである。バランシングを実行しながらも各セル電圧を精度良く検出することは不可能ではないが、それを可能とするためには制御回路31或いは監視IC30として高価・高性能のものを採用する必要があり、コスト的に現実的ではない。
【0094】
S160のバランシング処理は、主に、バランシング対象セル1つずつ順に、バランシングを実行する処理である。ここで実行するバランシングは、バランシング対象セルに対応した放電制御部を規定時間動作させてそのバランシング対象セルを規定時間放電させることでそのバランシング対象セルの容量を低減(セル電圧を低下)させる動作である。
【0095】
S160のバランシング処理の詳細は、
図7に示す通りである。バランシング処理に移行すると、S710で、バランシング途中セルが有るか否か判断する。バランシング途中セルとは、バランシングが開始されたもののS810の処理でそのバランシングが一時停止されたセルを意味する。バランシング途中セルが有る場合は(S710:YES)、S720で、そのバランシング途中セルを実行対象セルに設定して、S750に進む。なお、S720では、バランシング途中セルに対して現時点ですでにどの程度の時間バランシングが進んでいるかを示す実行時間をメモリ42から読み込む処理も行う。この実行時間は、S810でバランシングを一時停止したときにメモリ42に記憶される。
【0096】
S710でバランシング途中セルが無い場合は(S710:NO)、S730で、バランシング対象セルがあるか否か判断する。バランシング対象セルがない場合は(S730:NO)、S830に進み、スリープモードに入る。つまり、予め決められた必要最小限の機能のみ維持させてそれ以外の機能の動作を停止する。ここで維持される機能として、少なくとも、スリープモードを解除して通常動作に復帰するための条件であるウェイクアップ条件の成否を判断する機能が含まれる。本実施形態では、一定時間(例えば0.5秒)経過する毎に定期的にウェイクアップするよう構成されている。また、バッテリパック1が充電器60に装着されて制御電圧Vccが入力された場合にもウェイクアップするよう構成されている。また、バッテリパック1が工具本体80に装着されてトリガスイッチ82がオンされた場合にもウェイクアップするよう構成されている。S830でスリープモードに移行した後、これら各種のウェイクアップ条件の何れかが成立した場合には、スリープモードから通常動作に復帰して、S840の処理を行う。
【0097】
S840では、ユーザアクションが有るか否か判断する。ここでいうユーザアクションとは、上述した各種のウェイクアップ条件のうち、少なくとも、充電器60の装着又はトリガスイッチ82のオンを意味する。ユーザアクションが無い場合は(S840:NO)、スリープモードが一定時間継続したことによってウェイクアップしたということである。この場合は、ウェイクアップ時に実行する処理として予め決められている処理を実行した後、再びS830でスリープモードに入る。ユーザアクションが有る場合は(S840:YES)、バランシング処理を終了して、S110(
図3)に戻る。
【0098】
S730で、バランシング対象セルが有る場合は(S730:YES)、S740に進む。S740では、バランシング対象セル毎のパラメータに基づき、バランシング実施の優先順位を設定する。そして、その優先順位の最も高いセルを実行対象セルに設定する。
【0099】
本実施形態においてパラメータの演算方法が3通りあることは既に述べた通りである。パラメータの演算が、
図5(A)に示す第1のパラメータ演算処理によって行われた場合は、パラメータとして第1バラツキデータが演算され、記憶されている。この場合、S740では、第1バラツキデータが大きい順に優先順位を設定する。つまり、第1バラツキデータが最も大きいセルが優先順位の1位となる。そして、その優先順位の最も高いバランシング対象セルを、実行対象セルに設定する。
【0100】
パラメータの演算が、
図5(B)に示す第2のパラメータ演算処理によって行われた場合は、パラメータとして第2バラツキデータが演算され、記憶されている。この場合、S740では、第2バラツキデータが大きい順に優先順位を設定する。つまり、第2バラツキデータが最も大きいセルが優先順位の1位となる。そして、その優先順位の最も高いバランシング対象セルを、実行対象セルに設定する。
【0101】
パラメータの演算が、
図5(C)に示す第3のパラメータ演算処理によって行われた場合は、パラメータとして第1バラツキデータの順位が演算され、記憶されている。この場合、S740では、その第1バラツキデータの順位をそのまま優先順位として設定する。つまり、第1バラツキデータが最も大きいセルが優先順位の1位となる。そして、その優先順位の最も高いバランシング対象セルを、実行対象セルに設定する。
【0102】
S750では、実行対象セルのバランシングを開始する。即ち、実行対象セルに対応した放電制御部21によるその実行対象セルの放電を開始させる。このとき、バランシングの実行時間の計時も開始する。ただし、実行対象セルがバランシング途中セルである場合には、S720の処理時にメモリ42から読み込んだ実行時間から計時を再開する。S750でバランシングを開始した後、S760で、S830と同じようにスリープモードに入る。スリープモード中も、実行対象セルのバランシング(即ち放電)は継続される。つまり、制御回路31は、実行対象セルに対応した放電制御部にバランシング(放電)の指示をした後、自身はスリープモードに入るのである。
【0103】
スリープモードへの移行後、ウェイクアップ条件成立によってウェイクアップすると、S770で、S840と同じようにユーザアクションが有るか否か判断する。ユーザアクションが無い場合は(S770:NO)、スリープモードが一定時間継続したことによってウェイクアップしたということである。この場合は、ウェイクアップ時に実行する処理として予め決められている処理を実行すると共に、S780で、バランシングの実行時間が規定時間を経過したか否か判断する。まだ規定時間経過していない場合は(S780:NO)、S760に戻る。
【0104】
バランシングの実行時間が規定時間経過している場合は(S780:YES)、S790で、実行対象セルのバランシングを停止(即ち放電を停止)する。そしてS800で、実行対象セルをバランシング対象セルから外す。つまり、メモリ42に記憶されているバランシング対象セルのうち、当該実行対象セル(即ち規定時間のバランシングが完了したセル)を削除する。これにより、メモリ42に記憶されている、バランシングを行うべきバランシング対象セルの数は、1つ減ることになる。S800の処理後はS710に戻る。
【0105】
S770で、ユーザアクションが有る場合は(S770:YES)、S810で、現在バランシング実行中の実行対象セルのバランシングを一時停止する。このとき、その実行対象セルの現在までのバランシング実行時間をメモリ42に記憶する。S820では、S810でバランシングが一時停止された実行対象セルを、バランシング途中セルに設定する。S820の処理後は、S110(
図3)に戻る。
【0106】
(5)実施形態の効果
以上説明した本実施形態のバッテリパック1によれば、工具本体80に装着されて工具本体80のトリガスイッチ82がオンされ、バッテリ10からモータ81へ放電(電力供給)されているときに、各セル11〜15の各セル電圧が検出され、それら各セル電圧に基づいて有負荷バランシング対象セルの決定が行われる。負荷放電時に検出される各セル電圧は、セルの内部インピーダンスが加味された値である。そのため、各セル11〜15の内部インピーダンスが加味された適切な決定が行われ、有負荷バランシング対象セルを適切に決定することができる。
【0107】
また、本実施形態のバッテリパック1では、負荷放電時の各セル電圧に基づく有負荷バランシング対象セルの決定は、バッテリ温度が規定温度範囲内にある場合に行われる。バッテリ温度が規定温度範囲内にあるときは各セル11〜15の内部インピーダンスも安定した状態にある。そのため、バッテリ温度が規定温度範囲内にあるときに各セル電圧を検出してバランシング対象セルの有無を判定することで、有負荷バランシング対象セルをより適切に決定することが可能となる。
【0108】
また、本実施形態のバッテリパック1では、負荷放電時に有負荷バランシング対象セルが1つも決定されなかった場合は、各セル11〜15の開放電圧に基づくバランシング対象セルの有無の判定が行われる。そして、その判定の結果、バランシングを行うべきセルがあれば、そのセルがバランシング対象セルに決定され、バランシングが実行される。
【0109】
つまり、本実施形態では、負荷放電時に各セル電圧を検出して有負荷バランシング対象セルの有無を判定することを基本としつつ、有負荷バランシング対象セルがなかった場合には各セル11〜15の開放電圧に基づいてバランシング対象セルの有無を判定する。そのため、バランシングが必要なセルをより適切に判定することができる。
【0110】
また、本実施形態のバッテリパック1では、バランシング対象セルが決定された場合、その決定された有負荷バランシング対象セル毎にパラメータが演算され、メモリ42に記憶される。そして、バランシングは、メモリ42に記憶されているバランシング対象セルに対して行われる。そのため、メモリ42の記憶内容を参照することで、バランシングの必要なセルに対するバランシングを過不足無く確実に実行させることができる。
【0111】
また、本実施形態では、パラメータとして、第1バラツキデータ、第2バラツキデータ、及び第1バラツキデータの大きい順の順位、のうち何れかが演算される。これらパラメータはいずれも、放電実施の優先順位を決める根拠となり得る情報である。そのため、バランシング対象セル毎にパラメータを記憶しておくことで、特にバランシング対象セルが複数ある場合に、どのバランシング対象セルからバランシングを実施すべきかを適切且つ容易に判断することができ、適切な順序でバランシングを実施することができる。
【0112】
パラメータとして、第1バラツキデータ又は第2バラツキデータを演算するようにすると、そのデータの大きい順にバランシングの実施順序を決めることができる。またその場合、何れかのバラツキデータを演算、記憶するという簡素な処理で済むため、制御回路31による、バランシング制御の処理負荷を抑制でき、制御回路31が実行する他の各種処理への影響を抑制できる。
【0113】
一方、パラメータとして、第1バラツキデータの大きい順の順位を演算するようにすると、バランシングを実施する際にはその順位に従って実施できるため、後にバランシングを実施する際の実施順序をより容易に決めることができる。
【0114】
また、本実施形態のバッテリパック1では、バッテリ10への充電及びバッテリ10から工具本体80への放電が予め設定された一定時間以上行われていないときに、バランシング対象セルのバランシングが実施される。そのため、制御回路31が実行するバッテリ10の充電制御や工具本体80への放電制御などの各種の通常処理に対してバランシング制御が影響を及ぼしてしまうことを抑制することができる。
【0115】
なお、本実施形態において、各放電制御部21〜25は本発明のセル放電部の一例に相当する。監視IC30及び演算部41により本発明の電圧検出部の一例が構成される。また、演算部41は、本発明の対象セル判定部、放電制御部、及び無負荷時判定部の一例に相当する。メモリ42は本発明の記憶部の一例に相当する。温度検出回路34は本発明の温度検出部の一例に相当する。
【0116】
[他の実施形態]
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されることなく、種々の形態を採り得る。
【0117】
(1)上記実施形態では、
図4や
図6で説明したように、セル電圧が「最小セル電圧+規定値」以上のセルをバランシング対象セルに決定したが、バランシング対象セルの決定方法は上記方法に限定されない。
【0118】
例えば、セル電圧が「閾値+規定値」以上のセルをバランシング対象セルに決定してもよい。
図8に、セル電圧が「閾値+規定値」以上のセルをバランシング対象セルに決定するよう構成された放電時対象セル決定処理の一例を示す。
図8の放電時対象セル決定処理において、S910〜S920の処理は、
図4のS210〜S220と同じである。S930では、各セル11〜15のうち、セル電圧が「閾値+規定値」以上のセルが有るか否か判断する。セル電圧が「閾値+規定値」以上のセルがない場合は(S930:NO)、放電時対象セル決定処理を終了する。セル電圧が「閾値+規定値」以上のセルが有る場合は(S930:YES)、S940に進む。S940では、各セル11〜15のうち、セル電圧が「閾値+規定値」以上のセルを、バランシング対象セル(有負荷バランシング対象セル)に決定する。そして、S950で、
図4のS250と同様にパラメータ演算処理を実行する。
【0119】
図示は省略するが、
図6の充電前対象セル決定処理においても、セル電圧が「閾値+規定値」以上のセルをバランシング対象セルに決定してもよい。
また例えば、閾値よりも低い所定の基準値を設定し、セル電圧が「基準値+規定値」以上のセルをバランシング対象セルに決定してもよい。つまり、最小セル電圧との差が大きくてその差を縮めるべきセルを適切に判定できる限り、その判定方法としては種々の方法を採用できる。
【0120】
(2)
図5(C)に示した第3のパラメータ演算処理では、第1バラツキデータに基づいて順位付けを行い、その順位をパラメータとしたが、他の方法で順位付けを行ってもよい。例えば、第2バラツキデータに基づいて順位付けを行ってもよい。つまり、結果として最小セル電圧との差が大きいセルほど上位に順位付けできる限り、具体的な順位付けの方法は適宜決めることができる。
【0121】
(3)また、バランシングの実施の優先順位を決める基準となるパラメータ自体、
図5に示した3種類のパラメータに限らず、他のパラメータであってもよい。つまり、
図7のS740において、最小セル電圧との差が大きいセルほど優先的に実行対象セルに設定される限り、パラメータとして具体的にどのような値を用いるかについては適宜決めることができる。
【0122】
(4)パラメータとして第1バラツキデータ又は第2バラツキデータを演算する場合は、バランシング対象セルのバランシングを行う際、バランシング対象セル毎に、バランシングの実施時間(即ち放電時間、ひいては放電容量)をパラメータに応じて適宜設定するようにしてもよい。
【0123】
(5)バッテリパック1の使用状態によっては、有負荷バランシング対象セルがまだ残っている状態で充電前対象セル決定処理が実行され、開放電圧に基づくバランシング対象セルの決定が行われる可能性がある。つまり、有負荷バランシング対象セルと、開放電圧に基づくバランシング対象セルとが混在する可能性がある。その場合にバランシングをどのような順序で行うかについては適宜決めることができる。例えば、あくまでも有負荷バランシング対象セルのバランシングを優先させ、有負荷バランシング対象セルが全てバランシング完了した後に、開放電圧に基づくバランシング対象セルのバランシングを順次行うようにしてもよい。また例えば、混在している全てのバランシング対象セルについて第1バラツキデータ又は第2バラツキデータを演算し、その演算結果の大きい順にバランシングを実施するようにしてもよい。
【0124】
またそもそも、放電時対象セル決定処理によって有負荷バランシング対象セルが決定された場合は、その決定された有負荷バランシング対象セルの全てについてバランシングが完了するまでは、充電前対象セル決定処理を実行しないようにしてもよい。さらに、その決定された有負荷バランシング対象セルの全てについてバランシングが完了するまでは、放電時対象セル決定処理についても新たに実行しないようにしてもよい。
【0125】
逆に、放電時対象セル決定処理で有負荷バランシング対象セルが決定されなかったことにより充電前対象セル決定処理でバランシング対象セルが決定された場合は、その決定されたバランシング対象セルの全てについてバランシングが完了するまでは、放電時対象セル決定処理を実行しないようにしてもよい。さらに、その決定されたバランシング対象セルの全てについてバランシングが完了するまでは、充電前対象セル決定処理についても新たに実行しないようにしてもよい。また、充電前対象セル決定処理は行わないようにしてもよい。つまり、
図3のメイン処理において、S120及びS150の処理を省き、S110で否定判定された場合及びS140の処理後はS130に進むようにしてもよい。
【0126】
(6)バッテリパック1は、残容量LED制御回路35を動作させてバッテリ10の残容量を表示させるための残容量表示スイッチを備えていてもよい。つまり、残容量表示スイッチの押下時を含む所定の表示タイミング以外は通常は残容量は表示されないようにし、残容量表示スイッチが押下されるなど所定の表示タイミングとなった場合に残容量を表示させるようにしてもよい。
【0127】
その場合、残容量表示スイッチが押下されることも、制御回路31のウェイクアップ条件の1つとし、スリープモード中に残容量表示スイッチが押下されたらウェイクアップするようにしてもよい。そして、
図7のS770やS840におけるユーザアクションとして、残容量表示スイッチの押下も含めるようにしてもよい。
【0128】
(7)バッテリ10を構成する各セル11〜15は、リチウムイオン2次電池セル以外の他の2次電池セルであってもよい。
また、バッテリ10を構成する各セルの直列接続数は、上記実施形態のような5個に限定されない。また、複数のセルが直列接続されてなるブロックが複数並列接続された構成であってもよい。バッテリ10がそのような構成であっても、本発明を適用して、ブロック毎に或いはバッテリ10全体として、バランシング制御を実行可能である。
【0129】
(8)本発明が適用されたバッテリパックを装着可能な電動機械器具は、上記実施形態の工具本体80に限定されない。例えば充電式ドライバドリル、充電式インパクトドライバ、充電式インパクトレンチ、充電式草刈機、充電式グラインダー、充電式マルノコ、充電式レシプロソーなど、バッテリから電力供給を受けて駆動される各種の電動機械器具に対して、本発明が適用されたバッテリパックを装着可能である。
【0130】
(9)本発明は、上記実施形態のバッテリパック1のような、充電器60や工具本体80に対して着脱可能なバッテリパックへの適用に限定されない。例えば、バッテリを内蔵した電動工具に対しても、その内蔵バッテリを対象として本発明を適用可能である。
【0131】
(10)上記実施形態における1つの構成要素が有する機能を複数の構成要素として分散させたり、複数の構成要素が有する機能を1つの構成要素に統合させたりしてもよい。また、上記実施形態の構成の少なくとも一部を、同様の機能を有する公知の構成に置き換えてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。なお、特許請求の範囲に記載した文言のみによって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。