(57)【特許請求の範囲】
【請求項１】
充放電可能な複数のセルを直列接続してなるバッテリと、
前記複数のセルを個々に放電させるセル放電部と、
前記バッテリから電動機械器具へその駆動用電力が供給されているときに、前記複数のセル毎にその電圧であるセル電圧をそれぞれ検出する電圧検出部と、
前記複数のセルのうち、前記電圧検出部により検出された前記セル電圧が所定の閾値以下であるセルが少なくとも１つある場合に、その閾値以下のセル電圧のうち最も低いセル電圧を最小セル電圧として、その最小セル電圧よりも規定値以上高いか又は前記閾値よりも前記規定値以上高いセル電圧の他のセルが少なくとも１つあった場合、その少なくとも１つのセルを、各前記セル電圧のばらつきを低減させるために放電させるべき対象セルと判定し、前記電圧検出部により検出された前記セル電圧が前記閾値以下であるセルがない場合は前記対象セルの判定を行わない、対象セル判定部と、
前記対象セル判定部により前記対象セルと判定されたセルを前記セル放電部によって放電させる放電制御部と、
を備える、電動機械器具用バッテリパック。
【請求項２】
請求項１に記載の電動機械器具用バッテリパックであって、
前記バッテリの温度を検出する温度検出部を備え、
前記電圧検出部は、前記温度検出部により検出された前記バッテリの温度が規定温度範囲内の場合に、前記複数のセル毎に前記セル電圧を検出する、
電動機械器具用バッテリパック。
【請求項３】
請求項１又は請求項２に記載の電動機械器具用バッテリパックであって、
情報を記憶可能な記憶部を備え、
前記対象セル判定部は、前記対象セルと判定したセルが少なくとも１つあった場合は、その少なくとも１つの対象セルを前記記憶部に記憶し、
前記放電制御部は、前記記憶部に記憶されている前記少なくとも１つの対象セルをそれぞれ前記セル放電部によって放電させる、
電動機械器具用バッテリパック。
【請求項４】
請求項３に記載の電動機械器具用バッテリパックであって、
前記対象セル判定部は、前記対象セルと判定したセルが少なくとも１つあった場合、前記対象セル毎に、前記放電制御部による放電実施の優先順位を示すパラメータを演算し、そのパラメータを前記対象セル毎に前記記憶部に記憶する、
電動機械器具用バッテリパック。
【請求項５】
請求項４に記載の電動機械器具用バッテリパックであって、
前記対象セル判定部は、前記対象セル毎の前記パラメータとして、前記対象セルのセル電圧から前記最小セル電圧を減算した値を示す第１バラツキデータ、又は前記対象セルのセル電圧から前記閾値を減算した値を示す第２バラツキデータを演算し、前記記憶部に記憶する、
電動機械器具用バッテリパック。
【請求項６】
請求項４に記載の電動機械器具用バッテリパックであって、
前記対象セル判定部は、前記対象セル毎の前記パラメータとして、前記対象セルのセル電圧から前記最小セル電圧を減算した値が大きい順の順位、又は前記対象セルのセル電圧から前記閾値を減算した値が大きい順の順位を演算し、前記記憶部に記憶する、
電動機械器具用バッテリパック。
【請求項７】
請求項１〜請求項６の何れか１項に記載の電動機械器具用バッテリパックであって、
前記放電制御部は、前記バッテリが予め設定された一定時間以上充電されておらず、且つ、前記電動機械器具への前記駆動用電力の供給が前記一定時間以上行われていないときに、前記セル放電部による前記対象セルの放電を実施する、
電動機械器具用バッテリパック。
【請求項８】
請求項１〜請求項７の何れか１項に記載の電動機械器具用バッテリパックであって、
前記対象セル判定部による判定の結果、前記対象セルが１つも判定されなかった場合に、前記バッテリから前記電動機械器具への前記駆動用電力の供給が行われていない期間における所定の判定タイミングで、各前記セル電圧を検出し、その検出した各セル電圧に基づいて、その各セル電圧のばらつきを低減させるために放電させるべきセルが有るか否か判定する無負荷時判定部を備え、
前記放電制御部は、前記無負荷時判定部によって放電させるべきセルが有ると判定された場合は、そのセルを前記対象セルとして、前記セル放電部によって放電させる、
電動機械器具用バッテリパック。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、充放電可能な複数のセルを直列接続してなるバッテリを備えた電動機械器具用バッテリパックに関する。
【背景技術】
【０００２】
この種の電動機械器具用バッテリパックにおいては、バッテリを過放電領域まで繰り返し使用すると、バッテリを構成するセルの間で容量アンバランスが進行し、バッテリの寿命が短くなるという問題がある。
【０００３】
上記問題に対し、セル毎にセルの電圧（以下「セル電圧」という）を測定し、各測定結果の中からセル電圧の最小値（以下「最小セル電圧」という）を抽出して、その最小セル電圧との差が規定電圧以上のセル電圧のセルを対象としてバランシングを行う技術が提案されている。バランシングとは、対象のセルを放電させることにより充電容量を低減させ、これにより各セル間のセル電圧のバラツキを低減する処理である（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−８１３１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の技術では、バッテリパックが充電器に挿入された時点で各セル電圧を測定している。この測定電圧は、各セルから負荷へ電流が供給されていない状態での電圧、即ち開放電圧である。つまり、特許文献１に記載の技術では、各セルの開放電圧を測定し、その開放電圧に基づいてバランシング対象のセルを決定している。
【０００６】
セルの開放電圧は、無負荷時（非通電時）の電圧であるため、セルの内部インピーダンスが反映されない。そのため、セルの内部インピーダンスの状態によっては、本来バランシングが不要なセルであるにもかかわらずバランシング対象とされて、不必要なバランシングが行われてしまう可能性がある。また、本来バランシングが必要なセルであるにもかかわらず、バランシング非対象とされて、バランシングできない可能性もある。
【０００７】
例えば、内部インピーダンスが高いセルの場合、開放時は他のセルよりもセル電圧が高いものの、放電時には内部インピーダンスの影響でセル電圧が大きく低下し、他のセルのセル電圧よりも低くなることがある。このようなセルが開放電圧に基づいてバランシング対象とされ、バランシング実行により容量が低下すると、放電時のセル電圧がより低下してしまい、他の正常なセルとの電圧差がより広がってしまう可能性がある。
【０００８】
逆に、内部インピーダンスが低いセルの場合、開放時と放電時のセル電圧差が小さいため、他のセルより多くの容量が入っていても開放時に他のセルよりも電圧が低くなってバランシング対象にならず、他の容量の少ないセルとの容量差を減らすことができない可能性がある。
【０００９】
本発明は上記課題に鑑みなされたものであり、バッテリを構成する複数のセルの電圧のばらつきを低減するバランシング機能を有する電動機械器具用バッテリパックにおいて、バランシングの実行対象のセルを決定するにあたり、各セルの内部インピーダンスを加味した適切な決定を行えるようにすることを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するためになされた本発明の電動機械器具用バッテリパックは、バッテリと、セル放電部と、電圧検出部と、対象セル判定部と、放電制御部と、を備える。
バッテリは、充放電可能な複数のセルが直列接続されて構成されている。セル放電部は、  複数のセルを個々に放電させる。電圧検出部は、バッテリから電動機械器具へその駆動用電力が供給されているときに、複数のセル毎にその電圧であるセル電圧をそれぞれ検出する。対象セル判定部は、複数のセルのうち、電圧検出部により検出されたセル電圧が所定の閾値以下であるセルが少なくとも１つある場合に、各セル電圧のばらつきを低減させるために放電させるべき対象セルの判定を行う。具体的には、閾値以下のセル電圧のうち最も低いセル電圧を最小セル電圧として、その最小セル電圧よりも規定値以上高いか又は閾値よりも規定値以上高いセル電圧の他のセルが少なくとも１つあった場合、その少なくとも１つのセルを対象セルと判定する。放電制御部は、対象セル判定部により対象セルと判定されたセルをセル放電部によって放電させる。
【００１１】
このように構成された電動機械器具用バッテリパックでは、電動機械器具への駆動用電力の供給が行われているとき、即ちバッテリから電動機械器具へその動作に必要な放電が行われているときに、そのときの各セル電圧に基づいて、セル放電部による放電（バランシング）の対象セルの判定が行われる。駆動用電力の供給時に検出される各セル電圧は、セルの内部インピーダンスが加味された値である。そのため、仮に開放電圧が相対的に非常に高くても、内部インピーダンスが高くて電動機械器具への放電時のセル電圧が低下するようなセル、即ちバランシングを行う必要のないセルが、対象セルとされてしまうことが抑制される。
【００１２】
従って、上記構成の電動機械器具用バッテリパックによれば、バランシングの実行対象のセルを決定するにあたり、各セルの内部インピーダンスを加味した適切な決定を行うことができる。
【００１３】
電動機械器具用バッテリパックは、バッテリの温度を検出する温度検出部を備えた構成であってもよい。その場合、電圧検出部は、温度検出部により検出されたバッテリの温度が規定温度範囲内の場合に、複数のセル毎のセル電圧を検出するようにしてもよい。
【００１４】
バッテリは、一般に、温度が低いほど内部インピーダンスが大きくなる。そのため、温度が低いときのセル電圧では対象セルを適切に判定できない可能性がある。そこで、セル電圧を適切に検出可能な規定温度範囲を予め設定しておき、バッテリ温度がその規定温度範囲内の場合に各セル電圧を検出するようにすることで、対象セルをより適切に決定することが可能となる。
【００１５】
電動機械器具用バッテリパックは、情報を記憶可能な記憶部を備え、対象セル判定部は、対象セルと判定したセルが少なくとも１つあった場合は、その少なくとも１つの対象セルを記憶部に記憶するようにしてもよい。そして、放電制御部は、記憶部に記憶されている少なくとも１つの対象セルをそれぞれセル放電部によって放電させるようにしてもよい。
【００１６】
このように、対象セルを記憶部に記憶して、その記憶部の内容に基づいて対象セルを放電させることで、対象セルに対する放電の実施を確実に行うことができる。
対象セル判定部は、対象セルと判定したセルが少なくとも１つあった場合、対象セル毎に、放電制御部による放電実施の優先順位を示すパラメータを演算し、そのパラメータを対象セル毎に記憶部に記憶するようにしてもよい。
【００１７】
パラメータを演算し記憶しておくことで、特に対象セルが複数ある場合に、どの対象セルから放電を実施すべきかを適切且つ容易に判断することができ、適切な順序で放電を実施することができる。
【００１８】
対象セル判定部が対象セル毎のパラメータとして具体的にどのような値を演算するかについては種々考えられる。例えば、パラメータとして、対象セルのセル電圧から最小セル電圧を減算した値を示す第１バラツキデータ、又は対象セルのセル電圧から閾値を減算した値を示す第２バラツキデータを演算し、記憶部に記憶するようにしてもよい。
【００１９】
第１バラツキデータ及び第２バラツキデータのいずれも、値が大きいほどそのセルを優先的に放電させるのが好ましい。そのため、パラメータとして第１バラツキデータ又は第２バラツキデータを演算、記憶することで、放電の順序を容易且つ適切に決めることができる。また、何れかのバラツキデータを演算、記憶するという簡素な処理で済むため、バッテリパックにおいて実施される他の各種処理への影響を抑制できる。
【００２０】
なお、各バラツキデータは、対象セルのセル電圧が大きいほど大きい値となる。そのため、対象セルのバランシングを行う際、パラメータに基づいてバランシングの実施順序を決めるのに加え、対象セル毎に、バランシングの実施時間（即ち放電時間、ひいては放電容量）をパラメータに応じて適宜設定するようにしてもよい。
【００２１】
また例えば、パラメータとして、対象セルのセル電圧から最小セル電圧を減算した値が大きい順の順位、又は対象セルのセル電圧から閾値を減算した値が大きい順の順位を演算し、記憶部に記憶するようにしてもよい。つまり、実質的に、上記第１バラツキデータの大きい順の順位、又は上記第２バラツキデータの大きい順の順位を、パラメータとして記憶する。このように、パラメータとして順位まで演算して記憶しておくことで、後にバランシングを実施する際の実施順序をより容易に決めることができる。
【００２２】
放電制御部は、バッテリが予め設定された一定時間以上充電されておらず、且つ、電動機械器具への駆動用電力の供給が一定時間以上行われていないときに、セル放電部による対象セルの放電を実施するようにしてもよい。
【００２３】
対象セルのバランシングを実施している間は、各セル電圧（特にバランシング実施中の対象セルのセル電圧）を正しく測定できない可能性がある。そのため、バランシングの実施中に、各セル電圧に基づいてバッテリの充電を制御したり電動機械器具への放電を制御したりすると、これら各種制御が正常に実行されなくなるおそれがある。そこで、バランシングは充電及び電動機械器具への駆動用電力の供給が一定時間以上行われていない場合に行うようにすることで、バッテリの充電制御や電動機械器具への放電制御などの各種の通常処理への影響を抑制することができる。
【００２４】
セルの充電容量や内部インピーダンスによっては、電動機械器具へ駆動用電力が供給されている状態では対象セルが決定されない可能性もある。その場合、バランシングが必要なセルはないとしてバランシングを行わないようにしてもよい。ただし、開放電圧の差が大きい場合にはその大きさによってはバランシングを実施した方がよい場合がある。
【００２５】
そこで、各セルの開放電圧に基づいて対象セルを判定する無負荷時判定部を備えるようにしてもよい。無負荷時判定部は、対象セル判定部による判定の結果、対象セルが１つも判定されなかった場合に、開放電圧に基づいてバランシングの要否を判定する。具体的には、バッテリから電動機械器具への駆動用電力の供給が行われていない期間における所定の判定タイミングで、各セル電圧を検出し、その検出した各セル電圧に基づいて、その各セル電圧のばらつきを低減させるために放電させるべきセルが有るか否か判定する。そして、放電制御部は、無負荷時判定部によって放電させるべきセルが有ると判定された場合は、そのセルを対象セルとして、セル放電部によって放電（バランシング）させる。
【００２６】
このように、電動機械器具への放電時に各セル電圧を検出して対象セルの有無を判定することを基本としつつ、対象セルがなかった場合には各セルの開放電圧に基づいて対象セルの有無を判定することで、バランシングを実施すべき対象セルをより適切に判定することができる。
【図面の簡単な説明】
【００２７】
【図１】実施形態の電動機械器具用バッテリパック及び充電器の回路構成を表すブロック図である。
【図２】実施形態の電動機械器具用バッテリパック及び工具本体の回路構成を表すブロック図である。
【図３】電動機械器具用バッテリパックで実行されるメイン処理のフローチャートである。
【図４】図３のメイン処理におけるＳ１４０の放電時対象セル決定処理のフローチャートである。
【図５】図４の放電時対象セル決定処理におけるＳ２５０、図６の充電前対象セル決定処理におけるＳ６５０、及び図８の放電時対象セル決定処理におけるＳ９５０のパラメータ演算処理のフローチャートである。
【図６】図３のメイン処理におけるＳ１５０の充電前対象セル決定処理のフローチャートである。
【図７】図３のメイン処理におけるＳ１６０のバランシング処理のフローチャートである。
【図８】放電時対象セル決定処理の他の実施例を示すフローチャートである。
【発明を実施するための形態】
【００２８】
以下に、本発明が適用された実施形態について、図面を用いて説明する。
（１）バッテリパック１の構成
図１及び図２に示すように、本実施形態の電動機械器具用バッテリパック（以下「バッテリパック」と略称する）１は、バッテリ１０を備える。バッテリ１０は、繰り返し充放電可能な複数のセルが直列接続されて構成されている。本実施形態のバッテリ１０においては、５つのセル１１、１２、１３、１４、１５が直列接続されている。なお、本実施形態の各セル１１〜１５は、例えばリチウムイオン２次電池セルである。
【００２９】
バッテリパック１の筐体は、充電器６０及び工具本体８０の何れかに選択的に着脱可能に構成されている。
バッテリ１０の正極は正極端子３に接続され、バッテリ１０の負極は負極端子４に接続されている。バッテリパック１を充電器６０に装着すると、図１に示すように、バッテリパック１の正極端子３が充電器６０の正極端子６６に接続され、バッテリパック１の負極端子４が充電器６０の負極端子６７に接続される。これにより、充電器６０からバッテリ１０への充電を行うことができる。
【００３０】
また、バッテリパック１を工具本体８０に装着すると、図２に示すように、バッテリパック１の正極端子３が工具本体８０の正極端子８６に接続され、バッテリパック１の負極端子４が工具本体８０の負極端子８７に接続される。これにより、バッテリ１０から工具本体８０への給電（換言すればバッテリ１０の放電）を行うことができる。
【００３１】
バッテリ１０には、バッテリ１０の状態を監視してその監視結果を制御回路３１へ出力する監視ＩＣ３０が接続されている。監視ＩＣ３０の主な機能（監視内容）は、各セル１１〜１５の電圧（セル電圧）及びバッテリ１０の電圧（バッテリ電圧）を検出してその検出結果を制御回路３１へ出力することである。各セル１１〜１５の両端はそれぞれ監視ＩＣ３０に接続されている。監視ＩＣ３０は、各セル１１〜１５の両端の電圧（即ちセル電圧）及びバッテリ電圧を検出し、その検出した各セル電圧及びバッテリ電圧に応じた電圧検出信号を制御回路３１に出力する。なお、制御回路３１が、各セル電圧に基づいてバッテリ電圧１０を演算する機能を備えている場合は、監視ＩＣ３０からは必ずしもバッテリ電圧を示す電圧検出信号を出力する必要はない。
【００３２】
監視ＩＣ３０による各セル電圧及びバッテリ電圧の検出タイミングは適宜決めることができる。例えば、周期的に検出するようにしてもよいし、所定の検出条件成立時に検出するようにしてもよいし、制御回路３１から検出指示を受けて検出するようにしてもよい。また、監視ＩＣ３０から制御回路３１への検出結果（電圧検出信号）の出力タイミングについても適宜決めることができる。例えば、各セル電圧及びバッテリ電圧を検出する度にその検出結果を出力（つまり周期的に出力）するようにしてもよいし、制御回路３１からの出力指示を受けて出力するようにしてもよい。制御回路３１が適切なタイミングで各セル電圧及びバッテリ電圧を適切に取得（例えば可能な限り最新の値を取得）できる限り、監視ＩＣ３０による検出タイミングや検出結果の出力タイミングは特に限定されない。
【００３３】
本実施形態では、制御回路３１で実行される後述の各種処理の中で、セル電圧を対象とした各種の判断処理や演算処理が行われるが、その際に用いるセル電圧は、その処理の都度監視ＩＣ３０から取得してもよいし、例えば周期的な取得によって既に取得している最新の値を用いてもよい。
【００３４】
バッテリ１０の各セル１１〜１５には、それぞれ個別に放電制御部２１，２２，２３，２４，２５が並列接続されている。各セル１１〜１５と、対応する各放電制御部２１〜２５とによって、セル毎にそれぞれ放電経路が形成される。各放電制御部２１〜２５は、放電電流制限用の抵抗を備えている。各セル１１〜１５はそれぞれ、正極と負極の両端が、対応する放電制御部の抵抗を介して接続されており、これにより、正極から抵抗を介して負極へ至る放電経路が形成される。
【００３５】
また、各放電制御部２１〜２５には、対応する放電経路を導通・遮断するためのスイッチが設けられている。このスイッチは、通常は開いており、よって放電経路は通常は遮断されている。このスイッチは、制御回路３１から各放電制御部２１〜２５に対して個別に出力される放電制御信号に従ってオン・オフされる。このスイッチが閉じると、放電経路が導通し、対応するセルの放電が行われる。即ち、対応するセルの正極から抵抗及びスイッチを介して負極へ電流が流れ、これによりそのセルの容量が低下していく。放電時の放電電流は、抵抗の抵抗値によって調整可能である。或いは、スイッチをデューティ駆動させることで放電電流の大きさを制御できるようにしてもよい。
【００３６】
各放電制御部２１〜２５は、上記のような構成により、対応するセルを略定電流にて放電させることができる。なお、各放電制御部２１〜２５の構成として、上述した抵抗及びスイッチを備えた構成はあくまでも一例である。
【００３７】
バッテリ１０の負極と負極端子４とを接続する負極側の接続ラインには、電流検出素子３３が接続されている。電流検出素子３３は、バッテリパック１が充電器６０に装着されている場合に充電器６０からの充電電流を検出したり、バッテリパック１が工具本体８０に装着されている場合に工具本体８０への放電電流を検出したりするために設けられている。電流検出素子３３は、制御回路３１に接続されている。具体的には、電流検出素子３３の両端の電圧が直接、又はその両端の電圧を示す信号が、電流検出信号として制御回路３１に入力される。
【００３８】
また、バッテリパック１は、バッテリ１０の温度（以下「バッテリ温度」という）を検出してその検出結果を示す温度検出信号を出力する温度検出回路３４を備えている。温度検出回路３４は、バッテリ温度に応じた信号を出力する検出素子（例えばサーミスタ）と、その検出素子からの信号を処理して温度検出信号を生成・出力する信号処理回路とを有する。このうち検出素子は、バッテリ温度を可能な限り正確に検出できるよう、バッテリ１０のごく近傍に設置されている。
【００３９】
制御回路３１は、演算部４１とメモリ４２とを備える。メモリ４２には、記憶内容を書き換えできない不揮発性のメモリ（例えばＲＯＭ）と、記憶内容を書き換え可能な揮発性のメモリ（例えばＲＡＭ）と、記憶内容を電気的に書き換え可能な不揮発性のメモリ（例えばフラッシュメモリ）が含まれる。メモリ４２のうち不揮発性のメモリには、主に、バッテリパック１が有する各種機能を実現するための各種プログラムやデータ等が記憶されている。各種プログラムやデータのうち一部がフラッシュメモリに記憶されていてもよい。
【００４０】
演算部４１は、メモリ４２に記憶されている各種プログラムを実行することによりバッテリパック１が有する各種機能を実現する。なお、制御回路３１の具体的なハードウェア構成は種々考えられるが、本実施形態では、制御回路３１は、ＣＰＵ、ＲＯＭ、ＲＡＭ等を中心とするワンチップのマイクロコンピュータ（マイコン）にて構成されている。そのため、演算部４１は、本実施形態ではＣＰＵである。メモリ４２のうち揮発性のメモリは、主に、演算部４１が各種プログラムを実行する際のワークエリアとして用いられる。
【００４１】
なお、制御回路３１は、入力される各種アナログ信号をデジタルデータに変換するためのＡ／Ｄ変換器（不図示）を備えている。電流検出素子３３から入力される電流検出信号や、監視ＩＣ３０から入力される電圧検出信号、温度検出回路３４から入力される温度検出信号は、Ａ／Ｄ変換器によりＡ／Ｄ変換されて演算部４１に入力される。演算部４１は、それらＡ／Ｄ変換後の入力信号に基づいて、各セル電圧、バッテリ電圧、バッテリ１０からの放電電流、バッテリ１０への充電電流、及びバッテリ温度を検出することができる。
【００４２】
またバッテリパック１には、Ｖｃｃ入力端子６、ＡＳ出力端子７、及び通信端子８が備えられている。バッテリパック１が充電器６０に装着されたとき、バッテリパック１のＶｃｃ入力端子６は充電器６０のＶｃｃ出力端子６９と接続され、バッテリパック１の通信端子８は充電器６０の通信端子６８と接続される。バッテリパック１が工具本体８０に接続されたときは、バッテリパック１のＡＳ出力端子７が工具本体８０のＡＳ入力端子８８に接続される。
【００４３】
また、バッテリパック１は、装着検出部３６を備えている。装着検出部３６は、バッテリパック１が充電器６０に装着されているか否かを検出し、その検出結果を示す装着検出信号を制御回路３１へ出力する。バッテリパック１が充電器６０に装着されたときに充電器６０内で制御電圧Ｖｃｃが生成されていれば、その制御電圧Ｖｃｃが充電器６０からＶｃｃ入力端子６を介して装着検出部３６に入力される。装着検出部３６は、制御電圧Ｖｃｃが入力されていない場合は、充電器６０に装着されていないことを示す装着検出信号を出力し、制御電圧Ｖｃｃが入力されている場合は、充電器６０に装着されていることを示す装着検出信号を出力する。制御回路３１は、装着検出部３６から入力される装着検出信号に基づいて、バッテリパック１が充電器６０に装着されているか否かを認識することができる。
【００４４】
また、制御回路３１は、バッテリパック１の異常を検出する異常検出機能を備えている。具体的には、監視ＩＣ３０から入力される電圧検出信号、温度検出回路３４から入力される温度検出信号、電流検出素子３３から入力される電流検出信号などに基づいて、バッテリパック１内に異常が発生しているか否かを判断する。そして、異常が発生していると判断した場合は、ＡＳ（オートストップの略称）信号を出力したり、異常が発生していることを示す異常検出データを出力したりする。
【００４５】
なお、ＡＳ信号は、バッテリパック１が工具本体８０に装着されてバッテリ１０から工具本体８０への放電が行われている間に異常が発生すると出力され、ＡＳ出力端子７を介して工具本体８０へ入力される。一方、異常検出データは、バッテリパック１が充電器６０に装着されている場合に出力され、通信端子８を介して充電器６０に入力される。その他、制御回路３１は、充電器６０が装着されている間、必要に応じて、通信端子８を介して充電器６０と各種データ通信を行うことができる。
【００４６】
バッテリパック１において、Ｖｃｃ入力端子６には、ダイオード３８のアノードが接続されている。このダイオード３８のカソードは、レギュレータ３２に接続されている。また、バッテリパック１において、正極端子３には、ダイオード３７のアノードが接続されている。このダイオード３７のカソードは、レギュレータ３２に接続されている。即ち、レギュレータ３２には、充電器６０からの制御電圧Ｖｃｃがダイオード３８を介して入力可能であると共に、バッテリ電圧がダイオード３７を介して入力可能である。
【００４７】
レギュレータ３２は、バッテリパック１が充電器６０に装着されているとき、充電器６０から供給される制御電圧Ｖｃｃよりもバッテリ電圧の方が高いときには、バッテリ１０から電源供給を受けて動作し、電源電圧を生成する。また、レギュレータ３２は、充電器６０から供給される制御電圧Ｖｃｃよりもバッテリ電圧の方が低くなっているときには、充電器６０から供給される制御電圧Ｖｃｃにより動作し、電源電圧を生成する。レギュレータ３２で生成される電源電圧は、制御回路３１や監視ＩＣ３０を含む、バッテリパック１内の各部の動作用電源として用いられる。
【００４８】
また、バッテリパック１には、残容量ＬＥＤ制御回路３５が備えられている。残容量ＬＥＤ制御回路３５は、より具体的には、所定数（例えば３つ）のＬＥＤ（不図示）と、各ＬＥＤへの通電を制御（つまり各ＬＥＤの点灯・消灯を制御）する制御部とを有する。なお、残容量ＬＥＤ制御回路３５は備えられていなくてもよい。
【００４９】
制御回路３１は、監視ＩＣ３０から入力される電圧検出信号に基づいて、バッテリ１０の残容量を演算し、その演算した残容量に応じた残容量信号を残容量ＬＥＤ制御回路３５へ出力する。残容量ＬＥＤ制御回路３５は、制御回路３１から入力される残容量信号に基づき、その残容量信号が示す残容量に応じた点灯パターンにて各ＬＥＤを点灯又は消灯させる。
【００５０】
（２）充電器６０の構成
図１に示すように、充電器６０は、電源回路６１と、充電制御回路６２と、正極端子６６と、負極端子６７と、通信端子６８と、Ｖｃｃ出力端子６９と、を備えている。
【００５１】
充電制御回路６２は、本実施形態では、バッテリパック１内の制御回路３１と同様、マイコンにて構成されており、通信端子６８に接続されている。この通信端子６８は、バッテリパック１が充電器６０に装着された際に、バッテリパック１の通信端子８と接続され、これにより充電制御回路６２とバッテリパック１の制御回路３１とがデータ通信可能となる。
【００５２】
電源回路６１は、外部の商用電源（例えばＡＣ１００Ｖ電源）等から電源供給を受け、バッテリパック１内のバッテリ１０を充電するための充電電力を生成する。電源回路６１にて生成された充電電力は、充電器６０にバッテリパック１が装着されているときに、正極端子６６及び負極端子６７を介してバッテリパック１へ供給される。
【００５３】
また、電源回路６１には、制御電圧Ｖｃｃを生成する制御用電源回路が内蔵されている。制御用電源回路にて生成された制御電圧Ｖｃｃは、充電制御回路６２の動作用電源として用いられるほか、既述の通り、Ｖｃｃ出力端子６９を介してバッテリパック１にも供給される。
【００５４】
充電制御回路６２は、バッテリ１０への充電電力の供給時に、バッテリパック１の制御回路３１からデータ通信にてバッテリ電圧や充電電流などの各種データを取得し、その取得した各種データに従って充電制御を実行する。
【００５５】
（３）工具本体８０の構成
図２に示すように、工具本体８０は、バッテリパック１が装着されてバッテリパック１からの電力供給が可能な状態のとき、バッテリパック１と共に全体として電動工具として機能する。工具本体８０は、モータ８１と、トリガスイッチ８２と、スイッチング素子８３と、ドライブ回路８４と、正極端子８６と、負極端子８７と、ＡＳ入力端子８８とを備えている。
【００５６】
正極端子８６は、トリガスイッチ８２を介してモータ８１の一端に接続されている。負極端子８７は、スイッチング素子８３を介してモータ８１の他端に接続されている。
トリガスイッチ８２は、工具本体８０に設けられた図示しないトリガを使用者が操作することによりオン・オフされる。即ち、使用者がトリガを引くとオンし、使用者がトリガを離すとオフされる。トリガスイッチ８２のオン・オフの状態やトリガの引き量などの、トリガスイッチ８２に関する各種情報は、ドライブ回路８４に入力される。
【００５７】
ドライブ回路８４は、トリガスイッチ８２のオン・オフの状態やトリガの引き量などに応じてスイッチング素子８３をオン・オフ制御（デューティ制御）することにより、バッテリ１０からモータ８１への通電（放電）を開始させ、これによりモータ８１をトリガの引き量に応じた回転速度で回転させる。モータ８１が回転すると、その回転駆動力によって図示しない工具要素が動作し、これにより電動工具としての機能が発揮される。トリガスイッチ８２がオフされると、ドライブ回路８４は、スイッチング素子８３をオフさせることで、バッテリパック１からモータ８１への放電を停止させ、モータ８１を停止させる。
【００５８】
また、ドライブ回路８４は、モータ８１への通電を実行している間に、バッテリパック１からＡＳ入力端子８８を介してＡＳ信号が入力された場合は、モータ８１への通電を強制停止させる。
【００５９】
（４）バランシング制御の説明
次に、バッテリパック１の制御回路３１が備えている各種制御機能のうち、特に、各セル電圧のばらつきを低減するためのバランシング制御について、詳しく説明する。バランシング制御は、各セル電圧に基づいて放電の必要なセルの有無を判断し、放電の必要なセルが有った場合にそのセルをバランシング対象のセルに決定して、そのセルのバランシング（放電による容量低減、ひいてはセル電圧低下）を行う制御である。
【００６０】
本実施形態では、バランシング制御におけるバランシング対象のセルの決定は、基本的には、バッテリ１０から工具本体８０へモータ８１駆動用の放電（電力供給）が行われている間（以下「負荷放電時」ともいう）に行われる。具体的には、負荷放電時に、各セル電圧を監視し、各セル電圧のうち最小セル電圧が閾値以下になった場合であって且つその最小セル電圧との電圧差が規定値以上のセルがある場合に、そのセルをバランシング対象に決定する。以下、負荷放電時にバランシング対象に決定されたセルを「有負荷バランシング対象セル」ともいう。
【００６１】
ただし、負荷放電時に有負荷バランシング対象セルが決定されなかった場合は、バッテリパック１が充電器６０に装着された際に、その装着時の各セル電圧（つまり開放電圧）に基づいて、バランシング対象のセルの有無を判断する。
【００６２】
そして、バッテリ１０が使用されず安定した状態に移行した場合に、バランシング対象セルに対するバランシングを実行する。具体的には、各放電制御部２１〜２５のうちバランシング対象セルに対応した放電制御部を動作させて、そのバランシング対象セルを放電さることにより、そのバランシング対象セルの容量を低減（ひいてはセル電圧を低下）させる。
【００６３】
上述したバランシング制御を実現するためにバッテリパック１の制御回路３１が実行するメイン処理について、図３を用いて説明する。レギュレータ３２から制御回路３１へ電源電圧が供給されることにより制御回路３１が起動（詳しくは演算部４１が起動）すると、演算部４１は、メモリ４２から図３のメイン処理のプログラムを読み込んで実行する。
【００６４】
制御回路３１の演算部４１は、図３のメイン処理を開始すると、Ｓ１１０で、放電電流が有るか否か、即ち負荷放電時であるか否か判断する。放電電流がない場合、即ち工具本体８０へ放電が行われていない場合は（Ｓ１１０：ＮＯ）、Ｓ１２０に進む。放電電流が有る場合、即ち負荷放電時である場合は（Ｓ１１０：ＹＥＳ）、Ｓ１４０で、放電時対象セル決定処理を実行する。この放電時対象セル決定処理は、負荷放電時の各セル電圧に基づいて有負荷バランシング対象セルを決定するための処理である。
【００６５】
Ｓ１４０の放電時対象セル決定処理の詳細は、図４に示す通りである。放電時対象セル決定処理に移行すると、Ｓ２１０で、バッテリ温度が規定温度内にあるか否か判断する。例えば、バッテリ温度の下限値を設定しておき、バッテリ温度がその下限値以上ならば規定温度内にあると判断することができる。また例えば、下限値及び上限値を設定しておき、バッテリ温度が下限値以上且つ上限値以下の範囲内ならば規定温度内にあると判断してもよい。
【００６６】
バッテリ温度が規定温度内にない場合は（Ｓ２１０：ＮＯ）、放電時対象セル決定処理を終了し、Ｓ１２０（図３）へ移行する。バッテリ温度が規定温度内にない場合は、バランシング対象セルを適切に判定できない可能性がある。特に、バッテリ温度が非常に低いと、セルの内部インピーダンスも非常に高くなる。そのため、負荷放電時については、バッテリ温度が規定温度内にある場合に、バランシング対象セルを判定するようにしている。
【００６７】
バッテリ温度が規定温度内にある場合は（Ｓ２１０：ＹＥＳ）、Ｓ２２０で、監視ＩＣ３０から現在の各セル電圧を取得し、そのうち最小セル電圧が所定の閾値以下か否か判断する。最小セル電圧が閾値を超えている場合は（Ｓ２２０：ＮＯ）、放電時対象セル決定処理を終了し、Ｓ１２０（図３）へ移行する。放電末期のセルのセル電圧を基準にしてバランシング対象セルの有無を判定するために、Ｓ２２０の判断処理を行っている。放電末期のセルがない場合は、バランシングを行う必要性は比較的少ないため、本実施形態ではバランシングは実行しないようにしている。ただし、最小セル電圧が閾値を超えている場合にバランシングを行わないことは必須ではなく、最小セル電圧が閾値を超えていてもバランシング対象セルを判断し、必要に応じてバランシングを行うようにしてもよい。
【００６８】
最小セル電圧が閾値以下の場合は（Ｓ２２０：ＹＥＳ）、Ｓ２３０に進む。Ｓ２３０では、各セル１１〜１５のうち、セル電圧が「最小セル電圧＋規定値」以上のセルが有るか否か判断する。セル電圧が「最小セル電圧＋規定値」以上のセルがない場合は（Ｓ２３０：ＮＯ）、放電時対象セル決定処理を終了し、Ｓ１２０（図３）へ移行する。セル電圧が「最小セル電圧＋規定値」以上のセルが有る場合は（Ｓ２３０：ＹＥＳ）、Ｓ２４０に進む。
【００６９】
Ｓ２４０では、各セル１１〜１５のうち、セル電圧が「最小セル電圧＋規定値」以上のセルを、バランシング対象セルに決定し、メモリ４２に記憶する。ここで決定されるバランシング対象セルは、負荷放電時に決定されるものであるため、有負荷バランシング対象セルである。
【００７０】
Ｓ２５０では、パラメータ演算処理を実行する。ここでいうパラメータとは、バランシング対象セル毎に演算される値であって、バランシングの実施の優先順位を示す値である。Ｓ２５０のパラメータ演算処理の詳細は、図５に示す通りである。
【００７１】
図５に示すように、本実施形態では、パラメータ演算処理として３通りの処理方法がある。そして、３通りの処理方法のうち何れかを採用することができる。３通りのパラメータ演算処理について、順次説明する。
【００７２】
まず、図５（Ａ）に示すパラメータ演算処理（以下「第１のパラメータ演算処理」ともいう）について説明する。第１のパラメータ演算処理に移行すると、Ｓ３１０で、Ｓ２４０で決定されたバランシング対象セルのうち、まだ第１バラツキデータを演算していないバランシング対象セルを１つ選択する。なお、第１バラツキデータとは、Ｓ３２０で演算されるデータである。
【００７３】
Ｓ３２０では、Ｓ３１０で選択したバランシング対象セルについて、第１バラツキデータを演算する。具体的には、当該バランシング対象セルのセル電圧から最小セル電圧を減算することで、当該バランシング対象セルの第１バラツキデータを演算する。
【００７４】
Ｓ３３０では、バランシング対象セル全てについて第１バラツキデータを演算済みか否か判断する。まだ第１バラツキデータを演算していないバランシング対象セルがあれば（Ｓ３３０：ＮＯ）、Ｓ３１０に戻る。
【００７５】
バランシング対象セル全て、第１バラツキデータを演算済みならば（Ｓ３３０：ＹＥＳ）、Ｓ３４０に進む。Ｓ３４０では、バランシング対象セル毎に、そのバランシング対象セルの第１バラツキデータをパラメータとしてメモリ４２に記憶する。つまり、バランシング対象セル毎に対応するパラメータを紐付けてメモリ４２に記憶する。後述するＳ４４０及びＳ５５０の処理も同様である。Ｓ３４０の処理が終わると、図４の放電時対象セル決定処理が終了することになり、よってＳ１２０（図３）に進む。
【００７６】
次に、図５（Ｂ）に示すパラメータ演算処理（以下「第２のパラメータ演算処理」ともいう）について説明する。第２のパラメータ演算処理に移行すると、Ｓ４１０で、Ｓ２４０で決定されたバランシング対象セルのうち、まだ第２バラツキデータを演算していないバランシング対象セルを１つ選択する。なお、第２バラツキデータとは、Ｓ４２０で演算されるデータである。
【００７７】
Ｓ４２０では、Ｓ４１０で選択したバランシング対象セルについて、第２バラツキデータを演算する。具体的には、当該バランシング対象セルのセル電圧から閾値を減算することで、当該バランシング対象セルの第２バラツキデータを演算する。なお、ここで用いる閾値は、Ｓ２２０（図４）で用いる閾値と同じである。
【００７８】
Ｓ４３０では、バランシング対象セル全てについて第２バラツキデータを演算済みか否か判断する。まだ第２バラツキデータを演算していないバランシング対象セルがあれば（Ｓ４３０：ＮＯ）、Ｓ４１０に戻る。
【００７９】
バランシング対象セル全て、第２バラツキデータを演算済みならば（Ｓ４３０：ＹＥＳ）、Ｓ４４０に進む。Ｓ４４０では、バランシング対象セル毎に、そのバランシング対象セルの第２バラツキデータをパラメータとしてメモリ４２に記憶する。Ｓ４４０の処理が終わると、図４の放電時対象セル決定処理が終了することになり、よってＳ１２０（図３）に進む。
【００８０】
次に、図５（Ｃ）に示すパラメータ演算処理（以下「第３のパラメータ演算処理」ともいう）について説明する。第３のパラメータ演算処理において、Ｓ５１０〜Ｓ５３０の処理は、第１のパラメータ演算処理におけるＳ３１０〜Ｓ３３０と同じであるため、説明を省略する。Ｓ５４０では、第１バラツキデータの大きい順に、各バランシング対象セルの順位付けを行う。即ち、第１バラツキデータが最も大きい（つまり最小セル電圧との差が最も大きい）バランシング対象セルから順に１位、２位、・・・と順位付けしていく。
【００８１】
Ｓ５５０では、バランシング対象セル毎に、そのバランシング対象セルにつけられた上記順位をパラメータとしてメモリ４２に記憶する。Ｓ５５０の処理が終わると、図４の放電時対象セル決定処理が終了することになり、よってＳ１２０（図３）に進む。
【００８２】
本実施形態では、Ｓ２５０のパラメータ演算処理として図５に示した３通りのパラメータ演算処理のうちどれを採用するかについては、予め決められており、その決められたパラメータ演算処理にて、バランシング対象セル（有負荷バランシングセル）毎のパラメータが演算され、記憶される。
【００８３】
Ｓ１２０では、充電器６０の接続時か否か、即ちバッテリパック１が充電器６０に接続された（但し充電開始前）か否か判断する。この判断は、装着検出部３６から入力される装着検出信号に基づいて行う。即ち、装着検出部３６から、充電器６０が装着されていないことを示す装着検出信号が入力されている場合には、バッテリパック１が充電器６０に接続されていないと判断し（Ｓ１２０：ＮＯ）、Ｓ１３０に進む。装着検出部３６から、充電器６０が装着されていることを示す装着検出信号が入力されている場合には、バッテリパック１が充電器６０に接続されたと判断し（Ｓ１２０：ＹＥＳ）、Ｓ１５０で、充電前対象セル決定処理を実行する。この充電前対象セル決定処理は、充電器６０が接続されて充電が開始される前の各セル電圧（開放電圧）に基づいてバランシング対象セルを決定するための処理である。
【００８４】
Ｓ１５０の充電前対象セル決定処理の詳細は、図６に示す通りである。充電前対象セル決定処理に移行すると、Ｓ６１０で、有負荷バランシング対象セルが有るか否か判断する。有負荷バランシング対象セルが１つでもある場合は（Ｓ６１０：ＹＥＳ）、充電前対象セル決定処理を終了し、Ｓ１３０（図３）へ移行する。つまり、有負荷バランシング対象セルが１つでもある場合は、充電前の開放電圧に基づくバランシング対象セルの決定は行わない。有負荷バランシング対象セルが１つもない場合に、Ｓ６２０以降の処理を経て、開放電圧に基づくバランシング対象セルの有無判断を行う。
【００８５】
即ち、有負荷バランシングセルがない場合は（Ｓ６１０：ＮＯ）、Ｓ６２０で、一定時間放電電流が無いか否か、即ちモータ８１への放電が行われていない時間が一定時間以上継続しているか否か判断する。放電電流の無い継続時間がまだ一定時間未満なら（Ｓ６２０：ＮＯ）、充電前対象セル決定処理を終了し、Ｓ１３０（図３）へ移行する。つまり、放電が停止してからまだ一定時間経過していない場合は、各セル電圧がまだ安定していない可能性があるため、セル電圧に基づく各種の演算は行わない。放電電流の無い状態が一定時間以上継続している場合は（Ｓ６２０：ＹＥＳ）、Ｓ６３０に進む。
【００８６】
Ｓ６３０では、監視ＩＣ３０から現在の各セル電圧を取得し、各セル１１〜１５のうち、セル電圧が「最小セル電圧＋規定値」以上のセルが有るか否か判断する。セル電圧が「最小セル電圧＋規定値」以上のセルがない場合は（Ｓ６３０：ＮＯ）、充電前対象セル決定処理を終了し、Ｓ１３０（図３）へ移行する。セル電圧が「最小セル電圧＋規定値」以上のセルが有る場合は（Ｓ６３０：ＹＥＳ）、Ｓ６４０に進む。
【００８７】
Ｓ６４０では、各セル１１〜１５のうち、セル電圧が「最小セル電圧＋規定値」以上のセルを、バランシング対象セルに決定し、メモリ４２に記憶する。そして、Ｓ６５０のパラメータ演算処理に進む。Ｓ６５０のパラメータ演算処理は、放電時対象セル決定処理におけるＳ２５０のパラメータ演算処理と全く同じであり、図５に示す３通りのパラメータ演算処理のうち予め決められたパラメータ演算処理が実行される。Ｓ６５０のパラメータ演算処理の実行後は、Ｓ１３０（図３）に進む。
【００８８】
このように、有負荷バランシング対象セルが１つもない場合は、充電前の開放電圧に基づいてバランシング対象セルの有無を判断し、バランシング対象セルがある場合にはそのバランシング対象セル毎にパラメータを演算する。
【００８９】
Ｓ１３０では、バッテリパック１の不使用状態が一定時間継続しているか否か判断する。具体的には、バッテリ１０から工具本体８０への放電及びバッテリ１０の充電の何れも行われておらず制御回路３１が待機状態にある時間が一定時間（例えば１分）継続しているか否かによって判断できる。
【００９０】
バッテリパック１の不使用状態がまだ一定時間継続していない場合は（Ｓ１３０：ＮＯ）、Ｓ１１０に戻る。バッテリパック１の不使用状態が一定時間継続している場合は（Ｓ１３０：ＹＥＳ）、Ｓ１６０で、バランシング処理を実行する。
【００９１】
Ｓ１３０の判断処理は、要するに各セル電圧が安定した状態であるか否かを判断する処理であるため、その処理の目的を達成できる限り、他の方法で判断を行うようにしてもよい。
【００９２】
また、バッテリ１０のバランシングは、Ｓ１３０で肯定判断された場合にＳ１６０の中で実行される。Ｓ１６０のバランシング処理の中では、後述するように、制御回路３１はスリープモードに入り、動作を停止する。そして、そのスリープモードの期間中に（但し定期的なウェイクアップ時間を含む）バランシングが行われる。つまり、本実施形態では、制御回路３１が通常動作をしている間は、バランシングは行われない。
【００９３】
そのため、Ｓ１３０の判断処理は、スリープモード時にバランシングを行うべく、スリープモードへの移行タイミングであるか否かを判断する処理であるともいえる。
なお、制御回路３１が通常動作しているときにバランシングを行わないことは必須ではなく、制御回路３１の通常動作中であってもバランシングを行うようにしてもよい。つまり、例えば工具本体８０への放電中であったり充電器６０によるバッテリ１０の充電中であっても、バランシングを行うようにしてもよい。ただし本実施形態では、制御回路３１が通常動作中はバランシングを行わないようにしている。その理由は、バランシング実行中の各セル電圧は不安定な状態になっている可能性があり、そのような不安定なセル電圧に基づいて各種制御を行うと制御精度が低下する可能性があるからである。バランシングを実行しながらも各セル電圧を精度良く検出することは不可能ではないが、それを可能とするためには制御回路３１或いは監視ＩＣ３０として高価・高性能のものを採用する必要があり、コスト的に現実的ではない。
【００９４】
Ｓ１６０のバランシング処理は、主に、バランシング対象セル１つずつ順に、バランシングを実行する処理である。ここで実行するバランシングは、バランシング対象セルに対応した放電制御部を規定時間動作させてそのバランシング対象セルを規定時間放電させることでそのバランシング対象セルの容量を低減（セル電圧を低下）させる動作である。
【００９５】
Ｓ１６０のバランシング処理の詳細は、図７に示す通りである。バランシング処理に移行すると、Ｓ７１０で、バランシング途中セルが有るか否か判断する。バランシング途中セルとは、バランシングが開始されたもののＳ８１０の処理でそのバランシングが一時停止されたセルを意味する。バランシング途中セルが有る場合は（Ｓ７１０：ＹＥＳ）、Ｓ７２０で、そのバランシング途中セルを実行対象セルに設定して、Ｓ７５０に進む。なお、Ｓ７２０では、バランシング途中セルに対して現時点ですでにどの程度の時間バランシングが進んでいるかを示す実行時間をメモリ４２から読み込む処理も行う。この実行時間は、Ｓ８１０でバランシングを一時停止したときにメモリ４２に記憶される。
【００９６】
Ｓ７１０でバランシング途中セルが無い場合は（Ｓ７１０：ＮＯ）、Ｓ７３０で、バランシング対象セルがあるか否か判断する。バランシング対象セルがない場合は（Ｓ７３０：ＮＯ）、Ｓ８３０に進み、スリープモードに入る。つまり、予め決められた必要最小限の機能のみ維持させてそれ以外の機能の動作を停止する。ここで維持される機能として、少なくとも、スリープモードを解除して通常動作に復帰するための条件であるウェイクアップ条件の成否を判断する機能が含まれる。本実施形態では、一定時間（例えば０．５秒）経過する毎に定期的にウェイクアップするよう構成されている。また、バッテリパック１が充電器６０に装着されて制御電圧Ｖｃｃが入力された場合にもウェイクアップするよう構成されている。また、バッテリパック１が工具本体８０に装着されてトリガスイッチ８２がオンされた場合にもウェイクアップするよう構成されている。Ｓ８３０でスリープモードに移行した後、これら各種のウェイクアップ条件の何れかが成立した場合には、スリープモードから通常動作に復帰して、Ｓ８４０の処理を行う。
【００９７】
Ｓ８４０では、ユーザアクションが有るか否か判断する。ここでいうユーザアクションとは、上述した各種のウェイクアップ条件のうち、少なくとも、充電器６０の装着又はトリガスイッチ８２のオンを意味する。ユーザアクションが無い場合は（Ｓ８４０：ＮＯ）、スリープモードが一定時間継続したことによってウェイクアップしたということである。この場合は、ウェイクアップ時に実行する処理として予め決められている処理を実行した後、再びＳ８３０でスリープモードに入る。ユーザアクションが有る場合は（Ｓ８４０：ＹＥＳ）、バランシング処理を終了して、Ｓ１１０（図３）に戻る。
【００９８】
Ｓ７３０で、バランシング対象セルが有る場合は（Ｓ７３０：ＹＥＳ）、Ｓ７４０に進む。Ｓ７４０では、バランシング対象セル毎のパラメータに基づき、バランシング実施の優先順位を設定する。そして、その優先順位の最も高いセルを実行対象セルに設定する。
【００９９】
本実施形態においてパラメータの演算方法が３通りあることは既に述べた通りである。パラメータの演算が、図５（Ａ）に示す第１のパラメータ演算処理によって行われた場合は、パラメータとして第１バラツキデータが演算され、記憶されている。この場合、Ｓ７４０では、第１バラツキデータが大きい順に優先順位を設定する。つまり、第１バラツキデータが最も大きいセルが優先順位の１位となる。そして、その優先順位の最も高いバランシング対象セルを、実行対象セルに設定する。
【０１００】
パラメータの演算が、図５（Ｂ）に示す第２のパラメータ演算処理によって行われた場合は、パラメータとして第２バラツキデータが演算され、記憶されている。この場合、Ｓ７４０では、第２バラツキデータが大きい順に優先順位を設定する。つまり、第２バラツキデータが最も大きいセルが優先順位の１位となる。そして、その優先順位の最も高いバランシング対象セルを、実行対象セルに設定する。
【０１０１】
パラメータの演算が、図５（Ｃ）に示す第３のパラメータ演算処理によって行われた場合は、パラメータとして第１バラツキデータの順位が演算され、記憶されている。この場合、Ｓ７４０では、その第１バラツキデータの順位をそのまま優先順位として設定する。つまり、第１バラツキデータが最も大きいセルが優先順位の１位となる。そして、その優先順位の最も高いバランシング対象セルを、実行対象セルに設定する。
【０１０２】
Ｓ７５０では、実行対象セルのバランシングを開始する。即ち、実行対象セルに対応した放電制御部２１によるその実行対象セルの放電を開始させる。このとき、バランシングの実行時間の計時も開始する。ただし、実行対象セルがバランシング途中セルである場合には、Ｓ７２０の処理時にメモリ４２から読み込んだ実行時間から計時を再開する。Ｓ７５０でバランシングを開始した後、Ｓ７６０で、Ｓ８３０と同じようにスリープモードに入る。スリープモード中も、実行対象セルのバランシング（即ち放電）は継続される。つまり、制御回路３１は、実行対象セルに対応した放電制御部にバランシング（放電）の指示をした後、自身はスリープモードに入るのである。
【０１０３】
スリープモードへの移行後、ウェイクアップ条件成立によってウェイクアップすると、Ｓ７７０で、Ｓ８４０と同じようにユーザアクションが有るか否か判断する。ユーザアクションが無い場合は（Ｓ７７０：ＮＯ）、スリープモードが一定時間継続したことによってウェイクアップしたということである。この場合は、ウェイクアップ時に実行する処理として予め決められている処理を実行すると共に、Ｓ７８０で、バランシングの実行時間が規定時間を経過したか否か判断する。まだ規定時間経過していない場合は（Ｓ７８０：ＮＯ）、Ｓ７６０に戻る。
【０１０４】
バランシングの実行時間が規定時間経過している場合は（Ｓ７８０：ＹＥＳ）、Ｓ７９０で、実行対象セルのバランシングを停止（即ち放電を停止）する。そしてＳ８００で、実行対象セルをバランシング対象セルから外す。つまり、メモリ４２に記憶されているバランシング対象セルのうち、当該実行対象セル（即ち規定時間のバランシングが完了したセル）を削除する。これにより、メモリ４２に記憶されている、バランシングを行うべきバランシング対象セルの数は、１つ減ることになる。Ｓ８００の処理後はＳ７１０に戻る。
【０１０５】
Ｓ７７０で、ユーザアクションが有る場合は（Ｓ７７０：ＹＥＳ）、Ｓ８１０で、現在バランシング実行中の実行対象セルのバランシングを一時停止する。このとき、その実行対象セルの現在までのバランシング実行時間をメモリ４２に記憶する。Ｓ８２０では、Ｓ８１０でバランシングが一時停止された実行対象セルを、バランシング途中セルに設定する。Ｓ８２０の処理後は、Ｓ１１０（図３）に戻る。
【０１０６】
（５）実施形態の効果
以上説明した本実施形態のバッテリパック１によれば、工具本体８０に装着されて工具本体８０のトリガスイッチ８２がオンされ、バッテリ１０からモータ８１へ放電（電力供給）されているときに、各セル１１〜１５の各セル電圧が検出され、それら各セル電圧に基づいて有負荷バランシング対象セルの決定が行われる。負荷放電時に検出される各セル電圧は、セルの内部インピーダンスが加味された値である。そのため、各セル１１〜１５の内部インピーダンスが加味された適切な決定が行われ、有負荷バランシング対象セルを適切に決定することができる。
【０１０７】
また、本実施形態のバッテリパック１では、負荷放電時の各セル電圧に基づく有負荷バランシング対象セルの決定は、バッテリ温度が規定温度範囲内にある場合に行われる。バッテリ温度が規定温度範囲内にあるときは各セル１１〜１５の内部インピーダンスも安定した状態にある。そのため、バッテリ温度が規定温度範囲内にあるときに各セル電圧を検出してバランシング対象セルの有無を判定することで、有負荷バランシング対象セルをより適切に決定することが可能となる。
【０１０８】
また、本実施形態のバッテリパック１では、負荷放電時に有負荷バランシング対象セルが１つも決定されなかった場合は、各セル１１〜１５の開放電圧に基づくバランシング対象セルの有無の判定が行われる。そして、その判定の結果、バランシングを行うべきセルがあれば、そのセルがバランシング対象セルに決定され、バランシングが実行される。
【０１０９】
つまり、本実施形態では、負荷放電時に各セル電圧を検出して有負荷バランシング対象セルの有無を判定することを基本としつつ、有負荷バランシング対象セルがなかった場合には各セル１１〜１５の開放電圧に基づいてバランシング対象セルの有無を判定する。そのため、バランシングが必要なセルをより適切に判定することができる。
【０１１０】
また、本実施形態のバッテリパック１では、バランシング対象セルが決定された場合、その決定された有負荷バランシング対象セル毎にパラメータが演算され、メモリ４２に記憶される。そして、バランシングは、メモリ４２に記憶されているバランシング対象セルに対して行われる。そのため、メモリ４２の記憶内容を参照することで、バランシングの必要なセルに対するバランシングを過不足無く確実に実行させることができる。
【０１１１】
また、本実施形態では、パラメータとして、第１バラツキデータ、第２バラツキデータ、及び第１バラツキデータの大きい順の順位、のうち何れかが演算される。これらパラメータはいずれも、放電実施の優先順位を決める根拠となり得る情報である。そのため、バランシング対象セル毎にパラメータを記憶しておくことで、特にバランシング対象セルが複数ある場合に、どのバランシング対象セルからバランシングを実施すべきかを適切且つ容易に判断することができ、適切な順序でバランシングを実施することができる。
【０１１２】
パラメータとして、第１バラツキデータ又は第２バラツキデータを演算するようにすると、そのデータの大きい順にバランシングの実施順序を決めることができる。またその場合、何れかのバラツキデータを演算、記憶するという簡素な処理で済むため、制御回路３１による、バランシング制御の処理負荷を抑制でき、制御回路３１が実行する他の各種処理への影響を抑制できる。
【０１１３】
一方、パラメータとして、第１バラツキデータの大きい順の順位を演算するようにすると、バランシングを実施する際にはその順位に従って実施できるため、後にバランシングを実施する際の実施順序をより容易に決めることができる。
【０１１４】
また、本実施形態のバッテリパック１では、バッテリ１０への充電及びバッテリ１０から工具本体８０への放電が予め設定された一定時間以上行われていないときに、バランシング対象セルのバランシングが実施される。そのため、制御回路３１が実行するバッテリ１０の充電制御や工具本体８０への放電制御などの各種の通常処理に対してバランシング制御が影響を及ぼしてしまうことを抑制することができる。
【０１１５】
なお、本実施形態において、各放電制御部２１〜２５は本発明のセル放電部の一例に相当する。監視ＩＣ３０及び演算部４１により本発明の電圧検出部の一例が構成される。また、演算部４１は、本発明の対象セル判定部、放電制御部、及び無負荷時判定部の一例に相当する。メモリ４２は本発明の記憶部の一例に相当する。温度検出回路３４は本発明の温度検出部の一例に相当する。
【０１１６】
［他の実施形態］
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されることなく、種々の形態を採り得る。
【０１１７】
（１）上記実施形態では、図４や図６で説明したように、セル電圧が「最小セル電圧＋規定値」以上のセルをバランシング対象セルに決定したが、バランシング対象セルの決定方法は上記方法に限定されない。
【０１１８】
例えば、セル電圧が「閾値＋規定値」以上のセルをバランシング対象セルに決定してもよい。図８に、セル電圧が「閾値＋規定値」以上のセルをバランシング対象セルに決定するよう構成された放電時対象セル決定処理の一例を示す。図８の放電時対象セル決定処理において、Ｓ９１０〜Ｓ９２０の処理は、図４のＳ２１０〜Ｓ２２０と同じである。Ｓ９３０では、各セル１１〜１５のうち、セル電圧が「閾値＋規定値」以上のセルが有るか否か判断する。セル電圧が「閾値＋規定値」以上のセルがない場合は（Ｓ９３０：ＮＯ）、放電時対象セル決定処理を終了する。セル電圧が「閾値＋規定値」以上のセルが有る場合は（Ｓ９３０：ＹＥＳ）、Ｓ９４０に進む。Ｓ９４０では、各セル１１〜１５のうち、セル電圧が「閾値＋規定値」以上のセルを、バランシング対象セル（有負荷バランシング対象セル）に決定する。そして、Ｓ９５０で、図４のＳ２５０と同様にパラメータ演算処理を実行する。
【０１１９】
図示は省略するが、図６の充電前対象セル決定処理においても、セル電圧が「閾値＋規定値」以上のセルをバランシング対象セルに決定してもよい。
また例えば、閾値よりも低い所定の基準値を設定し、セル電圧が「基準値＋規定値」以上のセルをバランシング対象セルに決定してもよい。つまり、最小セル電圧との差が大きくてその差を縮めるべきセルを適切に判定できる限り、その判定方法としては種々の方法を採用できる。
【０１２０】
（２）図５（Ｃ）に示した第３のパラメータ演算処理では、第１バラツキデータに基づいて順位付けを行い、その順位をパラメータとしたが、他の方法で順位付けを行ってもよい。例えば、第２バラツキデータに基づいて順位付けを行ってもよい。つまり、結果として最小セル電圧との差が大きいセルほど上位に順位付けできる限り、具体的な順位付けの方法は適宜決めることができる。
【０１２１】
（３）また、バランシングの実施の優先順位を決める基準となるパラメータ自体、図５に示した３種類のパラメータに限らず、他のパラメータであってもよい。つまり、図７のＳ７４０において、最小セル電圧との差が大きいセルほど優先的に実行対象セルに設定される限り、パラメータとして具体的にどのような値を用いるかについては適宜決めることができる。
【０１２２】
（４）パラメータとして第１バラツキデータ又は第２バラツキデータを演算する場合は、バランシング対象セルのバランシングを行う際、バランシング対象セル毎に、バランシングの実施時間（即ち放電時間、ひいては放電容量）をパラメータに応じて適宜設定するようにしてもよい。
【０１２３】
（５）バッテリパック１の使用状態によっては、有負荷バランシング対象セルがまだ残っている状態で充電前対象セル決定処理が実行され、開放電圧に基づくバランシング対象セルの決定が行われる可能性がある。つまり、有負荷バランシング対象セルと、開放電圧に基づくバランシング対象セルとが混在する可能性がある。その場合にバランシングをどのような順序で行うかについては適宜決めることができる。例えば、あくまでも有負荷バランシング対象セルのバランシングを優先させ、有負荷バランシング対象セルが全てバランシング完了した後に、開放電圧に基づくバランシング対象セルのバランシングを順次行うようにしてもよい。また例えば、混在している全てのバランシング対象セルについて第１バラツキデータ又は第２バラツキデータを演算し、その演算結果の大きい順にバランシングを実施するようにしてもよい。
【０１２４】
またそもそも、放電時対象セル決定処理によって有負荷バランシング対象セルが決定された場合は、その決定された有負荷バランシング対象セルの全てについてバランシングが完了するまでは、充電前対象セル決定処理を実行しないようにしてもよい。さらに、その決定された有負荷バランシング対象セルの全てについてバランシングが完了するまでは、放電時対象セル決定処理についても新たに実行しないようにしてもよい。
【０１２５】
逆に、放電時対象セル決定処理で有負荷バランシング対象セルが決定されなかったことにより充電前対象セル決定処理でバランシング対象セルが決定された場合は、その決定されたバランシング対象セルの全てについてバランシングが完了するまでは、放電時対象セル決定処理を実行しないようにしてもよい。さらに、その決定されたバランシング対象セルの全てについてバランシングが完了するまでは、充電前対象セル決定処理についても新たに実行しないようにしてもよい。また、充電前対象セル決定処理は行わないようにしてもよい。つまり、図３のメイン処理において、Ｓ１２０及びＳ１５０の処理を省き、Ｓ１１０で否定判定された場合及びＳ１４０の処理後はＳ１３０に進むようにしてもよい。
【０１２６】
（６）バッテリパック１は、残容量ＬＥＤ制御回路３５を動作させてバッテリ１０の残容量を表示させるための残容量表示スイッチを備えていてもよい。つまり、残容量表示スイッチの押下時を含む所定の表示タイミング以外は通常は残容量は表示されないようにし、残容量表示スイッチが押下されるなど所定の表示タイミングとなった場合に残容量を表示させるようにしてもよい。
【０１２７】
その場合、残容量表示スイッチが押下されることも、制御回路３１のウェイクアップ条件の１つとし、スリープモード中に残容量表示スイッチが押下されたらウェイクアップするようにしてもよい。そして、図７のＳ７７０やＳ８４０におけるユーザアクションとして、残容量表示スイッチの押下も含めるようにしてもよい。
【０１２８】
（７）バッテリ１０を構成する各セル１１〜１５は、リチウムイオン２次電池セル以外の他の２次電池セルであってもよい。
また、バッテリ１０を構成する各セルの直列接続数は、上記実施形態のような５個に限定されない。また、複数のセルが直列接続されてなるブロックが複数並列接続された構成であってもよい。バッテリ１０がそのような構成であっても、本発明を適用して、ブロック毎に或いはバッテリ１０全体として、バランシング制御を実行可能である。
【０１２９】
（８）本発明が適用されたバッテリパックを装着可能な電動機械器具は、上記実施形態の工具本体８０に限定されない。例えば充電式ドライバドリル、充電式インパクトドライバ、充電式インパクトレンチ、充電式草刈機、充電式グラインダー、充電式マルノコ、充電式レシプロソーなど、バッテリから電力供給を受けて駆動される各種の電動機械器具に対して、本発明が適用されたバッテリパックを装着可能である。
【０１３０】
（９）本発明は、上記実施形態のバッテリパック１のような、充電器６０や工具本体８０に対して着脱可能なバッテリパックへの適用に限定されない。例えば、バッテリを内蔵した電動工具に対しても、その内蔵バッテリを対象として本発明を適用可能である。
【０１３１】
（１０）上記実施形態における１つの構成要素が有する機能を複数の構成要素として分散させたり、複数の構成要素が有する機能を１つの構成要素に統合させたりしてもよい。また、上記実施形態の構成の少なくとも一部を、同様の機能を有する公知の構成に置き換えてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。なお、特許請求の範囲に記載した文言のみによって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。
【符号の説明】
【０１３２】
１…バッテリパック、３，６６，８６…正極端子、４，６７，８７…負極端子、６…Ｖｃｃ入力端子、７…ＡＳ出力端子、８，６８…通信端子、１０…バッテリ、１１〜１５…セル、２１〜２５…放電制御部、３０…監視ＩＣ、３１…制御回路、３２…レギュレータ、３３…電流検出素子、３４…温度検出回路、３５…残容量ＬＥＤ制御回路、３６…装着検出部、３７，３８…ダイオード、４１…演算部、４２…メモリ、６０…充電器、６１…電源回路、６２…充電制御回路、６９…Ｖｃｃ出力端子、８０…工具本体、８１…モータ、８２…トリガスイッチ、８３…スイッチング素子、８４…ドライブ回路、８８…ＡＳ入力端子。
【図１】
0006404640.tif 000002
【図２】
0006404640.tif 000003
【図３】
0006404640.tif 000004
【図４】
0006404640.tif 000005
【図５】
0006404640.tif 000006
【図６】
0006404640.tif 000007
【図７】
0006404640.tif 000008
【図８】
0006404640.tif 000009