(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-17
(45)【発行日】2024-01-25
(54)【発明の名称】バッテリパック
(51)【国際特許分類】
H01M 10/44 20060101AFI20240118BHJP
H02J 7/00 20060101ALI20240118BHJP
H02H 7/18 20060101ALI20240118BHJP
H01M 10/48 20060101ALI20240118BHJP
H01M 10/42 20060101ALI20240118BHJP
【FI】
H01M10/44 P
H02J7/00 S
H02H7/18
H01M10/48 P
H01M10/48 301
H01M10/42 P
(21)【出願番号】P 2019177317
(22)【出願日】2019-09-27
【審査請求日】2022-06-17
(73)【特許権者】
【識別番号】000137292
【氏名又は名称】株式会社マキタ
(74)【代理人】
【識別番号】110000578
【氏名又は名称】名古屋国際弁理士法人
(72)【発明者】
【氏名】小早川 忠彦
(72)【発明者】
【氏名】上杉 紘生
(72)【発明者】
【氏名】加納 隼人
【審査官】岩井 一央
(56)【参考文献】
【文献】特開2011-229318(JP,A)
【文献】特開2013-222642(JP,A)
【文献】国際公開第2012/140835(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H01M 10/42-10/48
H02H 7/00
H02H 7/10-7/20
H02J 7/00-7/12
H02J 7/34-7/36
(57)【特許請求の範囲】
【請求項1】
カウンタ値を有する制御部を備え、
前記制御部は、バッテリパックの放電時において、
前記バッテリパックの使用履歴及び前記バッテリパックからの放電電流値に対応する加算値のマップと、前記使用履歴と、前記放電電流値と、に基づいて、
加算値を算出する放電時算出処理と、
算出された前記加算値を前記カウンタ値に加算した値に、前記カウンタ値を更新する放電時更新処理と、
前記カウンタ値が所定の保護カウンタ閾値に到達した場合に、前記バッテリパックからの放電を禁止する禁止処理と、を実行するように構成されている、
バッテリパック。
【請求項2】
前記制御部は、前記放電時算出処理において、前記使用履歴が多いほど、前記加算値を大きく算出するように構成されている、
請求項1に記載のバッテリパック。
【請求項3】
前記加算値は、放電電流値が所定値以上である場合に0以上の値であり、前記放電電流値が所定値未満である場合に0以下の値である、
請求項1又は2に記載のバッテリパック。
【請求項4】
前記使用履歴は、前記カウンタ値が過負荷カウンタ閾値を超えた前記バッテリパックの動作回数を含み、
前記過負荷カウンタ閾値は、前記保護カウンタ閾値よりも小さい値に設定されている、
請求項1~3のいずれか1項に記載のバッテリパック。
【請求項5】
前記使用履歴は、前記バッテリパックの温度が、所定の保護温度閾値を超えた前記バッテリパックの動作回数を含む、
請求項1~4のいずれか1項に記載のバッテリパック。
【請求項6】
前記制御部は、前記バッテリパックの充電時において、
前記使用履歴に応じて0未満の値である減算値を算出する充電時算出処理と、
前記減算値を前記カウンタ値に加算した値に、前記カウンタ値を更新する充電時更新処理と、を実行するように構成されている、
請求項1~5のいずれか1項に記載のバッテリパック。
【請求項7】
前記制御部は、前記充電時算出処理において、前記使用履歴が多いほど、前記減算値を大きく算出するように構成されている、
請求項6に記載のバッテリパック。
【請求項8】
前記制御部は、前記バッテリパックの充電時において、
前回の充電時から今回の充電時までの間における前記バッテリパックの負荷状態が、所定の条件を満たしている場合に、前記使用履歴を増加させる履歴処理を実行するように構成されている、
請求項1~7のいずれか1項に記載のバッテリパック。
【請求項9】
前記制御部は、前記バッテリパックの放電時において、
前記使用履歴に応じて、前記保護カウンタ閾値を設定する保護閾値設定処理を実行するように構成されている、
請求項1~8のいずれか1項に記載のバッテリパック。
【請求項10】
前記制御部は、前記保護閾値設定処理において、前記使用履歴が多いほど、前記保護カウンタ閾値を小さく設定するように構成されている、
請求項9に記載のバッテリパック。
【請求項11】
前記制御部は、前記バッテリパックの放電時において、
前記使用履歴に応じて、前記過負荷カウンタ閾値を設定する過負荷閾値設定処理を実行するように構成されている、
請求項4に記載のバッテリパック。
【請求項12】
前記制御部は、前記過負荷閾値設定処理において、前記使用履歴が多いほど、前記過負荷カウンタ閾値を小さく設定するように構成されている、
請求項11に記載のバッテリパック。
【請求項13】
カウンタ値を有する制御部を備え、
前記制御部は、バッテリパックの放電時において、
前記バッテリパックの使用履歴に応じて加算値を算出する放電時算出処理と、
前記加算値を前記カウンタ値に加算した値に、前記カウンタ値を更新する放電時更新処理と、
前記カウンタ値が所定の保護カウンタ閾値に到達した場合に、前記バッテリパックからの放電を禁止する禁止処理と、を実行するように構成されており、
前記使用履歴は、前記カウンタ値が過負荷カウンタ閾値を超えた前記バッテリパックの動作回数を含み、
前記過負荷カウンタ閾値は、前記保護カウンタ閾値よりも小さい値に設定されている、
バッテリパック。
【請求項14】
カウンタ値を有する制御部を備え、
前記制御部は、バッテリパックの放電時において、
前記バッテリパックの使用履歴に応じて加算値を算出する放電時算出処理と、
前記加算値を前記カウンタ値に加算した値に、前記カウンタ値を更新する放電時更新処理と、
前記カウンタ値が所定の保護カウンタ閾値に到達した場合に、前記バッテリパックからの放電を禁止する禁止処理と、を実行するように構成されており、
前記使用履歴は、前記バッテリパックの温度が、所定の保護温度閾値を超えた前記バッテリパックの動作回数を含む、
バッテリパック。
【請求項15】
カウンタ値を有する制御部を備え、
前記制御部は、バッテリパックの放電時において、
前記バッテリパックの使用履歴に応じて加算値を算出する放電時算出処理と、
前記加算値を前記カウンタ値に加算した値に、前記カウンタ値を更新する放電時更新処理と、
前記カウンタ値が所定の保護カウンタ閾値に到達した場合に、前記バッテリパックからの放電を禁止する禁止処理と、を実行するように構成されており、
前記制御部は、前記バッテリパックの充電時において、
前回の充電時から今回の充電時までの間における前記バッテリパックの負荷状態が、所定の条件を満たしている場合に、前記使用履歴を増加させる履歴処理を実行するように構成されている、
バッテリパック。
【請求項16】
カウンタ値を有する制御部を備え、
前記制御部は、バッテリパックの放電時において、
前記バッテリパックの使用履歴に応じて加算値を算出する放電時算出処理と、
前記加算値を前記カウンタ値に加算した値に、前記カウンタ値を更新する放電時更新処理と、
前記カウンタ値が所定の保護カウンタ閾値に到達した場合に、前記バッテリパックからの放電を禁止する禁止処理と、を実行するように構成されており、
前記制御部は、前記バッテリパックの放電時において、
前記使用履歴に応じて、前記保護カウンタ閾値を設定する保護閾値設定処理を実行するように構成されている、
バッテリパック。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、バッテリパックに関する。
【背景技術】
【0002】
特許文献1に記載の発熱量推定装置は、バッテリに流れる充放電電流の検出値を周期的に取得し、取得した検出値に基づいた加減算値を算出している。そして、上記装置は、バッテリの発熱量に相当する過電流カウンタ値に、算出した加減算値を加減算して過電流カウンタ値を更新し、過電流カウンタ値が閾値以上になった場合に、放電を禁止してバッテリを保護している。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
バッテリパックは繰り返し使用されることによって、ダメージが蓄積される。そのため、蓄積ダメージが比較的大きいバッテリパックを、蓄積ダメージが比較的小さいバッテリパックと同じように保護しようとしても、適切に保護できない可能性がある。
【0005】
本開示の1つの局面は、適切に保護することが可能なバッテリパックを提供する。
【課題を解決するための手段】
【0006】
本開示の1つの局面のバッテリパックは、カウンタ値を有する制御部を備える。制御部は、バッテリパックの放電時において、加算値を算出する放電時算出処理と、加算値をカウンタ値に加算した値に、カウンタ値を更新する放電時更新処理と、カウンタ値が所定の保護カウンタ閾値に到達した場合に、バッテリパックからの放電を禁止する禁止処理と、を実行するように構成されている。
【0007】
上述のバッテリパックによれば、バッテリパックの使用履歴に応じて加算値が算出され、算出された加算値がカウンタ値に加算されて、カウンタ値が更新される。そして、カウンタ値が保護カウンタ閾値に到達した場合に、バッテリパックからの放電が禁止される。したがって、バッテリパックの使用履歴に応じて、カウンタ値が保護カウンタ閾値に到達する到達時間が変化するため、バッテリパックの使用履歴に応じて、バッテリパックを適切に保護することができる。
【0008】
また、制御部は、放電時算出処理において、使用履歴が多いほど、加算値を大きく算出するように構成されていてもよい。
使用履歴が多いほど、加算値が大きく算出される。したがって、バッテリパックの蓄積ダメージが大きいほど、カウンタ値が早く保護カウンタ閾値に到達して、バッテリパックからの放電が禁止される。よって、バッテリパックの使用履歴に応じて、バッテリパックを適切に保護することができる。
【0009】
加算値は、放電電流値が所定値以上である場合に0以上の値であり、放電電流が所定値未満である場合に0以下の値であってもよい。
放電電流値が所定値以上の場合には、バッテリパックの蓄積ダメージが大きいほど、カウンタ値が急に増加し、放電電流値が所定値未満の場合には、バッテリパックの蓄積ダメージが大きいほど、カウンタ値が緩やかに減少する。よって、バッテリパックの使用履歴に応じて、バッテリパックを適切に保護することができる。
【0010】
また、使用履歴は、カウンタ値が過負荷カウンタ閾値を超えたバッテリパックの動作回数を含んでもよい。過負荷カウンタ閾値は、保護カウンタ閾値よりも小さい値に設定されていてもよい。
【0011】
バッテリパックの動作時に、カウンタ値が過負荷カウンタ閾値を超えた場合、放電が禁止されなくてもバッテリパックにダメージが蓄積される。よって、使用履歴として、カウンタ値が過負荷カウンタ閾値を超えたバッテリパックの動作回数を用いることによって、バッテリパックに蓄積されたダメージに応じたバッテリパックの保護を実現できる。
【0012】
使用履歴は、バッテリパックの温度が、所定の保護温度閾値を超えたバッテリの動作回数を含んでもよい。
バッテリパックの動作時に、バッテリパックの温度が保護温度閾値を超えた場合、放電が禁止されなくてもバッテリパックにダメージが蓄積される。よって、使用履歴として、バッテリパックの温度が保護温度閾値を超えたバッテリパックの動作回数を用いることによって、バッテリパックに蓄積されたダメージに応じたバッテリパックの保護を実現できる。
【0013】
また、制御部は、バッテリパックの充電時において、バッテリパックの使用履歴に応じて0未満の値である減算値を算出する充電時算出処理と、減算値をカウンタ値に加算した値に、カウンタ値を更新する充電時更新処理と、を実行するように構成されていてもよい。
【0014】
バッテリパックの充電時には減算値が算出され、カウンタ値が、カウンタ値に減算値を加算した値に更新される。充電時においてもカウンタ値を更新することによって、カウンタ値をバッテリパックの状態を適切に表した値にすることができる。
【0015】
また、制御部は、充電時算出処理において、使用履歴が多いほど、減算値を大きく算出するように構成されていてもよい。
充電時においても、バッテリパックの蓄積ダメージが大きいほど、カウンタ値が緩やかに減少する。よって、バッテリパックの使用履歴に応じて、バッテリパックを適切に保護することができる。
【0016】
また、制御部は、バッテリパックの充電時において、前回の充電時から今回の充電時までの間におけるバッテリパックの負荷状態が、所定の条件を満たしている場合に、使用履歴を増加させる履歴処理を実行するように構成されていてもよい。
【0017】
バッテリパックの負荷状態が所定の条件を満たしている場合に、次の充電時に、使用履歴を増加させる。これにより、放電時に使用履歴を増加させる場合よりも、処理が容易になり、処理負荷を低減することができる。
【0018】
また、制御部は、バッテリパックの放電時において、使用履歴に応じて、保護カウンタ閾値を設定する保護閾値設定処理を実行するように構成されていてもよい。
使用履歴に応じて、保護カウンタ閾値が設定される。これにより、バッテリパックの使用履歴に応じて、カウンタ値が保護カウンタ閾値に到達する到達時間が変化するため、バッテリパックの使用履歴に応じて、バッテリパックを適切に保護することができる。
【0019】
また、制御部は、保護閾値設定処理において、使用履歴が多いほど、保護カウンタ閾値を小さく設定するように構成されていてもよい。
使用履歴が多いほど、保護カウンタ閾値が小さく設定される。したがって、バッテリパックの蓄積ダメージが大きいほど、カウンタ値が早く保護カウンタ閾値に到達し、バッテリパックからの放電が禁止される。よって、バッテリパックの使用履歴に応じて、バッテリパックを適切に保護することができる。
【0020】
また、制御部は、バッテリパックの放電時において、使用履歴に応じて、過負荷カウンタ閾値を設定する過負荷閾値設定処理を実行するように構成されていてもよい。
使用履歴に応じて、過負荷カウンタ閾値が設定される。これにより、バッテリ使用履歴に応じて、カウンタ値が過負荷カウンタ閾値に到達するまでの到達時間が変化するため、バッテリパックの使用履歴に応じて、バッテリパックの使用履歴の増加速度を変化させることができる。
【0021】
また、制御部は、過負荷閾値設定処理において、使用履歴が多いほど、過負荷カウンタ閾値を小さく設定するように構成されていてもよい。
使用履歴が多いほど、過負荷カウンタ閾値が小さく設定される。したがって、バッテリパックの蓄積ダメージが大きいほど、カウンタ値が早く過負荷カウンタ閾値に到達する。よって、バッテリパックの使用履歴が多いほど、使用履歴の増加速度を上げることができる。ひいては、バッテリパックをより早く保護することができようになる。
【0022】
本開示の別の1つの局面のバッテリパックは、制御部を備える。制御部は、バッテリパックの使用履歴に応じて、パラメータ閾値を設定する閾値設定処理と、バッテリパックの動作パラメータが、閾値設定処理において設定されたパラメータ閾値に到達した場合に、バッテリパックからの放電を禁止する禁止処理と、を実行するように構成される。
【0023】
上述のバッテリパックによれば、バッテリパックの使用履歴に応じてパラメータ閾値が設定され、バッテリパックの動作パラメータが設定されたパラメータ閾値に到達した場合に、バッテリパックからの放電が禁止される。したがって、バッテリパックの使用履歴に応じて、動作パラメータがパラメータ閾値に到達する到達時間が変化するため、バッテリパックの使用履歴に応じて、バッテリパックを適切に保護することができる。
【0024】
また、動作パラメータは、バッテリパックの温度を含んでもよい。パラメータ閾値は、保護温度閾値を含んでもよい。制御部は、閾値設定処理において、使用履歴が多いほど、保護温度閾値を小さく設定し、禁止処理において、バッテリパックの温度が保護温度閾値に到達した場合に、放電を禁止するように構成されていてもよい。
【0025】
使用履歴が多いほど、保護温度閾値が小さく設定され、バッテリパックの温度が保護温度閾値に到達した場合に、バッテリパックからの放電が禁止される。したがって、バッテリパックの蓄積ダメージが大きいほど、バッテリパックの温度が早く保護温度閾値に到達して、バッテリパックからの放電が禁止される。よって、バッテリパックの使用履歴に応じて、バッテリパックを適切に保護することができる。
【0026】
また、制御部は、カウンタ値を備えもよい。動作パラメータは、カウンタ値を含んでもよい。パラメータ閾値は、保護カウンタ閾値を含んでもよい。制御部は、バッテリパックの放電時において、加算値を算出する放電時算出処理と、加算値をカウンタ値に加算した値に、カウンタ値を更新する放電時更新処理と、を実行するように構成されていてもよい。さらに、制御部は、閾値設定処理において、使用履歴が多いほど、保護カウンタ閾値を小さく設定し、禁止処理において、カウンタ値が保護カウンタ閾値に到達した場合に、放電を禁止するように構成されていてもよい。
【0027】
使用履歴が多いほど、保護カウンタ閾値が小さく設定され、カウンタ値が保護カウンタ閾値に到達した場合に、バッテリパックからの放電が禁止される。したがって、バッテリパックの蓄積ダメージが大きいほど、カウンタ値が早く保護カウンタ閾値に到達して、バッテリパックからの放電が禁止される。よって、バッテリパックの使用履歴に応じて、バッテリパックを適切に保護することができる。
【0028】
また、制御部は、バッテリパックの充電時に、0未満の値である減算値を算出する充電時算出処理と、減算値をカウンタ値に加算した値に、カウンタ値を更新する充電時更新処理と、を実行するように構成されていてもよい。
【0029】
充電時においてもカウンタ値を更新することによって、カウンタ値をバッテリパックの状態に適切に表した値にすることができる。
【図面の簡単な説明】
【0030】
【
図1】第1実施形態に係るバッテリパックの外観を示す図である。
【
図2】第1実施形態に係るバッテリパックと電動工具の電気的構成を示す図である。
【
図3】第1実施形態に係るバッテリパックと充電器の電気的構成を示す図である。
【
図4A】第1実施形態に係る過電流に基づいた放電禁止判定処理を示すフローチャートの一部である。
【
図4B】第1実施形態に係る過電流に基づいた放電禁止判定処理を示すフローチャートの残りの一部である。
【
図5】第1実施形態に係る温度に基づいた放電禁止判定処理を示すフローチャートである。
【
図6】第1実施形態に係る放電電流に対する加算値の3種類のマップを示す図である。
【
図7】
図6に示す3種類のマップを使用した場合における放電電流に対する過放電判定及び放電停止までの到達時間を示す図である。
【
図8A】第2実施形態に係る過電流に基づいた放電禁止判定処理を示すフローチャートの一部である。
【
図8B】第2実施形態に係る過電流に基づいた放電禁止判定処理を示すフローチャートの残りの一部である。
【発明を実施するための形態】
【0031】
以下、図面を参照しながら、本開示を実施するための形態を説明する。
(第1実施形態)
<1-1.構成>
<1-1-1.バッテリパックの構成>
まず、本実施形態に係るバッテリパック40の構成について、
図1を参照して説明する。バッテリパック40は、後述する電動工具10に装着された場合に、電動工具10に電力を供給する。また、バッテリパック40は、後述する充電器80に装着された場合に、充電器80から電力を受給する。
【0032】
バッテリパック40は、電動工具10又は充電器80に電気的且つ機械的に接続するためのコネクタ部42を備える。コネクタ部42は、2つの電源端子部44と、接続端子部46と、を備える。
【0033】
2つの電源端子部44のうちの第1の電源端子部44は、バッテリパック40の長手方向に延伸し端部が開口した溝と、溝内に設けられた正極端子44Aと、を備える。2つの電源端子部44のうちの第2の電源端子部44は、第1の電源端子部44と同様の溝と、溝内に設けられた負極端子44Bと、を備える。接続端子部46は、3つの信号端子46A,46B,46Cを備える。
【0034】
バッテリパック40を第1の方向にスライドさせて、2つの電源端子部44に電動工具10又は充電器80の板状の端子を挿入させることにより、バッテリパック40と電動工具10又は充電器80が電気的且つ機械的に接続される。また、バッテリパック40を第1の方向と逆の第2の方向にスライドさせることにより、バッテリパック40と電動工具10又は充電器80との電気的且つ機械的な接続が解除される。
【0035】
<1-1-2.バッテリパックと電動工具の電気的構成>
次に、バッテリパック40と電動工具10の電気的構成について、
図2を参照して説明する。電動工具10としては、インパクトドライバ、ハンマドリル、グラインダなどが挙げられる。なお、本実施形態では、バッテリパック40から電力を受給する接続機器として電動工具10を挙げて説明するが、電力を受給する接続機器は、電動工具10以外の電動作業機であってもよい。例えば、草刈機、ヘッジトリマ、ブロワなどの園芸工具であってもよい。
【0036】
バッテリパック40は、バッテリ50と、バッテリ制御回路60と、正極端子44Aと、負極端子44Bと、3つの信号端子46A,46B,46Cと、を備える。
バッテリ50は、直列に接続された複数のバッテリセルを備える。バッテリ50は、例えば、リチウムイオン二次電池などである。バッテリ50の正極は、正極側電源ラインL2Aを介して正極端子44Aに接続されている。バッテリ50の負極は、負極側電源ラインL2Bを介して負極端子44Bに接続されている。
【0037】
バッテリ制御回路60は、電流測定回路62と、電圧測定回路64と、温度測定回路66と、スイッチ操作検出回路68と、充電器検出回路72と、Main Control Unit(以下、MCU)70と、トランジスタQ4とを備える。
【0038】
電流測定回路62は、正極側電源ラインL2A又は負極側電源ラインL2Bに流れる電流を検出し、検出電流に応じた電流検出信号をMCU70に出力する。
電圧測定回路64は、バッテリ50に含まれる各バッテリセルの電圧を順番に測定し、測定電圧に応じた電圧検出信号をMCU70に出力する。
【0039】
温度測定回路66は、バッテリ50周囲に配置されるサーミスタを含み、サーミスタを介してバッテリ温度を測定して、測定温度に応じた温度検出信号をMCU70に出力する。
トランジスタQ4は、NチャネルMOSFETを含む。トランジスタQ4のソース端子は、グランドに接地され、トランジスタQ4のゲート端子は、MCU70に接続されている。トランジスタQ4のドレイン端子は、スイッチ操作検出回路68及び信号端子46Aに接続されている。通常、MCU70からトランジスタQ4へはハイレベル信号が出力されており、トランジスタQ4はオン状態になっている。そして、MCU70からトランジスタQ4へローレベル信号である放電禁止信号が出力されると、トランジスタQ4はオフ状態になる。
【0040】
スイッチ操作検出回路68は、トランジスタQ3と、抵抗器R6,R7,R8とを備え、電動工具10のトリガスイッチがオンに切り替わったことを検出する。
トランジスタQ3は、NPN型バイポーラトランジスタを含む。トランジスタQ3のベース端子は、抵抗器R6の第1端及び抵抗器R7の第1端に接続されている。抵抗器R6の第2端は、トランジスタQ4のドレイン端子に接続されている。抵抗器R6とトランジスタQ4の接続点は、信号端子46Aに接続されている。
【0041】
抵抗器R7の第2端及びトランジスタQ3のエミッタ端子は、バッテリパック40におけるグランドに接地されている。
抵抗器R8の第1端は、電圧Vdd(例えば、直流5V)の電源に接続されており、抵抗器R8の第2端は、トランジスタQ3のコレクタ端子に接続されている。抵抗器8とトランジスタQ3の接続点は、MCU70に接続されている。
【0042】
なお、バッテリパック40のグランドは、負極側電源ラインL2Bに接続されている。このため、バッテリパック40が電動工具10に装着された際には、バッテリパック40と電動工具10のグランドが同電位となり、これら各グランドはバッテリ50の負極とも同電位になる。
【0043】
充電器検出回路72は、充電器80から信号端子46Cにハイレベル信号が入力されたときに、充電器80が接続されたことを示す検出信号をMCU70に入力する。充電器検出回路72は、スイッチ操作検出回路68と同様に構成されている。
【0044】
MCU70は、CPU70aと、メモリ70bと、を備える。メモリ70bは、不揮発性メモリと、揮発性メモリとを備える。CPU70aは、メモリ70bに記憶されている各種プログラムに従って、各種処理を実行する。
【0045】
MCU70は、バッテリパック40が電動工具10及び充電器80に接続されていない場合には、消費電力を抑制するためスリープする。MCU70は、スリープ状態では、放電禁止信号を出力する。MCU70は、電動工具10又は充電器80に接続されたことを検出すると、ウェイクアップする。MUC70は、ウェイクアップすると、バッテリパック40が放電可能な状態か否か判定する。そして、MCU70は、バッテリパック40が放電可能な状態であれば放電禁止信号の出力を停止し、バッテリパック40が放電不可能な状態であれば放電禁止信号を出力する。
【0046】
次に、電動工具10は、モータM1と、駆動スイッチSW1と、制御用電源回路36と、入出力回路38と、トランジスタQ1と、作業機正極端子32Aと、作業機負極端子32Bと、作業機信号端子34Aと、を備える。
【0047】
作業機正極端子32Aは、正極端子44Aに接続され、作業機負極端子32Bは、負極端子44Bに接続される。また、作業機信号端子34Aは、信号端子46Aに接続される。
駆動スイッチSW1は、作業機正極端子32Aに接続された正極側電源ラインL1A上に設けられている。駆動スイッチSW1は、電動工具10のトリガスイッチが引かれると(すなわちオンになると)、オンになり、トリガスイッチが放されると(すなわちオフになると)オフになる。
【0048】
トランジスタQ1は、NチャネルMOSFETを含む。トランジスタQ1は、作業機負極端子32Bに接続された負極側電源ラインL1B上に設けられている。トランジスタQ1のソース端子は、作業機負極端子32Bに接続されており、トランジスタQ1のドレイン端子は、モータM1の負極に接続されている。また、トランジスタQ1のゲート端子は、入出力回路38に接続されている。
【0049】
モータM1は、ブラシ付き直流モータである。モータM1の正極は、正極側電源ラインL1A及び駆動スイッチSW1を介して、作業機正極端子32Aに接続されている。モータM1の負極は、負極側電源ラインL1B及びトランジスタQ1を介して、作業機負極端子32Bに接続されている。
【0050】
また、モータM1の正極と負極との間には、負極から正極に向かう方向を順方向としてダイオードD1が接続されている。ダイオードD1は、いわゆるフライホイールダイオードである。
【0051】
制御用電源回路36は、ツェナーダイオードZD1と、コンデンサC1と、抵抗器R1とを備え、電動工具10の内部回路を駆動するための電源電圧を生成する。ツェナーダイオードZD1のカソードは、抵抗器R1を介して正極側電源ラインL1Aに接続されており、ツェナーダイオードZD1のアノードは、電動工具10のグランドに接地されている。
【0052】
コンデンサC1は、電解コンデンサである。コンデンサC1の正極は、ツェナーダイオードZD1のカソードとともに、抵抗器R1を介して、正極側電源ラインL1Aに接続され、コンデンサC1の負極は、電動工具10のグランドに接地されている。
【0053】
入出力回路38は、トランジスタQ2と、抵抗器R2,R3,R4,R5とを備える。トランジスタQ2は、NPN型バイポーラトランジスタを含む。抵抗器R2の第1端は、電圧Vccの電源に接続されており、抵抗器R2の第2端は、抵抗器R3の第1端に接続されている。抵抗器R2と抵抗器R3の接続点は、作業機信号端子34Aに接続されている。
【0054】
抵抗器R3の第2端は、抵抗器R4の第1端に接続されている。抵抗器R3と抵抗器R4の接続点は、トランジスタQ2のベース端子に接続されている。抵抗器R4の第2端及びトランジスタQ2のエミッタ端子は、グランドに接地されている。
【0055】
抵抗器R5の第1端は、電圧Vccの電源に接続されており、抵抗器R5の第2端は、トランジスタQ2のコレクタ端子に接続されている。抵抗器R5とトランジスタQ2の接続点は、トランジスタQ1のゲート端子に接続されている。
【0056】
バッテリパック40が電動工具10に装着されて、トリガスイッチが引かれると、駆動スイッチSW1がオンに切り替わる。これにより、正極側電源ラインL1Aは、作業機正極端子32Aを介して、バッテリパック40の正極側電源ラインL2Aに接続される。
【0057】
よって、制御用電源回路36では、正極側電源ラインL1Aから、抵抗器R1を介してツェナーダイオードZD1のカソードにバッテリ電圧が印加され、ツェナーダイオードZD1によって所定の直流電圧(例えば5V)に降圧される。そして、コンデンサC1は、降圧された直流電圧により充電され、コンデンサC1の両端子間の電圧は、電動工具10の内部回路を動作させるための電源電圧Vccとして、各種内部回路に供給される。
【0058】
また、駆動スイッチSW1がオンに切り替わったときに、トランジスタQ4はオフ状態になっている。そのため、作業機信号端子34Aから信号端子46Aに、バッテリパック40内の電源電圧Vccに対応したハイレベルの信号が入力される。これにより、トランジスタQ3がオフからオンに切り替わり、スイッチ操作検出回路68からMCU70への入力信号がハイレベルからローレベルになる。MCU70は、スイッチ操作検出回路68からの入力信号の切り替わりに応じて、電動工具10の接続を検出し、スリープ状態からウェイクアップする。
【0059】
また、MCU70から放電禁止信号の出力が停止されて、トランジスタQ4がオンに切り替わると、作業機信号端子34Aがグランドに接地され、トランジスタQ2がオフに切り替わる。その結果、トランジスタQ1のゲート端子に、電源電圧Vccが印加されて、トランジスタQ1がオンに切り替わる。一方、MCU70から放電禁止信号が出力されて、トランジスタQ4がオフに切り替わると、トランジスタQ2のベース端子に電流が流れ、トランジスタQ2がオンに切り替わる。その結果、トランジスタQ1のゲート端子がグランドに接地されるため、トランジスタQ1はオフに切り替わる。
【0060】
したがって、トリガスイッチが引かれて駆動スイッチSW1がオン状態であり、且つ、MCU70から放電禁止信号の出力が停止されてトランジスタQ1がオン状態である場合に、モータM1は、バッテリパック40から電力の供給を受けて駆動される。
【0061】
<1-1-3.バッテリパックと充電器の電気的構成>
次に、バッテリパック40と充電器80の電気的構成について、
図3を参照して説明する。充電器80は、整流回路92と、充電用スイッチング電源回路94と、制御用スイッチング電源回路98と、MCU96と、充電器正極端子84Aと、充電器負極端子84Bと、充電器信号端子86C,86Bと、を備える。
【0062】
充電器正極端子84Aは、正極端子44Aに接続され、充電器負極端子84Bは、負極端子44Bに接続される。また、充電器信号端子86Bは信号端子46Bに接続され、充電器信号端子86Cは信号端子46Cに接続される。
【0063】
整流回路92は、商用電源等の交流電源から供給される交流電圧を整流する。整流回路92により整流された出力は、充電用スイッチング電源回路94及び制御用スイッチング電源回路98に出力される。
【0064】
充電用スイッチング電源回路94は、整流回路92からの出力に基づきバッテリ50への充電を行うスイッチング回路であり、MCU96により駆動制御される。
MCU96は、バッテリパック40内のMCU70と同様に、CPUとメモリとを備え、充電器信号端子86Bに接続されている。MCU96は、充電器信号端子86Bを介して、バッテリパック40のMCU70からバッテリ状態を取り込む。そして、MCU96は、取り込んだバッテリ状態に基づいて、充電用スイッチング電源回路94を駆動制御する。
【0065】
制御用スイッチング電源回路98は、MCU96等の内部回路を動作させるための電源電圧Vee(例えば直流5V)を生成する。
充電器80のグランドは、充電器負極端子84B、及び、負極端子44Bを介して、バッテリ50の負極に接続される。また、充電用スイッチング電源回路94によって生成された充電電圧は、充電器正極端子84A、及び、正極端子44Aを介して、バッテリ50の正極に印加される。
【0066】
また、充電器信号端子86Cには、制御用スイッチング電源回路98によって生成された電源電圧Veeが印加される。
このため、バッテリパック40が充電器80に装着されて、制御用スイッチング電源回路98によって電源電圧Veeが生成されると、信号端子46Cを介して、電源電圧Veeに対応したハイレベルの信号が充電器検出回路72に入力される。これにより、充電器検出回路72からMCU70に入力される検出信号の信号レベルが、ハイレベルからローレベルに変化する。MCU70は、充電器検出回路72からの入力信号の切り替わりに応じて、充電器80の接続を検出し、スリープ状態からウェイクアップする。
【0067】
<1-2.処理>
<1-2-1.過電流に基づいた放電禁止判定処理>
次に、バッテリパック40のMCU70が実行する過電流に基づいた放電禁止判定処理について、
図4A及び
図4Bのフローチャートを参照して説明する。MCU70は、バッテリパック40に電動工具10又は充電器80が接続されてウェイクアップすると、放電禁止判定処理の実行を開始する。MCU70は、履歴カウンタOLD_Cの値と過電流カウンタの値とを備える。
【0068】
まず、S10では、バッテリパック40に接続された機器が、電動工具10か充電器80かを判定する。S10において、接続された機器が電動工具10であると判定された場合は、S20の処理へ進む。
【0069】
S20では、電流測定回路62により検出された放電電流の検出信号を読み込む。
続いて、S30では、履歴カウンタOLD_Cの値が設定値Y1以下か否か判定する。履歴カウンタOLD_Cの値は、バッテリパック40の使用履歴を表す。履歴カウンタOLD_Cの値は、バッテリパック40の放電状態が所定の条件を満たした場合に、増加される。詳しくは、履歴カウンタOLD_Cの値は、バッテリパック40が過負荷状態で動作した場合に、増加される。履歴カウンタOLD_Cの値が大きいほど、バッテリパック40の蓄積ダメージが大きいことを示す。履歴カウンタOLD_Cの初期値は0である。
【0070】
S30において、履歴カウンタOLD_Cの値が設定値Y1以下であると判定された場合は、S40の処理へ進む。
S40では、バッテリパック40の使用履歴に応じて、加算値を算出する。詳しくは、パターンAのカウンタマップを用いて、加算値を算出する。加算値は、過電流カウンタ値に加算する値である。過電流カウンタ値は、バッテリパック40の負荷状態を示し、バッテリパック40が放電可能か否か判定するために用いられるとともに、履歴カウンタOLD_Cの値を増加させるか否か判定するために用いられる。過電流カウンタの初期値は0である。
【0071】
図6に、カウンタマップの一例を示す。パターンAのカウンタマップは、バッテリパック40の蓄積ダメージが3段階中の最小である場合に用いるマップである。MCU70は、パターンAのカウンタマップを用いて、放電電流値が所定値以上の場合には0以上の加算値を算出し、放電電流値が所定値未満の場合には0以下の加算値を算出する。放電電流値が大きいほど加算値は大きくなる。
【0072】
一方、S30において、履歴カウンタOLD_Cの値が設定値Y1よりも大きいと判定された場合は、S50の処理へ進む。
S50では、履歴カウンタOLD_Cの値が、設定値Y1よりも大きく、且つ設定値Y2以下であるか否か判定する。設定値Y2は設定値Y1よりも大きい値である。S50において、履歴カウンタOLD_Cの値が、設定値Y1よりも大きく、且つ設定値Y2以下であると判定された場合は、S60の処理へ進む。
【0073】
S60では、パターンBのカウンタマップを用いて、加算値を算出する。パターンBのカウンタマップは、バッテリパック40の蓄積ダメージが3段階中の中である場合に用いるマップである。カウンタパターンBを用いる場合、カウンタパターンAを用いる場合と比べて、加算値が大きく算出される。
【0074】
一方、S50において、履歴カウンタOLD_Cの値が設定値Y2よりも大きいと判定された場合は、S70の処理へ進む。
S70では、パターンCのカウンタマップを用いて、加算値を算出する。パターンCのカウンタマップは、バッテリパック40の蓄積ダメージが3段階中の最大である場合に用いるマップである。カウンタパターンCを用いる場合、カウンタパターンBを用いる場合と比べて、加算値が大きく算出される。すなわち、MCU70は、履歴カウンタOLD_Cの値が大きいほど、加算値を大きく算出する。
【0075】
続いて、S80では、過電流カウンタ値を更新する。具体的には、現在の過電流カウンタ値に、S40,S60,S70のいずれかにおいて算出された加算値を加算した値に、過電流カウンタ値を更新する。
【0076】
続いて、S90では、過電流カウンタ値が、過負荷カウンタ閾値X1以上か否か判定する。過負荷カウンタ閾値X1は予め設定された値であり、バッテリパック40の負荷状態が過負荷であるか否かを判定するための閾値である。過負荷状態は、バッテリパック40の放電を禁止する必要はないが、バッテリパック40にダメージが蓄積される負荷状態である。
【0077】
S90において、過電流カウンタ値が過負荷カウンタ閾値X1以上であると判定された場合は、S100の処理へ進み、過電流カウンタ値が過負荷カウンタ閾値X1未満であると判定された場合は、S120の処理へ進む。
【0078】
S100では、過負荷判定フラグがオフになっているか否か判定する。S100において、過負荷判定フラグがオフになっていると判定された場合は、S110の処理へ進み、過負荷判定フラグがオンになっていると判定された場合は、S120の処理へ進む。過負荷判定フラグの初期状態はオフである。
【0079】
S110では、過負荷判定フラグをオフからオンにする。
S120では、過電流カウンタ値が保護カウンタ閾値X2以上か否か判定する。保護カウンタ閾値X2は、バッテリパック40が過放電状態か否か判定するための閾値である。過負荷カウンタ閾値X1は、保護カウンタ閾値X2よりも小さい値である。
【0080】
S120において、過電流カウンタ値が保護カウンタ閾値X2以上であると判定された場合は、S130の処理へ進み、過電流カウンタ値が保護カウンタ閾値X2未満であると判定された場合は、S140の処理へ進む。
【0081】
S130では、放電禁止信号を出力する。
続いて、S140では、放電禁止信号を出力しているか否か判定する。S140において、放電禁止信号を出力していないと判定された場合は、S180の処理へ進む。一方、S140において、放電禁止信号を出力していると判定された場合は、S150の処理へ進む。
【0082】
S150では、温度測定回路66により測定されたバッテリ温度が、温度閾値以下か否か判定する。S150において、バッテリ温度が温度閾値よりも大きいと判定された場合は、S180の処理へ進む。一方、S150において、バッテリ温度が温度閾値以下であると判定された場合は、S160の処理へ進む。
【0083】
S160では、過電流カウンタ値が0か否か判定する。S160において、過電流カウンタ値が0よりも大きいと判定された場合は、S180の処理へ進む。一方、S160において、過電流カウンタ値が0であると判定された場合は、S170の処理へ進む。
【0084】
S170では、放電禁止信号の出力を停止する。すなわち、バッテリ温度が十分に低く、過電流カウンタ値が減少していることにより、バッテリパック40が過放電状態から回復したと判定して、放電禁止信号の出力を停止する。
【0085】
続いて、S180では、電動工具10が接続されているか否か判定する。S180において、電動工具10が接続されていると判定された場合は、S20の処理へ戻る。一方、S180において、電動工具10が接続されていないと判定された場合、すなわち、バッテリパック40が電動工具10から取り外されたと判定された場合は、過電流カウンタ値、履歴カウンタOLD_Cの値、及び過負荷判定フラグの設定をメモリ70bに記憶して、本処理を終了する。
【0086】
また、S10において、接続された機器が充電器80であると判定された場合は、S190の処理へ進む。
S190では、過負荷判定フラグがオンであるか否か判定する。S190において、過負荷フラグがオンであると判定された場合は、S200の処理へ進み、過負荷判定フラグがオフであると判定された場合は、S220の処理へ進む。
【0087】
S200では、履歴カウンタOLD_Cの値を「1」増加させる。すなわち、前回の充電時から今回の充電時の間における放電時において、バッテリパック40が過負荷になった場合には、今回の充電時において、履歴カウンタOLD_Cの値を更新する。これにより、履歴カウンタOLD_Cの値が、バッテリパック40が過負荷になった動作回数に応じた値になる。このように、放電時ではなく、充電時に履歴カウンタOLD_Cの値を更新することにより、放電禁止判定処理が容易になる。
【0088】
続いて、S210において、過負荷判定フラグをオンからオフにする。
続いて、S220~S270では、S30~S80と同様の処理を実行する。ただし、S230、S250、S260では、加算値の代わりに0未満の減算値を算出する。例えば、S230、S250、S260では、パターンA,B,Cのカウンタマップにおいて、放電電流値が0のときの0未満の加算値を減算値として算出する。ここでも、MCU70は、履歴カウンタOLD_Cの値が大きいほど、減算値を大きく、すなわち、減算値の絶対値を小さく算出する。
【0089】
続いて、S280では、充電を開始するか否か判定する。S280において、充電を開始しないと判定された場合は、S220の処理へ戻り、充電を開始すると判定された場合は、S290の処理へ進む。
【0090】
S290では、放電禁止信号の出力を停止する。
S300~S350では、S220~S270と同様の処理を実行する。
続いて、S360では、充電が完了したか否か判定する。S360において、充電が完了していないと判定された場合は、S300の処理へ戻る。一方、S360において、充電が完了したと判定された場合は、過電流カウンタ値、履歴カウンタOLD_Cの値、及び過負荷判定フラグの設定をメモリ70bに記憶して、本処理を終了する。
【0091】
図7に、第1実施形態に係る過電流に基づいた放電禁止判定処理において、パターンA,B,Cのカウンタマップを用いた場合における、過負荷判定までの到達時間と、放電停止までの到達時間とを示す。
図7に示すように、同じ放電電流値において、パターンBのカウンタマップを用いた場合、パターンAのカウンタマップを用いた場合と比べて、過放電判定までの到達時間及び放電停止までの到達時間が短くなっている。また、同じ放電電流値において、パターンCのカウンタマップを用いた場合、パターンBのカウンタマップを用いた場合と比べて、過放電判定までの到達時間及び放電停止までの到達時間がさらに短くなっている。すなわち、バッテリパック40の蓄積ダメージが大きいほど、早く過負荷判定されて、履歴カウンタOLD_Cの値が増加しやすくなっているとともに、バッテリパック40が早く保護されるようになっている。
【0092】
<1-2-2.温度に基づいた放電禁止判定処理>
次に、バッテリパック40のMCU70が実行するバッテリ温度に基づいた放電禁止判定処理について、
図5のフローチャートを参照して説明する。MCU70は、バッテリパック40に電動工具10が接続されたことを検出すると、
図4A及び
図4Bに示すフローチャートと並列に、本処理を実行する。
【0093】
まず、S400では、温度測定回路66により測定されたバッテリ温度を読み込む。
続いて、S410では、履歴カウンタOLD_Cの値が設定値Y1以下か否か判定する。S410において、履歴カウンタOLD_Cの値が設定値Y1以下であると判定された場合は、S420の処理へ進む。
【0094】
S420では、第1保護温度閾値Z1に、パターンAの第1設定値Z1aを設定し、第2保護温度閾値Z2に、パターンAの第2設定値Z2aを設定する。第1保護温度閾値Z1は、バッテリパック40がバッテリ50にダメージを与えうる過負荷状態か否かを判定するための閾値である。第2保護温度閾値Z2は、バッテリパック40が使用可能な温度状態か否か判定するための閾値である。
【0095】
一方、履歴カウンタOLD_Cの値が設定値Y1よりも大きいと判定された場合は、S430の処理へ進む。
S430では、履歴カウンタOLD_Cの値が、設定値Y1よりも大きく、且つ設定値Y2以下であるか否か判定する。S430において、履歴カウンタOLD_Cの値が、設定値Y1よりも大きく、且つ設定値Y2以下であると判定された場合は、S440の処理へ進む。
【0096】
S440では、第1保護温度閾値Z1に、パターンBの第1設定値Z1bを設定し、第2保護温度閾値Z2に、パターンBの第2設定値Z2bを設定する。第1設定値Z1a>第1設定値Z1b、第2設定値Z2a>第2設定値Z2bになっている。
【0097】
一方、S430において、履歴カウンタOLD_Cの値が設定値Y2よりも大きいと判定された場合は、S450の処理へ進む。
S450では、第1保護温度閾値Z1に、パターンCの第1設定値Z1cを設定し、第2保護温度閾値Z2に、パターンCの第2設定値Z2cを設定する。第1設定値Z1b>第1設定値Z1c、第2設定値Z2b>第2設定値Z2cになっている。
【0098】
続いて、S460では、バッテリ温度が、第1保護温度閾値Z1以上か否か判定する。S460において、バッテリ温度が第1保護温度閾値Z1以上と判定された場合は、S470の処理へ進み、バッテリ温度が第1保護温度閾値Z1未満と判定された場合は、S480の処理へ進む。
【0099】
S470及びS480では、S100及びS110と同様の処理を実行する。
続いて、S490では、バッテリ温度が、第2保護温度閾値Z2以上か否か判定する。S490において、バッテリ温度が第2保護温度閾値Z2以上と判定された場合は、S500の処理へ進み、バッテリ温度が第2保護温度閾値Z2未満と判定された場合は、S510の処理へ進む。
【0100】
続いて、S500~S550では、S130~S180と同様の処理を実行する。
第1実施形態に係るバッテリ温度に基づいた放電禁止処理を実行することにより、履歴カウンタOLD_Cの値が大きいほど、すなわち、バッテリパック40の蓄積ダメージが大きいほど、バッテリ温度が早く第1保護温度閾値Z1に到達して、履歴カウンタOLD_Cの値が増加しやすくなっている。また、履歴カウンタOLD_Cの値が大きいほど、バッテリ温度が早く第2保護温度閾値Z2に到達して、バッテリパック40が早く保護されるようになっている。
【0101】
<1-3.効果>
以上説明した第1実施形態によれば、以下の効果が得られる。
(1)履歴カウンタOLD_Cの値に応じて加算値が算出され、過電流カウンタン値に算出された加算値が加算されて、過電流カウンタ値が更新される。そして、過電流カウンタ値が保護カウンタ閾値X2に到達した場合に、バッテリパック40からの放電が禁止される。したがって、バッテリパック40の使用履歴に応じて、過電流カウンタ値が保護カウンタ閾値X2に到達する到達時間が変化するため、バッテリパック40の使用履歴に応じて、バッテリパック40を適切に保護することができる。
【0102】
(2)履歴カウンタOLD_Cの値が大きいほど、加算値が大きく算出される。したがって、バッテリパック40の蓄積ダメージが大きいほど、過電流カウンタ値が早く保護カウンタ閾値X2に到達する。よって、バッテリパック40の使用履歴に応じて、バッテリパック40を適切に保護することができる。
【0103】
(3)放電電流値が所定値以上の場合には0以上の加算値が算出され、放電電流値が所定値未満の場合には0以下の加算値が算出される。よって、放電電流値が所定値以上の場合には、バッテリパックの蓄積ダメージが大きいほど、カウンタ値が急に増加し、放電電流値が所定値未満の場合には、バッテリパック40の蓄積ダメージが大きいほど、過電流カウンタ値が緩やかに減少する。よって、バッテリパック40の使用履歴に応じて、バッテリパック40を適切に保護することができる。
【0104】
(4)使用履歴として、過電流カウンタ値が過負荷カウンタ閾値X1を超えたバッテリパック40の動作回数を用いることによって、バッテリパック40に蓄積されたダメージに応じたバッテリパック40の保護を実現できる。
【0105】
(5)使用履歴として、バッテリ温度が第1保護温度閾値Z1を超えたバッテリパック40の動作回数を用いることによって、バッテリパック40に蓄積されたダメージに応じたバッテリパック40の保護を実現できる。
【0106】
(6)バッテリパック40の充電時には0未満の減算値が算出され、過電流カウンタ値が、過電流カウンタ値に減算値を加算した値に更新される。充電時においても過電流カウンタ値を更新することによって、過電流カウンタ値をバッテリパック40の状態を適切に表した値にすることができる。
【0107】
(7)充電時においても、バッテリパック40の蓄積ダメージが大きいほど、過電流カウンタ値が緩やかに減少する。よって、バッテリパック40の使用履歴に応じて、バッテリパック40を適切に保護することができる。
【0108】
(8)バッテリパック40の放電時に過負荷判定フラグがオンに設定された場合に、次の充電時に、履歴カウンタOLD_Cの値を増加させる。これにより、放電時に履歴カウンタOLD_Cの値を増加させる場合よりも、放電禁止判定処理が容易になり、処理負荷を低減することができる。
【0109】
(9)履歴カウンタOLD_Cの値が大きいほど、第1保護温度閾値Z1が小さく設定され、バッテリ温度が早く第1保護温度閾値Z1に到達するため、履歴カウンタOLD_Cの値を増加させやすい。また、履歴カウンタOLD_Cの値が大きいほど、第2保護温度閾値Z2が小さく設定され、バッテリ温度が早く第2保護温度閾値Z2に到達するため、バッテリパック40が早く保護される。よって、バッテリパックの使用履歴に応じて、バッテリパックを適切に保護することができる。
【0110】
(第2実施形態)
<2-1.第1実施形態との相違点>
第2実施形態は、基本的な構成は第1実施形態と同様であるため、共通する構成については説明を省略し、相違点を中心に説明する。なお、第1実施形態と同じ符号は、同一の構成を示すものであって、先行する説明を参照する。
【0111】
上述した第1実施形態では、過電流に基づいた放電禁止判定処理において、履歴カウンタOLD_Cの値に応じて異なるカウンタマップを使用し、履歴カウンタOLD_Cの値が大きいほど、加算値を大きく算出していた。これに対し、第2実施形態では、履歴カウンタOLD_Cの値によらず同じカウンタマップを使用し、履歴カウンタOLD_Cの値に応じて、過負荷カウンタ閾値X1及び保護カウンタ閾値X2を変化させる点で、第1実施形態と相違する。
【0112】
<2-2.処理>
<2-2-1.過電流に基づいた放電判定処理>
次に、バッテリパック40のMCU70が実行する過電流に基づいた放電禁止判定処理について、
図8A及び
図8Bのフローチャートを参照して説明する。MCU70は、バッテリパック40に電動工具10又は充電器80が接続されてウェイクアップすると、放電禁止判定処理の実行を開始する。MCU70は、履歴カウンタOLD_Cの値と過電流カウンタ値とを備える。なお、MCU70は、バッテリパック40に電動工具10が接続されたことを検出すると、本処理と並列に、
図5に示すフローチャートを実行する。
【0113】
まず、S600及びS610では、S10及びS20と同様の処理を実行する。
続いて、S620では、カウンタマップを用いて、加算値を算出する。例えば、
図6で示すパターンBのカウンタマップを用いて、加算値を算出する。本実施形態では、履歴カウンタOLD_Cの値によらず同じカウンタマップを用いる。
【0114】
続いて、S630では、S80と同様の処理を実行する。
続いて、S640では、履歴カウンタOLD_Cの値が設定値Y1以下か否か判定する。S640において、履歴カウンタOLD_Cの値が設定値Y1以下であると判定された場合は、S650の処理へ進む。
【0115】
S650では、過負荷カウンタ閾値X1に、パターンAの第1設定値X1aを設定し、保護カウンタ閾値X2に、パターンAの第2設定値X2aを設定する。
一方、履歴カウンタOLD_Cの値が設定値Y1よりも大きいと判定された場合は、S660の処理へ進む。
【0116】
S660では、履歴カウンタOLD_Cの値が、設定値Y1よりも大きく、且つ設定値Y2以下であるか否か判定する。S660おいて、履歴カウンタOLD_Cの値が、設定値Y1よりも大きく、且つ設定値Y2以下であると判定された場合は、S670の処理へ進む。
【0117】
S670では、過負荷カウンタ閾値X1に、パターンBの第1設定値X1bを設定し、保護カウンタ閾値X2に、パターンBの第2設定値X2bを設定する。第1設定値X1a>第1設定値X1b、第2設定値X2a>第2設定値X2bになっている。
【0118】
一方、S660において、履歴カウンタOLD_Cの値が設定値Y2よりも大きいと判定された場合は、S680の処理へ進む。
S680では、過負荷カウンタ閾値X1に、パターンCの第1設定値X1cを設定し、保護カウンタ閾値X2に、パターンCの第2設定値X2cを設定する。第1設定値X1b>第1設定値X1c、第2設定値X2b>第2設定値X2cになっている。
【0119】
続いて、S690~S780では、S90~S180と同様の処理を実行する。
一方、S600において、接続された機器が充電器80であると判定された場合は、S790の処理へ進む。
【0120】
S790~S810では、S190~S210と同様の処理を実行する。
続いて、S820では、減算値を算出する。例えば、パターンBのカウンタマップにおいて、放電電流値が0のときの0未満の加算値を減算値として算出する。ここでも、履歴カウンタOLD_Cの値によらず同じカウンタマップを用いる。なお、予め設定されている減算値を用いてもよい。
【0121】
続いて、S830~S850では、S270~S290と同様の処理を実行する。
続いて、S860では、S820と同様に、減算値を算出する。
続いて、S870及びS880では、S350及びS360と同様の処理を実行する。
【0122】
第2実施形態に係る過電流に基づいた放電禁止処理を実行することにより、履歴カウンタOLD_Cの値が大きいほど、すなわち、バッテリパック40の蓄積ダメージが大きいほど、過電流カウンタ値が早く過負荷カウンタ閾値X1に到達して、履歴カウンタOLD_Cの値が増加しやすくなっている。また、履歴カウンタOLD_Cの値が大きいほど、過電流カウンタ値が早く保護カウンタ閾値X2に到達して、バッテリパック40が早く保護されるようになっている。
【0123】
<2-3.効果>
以上説明した第2実施形態によれば、上述した第1実施形態の効果(4)~(6)、(8)、(9)に加え、以下の効果が得られる。
【0124】
(10)履歴カウンタOLD_Cの値が大きいほど、保護カウンタ閾値X2が小さく設定される。したがって、バッテリパック40の蓄積ダメージが大きいほど、過電流カウンタ値が早く保護カウンタ閾値X2に到達し、バッテリパック40の放電が禁止される。よって、バッテリパック40の使用履歴に応じて、バッテリパック40を適切に保護することができる。
【0125】
(11)履歴カウンタOLD_Cの値が大きいほど、過負荷カウンタ閾値X1が小さく設定される。したがって、バッテリパック40の蓄積ダメージが大きいほど、過電流カウンタ値が早く過負荷カウンタ閾値X1に到達する。よって、履歴カウンタOLD_Cの値が大きいほど、履歴カウンタOLD_Cの値が増加しやすくなり、バッテリパック40をより早く保護することができるようになる。
【0126】
(他の実施形態)
以上、本開示を実施するための形態について説明したが、本開示は上述の実施形態に限定されることなく、種々変形して実施することができる。
【0127】
(a)第2実施形態では、第1実施形態に係る
図4A及び
図4Bのフローチャートの代わりに、
図8A及び
図8Bのフローチャートを実行したが、これらの両方のフローチャートを並列に実行してもよい。すなわち、
図4A及び
図4Bに示すフローチャートと、
図5に示すフローチャートと、
図8A及び
図8Bに示すフローチャートを並列に実行してもよい。また、
図4A及び
図4Bに示すフローチャートと、
図5に示すフローチャートと、
図8A及び
図8Bに示すフローチャートとの3つのフローチャートのうちの1つのフローチャートのみを実行してもよい。並行に実行する場合は、過電流カウンタが過負荷保護カウンタ閾値を超えることによってONする判定フラグと、バッテリ温度が第1保護温度閾値を超えることによってONする判定フラグを共通にすることで履歴カウンタOLD_C加算しても良いし、判定フラグを別にすることで履歴カウンタ別に設定してもよい。
【0128】
(b)上記実施形態では、過負荷判定フラグがオンに設定されている場合に、充電時に履歴カウンタOLD_Cの値を増加させたが、本開示はこれに限定されるものではない。すなわち、放電時に履歴カウンタOLD_Cの値を増加させてもよい。この場合、過電流カウンタ値が過負荷カウンタ閾値X1に到達するごとに、充電時に履歴カウンタOLD_Cの値を「1」増加させてもよい。あるいは、過電流カウンタ値が過負荷カウンタ閾値X1に到達した回数が所定回数になった場合に、充電時に履歴カウンタOLD_Cの値を「1」増加させてもよい。
【0129】
(c)使用履歴として、バッテリパック40が適正動作範囲よりも周辺環境の温度が低い低温環境において動作した回数、及びバッテリパック40が適正動作範囲よりも周辺環境の温度が高い高温環境において動作した回数を用いてもよい。適性動作範囲は、バッテリパック40の種類に応じて予め設定されている。また、使用履歴として、バッテリパック40の放電を禁止した回数を用いてもよい。すなわち、使用履歴として、過電流カウンタ値が保護カウンタ閾値X2に到達した回数、及びバッテリ温度が第2保護温度閾値Z2に到達した回数を用いてもよい。
【0130】
(d)上記実施形態では、バッテリパック40の充電時に減算値を算出して、過電流カウンタ値を更新したが、充電時において過電流カウンタ値を更新しなくてもよい。
(e)上記実施形態における1つの構成要素が有する複数の機能を、複数の構成要素によって実現したり、1つの構成要素が有する1つの機能を、複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を、1つの構成要素によって実現したり、複数の構成要素によって実現される1つの機能を、1つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。
【符号の説明】
【0131】
10…電動工具、40…バッテリパック、42…コネクタ部、44…電源端子部、44…第2の電源端子部、44…第1の電源端子部、44A…正極端子、44B…負極端子、46…接続端子部、46A,46B,46C…信号端子、50…バッテリ、60…バッテリ制御回路、62…電流測定回路、64…電圧測定回路、66…温度測定回路、68…スイッチ操作検出回路、70…MCU、70a…CPU、70b…メモリ、72…充電器検出回路、80…充電器、M1…モータ。