(57)【特許請求の範囲】
【請求項１】
ステータに設けられた複数相の電機子コイルに流す電流を制御することにより、ロータを回転させるブラシレスモータの駆動制御装置において、
前記複数相の電機子コイルに対して通電を行なうインバータ回路と、
前記インバータ回路を駆動するための駆動信号を生成するプリドライブ回路と、
前記ロータの回転位置を検出するとともに、前記検出された回転位置に同期して単位時間ごとにパルス列が変化する複数のパルス信号を生成する回転位置検出器と、
前記ブラシレスモータにハンチング現象が生じたか否かを検出するハンチング検出部と、を備え、
前記ハンチング検出部は、
最新のパルス列とそれ以前の少なくともｍ個（ｍは２以上の整数）のパルス列とを単位時間ごとに格納する記憶部と、
前記記憶部に格納された前記最新のパルス列と前記それ以前のパルス列とに基づいて、前記ロータの回転方向の変化を検出する回転変化検出部と、
前記回転変化検出部で前記ロータの回転方向の変化が検出された時点を基点として、前記ロータの回転方向が変化した回数を検出する回数検出部と、
前記回数検出部で検出された回数が所定の基準回数に達したときに前記ハンチング現象が生じたと判断するハンチング決定部と、を有し、
前記回数検出部は、
前記最新のパルス列とその直前のパルス列とを足し合わせた第１和と、前記直前のパルス列とその一つ前のパルス列とを足し合わせた第２和とが一致するか否かを単位時間ごとに判定する第１判定部と、
前記最新のパルス列と前記それ以前の少なくともｍ個のパルス列との中に同じパルス列が重複して存在するか否かを判定する第２判定部と、
前記第１判定部により前記第１和と前記第２和とが一致すると判定されると、前記ロータの回転方向が変化した回数を計測する計数値を増やし、前記第２判定部により前記最新のパルス列と前記それ以前の少なくともｍ個のパルス列の中に同じパルス列が重複して存在しないと判定されると、前記計数値をリセットする計数器と、を有し、
前記ハンチング決定部は、前記計数値が予め定めた所定の基準値に達したときに前記ハンチング現象が生じたと判断することを特徴とする駆動制御装置。
【請求項２】
前記最新のパルス列と前記それ以前の少なくともｍ個のパルス列との単位時間の合計は、前記ブラシレスモータの電気角３６０度未満の時間であることを特徴とする請求項１に記載の駆動制御装置。
【請求項３】
前記記憶部は、少なくとも（ｍ＋１）個の単位時間分のパルス列を格納し、
前記第２判定部は、
前記最新のパルス列と前記それ以前のｍ個の単位時間分のパルス列との中に同じパルス列が重複して存在するか否かを判定する第３判定部と、
前記最新のパルス列と前記それ以前の（ｍ＋１）個の単位時間分のパルス列との中に同じパルス列が重複して存在するか否かを判定する第４判定部と、を有し、
前記計数器は、前記第１判定部により前記第１和と前記第2和とが一致すると判定されると、前記ロータの回転方向が変化した回数を計測する第１の計測値および第２の計測値をともに増やし、前記第３判定部により前記最新のパルス列と前記それ以前のｍ個の単位時間分のパルス列との中に同じパルス列が存在しないと判定されると前記第１の計測値をリセットし、前記第４判定部により前記最新のパルス列と前記それ以前の（ｍ＋１）個の単位時間分のパルス列との中に同じパルス列が存在しないと判定されると前記第２の計測値をリセットし、
前記ハンチング決定部は、
前記第１の計測値が予め定めた第１の基準値に達したときに前記ハンチング現象が生じたと判断する第１ハンチング決定部と、
前記第２の計測値が予め定めた第２の基準値に達したときに前記ハンチング現象が生じたと判断する第２ハンチング決定部と、を有することを特徴とする請求項１または２に記載の駆動制御装置。
【請求項４】
ステータに設けられた複数相の電機子コイルに流す電流をインバータ回路により切替制御して、ロータを回転させるブラシレスモータの回転異常を検出するブラシレスモータの回転異常検出方法において、
前記ロータの回転位置を検出するとともに、前記検出された回転位置に同期して単位時間ごとにパルス列が変化する複数のパルス信号を生成するステップと、
最新のパルス列とそれ以前の少なくともｍ個（ｍは２以上の整数）のパルス列とを単位時間ごとに記憶部に格納するステップと、
前記記憶部に格納された前記最新のパルス列と前記それ以前のパルス列とに基づいて、前記ロータの回転方向の変化を検出するステップと、
前記ロータの回転方向の変化が検出された時点を基点として、前記ロータの回転方向が変化した回数を検出するステップと、
前記検出された回数が所定の基準回数に達したときに前記ブラシレスモータにハンチング現象が生じたと判断するステップと、を備え、
前記ロータの回転方向が変化した回数を検出するステップは、
前記最新のパルス列とその直前のパルス列とを足し合わせた第１和と、前記直前のパルス列とその一つ前のパルス列とを足し合わせた第２和とが一致するか否かを単位時間ごとに判定するステップと、
前記最新のパルス列と前記それ以前の少なくともｍ個のパルス列との中に同じパルス列が重複して存在するか否かを判定するステップと、
前記第１和と前記第２和とが一致すると判定されると、前記ロータの回転方向が変化した回数を計測する計数値を増やし、前記最新のパルス列と前記それ以前の少なくともｍ個のパルス列の中に同じパルス列が重複して存在しないと判定されると、前記計数値をリセットするステップと、を有し、
前記計数値が予め定めた所定の基準値に達したときに前記ハンチング現象が生じたと判断することを特徴とする回転異常検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、正逆方向に回転可能なブラシレスモータの駆動制御装置および回転異常検出方法に関する。
【背景技術】
【０００２】
従来、ロータとｎ相（ｎは２以上の整数）の電機子コイルを有するステータとを備えるブラシレスモータでは、ｎ相の電機子コイルに供給する駆動電流をロータの回転角度位置に応じて切り替えることにより、ロータを回転させている。
【０００３】
ロータの回転角度位置の検出には、ホールＩＣなどの位置検出センサが用いられる。ブラシレスモータの駆動制御装置は、位置検出センサからの検出信号が所定時間以上変化しない場合は、ロータがロックされたと判断し、インバータ回路のスイッチング素子への駆動信号を停止するロック機能を備えている。
【０００４】
しかしながら、ロータがロックされると、ロータの停止位置によっては正回転と逆回転とを交互に繰り返すハンチング現象が生じることがある。ハンチング現象が生じたときは、各相の電機子コイルに大きな駆動電流が流れる時間が長くなるため、電機子コイルの温度が上昇して焼損するなどの不具合が生じる。
【０００５】
ここで、ハンチング現象が生じる原因について説明する。ロック状態とは、モータの駆動トルクと負荷トルクが釣り合った状態である。ところが、負荷量は必ずしも一定ではなく、負荷トルクも変動する。駆動トルクが負荷トルクを上回ると、モータは正方向に回転する。一方、負荷トルクが駆動トルクを上回ると、モータは逆方向に回転する。このように、いったんロック状態になっても、その後に負荷トルクが変動すると、駆動トルクと負荷トルクの釣り合いが取れなくなり、モータは正転したり、逆転したりする。これがハンチング現象の起きる原因となる。
【０００６】
このようなハンチング現象を防ぐ手法として、ハンチング現象が生じた状態もロック状態とみなして、ロック状態が検出されると、電機子コイルに流れる駆動電流を制限するブラシレスモータの制御装置が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００２−２７１９０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１は、回転速度の情報に基づいてロック状態を判定しており、ハンチング状態そのものを特定して検出することはできない。
【０００９】
また、ロック状態の判定に所定時間継続して正転または逆転することを条件としているため、モータの正逆転が所定時間内に起こっている場合は、ロック状態の検出ができない。
【００１０】
本発明は、上述した問題点に鑑みてなされたものであり、その目的は、ハンチング現象と逆転状態とを正しく区別でき、かつハンチング現象が生じたことを正確かつ迅速に検出可能なブラシレスモータの駆動制御装置および回転異常検出方法を提供するものである。
【課題を解決するための手段】
【００１１】
上記の課題を解決するために、本発明の一態様では、ステータに設けられた複数相の電機子コイルに流す電流を制御することにより、ロータを回転させるブラシレスモータの駆動制御装置において、
複数相の電機子コイルに対して通電を行なうインバータ回路と、
インバータ回路を駆動するための駆動信号を生成するプリドライブ回路と、
ロータの回転位置を検出するとともに、検出された回転位置に同期して単位時間ごとにパルス列が変化する複数のパルス信号を生成する回転位置検出器と、
ブラシレスモータにハンチング現象が生じたか否かを検出するハンチング検出部と、を備え、
ハンチング検出部は、最新のパルス列とそれ以前のパルス列とに基づいて、ロータの回転方向の変化とロータの回転方向が変化した回数とを単位時間ごとに検出し、これらの検出結果に基づいてハンチング現象が生じたか否かを判断することを特徴とする駆動制御装置が提供される。
【発明の効果】
【００１２】
本発明によれば、ハンチング現象と逆転状態とを正しく区別でき、かつハンチング現象が生じたことを正確かつ迅速に検出できる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態によるブラシレスモータ１０の駆動制御装置１の概略構成を示すブロック図。
【図２】本実施形態による駆動制御装置１の詳細な構成を示すブロック図。
【図３】回転位置検出器５から出力されるパルス信号の一例を示す信号波形図。
【図４】図２のハンチング検出部６が行なう第１のハンチング判定処理を示すフローチャート。
【図５】図４に示した第１のハンチング判定処理の結果を示す図。
【図６】図２のハンチング検出部６が行なう第２のハンチング判定処理を示すフローチャート。
【発明を実施するための形態】
【００１４】
以下、図面を参照しながら、本発明の実施形態について詳細に説明する。
【００１５】
図１は本発明の一実施形態によるブラシレスモータ１０の駆動制御装置１の概略構成を示すブロック図である。図１の駆動制御装置１は、インバータ回路２と、プリドライブ回路３と、制御回路部４と、回転位置検出器５とを備えている。
【００１６】
インバータ回路２は、複数相の電機子コイルに対して通電を行なう。プリドライブ回路３は、インバータ回路２を駆動するための駆動信号を生成する。回転位置検出器５は、ブラシレスモータ１０のロータの回転位置を検出する。回転位置検出器５は、ブラシレスモータ１０のロータの近傍に配置された複数の位置検出センサ（不図示）の検出信号に同期したパルス信号を生成して、制御回路部４に供給する。
【００１７】
制御回路部４は、ハンチング検出部６を有する。ハンチング検出部６は、回転位置検出器５から出力されるパルス信号に基づいて、ブラシレスモータ１０にハンチング現象が生じたか否かを検出する。
【００１８】
ここで、パルス信号とは、複数相の電機子コイルに流す電流の切替に対応して回転位置検出器５で検出されるロータの回転位置に同期した複数のパルス信号である。後述するように、これらパルス信号は、単位時間ごとにパルス列が変化する。ハンチング検出部６は、最新のパルス列とそれ以前のパルス列とに基づいて、ロータの回転方向の変化とロータの回転方向が変化した回数とを単位時間ごとに検出し、これらの検出結果に基づいてハンチング現象が生じたか否かを判断する。
【００１９】
図２は本実施形態による駆動制御装置１の詳細な構成を示すブロック図である。図２に示すように、ブラシレスモータ１０は、Ｕ相、Ｖ相およびＷ相からなる３相構造であり、各相に応じた電機子コイルＬｕ，Ｌｖ，Ｌｗを有する。
【００２０】
インバータ回路２は、Ｕ相の電機子コイルＬｕに流れる電流方向を制御するスイッチングトランジスタＱ１，Ｑ２と、Ｖ相の電機子コイルＬｖに流れる電流方向を制御するスイッチングトランジスタＱ３，Ｑ４と、Ｗ相の電機子コイルＬｗに流れる電流方向を制御するスイッチングトランジスタＱ５，Ｑ６とを有する。スイッチングトランジスタＱ１，Ｑ３，Ｑ５はハイサイド側に配置され、スイッチングトランジスタＱ２，Ｑ４，Ｑ６はロウサイド側に配置されている。
【００２１】
プリドライブ回路３は、スイッチングトランジスタＱ１〜Ｑ６のゲートに供給する駆動信号を生成する。
【００２２】
図３は回転位置検出器５から出力されるパルス信号の一例を示す信号波形図である。図３には、ブラシレスモータ１０のロータが１回転する周期内のパルス信号の信号波形が図示されている。
【００２３】
図３（Ａ）〜図３（Ｃ）はパルス信号ＨＵ，ＨＶ，ＨＷの信号波形を示している。図示のように、パルス信号ＨＵ，ＨＶ，ＨＷは、それぞれ位相の異なるパルス信号である。各パルス信号のデューティ比は５０％であり、各パルス信号の位相は１２０°ずつ、ずれている。これらのパルス信号は、回転位置検出器５にて生成される。
【００２４】
図２の制御回路部４内のハンチング検出部６は、記憶部７と、回転変化検出部８と、回数検出部９と、ハンチング決定部１１とを有する。記憶部７は、現在から過去に遡って少なくとも（ｍ＋１）個（ｍは２以上の整数）の単位時間分のパルス列を記憶する。より具体的には、記憶部７は、最新のパルス列とそれ以前の少なくともｍ個のパルス列とを単位時間ごとに格納する。回転変化検出部８は、記憶部７に格納された過去のｍ個のパルス列と最新のパルス列とに基づいて、ロータの回転方向の変化を検出する。回数検出部９は、回転変化検出部８でロータの回転方向の変化が検出された時点を基点として、ロータの回転方向が変化した回数を検出する。回数検出部９は、例えばカウンタにより構成される。ハンチング決定部１１は、回数検出部９で検出された回数が基準回数に達したときにハンチング現象が生じたと判断する。
【００２５】
ハンチング検出部６を構成する各部の少なくとも一部は、ソフトウェアで構成してもよいし、ハンチング検出部６の全体をハードウェアで構成してもよい。
【００２６】
図３に示すように、各パルス信号ＨＵ，ＨＶ，ＨＷの論理状態は、モータ１０の電気角６０°（機械角３０°）ごとに変化する。本明細書では、各パルス信号の論理状態が継続する期間を単位時間と呼ぶ。単位時間の境界位置に、各パルス信号の立ち上がりエッジと立ち下がりエッジが現れる。図３（Ｄ）は各パルス信号の立ち上がりエッジのタイミングを示し、図３（Ｅ）は各パルス信号の立ち下がりエッジのタイミングを示している。図示のように、各パルス信号の立ち上がりエッジと立ち下がりエッジは、各単位時間の境界位置で交互に現れる。
【００２７】
図３（Ｆ）に示すように、本明細書では、各単位時間の境界位置での３つのパルス信号ＨＵ，ＨＶ，ＨＷの論理状態をパルス列と呼ぶ。例えば、時刻ｔ１のパルス列は（１１０）、時刻ｔ２のパルス列は（１００）である。これらパルス列は全部で６種類あり、本実施形態では、これらのパルス列を簡略的に示すために、それぞれに固有の組合せ番号を付している。例えば、パルス列（１１０）は組合せ番号１であり、パルス列（１００）は組合せ番号２である。その他のパルス列と組合せ番号の対応関係は、図３（Ｆ）と図３（Ｇ）に示されている。
【００２８】
図３からわかるように、回転位置検出器５から出力されるパルス信号ＨＵ，ＨＶ，ＨＷには、ロータが半周する間に、組合せ番号１〜６のパルス列が順に現れ、これが半周期ごとに繰り返される。したがって、ロータの１周期（モータ１０の機械角３６０°）では、組合せ番号１〜６のパルス列が順に２回ずつ現れる。このように、回転位置検出器５は、モータ１０が電気角３６０°分回転する間に、組合せ番号１〜６のパルス列を含むパルス信号ＨＵ，ＨＶ，ＨＷを出力する。
【００２９】
本実施形態のハンチング検出部６は、ロータがロック状態になった後にハンチング現象が生じたか否かを、パルス列に対応する組合せ番号の変化により検出する点に特徴がある。ハンチング検出部６は、最新のパルス列とそれ以前の少なくともｍ個（ｍは２以上の整数）のパルス列との中に同じパルス列が重複して存在する条件の下でロータの回転方向が変化した回数の累積が所定の基準回数に達した場合に、ハンチング現象が生じたと判断する。以下、ハンチング検出部６が行なうハンチング判定処理を詳細に説明する。
【００３０】
（第１のハンチング判定処理）
図４は図２のハンチング検出部６が行なう第１のハンチング判定処理を示すフローチャートである。図４のフローチャートは、図３に示す各単位時間ごとに行なわれる。
【００３１】
まず、パルス信号の各単位時間ごとに、パルス信号の最新のパルス列に対応する組合せ番号Ｈ［ｒ］を記憶部７に格納する（ステップＳ１）。記憶部７には、現在から過去に遡ってｍ回分（ｍは２以上の整数）のパルス列に対応する組合せ番号と最新のパルス列に対応する組合せ番号を格納することができる。最新のパルス列に対応する組合せ番号Ｈ［ｒ］を記憶部７に格納しようとしたときに、すでに過去ｍ＋１回分の組合せ番号が記憶部７に格納されているので、そのうちの一番古い組合せ番号Ｈ［０］を削除し、最新のパルス列に対応する組合せ番号Ｈ［ｒ］を格納する。
【００３２】
次に、最新のパルス列に対応する組合せ番号Ｈ［ｒ］とその直前のパルス列に対応する組合せ番号Ｈ［ｒ−１］とを加算した第１和ＡＤＤ＿Ｈ［０］と、上述した組合せ番号Ｈ［ｒ−１］とそのさらに直前の組合せ番号Ｈ［ｒ−２」とを加算した第２和ＡＤＤ＿Ｈ［１］とを計算する（ステップＳ２）。
【００３３】
次に、第１和ＡＤＤ＿Ｈ［０］と第２和ＡＤＤ＿Ｈ［１］が等しいか否かを判定する（ステップＳ３）。第１和ＡＤＤ＿Ｈ［０］と第２和ＡＤＤ＿Ｈ［１］が等しくなるのは、ロータの回転方向が変化した場合である。すなわち、組合せ番号が増加傾向から減少傾向に切り替わる場合か、減少傾向から増加傾向に切り替わる場合であり、ハンチング現象が生じた可能性がある場合である。このステップＳ３の処理は、回転変化検出部８により行なわれる。
【００３４】
ステップＳ３でＹＥＳ（第１和ＡＤＤ＿Ｈ［０］と第２和ＡＤＤ＿Ｈ［１］が等しい）と判定されると、計数値ｎを１だけインクリメントする（ステップＳ４）。なお、計数値ｎの初期値はゼロとする。計数値ｎのカウントは、回数検出部９により行なわれる。
【００３５】
ステップＳ３の判定がＮＯの場合（第１和ＡＤＤ＿Ｈ［０］と第２和ＡＤＤ＿Ｈ［１］が等しくない場合）、あるいはステップＳ４の処理が終了した場合は、記憶部７内に同じ組合せ番号が重複して格納されているか否かを判定する（ステップＳ５）。
【００３６】
ステップＳ５の判定がＮＯの場合（記憶部７内に同じ組合せ番号が重複して格納されていない場合）は、ロータが短時間に複数回同じ回転位置を通過することはなかったことを示しており、この場合は、計数値ｎをゼロクリア（リセット）する（ステップＳ６）。
【００３７】
ステップＳ５の判定がＹＥＳの場合（記憶部７内に同じ組合せ番号が重複して格納されている場合）は、ロータが短時間に複数回同じ回転位置を通過したことを示しており、ハンチング現象が生じた可能性が高い。このため、この場合は、計数値ｎをゼロクリアせずに、計数値ｎが所定の基準値Ｎ（Ｎは２以上の整数）に達したか否かを判定する（ステップＳ７）。なお、ステップＳ６の処理が終了した場合も、ステップＳ７の処理を行なう。
【００３８】
ステップＳ７の判定がＹＥＳ（計数値ｎ＝所定の基準値Ｎ）の場合は、ロータが短時間にＮ回同じ回転位置を通過したことを示しており、この場合は、ハンチング現象が生じたと判定して、ハンチング現象が生じたことを示すハンチングフラグをセットする（ステップＳ８）。ステップＳ７の判定がＮＯ（計数値ｎ＜所定の基準値Ｎ）の場合は、ハンチング現象が生じなかったとみなして、ハンチングフラグをリセットする（ステップＳ９）。
【００３９】
図４のフローチャートにおいて、ステップＳ４〜Ｓ６は回数検出部９により行なわれ、ステップＳ７〜Ｓ９はハンチング決定部１１により行なわれる。
【００４０】
図５は図４に示した第１のハンチング判定処理の結果を示す図である。なお、本例は、所定の基準値Ｎ＝５とし、計数値ｎが５に達したときに、ハンチングフラグをセットする事例を示している。
【００４１】
図５（ａ）はパルス列に対応する組合せ番号が「１２１２１２１」の順に変化した例（１単位時間ごとに組合せ番号の増減が起きる例）を示している。この場合、先頭から３番目の組合せ番号「１」が記憶部７に格納された時点で、第１和ＡＤＤ＿Ｈ［０］と第２和ＡＤＤ＿Ｈ［１］が等しくなる（本例では、数値が３で等しい）ため、回転方向が変化したと判断して、図４のステップＳ３の判定がＹＥＳになり、計数値ｎがゼロから１にインクリメントされる。次の組合せ番号「２」が記憶部７に格納されると、再び、図４のステップＳ３の判定がＹＥＳになり、計数値ｎは１から２にインクリメントされる。同様にして、それ以降の組合せ番号「１」、「２」、「１」が記憶部７に格納されるたびに、第１和ＡＤＤ＿Ｈ［０］と第２和ＡＤＤ＿Ｈ［１］が等しくなるため、回転方向が変化したと判断して、図４のステップＳ３の判定がＹＥＳになり、計数値ｎは順に１ずつインクリメントされて、最終的にｎ＝５になる。図４のステップＳ７の基準値Ｎ＝５であれば、計数値ｎ＝５になった時点で、ステップＳ７の判定がＹＥＳになり、ハンチングフラグがセットされる。図５（ａ）の場合は、ｍ＝２とｍ＝３のいずれであっても、図４のステップＳ５の判定結果は同じであり、計数値ｎの値も同じになる。
【００４２】
これに対して、図５（ｂ）は、ｍ＝２とｍ＝３で、図４のステップＳ５の判定結果が異なる例を示している。
【００４３】
図５（ａ）は１単位時間ごとに組合せ番号の増減が起きる例を示すのに対し、図５（ｂ）は２単位時間ごとに組合せ番号の増減が起きる例を示している。より具体的には、図５（ｂ）では、組合せ番号が「６１６５６１６５６１６」の順に変化する。
【００４４】
まずは、ｍ＝２の場合の判定処理を説明する。先頭から３番目の組合せ番号「６」が記憶部７に格納された時点で、図４のステップＳ３にて、第１和ＡＤＤ＿Ｈ［０］と第２和ＡＤＤ＿Ｈ［１］とが等しくなる（本例では、数値が７で等しい）ため、回転方向が変化したと判断され判定がＹＥＳになり、計数値ｎがゼロから１にインクリメントされる。次に、ステップＳ５にて、記憶部７に格納されている過去２回分と最新のパルス列に対応する組合せ番号との中での重複する組み合わせ番号の有無が判定され、組合せ番号「６」が重複しているため、判定はＹＥＳとなり、計数値１はクリアされずにステップＳ７へ進む。次に、ステップＳ７では、計数値ｎが基準値Ｎ＝５であるかどうかが判定され、計数値ｎ＝１であるため、判定がＮＯとなり、この時点では、ハンチングフラグはセットされない。
【００４５】
次の組合せ番号「５」が記憶部７に格納された時点では、図４のステップＳ３にて、第１和ＡＤＤ＿Ｈ［０］と第２和ＡＤＤ＿Ｈ［１］が等しくない（本例では、数値が７と１１）ため、回転方向は変化していないと判断され判定がＮＯになり、計数値ｎは１のままインクリメントされない。次に、ステップＳ５にて、記憶部７に格納されている過去２回分と最新のパルス列に対応する組合せ番号の重複有無が判定されるが、記憶部７に同じ組合せ番号が重複して格納されていないため、判定がＮＯになり、ステップＳ６により、計数値ｎはゼロクリアされる。
【００４６】
次の組合せ番号「６」が記憶部７に格納されると、再びステップＳ３の判定がＹＥＳになり、計数値ｎがゼロから１にインクリメントされる。次の組合せ番号「１」が記憶部７に格納されると、ステップＳ３の判定はＮＯになり、計数値ｎはインクリメントされない。ただし、ステップＳ５の判定はＮＯになり、計数値ｎはゼロクリアされる。
【００４７】
その後、組合せ番号「６」、「５」、「６」、「１」が順に記憶部７に格納されると、以上で説明したように、計数値ｎは「１」になった後にゼロクリアされる処理が繰り返される。このため、計数値ｎが基準値Ｎに達することはなく、ハンチングフラグがセットされることはない。
【００４８】
一方、ｍ＝３の場合は、組合せ番号「１」が記憶部７に格納された時点で、ステップＳ５がＹＥＳになり、その後、新しい組合せ番号が記憶部７に格納された時点で、ステップＳ５では、記憶部７に格納されている過去３回分と最新のパルス列に対応する組合せ番号との中に重複する組合せ番号が有るため、判定はＹＥＳになり、計数値ｎはゼロクリアされない。したがって、図５（ｂ）に示すように、計数値ｎは徐々に大きくなり、やがて基準値Ｎ＝５に一致して、この時点でハンチングフラグはセットされる。
【００４９】
このように、記憶部７に格納される組合せ番号の個数ｍ＋１（過去の組合せ番号ｍ個と最新の組合せ番号１個）と基準値Ｎの値によって、ハンチングフラグがセットされる条件が変化する。個数ｍ＋１が大きいほど、あるいは基準値Ｎが小さいほど、ハンチングフラグはセットされやすくなる。したがって、個数ｍ＋１と基準値Ｎを調整することで、どういう条件のときにハンチング現象が生じたとみなすかを細かく調整できる。記憶部７に格納する組合せ番号の個数ｍ＋１と基準値Ｎの値は、それぞれのモータに要求されるハンチングの判定基準に応じて適切な数値を設定する。例えば、基準値Ｎは、数値を小さくすると判定基準が厳しくなりモータの回転状態によっては過剰判定となる場合があるため、モータの回転数などに応じて適切な数値を設定することが望ましい。
【００５０】
上述したように、第１のハンチング判定処理では、パルス信号の各単位時間ごとのパルス列を組合せ番号で区別して、記憶部７に格納する。そして、組合せ番号が増加する傾向にあるか、あるいは減少する傾向にあるかを検出するために、最新のパルス列に対応する組合せ番号Ｈ［ｒ］とその直前のパルス列に対応する組合せ番号Ｈ［ｒ−１］とを足し合わせた第１和ＡＤＤ＿Ｈ［０］と、直前のパルス列に対応する組合せ番号Ｈ［ｒ−１］とその一つ前のパルス列に対応する組合せ番号Ｈ［ｒ−２］とを足し合わせた第２和ＡＤＤ＿Ｈ［１］とを比較する。そして、組合せ番号が増加する傾向から減少する傾向に切り替わるか、あるいは減少する傾向から増加する傾向に切り替わる時点で、第１和ＡＤＤ＿Ｈ［０］と第２和ＡＤＤ＿Ｈ［１］が等しくなることから、ロータの回転方向が変化したと判断して、計数値ｎをカウントアップする。そして、記憶部７に格納されている組合せ番号の中に重複する組合せ番号が有る場合には、ハンチングの可能性があるとして計数値ｎはゼロクリアせずに維持され、記憶部７に格納されている組合せ番号の中に重複する組合せ番号が無い場合には、ハンチングではないと判断して計数値をゼロクリアする。そして、計数値ｎが基準値Ｎに達した場合には、ハンチング現象が生じたと判断して、ハンチングフラグをセットする。
【００５１】
尚、本実施形態では、ハンチング状態にあるかどうかの判定として、記憶部７に格納される最新のパルス列に対応する組合せ番号とそれ以前のパルス列に対応する組合せ番号の中に同じパルス信号が重複して存在するかどうかで判定しているため、判定に用いる組合せ番号の個数が大きくなればなるほど正回転がより長く連続していないとハンチング状態と見なされるため、不連続に発生するハンチング状態をより確実に判定することができる。
【００５２】
しかしながら、ハンチング状態にあるかどうかの判定として、最新のパルス列と同じパルス列がそれ以前のパルス列に重複して存在するかどうかで判定する方法でも、個々のモータ設計毎に求められるハンチングの判定条件によっては適用可能であるため、この方法も本発明の適用範囲から除外されるものではない。
【００５３】
このような第１のハンチング判定処理を行なうことで、ハンチング現象が生じたか否かを正しく検出できる。従来の手法では、ハンチング状態とロータの逆転状態とを正しく区別できないおそれがあったが、第１のハンチング判定処理では、計数値ｎが基準値Ｎに達するまではハンチングフラグをセットしないため、ハンチング状態とロータの逆転状態とを正しく区別できる。すなわち、逆転状態のときは、計数値ｎが増大することはなく、基準値Ｎに達することはないことから、逆転状態をハンチング状態と誤ることはない。
【００５４】
（第２のハンチング判定処理）
図６は図２のハンチング検出部６が行なう第２のハンチング判定処理を示すフローチャートである。図６のフローチャートも、図３に示す各単位時間ごとに行なわれる。
【００５５】
第２のハンチング判定処理は、記憶部７に格納された最新のパルス列に対応する組合せ番号Ｈ［ｒ］とそれ以前の計ｍ個の組合せ番号の中に同じ組合せ番号が含まれるか否かを判定する処理と、記憶部７に格納された最新のパルス列に対応する組合せ番号Ｈ［ｒ］とそれ以前の計（ｍ＋１）個の組合せ番号の中に同じ組合せ番号が含まれるか否かを判定する処理とを行なう。前者の処理に用いられる計数値ｎ０と、後者の処理に用いられる計数値ｎ１とが別個に設けられる。
【００５６】
図６のステップＳ１１〜Ｓ１３は図４のステップＳ１〜Ｓ３と同様である。ステップＳ１３の判定がＹＥＳの場合は、計数値ｎ０とｎ１がともにカウントアップされる（ステップＳ１４）。
【００５７】
ステップＳ１３の判定がＮＯの場合か、あるいはステップＳ１４の処理が終了した場合は、記憶部７に格納された最新のパルス列に対応する組合せ番号Ｈ［ｒ］とそれ以前の計（ｍ＋１）個の組合せ番号の中に重複する組み合わせ番号が存在するか否かを判定する（ステップＳ１５）。ステップＳ１５の判定がＮＯであれば、計数値ｎ０をゼロクリアする（ステップＳ１６）。
【００５８】
ステップＳ１５の判定がＹＥＳであれば、記憶部７に格納された最新のパルス列に対応する組合せ番号Ｈ［ｒ］とそれ以前の計ｍ個の組合せ番号の中に重複する組合せ番号が存在するか否かを判定する（ステップＳ１７）。ステップＳ１６の判定がＮＯであれば、計数値ｎ１をゼロクリアする（ステップＳ１８）。
【００５９】
次に、計数値ｎ０が基準値Ｎ０に達したか否かを判定する（ステップＳ１９）。ステップＳ１９の判定がＹＥＳであれば、ハンチングフラグ０をセットし（ステップＳ２０）、ＮＯであれば、ハンチングフラグ０をクリアする（ステップＳ２１）。
【００６０】
続いて、計数値ｎ１が基準値Ｎ１に達したか否かを判定する（ステップＳ２２）。ステップＳ２２の判定がＹＥＳであれば、ハンチングフラグ１をセットし（ステップＳ２３）、ＮＯであれば、ハンチングフラグ１をクリアする（ステップＳ２４）。
【００６１】
このように、第２のハンチング判定処理では、重複有無を判定する最新のパルス列に対応する組合せ番号Ｈ［ｒ］と過去のパルス列に対応する組合せ番号の個数を２通り設ける。これにより、図５（ｂ）で説明したように、２単位時間ごとに組合せ番号の増減が起きるハンチングが起こった場合でも、ｍの値を事前に変更しなくても、ハンチングが起きたことを正しく検出できるようになる。すなわち、第１のハンチング判定処理では、予めｍの値を適切に設定しておかないと、図５（ｂ）のｍ＝２の場合のように、２単位時間ごとに組合せ番号の増減が起きるハンチングを検出できないが、第２のハンチング判定処理では、最新のパルス列に対応する組合せ番号Ｈ［ｒ］と過去ｍ回のパルス列に対応する組合せ番号とで判定する処理と、過去（ｍ＋１）回のパルス列に対応する組合せ番号とで判定する処理とを連続して行なうため、予めｍの値を最適化しておかなくても、２単位時間ごとに組合せ番号の増減が起きるハンチングを正しく検出できる。
【００６２】
第２のハンチング判定処理は、１単位時間ごとに組合せ番号の増減が起きるハンチングと、２単位時間ごとに組合せ番号の増減が起きるハンチングとの双方を正しく検出できるため、前者のハンチングが検出された場合と、後者のハンチングが検出された場合とで、異なる対策を取ることができる。例えば、前者のハンチングはロータの正逆転の振れ角度が小さいため、ロータの回転を停止させる処理を行ない、後者のハンチングはロータの正逆転の振れ角度が大きいため、ロータがハンチング状態から脱して正常な回転に復帰するような対策を行なってもよい。この対策は、例えば、図３に示すような駆動信号をインバータ回路２から出力すればよい。
【００６３】
図６の変形例として、図６の判定処理に加えて、最新のパルス列に対応する組合せ番号Ｈ［ｒ］と過去（ｍ＋ｎ）回（ｎ＝２以上の整数）のパルス列に対応する組合せ番号とで判定する処理を設けてもよい。これにより、（ｎ＋１）単位時間ごとに組合せ番号の増減が起きるハンチングも検出できるようになる。
【００６４】
本発明の態様は、上述した個々の実施形態に限定されるものではなく、当業者が想到しうる種々の変形も含むものであり、本発明の効果も上述した内容に限定されない。すなわち、特許請求の範囲に規定された内容およびその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更および部分的削除が可能である。
【００６５】
例えば、本実施形態では、回数検出部９での計数方法として、計数値ｎの初期値をゼロとし、第１和ＡＤＤ＿Ｈ［０］と第２和ＡＤＤ＿Ｈ［１］が等しいと判定された場合は、計数値ｎを１だけインクリメントするようにしているが、必ずしも、この計数方法に限定されるものではなく、計数値ｎの初期値を適切な数値に設定して、第１和ＡＤＤ＿Ｈ［０］と第２和ＡＤＤ＿Ｈ［１］が等しいと判定された場合は、計数値ｎを１だけデクリメントするようにしてもよい。
【００６６】
また、記憶部７で記憶するパルス列に対応する組み合わせ番号の個数ｍ＋１を電気角で３６０°分に相当する６種類以内とすれば、この範囲では同じ組合せ番号が存在しないので、本実施形態における組合せ番号の重複判定を容易に行うことができる。しかしながら、これ以上の組合せ番号を記憶するようにしてもデータ処理方法を工夫することにより重複判定をすることは可能であり、したがって、個数ｍ＋１は６種類以内に限定するものではない。
【符号の説明】
【００６７】
１  駆動制御装置
２  インバータ回路
３  プリドライブ回路
４  制御回路部
５  回転位置検出器
６  ハンチング検出部
７  記憶部
８  回転変化検出部
９  回数検出部
１０  ブラシレスモータ
１１  ハンチング決定部
Ｌｕ，Ｌｖ，Ｌｗ  電機子コイル
【図１】
0005738685.tif 000002
【図２】
0005738685.tif 000003
【図３】
0005738685.tif 000004
【図４】
0005738685.tif 000005
【図５】
0005738685.tif 000006
【図６】
0005738685.tif 000007