(57)【要約】【課題】エンコーダの検出位置データのビット誤りを検出し、真の位置データを推定する。【解決手段】今回サンプリング時点での位置データと前回サンプリング時点での位置データの変化【外１】2004037246.tif 000005が、モータの使用時の最大回転速度とエンコーダ分解能とサンプリング周期より決まる最大位置変化量ｐｏｓ＿ｌｅｖｅｌよりも大きく、かつエンコーダ分解能と位置データの変化の差【外２】2004037246.tif 000006が最大位置変化量よりも大きいとき、今回サンプリング時点での位置ｐｏｓ＿ｂ中に大きなビット誤りがあったと判定し、現時点の真の位置データの推定値を計算する。【選択図】　　図１
2004037246.tif 000002
【特許請求の範囲】
【請求項１】
エンコーダで検出された位置データより位置および速度フィードバックを作成し、位置指令および速度指令と位置および速度フィードバックの偏差よりモータ駆動のためのコマンドを作成するＡＣサーボドライバにおいて、
モータの実際の使用時の最大回転速度とエンコーダの分解能より、サンプリング周期間の最大位置変化量を算出し、
今回サンプリング時点での位置データと前回サンプリング時点での位置データの差分を算出し、
前記差分が前記最大位置変化量よりも大きく、かつエンコーダ分解能と前記差分の差が前記最大位置変化量よりも大きい場合、今回サンプリング時点の位置データに大きなビット誤りがあると判定し、今回サンプリング時の本当の位置データの推定値を、前回サンプリング時の位置データと前回サンプリング周期の速度とサンプリング周期により計算する、エンコーダ検出位置データのビット誤り検出・推定方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、エンコーダで検出された位置データより位置および速度フィードバックを作成し、位置指令および速度指令と位置および速度フィードバックの偏差よりモータ駆動のためのコマンドを作成するＡＣサーボドライバに関し、特にエンコーダで検出した位置データがＡＣサーボドライバに送られた途中に電磁ノイズ等に影響されて生じる、エンコーダ検出位置データのビット誤りの検出・推定方法に関する。
【０００２】
【従来の技術】
図３にＡＣサーボドライバの概略回路図を示す。位置制御モードを例とする。位置指令と位置フィードバックとの偏差を求め、速度指令を作成し、この速度指令と速度フィードバックとの偏差を求め、モータを駆動する電流指令を作成する。この電流指令で、モータの位置を調整して、指令位置に駆動する。したがって、位置指令を決めると、速度指令の絶対値と方向が位置フィードバックに決められ、電流指令の絶対値と方向が速度フィードバックに決められる。
【０００３】
【発明が解決しようとする課題】
ＡＣサーボドライバの実際の使用中、エンコーダ配線のシールド漏れ等のため、エンコーダで検出した位置データがＡＣサーボドライバに送られた途中、電磁ノイズに影響され、ＡＣサーボドライバが受けた位置データ中、ビット誤りが発生する場合がある。
【０００４】
例えば、１６ビットエンコーダでモータの位置を測定する場合（エンコーダが出力する位置データは０ｘ００００〜０ｘＦＦＦＦ　パルス／一回転）、指令位置が０ｘ００００（モータを原点位置に調整）で、現時点モータの本当位置が原点付近の０００００００００１００００００（バイナリ）＝０ｘ００４０であり、位置偏差、速度偏差による電流指令が小さくなって、図４（１）中の矢印方向で位置微調整を行う。しかし、ノイズのため、ＡＣサーボドライバが受けた位置データ中、１４ビット目に誤りが発生し、０１０００００００１００００００（バイナリ）＝０ｘ４０４０となった場合（図４（１）参照）、位置偏差と速度偏差がいきなり大きくなって、電流指令も突然に増えて、従来回転方向で位置大幅調整を行って、モータ軸の急激ショックが発生する。
【０００５】
もし１５ビットの誤りが発生すれば、ＡＣサーボドライバの受けた位置データが１００００００００１００００００（バイナリ）＝０ｘ８０４０となった（図４（２）参照）。位置偏差、速度偏差が逆転方向で増えて、電流指令もいきなり逆転方向で大きくなって、モータが図４（２）中に矢印方向で大幅調整を行って、もっと激しいショックが発生する。
【０００６】
さらに、上記ビット誤りが連続発生したら、機械の運転が狂ったり、機械が破損するなどの危険がある。
【０００７】
図５、図６、図７はそれぞれエンコーダの検出位置データビット誤りのための瞬間的な逆転、瞬間的な正転、瞬間的な正逆転の実験結果を示している。図５〜図７中、チャネル１はＡＣサーボドライバから出力されるエンコーダのサンプリング周期間の位置増分値（９３６パルス／Ｖ）の信号で、チャネル２はＡＣサーボドライバのエンコーダからの通信の有無を表す信号で、「ＨＩ」がエンコーダとの通信一時中断、「ＬＯ」はエンコーダとの通信正常、チャネル３はＡＣサーボドライバから出力される位置データのビット誤りの有無を示す信号で、「ＨＩ」が位置データにビット誤り発生、「ＬＯ」が位置データにビット誤りなし、を示している。
【０００８】
本発明は、上記課題を解決するためになされたものであり、ＡＣサーボドライバが電磁ノイズやエンコーダの配線不良などの影響により、エンコーダから受けた位置検出データにビット誤りが発生した場合でも、真の位置データを推定することができ、モータ回転中の誤動作を防止することができる信頼性の高い、エンコーダの検出位置データのビット誤り検出・推定方法を提供することを目的とする。
【０００９】
【課題を解決するための手段】
まず、モータの実際の使用時の最大回転速度とエンコーダの分解能より、サンプリング周期間の最大位置変化量を算出する。次に、今回サンプリング時点での位置データと前回サンプリング時点での位置データの差分を算出する。該前記差分が前記最大位置変化量よりも大きく、かつエンコーダ分解能と前記差分の差が最大位置変化量よりも大きい場合、今回サンプリング時点の位置データに大きなビット誤りがあると判定し、今回サンプリング時の本当の位置データの推定値を、前回サンプリング時の位置データと前回サンプリング周期の速度とサンプリング周期により計算する。
【００１０】
電磁ノイズやエンコーダに配線不良等のため、ＡＣサーボドライバが受けた、エンコーダで検出した位置データ中にビット誤りが発生してしまった場合、サンプリング周期毎に今回と前回の位置データの差分値をチェックして、あるレベル以上であることを判断することにより、現時点の位置データが異常データとされ、使われず、真の位置データを推定する。この推定された位置データを位置フィードバックとすることにより、大きな瞬間的な振動や急速ショックなどが回避でき、モータが円滑に回転できる。
【００１１】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して説明する。
【００１２】
図１は本発明の一実施例のエンコーダ検出位置データのビット誤り検出・推定方法を示すフローチャートである。なお、図中１〜９はフローチャートの各ステップを表す。
【００１３】
１．　　モータの実際の使用時の最大回転速度Ｖｍａｘ（ｒ／ｍｉｎ）とエンコーダ分解能Ｎ（パルス／１回転）より、サンプリング周期ｈ（秒）の間の最大位置変化量を算出し、この最大変化量を位置データのビット誤りを検出する基準ｐｏｓ＃ｌｅｖｅｌとする（ステップ１）。
【００１４】
ｐｏｓ＃ｌｅｖｅｌ＝Ｖｍａｘ　×Ｎ×ｈ／６０　　　　　　　（１）
２．　　前回サンプリング周期間の速度値をＶｂ、エンコーダから現時点の位置データをｐｏｓ＃ｂとする（ステップ２）。
【００１５】
３．　　今回サンプリング時点での位置データ（ｐｏｓ＃ｂ）と前回サンプリング時点での位置データ（ｐｏｓ＃ａ）との変化量（差分）であるｐｏｓ＃ｓ１と、エンコーダの分解能Ｎと前記ｐｏｓ＃ｓ１との変化量（差分）であるｐｏｓ＃ｓ２の絶対値を算出する（ステップ３）。
【００１６】
４．
【００１７】
【外１】
2004037246.tif 000003
がｐｏｓ＃ｌｅｖｅｌ以下かどうか判定する（ステップ４）。
【００１８】
５．　　「Ｙｅｓ」であれば、位置データｐｏｓ＃ｂ中大きなビット誤りがないと判定する（ステップ５）。
【００１９】
６．　　ステップ４の判定で「Ｎｏ」であれば、
【００２０】
【外２】
2004037246.tif 000004
がｐｏｓ＃ｌｅｖｅｌ以下かどうか判定する（ステップ６）。
【００２１】
７．　　「Ｙｅｓ」であれば、原点通過で、大きなビット誤りでないと判定する（ステップ７）。
【００２２】
８．　　ステップ６で「Ｎｏ」であれば、位置データｐｏｓ＃ｂ中に大きなビット誤りがあると判定し、現時点の真の位置データの推定値ｐｏｓ＃ｂｓを計算し、位置データｐｏｓ＃ｂとする（ステップ８）。
【００２３】
ｐｏｓ＃ｂｓ＝ｐｏｓ＃ａ＋Ｖｂ×ｈ
９．　　位置データｐｏｓ＃ｂを制御系に送る（ステップ９）。
【００２４】
以上のように、本発明は、ＡＣサーボドライバにおいて、モータの実際の使用時の最大回転速度とエンコーダの分解能により、サンプリング周期間の最大位置変化量を算出し、今回サンプリング時点での位置データと前回サンプリング時点での位置データの差分を算出し、前記差分が前記最大位置変化量よりも大きく、かつエンコーダ分解能と前記差分の差が前記最大位置変化量よりも大きい場合、今回サンプリング時点の位置データに大きなビット誤りがあると判定し、今回サンプリング時の本当の位置データの推定値を、前回サンプリング時の位置データと前回サンプリング周期の速度とサンプリング周期により計算することを特徴としたものとなっている。
【００２５】
図２は本発明の効果を示すグラフである。図２に示すように、チャネル３で位置データビット誤りが発生しても、チャネル１で真の位置データを推定するので、モータが円滑に回転し、瞬間的な振動がなくなっていることがわかる。
【００２６】
したがって、本発明の実施例は上記の手段を用いることにより、ＡＣサーボドライバが電磁ノイズやエンコーダの配線不良などの影響により、エンコーダから受けた位置検出データにビット誤りが発生した場合でも、真の位置データを推定することができ、モータ回転中の誤作動を防止することができる信頼性の高いエンコーダの検出位置データのビット誤り検出・推定方法を提供することができる。
【００２７】
【発明の効果】
以上説明したように本発明によれば、ＡＣサーボドライバにおいて、モータの実際の使用時の最大回転速度とエンコーダの分解能により、サンプリング周期間の最大位置変化量を算出し、今回サンプリング時点での位置データと前回サンプリング時点での位置データの差分を算出し、前記差分が前記最大位置変化量よりも大きく、かつエンコーダ分解能と前記差分の差が前記最大位置変化量よりも大きい場合、今回サンプリング時点の位置データに大きなビット誤りがあると判定し、今回サンプリング時の本当の位置データの推定値を、前回サンプリング時の位置データと前回サンプリング周期の速度とサンプリング周期により計算するようにしていたので、ＡＣサーボドライバが電磁ノイズやエンコーダの配線不良などの影響により、エンコーダから受けた位置検出データにビット誤りが発生した場合でも、真の位置データを推定することができ、モータ回転中の誤作動を防止することができる信頼性の高いエンコーダの検出位置データのビット誤り検出・推定方法を提供できるという効果がある。
【図面の簡単な説明】
【図１】本発明の一実施例のエンコーダ検出位置データのビット誤り検出・推定方法を示すフローチャートである。
【図２】本発明の効果を示すグラフである。
【図３】ＡＣサーボドライバの制御ループの概略図である。
【図４】位置データのビット誤りの発生例を示す図である。
【図５】エンコーダの検出位置データビット誤りのためのモータの瞬間的な逆転を示す実験結果のグラフである。
【図６】エンコーダの検出位置データビット誤りのためのモータの瞬間的な正転を示す実験結果のグラフである。
【図７】エンコーダの検出位置データのビット誤りのためのモータの瞬間的な正逆転を示す実験結果のグラフである。
【符号の説明】
１〜９　　ステップ
【図１】
2004037246.tif 000007
【図２】
2004037246.tif 000008
【図３】
2004037246.tif 000009
【図４】
2004037246.tif 000010
【図５】
2004037246.tif 000011
【図６】
2004037246.tif 000012
【図７】
2004037246.tif 000013
【手続補正書】
【提出日】平成14年7月9日(2002.7.9)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
１．　モータの実際の使用時の最大回転速度Ｖｍａｘ（ｒ／ｍｉｎ）とエンコーダ分解能Ｎ（パルス／１回転）より、サンプリング周期ｈ（秒）の間の最大位置変化量を算出し、この最大変化量を位置データのビット誤りを検出する基準ｐｏｓ＿ｌｅｖｅｌとする（ステップ１）。


【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
ｐｏｓ＿ｌｅｖｅｌ＝Ｖｍａｘ　×Ｎ×ｈ／６０　　　　　　　（１）
２．　前回サンプリング周期間の速度値をＶｂ、エンコーダから現時点の位置データをｐｏｓ＿ｂとする（ステップ２）。


【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
３．　今回サンプリング時点での位置データ（ｐｏｓ＿ｂ）と前回サンプリング時点での位置データ（ｐｏｓ＿ａ）との変化量（差分）であるｐｏｓ＿ｓ１と、エンコーダの分解能Ｎと前記ｐｏｓ＿ｓ１との変化量（差分）であるｐｏｓ＿ｓ２の絶対値を算出する（ステップ３）。


【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】変更
【補正の内容】
【００１７】
【外１】
2004037246.tif 000014
がｐｏｓ＿ｌｅｖｅｌ以下かどうか判定する（ステップ４）。


【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】変更
【補正の内容】
【００１８】
５．　「Ｙｅｓ」であれば、位置データｐｏｓ＿ｂ中大きなビット誤りがないと判定する（ステップ５）。


【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００２０
【補正方法】変更
【補正の内容】
【００２０】
【外２】
2004037246.tif 000015
がｐｏｓ＿ｌｅｖｅｌ以下かどうか判定する（ステップ６）。


【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００２２
【補正方法】変更
【補正の内容】
【００２２】
８．　ステップ６で「Ｎｏ」であれば、位置データｐｏｓ＿ｂ中に大きなビット誤りがあると判定し、現時点の真の位置データの推定値ｐｏｓ＿ｂｓを計算し、位置データｐｏｓ＿ｂとする（ステップ８）。


【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】変更
【補正の内容】
【００２３】
ｐｏｓ＿ｂｓ＝ｐｏｓ＿ａ＋Ｖｂ×ｈ
９．　位置データｐｏｓ＿ｂを制御系に送る（ステップ９）。