(57)【要約】【課題】ブラシレスモータを備える電動作業機において、ブラシレスモータの回転子の回転位置を検出する回転位置センサによる検出結果を、精度良く補正できるようにする。【解決手段】ブラシレスモータ（以下、モータ）を動力源として備える電動作業機は、モータの回転子の回転に伴う磁界の変化から回転子の回転位置（以下、ロータ位置）を検出するホールセンサと、モータの巻線に発生する誘起電圧からロータ位置を検出するロータ位置検出回路と、モータを制御するマイコンとを備える。マイコンは、モータが惰性回転している場合に、ホールセンサによる検出結果（ＨａＵ，ＨａＶ，ＨａＷ）とロータ位置検出回路による検出結果（ＺｒＵ，ＺｒＶ，ＺｒＷ）との差（ＴｅＵ，ＴｅＶ，ＴｅＷ）を検出し、その差から、ホールセンサによる検出結果を補正するための補正値を算出する。そして、その補正値をメモリに記憶して、ホールセンサによる検出結果の補正に用いる。【選択図】図７
2017135950.tif 000002
【特許請求の範囲】
【請求項１】
回転子と、巻線を有する固定子と、を備えるブラシレスモータを、動力源として備える電動作業機であって、
前記回転子の回転に伴う磁界の変化から前記回転子の回転位置を検出する回転位置センサと、
前記巻線に発生する誘起電圧から前記回転子の回転位置を検出する検出部と、
前記ブラシレスモータが惰性回転している場合に、前記回転位置センサによる検出結果と前記検出部による検出結果との差を検出し、その差から前記回転位置センサによる検出結果を補正するための補正値を算出する算出部と、
前記算出部により算出された補正値をメモリに記憶する記憶処理部と、
を備える、電動作業機。
【請求項２】
請求項１に記載の電動作業機であって、
前記算出部は、
前記ブラシレスモータが惰性回転している場合に、前記回転位置センサと前記検出部とが前記回転子の同じ回転位置を検出した各タイミングのずれ量を、前記差として検出するように構成されている、
電動作業機。
【請求項３】
請求項１又は請求項２に記載の電動作業機であって、
前記回転位置センサによる検出結果に基づいて前記ブラシレスモータを制御するモータ制御部を、備え、
前記モータ制御部は、
前記回転位置センサによる検出結果を、前記メモリに記憶された補正値により補正して前記ブラシレスモータの制御に使用するように構成されている、
電動作業機。
【請求項４】
請求項１ないし請求項３の何れか１項に記載の電動作業機であって、
前記算出部は、
前記ブラシレスモータの回転速度が所定の下限値以上の場合に、前記差を検出するように構成されている、
電動作業機。
【請求項５】
請求項４に記載の電動作業機であって、
前記算出部は、
前記ブラシレスモータの回転速度が前記下限値以上で、且つ、前記下限値よりも大きい所定の上限値以下の場合に、前記差を検出するように構成されている、
電動作業機。
【請求項６】
請求項１ないし請求項５の何れか１項に記載の電動作業機であって、
前記メモリ内の前記補正値と、前記算出部により算出された新たな前記補正値とを比較して、前記メモリ内の前記補正値を更新するか否かを判定する更新判定部、を備え、
前記記憶処理部は、
前記更新判定部により肯定判定された場合に、前記メモリ内の前記補正値を、前記新たな補正値に更新するように構成されている、
電動作業機。
【請求項７】
請求項１ないし請求項６の何れか１項に記載の電動作業機であって、
前記算出部により算出された前記補正値が所定の範囲内であるか否かにより、前記算出された補正値が正常か否かを判定し、前記算出された補正値が正常でないと判定した場合に、当該電動作業機の使用者に対して異常の発生を報知するための処理を行う異常検出部、を備える、
電動作業機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブラシレスモータを動力源として備えた電動作業機に関する。
【背景技術】
【０００２】
特許文献１には、この種の電動作業機の一例として、充電式のドリルやドライバ等の充電工具が記載されている。そして、特許文献１には、ブラシレスモータに組み付けられたホール素子によって、ブラシレスモータの回転子の回転位置を検出し、その検出結果に基づいてブラシレスモータを制御することが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平３−１９０６８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ブラシレスモータの制御においては、回転子の回転位置（以下単に、回転位置ともいう）に合わせて、固定子の巻線への通電を切り替える。よって、ブラシレスモータの本来の性能を発揮させるためには、回転位置の検出誤差を小さくする必要がある。
【０００５】
一方、ホール素子からなる回転位置センサでは、それの組み付け誤差（即ち、組み付け位置の誤差）に起因して、回転位置の検出誤差が生じる。そして、その検出誤差は、組み付け誤差が大きいほど、また、ブラシレスモータの磁極数（詳しくは、回転子の磁極数）が多いほど、大きくなる。回転位置センサの組み付け誤差が機械角で「Ａ°」であるとし、ブラシレスモータの磁極数が「Ｂ」であるとすると、回転位置センサによる回転位置の検出誤差は、電気角で「Ａ°×Ｂ／２」となる。
【０００６】
このため、回転位置センサの組み付け誤差を小さく抑えることができたとしても、例えばブラシレスモータの高出力化のために磁極数を増加させると、回転位置の検出誤差が、ブラシレスモータの制御に影響するほどに大きくなってしまう可能性がある。
【０００７】
そこで、本発明は、ブラシレスモータを備える電動作業機において、ブラシレスモータの回転子の回転位置を検出する回転位置センサによる検出結果を、精度良く補正できるようにすること、を目的としている。
【課題を解決するための手段】
【０００８】
本発明の１つの局面における電動作業機は、ブラシレスモータを、動力源として備える。更に、この電動作業機は、回転位置センサと、検出部と、算出部と、記憶処理部と、を備える。
【０００９】
ブラシレスモータは、回転子と、巻線を有する固定子と、を備える。
回転位置センサは、回転子の回転に伴う磁界の変化から回転子の回転位置を検出する。
検出部は、巻線に発生する誘起電圧から回転子の回転位置を検出する。
【００１０】
算出部は、ブラシレスモータが惰性回転している場合に、回転位置センサによる検出結果と検出部による検出結果との差を検出し、その差から回転位置センサによる検出結果を補正するための補正値を算出する。記憶処理部は、算出部により算出された補正値をメモリに記憶する。
【００１１】
回転位置センサでは、それの組み付け誤差に起因して検出誤差が生じるが、誘起電圧から回転位置を検出する手法では、組み付け誤差に起因する検出誤差は生じない。また、誘起電圧は、巻線に流す電流（即ち、励磁電流）による磁場の影響を受けるため、ブラシレスモータの駆動中は回転位置を正確に示さないものの、ブラシレスモータの惰性回転中は回転位置を正確に示す。このため、ブラシレスモータの惰性回転中における検出部による検出結果は、正しい回転位置を示すと考えられる。そこで、算出部は、ブラシレスモータが惰性回転している場合に、回転位置センサによる検出結果と検出部による検出結果との差を検出し、その差から補正値を算出する。
【００１２】
このように構成された電動作業機によれば、回転位置センサによる検出結果を精度良く補正可能な補正値が、メモリに記憶される。このため、回転位置センサによる検出結果を、メモリに記憶された補正値を用いて、精度良く補正することができるようになる。
【００１３】
算出部は、ブラシレスモータが惰性回転している場合に、回転位置センサと検出部とが回転子の同じ回転位置を検出した各タイミングのずれ量を、前記差として検出するように構成されても良い。
【００１４】
このように構成された電動作業機によれば、回転位置センサによる検出結果と検出部による検出結果との差を、簡単に検出することができ、延いては、補正値を算出するための処理を簡単なものにすることができる。
【００１５】
電動作業機は、更に、モータ制御部を備えていても良い。そのモータ制御部は、回転位置センサによる検出結果に基づいてブラシレスモータを制御する。そして、モータ制御部は、回転位置センサによる検出結果を、メモリに記憶された補正値により補正してブラシレスモータの制御に使用するように構成されていても良い。
【００１６】
このように構成された電動作業機によれば、ブラシレスモータの制御精度を向上させることができる。
算出部は、ブラシレスモータの回転速度が所定の下限値以上の場合に、前記差を検出するように構成されていても良い。回転速度が小さすぎると、発生する誘起電圧の振幅が小さくなり、その誘起電圧から回転位置を精度良く検出することが難しくなるためである。
【００１７】
そして、このように構成された電動作業機によれば、算出部によって算出される補正値の精度を向上させることができる。
算出部は、ブラシレスモータの回転速度が前記下限値以上で、且つ、前記下限値よりも大きい所定の上限値以下の場合に、前記差を検出するように構成されていても良い。回転速度が大きすぎると、発生する誘起電圧の変化速度が大きくなり、その誘起電圧から回転位置を精度良く検出することが難しくなるためである。
【００１８】
そして、このように構成された電動作業機によれば、検出部による回転位置の検出精度が良好になる回転速度範囲において、前記差を検出することができる。よって、算出部によって算出される補正値の精度を一層向上させることができる。
【００１９】
電動作業機は、更に、更新判定部を備えていても良い。その更新判定部は、メモリ内の補正値と、算出部により算出された新たな補正値とを比較して、メモリ内の補正値を更新するか否かを判定する。そして、記憶処理部は、その更新判定部により肯定判定された場合に、メモリ内の補正値を、前記新たな補正値に更新するように構成されていても良い。
【００２０】
このように構成された電動作業機によれば、記憶処理部は、メモリ内の補正値を、新たな補正値が算出される毎に更新しなくても済むようになる。このため、メモリ内の補正値を書き換えるための処理負荷を抑制することができ、また、メモリの書き換え回数も抑制することができる。
【００２１】
電動作業機は、更に、異常検出部を備えていても良い。その異常検出部は、算出部により算出された補正値が所定の範囲内であるか否かにより、その補正値が正常か否かを判定し、その補正値が正常でないと判定した場合に、当該電動作業機の使用者に対して異常の発生を報知するための処理を行う。所定の範囲は、設計上の正常範囲（即ち、設計上取り得る範囲）に設定すれば良い。
【００２２】
このように構成された電動作業機によれば、例えば回転位置センサと検出部との何れかに異常が発生して、算出部により算出された補正値が異常な値になった場合に、異常の発生を検知して、使用者に報知することができる。その結果、使用者に対して、当該電動作業機の修理を促すことができる。
【図面の簡単な説明】
【００２３】
【図１】実施形態の刈払機を表す斜視図である。
【図２】前端ユニットを表す斜視図である。
【図３】上面カバーを外した前端ユニットの平面図である。
【図４】ブラシレスモータのロータを表す平面図である。
【図５】制御装置の構成を示す構成図である。
【図６】各相の誘起電圧とゼロクロス信号とホール信号とを表すタイムチャートである。
【図７】補正処理の内容と具体例を表すタイムチャートである。
【図８】モータ制御処理を表すフローチャートである。
【図９】第１のＵ相ホール信号割込処理を表すフローチャートである。
【図１０】補正値記憶処理を表すフローチャートである。
【図１１】Ｕ相ゼロクロス信号割込処理を表すフローチャートである。
【図１２】第２のＵ相ホール信号割込処理を表すフローチャートである。
【発明を実施するための形態】
【００２４】
以下、本発明の例示的な実施形態について、図面を用いて説明する。
本実施形態では、電動作業機の一例である刈払機を例に挙げる。
［刈払機の全体構成］
図１に示す実施形態の刈払機２は、園芸用の電動作業機であって、草木を刈り払うために用いられる
刈払機２は、支持棹４と、支持棹４の前端４ａに設けられた前端ユニット６と、支持棹４の後端４ｂに設けられた後端ユニット８と、支持棹４の中間部に設けられたループハンドル１０と、ループハンドル１０と後端ユニット８との間に設けられたグリップ１２と、を備える。支持棹４は、中空のパイプ状であって、前端４ａから後端４ｂまで直線状に伸びている。
【００２５】
図２に示すように、前端ユニット６は、モータハウジング１３を備える。モータハウジング１３は、上部が開口したハウジング本体１４と、ハウジング本体１４の上部の開口を覆う上面カバー１５と、を備える。
【００２６】
図３に示すように、ハウジング本体１４の中には、動力源としてのモータ１６と、センサ基板１７とが、収容されている。
モータ１６は、アウタロータ型の３相のブラシレスモータであり、固定子としてのステータ１８と、回転子としてのロータ１９と、ロータ１９に連結されたモータ軸２０と、を備える。
【００２７】
ステータ１８は、巻線として、Ｕ，Ｖ，Ｗの各相のコイル４１ｕ，４１ｖ，４１ｗ（図５参照）を備える。ステータ１８は、ハウジング本体１４に固定されており、そのステータ１８に対して、ロータ１９及びモータ軸２０が回転する。
【００２８】
図４に示すように、ロータ１９は、内周面が円筒形状に形成されたマグネット２１と、マグネット２１の外周面に一体的に取り付けられたロータコア２２と、を備える。マグネット２１は、例えば希土類異方性ボンド磁石により形成されている。また、ロータコア２２は、例えば複数の電磁鋼板を積層することで形成されている。マグネット２１には、それの内周面にＮ極とＳ極との２つの磁極が周方向に交互に現れるように着磁されている。この例において、ロータ１９の磁極数は１６（換言すれば、極対数は８）である。
【００２９】
図３に示すように、センサ基板１７には、ロータ１９の回転に伴う磁界の変化からロータ位置を検出する回転位置センサとして、３つのホールセンサ２３ｕ，２３ｖ，２３ｗが設けられている。ロータ位置とは、ロータ１９の回転位置のことである。ホールセンサ２３ｕ，２３ｖ，２３ｗは、磁電変換素子としてホール素子を備える回転位置センサである。また、ホールセンサ２３ｕは、Ｕ相に対応するホールセンサであり、ホールセンサ２３ｖは、Ｖ相に対応するホールセンサであり、ホールセンサ２３ｗは、Ｗ相に対応するホールセンサである。
【００３０】
センサ基板１７は、ホールセンサ２３ｕ，２３ｖ，２３ｗが、ロータ１９のマグネット２１の上端面（即ち、上面カバー１５側の端面）と対向する位置となるように、ハウジング本体１４にネジ２４により固定されている。また、ホールセンサ２３ｕ，２３ｖ，２３ｗは、ロータ１９の周方向において、機械角で１５°の間隔（換言すれば、電気角で１２０°の間隔）で配置される。本実施形態では、機械角の値を８倍した値が、電気角の値である。
【００３１】
図２に示すように、前端ユニット６は、モータハウジング１３の下方に着脱可能に取り付けられたコードホルダ２６と、安全カバー２７と、を備える。
コードホルダ２６は、モータ軸２０と連結されている。よって、コードホルダ２６は、モータ１６によって回転駆動される。コードホルダ２６は、紐状のカッターコード２８を保持している。カッターコード２８の先端は、コードホルダ２６から引き出されており、コードホルダ２６と共に回転する。刈払機２は、高速で周回するカッターコード２８によって草木を切断する。カッターコード２８は、例えばナイロンコードである。
【００３２】
安全カバー２７は、モータハウジング１３及びコードホルダ２６よりも後方において、支持棹４に取り付けられている。
図１に示すように、ループハンドル１０は、支持棹４の上方および側方に膨らむループ形状に形成されている。ループハンドル１０は、支持棹４に固定されている。
【００３３】
グリップ１２は、支持棹４の外周を覆うように形成されている。グリップ１２は、下面に設けられたトリガスイッチ２９と、上面に設けられたロックオフレバー３０と、を備える。
【００３４】
トリガスイッチ２９は、モータ１６を駆動させるためのスイッチであり、押し込み操作されることでオンする。ロックオフレバー３０は、トリガスイッチ２９の押し込み操作の規制および規制の解除を行うためのレバーである。ロックオフレバー３０が押し込まれていない状態では、トリガスイッチ２９の押し込み操作が規制される。ロックオフレバー３０が押し込まれた状態では、トリガスイッチ２９の押し込み操作の規制が解除される。
【００３５】
グリップ１２の上面において、ロックオフレバー３０よりも前方側には、操作部３１と、表示パネル３２とが、設けられている。
操作部３１には、モータ１６の回転方向や回転速度等を変更するための操作ボタンが設けられている。表示パネル３２には、故障の有無やモータ１６の動作状態等を示すＬＥＤ３４（図５参照）が設けられている。ＬＥＤは、発光ダイオードの略である。
【００３６】
刈払機２の使用者（即ち、作業者）は、一方の手でループハンドル１０を把持し、他方の手でグリップ１２を把持する。そして、使用者は、グリップ１２を把持した手の親指の付け根でロックオフレバー３０を押し込み操作し、同じ手の他の指でトリガスイッチ２９を押し込み操作する。これによって、モータ１６へ電力が供給される。また、使用者は、グリップ１２を把持した手の親指で操作部３１の操作ボタンを操作することにより、モータ１６の回転方向や回転速度等を調節することができる。
【００３７】
図１に示すように、後端ユニット８は、モータ１６を制御する制御装置３５（図５参照）が収容された後端ハウジング３６と、後端ハウジング３６に着脱可能に取り付けられた２個のバッテリパック３７と、を備える。
【００３８】
２個のバッテリパック３７は、後端ハウジング３６に装着されることで、直列に接続されるようになっている（図５参照）。また、各バッテリパック３７に収納されたバッテリ３８（図５参照）は、例えばリチウムイオン電池など、繰り返し充電可能な二次電池であり、例えば１８ボルトの公称電圧を有している。
【００３９】
［モータの駆動制御系］
図５に示すように、モータ１６は、前述した各相のコイル４１ｕ，４１ｖ，４１ｗと、各相の端子４３ｕ，４３ｖ，４３ｗと、を備える。この例では、コイル４１ｕ，４１ｖ，４１ｗがスター結線されている。そして、Ｕ相端子４３ｕは、Ｕ相コイル４１ｕの端部に接続されており、Ｖ相端子４３ｖは、Ｖ相コイル４１ｖの端部に接続されており、Ｗ相端子４３ｗは、Ｗ相コイル４１ｗの端部に接続されている。
【００４０】
モータ１６を制御する制御装置３５には、モータ１６の端子４３ｕ，４３ｖ，４３ｗと、ホールセンサ２３ｕ，２３ｖ，２３ｗと、トリガスイッチ２９と、ＬＥＤ３４とが、接続されている。
【００４１】
また、制御装置３５には、２個の直列なバッテリパック３７が接続され、その２個のバッテリパック３７から電力が供給される。詳しくは、２個のバッテリパック３７が直列に接続されることで、各バッテリパック３７内のバッテリ３８も直列に接続され、その直列に接続されたバッテリ３８から、制御装置３５に電力が供給される。尚、以下の説明では、直列に接続された２個のバッテリパック３７内のバッテリ３８を総称して、バッテリ３８と言う。そして、制御装置３５は、バッテリ３８からの電力によって動作すると共に、その電力をモータ１６に供給することでモータ１６を駆動する。
【００４２】
ホールセンサ２３ｕ，２３ｖ，２３ｗは、回転するロータ１９から受ける磁界の変化に応じて、ハイとローとに信号レベルが切り替わる各相の位置検出信号（以下、ホール信号という）ＨａＵ，ＨａＶ，ＨａＷを出力する。
【００４３】
本実施形態では、ロータ１９の磁極数が１６である。このため、ホールセンサ２３ｕ，２３ｖ，２３ｗからの各ホール信号ＨａＵ，ＨａＶ，ＨａＷは、図６の下から３つの各段に示すように、ロータ１９が２２．５°回転する毎（即ち、機械角で２２．５°毎）に、ハイとローとに切り替わる。そして、各ホール信号ＨａＵ，ＨａＶ，ＨａＷの位相は、機械角で１５°ずつずれる。よって、ホール信号ＨａＵ，ＨａＶ，ＨａＷの何れかのレベル変化（即ち、エッジ）は、ロータ１９が７．５°回転する毎（即ち、機械角で７．５°毎）に生じる。尚、図６において、（）内に記載した角度値は、機械角の値である。
【００４４】
電気角で表現すると、各ホール信号ＨａＵ，ＨａＶ，ＨａＷは、電気角で１８０°毎に、ハイとローとに切り替わる。そして、各ホール信号ＨａＵ，ＨａＶ，ＨａＷの位相は、電気角で１２０°ずつずれるため、ホール信号ＨａＵ，ＨａＶ，ＨａＷの何れかのレベル変化は、電気角で６０°毎に生じることとなる。
【００４５】
ホールセンサ２３ｕからのＵ相のホール信号（以下、Ｕ相ホール信号とも言う）ＨａＵがレベル変化するタイミングは、ホールセンサ２３ｕが電気角で１８０°毎のロータ位置を検出したタイミングであり、ホールセンサ２３ｕによるロータ位置の検出結果に相当する。同様に、ホールセンサ２３ｖからのＶ相のホール信号（以下、Ｖ相ホール信号とも言う）ＨａＶがレベル変化するタイミングは、ホールセンサ２３ｖが電気角で１８０°毎のロータ位置を検出したタイミングであり、ホールセンサ２３ｖによるロータ位置の検出結果に相当する。同様に、ホールセンサ２３ｗからのＷ相のホール信号（以下、Ｗ相ホール信号とも言う）ＨａＷがレベル変化するタイミングは、ホールセンサ２３ｗが電気角で１８０°毎のロータ位置を検出したタイミングであり、ホールセンサ２３ｗによるロータ位置の検出結果に相当する。
【００４６】
図５に示すように、制御装置３５は、レギュレータ４５と、制御部としてのマイクロコンピュータ（以下、マイコンという）４６と、メモリ４７と、ドライバ回路４８と、電流検出回路４９と、ロータ位置検出回路５０と、を備える。
【００４７】
レギュレータ４５は、バッテリ３８の電圧（以下、バッテリ電圧という）から、マイコン４６や他の構成要素が動作するための電源電圧Ｖｃｃ（例えば５Ｖ）を生成して出力する。
【００４８】
マイコン４６は、ＣＰＵ、ＲＡＭ、ＲＯＭ及びＡ／Ｄ変換器等を備える。そして、マイコン４６は、主にモータ１６を制御するための処理を行う。
マイコン４６の動作は、ＣＰＵが記録媒体に格納されたプログラムを実行することにより実現される。この例では、ＲＯＭが、プログラムを格納した記録媒体に該当する。また、このプログラムの実行により、プログラムに対応する方法が実行される。また、制御部としてのマイコン４６の数は１つでも複数でも良い。また、マイコン４６が行う処理の一部又は全部を、論理回路やアナログ回路等を組み合わせたハードウェアを用いて実現しても良い。
【００４９】
メモリ４７は、フラッシュＲＯＭやＥＥＰＲＯＭなどの書き換え可能な不揮発性メモリである。メモリ４７は、マイコン４６がアクセスすることができるようになっている。メモリ４７は、マイコン４６の内部に設けられていても良い。
【００５０】
ドライバ回路４８は、モータ１６の各コイル４１ｕ，４１ｖ，４１ｗへの通電状態を切り替えたり、各コイル４１ｕ，４１ｖ，４１ｗに流す電流を制御したりすることによって、モータ１６を回転駆動するための回路である。このため、ドライバ回路４８は、モータ１６の各端子４３ｕ，４３ｖ，４３ｗに接続されている。
【００５１】
ドライバ回路４８は、周知のインバータ回路を構成する６つのスイッチング素子を備える。その６つのスイッチング素子のうち、ハイサイドスイッチとしての３つのスイッチング素子は、バッテリ電圧のラインと各端子４３ｕ，４３ｖ，４３ｗとの接続／非接続を切り替える。また、６つのスイッチング素子のうち、ローサイドスイッチとしての３つのスイッチング素子は、グランドラインと各端子４３ｕ，４３ｖ，４３ｗとの接続／非接続を切り替える。バッテリ電圧のラインとは、バッテリ３８のプラス端子が接続されたラインであり、グランドラインとは、バッテリ３８のマイナス端子が接続されたラインである。この例において、バッテリ３８のプラス端子とは、２個のバッテリパック３７のうち、上流側のバッテリパック３７におけるプラス端子のことでもある。また、バッテリ３８のマイナス端子とは、２個のバッテリパック３７のうち、下流側のバッテリパック３７におけるマイナス端子のことでもある。
【００５２】
そして、ドライバ回路４８は、マイコン４６からの駆動指令信号ＵＨ，ＶＨ，ＷＨ，ＵＬ，ＶＬ，ＷＬに従って、上記６つの各スイッチング素子をオン／オフさせることにより、各コイル４１ｕ，４１ｖ，４１ｗへの通電を行う。
【００５３】
電流検出回路４９は、バッテリ３８のマイナス端子に流れ込む電流に応じた電流検出信号を、マイコン４６へ出力する。
一方、モータ１６においては、ロータ１９が回転すると、各相のコイル４１ｕ，４１ｖ，４１ｗには、図６の上から３つの各段に示すように、正弦波のような誘起電圧が発生する。そして、各コイル４１ｕ，４１ｖ，４１ｗの誘起電圧は、モータ１６の各端子４３ｕ，４３ｖ，４３ｗに現れる。
【００５４】
ロータ位置検出回路５０は、各端子４３ｕ，４３ｖ，４３ｗの電圧を、各コイル４１ｕ，４１ｖ，４１ｗの誘起電圧として検出する。
そして、ロータ位置検出回路５０は、図６の上から６つの各段に示すように、各コイル４１ｕ，４１ｖ，４１ｗの誘起電圧が基準電圧を横切るタイミングで信号レベルがハイとローとに切り替わる信号（以下、ゼロクロス信号という）ＺｒＵ，ＺｒＶ，ＺｒＷを出力する。ゼロクロス信号ＺｒＵは、Ｕ相コイル４１ｕの誘起電圧を、基準電圧よりも大きいか否かで波形整形した信号であり、同様に、ゼロクロス信号ＺｒＶは、Ｖ相コイル４１ｖの誘起電圧を、基準電圧よりも大きいか否かで波形整形した信号であり、ゼロクロス信号ＺｒＷは、Ｗ相コイル４１ｗの誘起電圧を、基準電圧よりも大きいか否かで波形整形した信号である。基準電圧は、コイル４１ｕ，４１ｖ，４１ｗの中性点の電圧（以下、中性点電圧という）であり、変動する誘起電圧の波形の中心値である。図６の例では基準電圧を０Ｖとしている。
【００５５】
例えば、ロータ位置検出回路５０は、各端子４３ｕ，４３ｖ，４３ｗの電圧を加算回路で加算した電圧を、中性点電圧とする。そして、その中性点電圧と各端子４３ｕ，４３ｖ，４３ｗの電圧とを、比較回路でそれぞれ大小比較することにより、ゼロクロス信号ＺｒＵ，ＺｒＶ，ＺｒＷを出力する。
【００５６】
換言すれば、ロータ位置検出回路５０は、各相の端子４３ｕ，４３ｖ，４３ｗの電圧と中性点電圧との差を、各相のコイル４１ｕ，４１ｖ，４１ｗに生じた誘起電圧として検出し、その誘起電圧の正負を示すハイ又はローの信号を、ゼロクロス信号ＺｒＵ，ＺｒＶ，ＺｒＷとして出力している。
【００５７】
ゼロクロス信号ＺｒＵは、Ｕ相に対応するため、以下では、ゼロクロス信号ＺｒＵのことを、Ｕ相のゼロクロス信号ＺｒＵあるいはＵ相ゼロクロス信号ＺｒＵとも言う。ゼロクロス信号ＺｒＶは、Ｖ相に対応するため、以下では、ゼロクロス信号ＺｒＶのことを、Ｖ相のゼロクロス信号ＺｒＶあるいはＶ相ゼロクロス信号ＺｒＶとも言う。ゼロクロス信号ＺｒＷは、Ｗ相に対応するため、以下では、ゼロクロス信号ＺｒＷのことを、Ｗ相のゼロクロス信号ＺｒＷあるいはＷ相ゼロクロス信号ＺｒＷとも言う。
【００５８】
ホールセンサ２３ｕ，２３ｖ，２３ｗに検出誤差が無ければ、モータ１６が惰性回転している場合において、ゼロクロス信号ＺｒＵ，ＺｒＶ，ＺｒＷのレベル変化タイミングは、ホール信号ＨａＵ，ＨａＶ，ＨａＷのレベル変化タイミングと一致する。つまり、図６の下から６つの各段に示すように、Ｕ相ゼロクロス信号ＺｒＵとＵ相ホール信号ＨａＵとは、同じ位相の同じ信号となり、Ｖ相ゼロクロス信号ＺｒＶとＶ相ホール信号ＨａＶとは、同じ位相の同じ信号となり、Ｗ相ゼロクロス信号ＺｒＷとＷ相ホール信号ＨａＷとは、同じ位相の同じ信号となる。モータ１６が惰性回転している場合とは、ドライバ回路４８に備えられた６つのスイッチング素子が全てオフ（即ち、非導通状態）であり、コイル４１ｕ，４１ｖ，４１ｗへの通電が実施されておらず、ロータ１９が惰性で回転している場合のことである。
【００５９】
ゼロクロス信号ＺｒＵ，ＺｒＶ，ＺｒＷの何れかがレベル変化するタイミングは、ロータ位置検出回路５０が電気角で６０°毎（換言すれば、機械角で７．５°毎）のロータ位置を検出したタイミングであり、ロータ位置検出回路５０によるロータ位置の検出結果に相当する。
【００６０】
一方、実際には、ホールセンサ２３ｕ，２３ｖ，２３ｗには、組み付け誤差があり、その組み付け誤差に起因して、ロータ位置の検出誤差が生じる。このため、図６の下から３つの各段における矢印で示すように、ホール信号ＨａＵ，ＨａＶ，ＨａＷのレベル変化タイミングは、正しいレベル変化タイミングに対して、検出誤差の分だけ前後にずれてしまう。そして、モータ１６が惰性回転している場合、ゼロクロス信号ＺｒＵ，ＺｒＶ，ＺｒＷのレベル変化タイミングは、電気角で６０°毎の正しいタイミングとなる。
【００６１】
図５に示すように、マイコン４６には、ホール信号ＨａＵ，ＨａＶ，ＨａＷと、ゼロクロス信号ＺｒＵ，ＺｒＶ，ＺｒＷと、電流検出回路４９からの電流検出信号と、トリガスイッチ２９からの信号とが、入力される。トリガスイッチ２９からの信号は、トリガスイッチ２９のオン／オフ状態を表す。
【００６２】
マイコン４６は、モータ１６を制御する際（換言すれば、モータ１６を駆動する際）には、ホール信号ＨａＵ，ＨａＶ，ＨａＷに基づいて、電気角で６０°毎のロータ位置を検出する。そして、その検出した各タイミングにて、ドライバ回路４８への駆動指令信号ＵＨ，ＶＨ，ＷＨ，ＵＬ，ＶＬ，ＷＬを所定のシーケンスで切り替えることにより、各コイル４１ｕ，４１ｖ，４１ｗに対する励磁切替を行う。つまり、コイル４１ｕ，４１ｖ，４１ｗのうちで通電するコイルと、通電電流の方向とを、予め定められた励磁シーケンスに従い切り替える。マイコン４６は、このような励磁切替によってモータ１６を動作させる。また、マイコン４６は、駆動指令信号ＵＨ，ＶＨ，ＷＨ，ＵＬ，ＶＬ，ＷＬのうち、ドライバ回路４８におけるハイサイドスイッチ又はローサイドスイッチとしての３つのスイッチング素子をオンオフさせる駆動指令信号を、ＰＷＭ制御することにより、モータ１６の回転速度を制御する。ＰＷＭとは、パルス幅変調の略である。一方、マイコン４６は、表示パネル３２に設けられているＬＥＤ３４の駆動も制御する。
【００６３】
ところで、前述したように、ホールセンサ２３ｕ，２３ｖ，２３ｗには組み付け誤差があるため、ホール信号ＨａＵ，ＨａＶ，ＨａＷのレベル変化タイミングは、電気角で６０°毎の正しいタイミングからずれてしまう可能性がある。
【００６４】
このため、マイコン４６は、モータ１６が惰性回転している場合に、ホール信号ＨａＵ，ＨａＶ，ＨａＷと、ゼロクロス信号ＺｒＵ，ＺｒＶ，ＺｒＷとを比較することにより、補正値を算出する。その補正値は、ホール信号ＨａＵ，ＨａＶ，ＨａＷのレベル変化タイミングを補正するための補正値であり、換言すれば、ホールセンサ２３ｕ，２３ｖ，２３ｗによるロータ位置の検出結果を補正するための補正値である。そして、マイコン４６は、モータ１６を制御する際には、ホール信号ＨａＵ，ＨａＶ，ＨａＷの実際のレベル変化タイミングを、補正値により補正し、その補正したタイミングに基づいて、各コイル４１ｕ，４１ｖ，４１ｗに対する励磁切替を行う。
【００６５】
［補正処理の概要］
レベル変化タイミングを補正するための処理は、各相のホール信号ＨａＵ，ＨａＶ，ＨａＷの各々について実施される。このため、Ｕ相、Ｖ相、Ｗ相の何れかを、Ｘ相と表現し、そのＸ相のホール信号について、補正処理の概要を説明する。つまり、Ｘは、Ｕ，Ｖ，Ｗの何れかを示す。そして、符号中最後のＸは、Ｘ相に対応するものであることを意味する。例えば、Ｘ相のホール信号の符号として「ＨａＸ」を用い、Ｘ相のゼロクロス信号の符号として「ＺｒＸ」を用いる。
【００６６】
マイコン４６は、下記〈１〉〜〈３〉の処理を行う。
〈１〉モータ１６が惰性回転している場合に、ホール信号ＨａＸのレベル変化タイミングと、ゼロクロス信号ＺｒＸのレベル変化タイミングとの、時間差ＴｅＸを検出すると共に、ホール信号ＨａＸのレベル変化の間隔時間である半周期時間ＴｃＸも検出する。
【００６７】
尚、ホール信号ＨａＸのレベル変化タイミングが、ゼロクロス信号ＺｒＸのレベル変化タイミングよりも早い場合、即ち、ホール信号ＨａＸがゼロクロス信号ＺｒＸに対して進角側にずれている場合には、時間差ＴｅＸの正負符号を、正とする。
【００６８】
逆に、ホール信号ＨａＸのレベル変化タイミングが、ゼロクロス信号ＺｒＸのレベル変化タイミングよりも遅い場合、即ち、ホール信号ＨａＸがゼロクロス信号ＺｒＸに対して遅角側にずれている場合には、時間差ＴｅＸの正負符号を、負とする。但し、正負符号は、上記とは逆にしても良い。
【００６９】
〈２〉検出した時間差ＴｅＸの正負符号が正の場合、即ち、ホール信号ＨａＸが進角側にずれている場合には、その時間差ＴｅＸと半周期時間ＴｃＸとを用いて、下記の式１により、ホール信号ＨａＸのレベル変化タイミングを補正するための補正値ＲＸを算出する。そして、算出した補正値ＲＸをメモリ４７に記憶する。
【００７０】
また、検出した時間差ＴｅＸの正負符号が負の場合、即ち、ホール信号ＨａＸが遅角側にずれている場合には、その時間差ＴｅＸと半周期時間ＴｃＸとを用いて、下記の式２により、補正値ＲＸを算出する。そして、算出した補正値ＲＸをメモリ４７に記憶する。
【００７１】
補正値ＲＸ＝時間差ＴｅＸ／半周期時間ＴｃＸ      …式１
補正値ＲＸ＝１−時間差ＴｅＸ／半周期時間ＴｃＸ  …式２
〈３〉モータ１６を制御する場合にも、ホール信号ＨａＸの半周期時間ＴｃＸを検出する。更に、モータ１６を制御する場合には、ホール信号ＨａＸがレベル変化したタイミングから、下記の式３で表される補正時間ＴｒＸが経過したタイミングを、補正後のレベル変化タイミング（即ち、正しいレベル変化タイミング）とする。そして、その補正後のレベル変化タイミングにて励磁切替を実施する。
【００７２】
補正時間ＴｒＸ＝補正値ＲＸ×半周期時間ＴｃＸ  …式３
図７を用いて具体例を説明する。
図７において、ＴｅＵ，ＴｅＶ、ＴｅＷの各々は、ホール信号ＨａＵ，ＨａＶ，ＨａＷの各々について、上記〈１〉の処理で検出される時間差である。また、ＴｃＵ，ＴｃＶ、ＴｃＷの各々は、ホール信号ＨａＵ，ＨａＶ，ＨａＷの各々について、上記〈１〉の処理で検出される半周期時間である。また、ＴｒＵ，ＴｒＶの各々は、ホール信号ＨａＵ，ＨａＶの各々について、式３によって算出される補正時間である。尚、図７の例では、ホール信号ＨａＷとゼロクロス信号ＺｒＷとに位相差が無いため、時間差ＴｅＷは０であり、ホール信号ＨａＷは補正されない。
【００７３】
図７の例では、ホール信号ＨａＵがゼロクロス信号ＺｒＵに対して進角側にずれているため、上記〈１〉の処理で算出される時間差ＴｅＵの正負符号は正になる。そして、ホール信号ＨａＵについての補正値ＲＵは、式１によって算出される。その補正値ＲＵは、ホール信号ＨａＵの半周期時間ＴｃＵに対する時間差ＴｅＵの割合である。
【００７４】
このため、モータ１６の制御中において、ホール信号ＨａＵの半周期時間ＴｃＵに補正値ＲＵを乗じた値である補正時間ＴｒＵは、ホール信号ＨａＵがゼロクロス信号ＺｒＵに対して進角側にずれている時間となる。
【００７５】
よって、マイコン４６は、モータ１６を制御する場合には、図７の上から４段目及び７段目に示すように、ホール信号ＨａＵの今回のレベル変化タイミングから、補正時間ＴｒＵだけ遅れたタイミングを、今回の正しいレベル変化タイミングとする。
【００７６】
また、図７の例では、ホール信号ＨａＶがゼロクロス信号ＺｒＶに対して遅角側にずれているため、上記〈１〉の処理で算出される時間差ＴｅＶの正負符号は負になる。そして、ホール信号ＨａＶについての補正値ＲＶは、式２によって算出される。その補正値ＲＶは、ホール信号ＨａＶの半周期時間ＴｃＶに対する時間差ＴｅＶの割合を、１から引いた値である。換言すれば、補正値ＲＶは、半周期時間ＴｃＶから時間差ＴｅＶを引いた時間の、半周期時間ＴｃＶに対する割合である。
【００７７】
このため、モータ１６の制御中において、ホール信号ＨａＶの半周期時間ＴｃＶに補正値ＲＶを乗じた値である補正時間ＴｒＶは、ホール信号ＨａＶがゼロクロス信号ＺｒＶに対して遅角側にずれている時間を、半周期時間ＴｃＶから引いた時間となる。
【００７８】
よって、マイコン４６は、モータ１６を制御する場合には、図７の上から５段目及び８段目に示すように、ホール信号ＨａＶの今回レベル変化タイミングから、補正時間ＴｒＶだけ遅れたタイミングを、次回の正しいレベル変化タイミングとする。
【００７９】
［処理の具体的な内容］
マイコン４６は、トリガスイッチ２９からの信号に基づき、トリガスイッチ２９がオンされたことを検出すると、図８に示すモータ制御処理を実行する。
【００８０】
図８に示すように、マイコン４６は、モータ制御処理を開始すると、Ｓ１１０にて、各相の補正時間タイマ値をクリアする。
補正時間タイマ値とは、補正時間タイマの値のことである。そして、補正時間タイマは、Ｕ，Ｖ，Ｗの各相について設けられている。Ｕ相の補正時間タイマは、Ｕ相ホール信号ＨａＵに対する前述の補正時間ＴｒＵを計測して、その補正時間ＴｒＵが経過したことを知らせるためのタイマである。同様に、Ｖ相の補正時間タイマは、Ｖ相ホール信号ＨａＶに対する補正時間ＴｒＶを計測して、その補正時間ＴｒＶが経過したことを知らせるためのタイマである。同様に、Ｗ相の補正時間タイマは、Ｗ相ホール信号ＨａＷに対する補正時間ＴｒＷを計測して、その補正時間ＴｒＷが経過したことを知らせるためのタイマである。
【００８１】
例えば、各相の補正時間タイマは、十分に短い所定の単位時間毎にカウント値が１ずつ増加するカウンタと、計測対象の補正時間を上記単位時間で割ったカウント対象値がセットされる設定部と、を備える。そして、上記カウンタのカウントアップが開始されてから、そのカウンタの値が設定部にセットされた値と等しくなると、カウント終了フラグがセットされる。このような補正時間タイマでは、上記カウンタの値が、補正時間タイマ値に相当し、上記設定部に上記カウント対象値をセットすることが、補正時間タイマに計測対象の補正時間をセットすることに相当する。そして、上記カウンタの値を０にして該カウンタのカウントアップを開始させることが、補正時間タイマをスタータさせることに相当し、上記カウンタの値が設定部にセットされた値と等しくなってカウント終了フラグがセットされることが、補正時間タイマがカウントを終了することに相当する。
【００８２】
マイコン４６は、次のＳ１２０にて、各相の回転速タイマ値をクリアする。
回転速タイマ値とは、回転速タイマの値のことである。そして、回転速タイマは、Ｕ，Ｖ，Ｗの各相について設けられている。Ｕ相の回転速タイマは、Ｕ相ホール信号ＨａＵの半周期時間ＴｃＵを計測するためのタイマである。同様に、Ｖ相の回転速タイマは、Ｖ相ホール信号ＨａＶの半周期時間ＴｃＶを計測するためのタイマである。同様に、Ｗ相の回転速タイマは、Ｗ相ホール信号ＨａＷの半周期時間ＴｃＷを計測するためのタイマである。例えば、各相の回転速タイマは、上記単位時間毎にカウント値が１ずつ増加するカウンタによって構成されており、そのカウンタの値が、回転速タイマ値に相当する。
【００８３】
マイコン４６は、次のＳ１３０にて、ホール信号割込を許可する。マイコン４６においては、このＳ１３０でホール信号割込が許可されると、Ｕ相ホール信号ＨａＵにレベル変化が生じる毎に、第１と第２のＵ相ホール信号割込処理が実行される。同様に、Ｖ相ホール信号ＨａＶにレベル変化が生じる毎に、第１と第２のＶ相ホール信号割込処理が実行され、Ｗ相ホール信号ＨａＷにレベル変化が生じる毎に、第１と第２のＷ相ホール信号割込処理が実行される。これらのホール信号割込処理については後で説明する。
【００８４】
マイコン４６は、次のＳ１４０にて、モータ１６を始動させる（即ち、ロータ１９を停止状態から回転させる）ための始動処理を行う。この始動処理は、例えば、各コイル４１ｕ，４１ｖ，４１ｗへの通電をロータ位置に拘わらず所定のパターンで切り替えることで、モータ１６を始動させる処理である。
【００８５】
マイコン４６は、次のＳ１５０にて、トリガスイッチ２９がオンであるか否かを判定し、トリガスイッチ２９がオンであれば、Ｓ１６０に進む。
マイコン４６は、Ｓ１６０では、各相の補正時間タイマの何れかがカウントを終了したか否かを判定する。補正時間タイマがカウントを終了するとは、その補正時間タイマにセットされた計測対象の補正時間が経過したということである。
【００８６】
そして、マイコン４６は、Ｓ１６０で否定判定した場合、即ち、各相の補正時間タイマの何れも、カウントを終了していない場合には、Ｓ１５０に戻る。
また、マイコン４６は、Ｓ１６０で肯定判定した場合、即ち、各相の補正時間タイマの何れかがカウントを終了した場合には、カウントを終了した補正時間タイマに対応する前述のカウント終了フラグをクリアする。そして、Ｓ１７０に進み、励磁切替の処理を行った後、Ｓ１５０に戻る。
【００８７】
ここで、各相のホール信号ＨａＵ，ＨａＶ，ＨａＷにレベル変化が生じる毎に、各相の補正時間タイマに補正時間をセットして、その補正時間タイマをスタートさせるための処理について、Ｕ相を例に挙げて説明する。
【００８８】
マイコン４６は、Ｕ相ホール信号ＨａＵにレベル変化が生じる毎に、図９に示す第１のＵ相ホール信号割込処理を行う。
図９に示すように、マイコン４６は、第１のＵ相ホール信号割込処理を開始すると、Ｓ２１０にて、Ｕ相の回転速タイマがスタート済みであるか否かを判定し、スタート済みでなければ、Ｓ２３０に進んで、Ｕ相の回転速タイマをクリアスタートさせる。つまり、Ｓ２３０では、Ｕ相の回転速タイマ値を０にクリアしてから、そのＵ相の回転速タイマをスタートさせる。すると、Ｕ相の回転速タイマ値は、前述の単位時間が経過する毎に１ずつ増加していく。
【００８９】
また、マイコン４６は、Ｓ２１０にて、Ｕ相の回転速タイマがスタート済みであると判定した場合、即ち、前回のＳ２３０でＵ相の回転速タイマをクリアスタートさせていた場合には、Ｓ２２０に進む。
【００９０】
マイコン４６は、Ｓ２２０では、Ｕ相の回転速タイマ値をＲＡＭに更新記憶する（つまり、上書き保存する）。そして、その後、Ｓ２３０に進み、Ｕ相の回転速タイマを再びクリアスタート（つまり、リスタート）させる。よって、Ｓ２２０でＲＡＭに記憶されるＵ相の回転速タイマ値は、Ｕ相ホール信号ＨａＵの半周期時間ＴｃＵを、上記単位時間を分解能として計測した値である。また、半周期時間ＴｃＵは、モータ１６の回転速度（以下、モータ回転速度、或いは単に、回転速度と言う）に反比例するため、Ｓ２２０では、モータ回転速度を検出しているとも言える。
【００９１】
マイコン４６は、Ｓ２３０の処理を行った後、Ｓ２４０に進み、Ｕ相の補正時間ＴｒＵを、下記の式４によって算出する。
Ｕ相の補正時間ＴｒＵ＝Ｕ相の補正値ＲＵ×Ｕ相の回転速タイマ値  …式４
Ｕ相の補正時間ＴｒＵとは、Ｕ相ホール信号ＨａＵに対する補正時間ＴｒＵである。Ｕ相の補正値ＲＵとは、Ｕ相ホール信号ＨａＵに対する補正値ＲＵである。そして、式４における「Ｕ相の補正値ＲＵ」としては、後述する図１０の補正値記憶処理によってメモリ４７に記憶されている値が用いられる。また、式４における「Ｕ相の回転速タイマ値」としては、今回のＳ２２０で記憶した「Ｕ相の回転速タイマ値」が使用される。つまり、式４は、前述した式３における「半周期時間ＴｃＸ」として、Ｓ２２０で記憶した「Ｕ相の回転速タイマ値」を用いた式である。尚、メモリ４７に補正値ＲＵが未だ記憶されていない場合や、Ｓ２２０の処理によってＵ相の回転速タイマ値が未だ記憶されていない場合には、Ｕ相の補正時間ＴｒＵは、デフォルト値としての０として算出される。
【００９２】
マイコン４６は、次のＳ２５０にて、Ｓ２４０で算出した補正時間ＴｒＵを、Ｕ相の補正時間タイマにセットして、その補正時間タイマをスタートさせる。すると、Ｕ相の補正時間タイマは、セットされた補正時間ＴｒＵが経過すると、カウントを終了する。そして、マイコン４６は、Ｓ２５０の処理を行った後、当該第１のＵ相ホール信号割込処理を終了する。
【００９３】
マイコン４６は、Ｖ相ホール信号ＨａＶとＷ相ホール信号ＨａＷとの各々についても、レベル変化が生じる毎に、第１のＵ相ホール信号割込処理と同様の処理を行う。Ｖ相ホール信号ＨａＶにレベル変化が生じる毎に行われる第１のＶ相ホール信号割込処理は、図９における「Ｕ相」との記載を「Ｖ相」と読み替えた処理である。同様に、Ｗ相ホール信号ＨａＷにレベル変化が生じる毎に行われる第１のＷ相ホール信号割込処理は、図９における「Ｕ相」との記載を「Ｗ相」と読み替えた処理である。尚、第１のＶ相ホール信号割込処理と第１のＷ相ホール信号割込処理についても、図９と同じステップ番号を用いる。また、第１のＵ相ホール信号割込処理と、第１のＶ相ホール信号割込処理と、第１のＷ相ホール信号割込処理とを、総称して、第１の各相ホール信号割込処理と言う。
【００９４】
このため、マイコン４６が図８のＳ１６０で肯定判定するタイミングは、各相のホール信号ＨａＵ，ＨａＶ，ＨａＷの何れかがレベル変化したタイミングから、そのホール信号に対する補正時間が経過したタイミングである。そして、そのタイミングでマイコン４６は励磁切替を実施することとなる。
【００９５】
図８の説明に戻る。マイコン４６は、Ｓ１５０にて、トリガスイッチ２９がオフであると判定した場合、即ち、使用者によってトリガスイッチ２９がオフされた場合には、Ｓ１８０に進んで、モータ１６への通電をオフする。つまり、コイル４１ｕ，４１ｖ，４１ｗへの通電を停止する。すると、モータ１６は暫く惰性で回転する。そして、マイコン４６は、次のＳ１９０にて、各相の補正時間タイマをストップさせ、次のＳ２００にて、図１０に示す補正値記憶処理を行う。よって、補正値記憶処理は、モータ１６が惰性回転している場合に実行される。
【００９６】
図１０に示すように、マイコン４６は、補正値記憶処理を開始すると、Ｓ３１０にて、各相の誤差タイマ値をクリアする。
誤差タイマ値とは、誤差タイマの値のことである。そして、誤差タイマは、Ｕ，Ｖ，Ｗの各相について設けられている。Ｕ相の誤差タイマは、Ｕ相ホール信号ＨａＵのレベル変化タイミングと、Ｕ相ゼロクロス信号ＺｒＵのレベル変化タイミングとの、時間差ＴｅＵを、Ｕ相のホールセンサ２３ｕによるロータ位置の検出誤差として測定するためのタイマである。同様に、Ｖ相の誤差タイマは、Ｖ相ホール信号ＨａＶのレベル変化タイミングと、Ｖ相ゼロクロス信号ＺｒＶのレベル変化タイミングとの、時間差ＴｅＶを、Ｖ相のホールセンサ２３ｖによるロータ位置の検出誤差として測定するためのタイマである。同様に、Ｗ相の誤差タイマは、Ｗ相ホール信号ＨａＷのレベル変化タイミングと、Ｗ相ゼロクロス信号ＺｒＷのレベル変化タイミングとの、時間差ＴｅＷを、Ｗ相のホールセンサ２３ｗによるロータ位置の検出誤差として測定するためのタイマである。例えば、各相の誤差タイマは、上記単位時間毎にカウント値が１ずつ増加するカウンタによって構成されており、そのカウンタの値が、誤差タイマ値に相当する。
【００９７】
マイコン４６は、次のＳ３２０にて、トリガスイッチ２９がオフであるか否かを判定し、トリガスイッチ２９がオフであれば、Ｓ３３０に進む。
マイコン４６は、Ｓ３３０では、モータ回転速度が所定の上限値ＳＨ以下であるか否かを判定し、モータ回転速度が上限値ＳＨ以下でなければ（即ち、上限値ＳＨよりも大きければ）、Ｓ３２０に戻る。尚、判定対象のモータ回転速度は、例えば、第１のＵ相のホール信号割込処理と、第１のＶ相ホール信号割込処理と、第１のＷ相ホール信号割込処理との、それぞれによって更新記憶される各相の回転速タイマ値を、平均化した値から算出される。
【００９８】
また、マイコン４６は、Ｓ３３０にて、モータ回転速度が上限値ＳＨ以下であると判定した場合には、Ｓ３４０に進み、ゼロクロス信号割込を許可する。
ここで、マイコン４６は、ゼロクロス信号割込が許可された状態では、Ｕ相ゼロクロス信号ＺｒＵにレベル変化が生じる毎に、図１１に示すＵ相ゼロクロス信号割込処理を実行する。そして、マイコン４６は、Ｖ相ゼロクロス信号ＺｒＶとＷ相ゼロクロス信号ＺｒＷとの各々についても、レベル変化が生じる毎に、図１１の処理と同様の処理を行う。Ｖ相ゼロクロス信号ＺｒＶにレベル変化が生じる毎に行われるＶ相ゼロクロス信号割込処理は、図１１における「Ｕ相」との記載を「Ｖ相」と読み替えた処理である。同様に、Ｗ相ゼロクロス信号ＺｒＷにレベル変化が生じる毎に行われるＷ相ゼロクロス信号割込処理は、図１１における「Ｕ相」との記載を「Ｗ相」と読み替えた処理である。このため、Ｕ相ゼロクロス信号割込処理について、図１１を用い説明する。尚、Ｖ相ゼロクロス信号割込処理とＷ相ゼロクロス信号割込処理についても、図１１と同じステップ番号を用いる。また、Ｕ相ゼロクロス信号割込処理と、Ｖ相ゼロクロス信号割込処理と、Ｗ相ゼロクロス信号割込処理とを、総称して、各相ゼロクロス信号割込処理と言う。
【００９９】
図１１に示すように、マイコン４６は、Ｕ相ゼロクロス信号割込処理を開始すると、Ｓ６１０にて、Ｕ相の誤差タイマがスタート済みであるか否かを判定する。尚、Ｕ相の誤差タイマは、当該Ｕ相ゼロクロス信号割込処理における後述のＳ６５０か、あるいは、後述する図１２のＳ７５０により、クリアスタートされる。また、Ｓ６１０では、Ｕ相の誤差タイマ値が０よりも大きければ、Ｕ相の誤差タイマがスタート済みであると判定する。
【０１００】
マイコン４６は、Ｓ６１０にて、Ｕ相の誤差タイマがスタート済みであると判定した場合には、Ｓ６２０に進み、Ｕ相の誤差タイマ値が下記の式５の関係を満たしているか否かを判定する。
【０１０１】
Ｕ相の回転速タイマ値＜Ｕ相の回転速タイマ値×所定値  …式５
尚、式５における「Ｕ相の回転速タイマ値」は、図９のＳ２２０で更新記憶される値である。また、式５における「所定値」は、予め設定された値であり、半周期時間ＴｃＵに対する時間差ＴｅＵの割合（＝ＴｅＵ／ＴｃＵ）の最大値である。本実施形態において、この所定値は、各相について共通の値であるが、各相について異なる値でも良い。
【０１０２】
マイコン４６は、Ｓ６２０にて、Ｕ相の誤差タイマ値が式５の関係を満たしていると判定した場合には、Ｓ６３０に進み、Ｕ相の誤差タイマ値と、その誤差タイマ値の正負符号とを、対応付けてＲＡＭに記憶する。このＳ６３０では、正負符号として「正」を記憶する。
【０１０３】
そして、マイコン４６は、次のＳ６４０にて、Ｕ相の誤差タイマを停止させると共に、そのＵ相の誤差タイマ値を０にクリアし、その後、当該Ｕ相ゼロクロス信号割込を終了する。
【０１０４】
また、マイコン４６は、Ｓ６１０にて、Ｕ相の誤差タイマがスタート済みでない（即ち、停止している）と判定した場合、あるいは、Ｓ６２０にて、Ｕ相の誤差タイマ値が式５の関係を満たしていないと判定した場合には、Ｓ６５０に進む。そして、マイコン４６は、Ｓ６５０にて、Ｕ相の誤差タイマをクリアスタートさせ、その後、当該Ｕ相ゼロクロス信号割込処理を終了する。
【０１０５】
一方、マイコン４６が、図１０のＳ３４０でゼロクロス信号割込を許可した場合、ホール信号割込は既に図８のＳ１３０で許可されている。
このため、マイコン４６は、Ｕ相ホール信号ＨａＵにレベル変化が生じる毎に、前述した図９の処理だけでなく、図１２に示す第２のＵ相ホール信号割込処理も実行する。そして、マイコン４６は、Ｖ相ホール信号ＨａＶとＷ相ホール信号ＨａＷとの各々についても、レベル変化が生じる毎に、図９の処理と同様の処理（即ち、第１のＶ相ホール信号割込処理又は第１のＷ相ホール信号割込処理）だけでなく、図１２の処理と同様の処理を行う。Ｖ相ホール信号ＨａＶにレベル変化が生じる毎に行われる第２のＶ相ホール信号割込処理は、図１２における「Ｕ相」との記載を「Ｖ相」と読み替えた処理である。同様に、Ｗ相ホール信号ＨａＷにレベル変化が生じる毎に行われる第２のＷ相ホール信号割込処理は、図１２における「Ｕ相」との記載を「Ｗ相」と読み替えた処理である。このため、第２のＵ相ホール信号割込処理について、図１２を用い説明する。尚、第２のＶ相ホール信号割込処理と第２のＷ相ホール信号割込処理についても、図１２と同じステップ番号を用いる。また、第２のＵ相ホール信号割込処理と、第２のＶ相ホール信号割込処理と、第２のＷ相ホール信号割込処理とを、総称して、第２の各相ホール信号割込処理と言う。
【０１０６】
図１２に示すように、第２のＵ相ホール信号割込処理におけるＳ７１０，Ｓ７２０，Ｓ７４０，Ｓ７５０の各処理は、図１１のＵ相ゼロクロス信号割込処理におけるＳ６１０，Ｓ６２０，Ｓ６４０，Ｓ６５０と同じ処理である。そして、第２のＵ相ホール信号割込処理におけるＳ７３０では、Ｕ相の誤差タイマ値と、その誤差タイマ値の正負符号とを、対応付けてＲＡＭに記憶するが、図１１のＳ６３０と比較すると、正負符号として「負」を記憶する点が異なる。
【０１０７】
このため、マイコン４６は、第２のＸ相ホール信号割込処理とＸ相ゼロクロス信号割込処理とを実行することで、Ｘ相ホール信号ＨａＸのレベル変化タイミングとＸ相ゼロクロス信号ＺｒＸのレベル変化タイミングとの時間差ＴｅＸを、Ｘ相の誤差タイマ値として計測する。尚、前述の通り、Ｘは、Ｕ，Ｖ，Ｗの何れかを示す。
【０１０８】
例えば、図７における１段目及び４段目に示すように、Ｕ相ホール信号ＨａＵがＵ相ゼロクロス信号ＺｒＵに対して進角側にずれている場合には、Ｕ相ゼロクロス信号割込処理よりも第２のＵ相ホール信号割込処理の方が、時間差ＴｅＵだけ先に実行される。
【０１０９】
このため、マイコン４６は、第２のＵ相ホール信号割込処理では、Ｓ７１０でＮＯと判定し、Ｓ７５０でＵ相の誤差タイマをクリアスタートさせる。
そして、マイコン４６は、Ｕ相ゼロクロス信号割込処理では、Ｓ６１０でＹＥＳと判定し、Ｓ６３０で、Ｕ相の誤差タイマ値を「正」の正負符号と共に、ＲＡＭに記憶する。この場合にＲＡＭに記憶されるＵ相の誤差タイマ値は、Ｕ相ホール信号ＨａＵのレベル変化タイミングからＵ相ゼロクロス信号ＺｒＵのレベル変化タイミングまでの時間差ＴｅＵ（即ち、正の時間差ＴｅＵ）を、上記単位時間を分解能として計測した値となる。
【０１１０】
また例えば、図７における２段目及び５段目に示すように、Ｖ相ホール信号ＨａＶがＶ相ゼロクロス信号ＺｒＶに対して遅角側にずれている場合には、第２のＶ相ホール信号割込処理よりもＶ相ゼロクロス信号割込処理の方が、時間差ＴｅＶだけ先に実行される。
【０１１１】
このため、マイコン４６は、Ｖ相ゼロクロス信号割込処理では、Ｓ６１０でＮＯと判定し、Ｓ６５０でＶ相の誤差タイマをクリアスタートさせる。
そして、マイコン４６は、第２のＶ相ホール信号割込処理では、Ｓ７１０でＹＥＳと判定し、Ｓ７３０で、Ｖ相の誤差タイマ値を「負」の正負符号と共に、ＲＡＭに記憶する。この場合にＲＡＭに記憶されるＶ相の誤差タイマ値は、Ｖ相ゼロクロス信号ＺｒＶのレベル変化タイミングからＶ相ホール信号ＨａＶのレベル変化タイミングまでの時間差ＴｅＶ（即ち、負の時間差ＴｅＶ）を、上記単位時間を分解能として計測した値となる。
【０１１２】
また、第２の各相ホール信号割込処理と、各相ゼロクロス信号割込処理とによって計測される時間差ＴｅＵ，ＴｅＶ，ＴｅＷは、ホールセンサ２３ｕ，２３ｖ，２３ｗとロータ位置検出回路５０とが同じロータ位置を検出した各タイミングのずれ量である。このことは、Ｓ６２０又はＳ７２０でＹＥＳと判定した場合に計測結果としての誤差タイマ値をＲＡＭに保存することで実現されている。
【０１１３】
図１０の説明に戻る。マイコン４６は、Ｓ３４０でゼロクロス信号割込を許可した後、Ｓ３５０に進み、モータ回転速度が所定の下限値ＳＬ以上であるか否かを判定する。そして、モータ回転速度が下限値ＳＬ以上であれば、Ｓ３６０に進む。尚、下限値ＳＬは、Ｓ３３０での判定に用いられる上限値ＳＨよりも小さい。換言すれば、上限値ＳＨは下限値ＳＬよりも大きい。
【０１１４】
マイコン４６は、Ｓ３６０では、各相の誤差タイマ値が全てＲＡＭに記憶されているか否かを判定し、否定判定した場合、即ち、何れかの相の誤差タイマ値が未だＲＡＭに記憶されていない場合には、Ｓ３２０に戻る。
【０１１５】
また、マイコン４６は、Ｓ３６０にて、各相の誤差タイマ値が全てＲＡＭに記憶されていると判定した場合には、Ｓ３７０に進む。
図１０におけるＳ３７０〜Ｓ４２０の処理は、各相についてそれぞれ実行されるが、ここでは、Ｕ相について行われるものとして説明する。
【０１１６】
マイコン４６は、Ｓ３７０では、ＲＡＭに記憶されているＵ相の誤差タイマ値の正負符号が、「正」であるか否かを判定し、「正」であれば、Ｓ３８０に進む。
マイコン４６は、Ｓ３８０では、Ｕ相の補正値（即ち、Ｕ相ホール信号ＨａＵに対する補正値）ＲＵを、下記の式６によって算出する。
【０１１７】
Ｕ相の補正値ＲＵ＝Ｕ相の誤差タイマ値／Ｕ相の回転速タイマ値  …式６
式６は、前述の式１に相当する。つまり、式６は、式１おける「時間差ＴｅＸ」として、「Ｕ相の誤差タイマ値」を用い、式１における「半周期時間ＴｃＸ」として、「Ｕ相の回転速タイマ値」を用いた式である。そして、この式６により算出されるＵ相の補正値ＲＵは、進角側にずれているＵ相ホール信号ＨａＵを、遅角側に補正するための補正値（以下、遅角方向用の補正値という）である。
【０１１８】
また、マイコン４６は、Ｓ３７０にて、ＲＡＭに記憶されているＵ相の誤差タイマ値の正負符号が、「正」ではない（即ち「負」である）と判定した場合には、Ｓ３９０に進む。
【０１１９】
マイコン４６は、Ｓ３９０では、Ｕ相の補正値ＲＵを、下記の式７によって算出する。
Ｕ相の補正値ＲＵ＝１−Ｕ相の誤差タイマ値／Ｕ相の回転速タイマ値  …式７
式７は、前述の式２に相当する。つまり、式７は、式２おける「時間差ＴｅＸ」として、「Ｕ相の誤差タイマ値」を用い、式２における「半周期時間ＴｃＸ」として、「Ｕ相の回転速タイマ値」を用いた式である。そして、この式７により算出されるＵ相の補正値ＲＵは、遅角側にずれているＵ相ホール信号ＨａＵを、進角側に補正するための補正値（以下、進角方向用の補正値という）である。
【０１２０】
マイコン４６は、Ｓ３８０又はＳ３９０でＵ相の補正値ＲＵを算出した後、Ｓ４００に進む。そして、Ｓ４００では、Ｓ３８０又はＳ３９０で今回算出した新たなＵ相の補正値ＲＵ（以下、新補正値ＲＵという）が、所定の範囲内であるか否かを判定することにより、その新補正値ＲＵが正常か否かを判定する。所定の範囲は、設計上の正常範囲（即ち、設計上取り得る範囲）に設定されている。
【０１２１】
マイコン４６は、Ｓ４００にて、新補正値ＲＵが正常であると判定した場合には、Ｓ４１０に進む。そして、Ｓ４１０では、後述するＳ４２０によってメモリ４７に既に記憶されているＵ相の補正値ＲＵ（以下、現補正値ＲＵという）と、新補正値ＲＵとを比較することで、メモリ４７内の現補正値ＲＵを新補正値ＲＵに更新する必要があるか否かを判定する。
【０１２２】
具体的には、まず、現補正値ＲＵと新補正値ＲＵとの差を表す差分値を算出する。その差分値は、現補正値ＲＵと新補正値ＲＵとの差の絶対値である。但し、現補正値ＲＵと新補正値ＲＵとのうち、一方が遅角方向用で、他方が進角方向用であれば、進角方向用の補正値については、その補正値から１を引いた値を、差分値の算出に用いる。また、補正値が、遅角方向用か進角方向用かは、例えば、図１１のＳ６２０と図１２のＳ７２０との判定で使用している所定値よりも小さければ、遅角方向用の補正値と判断し、その所定値以上であれば、進角方向用の補正値と判断することができる。換言すれば、差分値は、現補正値ＲＵが表す半周期時間ＴｃＵに対する時間差ＴｅＵの割合と、新補正値ＲＵが表す半周期時間ＴｃＵに対する時間差ＴｅＵの割合との、差の絶対値に該当する。
【０１２３】
そして、マイコン４６は、Ｓ４１０では、算出した差分値が規定値以上であれば、現補正値ＲＵの更新が必要と判定し、その差分値が規定値よりも小さければ、現補正値ＲＵの更新は不要と判定する。差分値が規定値よりも小さい場合、現補正値ＲＵと新補正値ＲＵとは、実質的に同じであると考えられるからである。実質的に同じとは、差があったとしても、モータ１６の制御に使用した場合に、制御精度に影響しない程度の差でしかない、という意味である。また、Ｓ４１０では、現補正値ＲＵと新補正値ＲＵとが同じでなければ、現補正値ＲＵの更新が必要と判定し、現補正値ＲＵと新補正値ＲＵとが同じであれば、現補正値ＲＵの更新は不要と判定するようになっていても良い。
【０１２４】
そして、マイコン４６は、Ｓ４１０にて、現補正値ＲＵの更新が必要と判定した場合には、Ｓ４２０に進み、メモリ４７内の現補正値ＲＵを新補正値ＲＵに書き換えることで更新する。そして、その後、Ｓ４３０に進む。また、マイコン４６は、Ｓ４１０にて、現補正値ＲＵの更新が不要と判定した場合には、Ｓ４２０の処理を行うことなく、そのままＳ４３０に進む。
【０１２５】
尚、メモリ４７にＵ相の補正値ＲＵが未だ記憶されていない場合には、Ｓ４００では新補正値ＲＵが正常であると判定され、Ｓ４１０では現補正値ＲＵの更新が必要と判定される。そして、この場合のＳ４２０では、新補正値ＲＵがメモリ４７に新規に記憶されることとなる。
【０１２６】
マイコン４６は、Ｓ４３０では、全ての相についてＳ３７０〜Ｓ４２０の処理を終了したか否かを判定し、終了していないと判定した場合には、Ｓ３７０に戻る。この場合、マイコン４６は、他の相についてＳ３７０〜Ｓ４２０の処理を行うこととなる。
【０１２７】
また、マイコン４６は、Ｓ４３０にて、全ての相についてＳ３７０〜Ｓ４２０の処理を終了したと判定した場合には、Ｓ４５０に進む。
また、マイコン４６は、Ｓ４００にて、新補正値ＲＵが正常でないと判定した場合には、Ｓ４４０に進み、使用者に対して異常の発生を報知するための異常報知処理を行う。ホールセンサ２３ｕ，２３ｖ，２３ｗやロータ位置検出回路５０や信号配線など、何らかの部分に異常が発生していると考えられるからである。そして、マイコン４６は、その後、Ｓ４５０に進む。尚、異常報知処理としては、ＬＥＤ３４を所定のパターンで点灯させる処理を行うが、例えば、ブザーを鳴らす処理や、表示パネル３２に表示装置が設けられているのであれば、その表示装置に異常の発生を示すメッセージを表示する処理を行っても良い。
【０１２８】
また、マイコン４６は、Ｓ３５０にて、モータ回転速度が下限値ＳＬ以上ではない（つまり、下限値ＳＬよりも小さい）と判定した場合には、そのままＳ４５０に進む。
マイコン４６は、Ｓ４５０では、ホール信号割込を禁止し、次のＳ４６０にて、ゼロクロス信号割込を禁止する。
【０１２９】
そして、マイコン４６は、次のＳ４７０にて、各相の誤差タイマを停止させると共に、その各相の誤差タイマ値を０にクリアする。更に、マイコン４６は、次のＳ４８０にて、各相の回転速タイマを停止させると共に、その各相の回転速タイマ値を０にクリアする。そして、その後、当該補正値記憶処理を終了する。すると、モータ制御処理も終了することとなる。
【０１３０】
また、マイコン４６は、Ｓ３２０にて、トリガスイッチ２９がオフではない（即ち、オンである）と判定した場合には、Ｓ４９０に進み、ゼロクロス信号割込を禁止する。そして、マイコン４６は、次のＳ５００にて、各相の誤差タイマを停止させると共に、その各相の誤差タイマ値を０にクリアする。その後、マイコン４６は、Ｓ５１０にて、モータ制御処理の先頭（即ち、図８のＳ１１０）へジャンプする。この場合には、モータ１６が再び駆動されることとなる。
【０１３１】
マイコン４６は、図８〜図１２を用いて説明した各処理を行うことにより、前述した〈１〉〜〈３〉の処理を行うこととなる。
［効果］
本実施形態の刈払機２において、マイコン４６は、モータ１６が惰性回転している場合に、第２の各相ホール信号割込処理と、各相ゼロクロス信号割込処理とを実行する。マイコン４６は、それらの処理により、各相について、ホール信号ＨａＵ，ＨａＶ，ＨａＷのレベル変化タイミングと、ゼロクロス信号ＺｒＵ，ＺｒＶ，ＺｒＷのレベル変化タイミングとの時間差ＴｅＵ，ＴｅＶ，ＴｅＷを、誤差タイマ値として計測する。計測される時間差ＴｅＵ，ＴｅＶ，ＴｅＷは、ホールセンサ２３ｕ，２３ｖ，２３ｗによるロータ位置の検出結果と、ロータ位置検出回路５０によるロータ位置の検出結果との、差に相当する。
【０１３２】
更に、マイコン４６は、図１０のＳ３７０〜Ｓ３９０の処理により、時間差ＴｅＵ，ＴｅＶ，ＴｅＷの測定結果に相当する各相の誤差タイマ値から、ホールセンサ２３ｕ，２３ｖ，２３ｗによるロータ位置の検出結果を補正するための補正値ＲＵ，ＲＶ，ＲＷを算出し、図１０のＳ４２０にて、その補正値ＲＵ，ＲＶ，ＲＷをメモリ４７に記憶する。
【０１３３】
モータ１６の惰性回転中において、ロータ位置検出回路５０によるロータ位置の検出結果に相当するゼロクロス信号ＺｒＵ，ＺｒＶ，ＺｒＷのレベル変化タイミングは、正しいロータ位置を示す。このため、メモリ４７に記憶される補正値ＲＵ，ＲＶ，ＲＷは、ホールセンサ２３ｕ，２３ｖ，２３ｗによるロータ位置の検出結果（即ち、ホール信号ＨａＵ，ＨａＶ，ＨａＷのレベル変化タイミング）を精度良く補正可能な補正値となる。
【０１３４】
よって、マイコン４６は、第１の各相ホール信号割込処理と図８のＳ１５０〜Ｓ１７０の処理により、ホール信号ＨａＵ，ＨａＶ，ＨａＷのレベル変化タイミングを、メモリ４７内の補正値ＲＵ，ＲＶ，ＲＷを用いて、精度良く補正することができる。そして、マイコン４６は、図８のＳ１７０では、その補正されたレベル変化タイミングにて励磁切替を実施するため、モータ１６の制御精度を向上させることができる。
【０１３５】
また、前述したように、第２の各相ホール信号割込処理と、各相ゼロクロス信号割込処理とによって計測される時間差ＴｅＵ，ＴｅＶ，ＴｅＷは、ホールセンサ２３ｕ，２３ｖ，２３ｗとロータ位置検出回路５０とが同じロータ位置を検出した各タイミングのずれ量である。そして、本実施形態では、そのずれ量を、ホールセンサ２３ｕ，２３ｖ，２３ｗによるロータ位置の検出結果と、ロータ位置検出回路５０によるロータ位置の検出結果との、差（即ち、ホールセンサ２３ｕ，２３ｖ，２３ｗによる検出誤差）として扱っている。このため、ホールセンサ２３ｕ，２３ｖ，２３ｗによる検出誤差を、簡単に検出することができ、延いては、補正値ＲＵ，ＲＶ，ＲＷを算出するための処理を簡単なものにすることができる。
【０１３６】
また、マイコン４６は、図１０のＳ３５０でモータ回転速度が下限値ＳＬよりも小さいと判定した場合には、Ｓ４５０，Ｓ４６０にて、ホール信号割込とゼロクロス信号割込を禁止する。つまり、マイコン４６は、モータ回転速度が下限値ＳＬ以上の場合に、第２の各相ホール信号割込処理と、各相ゼロクロス信号割込処理とを実行して、時間差ＴｅＵ，ＴｅＶ，ＴｅＷを検出する。モータ回転速度が小さすぎると、発生する誘起電圧の振幅が小さくなり、その誘起電圧に基づくゼロクロス信号ＺｒＵ，ＺｒＶ，ＺｒＷの精度が低下するためである。よって、モータ回転速度が下限値ＳＬ以上の場合に時間差ＴｅＵ，ＴｅＶ，ＴｅＷを検出することで、その時間差ＴｅＵ，ＴｅＶ，ＴｅＷに基づき算出される補正値ＲＵ，ＲＶ，ＲＷの精度を、向上させることができる。
【０１３７】
また、マイコン４６は、図１０のＳ３３０でモータ回転速度が上限値ＳＨ以下であると判定した場合に、Ｓ３４０にてゼロクロス信号割込を許可する。つまり、マイコン４６は、モータ回転速度が下限値ＳＬ以上で、且つ、上限値ＳＨ以下である場合に、第２の各相ホール信号割込処理と、各相ゼロクロス信号割込処理とを実行して、時間差ＴｅＵ，ＴｅＶ，ＴｅＷを検出する。モータ回転速度が大きすぎても、発生する誘起電圧の変化速度が大きくなって、ゼロクロス信号ＺｒＵ，ＺｒＶ，ＺｒＷの精度が低下するためである。よって、モータ回転速度が下限値ＳＬ〜上限値ＳＨの範囲内である場合に時間差ＴｅＵ，ＴｅＶ，ＴｅＷを検出することで、その時間差ＴｅＵ，ＴｅＶ，ＴｅＷに基づき算出される補正値ＲＵ，ＲＶ，ＲＷの精度を、一層向上させることができる。尚、下限値ＳＬ〜上限値ＳＨの範囲は、ゼロクロス信号ＺｒＵ，ＺｒＶ，ＺｒＷの精度が良好となる範囲であれば良く、適宜設定することができる。
【０１３８】
また、マイコン４６は、図１０のＳ４１０にて、メモリ４７内の補正値と、新たに算出した補正値とを比較して、メモリ４７内の補正値の更新が必要か否かを判定し、必要と判定した場合に、メモリ４７内の補正値を、新たに算出した補正値に書き換える。このため、メモリ４７内の補正値を書き換えるための処理負荷を抑制することができ、また、メモリ４７の書き換え回数も抑制することができる。例えば、モータ１６を交換した場合など、補正値が大きく変わる場合にだけ、メモリ４７内の補正値を更新することができる。
【０１３９】
また、マイコン４６は、図１０のＳ４００にて、新たに算出した補正値が所定の範囲内であるか否かにより、その補正値が正常か否かを判定する。そして、マイコン４６は、新たに算出した補正値が正常でないと判定した場合には、図１０のＳ４４０にて、異常報知処理を行う。
【０１４０】
このため、例えば、ホールセンサ２３ｕ，２３ｖ，２３ｗやロータ位置検出回路５０や信号配線など、何らかの部分に異常が発生して、新たに算出した補正値が異常な値になった場合に、異常の発生を検知して、使用者に報知することができる。その結果、使用者に対して、当該刈払機２の修理を促すことができる。
【０１４１】
尚、本実施形態において、ロータ位置検出回路５０は、検出部の一例に相当する。また、マイコン４６は、算出部と、記憶処理部と、モータ制御部と、更新判定部と、異常検出部との、各々として機能している。そして、図８のＳ１３０と、図１０のＳ３１０〜Ｓ３９０，Ｓ４５０，Ｓ４６０と、図１１のＵ相ゼロクロス信号割込処理を含む各相ゼロクロス信号割込処理と、図１２の第２のＵ相ホール信号割込処理を含む第２の各相ホール信号割込処理とが、算出部としての処理の一例に相当する。また、図１０のＳ４２０が、記憶処理部としての処理の一例に相当する。また、図８のＳ１５０〜Ｓ１７０と、図９の第１のＵ相ホール信号割込処理を含む第１の各相ホール信号割込処理とが、モータ制御部としての処理の一例に相当する。また、図１０のＳ４１０が、更新判定部としての処理の一例に相当する。また、図１０のＳ４００，Ｓ４４０が、異常検出部としての処理の一例に相当する。
【０１４２】
［他の実施形態］
上記実施形態では、ホールセンサ２３ｕ，２３ｖ，２３ｗに検出誤差が無ければ、モータ１６の惰性回転時において、ホール信号ＨａＵ，ＨａＶ，ＨａＷのレベル変化タイミングは、ゼロクロス信号ＺｒＵ，ＺｒＶ，ＺｒＷのレベル変化タイミングと一致するようになっていた。この場合のホールセンサ２３ｕ，２３ｖ，２３ｗの組み付け位置を、基準位置と言うことにすると、ホールセンサ２３ｕ，２３ｖ，２３ｗは、基準位置よりも進角側又は遅角側にずらして組み付けられても良い。上記の例では、センサ基板１７の組み付け位置を変えることで、ホールセンサ２３ｕ，２３ｖ，２３ｗの組み付け位置を変えることができる。
【０１４３】
例えば、ホールセンサ２３ｕ，２３ｖ，２３ｗが、基準位置よりも進角側に、電気角で「α°」分だけずらして組み付けられるとする。
この場合、モータ１６の惰性回転時において、ホール信号ＨａＵ，ＨａＶ，ＨａＷのレベル変化は、ゼロクロス信号ＺｒＵ，ＺｒＶ，ＺｒＷのレベル変化タイミングよりも電気角で「α°」分の時間Ｔαだけ前に発生することとなる。そして、この場合には、上記実施形態を下記のように変形すれば良い。
【０１４４】
Ｕ，Ｖ、Ｗの各相のうち、Ｕ相を例に挙げて説明すると、マイコン４６は、Ｕ相ホール信号ＨａＵにレベル変化が生じたタイミングから、電気角で「α°」分の時間Ｔαだけ後のタイミングを、仮想タイミングとして生成する。その仮想タイミングは、モータ回転速度に基づいて生成することができる。モータ回転速度から上記時間Ｔαを算出することができるからである。そして、マイコン４６は、図１２の第２のＵ相ホール信号割込処理を、上記仮想タイミングにて実行すれば良い。尚、Ｖ相、Ｗ相についても同様である。
【０１４５】
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されることなく、種々の形態を採り得る。また、前述の数値も一例であり他の値でも良い。
例えば、回転位置センサとしては、ホール素子を用いたものに限らず、例えば磁気抵抗素子など、他の磁電変換素子を用いたセンサでも良い。
【０１４６】
モータ１６におけるコイルの結線方式は、スター結線に限らず、例えばデルタ結線など、他の結線方式でも良い。
補正値を記憶するメモリ４７としては、例えば電源バックアップされたＲＡＭなどでも良い。
【０１４７】
電動作業機としては、作業現場での作業に使用されるものであれば良く、例えば、草刈機、チェーンソー、カットオフソー、噴霧機、散布機、ブロワ、集塵機等であっても良いし、ドリル、インパクトドライバ、マルノコ、グラインダ等の電動工具であっても良い。
【０１４８】
電動作業機の電源は、交流電源であっても良い。
また、上記実施形態における１つの構成要素が有する複数の機能を、複数の構成要素によって実現したり、１つの構成要素が有する１つの機能を、複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を、１つの構成要素によって実現したり、複数の構成要素によって実現される１つの機能を、１つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。なお、特許請求の範囲に記載した文言のみによって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。また、上述した電動作業機の他、当該電動作業機を構成要素とするシステム、当該電動作業機としてコンピュータを機能させるためのプログラム、このプログラムを記録した半導体メモリ等の記録媒体、電動作業機用ブラシレスモータの制御方法や、回転位置センサの補正方法など、種々の形態で本発明を実現することもできる。
【符号の説明】
【０１４９】
２…刈払機、４…支持棹、４ａ…前端、４ｂ…後端、６…前端ユニット、８…後端ユニット、１０…ループハンドル、１２…グリップ、１３…モータハウジング、１４…ハウジング本体、１５…上面カバー、１６…モータ、１７…センサ基板、１８…ステータ、１９…ロータ、２０…モータ軸、２１…マグネット、２２…ロータコア、２３ｕ，２３ｖ，２３ｗ…ホールセンサ、２４…ネジ、２６…コードホルダ、２７…安全カバー、２８…カッターコード、２９…トリガスイッチ、３０…ロックオフレバー、３１…操作部、３２…表示パネル、３４…ＬＥＤ、３５…制御装置、３６…後端ハウジング、３７…バッテリパック、３８…バッテリ、４１ｕ…Ｕ相コイル、４１ｖ…Ｖ相コイル、４１ｗ…Ｗ相コイル、４３ｕ…Ｕ相端子、４３ｖ…Ｖ相端子、４３ｗ…Ｗ相端子、４５…レギュレータ、４６…マイコン、４７…メモリ、４８…ドライバ回路、４９…電流検出回路、５０…ロータ位置検出回路。
【図１】
2017135950.tif 000003
【図２】
2017135950.tif 000004
【図３】
2017135950.tif 000005
【図４】
2017135950.tif 000006
【図５】
2017135950.tif 000007
【図６】
2017135950.tif 000008
【図７】
2017135950.tif 000009
【図８】
2017135950.tif 000010
【図９】
2017135950.tif 000011
【図１０】
2017135950.tif 000012
【図１１】
2017135950.tif 000013
【図１２】
2017135950.tif 000014