(57)【要約】【課題】回転打撃工具において、打撃中にその打撃の状態に応じてモータを適切に制御し、ひいては打撃力を利用した作業を適切に行えるようにする。【解決手段】回転打撃工具は、モータ４と、打撃機構とを備える。打撃機構は、モータの回転力によって回転するハンマ、そのハンマの回転力を受けて回転するアンビル、及びそのアンビルに工具要素を装着するための装着部を有し、アンビルに対して外部から所定値以上のトルクが加わると、ハンマがアンビルから外れて空転し、アンビルを回転方向に打撃するよう構成されている。モータ４の駆動開始後、ハンマによるアンビルの打撃が検出された場合、制御回路３１は、打撃に起因して変動する物理量の変動幅に応じて、モータ４の駆動を制御する。【選択図】図２
2015150671.tif 000002
【特許請求の範囲】
【請求項１】
モータと、
前記モータの回転力によって回転するハンマ、そのハンマの回転力を受けて回転するアンビル、及びそのアンビルに工具要素を装着するための装着部を有し、前記アンビルに対して外部から所定値以上のトルクが加わると、前記ハンマが前記アンビルから外れて空転し、前記アンビルを回転方向に打撃する打撃機構と、
前記ハンマによる前記アンビルの打撃を検出する打撃検出部と、
前記打撃検出部により打撃が検出された場合に、打撃に起因して変動する物理量の変動幅を検出する変動幅検出部と、
前記モータの駆動を制御し、前記モータの駆動開始後、前記打撃検出部により打撃が検出された場合、前記変動幅検出部により検出される前記変動幅に応じて前記モータの駆動を制御する制御部と、
を備えることを特徴とする回転打撃工具。
【請求項２】
請求項１に記載の回転打撃工具であって、
前記物理量は、打撃が発生する周期と同じ周期で変動する物理量である
ことを特徴とする回転打撃工具。
【請求項３】
請求項２に記載の回転打撃工具であって、
前記物理量は、前記モータの回転速度、又は前記モータに流れる電流のうち、少なくとも一方である
ことを特徴とする回転打撃工具。
【請求項４】
請求項１〜請求項３の何れか１項に記載の回転打撃工具であって、
前記制御部は、前記変動幅検出部により検出された前記変動幅が変動幅閾値以上の場合に、前記モータの回転数を低下させて駆動を継続させるか又は前記モータの駆動を停止させる、駆動力制限制御を行う
ことを特徴とする回転打撃工具。
【請求項５】
請求項４に記載の回転打撃工具であって、
前記モータを駆動させるための操作入力を受け付ける操作部を備え、
前記制御部は、
前記操作部の操作量に応じて前記モータの速度指令値を設定し、その設定した速度指令値に従って前記モータを駆動し、前記変動幅検出部により検出された前記変動幅が変動幅閾値以上の場合は、前記速度指令値を前記操作量に応じた値よりも低下させるか、又は前記速度指令値を前記モータの停止に対応した値に設定することにより、前記駆動力制限制御を行う
ことを特徴とする回転打撃工具。
【請求項６】
請求項４又は請求項５に記載の回転打撃工具であって、
前記制御部は、前記打撃検出部により打撃が検出された場合、前記変動幅検出部により前記変動幅が検出される毎に、その変動幅が前記変動幅閾値以上か否か判断して、前記変動幅閾値以上と判断した回数を累積加算し、その累積加算した回数が規定回数以上となった場合に、前記駆動力制限制御を行う
ことを特徴とする回転打撃工具。
【請求項７】
請求項４〜請求項６の何れか１項に記載の回転打撃工具であって、
前記モータの回転方向を設定するための回転方向設定部を備え、
前記制御部は、前記回転方向設定部により設定されている回転方向が、前記工具要素によって回転対象物を被加工材から取り外す方向である場合は、前記変動幅にかかわらず前記駆動力制限制御を行わない
ことを特徴とする回転打撃工具。
【請求項８】
請求項１〜請求項３の何れか１項に記載の回転打撃工具であって、
前記制御部は、前記変動幅検出部により検出された前記変動幅に基づいて、打撃開始後の前記工具要素の回転角である総打撃回転角を算出し、その算出した総打撃回転角に応じて前記モータの制御を行う
ことを特徴とする回転打撃工具。
【請求項９】
請求項８に記載の回転打撃工具であって、
前記制御部は、前記総打撃回転角の算出結果が規定回転角以上となった場合、前記モータの回転数を低下させて駆動を継続させるか又は前記モータの駆動を停止させる、駆動力制限制御を行う
ことを特徴とする回転打撃工具。
【請求項１０】
請求項９に記載の回転打撃工具であって、
前記モータを駆動させるための操作入力を受け付ける操作部を備え、
前記制御部は、
前記操作部の操作量に応じて前記モータの速度指令値を設定し、その設定した速度指令値に従って前記モータを駆動し、前記総打撃回転角の算出結果が前記規定回転角以上となった場合は、前記速度指令値を前記操作量に応じた値よりも低下させるか、又は前記速度指令値を前記モータの停止に対応した値に設定することにより、前記駆動力制限制御を行う
ことを特徴とする回転打撃工具。
【請求項１１】
請求項８〜請求項１０の何れか１項に記載の回転打撃工具であって、
前記変動幅に応じた
前記制御部は、前記打撃検出部により打撃が検出された場合、前記物理量の変動の過程における最小値から最大値への変化時の変動幅、及び最大値から最小値への変化時の変動幅のうち少なくとも一方を演算対象変動幅として、前記変動幅検出部により前記演算対象変動幅が検出される度にその演算対象変動幅に応じた単位打撃回転角を累積加算することによって、前記総打撃回転角を算出する
ことを特徴とする回転打撃工具。
【請求項１２】
請求項１〜請求項３の何れか１項に記載の回転打撃工具であって、
前記制御部は、前記変動幅検出部により検出された前記変動幅と予め設定した目標変動幅とを比較して、前記変動幅が前記目標変動幅に一致するように、前記モータの駆動を制御する
ことを特徴とする回転打撃工具。
【請求項１３】
請求項１２に記載の回転打撃工具であって、
前記モータを駆動させるための操作入力を受け付ける操作部を備え、
前記制御部は、前記操作部の操作量に応じて前記モータの速度指令値を設定し、その設定した速度指令値に従って前記モータを駆動し、前記打撃検出部により打撃が検出された場合は、前記操作量に応じた前記速度指令値を、前記変動幅検出部により検出された前記変動幅と前記目標変動幅との差に基づいて補正し、その補正後の速度指令値に従って前記モータを駆動する
ことを特徴とする回転打撃工具。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータの回転力により回転動作し、外部から所定値以上のトルクが加わると回転方向へ打撃力を加えるよう構成された回転打撃工具に関する。
【背景技術】
【０００２】
この種の回転打撃工具には、モータの回転力を受けて回転するハンマと、ハンマの回転力を受けて回転するアンビルとを有する打撃機構が備えられている。モータが回転すると、その回転力がハンマからアンビルを経て工具要素（例えばドライバビットやソケットビット）へ伝達され、工具要素が回転する。
【０００３】
そして、アンビルに対し、外部から所定値以上のトルクが加わると、ハンマがアンビルから外れて空転し、アンビルを回転方向に打撃する。この打撃は、アンビルに対して外部から所定値以上のトルクが加わっている間は、間欠的に発生する。この打撃力によって、ネジやボルト等の回転対象物をしっかりと締め付けたり、逆に容易に緩めたりすることができる。
【０００４】
このような回転打撃工具におけるモータの制御方法として、打撃の開始を検出し、その検出前後で制御内容を切り替える方法が種々提案されている。また、打撃の検出方法についても、種々の方法が提案されている。特許文献１には、モータの回転数の変動幅に基づいて打撃の有無を検出し、打撃を検出すると回転数を低下させる制御方法が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−１１１７２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
回転打撃工具においては、打撃開始を検出した後の動作中、即ち間欠的に打撃が行われている間も、その打撃の状態に応じてモータを適切に制御することが望まれる。
モータの制御は、一般的には、モータの回転数、モータに流れる電流、モータにかかる電圧などの、モータ或いは工具内の種々の物理量を検出して、その検出値に基づいて行うことが多い。
【０００７】
しかし、打撃中におけるこれら物理量は、打撃が行われていないときに比べて、変動が大きい。しかも、打撃が行われているか否かにかかわらず、これら物理量は、工具の電源電圧や周囲温度などの種々の要因によっても変化する。そのため、打撃中のモータの制御を、工具内の各種物理量の値そのものを用いて行うことは容易ではない。
【０００８】
本発明は上記課題に鑑みなされたものであり、回転打撃工具において、打撃中にその打撃の状態に応じてモータを適切に制御し、ひいては打撃力を利用した作業を適切に行えるようにすることを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するためになされた本発明の回転打撃工具は、モータと、打撃機構と、打撃検出部と、変動幅検出部と、制御部とを備える。
打撃機構は、モータの回転力によって回転するハンマ、そのハンマの回転力を受けて回転するアンビル、及びそのアンビルに工具要素を装着するための装着部を有し、アンビルに対して外部から所定値以上のトルクが加わると、ハンマがアンビルから外れて空転し、アンビルを回転方向に打撃する。
【００１０】
打撃検出部は、ハンマによるアンビルの打撃を検出する。変動幅検出部は、打撃検出部により打撃が検出された場合に、打撃に起因して変動する物理量の変動幅を検出する。制御部は、モータの駆動を制御し、モータの駆動開始後、打撃検出部により打撃が検出された場合、変動幅検出部により検出される変動幅に応じてモータの駆動を制御する。
【００１１】
回転打撃工具において、モータの駆動開始後、打撃が始まると、打撃が行われている間、その打撃に起因して物理量の変動が生じる。打撃に起因して変動する物理量の変動幅は、打撃の状態を直接的又は間接的に示している。また、物理量の値そのものは、モータの電源電圧や周囲温度などの種々の要因にも依存するため、制御に用いにくいが、物理量の変動幅は、それら種々の要因による依存が少なく、影響を受けにくい。そこで、制御部は、打撃が検出されると、その打撃に起因して変動する物理量の変動幅に応じて、モータの駆動を制御する。変動幅を用いることで、打撃の状態に応じた各種の制御を有効的に行うことができる。
【００１２】
したがって、本発明の回転打撃工具によれば、打撃中にその打撃に起因して変動する物理量の変動幅を用いてモータを制御することで、打撃の状態に応じてモータを適切に制御することができ、ひいては打撃力を利用した作業を適切に行うことができる。
【００１３】
検出対象の物理量としては、打撃に起因して変動する物理量である限りあらゆる物理量を用いることができる。例えば、打撃が発生する周期と同じ周期で変動する物理量を用いてもよい。打撃周期と同期して発生する物理量の変動は、打撃の状態がより良く反映されている可能性が高い。そこで、そのような物理量の変動を用いることで、打撃が行われているときのモータの駆動制御を、打撃の状態を考慮して精度良く行うことができる。
【００１４】
打撃周期と同期した変動が発生する物理量としては、例えば、モータの回転速度、又はモータに流れる電流のうち、少なくとも一方を用いてもよい。打撃が行われる毎に、その打撃の周期と同じ周期で、モータの回転速度や電流も周期的に変動する。しかも、回転速度や電流は、モータを制御するために一般的に用いられるパラメータであり、打撃の有無にかかわらず、回転速度や電流を用いてモータを制御することが多い。
【００１５】
そのため、そのようにモータ制御において通常用いられることの多い回転速度や電流を、打撃中においても用いる（詳しくはその変動幅を用いる）ことで、打撃が行われているときのモータの駆動制御を精度良く且つ効率的に行うことができる。
【００１６】
物理量の変動幅を用いた具体的な制御方法の１つとして、駆動力制限制御が考えられる。即ち、制御部は、変動幅検出部により検出された変動幅が変動幅閾値以上の場合に、モータの回転数を低下させて駆動を継続させるか又はモータの駆動を停止させる、駆動力制限制御を行うようにしてもよい。
【００１７】
回転打撃工具において打撃が行われている場合に、物理量の変動幅が、通常の使用範囲内で想定される変動幅を超えている場合は、通常想定される使用態様にて使用されていない可能性がある。そのような使用態様で使用（打撃）を続けると、回転打撃工具に何らかの異常、不具合が発生する可能性がある。
【００１８】
そこで、変動幅閾値を設定して、打撃中の物理量の変動幅が変動幅閾値以上となった場合には駆動力制限制御を行うことで、回転打撃工具を異常や不具合発生などから保護することができる。
【００１９】
回転打撃工具の具体的構成として、例えば、モータを駆動させるための操作入力を受け付ける操作部を備えていて、制御部は、操作部の操作量に応じてモータの速度指令値を設定し、その設定した速度指令値に従ってモータを駆動する、という構成が考えられる。回転打撃工具がこのように構成されている場合、制御部は、駆動力制限制御を、次のように行うようにしてもよい。即ち、制御部は、変動幅検出部により検出された変動幅が変動幅閾値以上の場合は、速度指令値を操作量に応じた値よりも低下させるか、又は速度指令値をモータの停止に対応した値に設定することにより、駆動力制限制御を行うようにしてもよい。
【００２０】
このように、速度指令値を操作量に応じた値から設定変更することによって駆動力制限制御を行うようにすることで、駆動力制限制御を容易に実現することができる。
制御部は、駆動力制限制御を実行するタイミングを、次のように設定してもよい。即ち、制御部は、打撃検出部により打撃が検出された場合、変動幅検出部により変動幅が検出される毎に、その変動幅が変動幅閾値以上か否か判断して、変動幅閾値以上と判断した回数を累積加算する。そして、その累積加算した回数が規定回数以上となった場合に、駆動力制限制御を行う。
【００２１】
つまり、変動幅が変動幅閾値以上となったことをもってすぐに駆動力制限制御を行うのではなく、変動幅が変動幅閾値以上になった回数が累積して規定回数以上となった場合に駆動力制限制御を行う。このようにすることで、打撃に起因して発生する変動幅をより精度良く検出することができ、駆動力制限制御の要否判断を精度良く行うことができる。
【００２２】
回転打撃工具が、モータの回転方向を設定するための回転方向設定部を備えている場合、制御部は、回転方向によっては駆動力制限制御を行わないようにしてもよい。具体的には、制御部は、回転方向設定部により設定されている回転方向が、工具要素により回転対象物を被加工材から取り外す方向である場合は、変動幅にかかわらず駆動力制限制御を行わないようにしてもよい。
【００２３】
一般的に、回転対象物を被加工材から取り外す作業を行う際は、回転対象物を被加工材に締結する作業を行う場合に比べて、打撃が開始された後もそのまま回転力を落とすことなくモータを駆動させても問題ない場合が多い。また、打撃開始後も回転力を落とさずに打撃を継続させることで、回転対象物を迅速に被加工材から取り外すことができる。そのため、回転対象物を被加工材から取り外す作業を行っている場合は、駆動力制限制御を行わないようにすることで、作業効率の低下を抑制することができる。
【００２４】
物理量の変動幅を用いた具体的な制御方法の１つとして、次のような制御方法も考えられる。即ち、制御部は、変動幅検出部により検出された変動幅に基づいて、打撃開始後の工具要素の回転角である総打撃回転角を算出するようにしてもよい。そして、その算出した総打撃回転角に応じてモータの制御を行うようにしてもよい。
【００２５】
回転打撃工具において打撃が行われている場合に、１回の打撃によって工具要素が回転する量（回転角）は、その打撃によって生じる物理量の変動幅に反映される。即ち、１打撃での回転角が大きいほど、物理量の変動幅は小さく、逆に、１打撃での回転角が小さいほど、物理量の変動幅は大きくなることが多い。つまり、打撃時に生じる物理量の変動幅に基づいて、１打撃毎の工具要素の回転角を推定することができる。
【００２６】
そこで、打撃開始からの工具要素の回転角（総打撃回転角）を物理量の変動幅に基づいて算出し、その総打撃回転角に応じてモータを制御することで、打撃開始後の総打撃回転角に応じた適切なモータ制御を実現することができる。
【００２７】
総打撃回転角に応じたモータ制御の具体例として、駆動力制限制御を行うようにしてもよい。即ち、制御部は、総打撃回転角の算出結果が規定回転角以上となった場合、モータの回転数を低下させて駆動を継続させるか又はモータの駆動を停止させる、駆動力制限制御を行うようにしてもよい。
【００２８】
このように、総打撃回転角が規定回転角以上になった場合に駆動力制限制御を行うことで、打撃力を用いた作業を、過不足なく適切に行うことが可能となる。
回転打撃工具が、モータを駆動させるための操作入力を受け付ける操作部を備えていて、制御部が、操作部の操作量に応じた速度指令値に従ってモータを駆動する場合、制御部は、駆動力制限制御を次のように行うようにしてもよい。
【００２９】
即ち、制御部は、総打撃回転角の算出結果が規定回転角以上となった場合は、速度指令値を、操作量に応じた値よりも低下させるか、又は速度指令値をモータの停止に対応した値に設定することにより、駆動力制限制御を行うようにしてもよい。このように、速度指令値を操作量に応じた値から設定変更することによって駆動力制限制御を行うようにすることで、駆動力制限制御を容易に実現することができる。
【００３０】
制御部は、総打撃回転角の算出を、次のように行うようにしてもよい。即ち、制御部は、打撃検出部により打撃が検出された場合、物理量の変動の過程における最小値から最大値への変化時の変動幅、及び最大値から最小値への変化時の変動幅のうち少なくとも一方を演算対象変動幅として、変動幅検出部により演算対象変動幅が検出される度にその演算対象変動幅に応じた単位打撃回転角を累積加算することによって、総打撃回転角を算出するようにしてもよい。
【００３１】
変動幅に応じた単位打撃回転角を連続的又は段階的に設定しておき、演算対象変動幅が検出される毎にその演算対象変動幅に対応した単位打撃回転角の設定値を累積加算することで、全体として、打撃開始からの総打撃回転角を高い精度で算出することができる。
【００３２】
物理量の変動幅を用いた具体的な制御方法の１つとして、次のような制御方法も考えられる。即ち、制御部は、変動幅検出部により検出された変動幅と予め設定した目標変動幅とを比較して、変動幅が目標変動幅に一致するように、モータの駆動を制御するようにしてもよい。
【００３３】
一般に、回転打撃工具においては、モータの回転速度や作業対象の被加工材の材質などによっては、適切なタイミングで打撃が行われない可能性がある。そして、打撃が行われるタイミングと物理量の変動幅とは相関しており、適切なタイミングで打撃が行われているときの変動幅と適切なタイミングで打撃が行われていないときの変動幅とは異なることが多い。
【００３４】
そこで、目標変動幅を適切に設定（例えば適切なタイミングで打撃が行われているときに想定される変動幅の範囲内の値に設定）し、実際の変動幅がその目標変動幅に一致するようにモータの駆動を制御することで、適切なタイミングで打撃を行わせることができるようになる。
【００３５】
回転打撃工具が、モータを駆動させるための操作入力を受け付ける操作部を備えていて、制御部が、操作部の操作量に応じた速度指令値に従ってモータを駆動する場合、制御部は、目標変動幅に基づくモータ制御を次のように行うようにしてもよい。
【００３６】
即ち、制御部は、打撃検出部により打撃が検出された場合は、操作量に応じた速度指令値を、変動幅検出部により検出された変動幅と目標変動幅との差に基づいて補正し、その補正後の速度指令値に従ってモータを駆動するようにしてもよい。
【００３７】
このように、操作量に応じて設定した速度指令値を、実際の変動幅と目標変動幅との差に基づいて補正（その差が０となるように補正）することで、打撃タイミングの適正化を容易に実現することができる。
【図面の簡単な説明】
【００３８】
【図１】実施形態の充電式インパクトドライバの縦断面図である。
【図２】充電式インパクトドライバの電気的構成を示すブロック図である。
【図３】打撃が行われているときの、モータの回転数及び電流の変動状態を説明するための説明図である。
【図４】第１実施形態のメイン処理を示すフローチャートである。
【図５】図４のメイン処理における、Ｓ６０のモータ制御処理の詳細を示すフローチャートである。
【図６】図５のモータ制御処理における、Ｓ１２０の被材判別処理の詳細を示すフローチャートである。
【図７】図５のモータ制御処理における、Ｓ１３０の速度指令値設定処理の詳細を示すフローチャートである。
【図８】第２実施形態で用いられる各種テーブルを示す説明図であり、（ａ）は重み付けテーブルを示し、（ｂ）は閾値テーブルを示す。
【図９】第２実施形態のモータ制御処理の詳細を示すフローチャートである。
【図１０】図９のモータ制御処理における、Ｓ４１０の打撃回転角設定処理の詳細を示すフローチャートである。
【図１１】図９のモータ制御処理における、Ｓ４３０の打撃回転角判別処理の詳細を示すフローチャートである。
【図１２】第３実施形態のモータ制御処理の詳細を示すフローチャートである。
【図１３】図１２のモータ制御処理における、Ｓ８３０の新速度指令値設定処理の詳細を示すフローチャートである。
【図１４】図１２のモータ制御処理における、Ｓ８３０の新速度指令値設定処理の別の実施例を示すフローチャートである。
【発明を実施するための形態】
【００３９】
以下に、本発明の実施形態を図面に基づいて説明する。
［第１実施形態］
本実施形態では、回転打撃工具の一例である充電式インパクトドライバ１に本発明を適用した場合について説明する。
【００４０】
図１に示すように、本実施形態の充電式インパクトドライバ１は、工具本体１０と、工具本体１０に電力を供給するバッテリパック３０とを備える。工具本体１０は、モータ４や打撃機構６などが収容されたハウジング２と、ハウジング２の下部（図１の下側）から突出するように形成されたグリップ部３とを備える。
【００４１】
ハウジング２内には、その後部（図１の左側）にモータ４が収容されている。モータ４は、本実施形態では、Ｕ，Ｖ，Ｗ各相の電機子巻線を備えた３相ブラシレスモータである。ハウジング２内において、モータ４の前方（図１の右側）には、釣鐘状のハンマケース５が組み付けられている。このハンマケース５内に、打撃機構６が収容されている。
【００４２】
ハンマケース５内には、後端側に中空部が形成されたスピンドル７が同軸で収容されており、ハンマケース５内の後端側に設けられたボールベアリング８がこのスピンドル７の後端外周を軸支している。スピンドル７におけるボールベアリング８の前方部位には、回転軸に対して点対称で軸支された２つの遊星歯車からなる遊星歯車機構９が、ハンマケース５の後端側内周面に形成されたインターナルギヤ１１に噛合している。この遊星歯車機構９は、モータ４の出力軸１２の先端部に形成されたピニオン１３と噛合するものである。
【００４３】
打撃機構６は、スピンドル７と、スピンドル７に外装されたハンマ１４と、ハンマ１４の前方側で軸支されるアンビル１５と、ハンマ１４を前方へ付勢するコイルバネ１６とを備える。
【００４４】
ハンマ１４は、スピンドル７に対して一体回転可能且つ軸方向へ移動可能に連結されており、コイルバネ１６により前方（アンビル１５側）に付勢されている。スピンドル７の先端部は、アンビル１５の後端に同軸で遊挿されることで回転可能に軸支されている。
【００４５】
アンビル１５は、ハンマ１４による回転力及び打撃力を受けて軸回りに回転可能である。即ち、アンビル１５は、ハウジング２の先端に設けられた軸受２０によって、軸回りに回転自在かつ軸方向に変位不能に支持されている。
【００４６】
アンビル１５の先端部には、ドライバビットやソケットビットなどの各種の工具要素（図示略）を装着するためのスリーブ１９が設けられている。これら工具要素は、各種のネジやボルト、ナット等の回転対象物を回転させて被加工材（以下「被材」と略す）に締め付けるために用いられる。尚、モータ４の出力軸１２、スピンドル７、ハンマ１４、アンビル１５、及びスリーブ１９は、いずれも同軸状となるように配置されている。
【００４７】
ハンマ１４の前端面には、アンビル１５に打撃力を与えるための２つの打撃突部１７が周方向に１８０°の間隔を隔てて突設されている。一方、アンビル１５には、その後端側に、２つの打撃アーム１８が、周方向に１８０°の間隔を隔てて形成されている。これら２つの打撃アーム１８は、ハンマ１４の各打撃突部１７，１７が当接可能に構成されている。そして、ハンマ１４がコイルバネ１６の付勢力でスピンドル７の前端側に付勢・保持されることで、そのハンマ１４の各打撃突部１７がアンビル１５の各打撃アーム１８に当接するようになる。
【００４８】
この状態で、モータ４の回転力により遊星歯車機構９を介してスピンドル７が回転すると、ハンマ１４がスピンドル７と共に回転し、そのハンマ１４の回転力が各打撃突部１７と打各撃アーム１８とを介してアンビル１５に伝達される。これにより、アンビル１５の先端に装着された工具要素が回転し、ネジやボルトなどの回転対象物の締め付けが可能となる。
【００４９】
このとき、工具要素が正方向（本実施形態では、工具本体１０の後端側から前方を見た状態で右回り方向）に回転する場合は、回転対象物が被材へ締め付けられていく。逆に、工具要素が逆方向に回転する場合は、被材に対する回転対象物の締め付け状態が緩んでいく。
【００５０】
なお、以下の説明では、モータ４の回転方向について、工具要素を正方向に回転させる際のモータ４の回転方向を正方向と定義し、工具要素を逆方向に回転させる際のモータ４の回転方向を逆方向と定義する。また、モータ４或いは工具要素の回転について、正方向に回転することを正転ともいい、逆方向に回転することを逆転ともいう。
【００５１】
工具要素の回転によって被材への回転対象物の締め付け又は緩めが進んで、アンビル１５に対して外部から所定値以上のトルクが加わると、アンビル１５に対するハンマ１４の回転力（トルク）も所定値以上になる。
【００５２】
これにより、ハンマ１４がコイルバネ１６の付勢力に抗して後方に変位し、ハンマ１４の各打撃突部１７がアンビル１５の各打撃アーム１８を乗り越えるようになる。つまり、ハンマ１４の各打撃突部１７がアンビル１５の各打撃アーム１８から一旦外れ、空転する。このようにハンマ１４の各打撃突部１７がアンビル１５の各打撃アーム１８を乗り越えると、ハンマ１４は、スピンドル７と共に回転しつつコイルバネ１６の付勢力で再び前方へ変位し、ハンマ１４の各打撃突部１７がアンビル１５の各打撃アーム１８を回転方向に打撃する。
【００５３】
従って、アンビル１５に対して外部から所定値以上のトルクが加わる毎に、アンビル１５に対してハンマ１４による打撃が繰り返し（間欠的に）行われる。そして、ハンマ１４の打撃力がアンビル１５に間欠的に加えられることにより、正方向への回転時には、回転対象物を高トルクで被材に締め付けることができ、逆方向への回転時には、回転対象物を容易に被材から緩めることができる。
【００５４】
グリップ部３は、作業者が当該充電式インパクトドライバ１を使用する際に把持する部分であり、その上方にトリガスイッチ２１が設けられている。トリガスイッチ２１は、トリガ２１ａとスイッチ本体部２１ｂとを備える。トリガ２１ａは、作業者により引き操作される。スイッチ本体部２１ｂは、トリガ２１ａの引き操作によりオン・オフされると共に、トリガ２１ａの操作量（引き量）に応じて抵抗値が変化するように構成されている。
【００５５】
トリガスイッチ２１の上側（ハウジング２の下端側）には、モータ４の回転方向を正方向又は逆方向の何れか一方に切り替えるための正逆切替スイッチ２２が設けられている。更に、ハウジング２の下部前方には、トリガ２１ａが引き操作されたときに当該充電式インパクトドライバ１の前方を光で照射するための照明ＬＥＤ２３が設けられている。
【００５６】
また、グリップ部３の下部前方には、作業者による設定入力を受け付けたり、当該充電式インパクトドライバ１の設定状態や動作状態などを表示したりすることが可能な、操作パネル２４が設けられている。
【００５７】
また、グリップ部３の下端には、バッテリ２９を収容したバッテリパック３０が、グリップ部３の下端に対して着脱自在に装着されている。このバッテリパック３０は、装着時にはグリップ部３の下端に対してその前方側から後方側へとスライドさせることにより装着される。バッテリパック３０に収容されたバッテリ２９は、本実施形態では、例えばリチウムイオン２次電池などの、繰り返し充電可能な２次電池である。
【００５８】
更に、グリップ部３の内部には、図１では図示を省略したものの、バッテリパック３０の電力によってモータ４を回転させるためのモータ駆動装置４０（図２参照）が設けられている。また、モータ４には、図１では図示を省略したものの、モータ４の回転位置を検出するホールＩＣ５０（図２参照）が設けられている。
【００５９】
ここで、回転打撃工具としては、例えば、木ネジを木製の被材に締め付けることを主な用途として設計・製造された回転打撃工具（以下「木ネジ専用機」ともいう）もあれば、金属製の被材に対し、その被材に対応したボルトやナット、ネジなど（以下、総称して「機械ネジ」ともいう）を強いトルクで締め付けることが可能な回転打撃工具（以下「機械ネジ対応機」ともいう）もある。
【００６０】
本実施形態の充電式インパクトドライバ１は、木ネジ専用機である。ただし、木ネジ専用機ではあるが、工具要素としてソケットビットも使用可能であり、ソケットビットを用いてボルトやナットの締め付けを行うことも可能である。
【００６１】
次に、モータ４を回転、制御するために充電式インパクトドライバ１の内部に設けられているモータ駆動装置４０について、図２を用いて説明する。なお、図２には、モータ駆動装置４０に加えて、モータ駆動装置４０と電気的に接続される他の部材も図示されている。また、図２は、工具本体１０にバッテリパック３０が装着されて、バッテリ２９がモータ駆動装置４０と電気的に接続された状態を示している。
【００６２】
図２に示すように、モータ駆動装置４０は、制御回路３１と、ゲート回路３２と、モータ駆動回路３３と、レギュレータ３４と、電流検出部３５と、バッテリ電圧検出部３６と、通信部３７とを備える。
【００６３】
モータ駆動回路３３は、バッテリ２９から所定の直流電圧（例えば１４．４Ｖ）の電力供給を受けて、モータ４の各相巻線に電流を流すための回路である。モータ駆動回路３３は、本実施形態では、６つのスイッチング素子Ｑ１〜Ｑ６からなる３相フルブリッジ回路を有する。各スイッチング素子Ｑ１〜Ｑ６は、本実施形態ではＭＯＳＦＥＴである。
【００６４】
モータ駆動回路３３において、３つのスイッチング素子Ｑ１〜Ｑ３は、モータ４の各端子Ｕ，Ｖ，Ｗと、バッテリ２９の正極側に接続された電源ラインとの間に、いわゆるハイサイドスイッチとして設けられている。また、他の３つのスイッチング素子Ｑ４〜Ｑ６は、モータ４の各端子Ｕ，Ｖ，Ｗと、バッテリ２９の負極側に接続されたグランドラインとの間に、いわゆるローサイドスイッチとして設けられている。
【００６５】
ゲート回路３２は、制御回路３１から出力される駆動信号に従い、モータ駆動回路３３内の各スイッチング素子Ｑ１〜Ｑ６をオン／オフさせる。ゲート回路３２によって各スイッチング素子Ｑ１〜Ｑ６がオン／オフされることで、モータ４の各相巻線に電流が流れ、モータ４が回転する。
【００６６】
制御回路３１は、本実施形態では、一例として、いわゆるワンチップマイクロコンピュータとして構成されており、ＣＰＵ４１やメモリ４２のほか、入出力（Ｉ／Ｏ）ポート、ＡＤ変換器、タイマなどを有している。メモリ４２は、ＲＯＭ、ＲＡＭ、及び書換可能な不揮発性メモリ素子（例えばフラッシュＲＯＭやＥＥＰＲＯＭなど）を含む。ＣＰＵ４１は、メモリ４２に記憶された各種プログラムに従って、各種処理を実行する。
【００６７】
制御回路３１には、既述のトリガスイッチ２１（詳しくはスイッチ本体部２１ｂ）、正逆切替スイッチ２２、照明ＬＥＤ２３、及び操作パネル２４が接続されている。また、制御回路３１には、ゲート回路３２、電流検出部３５、バッテリ電圧検出部３６、通信部３７、及びホールＩＣ５０が接続されている。
【００６８】
ホールＩＣ５０は、ホール素子を備え、モータ４の回転子の回転位置が所定の回転位置に達する毎（即ち、モータ４が所定量回転する毎）にパルス信号を出力するよう構成された、周知の回転センサである。制御回路３１は、ホールＩＣ５０から入力されるパルス信号に基づいて、モータ４の回転位置及び回転数を演算することが可能である。
【００６９】
トリガ２１ａが微少量引き操作されると、トリガスイッチ２１を構成するスイッチ本体部２１ｂから、トリガスイッチ２１がオンされたこと（即ちトリガ２１ａが引き操作されたこと）を示すトリガオン信号が出力され、制御回路３１に入力される。制御回路３１のＣＰＵ４１は、トリガオン信号が入力された場合、トリガスイッチ２１がオンされたことを判断する。
【００７０】
また、トリガスイッチ２１がオンされている間は、スイッチ本体部２１ｂからは、トリガオン信号に加えて、トリガ２１ａの引き量に応じた電圧値の操作信号が出力され、制御回路３１に入力される。制御回路３１のＣＰＵ４１は、その入力された操作信号に基づき、その操作信号が示すトリガ２１ａの引き量に応じた回転数でモータ４が回転するよう、モータ４を制御する。
【００７１】
具体的には、ＣＰＵ４１は、トリガスイッチ２１から入力される操作信号に従って、トリガ２１ａの引き量に応じた速度指令値を算出する。そして、その算出した速度指令値に応じた駆動信号をゲート回路３２に出力することで、モータ４を、速度指令値に応じた回転数（即ちトリガ２１ａの引き量に応じた回転数）で回転させる。なお、回転数とは、単位時間あたりの回転数を意味し、よって回転速度と同義である。
【００７２】
速度指令値として具体的に何を算出するかについては、種々考えられる。本実施形態では、制御回路３１のＣＰＵ４１は、各スイッチング素子Ｑ１〜Ｑ６をデューティ駆動させることによってモータ４を駆動する。制御回路３１からゲート回路３２に出力される駆動信号は、デューティ比を示す信号（以下「デューティ信号」ともいう）である。
【００７３】
そのため、本実施形態では、ＣＰＵ４１は、速度指令値として、トリガ２１ａの引き量に応じた回転数でモータ４を回転させるためのデューティ比を算出する。トリガ２１ａの引き量が大きければ大きいほど、速度指令値として算出されるデューティ比も大きくなる。
【００７４】
本実施形態では、モータ４が停止している状態からトリガ２１ａが引き操作された場合、すぐにその引き量に応じたデューティ比に設定せず、デューティ比を、一定の時間をかけて連続的或いは段階的にその引き量に応じたデューティ比まで増加させていく。つまり、起動時にデューティ比を徐々に増加させていく、いわゆるソフトスタート機能を備えている。
【００７５】
また、ＣＰＵ４１による、トリガ２１ａの引き量に基づくモータ４の制御は、基本的にはオープン制御である。即ち、トリガ２１ａの引き量に応じた速度指令値（デューティ比）を設定してその速度指令値に応じた駆動信号（デューティ信号）を出力するが、その駆動信号に対する実際のモータ４の回転数をフィードバックして駆動信号を補正することは行わない。
【００７６】
ただし、モータ４をオープン制御することはあくまでも一例であって、フィードバック制御してもよい。例えば、速度指令値として、トリガ２１ａの引き量に応じた回転数を設定し、その設定回転数に応じたデューティ比を示す駆動信号をゲート回路３２へ出力する。そして、モータ４の実際の回転数をフィードバックし、実際の回転数が設定回転数に一致するように駆動信号を補正（即ちデューティ比を補正）する、速度フィードバック制御を行うようにしてもよい。実際の回転数は、既述の通り、ホールＩＣ５０から入力されるパルス信号に従って演算することができる。なお、フィードバックする物理量は、回転数以外の他の物理量であってもよい。
【００７７】
モータ４をオープン制御するかそれともフィードバック制御するかについては適宜決めることができるが、本実施形態では、特に断りのない限り、オープン制御であることを前提として説明を続ける。
【００７８】
制御回路３１のＣＰＵ４１は、正逆切替スイッチ２２から入力される回転方向設定信号に基づき、その正逆切替スイッチ２２にて設定された回転方向にてモータ４を回転させる。また、ＣＰＵ４１は、トリガ２１ａが引き操作されているときに照明ＬＥＤ２３を点灯させる制御も行う。
【００７９】
制御回路３１のＣＰＵ４１は、操作パネル２４の制御、及び操作パネル２４の操作内容に基づく制御も行う。操作パネル２４は、回転角切替スイッチ２６と、表示部２７とを備える。なお、この操作パネル２４は、本実施形態におけるモータ４の制御には直接的には関係ないため、本実施形態では詳細説明を省略する。操作パネル２４の具体的機能については、後述する第２実施形態で説明する。
【００８０】
レギュレータ３４は、バッテリ２９の電圧を降圧して一定の電源電圧Ｖｃｃ（例えば、直流５Ｖ）を生成する、電源回路である。制御回路３１は、レギュレータ３４により生成される電源電圧Ｖｃｃによって動作する。
【００８１】
電流検出部３５は、モータ駆動回路３３からバッテリ２９の負極側に至る通電経路に設けられ、モータ４に流れる電流を示す信号（電流検出信号）を出力する。電流検出部３５から出力される電流検出信号は、制御回路３１に入力される。制御回路３１のＣＰＵ４１は、電流検出部３５から入力される電流検出信号に基づいて、モータ４に流れる電流を検出する。
【００８２】
なお、制御回路３１のＣＰＵ４１は、電流検出信号に基づいて検出した電流に対しても、上述した回転数と同様、所定の平均化処理を行うようにしている。そして、平均化処理後の電流に従って、各種制御処理を行うようにしている。ただし、その電流の平均化処理についても、回転数の場合と同様、必須ではない。
【００８３】
バッテリ電圧検出部３６は、バッテリ２９の電圧を検出してその電圧値を示す電圧検出信号を制御回路３１へ出力する。制御回路３１のＣＰＵ４１は、バッテリ電圧検出部３６からの電圧検出信号に基づいてバッテリ２９の電圧（バッテリ電圧）を検出し、必要に応じて各種制御処理に用いる。
【００８４】
通信部３７は、充電式インパクトドライバ１とは別の通信機器と無線通信を行うための無線通信モジュールを有する。制御回路３１のＣＰＵ４１は、通信部３７を介して外部の通信機器と無線通信を行うことにより、通信機器からデータを受信したり、通信機器へデータを送信したりすることができる。
【００８５】
ところで、本実施形態の充電式インパクトドライバ１は、既述の通り、木ネジ専用機として作られている。木ネジ専用機は、通常、打撃機構６が、木ネジの締め付け作業時に想定されるトルクを考慮して、そのトルクに耐え得るように作られている。逆に言えば、木ネジ専用機は、機械ネジの締め付けに用いられることを想定して作られていない場合が多い。そのため、木ネジ専用機を用いて、機械ネジを金属製の被材に締め付けると、打撃が行われる際、外部から想定を超える（木ネジ締め付け時には発生する可能性が低い）大きなトルクが加わって、打撃機構６やその他の機構、部品等が破損するおそれがある。
【００８６】
そのため、回転打撃工具においては、被材の種類を自動的に判別して、当該回転打撃工具に対応している被材とは異なる被材に対して締め付け作業が行われている場合には、必要に応じて、当該回転打撃工具に破損等の不具合が発生しないように保護することが望まれる。つまり、どのような被材に対して回転対象物の締め付けを行っているのかを判別して、被材に応じた適切なモータ制御を行うことが望まれる。
【００８７】
なお、被材を判別する技術については、特開２０１０−２４７３２６号公報において、１つの提案がなされている。この公報には、まず低い回転数で回転させ、打撃が起こらない場合は被材が軟質素材と判断し、打撃が起こった場合は被材が硬質素材と判断して回転数を上げる、という技術が記載されている。
【００８８】
この技術によれば、被材が軟質か硬質かを判断することが一応可能である。しかし、被材判別のために、起動時にまず低速駆動させる必要がある。そのため、判別に時間がかかり、全体として作業時間の遅延を招くおそれがある。作業者の作業性を損なわないためには、被材の判別、及びその判別結果に応じた適切なモータ制御が、迅速且つ適切に行われることが望まれる。
【００８９】
そこで、本実施形態の充電式インパクトドライバ１は、打撃開始後、被材を判別して、被材が木材ではなく金属などの相対的に硬い材質であることを判別した場合は、モータ４の出力を低下させるか又は停止させるようにしている。
【００９０】
本実施形態における、被材の判別方法について、図３を用いて説明する。図３は、本実施形態の充電式インパクトドライバ１における、打撃中のモータ４の回転数及び電流の変化例を示す。なお、打撃中とは、打撃開始後、打撃が周期的（間欠的）に行われている期間を意味する。
【００９１】
機械ネジやボルト等の回転対象物を被材に締め付ける際、トリガ２１ａを引き操作してモータ４を回転させると、回転対象物が被材に着座するまではほぼ無負荷状態であるため、モータ４は高速回転する。なお、ここでいう負荷とは、外部から工具要素に加わるトルク（負荷トルク）、換言すれば工具要素を回転させる（スリーブ１９を回転させる）ために必要な回転トルクを意味する。また、無負荷とは、負荷が所定値より小さくて打撃が行われない状態を意味する。
【００９２】
回転対象物の締め付けが進んで、回転対象物が被材に着座すると、負荷が増大し、やがて負荷トルク（回転トルク）が所定値以上となって、打撃が開始される。打撃中は、負荷が大きいため、モータ４の回転数は無負荷状態のときよりも低くなる。図３は、その打撃中における、モータ４の回転数及び電流の変化の一例を示している。
【００９３】
なお、図３には、充電式インパクトドライバ１を用いて木ネジの締め付け作業（被材は木材）を行った場合の、打撃開始後の回転数及び電流の変化例と、充電式インパクトドライバ１を用いて機械ネジの締め付け作業（被材は金属の面板）を行った場合の、打撃開始後の回転数及び電流の変化例を示している。
【００９４】
図３から明らかなように、打撃中は、打撃動作に起因して、モータ４の回転数や電流は周期的に変動する。具体的には、ハンマ１４の回転に同期して周期的に変動する。
即ち、打撃が行われる際は、ハンマ１４がアンビル１５を乗り越える時（乗り越えてアンビル１５から離れる直前）に、モータ４の回転数は最小値となり、モータ４の電流は最大値となる。一方、ハンマ１４がアンビル１５から離れた後再びアンビル１５に衝突する時（即ち打撃力が加えられる直前）に、モータ４の回転数は最大値となり、モータ４の電流は最小値となる。そのため、打撃中は、ハンマ１４が回転する毎に、その回転と同期してモータ４の回転数や電流は変動する。即ち、打撃が行われる周期と同期して、モータ４の回転数や電流が変動する。
【００９５】
なお、周期的に変動する上記回転数や電流における、上記最小値は、数学的な意味で厳密に表現するならば極小値であり、同じく上記最大値は厳密には極大値である。そのため、打撃中のモータ回転数や電流が周期的に変動するということは、厳密に言えば、極大値と極小値が交互に発生するということになる。但し、本実施形態では、説明の便宜上、打撃中に生じるモータ回転数や電流の極大値及び極小値を、それぞれ上記のように最大値及び最小値と称することとする。
【００９６】
打撃中の回転数や電流の変動状態は、図３に示すように、被材によって異なる。即ち、図３から明らかなように、打撃中のモータ４の回転数や電流の変動状態は、被材が面板である場合（即ち金属製の面板に機械ネジを締結する場合）と、被材が木材である場合（即ち木製の被材に木ネジを締結する場合）とでは、異なる。
【００９７】
木ネジを木材に締め付ける場合、木ネジの先端が木材に入り込むと、工具要素に負荷がかかり始める。その負荷は、締め付けが進むにしたがって徐々に大きくなっていく。そして、負荷が所定値以上になると、打撃が始まる。木ネジの締め付け作業で発生する打撃においては、ハンマ１４がアンビル１５に衝突すると、ハンマ１４から受ける力によってアンビル１５がある程度回転し、その分、木ネジの締め付けが進む。
【００９８】
つまり、木ネジを締め付けている場合は、打撃時の衝撃は、アンビル１５が回転することによってある程度吸収される。そのため、負荷の変動も大きくはならず、モータ４の回転数や電流は、図３に示すように、比較的小さい変動幅で正弦波状に変動する。
【００９９】
一方、機械ネジを金属製の面板に締め付ける場合、打撃が始まるのは基本的には機械ネジが面板に着座した後（又は着座する直前から）となる。そのため、機械ネジの締め付けの場合、着座して打撃が始まっても、アンビル１５の回転量は少なく、打撃が行われる度に、アンビル１５やモータ４に大きな負荷がかかる。つまり、機械ネジを締め付ける場合における打撃時には、負荷の変動が大きい。そのため、モータ４の回転数や電流は、図３に示すように、比較的大きな変動幅で変動する。
【０１００】
そこで、本実施形態では、制御回路３１のＣＰＵ４１が、打撃の周期と同期して発生するモータ４の回転数又は電流の周期的な変動の幅（変動幅）に基づいて、打撃の有無を検出する。具体的には、変動幅に対して所定の閾値（検出閾値）を設定し、変動幅がその検出閾値以上となった場合に、打撃が行われているものと判断する。なお、本明細書において、モータ４の回転数や電流などの、打撃の周期と同期して変動し得る各種の物理量について、変動幅というときは、特に断りのない限り、打撃の周期と同期して発生する変動の幅を意味する。
【０１０１】
既述の通り、ハンマ１４がアンビル１５に衝突する時（打撃力が加えられる直前）に、モータ４の回転数は最大となり、モータ４に流れる電流は最小となる。そのため、本実施形態では、モータ４の回転数の変動幅に基づいて打撃の有無を検出する場合は、変動の過程において回転数が最大値をとる毎に、その最大値と直前の最小値との差を変動幅として、その変動幅に基づいて打撃の有無を検出する。また、モータ４の電流に基づいて打撃の有無を検出する場合は、変動の過程において電流値が最小値をとる毎に、その最小値と直前の最大値との差を変動幅として、その変動幅に基づいて打撃の有無を検出する。
【０１０２】
なお、打撃の有無の検出自体は、必ずしも、回転数や電流などの物理量の変動幅に基づいて行う必要はなく、他の方法で検出してもよい。例えば、衝撃センサや圧電センサ、マイクロフォンなどを用いて、打撃時の衝撃や打撃音を検出し、これらに基づいて打撃の有無を検出する方法が考えられる。
【０１０３】
制御回路３１のＣＰＵ４１は、打撃が開始されたことを検出すると、更に、打撃中におけるモータ４の回転数の変動幅又は電流の変動幅に基づいて、被材の判別を行う。即ち、当該充電式インパクトドライバ１に対応した被材への締め付けが行われているか、それとも、金属製の面板などの比較的硬質の被材に対する締め付けが行われているのか、を判別する。
【０１０４】
上記の通り、木ネジの締め付け作業時は、１打撃毎にアンビル１５が回転する回転角（延いては工具要素や木ネジの回転角）（以下「負荷軸回転角」ともいう）は比較的大きく、モータ４の回転数や電流の変動幅は比較的小さい。逆に、機械ネジの締め付けを行うと、１打撃毎の負荷軸回転角は比較的小さい（ほとんど回転しない場合もある）ため、モータ４の回転数や電流の変動幅は比較的大きい。
【０１０５】
そこで、制御回路３１のＣＰＵ４１は、回転数又は電流の変動幅に基づいて打撃を検出した場合、その変動幅に基づいて、被材の判別を行う。具体的には、変動幅が所定の変動幅閾値未満ならば、木材等に対する木ネジの締め付けが行われていると判断し、変動幅が変動幅閾値以上ならば、金属等の硬質被材に対する機械ネジ等の締め付けが行われていると仮判断する。ＣＰＵ４１は、この仮判断を複数回行い、変動幅が変動幅閾値以上と判断した回数が規定回数に達した場合、金属等の硬質被材に対する機械ネジ等の締め付けが行われているとの判断を確定する。そして、その確定判断後、モータ４の出力を低下させるか、又はモータ４を停止させる。
【０１０６】
なお、変動幅閾値は、打撃の有無の検出に用いられる検出閾値よりも大きい所定の値に設定されている。また、本実施形態では、打撃開始後の被材の判別処理を、打撃開始から１０打撃以内の間に行うようにしている。つまり、打撃が１０回行われるまでの間に、変動幅が変動幅閾値以上となった回数が規定回数に達しなかった場合は、被材は木製等の軟質被材であると判断して、その後の被材判別は行わない。そのため、規定回数は、本実施形態では、１０以下の所定の値に設定されている。
【０１０７】
次に、制御回路３１のＣＰＵ４１が実行するメイン処理について、図４を用いて説明する。ＣＰＵ４１は、電源投入により起動して動作を開始すると、メモリ４２から図４のメイン処理のプログラムを読み込んで実行する。
【０１０８】
ＣＰＵ４１は、図４のメイン処理を開始すると、Ｓ１０で各種の初期設定を行い、Ｓ２０でＷＤＴ（ウォッチドッグタイマ）をクリアする。後述する各種フラグやカウンタは、Ｓ１０の初期設定において全てクリアされる。Ｓ３０では、トリガスイッチ２１からのトリガオン信号及び操作信号を確認する。即ち、トリガ２１ａの操作状態を確認する。
【０１０９】
Ｓ４０では、ＡＤ変換確認処理を行う。具体的には、トリガスイッチ２１からの操作信号、電流検出部３５からの電流検出信号、バッテリ電圧検出部３６からの電圧検出信号などの各種のアナログ入力信号をそれぞれＡＤ変換し、その変換後の各データ、即ちトリガ２１ａの引き量、モータ４の電流、バッテリ２９の電圧などを取得する。
【０１１０】
Ｓ５０では、外部通信機器との通信処理を行う。具体的には、通信部３７を介して外部通信機器とデータ通信を行う。なお、通信可能な外部通信機器が存在しない場合は、Ｓ５０では特に処理を行わず、Ｓ６０に進む。
【０１１１】
Ｓ６０では、Ｓ３０〜Ｓ５０の各処理で確認、取得した各種情報に基づいて、モータ制御処理を実行する。Ｓ６０のモータ制御処理の具体的内容は、図５に示す通りである。
ＣＰＵ４１は、モータ制御処理に移行すると、Ｓ１１０で、打撃状態取得処理を実行する。この打撃状態取得処理では、まず、モータ４の回転数又は電流を取得する。どちらを取得するかについては、予め適宜決めておくことができる。そして、その取得した回転数又は電流に基づいて、打撃が発生したか否か判断する。
【０１１２】
例えば、回転数に基づいて判断する場合、前回の取得タイミングまでは回転数が増加傾向にあったものの、今回取得した回転数が前回取得した値から減少している場合は（つまり増加から減少に転じた場合は）、打撃が行われた可能性がある。この場合、前回取得した回転数を最大値とし、且つその最大値よりも前に最小値を検出していた場合は、その最小値と前回取得した最大値との差分を変動幅とする変動が発生したことが判断できる。この場合、ＣＰＵ４１は、その回転数の変動幅を演算して、メモリ４２に一時記憶する。そして、その変動幅が検出閾値（回転数に対応した検出閾値）以上であるか否かに基づいて、打撃が発生したか否かを判断する。変動幅が検出閾値以上であった場合は、打撃が発生しているものと判断して、打撃回数カウンタをインクリメント（１回分増加）する。打撃回数カウンタは、ＣＰＵ４１によってメモリ４２の所定の領域に一時的に生成されるソフトウェアカウンタであり、初期状態では０にリセットされている。初期状態とは、ＣＰＵ４１が起動したとき、またはトリガスイッチ２１がオフされたときを意味する。そのため、ＣＰＵ４１の起動後、最初に打撃が検出された場合は、打撃回数カウンタは０から１にインクリメントされることになる。
【０１１３】
また例えば、電流に基づいて打撃の有無を判断する場合は、前回の取得タイミングまでは電流が減少傾向にあったものの、今回取得した電流が前回取得した値から増加している場合は（つまり減少から増加に転じた場合は）、打撃が行われた可能性がある。この場合、前回取得した電流を最小値とし、且つその最小値よりも前に最大値を検出していた場合は、その最大値と前回取得した最小値との差分を変動幅とする変動が発生したことが判断できる。この場合も、ＣＰＵ４１は、その電流の変動幅を演算して、メモリ４２に一時記憶する。そして、その変動幅が検出閾値（電流に対応した検出閾値）以上であるか否かに基づいて、打撃が発生したか否かを判断する。変動幅が検出閾値以上であった場合は、打撃が発生しているものと判断して、打撃回数カウンタをインクリメントする。
【０１１４】
このように、ＣＰＵ４１は、Ｓ１１０の処理に移行する度に、回転数又は電流を取得して、その変動幅の検出を試み、打撃発生の可能性を示す変動幅を検出した場合（即ち、回転数の場合は直近で最小値〜最大値の変化が生じた場合、電流の場合は直近で最大値〜最小値の変化が生じた場合）、その変動幅を一時記憶すると共に、その変動幅に基づいて打撃の有無を判断する。そして打撃が行われたと判断した場合は、打撃回数カウンタを用いて、打撃回数を累積加算する。
【０１１５】
Ｓ１２０では、被材判別処理を行う。Ｓ１２０の被材判別処理の詳細を、図６に示す。ＣＰＵ４１は、被材判別処理に移行すると、Ｓ２１０で、トリガスイッチ２１からのトリガオン信号の有無に基づき、トリガスイッチ２１がオンされているか否か判断する。トリガスイッチ２１がオンされていない場合は、Ｓ３００で判別用カウンタ及び制御変更フラグをクリアして、被材判別処理を終了し、Ｓ１３０（図５参照）に進む。トリガスイッチ２１がオンされている場合は、Ｓ２２０に進む。
【０１１６】
Ｓ２２０では、打撃を検出したか否か判断する。この判断は、直前のＳ１１０の打撃状態取得処理において打撃を検出したか否かに基づいて行う。打撃を検出していない場合は、被材判別処理を終了してＳ１３０（図５参照）に進む。打撃を検出している場合は、Ｓ２３０に進む。
【０１１７】
Ｓ２３０では、正逆切替スイッチ２２からの信号に基づき、モータ４の回転方向が正転設定されているか否か、即ち回転方向が正方向に設定されているか否かを判断する。回転方向が逆方向に設定されている場合は、被材判別処理を終了してＳ１３０（図５参照）に進む。回転方向が正方向に設定されている場合は、Ｓ２４０に進む。
【０１１８】
Ｓ２４０では、制御変更フラグがセットされているか否か判断する。制御変更フラグは、初期状態ではクリア（リセット）されており、後述するＳ２９０の処理でセットされる。Ｓ２４０の判断処理において、制御変更フラグがセットされている場合は、被材判別処理を終了してＳ１３０（図５参照）に進む。まだ制御変更フラグがセットされていない場合は、Ｓ２５０に進む。
【０１１９】
Ｓ２５０では、回転開始からの打撃回数が１０回以内か否か判断する。具体的には、打撃回数カウンタのカウンタ値が１０以下になっているか否かを判断する。打撃回数が１１回以上になっている場合は、被材判別処理を終了してＳ１３０（図５参照）に進む。打撃回数が１０回以内の場合は、Ｓ２６０に進む。
【０１２０】
Ｓ２６０では、直前のＳ１１０（図５）で打撃を検出したときにメモリ４２に一時記憶した変動幅（回転数又は電流の変動幅）が変動幅閾値以上であるか否か判断する。変動幅が変動幅閾値未満の場合は、被材判別処理を終了してＳ１３０（図５参照）に進む。即ち、変動幅が変動幅閾値未満ということは、木材等の軟質の被材に対して締め付け作業を行っているものと判断する。この場合、モータ４は、後述するように、トリガ２１ａの引き量に応じた速度指令値にて駆動されることになる。一方、変動幅が変動幅閾値以上だった場合は、Ｓ２７０に進む。
【０１２１】
Ｓ２７０では、判別用カウンタをインクリメントする。判別用カウンタは、打撃回数カウンタと同様、ソフトウェアカウンタであり、初期状態では０にリセットされている。この判別用カウンタは、変動幅が変動幅閾値以上と判断した回数を累積加算するためのカウンタである。Ｓ２７０では、この判別用カウンタを１つインクリメントする。
【０１２２】
Ｓ２８０では、判別用カウンタの値が規定回数以上であるか否か判断する。判別用カウンタの値が規定回数未満の場合は、被材判別処理を終了してＳ１３０（図５参照）に進む。判別用カウンタの値が規定回数以上の場合は、Ｓ２９０に進む。
【０１２３】
Ｓ２９０では、制御変更フラグをセットする。即ち、変動幅が変動幅閾値以上となった回数が規定回数以上に達したことをもって、金属等の硬質の被材に対する機械ネジ等の締め付けが行われているとの確定判断を行い、制御変更フラグをセットする。Ｓ２９０で制御変更フラグをセットした後は、Ｓ１３０（図５参照）に進む。
【０１２４】
図５に戻って説明を続ける。Ｓ１２０の被材判別処理（詳細は図６）の後、Ｓ１３０では、速度指令値設定処理を実行する。この速度指令値設定処理は、基本的には、トリガ２１ａの引き量に応じた速度指令値（本実施形態ではデューティ比）を設定する処理であるが、その設定内容は、制御変更フラグの状態によって異なる。
【０１２５】
Ｓ１３０の速度指令値設定処理の詳細を、図７に示す。ＣＰＵ４１は、速度指令値設定処理に移行すると、Ｓ３１０で、トリガ２１ａの引き量（Ｓ４０で取得済み）に基づいて、その引き量に応じた速度指令値を算出する。即ち、引き量に応じたデューティ比を算出する。
【０１２６】
Ｓ３２０では、制御変更フラグがセットされているか否か判断する。制御変更フラグがセットされていない場合は、速度指令値設定処理を終了してＳ１４０（図５）に進む。制御変更フラグがセットされている場合は、Ｓ３３０に進む。
【０１２７】
Ｓ３３０では、速度指令値（デューティ比）を、Ｓ３１０で算出した値よりも低い値に設定変更（補正）する。具体的には、速度指令値を、Ｓ３１０で算出した値よりも低い値であって且つ０よりは大きい所定の値に低下させるか、又は、０に設定する。速度指令値を低下させるということは、その分、モータ４の回転数が低下するということであり、速度指令値を０に設定するということは、モータ４の回転を停止させるということである。
【０１２８】
制御変更フラグがセットされているということは、既述の通り、金属等の硬質の被材に対する機械ネジ等の締め付けが行われているということである。本実施形態の充電式インパクトドライバ１は、木ネジ専用機であるため、機械ネジの締め付け時に、木ネジの締め付け時と同様にトリガ２１ａの引き量に応じた回転数でモータ４を回転させると、工具が破損するおそれがある。そこで、制御変更フラグがセットされている場合は、速度指令値を低下させて回転を継続させるか、又は速度指令値を０にして回転を停止させることで、工具の破損を抑制するようにしている。Ｓ３３０の処理後は、Ｓ１４０（図５）に進む。
【０１２９】
なお、Ｓ３３０において、速度指令値を低下させるとは、必ずしも、打撃が発生しない程度まで低下させることを意味するわけではない。例えば、打撃自体は継続させつつ、打撃力は低下させることで、機械的な衝撃を和らげるようにしてもよい。もちろん、打撃が発生しないレベルにまで十分に低下させるようにしてもよい。
【０１３０】
図５に戻って説明を続ける。Ｓ１４０では、モータ駆動／停止処理を実行する。具体的には、Ｓ１３０で設定した速度指令値（デューティ比）に基づき、その速度指令値が示すデューティ信号を、駆動信号としてゲート回路３２へ出力する。これにより、モータ４は、設定したデューティ比にて駆動される。
【０１３１】
以上説明したように、本実施形態の充電式インパクトドライバ１では、制御回路３１のＣＰＵ４１が、打撃を検出すると、その打撃に起因して変動する物理量の変動幅に応じて、モータ４の駆動を制御する。そのため、打撃の状態に応じてモータ４が適切に制御され、作業者は、打撃力を利用した作業を適切に行うことができる。
【０１３２】
特に、本実施形態では、物理量として、モータ４の回転数又はモータ４に流れる電流を用い、打撃検出後、回転数又は電流の変動幅に基づいて、モータ４の駆動を制御している。打撃が行われると、モータ４の回転数や電流は、打撃と同期して（打撃の周期と同じ周期で）変動する物理量であり、打撃の状態がより良く反映されている物理量である。
【０１３３】
そのため、回転数又は電流の変動幅を用いて制御することで、打撃が行われているときのモータ４の駆動制御を、打撃の状態を考慮してより精度良く且つ効率的に行うことができる。
【０１３４】
また、ＣＰＵ４１は、打撃開始後、回転数又は電流の変動幅が変動幅閾値以上になった場合に、速度指令値をトリガ２１ａの引き量に応じた値から低下させてモータ４の駆動を継続させるか、又は速度指令値を０にしてモータ４を停止させる、駆動力制限制御を行う。
【０１３５】
そのため、例えば木ネジ専用機を用いて機械ネジの締め付け作業が行われる場合のように、比較的高い負荷がかかるような使い方がなされたとしても、その高い負荷に起因して充電式インパクトドライバ１に異常や不具合が生じるのを抑制することができる。
【０１３６】
しかも、打撃開始後、回転数又は電流の変動幅が変動幅閾値以上になった場合にすぐに駆動力制限制御を行うのではなく、変動幅が変動幅閾値以上になった回数が規定回数以上になった場合に駆動力制限制御を行う。そのため、打撃に起因して発生する変動幅をより精度良く検出することができ、駆動力制限制御の要否判断を精度良く行うことができる。
【０１３７】
また、ＣＰＵ４１は、回転方向が逆転設定されている場合は、駆動力制限制御は行わない。つまり、逆転設定されている場合は、たとえ打撃が行われてその際の回転数又は電流の変動幅が変動幅閾値以上となっても、モータ４の出力を下げたり停止させたりはしない。そのため、ネジやボルト等の回転対象物を被材から緩める作業を行う場合に、その作業を効率良く迅速に行うことができる。
【０１３８】
また、ＣＰＵ４１は、打撃開始後、打撃回数が１０回を越えた場合は、駆動力制限制御を行わない。打撃回数が１０回以上となっても判別用カウンタの値が規定回数以上になっていない場合は、木ネジの締め付けを行っていることが推測される。木ネジ専用機で木ネジの締め付けを行っている場合は、機械ネジの締め付けを行っている場合とは異なり、打撃中にモータ４の出力を低下させたり停止させたりすると、作業者の作業性を低下させてしまうおそれがある。そこで、打撃回数が１０回以上となっても判別用カウンタの値が規定回数以上になっていない場合は、駆動力制限制御を行わないようにすることで、作業性や作業効率の低下を抑制することができる。
【０１３９】
［第２実施形態］
次に、第２実施形態の充電式インパクトドライバについて説明する。本第２実施形態の充電式インパクトドライバは、その機械的構成自体は、図１に示した第１実施形態の充電式インパクトドライバ１と同じである。また、電気的構成のうちハードウェア構成についても、図２に示した第１実施形態の構成と同じである。そのため、本第２実施形態でも、図１及び図２を参照しつつ説明する。
【０１４０】
なお、本第２実施形態の充電式インパクトドライバ１は、第１実施形態と同じように木ネジ専用機であってもよいし、木ネジ専用機以外の他の機種（例えば機械ネジ対応機）であってもよい。
【０１４１】
一般的に、回転打撃工具を用いてネジやボルト等の締結作業を行う場合、作業者は、打撃開始後の適切なタイミングで工具スイッチをオフして工具の動作を停止（打撃を停止）させる。どのタイミングで打撃を停止させるかについては、従来、作業者の経験や技能レベルなどに依存する部分が多く、必ずしも適切なタイミングで打撃を停止させることができるとは限らない。
【０１４２】
そのため、例えば、打撃を必要以上に行ってしまい、その結果、強く締め付けすぎたり、ネジの頭をなめてしまったり、ネジの頭を飛ばしたりしてしまったりするおそれがある。逆に、打撃数が少なくて締結力が不十分になってしまうおそれもある。
【０１４３】
この問題を解決するための１つの制御方法として、本発明者は、打撃開始からの負荷軸回転角を累積的に検出して、打撃開始からの負荷軸回転角が所定の回転角に達したらモータを自動的に停止させるか或いは出力を低下（回転数を低下）させる方法を考えた。本実施形態では、充電式インパクトドライバ１にその制御方法を適用した例について説明する。
【０１４４】
１回の打撃で発生する負荷軸回転角は、トリガ２１ａの引き量によって異なるのはもちろんだが、同じ引き量（即ち同じデューティ比）であっても被材によって異なる。また、１打撃あたりの負荷軸回転角が大きいほど、回転数や電流の変動幅も小さい。
【０１４５】
例えば、木材に対する木ネジの締め付け作業など、比較的軟質の被材に対する締め付け作業を行っている場合は、１打撃毎の負荷軸回転角は比較的大きく、モータ４の回転数や電流の変動幅は比較的小さい。逆に、例えば金属製の面板に対する機械ネジの締め付けなど、比較的硬質の被材に対する締め付け作業を行っている場合、打撃が始まるのは着座するタイミングの近傍である。そのため、打撃開始後の１打撃毎の負荷軸回転角は比較的小さく（ほとんど回転しない場合もある）、モータ４の回転数や電流の変動幅は比較的大きい。
【０１４６】
そこで、本実施形態では、制御回路３１のＣＰＵ４１が、打撃開始後（打撃中）、モータ４に流れる電流から、負荷軸回転角を推定する。そして、打撃開始後の負荷軸回転角が所定の打撃回転角設定値に達したら、速度指令値を低下させるか又は０にすることで、モータ４の出力を下げる。
【０１４７】
本第２実施形態では、打撃回転数設定値を、複数種類の設定値の何れかに選択設定できるよう構成されている。具体的には、本第２実施形態では、打撃回転角設定値を、９０°、１８０°、３６０°、及び７２０°の４種類のうち何れかに設定することができる。この設定は、操作パネル２４に設けられた回転角切替スイッチ２６（図２参照）を押し操作することで可能である。
【０１４８】
作業者が回転角切替スイッチ２６を押し操作する度に、打撃回転角設定値が、９０°→１８０°→３６０°→７２０°→連続回転→９０°→１８０°・・・という順序で切り替わっていく。そして、切り替わる毎に、その切り替わり後の打撃回転角設定値が、操作パネル２４の表示部２７に表示される。
【０１４９】
打撃回転角設定値を例えば１８０°に設定した場合、打撃開始後、負荷軸回転角が１８０°回転すると、速度指令値が低下するか又は０となる。なお、連続回転とは、打撃回転角設定値が設定されないこと、即ち、トリガ２１ａがオンされている限りその引き量に応じた速度指令値でモータ４が駆動され続けることを示す。
【０１５０】
作業者は、回転角切替スイッチ２６を操作することで、打撃開始後の制御内容を所望の内容に設定することができる。例えば、打撃が始まったら迅速にモータ４の出力を低下させて低いトルクで締め付けを行いたい場合は、９０°あるいは１８０°といった低い設定値に設定すればよい。逆に、打撃開始後、しばらくは強い打撃力でしっかり締め付けてから出力を低下させたい場合は、３６０°あるいは７２０°といった高い設定値に設定すればよい。また、打撃開始後も負荷軸回転角にかかわらずモータ４の出力を下げたくない場合は、連続回転に設定すればよい。
【０１５１】
なお、打撃回転数設定値は、ＣＰＵ４１の起動後の初期状態では、連続回転に設定される。また、打撃回転角設定値は、回転角切替スイッチ２６による操作以外に、外部の通信機器から無線通信によって設定することも可能である。制御回路３１のＣＰＵ４１は、外部通信機器からの打撃回転角設定値の設定データが通信部２５によって受信された場合は、その設定データに基づいて、打撃回転角設定値を設定する。
【０１５２】
モータ４に流れる電流の変動幅に基づいて負荷軸回転角を判断する具体的方法は種々考えられる。既述の通り、打撃時の電流の変動幅が大きいほど１打撃あたりの負荷軸回転角は小さいことが予想され、逆に打撃時の電流の変動幅が小さいほど１打撃あたりの負荷軸回転角は大きいことが予想される。
【０１５３】
そこで、本第２実施形態では、電流の変動幅を複数の領域に段階的に区分し、各領域毎に、その領域の変動幅に応じた（つまりその変動幅から予想される負荷軸回転角に対応した）重み付け（加算値）を設定しておく。具体的には、制御回路３１のメモリ４２に、図８（ａ）に示す重み付けテーブルを記憶しておく。
【０１５４】
図８（ａ）の重み付けテーブルは、電流の変動幅が４つの領域に区分されており、各領域毎に、加算値（重み付け）が設定されている。具体的には、電流の変動幅が２〜５［Ａ］（２［Ａ］以上５［Ａ］未満）に対しては加算値として＋１０が設定され、変動幅が５〜８［Ａ］に対しては加算値として＋３が設定され、変動幅が８〜１１［Ａ］に対しては加算値として＋１が設定され、変動幅が１１［Ａ］以上に対しては加算値として０が設定されている。加算値（重み付け）が大きいということは、１打撃での負荷軸回転角が大きいことを意味している。
【０１５５】
ＣＰＵ４１は、電流の変動幅に基づいて打撃を検出する毎に、重み付けテーブルを参照して、その変動幅に対応した加算値を推定カウンタＫによって累積加算していく。そして、その推定カウンタＫの値が、打撃回転角設定値に対応した値（設定値到達判定閾値Ｋｔ）に到達したら、速度指令値を低下させるか又は０とする。４種類の設定打撃回転角に対する設定値到達判定閾値Ｋｔは、図８（ｂ）に示す閾値テーブルとして予めメモリ４２に記憶されている。
【０１５６】
本第２実施形態でも、制御回路３１のＣＰＵ４１は、第１実施形態と同様、図４に示したメイン処理を実行する。本第２実施形態では、メイン処理におけるＳ５０の通信処理で、上述の打撃回転角設定値を外部通信機器から取得できる。また、本第２実施形態では、図４のメイン処理のうち、Ｓ６０のモータ制御処理が、第１実施形態とは異なる。
【０１５７】
本第２実施形態のモータ制御処理を、図９に示す。ＣＰＵ４１は、図９のモータ制御処理を開始すると、Ｓ４１０で、打撃回転角設定処理を実行する。この打撃回転角設定処理は、外部通信機器からの設定データに従って、或いは回転角切替スイッチ２６の設定内容に従って、打撃回転角設定値を設定する処理である。
【０１５８】
Ｓ４１０において、外部通信機器からの設定データが受信されている場合は、その設定データに従って打撃回転角設定値を設定して、Ｓ４２０に進む。外部通信機器から設定データが受信されていない場合は、打撃回転各設定処理として、回転角切替スイッチ２６の操作内容を反映させるための図１０の処理を実行する。
【０１５９】
ＣＰＵ４１は、図１０の打撃回転角設定処理を開始すると、Ｓ５１０で、回転角切替スイッチ２６が押し操作されたか否か判断する。回転角切替スイッチ２６が押し操作されていない場合は、打撃回転角設定処理を終了して、Ｓ４２０（図９参照）に進む。回転角切替スイッチ２６が押し操作された場合は、Ｓ５２０に進む。
【０１６０】
Ｓ５２０では、打撃回転角設定値の現在の設定値が９０°であるか否か判断する。現在の設定値が９０°の場合は、Ｓ５３０に進み、打撃回転角設定値を１８０°に設定する。Ｓ５３０の処理後は、Ｓ４２０（図９参照）に進む。現在の設定値が９０°でない場合は、Ｓ５４０に進む。
【０１６１】
Ｓ５４０では、打撃回転角設定値の現在の設定値が１８０°であるか否か判断する。現在の設定値が１８０°の場合は、Ｓ５５０に進み、打撃回転角設定値を３６０°に設定する。Ｓ５５０の処理後は、Ｓ４２０（図９参照）に進む。現在の設定値が１８０°でない場合は、Ｓ５６０に進む。
【０１６２】
Ｓ５６０では、打撃回転角設定値の現在の設定値が３６０°であるか否か判断する。現在の設定値が３６０°の場合は、Ｓ５７０に進み、打撃回転角設定値を７２０°に設定する。Ｓ５７０の処理後は、Ｓ４２０（図９参照）に進む。現在の設定値が３６０°でない場合は、Ｓ５８０に進む。
【０１６３】
Ｓ５８０では、打撃回転角設定値の現在の設定値が７２０°であるか否か判断する。現在の設定値が７２０°の場合は、Ｓ５９０に進み、打撃回転角設定値を連続回転に設定する。Ｓ５９０の処理後は、Ｓ４２０（図９参照）に進む。現在の設定値が７２０°でない場合は、Ｓ６００に進む。
【０１６４】
Ｓ５８０で否定判定されてＳ６００に進んだということは、打撃回転角設定値が現在は連続回転に設定されているということである。そのため、Ｓ６００では、打撃回転角設定値を９０°に設定する。Ｓ６００の処理後は、Ｓ４２０（図９参照）に進む。
【０１６５】
図９に戻って説明を続ける。Ｓ４１０の打撃回転角設定処理の後、Ｓ４２０では、打撃状態取得処理を実行する。具体的には、まず、モータ４に流れる電流を取得する。そして、その取得した電流に基づいて、打撃が発生したか否か判断する。電流に基づく打撃発生の判断方法は、図５に示した第１実施形態のモータ制御処理におけるＳ１１０での判断方法と同じである。即ち、電流の変動が発生した場合に、その変動幅に基づいて、打撃の有無を検出する。また、本第２実施形態でも、電流の変動幅に基づいて打撃を検出した場合、その変動幅をメモリ４２に一時記憶する。
【０１６６】
Ｓ４３０では、打撃回転角判別処理を実行する。Ｓ４３０の打撃回転角判別処理の詳細は、図１１に示す通りである。ＣＰＵ４１は、打撃回転角判別処理に移行すると、Ｓ６１０で、トリガスイッチ２１がオンされているか否か判断する。トリガスイッチ２１がオンされていない場合は、Ｓ７２０で制御変更フラグをクリアし、Ｓ７３０で推定カウンタＫを０にクリアする。Ｓ７３０の処理後は、Ｓ４４０（図９参照）に進む。なお、推定カウンタＫは、第１実施形態で説明した各カウンタと同様、ソフトウェアカウンタである。推定カウンタＫの値は、打撃開始後の負荷軸回転角の推定値を示している。
【０１６７】
Ｓ６１０でトリガスイッチ２１がオンされている場合は、Ｓ６２０で、打撃回転角設定値が連続回転に設定されているか否か判断する。連続回転に設定されている場合は、Ｓ７３０に進み、推定カウンタＫをクリアする。連続回転に設定されていない場合は、Ｓ６３０に進む。
【０１６８】
Ｓ６３０では、打撃が検出されたか否かを判断する。即ち、直前のＳ４２０の打撃状態取得処理において打撃が検出されたか否かを判断する。打撃が検出されていない場合は、打撃回転角判別処理を終了して、Ｓ４４０（図９参照）に進む。打撃が検出されている場合は、Ｓ６４０に進む。
【０１６９】
Ｓ６４０では、直前のＳ４２０で打撃が検出されたときにその検出に用いられた電流の変動幅、即ちメモリ４２に記憶されている最新の電流変動幅が、２〜５［Ａ］（２［Ａ］以上５［Ａ］未満）の範囲内にあるか否か判断する。電流変動幅が２〜５［Ａ］の範囲内にある場合は、Ｓ６５０に進み、推定カウンタＫを、現在の値に１０加算した値に更新する。この加算値１０は、図８（ａ）で説明したように、電流変動幅２〜５［Ａ］に対して予め設定されている加算値（重み付け）である。Ｓ６５０で推定カウンタＫを更新した後は、Ｓ７００に進む。Ｓ６４０で、電流変動幅が２〜５［Ａ］の範囲内にない場合は、Ｓ６６０に進む。
【０１７０】
Ｓ６６０では、電流変動幅が５〜８［Ａ］（５［Ａ］以上８［Ａ］未満）の範囲内にあるか否か判断する。電流変動幅が５〜８［Ａ］の範囲内にある場合は、Ｓ６７０に進み、推定カウンタＫを、現在の値に３加算した値に更新する。この加算値３は、図８（ａ）で説明したように、電流変動幅５〜８［Ａ］に対して予め設定されている加算値（重み付け）である。Ｓ６７０で推定カウンタＫを更新した後は、Ｓ７００に進む。Ｓ６６０で、電流変動幅が５〜８［Ａ］の範囲内にない場合は、Ｓ６８０に進む。
【０１７１】
Ｓ６８０では、電流変動幅が８〜１１［Ａ］（８［Ａ］以上１１［Ａ］未満）の範囲内にあるか否か判断する。電流変動幅が８〜１１［Ａ］の範囲内にある場合は、Ｓ６９０に進み、推定カウンタＫを、現在の値に１加算した値に更新する。この加算値１は、図８（ａ）で説明したように、電流変動幅８〜１１［Ａ］に対して予め設定されている加算値（重み付け）である。Ｓ６９０で推定カウンタＫを更新した後は、Ｓ７００に進む。Ｓ６８０で、電流変動幅が５〜８［Ａ］の範囲内にない場合は、Ｓ７００に進む。
【０１７２】
Ｓ７００では、現在の推定カウンタＫの値が、現在設定されている設定打撃回転角に対応した設定値到達判定閾値Ｋｔ（図８（ｂ）参照）以上か否か判断する。Ｋ＜Ｋｔの場合は、打撃回転角判別処理を終了して、Ｓ４４０（図９参照）に進む。Ｋ≧Ｋｔの場合は、Ｓ７１０に進む。Ｋ≧Ｋｔということは、打撃開始からの累積の負荷軸回転角が、設定打撃回転角に到達したことが推定される。そのため、Ｓ７１０では、制御変更フラグをセットする。
【０１７３】
図９に戻って説明を続ける。Ｓ４３０の打撃回転角判別処理の後、Ｓ４４０では、速度指令値設定処理を実行する。この速度指令値設定処理は、第１実施形態で説明した図７の速度指令値設定処理と同じである。即ち、基本的にはトリガ２１ａの引き量に応じて速度指令値（デューティ比）を設定するが、制御変更フラグがセットされている場合は、速度指令値を、トリガ２１ａの引き量に応じた値よりも低い所定値に設定するか、又は０に設定する。
【０１７４】
Ｓ４５０では、モータ駆動／停止処理を実行する。具体的には、Ｓ４４０で設定した速度指令値（デューティ比）に基づき、その速度指令値が示すデューティ信号を、駆動信号としてゲート回路３２へ出力する。これにより、モータ４は、設定したデューティ比にて駆動される。
【０１７５】
以上説明したように、本第２実施形態の充電式インパクトドライバ１では、打撃開始後、モータ４に流れる電流の変動幅に基づいて、打撃開始からの負荷軸回転角が算出される。そして、負荷軸回転角が設定打撃回転角に達した場合、モータ４の出力を低下させて駆動を継続させるか又はモータ４を停止させる。そのため、打撃開始後、打撃力によって強く締め付けすぎてしまったり、逆に締め付け不足の状態でトリガスイッチ２１がオフされてしまったりすることを抑制できる。つまり、打撃力による締め付け作業を、過不足なく適切に行うことができる。
【０１７６】
しかも、本第２実施形態では、図８（ｂ）に示したように、発生し得る電流の変動幅を段階的に区分して、段階毎にそれぞれ対応する加算値（重み付け）を設定している。そのため、電流の変動幅に応じて、負荷軸回転角を精度良く算出することができる。
【０１７７】
なお、図８（ａ）に示した各加算値（重み付け）は、本発明の単位打撃回転角の一例に相当し、設定打撃回転角は本発明の規定回転角の一例に相当する。また、打撃検出直前に生じた、電流の最大値から最小値までの変化におけるその変化量（変動幅）は、本発明の演算対象変動幅の一例に相当する。
【０１７８】
［第３実施形態］
次に、第３実施形態の充電式インパクトドライバについて説明する。本第３実施形態の充電式インパクトドライバは、その機械的構成自体は、図１に示した第１実施形態の充電式インパクトドライバ１と同じである。また、電気的構成のうちハードウェア構成についても、図２に示した第１実施形態の構成と同じである。そのため、本第３実施形態でも、図１及び図２を参照しつつ説明する。
【０１７９】
なお、本第３実施形態の充電式インパクトドライバ１は、第１実施形態と同じように木ネジ専用機であってもよいし、木ネジ専用機以外の他の機種（例えば機械ネジ対応機）であってもよい。
【０１８０】
充電式インパクトドライバ１においては、ハンマ１４がコイルバネ１６によって前方に付勢されている。そのため、打撃時の回転数によっては、適切なタイミング（ハンマ１４のエネルギーを効率的に伝達して回転対象物を被材に良好且つ効率的に締め付けることができるタイミング）で打撃が行われないおそれがある。
【０１８１】
例えば、打撃時のモータ４の回転数が低すぎると、打撃機構６の構造に起因して、ハンマ１４がアンビル１５に当たるタイミングが遅れ、ハンマ１４の打撃エネルギーがアンビル１５に効率的に伝達されないことがある。逆に、打撃時のモータ４の回転数が高すぎると、打撃機構６の構造に起因して、ハンマ１４がアンビル１５に当たるタイミングが早すぎて、やはりハンマ１４の打撃エネルギーの損失が生じるおそれがある。
【０１８２】
また、締結を行う被材によっても、適切なタイミングで打撃が行われないおそれがある。一般に、回転打撃工具が有する打撃機構は、通常、回転対象物の締め付け作業時に想定されるトルクを考慮して、そのトルクに耐え得るように作られている。工具によっては、比較的軟質の被材（例えば木材）への締め付け作業を主な用途として作られたものもある。
【０１８３】
軟質の被材への締め付け作業を主な用途として作られた回転打撃工具を用いて、硬質の被材への機械ネジの締め付けを行った場合、想定を超える負荷が工具の負荷軸にかかる。すると、ハンマがアンビルに当たったとき、アンビルがほとんど動かず、ハンマが打撃の反動で比較的大きく跳ね返ってしまう。そのため、結果として、打撃中の打撃タイミングが適切なタイミングからずれるおそれがある。
【０１８４】
適切なタイミングで打撃が行われないと、作業性や作業結果の悪化を招くおそれがある。そのため、回転打撃工具においては、通常、想定される作業条件（打撃中のモータ回転数や被材の種類など）の範囲内では適切なタイミングで打撃が行われるよう、バネ力やその他の機構が一応は調整されている。
【０１８５】
しかし実際には、作業者の使い方や被材の状態などの種々の要因によって、必ずしも適切なタイミングで打撃が行われるとは限らない。そのため、回転打撃工具においては、エネルギー効率や作業性向上などのためにも、適切なタイミングで打撃が行われることが望まれる。
【０１８６】
打撃が適切なタイミングで行われているか否かを判別する方法として、本発明者は、打撃中の回転数や電流などの変動幅に基づいて判別できることを見出した。即ち、打撃中のモータ４の回転数や電流の変動幅が所定の範囲内にあるときが、タイミング良く打撃が行われている。このことは、図３に示した動作例にも現れている。
【０１８７】
図３は、既述の通り、木ネジ専用機として作られた充電式インパクトドライバ１を用いて、木ネジの締め付けを行った場合と、機械ネジの締め付けを行った場合の、モータ４の回転数及び電流の変動例を示している。
【０１８８】
木ネジ専用機で木ネジの締め付けを行った場合、図３に示すように、回転数や電流の変動幅は小さい。これは言い換えれば、タイミング良く効率的に打撃が行われているということである。一方、木ネジ専用機で機械ネジの締め付けを行った場合、回転数や電流の変動幅は大きい。これは言い換えれば、打撃のタイミングが適切ではなく、効率的な打撃が行われていないということである。
【０１８９】
このように、打撃がタイミング良く行われているか否かによって、モータ４の回転数や電流の変動幅も変化する。そして、全体的な傾向として、打撃のタイミングが悪くなるほど、回転数や電流の変動幅も大きくなる。つまり、例えば被材の材質に起因して打撃タイミングが悪くなったり、モータ４の回転数が速すぎたり遅すぎたりすることで打撃タイミングが悪くなったりすると、その打撃タイミングの悪化は、モータ４の回転数や電流の変動幅の変化として現れる。
【０１９０】
そこで、本第３実施形態の充電式インパクトドライバ１は、打撃開始後、打撃中の回転数の変動幅に基づいて速度指令値を補正する、速度指令値の変動幅フィードバック制御を行う。即ち、制御回路３１のＣＰＵ４１は、打撃を検出する毎に、その打撃検出時の回転数の変動幅と予め設定された目標変動幅との差を演算して、その差が０になるように（即ち実際の回転数が目標回転数に一致するように）速度指令値を補正する。
【０１９１】
ＣＰＵ４１は、打撃中は、トリガ２１ａの引き量に応じた速度指令値を、上記のように変動幅フィードバック制御によって補正し、その補正後の速度指令値を用いてモータ４を制御する。
【０１９２】
変動幅フィードバック制御によって補正された速度指令値を用いて具体的にどのようにモータ４を制御するかについては、種々考えられる。例えば、第１，第２実施形態のように、速度指令値に応じたデューティ比の駆動信号を出力するオープン制御であってもよい。
【０１９３】
また例えば、速度指令値と、その速度指令値に対応した実際の物理量とを比較して、両者の差が０になるように、最終的にゲート回路３２へ出力する駆動信号のデューティ比（出力デューティ比）をフィードバック制御してもよい。
【０１９４】
例えば、速度指令値として回転数を用いる場合、変動幅フィードバック制御によって補正された速度指令値（回転数）と実際の回転数とが一致するように出力デューティを制御する、速度フィードバック制御を行うようにしてもよい。
【０１９５】
また例えば、速度指令値としてデューティ比を用いる場合、変動幅フィードバック制御によって補正された速度指令値（デューティ比）と、現在の実際の出力デューティ比とを比較して、両者が一致するように出力デューティ比を制御するフィードバック制御を行うようにしてもよい。
【０１９６】
そこで、本第３実施形態では、速度指令値としてデューティ比を算出する場合と、速度指令値として回転数を算出する場合との、２つのパターンについて、それぞれ説明する。
本第３実施形態でも、制御回路３１のＣＰＵ４１は、第１実施形態と同様、図４に示したメイン処理を実行する。但し、本第３実施形態では、図４のメイン処理のうち、Ｓ６０のモータ制御処理が、第１実施形態とは異なる。
【０１９７】
本第３実施形態のモータ制御処理を、図１２に示す。ＣＰＵ４１は、図１２のモータ制御処理を開始すると、Ｓ８１０で、速度指令値設定処理を実行する。具体的には、トリガ２１ａの引き量に基づき、その引き量に応じた速度指令値（回転数又はデューティ比）を設定（算出）する。速度指令値が回転数の場合は、引き量が大きいほど、算出される速度指令値（回転数）も高くなる。
【０１９８】
Ｓ８２０では、打撃状態取得処理を行う。具体的には、まず、モータ４の回転数を取得する。そして、その取得した回転数に基づいて、打撃が発生したか否か判断する。回転数に基づく打撃発生の判断方法は、図５に示した第１実施形態のモータ制御処理におけるＳ１１０での判断方法と同じである。即ち、回転数の変動（最小値から最大値への変動）が発生した場合に、その変動幅に基づいて、打撃の有無を検出する。また、本第３実施形態でも、回転数の変動幅に基づいて打撃を検出した場合、その変動幅をメモリ４２に一時記憶する。
【０１９９】
Ｓ８３０では、新速度指令値設定処理を実行する。この新速度指令値設定処理では、Ｓ８２０で打撃が検出された場合に、その検出時の回転数の変動幅（現変動幅）に基づいて速度指令値を補正する処理（変動幅フィードバック制御）を行う。更に、その補正された速度指令値に対し、その速度指令値に対応した実際の物理量に基づくフィードバック制御を行うことで、最終的に駆動信号として出力するデューティ信号のデューティ比（出力デューティ比）を算出する。Ｓ８３０の処理の詳細については、後で図１３及び図１４を用いて説明する。
【０２００】
Ｓ８３０の新速度指令値設定処理によって最終的な速度指令値を算出した後は、Ｓ８４０で、モータ駆動／停止処理を実行する。具体的には、Ｓ８３０で算出した速度指令値（出力デューティ比）に基づき、その出力デューティ比を示すデューティ信号を、駆動信号としてゲート回路３２へ出力する。これにより、モータ４は、Ｓ８３０で算出した出力デューティ比にて駆動される。
【０２０１】
Ｓ８３０の新速度指令値設定処理について、具体的に説明する。まず、速度指令値として回転数を算出するパターンについて、図１３を用いて説明する。ＣＰＵ４１は、速度指令値として回転数を算出する場合は、Ｓ８３０の新速度指令値設定処理として、図１３の処理を実行する。
【０２０２】
ＣＰＵ４１は、図１３の新速度指令値設定処理に移行すると、Ｓ９１０で、トリガスイッチ２１がオンされているか否か判断する。トリガスイッチ２１がオンされていない場合は、新速度指令値設定処理を終了する。トリガスイッチ２１がオンされている場合は、Ｓ９２０に進む。
【０２０３】
Ｓ９２０では、打撃を検出したか否か判断する。この判断は、直前のＳ８２０の打撃状態取得処理において打撃を検出したか否かに基づいて行う。打撃を検出していない場合は、Ｓ９４０に進む。打撃を検出している場合は、Ｓ９３０に進む。
【０２０４】
Ｓ９３０では、速度指令値（本例では回転数）の変動幅フィードバック制御処理を行う。この変動幅フィードバック制御処理は、具体的には、次式（１）を用いて速度指令値を補正演算することにより行う。
【０２０５】
新速度指令値＝速度指令値＋（目標変動幅−現変動幅）Ｇａ  ・・・（１）
上記式（１）において、右辺の速度指令値は、現在の速度指令値である。例えば、ＣＰＵ４１の起動後初めてＳ８３０の処理を行う場合は、現在の速度指令値はＳ８１０で算出された速度指令値である。また例えば、前回の制御周期でＳ８３０の処理を行っている場合は、現在の速度指令値は、その前回Ｓ８３０で算出した新速度指令値である。
【０２０６】
また上記式（１）において、右辺第２項の係数Ｇａは、比例係数である。また、目標変動幅は、最適なタイミングで打撃が行われている場合に想定される回転数の変動幅である。目標変動幅は、充電式インパクトドライバ１の種類や仕様、打撃機構６の構造全体（例えばコイルバネ１６のバネ係数）などを考慮して、理論的あるいは実験的に算出することができる。
【０２０７】
打撃が適切なタイミングで行われているか否かは、打撃時の回転数の現変動幅と目標変動幅を比較することで確認できる。現変動幅が目標変動幅に近いほど、打撃が最適なタイミングに近いタイミングで行われているといえる。逆に、現変動幅と目標変動幅との差が大きいほど、最適なタイミングに対する実際の打撃タイミングのずれが大きくなっているといえる。
【０２０８】
そこで、本実施形態では、上記式（１）により、現在の速度指令値を、現変動幅と目標変動幅との差に応じて補正する。式（１）により、例えば現変動幅が目標変動幅より大きい場合は、現在の速度指令値よりも小さい値の速度指令値が新速度指令値として算出される。また例えば、現変動幅が目標変動幅より小さい場合は、現在の速度指令値よりも大きい値の速度指令値が新速度指令値として算出される。
【０２０９】
Ｓ９３０で速度指令値の変動幅フィードバック演算を行った後は、Ｓ９４０で、出力デューティの速度フィードバック制御処理を行う。具体的には、次式（２）を用いて出力デューティを算出する。
【０２１０】
出力デューティ＝（新速度指令値−実回転数）Ｇｂ  ・・・（２）
上記式（２）において、新速度指令値は、Ｓ９３０で算出（即ち式（１）で算出）した新速度指令値である。但し、Ｓ９２０で打撃を検出していないと判断されてＳ９４０に移行してきた場合は、新速度指令値として、現在設定されている速度指令値を用いる。実回転数は、Ｓ８２０で取得した、現在の実際の回転数である。Ｇｂは、比例係数である。
【０２１１】
つまり、Ｓ９４０の処理は、モータ４の実際の回転数が、新速度指令値が示す回転数（目標回転数）に一致するように、新速度指令値と実回転数との差に応じた出力デューティを算出する、速度フィードバック制御処理である。
【０２１２】
次に、Ｓ８３０の新速度指令値設定処理について、速度指令値としてデューティ比を算出するパターンについて、図１４を用いて説明する。ＣＰＵ４１は、速度指令値としてデューティ比を算出する場合は、Ｓ８３０の新速度指令値設定処理として、図１４の処理を実行する。
【０２１３】
図１４の新速度指令値設定処理において、Ｓ１０１０〜Ｓ１０３０の各処理は、図１３のＳ９１０〜Ｓ９３０と同じである。但し、Ｓ１０３０では、速度指令値としてのデューティ比に対して、上記式（１）を用いた変動幅フィードバック制御処理が行われる。
【０２１４】
Ｓ１０３０で速度指令値（デューティ比）の変動幅フィードバック制御処理が行われた後、又はＳ１０２０で打撃を検出していないと判断された後は、Ｓ１０４０に進む。Ｓ１０４０では、現在の出力デューティ比（現デューティ比）が新速度指令値−２％以上か否か判断する。
【０２１５】
現デューティ比が、新速度指令値から２％減じた値以上になっている場合は、Ｓ１０５０に進む。Ｓ１０５０では、出力デューティ比を、新速度指令値に設定する。そのため、例えば現デューティ比が新速度指令値よりも２％を越えて大きい値になっている場合は、出力デューティ比が、現デューティ比よりも小さい値となる。
【０２１６】
Ｓ１０４０で、現デューティ比が、新速度指令値から２％減じた値よりも小さい場合は、Ｓ１０６０に進む。Ｓ１０６０では、出力デューティ比を、現デューティ比に対して２％加えた値にする。
【０２１７】
以上説明したように、本実施形態の充電式インパクトドライバ１では、速度指令値の変動幅フィードバック制御が行われる。即ち、打撃中の回転数の変動幅が目標変動幅に一致するように、速度指令値が補正演算される。そのため、適切なタイミングで打撃を行わせることができ、これにより、作業性、作業効率、作業結果の向上が図れる。
【０２１８】
［他の実施形態］
（１）打撃の検出タイミングについて、上記各実施形態では、回転数や電流が周期的に変動する過程において、ハンマ１４がアンビル１５に衝突したことが予想されるタイミングで、打撃の有無を検出した。即ち、回転数に基づいて打撃を検出する場合には、回転数が最小値から最大値へと変動したことを検出する毎に、その変動幅（最小値と最大値の差）に基づいて打撃の有無を検出した。また、電流に基づいて打撃を検出する場合には、電流値が最大値から最小値へと変動したことを検出する毎に、その変動幅（最大値と最小値の差）に基づいて打撃の有無を検出した。
【０２１９】
しかし、打撃の検出タイミングは上記タイミングに限定されるものではない。例えば、回転数や電流の変動幅が検出される毎に、その変動幅に基づいて打撃の有無を検出してもよい。即ち、例えば回転数に基づいて検出する場合、回転数が最小値から最大値へ変動したときに限らず、回転数が最大値から最小値へと変動したときも、その変動幅に基づいて打撃の有無を検出するようにしてもよい。
【０２２０】
また例えば、連続して発生する複数回の変動の各変動幅を総合的に考慮して（例えば複数の変動幅の平均値に基づいて）打撃の有無を判断するようにしてもよい。
（２）第１実施形態の被材判別処理（図６）における、Ｓ２６０の判断処理（変動幅が変動幅閾値以上か否かの判断）は、打撃検出時の直近の変動幅に基づいて行うことに限定されない。例えば、打撃検出時の直近の変動幅に加えて（或いはそれに代えて）、それ以前に検出された少なくとも１つの変動幅を用いて、Ｓ２６０の処理、即ち変動幅閾値に基づく被材の判別処理を行うようにしてもよい。
【０２２１】
第２実施形態の打撃回転角判別処理（図１１）におけるＳ６４０，Ｓ６６０，Ｓ６８０の各処理や、第３実施形態の新速度指令値設定処理（図１３，図１４）におけるＳ９３０，Ｓ１０３０の各処理についても同様である。
【０２２２】
（３）第１実施形態の被材判別処理（図６）では、打撃開始からの打撃検出回数が１０回以内の場合に、変動幅に基づく被材の判別（Ｓ２６０〜Ｓ２９０）を行うようにしたが、この１０回という回数はあくまでも一例である。打撃開始から何打撃以内に被材の判別を行うようにするかについては適宜決めることができる。また、打撃開始後、打撃回数にかかわらず被材の判別を継続的に行うようにしてもよい。
【０２２３】
（４）第２実施形態では、モータ４に流れる電流の変動幅に基づいて打撃の検出や打撃中の負荷軸回転角を算出するようにしたが、モータ４の回転数の変動幅を用いてそれらを算出するようにしてもよい。その場合、図８（ｂ）と同様の要領で、回転数の変動幅を段階的に区分して、各区分毎に推定カウンタＫのカウンタ値を対応付ければよい。
【０２２４】
逆に、第３実施形態では、モータ４の回転数の変動幅に基づいて、打撃の検出や変動幅フィードバック制御を行うようにしたが、モータ４に流れる電流の変動幅を用いてそれらを行うようにしてもよい。
【０２２５】
更に、上記各実施形態において、モータ４の回転数や電流の変動幅に基づく各種演算や制御処理を、回転数や電流以外の他の物理量の変動幅を用いて行うようにしてもよい。回転数や電流以外の他の物理量は、充電式インパクトドライバ１において打撃によって変動が発生するような物理量である限り、種々の物理量を用いることができる。より好ましくは、打撃の周期と同期して（ほぼ同じ周期で）周期的に変動する物理量を用いるとよい。物理量の具体例としては、例えば、モータ４に印加される電圧や供給電力、モータ４の回転位置、充電式インパクトドライバ１に生じる振動、音などが挙げられる。
【０２２６】
また、複数種類の物理量の変動幅を用いてもよい。例えば、モータ４の回転数及び電流の双方について、それぞれの変動幅を総合的に考慮して、被材判別（第１実施形態）、負荷軸回転角の算出（第２実施形態）、変動幅フィードバック制御（第３実施形態）を行うようにしてもよい。
【０２２７】
（５）第３実施形態において、フィードバック制御の具体的方法は、比例制御に限らず、例えば比例積分制御（ＰＩ制御）を用いてもよい。比例制御や比例積分制御以外の他の制御方法を用いてもよい。
【０２２８】
（６）上記実施形態では、制御回路３１がマイクロコンピュータを備えているものとして説明したが、制御回路３１は、マイクロコンピュータに限らず、例えばＡＳＩＣやＦＰＧＡ、その他の各種ＩＣ、ロジック回路等により構成してもよい。
【０２２９】
（７）上記実施形態のモータ４は３相ブラシレスモータであったが、３相ブラシレスモータ以外の他のモータを備えた回転打撃工具に対しても本発明を適用可能である。
（８）上記実施形態では、本発明を充電式インパクトドライバ１に適用した例を示したが、本発明は、充電式インパクトドライバ１に限らず、モータの回転力によって打撃動作が発生する打撃機構を備えたあらゆる種類の回転打撃工具に適用可能である。
【０２３０】
（９）その他、本発明は、上記の実施形態に示された具体的手段や構造等に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の形態を採り得る。例えば、上記の実施形態の構成の一部を、同様の機能を有する公知の構成に置き換えたり、他の実施形態の構成に対して付加、置換等したり、課題を解決できる限りにおいて省略したりしてもよい。また、上記の複数の実施形態を適宜組み合わせて構成してもよい。
【符号の説明】
【０２３１】
１…充電式インパクトドライバ、２…ハウジング、３…グリップ部、４…モータ、５…ハンマケース、６…打撃機構、７…スピンドル、８…ボールベアリング、９…遊星歯車機構、１０…工具本体、１１…インターナルギヤ、１２…出力軸、１３…ピニオン、１４…ハンマ、１５…アンビル、１６…コイルバネ、１７…打撃突部、１８…打撃アーム、１９…スリーブ、２０…軸受、２１…トリガスイッチ、２１ａ…トリガ、２１ｂ…スイッチ本体部、２２…正逆切替スイッチ、２３…照明ＬＥＤ、２４…操作パネル、２５…通信部、２６…回転角切替スイッチ、２７…表示部、２９…バッテリ、３０…バッテリパック、３１…制御回路、３２…ゲート回路、３３…モータ駆動回路、３４…レギュレータ、３５…電流検出部、３６…バッテリ電圧検出部、３７…通信部、４０…モータ駆動装置、４１…ＣＰＵ、４２…メモリ、５０…ホールＩＣ。
【図１】
2015150671.tif 000003
【図２】
2015150671.tif 000004
【図４】
2015150671.tif 000005
【図５】
2015150671.tif 000006
【図６】
2015150671.tif 000007
【図７】
2015150671.tif 000008
【図８】
2015150671.tif 000009
【図９】
2015150671.tif 000010
【図１０】
2015150671.tif 000011
【図１１】
2015150671.tif 000012
【図１２】
2015150671.tif 000013
【図１３】
2015150671.tif 000014
【図１４】
2015150671.tif 000015
【図３】
2015150671.tif 000016