(57)【要約】【課題】速度変動によらずに回転速度を素早く測定できるようにする。【解決手段】ブラシレスモータの制御装置１は、センサエッジ切り替わり回数カウント部１２を有し、位置検出センサ３が出力する信号のエッジの回数をカウントする。このカウント値でオーバーフロー推測部１４の推定テーブルを検索し、そのカウント値でオーバーフローするときのオーバーフローチェックカウンタの値を抽出する。抽出した値が実際のオーバーフローチェックカウンタの値より大きい場合はオーバーフローを起こすとみなして回転周期の算出を行わない。【選択図】図１
2008035624.tif 000002
【特許請求の範囲】
【請求項１】
ブラシレスモータの回転制御を行うための制御装置であって、
時間経過と共に一定の割合でカウント値を増加又は減少させ、所定のカウント値になったらリセットを行うフリーランタイマと、
前記ブラシレスモータの回転子の回転位置を検出するセンサから出力される信号のエッジごとに、前記フリーランタイマのカウント値を格納可能な複数のメモリと、
前記ブラシレスモータの回転周期を算出する指令を受け取ったときの前記フリーランタイマのカウント値と、前記ブラシレスモータの１回転前の前記フリーランタイマのカウント値とから前記ブラシレスモータの回転周期を算出する回転周期算出部と、
を有することを特徴とするブラシレスモータの制御装置。
【請求項２】
前記複数のメモリは、前記ブラシレスモータが１回転するときに前記センサから出力される信号のエッジ数より多いことを特徴とする請求項１に記載のブラシレスモータの制御装置。
【請求項３】
前記フリーランタイマの値がオーバーフローするか否かを監視するためのオーバーフローカウンタと、
前記フリーランタイマがオーバーフローする回転速度における前記オーバーフローカウンタの値をエッジの切り替え回数ごとに定めた推定テーブルと、
前記推定テーブルを参照して前記フリーランタイマの値がオーバーフローすると判定したときに前記回転周期算出部に回転周期を算出する指令を出力するオーバーフロー推測部と、
を有することを特徴とする請求項１または２に記載のブラシレスモータの制御装置。
【請求項４】
前記推定テーブルを参照して前記フリーランタイマの値がオーバーフローすると判定したときに、前回算出した回転周期を維持することを特徴とする請求項３に記載のブラシレスモータの制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブラシレスモータの回転制御を行う制御装置に関する。
【背景技術】
【０００２】
ブラシレスモータの回転制御を行う場合には、回転子に回転式のエンコーダを取り付けて、エンコーダの出力信号から回転子の回転位置を検出し、この回転位置の信号に基づいて固定子のコイルの通電制御を行うことが知られている。ここで、ブラシレスモータをサーボ制御する場合などには、ブラシレスモータの回転速度を調べ、外部から入力される速度指令値と、実際の回転速度が一致するように制御を行っている。このため、従来のブラシレスモータの制御装置では、エンコーダが出力するパルス信号のパルス数をタイマでカウントし、１周期分のカウント値に達するまでの時間から回転速度を算出していた（例えば、特許文献１参照）。
【特許文献１】特開平４−４６５８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来の方法では、ブラシレスモータが１周期分回転した後でないと回転数を更新することができなかった。回転速度を更新する処理が１回転ごとに行われるので、ブラシレスモータの回転速度が急激に変化したとき、特に回転速度が急激に小さくなったときには回転速度の検出が遅れることがあった。
また、タイマがオーバーフローしていない範囲で取得したカウント値でないと、正しい回転の周期を測定することができないので、ブラシレスモータの回転数が低速回転の場合など、１回転する前にタイマのカウント値がオーバーフローしていたときには、オーバーフローしたカウント値に基づいて回転数が算出されることになり、正しい回転速度が得られなかった。
この発明は、このような事情に鑑みてなされたものであり、速度変動によらずに回転速度を素早く測定できるようにすることを主な目的とする。
【課題を解決するための手段】
【０００４】
上記の課題を解決する本発明の請求項１に係る発明は、ブラシレスモータの回転制御を行うための制御装置であって、時間経過と共に一定の割合でカウント値を増加又は減少させ、所定のカウント値になったらリセットを行うフリーランタイマと、前記ブラシレスモータの回転子の回転位置を検出するセンサから出力される信号のエッジごとに、前記フリーランタイマのカウント値を格納可能な複数のメモリと、前記ブラシレスモータの回転周期を算出する指令を受け取ったときの前記フリーランタイマのカウント値と、前記ブラシレスモータの１回転前の前記フリーランタイマのカウント値とから前記ブラシレスモータの回転周期を算出する回転周期算出部と、を有することを特徴とするブラシレスモータの制御装置とした。
このブラシレスモータの制御装置では、ブラシレスモータが１回転する前であっても、メモリに格納しておいた１周期前のカウント値を読み出して現在のカウント値との差を演算することでブラシレスモータの回転周期が演算される。
【０００５】
請求項２に係る発明は、請求項１に記載のブラシレスモータの制御装置において、前記複数のメモリが、前記ブラシレスモータが１回転するときに前記センサから出力される信号のエッジ数より多いことを特徴とする。
このブラシレスモータの制御装置では、ブラシレスモータが１回転するときにセンサから出力される信号のエッジ数より多いメモリを搭載しているため、１周期前のカウント値を読み出すことができる。
【０００６】
請求項３に係る発明は、請求項１または２に記載のブラシレスモータの制御装置において、前記フリーランタイマの値がオーバーフローするか否かを監視するためのオーバーフローカウンタと、前記フリーランタイマがオーバーフローする回転速度における前記オーバーフローカウンタの値をエッジの切り替え回数ごとに定めた推定テーブルと、前記推定テーブルを参照して前記フリーランタイマの値がオーバーフローすると判定したときに前記回転周期算出部に回転周期を算出する指令を出力するオーバーフロー推測部と、を有することを特徴とする。
このブラシレスモータの制御装置では、ブラシレスモータの回転数が小さくなってオーバーフローするような場合に、推定テーブルを参照することで任意のタイミングであってもオーバーフローするか否かを判定することができるようになる。そして、オーバーフローしない場合だけ回転周期を算出する。
【０００７】
請求項４に係る発明は、請求項３に記載のブラシレスモータの制御装置において、前記推定テーブルを参照して前記フリーランタイマの値がオーバーフローすると判定したときに、前回算出した回転周期を維持することを特徴とする。
このブラシレスモータの制御装置では、オーバーフローチェックカウンタがオーバーフローする場合、つまりフリーランタイマがオーバーフローするときには、回転周期を更新せずに前回算出した結果を維持するので、回転周期に基づいて制御などを行う場合に制御不能になることが防止される。
【発明の効果】
【０００８】
本発明によれば、ブラシレスモータが１回転する前に回転周期を算出することができる。例えば、ブラシレスモータを回転速度制御する場合には、回転速度をフィードバックする回数を増やすことができるので、応答性を高めることができる。推定テーブルを有する場合には、回転数が急激に下がったときでも１回転するまで待たなくてもフリーランタイマがオーバーフローするか否かを判定できるので、ブラシレスモータが１回転する前に回転周期を算出しようとしたときに、オーバーフローしたカウント値で回転周期を算出してしまうことを防げる。
【発明を実施するための最良の形態】
【０００９】
発明を実施するための最良の形態について図面を参照しながら詳細に説明する。
図１に示すように、ブラシレスモータの制御装置１は、ブラシレスモータ２の回転子の回転位置を位置検出センサ３で検出した結果に基づいて通電制御を行い、インバータ回路４の駆動信号を出力して、電源５からブラシレスモータ２に通電される電流を切り替え制御するものである。
【００１０】
ここで、ブラシレスモータ２は、固定子と回転子とを主な構成要素とする。固定子には、３本の固定子巻線Ｕ，Ｖ，Ｗが巻き回されてコイルが形成されている。固定子巻線Ｕ，Ｖ，Ｗは、いわゆるデルタ結線やスター結線で接続されている。回転子は、回転軸と、回転軸の周方向に沿って複数の磁極（Ｎ極及びＳ極）が配置される永久磁石とから構成されている。なお、ブラシレスモータは、インナーロータ型であっても良いし、アウターロータ型であっても良い。
【００１１】
位置検出センサ３は、例えば、ホール素子と電子回路を備えるホールＩＣ（Integrated Circuit）が用いられ、回転子の回転位置を検出可能な所定の位置に３つ配置されている。これら位置検出センサ３から出力されるセンサ信号の一例を図２に示す。図２は、横軸が機械角になっており、縦方向に３つの位置検出センサ３の出力を並べてある。各位置検出センサ３の出力は、周期的に信号レベルがハイレベル（Ｈ）とローレベル（Ｌ）とに切り替わっている。図２では、モータが機械角で３６０°回転する間に、各相に対応する位置検出センサ３の信号のエッジが３６回切り替わっている。
【００１２】
インバータ回路４は、例えば、６個のスイッチング素子を電源５の正負両端子間に２個ずつブリッジ接続して構成される回路であって、電源５から供給された直流電圧を、制御装置１から入力されたパルス幅変調波形信号（駆動信号）に基づく交流電圧に変換し、ブラシレスモータ２を駆動させる。
【００１３】
制御装置１は、位置検出センサ３のセンサ信号が入力されるセンサ信号変化検出部１１を有する。センサ信号変化検出部１１は、センサ信号のエッジを検出して、センサエッジ切り替わり回数カウント部１２に出力する。センサエッジ切り替わり回数カウント部１２には、１回転分センサエッジ切り替わり推測部１３と、オーバーフロー推測部１４とが接続されている。
１回転分センサエッジ切り替わり推測部１３は、センサエッジの切り替わり回数を判定する。図２のようにモータ１回転でセンサエッジが３６ステージある場合には、エッジが３６回検出されたか否かを判定する。判定結果は、センサエッジ切り替わり回数リセット部１５と、オーバーフローチェックカウンタリセット部１６と、カウント値格納推測部１７とに出力される。
【００１４】
センサエッジ切り替わり回数リセット部１５は、センサエッジ切り替わり回数を「０」にリセットすると共に、リセット信号をオーバーフロー推測部１４に出力する。オーバーフローチェックカウンタリセット部１６は、オーバーフローチェックカウンタを「０」にリセットすると共に、リセット信号をカウント値格納推測部１７に出力する。カウント値格納推測部１７は、オーバーフローチェックカウンタカウント部１８からオーバーフローチャックカウンタのカウント値を取得し、カウント値がオーバーフローしているか否かを判定する。オーバーフローしていない場合には、カウント値格納部１９に信号を出力する。
【００１５】
カウント値格納部１９は、フリーランタイマ２０のカウント値とセンサエッジ切り替わり回数とを関連付けてカウント値格納テーブルに格納する。フリーランタイマ２０は、例えば、図２に示すように、「００００ｈ」から「ＦＦＦＦｈ」までカウントアップする。カウント値格納テーブルは、センサエッジごとに用意された複数のメモリから構成され、各テーブルにフリーランタイマ２０のカウント値が１つずつ格納される。なお、図２には、カウント値格納テーブルのメモリとして、テーブル０〜テーブル３６が図示されているが、メモリの数はブラシレスモータ２が１回転する間に発生するエッジの切り替え回数より多く（この場合は３７以上）あれば良く、３７個に限定されない。
【００１６】
カウント値を格納した回数の情報は、カウント値格納回数カウント部２１に出力される。一方、カウント値格納推測部１７がオーバーフローと判定したときは、カウント値格納回数リセット部２２に信号を出力する。
【００１７】
オーバーフローチェックカウンタカウント部１８は、所定のカウント指令を受けてオーバーフローチェックカウンタをカウントアップする。カウント指令は、制御タイミング時間作成タイマ３１が一定の制御タイミング（例えば、１ｍｓ）で発生させるパルス信号に基づき、オーバーフローチェックカウンタカウントタイミング推測部３０が生成する。
オーバーフローチェックカウンタカウント部１８でカウントしたオーバーフローチェックカウンタのカウント値は、カウント値格納推測部１７と、オーバーフロー確定推測部３２とに受け渡される。
オーバーフロー確定推測部３２は、オーバーフローチェックカウンタの値がオーバーフローしたか否かを判定する。例えば、図２に示すように、オーバーフローチェックカウンタが１ｍｓごとに「０」から「６４３」までカウントアップ可能なカウンタである場合には、カウント値が「６４３」に達したらオーバーフローと判定する。オーバーフローと判定したら、カウント値格納回数リセット部２２にリセットを指令すると共に、オーバーフロー確定部３３のオーバーフロー確定フラグを「１」に設定させる。
【００１８】
さらに、制御装置１は、制御タイミング時間作成タイマ３１で作成された制御タイミングに基づいて、回転数算出タイミング推測部４１が回転数を算出するタイミングを作成する。このタイミングに従って、オーバーフロー確定済み推測部４２と、カウント値１回転分格納推測部４３とを経てオーバーフロー推測部１４でオーバーフローするか否かを判定する。そして、オーバーフロー推測部１４の判定結果に基づいて回転周期算出部４４が周期計算をし、回転数算出部４５で回転数が算出される。
【００１９】
オーバーフロー確定済み推測部４１は、オーバーフロー確定部３３でオーバーフローが確定されているか否かを判定する処理を実行するもので、カウント値１回転分格納推測部４３と回転数初期化部４６とに接続されている。オーバーフローが確定していたときは、回転数初期化部４６に回転数を初期化させ、オーバーフロー確定済みクリア部４７でオーバーフロー確定部３３のオーバーフロー確定フラグを「０」にリセットする。
カウント値１回転分格納推測部４３は、オーバーフローが確定していないときにカウント値格納回数リセット部２２と、カウント値格納回数カウント部２１のデータを受けて、カウント値が１回転分が格納されたか否かを判定する処理を行う。
【００２０】
オーバーフロー推測部１４は、フリーランタイマ２０のカウント値が１回転分保有されている状態で、センサエッジの切り替わり回数と、オーバーフローチェックカウンタのカウント値とを取得し、オーバーフローチェックカウンタがオーバーフローする回転数であるか否かを判定する。この際に使用する推定テーブルの一例を図３に示す。この推定テーブルは、センサエッジの切り替わり回数と、オーバーフローする直前のオーバーフローチェックカウンタのカウント値とを関連付けて格納してある。カウント値は、オーバーフローする直前の回転数（例えば、９３ｒｐｍ以下）に相当する値になっており、このカウント値以上の場合にはオーバーフローチェックカウンタがまだオーバーフローしていなくても、フリーランタイマ２０のカウント値はこの時点ですでにオーバーフローしている可能性があるため、センサエッジ切り替わり回数に対応するオーバーフローチェックカウンタの値からオーバーフローしない回転数になっていることを判定することでフリーランタイマ２０のカウント値の正しさを推定することができる。
具体的には、センサエッジの切り替わり回数が「３４」のときは、チェックカウンタの値が「６０６」であるので、センサエッジが３４回切り替わったときのチェックカウンタの値が６０６よりも小さい場合は、この回転速度以上であればオーバーフローチェックカウンタ及びフリーランタイマ２０がオーバーフローしないと判定できる。
【００２１】
回転周期算出部４４は、オーバーフローしないと判定されたときに処理を実行し、カウント値格納部１９のカウント値格納テーブルの値を読み込んで回転周期を算出する。回転周期算出部４４は、回転周期を算出するタイミングになったときは、１周期分前のフリーランタイマのカウント値を取り込んで回転周期を算出する。回転数算出部４５は、回転周期からブラシレスモータ２の回転数を算出する処理を実行する。
【００２２】
次に、この実施の形態の作用について説明する。
まず、回転数を算出するときの処理の具体例を図２を参照して説明する。例えば、センサエッジの切り替え回数が３６回目で算出のタイミングを迎えたときは、今回のカウント値（テーブル３６のカウント値）と、切り替え回数が３６回前のカウント値（テーブル０のカウント値）を読み込む。そして、両者の差に回転数算出タイミング推測部４１の制御サイクル（例えば、１０μｓ）を掛け算すると回転周期が算出される。
【００２３】
これに対して、ブラシレスモータ２の回転数が小さい場合や、回転の途中で急激に減速した場合には、図４に示すようにステージ０から１周期分のステージ３６に至るまでの間でカウント値がオーバーフローすることがある。この場合、図２と同様にして今回のカウント値（テーブル３６のカウント値）と、切り替え回数が３６回前のカウント値（テーブル０のカウント値）を読み込むと、フリーランタイマ２０が途中で一度リセットされていることから、正しい回転周期を算出することができなくなる。したがって、このような場合には、回転周囲を算出しないようにしている。このような処理を実現する制御装置１の処理を図５及び図６のフローチャートを主に参照して説明する。
【００２４】
まず、電源が投入されたら（ステップＳ１０１でＹｅｓ）、フリーランタイマ２０をスタートさせる（ステップＳ１０２）。さらに、制御タイミング時間作成タイマ３１をスタートさせる（ステップＳ１０３）。
【００２５】
センサ信号変化検出部１１がセンサ信号のエッジを検出したら（ステップＳ１０４でＹｅｓ）、センサエッジ切り替わり回数カウント部１２がセンサエッジ切り替わり回数を１つインクリメントする（ステップＳ１０５）。１回転分センサエッジ切り替わり推測部１３が１回転分のセンサエッジの切り替わり回数に到達したことを確認したら（ステップＳ１０６でＹｅｓ）、センサエッジ切り替わり回数リセット部１５がセンサエッジ切り替わり回数を「０」にリセットする（ステップＳ１０７）。さらに、オーバーフローチェックカウンタリセット部１６がオーバーフローチェックカウンタを「０」にリセットする（ステップＳ１０８）。この後、オーバーフローチェックカウンタがオーバーフロー判定値に到達したか否かを判定する（ステップＳ１０９）。この処理は、カウント値格納推測部１７が実施する。なお、先のステップＳ１０６で１回転分のセンサエッジの切り替わり回数に達していない場合には、ステップＳ１０７及びステップＳ１０８を経ずにステップＳ１０９が実施される。
【００２６】
オーバーフローチェックカウンタがオーバーフロー判定値に未到達であった場合には（ステップＳ１０９でＹｅｓ）、フリーランタイマ２０がオーバーフローしていないので、カウント値格納部１９がフリーランタイマ２０のカウント値をテーブルに格納し（ステップＳ１１０）、カウント値格納回数カウント部２１のカウント値格納回数を１つインクリメントしてから（ステップＳ１１１）、ステップＳ１０４に戻る。なお、オーバーフローチェックカウンタがオーバーフロー判定値に到達した場合（ステップＳ１０９でＮｏ）、カウント値格納回数リセット部２２がカウント値格納回数を「０」にリセットして（ステップＳ１１２）、ステップＳ１１０及びステップＳ１１１を経ずにステップＳ１０４に戻る。
【００２７】
一方、センサ信号のエッジが変化していないときは（ステップＳ１０４でＮｏ）、オーバーフローチェックカウンタのカウントタイミングであれば（ステップＳ１２０でＹｅｓ）、オーバーフローチェックカウンタカウント部１８がカウンタを１つインクリメントする（ステップＳ１２１）。この後、オーバーフローチェックカウンタがオーバーフロー判定値に到達している場合（ステップＳ１２２でＹｅｓ）、オーバーフロー確定部３３でオーバーフロー確定フラグを「１」にセットする（ステップＳ１２３）。さらに、オーバーフロー確定推測部３２の指令でカウント値格納回数リセット部２２がカウント値格納回数を「０」にリセットし（ステップＳ１２４）、ステップＳ１０４に戻る。
【００２８】
ステップＳ１２０でオーバーフローチェックカウンタのカウントタイミングでない場合（ステップＳ１２０でＮｏ）、端子Ａから進む図６のステップＳ１３０で回転数算出タイミング推測部４１で回転数算出のタイミングか調べる。
そして、回転数算出のタイミングでなければ（ステップＳ１３０でＮｏ）、そのままステップＳ１０４に戻る。回転数算出のタイミングであれば（ステップＳ１３０でＹｅｓ）、オーバーフロー確定済み推測部４２でオーバーフローが確定していない場合には（ステップＳ１３１でＹｅｓ）、カウント値を１回転分のセンサエッジ切り替わり回転数分だけテーブルに格納しているか判定する（ステップＳ１３２）。
【００２９】
センサエッジの切り替わり回数とオーバーフローチェックカウンタ値からフリーランタイマ２０がオーバーフローしない回転であると推定したら（ステップＳ１３３でＹｅｓ）、回転周期算出部４４がカウント値格納テーブルから回転周期を算出する（ステップＳ１３４）。
そして、回転数算出部４５が回転周期から回転数を算出する（ステップＳ１３５）。回転数の用途としては、ブラシレスモータ２の実際の回転数をフィードバックしてブラシレスモータ２を回転制御する場合があげられる。また、算出した回転数を他の装置に出力しても良い。
【００３０】
ステップＳ１３２でＮｏの場合、ステップＳ１３３でオーバーフローすると推定された場合には、端子Ｂから回転数を算出せずにステップＳ１０４に戻る。なお、ステップＳ１２３でオーバーフロー確定フラグが「１」にセットされた場合には、ステップＳ１３１からステップＳ１３６に進む。回転数初期化部４６が回転数を初期化し（ステップＳ１３６）、オーバーフロー確定済みクリア部４７がオーバーフロー確定フラグを「０」にする（ステップＳ１３７）。なお、ステップＳ１３６における回転数の初期値は、「０」でも良いし、エラー表示でも良い。以上の処理は、制御装置１がオフされるまで継続して実施される。
【００３１】
この実施の形態によれば、回転周期を算出する際に、そのときのフリーランタイマ２０のカウント値と、ステージの１周期分前のカウント値とから回転周期を算出するようにしたので、任意のタイミングで回転周期や回転数を算出することが可能になる。例えば、ステージ０に相当するタイミングで回転周期を算出した後に、回転子が半回転したステージ１８で再度回転周期を算出することが可能になる。
また、オーバーフローチェックカウンタがオーバーフローする前に推定テーブルを使ってフリーランタイマ２０のオーバーフローの有無を確認することができるようにした。推定テーブルを使用すると、回転子が１回転する前にフリーランタイマ２０のカウント値がオーバーフローするか否かを判定できるので、回転子が１回転する前のタイミングでフリーランタイマ２０のカウント値がオーバーフローしてリセットされた場合に、リセット後のカウント値を使って誤った回転周期や回転数を算出することがなくなる。
【００３２】
なお、本発明は、前記の実施の形態に限定されずに広く応用することができる。
オーバーフロー推測部推定テーブルの代わりに、エッジの切り替わり回数と、オーバーフローチェックカウンタのカウント値を関連付けたものであれば良く、図３に示す構成に限定されない。
また、オーバーフローするときに回転数を初期化する代わりに直前に算出した回転数を維持するように構成しても良い。このようにすると、回転速度制御などをする場合に、システムエラーが発生することを防止できる。
【図面の簡単な説明】
【００３３】
【図１】本発明の実施の形態に係るブラシレスモータの制御装置のブロック図である。
【図２】位置検出センサの出力と制御装置の処理を説明する図であって、オーバーフローチェックカウンタがオーバーフローしない場合を示す図である。
【図３】推定テーブルの構成を示す図である。
【図４】位置検出センサの出力と制御装置の処理を説明する図であって、オーバーフローチェックカウンタがオーバーフローした場合を示す図である。
【図５】制御装置の処理を説明するフローチャートである。
【図６】制御装置の処理を説明するフローチャートである。
【符号の説明】
【００３４】
１      制御装置
２      ブラシレスモータ
３      位置検出センサ
１４      オーバーフロー推測部（推定テーブル）
１８      オーバーフローチェックカウント部（オーバーフローチェックカウンタ）
１９      カウント値格納推測部（メモリ）
２０      フリーランタイマ
４４      回転周期算出部
【図１】
2008035624.tif 000003
【図２】
2008035624.tif 000004
【図３】
2008035624.tif 000005
【図４】
2008035624.tif 000006
【図５】
2008035624.tif 000007
【図６】
2008035624.tif 000008