(57)【要約】【課題】  高分解能化及び低コスト化の双方を図るようにする。【解決手段】  回転角検出装置Ａについては、モータＢの回転角を同モータに連結されたロータリーエンコーダＣに比べて高精度で検出する装置であって、エンコーダ信号ａをカウントするとともにカウント値ｎを出力するエンコーダカウンタ１０と、モータＢの速度指令値に対応した周期を有した基準クロックｄをカウントするとともにエンコーダ信号ａが示すタイミングでリセットするクロックカウンタ２０と、エンコーダカウンタ１０及びクロックカウンタ２０の各出力に基づいてモータＢの回転角α（α＝Ｋ１・ｎ・Ｍ＋Ｋ２・ｍ：Ｋ１，Ｋ２及びＭは定数）を演算して出力する角度演算出力部４０とを備えている。【選択図】図１
2011047764.tif 000002
【特許請求の範囲】
【請求項１】
モータの回転角を同モータに連結されたエンコーダに比べて高精度で検出する装置であって、前記エンコーダのエンコーダ信号をカウントするとともに当該カウント値ｎを出力するエンコーダカウンタと、同モータの速度指令値に対応した周期を有した基準クロックをカウントして当該カウント値ｍを出力するとともに前記エンコーダ信号が示すタイミングでリセットするクロックカウンタと、前記エンコーダカウンタ及びクロックカウンタの、各出力に基づいて同モータの回転角α（α＝Ｋ１・ｎ・Ｍ＋Ｋ２・ｍ：Ｋ１，Ｋ２及びＭは定数）を演算して出力する角度演算出力部とを備えたことを特徴とするモータの回転角検出装置。
【請求項２】
モータの回転角を同モータに連結されたエンコーダに比べて高精度で検出する装置であって、前記エンコーダのエンコーダ信号を同モータの方向指令に対応した正負方向にカウントするとともに当該カウント値ｎを出力するエンコーダカウンタと、同モータの速度指令値に対応した周期を有した基準クロックをカウントして当該カウント値ｍを出力するとともに前記エンコーダ信号が示すタイミングで逐次リセットするクロックカウンタと、前記エンコーダカウンタ及びクロックカウンタの各出力に基づいて同モータの回転角α（α＝Ｋ１・ｎ・Ｍ＋Ｋ２・ｍ：Ｋ１，Ｋ２及びＭは定数）を演算して出力する角度演算出力部とを備えたことを特徴とするモータの回転角検出装置。
【請求項３】
モータの回転角を同モータに連結されたエンコーダに比べて高精度で検出する装置であって、前記エンコーダのエンコーダ信号をカウントするとともに当該カウント値ｑを出力するエンコーダカウンタと、基準クロックをカウントして当該カウント値ｐを出力するとともに前記エンコーダ信号が示すタイミングでリセットする一方、当該リセット直前のカウント値Ｐを保持して出力するクロックカウンタと、前記エンコーダカウンタ及びクロックカウンタの各出力に基づいて同モータの回転角α（α＝Ｌ［ｑ＋（ｐ／Ｐ）］：Ｌは定数）を演算して出力する角度演算出力部とを備えたことを特徴とするモータの回転角検出装置。
【請求項４】
モータの回転角を同モータに連結されたエンコーダに比べて高精度で検出する装置であって、前記エンコーダのエンコーダ信号を同モータの方向指令に対応した正負方向にカウントするとともに当該カウント値ｑを出力するエンコーダカウンタと、基準クロックをカウントして当該カウント値ｐを出力するとともに前記エンコーダ信号が示すタイミングでリセットする一方、当該リセット直前のカウント値Ｐを保持して出力するクロックカウンタと、前記エンコーダカウンタ及びクロックカウンタの各出力に基づいて前記ステッピングモータの回転角α（α＝Ｌ［ｑ＋（ｐ／Ｐ）：Ｌは定数）を演算して出力する角度演算出力部と備えたことを特徴とするモータの回転角検出装置。
【請求項５】
請求項３又は４記載のモータの回転角検出装置において、前記角度演算出力部は、前記モータの速度指令値がモータ起動を示すときは、前記エンコーダ信号が最初のアクティブになる時点から次にアクティブになる時点までの起動期間中における前記クロックカウンタのカウント値であるスリット間クロック数Ｐstをモータ起動時の速度指令値に基づいて求め、当該起動期間中では前記クロックカウンタの出力に基づいて同モータの回転角α（α＝Ｌ（ｐ／Ｐst））を演算して出力する構成となっていることを特徴とするモータの回転角検出装置。
【請求項６】
請求項３又は４記載のモータの回転角検出装置において、前記角度演算出力部は、前記モータの速度指令値及び方向指令がモータ方向逆転を示すときは、当該方向逆転の時点から前記エンコーダ信号が最初にアクティブとなる時点までの方向逆転初期期間中では前記クロックカウンタのカウントを停止させる一方、前記エンコーダ信号が当該最初のアクティブになる時点から次にアクティブになる時点までの方向逆転期間中における前記クロックカウンタのカウント値であるスリット間クロック数Ｐrsをモータ方向逆転時の速度指令値に基づいて求め、当該方向逆転期間中では前記エンコーダカウンタ及びクロックカウンタの各出力に基づいて同モータの回転角α（Ｌ［ｑ＋（ｐ／Ｐrs）］）を演算して出力する構成となっていることを特徴とするモータの回転角検出装置。
【請求項７】
請求項１、３又は４記載のステッピングモータの回転角検出装置において、前記クロックカウンタは、前記モータの回転の異常又は緊急停止指令を示すエラー信号がアクティブになると、前記基準クロックのカウントを停止させるとともに当該カウント値を保持し、その後、当該エラー信号が非アクティブになると、当該カウントの停止を解除させて当該カウント値からカウントの再開を可能にする機能を有したことを特徴とするステッピングモータの回転角検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は各種モータの回転角を同モータに連結されたロータリーエンコーダにより高精度で検出することが可能なモータの回転角検出装置に関する。
【背景技術】
【０００２】
サーボモータドライブにおいては、直流モータ、ステッピングモータ又は交流モータ等の各種モータを負帰還制御するに当たり、同モータの回転角を検出してフィードバックするためにモータの回転角検出装置が備えられている。従来は同装置として光学式のロータリーエンコーダが一般的に使用されている。ロータリーエンコーダは、複数のスリットが周方向に等間隔で形成されたディスクと、ディスクの回転に伴ってスリットを通過／遮蔽される光を検知してパルス列として出力する光学センサとを有し、ステッピングモータのシャフトに連結した状態で同モータの回転変位量を電気信号のパルス列に変換するようになっている（例えば、特許文献１等がある）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−２８４３９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、モータの高分解能駆動に伴って高分解能型のロータリーエンコーダを用いた場合、スリット間隔が小さいことから、スリットの検知ミスや検知信号の遅延が生じ、これに伴って高度なエンコード処理が必要となり、全体として大幅なコスト高を招来するという問題が指摘されている。
【０００５】
本発明は上記した背景の下で創作されたものであって、その主たる目的とするところは、高分解能化及び低コスト化の双方を図ることが可能なモータの回転角検出装置を提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明のモータの回転角検出装置は、モータの回転角を同モータに連結されたエンコーダに比べて高精度で検出する装置であって、エンコーダのエンコーダ信号をカウントするとともに当該カウント値ｎを出力するエンコーダカウンタと、同モータの速度指令値に対応した周期を有した基準クロックをカウントして当該カウント値ｍを出力するとともにエンコーダ信号が示すタイミングで逐次リセットするクロックカウンタと、前記エンコーダカウンタ及びクロックカウンタの各出力に基づいて同モータの回転角α（α＝Ｋ１・ｎ・Ｍ＋Ｋ２・ｍ  但し、Ｋ１，Ｋ２，Ｍは定数）を演算して出力する角度演算出力部とを備えている。
【０００７】
なお、モータが双方向に回転する場合、エンコーダカウンタについては、エンコーダのエンコーダ信号を同モータの方向指令に対応した正負方向にカウントするとともに当該カウント値ｎを出力する機能を有したものを使用し、角度演算出力部については、エンコーダカウンタ及びクロックカウンタの各出力に基づいて同モータの回転角αを演算して出力する機能を有したものを使用すると良い。
【０００８】
この発明によると、モータの駆動に伴って基準クロックが入力又は生成される一方、エンコーダからエンコーダ信号が入力される。エンコーダ信号についてはエンコーダカウンタにてカウントされる一方、基準クロックについてはクロックカウンタにてカウントされ、エンコーダ信号がアクティブとなる毎にリセットされる。基準クロックはモータの速度指令値に対応した周期を有していることから、エンコーダ信号がアクティブになる時点から次にアクティブになる時点までの期間におけるクロックカウンタのカウント値ｍについてはモータ回転速度に関係なく一定の値（Ｍ）を示す。これは、エンコーダの隣り合うスリットの間に相当するモータ回転角θ０がＭで分割されることを意味している。基準クロックの１パルス分については上記モータ回転角θ０をＭで分割した分割角Ｋ（Ｋ＝θ０／Ｍ）に相当する。この結果、エンゴータカウンタのカウンタ値ｎ及びクロックカウンタのカウンタ値ｍに基づいてモータの回転角α（α＝Ｋ１・ｎ・Ｍ＋Ｋ２・m： 但し、Ｋ１，Ｋ２及びＭは定数）を求めることが可能になる。
【０００９】
このように同装置については、エンコーダによるモータの回転角の計測値をモータの速度指令値に基づいて補間する基本構成となっているので、モータの回転角をエンコーダに比べて高精度で検出することが可能になる。そのため、低分解能型のロータリーエンコーダを使用することができ、従来とは異なり高度なエンコード処理が不要になることから、高分解能化及び低コスト化の双方を図ることが可能になる。特に、モータを高分解能駆動するに当たり、その角度分割の均等性を保つようにすると、上記効果を一層大きくすることが可能になる。
【００１０】
本発明の別のモータの回転角検出装置は、エンコーダのエンコーダ信号をカウントするとともに当該カウント値ｑを出力するエンコーダカウンタと、基準クロックをカウントして当該カウント値ｐを出力するとともにエンコーダ信号が示すタイミングで逐次リセットする一方、当該リセット直前のカウント値Ｐを保持して出力するクロックカウンタと、エンコーダカウンタ及びクロックカウンタの各出力に基づいてモータの回転角α（α＝Ｌ［ｑ＋ｐ／Ｐ］）：但し、Ｌは定数）を演算して出力する角度演算出力部とを備えている。
【００１１】
なお、モータが双方向に回転する場合、エンコーダカウンタについては、エンコーダのエンコーダ信号を同モータの方向指令に対応した正負方向にカウントするとともに当該カウント値pを出力する機能を有したものを使用し、角度演算出力部については、エンコーダカウンタ及びクロックカウンタの各出力に基づいて前記ステッピングモータの回転角αを演算して出力する機能を有したものを使用すると良い。
【００１２】
この発明によると、モータの駆動に伴って基準クロックが入力又は生成される一方、エンコーダからエンコーダ信号が入力される。エンコーダ信号についてはエンコーダカウンタにてカウントされ、カウント値ｑが保持される。基準クロックについてはクロックカウンタにてカウントされ、エンコーダ信号がアクティブとなる毎にリセットされ、リセット直前のカウント値Ｐが保持される。
【００１３】
基準クロックについては一定周期を有していることから、カウント値Ｐについてはモータ回転速度に応じてバラツキが見られるが、モータの回転速度が大きく変化しないことから、エンコーダ信号が時間的に相前後してアクティブとなる場合のカウント値Ｐ１、Ｐ２については互いに非常に近い値となる。例えば、エンコーダにスリットＳ１、Ｓ２、Ｓ３・・・・が順次的に配列され、モータが回転してスリットＳ１を経てスリットＳ２を通過した際に得たカウント値ＰがＰ１であるとすると、スリットＳ３を通過した際に得られるカウント値ＰはＰ１に近い値になると予想される。現在のエンコーダカウンタのカウンタ値がｐ０であるとすると、モータはスリットＳ２を経てＬ×ｐ０／Ｐ１だけ進んだ位置まで回転したとものとみなすことができる。この結果、エンコーダカウンタのカウント値ｑ、クロックカウンタのカウント値ｐ、Ｐに基づいてモータの回転角α（α＝Ｌ（ｑ＋ｐ／Ｐ））を求めることが可能になる。
【００１４】
よって、同装置については、エンコーダによるモータの回転角の計測値を上記と同様に補間する基本構成となっているので、上記と全く同様の効果を奏することになる。
【００１５】
上記装置の角度演算出力部については、モータの速度指令値がモータ起動を示すときは、エンコーダ信号が最初のアクティブになる時点から次にアクティブになる時点までの起動期間中におけるクロックカウンタのカウント値であるスリット間クロック数Ｐstを同モータ起動時の速度指令値に基づいて求め、当該起動期間中ではクロックカウンタの出力に基づいてモータの回転角α（α＝Ｌ（ｐ／Ｐst））を演算して出力する構成とするのが好ましい。
【００１６】
この下位概念の発明によると、モータの起動の際にはモータの回転角を求めるのに必要なカウント値Ｐのデータがないことから、モータ起動時の速度指令値に基づいてスリット間クロック数Ｐstを求め、これをカウント値Ｐの代わりに用いるようにしている。よって、モータ起動時の回転角を上記と同様に求めることが可能になり、この点で高性能化を図ることが可能になる。
【００１７】
上記装置の角度演算出力部については、モータの速度指令値及び方向指令が方向逆転を示すときは、当該方向逆転の時点からエンコーダ信号が最初にアクティブとなる時点までの方向逆転初期期間中ではクロックカウンタのカウントを停止させる一方、エンコーダ信号が当該最初のアクティブになる時点から次にアクティブになる時点までの方向逆転期間中におけるクロックカウンタのカウント値であるスリット間クロック数Ｐrsをモータ方向逆転時の速度指令値に基づいて求め、当該方向逆転期間中では前記エンコーダカウンタ及びクロックカウンタの各出力に基づいて同モータの回転角α（Ｌ［ｑ＋（ｐ／Ｐrs）］）を演算して出力する構成とするのが好ましい。
【００１８】
この下位概念の発明によると、モータ方向逆転の際にはモータの回転角を求めるのに必要なカウント値Ｐのデータがないことから、モータ方向逆転時の速度指令値に基づいてスリット間クロック数Ｐrsを求め、これをカウント値Ｐの代わりに用いるようにしている。よって、モータ方向逆転時の回転角を上記と同様に求めることが可能になり、測定範囲が広がり高性能化を図ることが可能になる。
【００１９】
モータの回転の異常又は緊急停止指令を示すエラー信号を利用する場合の同装置は、次のようなクロックカウンタを用いると良い。即ち、基準クロックを上記の通りにカウントすることに加えて、モータの回転の異常又は緊急停止指令を示すエラー信号がアクティブになると、基準クロックのカウントを停止させるとともに当該カウント値を保持し、その後、当該エラー信号が非アクティブになると、当該カウントの停止を解除させて当該カウント値からカウントの再開を可能にする機能を有した構成にする。
【００２０】
この下位概念の発明によると、エラー信号がアクティブになると、クロックカウンタのカウントが強制停止することから、モータの回転が停止している状態で基準クロック等が入力されても、そのカウント値が変化せず保持される。その後、エラー信号が非アクティブになると、保持されたカウント値からカウントが再開される。
【００２１】
よって、モータの異常又は機械駆動系の緊急停止等により、モータがモータ制御とは無関係に停止した場合でもっても、同モータの回転角の検出に誤差が生じることがなく、この点で高性能化を図ることが可能になる。
【図面の簡単な説明】
【００２２】
【図１】本発明の第１の実施の形態に係るモータの回転角検出装置のブロック図である。
【図２】同装置の通常時の動作を説明するための主要信号のタイミングチャートである。
【図３】同装置の異常発生時の動作を説明するための主要信号のタイミングチャートである。
【図４】本発明の第２の実施の形態に係るモータの回転角検出装置のブロック図である。
【図５】同装置の通常時の動作を説明するための主要信号のタイミングチャートである。
【発明を実施するための形態】
【００２３】
以下、本発明の第１の実施の形態に係るモータの回転角検出装置（以後、単に回転角検出装置と称する。）を図１乃至図３を参照して説明する。
【００２４】
ここに例として挙げる回転角検出装置Ａは、図１に示すようにサーボモータの構成要素として使用されており、モータＢの回転角を検出し、この検出結果をフィードバック値としてホストＥに出力するようになっている。
【００２５】
まず、回転角検出装置Ａの構成を詳しく説明する前に、ホストＥ、ドライバＤ、モータＢ及びロータリーエンコーダＣについて簡単に説明する。
【００２６】
ホストＥについては、モータＢの駆動を負帰還制御する等の機能を有したサーボ制御装置であり、モータＢの駆動指令をデジタル信号として示した入力パルス信号ｂ、モータＢの方向指令をデジタル信号として示した回転方向信号ｃ及びモータＢの速度指令値をパルス列として示した基準クロックｄを生成するとともに、モータＢ等のオーバヒート等の異常を検出してこの検出結果をデジタル信号として示したエラー信号ｄ１を生成している。特に基準クロックｄは、モータＢの速度指令値に反比例した周期を有したクロック信号となっている。
【００２７】
なお、ホストＥにはサーボモータの駆動系に設けられた異常検出用の各種センサや異常報知用のスイッチ等から導かれたエラー信号ｄ２がモータＢの緊急停止指令として入力されている。
【００２８】
ドライバＤは、ホストＥから出力された入力パルス信号ｂ及び回転方向信号ｃに基づいてモータＢを回転させるためのモータドライブ励磁信号ｅを生成する装置である。
【００２９】
モータＢについては、３相ブラシレスＤＣモータ等の直流モータを用いており、同モータのシャフトの片側にロータリーエンコーダＣが連結されている。
【００３０】
ロータリーエンコーダＣについては、モータＢの回転の機械的変位量を電気信号に変換する回転角センサであり、モータＢに連結されたディスクｃ１と、ディスクｃ１の面上に等間隔に周方向に沿って形成されたスリットｃ２と、ディスクｃ１に対向配置された発光素子ｃ３と、発光素子ｃ３から出力された光をスリットｃ２を介して受光してエンコーダ信号ａを生成する受光素子ｃ４とを有している。隣り合うスリットｃ２の間隔に対応したモータＢの回転角はθ０で示すとすると、これはロータリーエンコーダＣの角度分解能ｍに等しい。
【００３１】
例えば、スリットｃ２の数を２００とすると、モータＢが１回転したとき２００個のパルス列がエンコーダ信号ａとして出力される。この場合、ロータリーエンコーダＣの角度分解能ｍは３６０°／２００＝１．８°となる。
【００３２】
次に回転角検出装置Ａの構成を説明する。同装置Ａは、モータＢの回転角をロータリーエンコーダＣに比べて高精度で検出する装置であって、エンコーダカウンタ１０、クロックカウンタ２０及び角度演算出力部３０を備えている。同装置Ａには、ホストＥから入力パルス信号ｂ、回転方向信号ｃ、基準クロックｄ及びエラー信号ｄ１が入力され、ロータリーエンコーダＣからエンコーダ信号ａが入力され、図外の異常検出用の各種センサ等からエラー信号ｄ２が入力されている。
【００３３】
エンコーダカウンタ１０については、エンコーダ信号ａ及び回転方向信号ｃを入力とした正負カウンタであり、ロータリーエンコーダＣのエンコーダ信号ａを回転方向信号ｃが示す正負方向にカウントするとともにカウント値ｎを角度演算出力部３０に出力している。即ち、回転方向信号ｃがモータＢの正転指令を示すときはカウントが正方向となり、エンコーダ信号ａがアクティブとなる度にカウントアップする一方、回転方向信号ｃがモータＢの逆転指令を示すときはカウントが負方向となり、エンコーダ信号ａがアクティブとなる度にカウントダウンする。また、エンコーダ信号ａがアクティブになったタイミングでクリア信号ｅを生成し、クロックカウンタ２０に出力している。
【００３４】
クロックカウンタ２０については、基準クロックｄ及びクリア信号ｅを入力とした正負カウンタであり、基準クロックｄをカウントするとともにクリア信号ｅが示すタイミング（本実施形態ではエンコーダ信号ａの立ち上がりエッジ）でリセットするようになっている。クロックカウンタ２０のカウント値ｍは角度演算出力部３０に出力されている。また、クロックカウンタ２０には基準クロックｄ及びクリア信号ｅに加えてエラー信号ｄ１及びエラー信号ｄ２が入力されている。エラー信号ｄ１又はエラー信号ｄ２がアクティブになると、基準クロックｄのカウントを停止させるとともにカウント値ｍを保持し、その後、エラー信号ｄ１又はエラー信号ｄ２がアクティブから非アクティブに戻ると、基準クロックｄのカウントの停止を解除させて保持された状態のカウント値ｍからカウントの再開が可能になっている。
【００３５】
本実施形態では、エラー信号ｄ１、エラー信号ｄ２が何れもＬレベル（異常なしを示している) である状態では、基準クロックｄが入力される度にカウントアップされる一方、エラー信号ｄ１、エラー信号ｄ２の少なくとも一方がＨレベル（異常ありを示している）である状態では、同信号が立ち上がったタイミングでカウント値を保持し、たとえ基準クロックｄのパルスが入力されてもカウント値が変化しないようになっている。
【００３６】
なお、エンコーダカウンタ１０のカウント値ｎとクロックカウンタ２０のカウント値ｍとの相関を合わせるために、モータＢの回転角度が基準位置に一致した状態でエンコーダカウンタ１０及びクロックカウンタ２０を０クリアしている。
【００３７】
角度演算出力部３０については、エンコーダカウンタ１０のカウント値n及びクロックカウンタ２０のカウント値ｍに基づいてモータＢの回転角α（α＝Ｋ１・ｎ・Ｍ＋Ｋ２・ｍ：但し、Ｋ１，Ｋ２，Ｍは定数）を演算する乗算加算器等であり、その演算値をデジタルの出力信号ｆとしてホストＥに出力している。
【００３８】
なお、上記演算式中の定数Ｋ１については、ロータリーエンコーダＣの隣り合うスリットＣ２の間隔をモータＢの回転角で示した数値である。定数Ｋ２については、基準クロックｄの 1クロック分をモータＢの回転角に換算した数値である。定数Ｍについては、モータ回転速度に関係なく一定の値を示すスリット間クロック数であり、具体的には、エンコーダ信号ａがアクティブになる時点から次にアクティブになる時点までの期間におけるクロックカウンタ２０のカウント値ｍに等しい数値である。
【００３９】
上記のように構成された回転角検出装置Ａの動作について図２及び図３を参照して説明する。なお、図２及び図３に示す例については、Ｋ１＝１．８、Ｋ２＝０．１８、Ｍ＝１０に設定されているものとする。
【００４０】
ホストＥから入力パルス信号ｂ及び回転方向信号ｃが基準クロックｄとともに出力されると、ドライバＤによりモータドライブ励磁信号ｇが生成され、この結果、モータＢが回転する一方、ロータリーエンコーダＣからエンコーダ信号ａが出力される。入力パルス信号ｂ、基準クロックｄ、回転方向信号ｃ及びエンコーダ信号ａが回転角度検出装置Ａに入力されると、同装置Ａは以下のような動作となる。
【００４１】
図２に示すように回転方向信号ｃが正転（ＣＷ回転：本実施形態ではＨレベル）を示すときは、基準クロックｄが入力される度にクロックカウンタ２０がカウントアップする。まず、時間ｔ１にてエンコーダ信号ａがアクティブになると、クロックカウンタ２０がリセットされ（図示例ではカウント値ｍの００９が０００に変化している。）、と同時にエンコーダカウンタ１０がカウントアップされる（図示例ではカウント値ｎの（ｎ−２）が（ｎ−１）に変化している。）。
【００４２】
時間ｔ２ではクロックカウンタ２０のカウントｍは５、エンコーダカウンタ１０のカント値ｎが（ｎ−１）であることから、角度演算出力部３０にて演算されるモータＢの回転角αの値は１．８・（ｎ−１）・１０＋０．１８・５で表される値となり、このデータが出力信号ｆを通じてホストＥに出力される。
【００４３】
時間ｔ３にてエンコーダ信号ａがアクティブになると、クロックカウンタ２０がリセットされ（図示例ではカウント値ｍの００９が０００に変化している。）、エンコーダカウンタ１０がカウントアップされる（図示例ではカウント値ｎの（ｎ−１）がｎに変化している。）。ただ、時間ｔ３にて基準クロックdの周期が短くなっており、モータＢの速度が大きくなっている。この場合であっても上記スリット間パルス数(図示例では１０)が変化することはない。
【００４４】
時間ｔ４から時間ｔ６までの期間においては基準クロックｄが出力されず、モータＢが停止している。時間ｔ５ではクロックカウンタ２０のカウントｍは６、エンコーダカウンタ１０のカウント値ｎがｎであることから、モータＢの回転角αの演算値は１．８・ｎ・１０＋０．１８・６で表される値となる。
【００４５】
時間ｔ６にて回転方向信号ｃが逆転（ＣＣＷ回転：本実施形態ではＬレベル）を示すときは、基準クロックｄが入力される度にクロックカウンタ２０がカウントダウンする。時間ｔ７ではクロックカウンタ２０のカウントｍは３、エンコーダカウンタ１０のカウント値ｎがｎであることから、モータＢの回転角αの演算値は１．８・ｎ・１０＋０．１８・３で表される値となる。
【００４６】
時間ｔ８にてエンコーダ信号ａがアクティブになると、クロックカウンタ２０がリセットされ（図示例ではカウント値ｍの００１が０００に変化している。）、と同時にエンコーダカウンタ１０がカウントダウンする（図示例ではカウント値ｎのｎが（ｎ−１）に変化している。）。
【００４７】
その後、回転方向信号ｃが正転を示す状態において、図３に示すように時間ｔ９にてエラー信号ｄ１又はｄ２がアクティブ（図示例ではＨレベル）になると、クロックカウンタ２０のカウントアップが基準クロックｄに関係なく停止し、カウント値ｍが保持される。例えば、時間ｔ１０では、クロックカウンタ２０のカウントｍは６、エンコーダカウンタ１０のカウント値ｎが（ｎ＋２）であることから、モータＢの回転角αの演算値は１．８・（ｎ＋２）・１０＋０．１８・６で表される値となる。
【００４８】
時間ｔ１１にてエラー信号ｄ１又はｄ２がアクティブから非アクティブ（図示例ではＬレベル）になると、エンコーダカウンタ１０及びクロックカウンタ２０のカウントが再開され、その後は上記と全く同様の動作となる。
【００４９】
このように回転角検出装置Ａによると、モータＢの回転角αをロータリーエンコーダＣに比べて高精度で検出することができることから、ロータリーエンコーダＣとして低分解能型のものを使用することができる。同装置Ａの構成が非常にシンプルであるだけでなく、従来とは異なりホストＥにおいて高度なエンコード処理が不要であることから、高分解能化及び低コスト化の双方を図ることが可能になる。特に、モータＢとしてステッピングモータを使用し、高分解能駆動するに当たりその角度分割の均等性を保つようにすると、モータＢの回転角αの検出精度が非常に高いというメリットがある。しかもモータＢのオーバヒート等の異常に伴ってモータＢが停止し、その後に同モータの駆動を正常に復帰させる際、特別な設定を行うことなく、モータＢの回転角αの検出を引き続き再開できることからこの面でも高性能化を図ることが可能となる。
【００５０】
次に、本発明の第２の実施の形態に係る回転角検出装置Ａ’について図４及び図５を参照して説明する。但し、上記装置Ａと大きく異なる点を中心として説明し、共通する部分についてはその説明を省略することにする。
【００５１】
同装置Ａ’は、エンコーダカウンタ１０’、クロックカウンタ２０’及び角度演算出力部３０’を備えている。同装置A’には、ホストＥから入力パルス信号ｂ、回転方向信号ｃ、基準クロックｄ’及びエラー信号ｄ１が入力され、ロータリーエンコーダＣからエンコーダ信号ａが入力され、図外の異常検出用の各種センサ等からエラー信号ｄ２が入力されている。特に基準クロックｄ’は、モータＢの速度指令値に関係なく一定周期を有したクロック信号となっている。
【００５２】
エンコーダカウンタ１０’については、ロータリーエンコーダCのエンコーダ信号ａを回転方向信号ｃが示す正負方向にカウントするとともにカウント値ｑを保持して角度演算出力部３０’に出力している。
【００５３】
クロックカウンタ２０’については、基準クロックｄ’をカウントしてカウント値ｐを角度演算出力部３０’に出力するとともに上記したクリア信号ｅが示すタイミングでリセットする一方、リセット直前のカウント値Ｐを保持して角度演算出力部３０’に出力している。
【００５４】
なお、角度演算出力部３０’にて生成された後述する信号ｈがアクティブであるときは、基準クロックｄ’のカウントを停止して保持するようになっている。
【００５５】
角度演算出力部３０’については、エンコーダカウンタ１０のカウント値ｑ及びクロックカウンタ２０のカウント値ｐ、Ｐに基づいてモータＢの回転角α（α＝Ｌ［ｑ＋（ｐ／Ｐ）］：Ｌは定数）を演算するマイクロプロセッサ等であり、その演算値をデジタルの出力信号ｆとしてホストＥに出力している。
【００５６】
なお、上記演算式中の定数Ｌについては、ロータリーエンコーダＣの隣り合うスリットＣ２の間隔をモータBの回転角で示した数値である。入力パルス信号ｂのパルス数に換算した値である。
【００５７】
演算出力部３０’には、エンコーダカウンタ１０’及びクロックカウンタ２０’の各出力に加えて、入力パルス信号ｂ及び回転方向信号ｃが入力されており、これに関連して以下の機能を発揮するようになっている。
【００５８】
角度演算出力部３０’は、入力パルス信号ｂに含まれるモータＢの速度指令値（入力パルス信号ｂのパルス周期）を検知し、速度指令値が０から有限値に変化してモータ起動を示したときはモータ起動時の速度指令値Ｖstに基づいてスリット間クロック数Ｐst（＝Ｖst・Ｑ０／Ｔｄ’）を求める。
【００５９】
スリット間クロック数Ｐstとは、モータＢの起動時にエンコーダ信号ａが最初にアクティブになる時点（図５中ｔ１参照）から次にアクティブになる時点（図５中ｔ３参照）までの起動期間（図５中Ｔ１参照）中におけるクロックカウンタ２０’のカウント値ｑの予測値である。上記演算式中のＴｄ’は基準クロックｄ’のクロック周期であり、Ｑ０はモータBを上記した回転角θ０だけ回転させるのに必要とする入力パルス信号ｂのパルス数である。
【００６０】
角度演算出力部３０’は、モータ起動後、エンコーダ信号ａ（又はエンコーダカウンタ１０’のカウント値ｑ）の変化を監視して上記した起動期間中か否かを検知し、起動期間間中であるときには、エンコーダカウンタ１０’のカウンタ値ｑに基づいてモータＢの回転角α（α＝Ｌ（ｐ／Ｐst））を演算し、その演算値を出力信号ｆとして出力する。なお、起動期間経過後は、モータＢの回転角αがＬ［ｑ＋（ｐ／Ｐ）］の演算式を用いて演算されることは上記した通りである。
【００６１】
角度演算出力部３０’は、入力パルス信号ｂｃに含まれるモータＢの速度指令値及び回転方向信号ｃに含まれるモータの方向指令（回転方向信号ｃのデジタル値）を検知し、モータ方向逆転を示すときは（即ち、速度指令値が有限値であり且つ回転方向が正転から逆転又は逆転から正転に変化したとき）、モータ方向逆転の時点（図５中ｔ１０参照）からエンコーダ信号ａが最初にアクティブとなる時点（図５中ｔ１１参照）までの方向逆転初期期間（図５中Ｔ２参照）中では信号ｈをアクティブにしてクロックカウンタ２０’のカウントを停止させる。
【００６２】
角度演算出力部３０’は、方向逆転初期期間（図５中Ｔ２参照）において、モータ方向逆転時の速度指令値Ｖrsに基づいてスリット間クロック数Ｐrs（＝Ｖrs・Ｑ０／Ｔｄ’）を求める。スリット間クロック数Ｐrsとは、モータ方向逆転後に最初にアクティブになる時点（図５中ｔ１１参照）から次にアクティブになる時点までの方向逆転期間中（図５中Ｔ３参照）におけるクロックカウンタ２０’のカウント値ｑの予測値である。
【００６３】
角度演算出力部３０’は、モータ方向逆転後、エンコーダ信号ａ（又はエンコーダカウンタ１０’のカウント値ｑ）の変化を監視して上記した方向逆転期間中か否かを検知し、方向逆転期間中であるときには、エンコーダカウンタ１０’のカウンタ値ｑに基づいてモータＢの回転角α（α＝Ｌ（ｑ＋p／Ｐrs））を演算し、その演算値を出力信号ｆとして出力する。なお、方向逆転期間経過後は、モータＢの回転角αがＬ［ｑ＋（ｐ／Ｐ）］の演算式を用いて演算されることは上記した通りである。
【００６４】
上記のように構成された回転角検出装置Ａ’の動作について図５を参照しつつ説明する。なお、図５に示す例については、Ｌ＝１．８に設定されているものとする。
【００６５】
ホストＥから入力パルス信号ｂ及び回転方向信号ｃが基準クロックｄ’とともに出力されると、ドライバＤによりモータドライブ励磁信号ｇが生成され、この結果、モータＢが回転する一方、ロータリーエンコーダＣからエンコーダ信号ａが出力される。入力パルス信号ｂ、基準クロックｄ’、回転方向信号ｃ及びエンコーダ信号ａが回転角度検出装置Ａ’に入力されると、同装置Ａ’は以下のような動作となる。
【００６６】
入力パルス信号ｂに含まれるモータ速度指令値がモータ起動を示したときは、モータ起動時のモータ速度指令値に基づいてスリット間クロック数Ｐstが求められる。時間ｔ１はモータ起動時を示している。ここでは求められたＱstが８であるとする。回転方向信号ｃが正転を示しているので、基準クロックｄ’が入力される度にクロックカウンタ２０’がカウントアッフ゜する。
【００６７】
エンコーダ信号ａが最初のアクティブになる時間ｔ１から次にアクティブになる時間ｔ３までの起動期間Ｔ１においてはＬ（p／Ｐst）の演算式を用いてモータＢの回転角αが演算される。例えば、時間ｔ２ではクロックカウンタ２０’のカウント値ｐは５であることから、角度演算出力部３０’にて演算されるモータＢの回転角αの値は１．８・（５／８）となり、このデータが出力信号ｆを通じてホストＥに出力される。
【００６８】
時間ｔ３ではエンコーダ信号ａがアクティブになり、これに伴ってクロックカウンタ２０’がリセットされ、リセット直前のカウント値Ｐ（図示例では００８）がクロックカウンタ２０’に保持される。と同時に、エンコーダカウンタ１０’がカウントアップされ、直前のカウント値ｑ（図示例ではｑ−２）がエンコーダカウンタ１０’に保持される。例えば、時間ｔ４では、クロックカウンタ２０’のカウント値ｐは３であることから、モータＢの回転角αの演算値は１．８［（ｑ−２）＋３／８］で表される値となる。
【００６９】
時間ｔ５ではエンコーダ信号ａがアクティブになり、クロックカウンタ２０’がリセットされ、リセット直前のカウント値Ｐ（図示例では００６）がクロックカウンタ２０’に保持される。と同時に、エンコーダカウンタ１０’がカウントアップされ、直前のカウント値ｑ（図示例ではｑ−１）がエンコーダカウンタ１０’に保持される。例えば、時間ｔ６では、クロックカウンタ２０’のカウントｐは４であることから、モータＢの回転角αの演算値は１．８［（ｑ−１）＋４／６］で表される値となる。
【００７０】
時間ｔ７ではエンコーダ信号ａがアクティブになり、クロックカウンタ２０’がリセットされ、リセット直前のカウント値Ｐ（図示例では００７）がクロックカウンタ２０’に保持される。と同時に、エンコーダカウンタ１０’がカウントアップされ、直前のカウント値ｑ（図示例ではｑ）がエンコーダカウンタ１０’に保持される。時間ｔ8にてモータ停止になるに伴って基準クロックd’にクロックが現れなくなると、クロックカウンタ２０’のカウントアップも停止し、カウント値p(図示例で００５)が保持される。例えば、時間ｔ９では、クロックカウンタ２０’のカウントｐは５であることから、モータＢの回転角αの演算値は１．８［ｑ＋５／７］で表される値となる。
【００７１】
時間ｔ１０において、入力パルス信号ｂｃに含まれる速度指令値及び回転方向信号ｃに含まれるモータの方向指令が方向逆転を示すと、モータ方向逆転時のモータ速度指令値に基づいてスリット間クロック数Prsが求められる。ここでは求められたスリット間クロック数Prsが７であるとする。方向逆転初期期間Ｔ２中では信号ｈがアクティブされ、基準クロックｄ’の入力に関係なくクロックカウンタ２０’のカウントが停止し、カウント値ｐが保持されたままとなる（図示例では００５）。
【００７２】
時間ｔ１１において、エンコーダ信号ａがアクティブになると、方向逆転初期期間Ｔ２を抜けて方向逆転期間Ｔ３に入り、これに伴ってクロックカウンタ２０’がリセットされる。回転方向信号ｃが逆転を示していることから、基準クロックｄ’の入力に従ってエンコーダカウンタ１０’がカウントダウンする（図示例の００１、００２・・の符号は負である）。また、クロックカウンタ２０’のリセットと同時に、エンコーダカウンタ１０’がカウントダウンし、直前のカウント値ｑ（図示例ではｑ＋１）がエンコーダカウンタ１０’に保持される。例えば、方向逆転期間Ｔ３中の時間ｔ１２では、クロックカウンタ２０’のカウントｐは−２であることから、モータＢの回転角αの演算値は１．８［（ｑ＋１）−２／７］で表される値となる。
【００７３】
なお、図示されていないが、時間ｔ１２以後にエンコーダ信号ａがアクティブになると、方向逆転期間Ｔ３を抜ける。その後は上記と全く同様の動作となる。
【００７４】
このように回転角検出装置Ａ’による場合も上記した回転角検出装置Ａと同様のメリッ
トが得られる。
【００７５】
なお、本発明に係るモータの回転角検出装置については、サーボモータだけの適用に止まらず、モータの回転角を検出することが必要とされる装置等にも同様に適用可能である。また、モータの種類については直流モータだけでなく、ステッピングモータ又は交流モータ等の各種モータにも同様に適用可能である。さらにロータリーエンコーダの種類等が上記実施形態に限定されることがないのは当然であり、同装置をロータリーエンコーダ、ホスト又はドライバと別体にするのではなく、その構成部の全部又はその一部をロータリーエンコーダ、ホスト又はドライバ等に組み込んで利用する形態であっても良い。また、モータの回転が一方向である形態であっても回転方向信号を使用しないだけで上記と全く同様に同モータの回転角を検出可能である。また、基準クロックの周波数については、検出分解能に応じて適宜設定すると良い。ホストから出力された速度指令値に基づいて可変周波数発振器等を用いて基準クロックを生成する形態でもかまわない。
【００７６】
エンコーダカウンタについては、ロータリーエンコーダのエンコーダ信号をカウントしてモータの回転角を検出することが可能である限り、その構成が問われず、磁気エンコーダ等を使用しても良い。ロータリーエンコーダが多相出力型であるときには、位相の異なるエンコーダ信号での位相差を検出して回転方向信号を作成してこれを利用しても良い。
【００７７】
クロックカウンタ及び角度演算出力部については、同一機能を有する限り、その構成が問われない。
【符号の説明】
【００７８】
Ａ，Ａ’  回転角検出装置
１０，１０’  エンコーダカウンタ
２０，２０’  クロックカウンタ
３０，３０’  角度演算出力部
Ｂ  モータ
Ｃ  ロータリーエンコーダ
Ｄ  ドライバ
Ｅ  ホスト
【図１】
2011047764.tif 000003
【図２】
2011047764.tif 000004
【図３】
2011047764.tif 000005
【図４】
2011047764.tif 000006
【図５】
2011047764.tif 000007