不正確な閉ループステッパーの動作について



使用ソフトウェア:
使用ソフトウェア・バージョン: 7.6
使用ソフトウェア・バージョンに特化:
二次のソフトウェア: N/A
ハードウェア: Motion Control>>Controllers

問題: 閉ループステッパーの動作が正確ではない時、動作が正確になるようにステッピングモータを閉ループに設定していますが、モータを移動させるコマンドを送った時、適切な位置に移動しません。なぜこのようなことが起こってしまうのですか。

解決策: この挙動はエンコーダの分解能よりもステッピングモータの分解能が高いときによく発生します。(エンコーダのカウント数/回転がモータのステップ/回転よりも多いとき)この現象が起きる原因を次の例で説明します。

例のセットアップ
・ステッピングモータ
・NIモーションコントローラ
・200ステップ/回転のステッピングモータ
・20カウント/回転のエンコーダ
・Pull-in が3回と MAX 上で設定されている

開ループの場合

1.システムが9の位置に到達するようなコマンドを送信される

2. コントローラは9個のパルスを送信

3. モータが9ステップ移動する

4. コントローラに対して位置データを提供するフィードバックが無いため、コントローラはモータ
を動かす9個のパルスを送ったので、モータは正しい位置にいると想定します。

閉ループの場合
1. システムは9の位置に到達するようなコマンドを送信される

2. コントローラは9個のパルスを送信

3. モータが9ステップ移動する

4. コントローラは位置を確認して、まだ0の位置であると判断します。なぜならコントローラはまだエンコーダからのパルスを受け取ってないからです。

5.コントローラはモータが動かされていない(まだエンコーダからのパルスを受け取ってないので、0の位置のままです)ので、コントローラはステッピングモータに始めの Pull in として、もう9ステップ移動するようにコマンドを送ります。

6. これはモータに元の位置から18ステップ移動させることになります。

7. コントローラは位置を確認して、10の位置にいると判断します。なぜならコントローラは1個のエンコーダパルスしか受け取っていないからです。(1エンコーダパルスはステッピングモータのステップ数10ステップに相当)

8. コントローラはまだ位置10にいると判断しているので、コントローラは1つの反対のステップを二回目の pull-in の時に送ります。

9. これによりモータは始めの位置から17動いている事になります。

10. コントローラは位置を確認してまだ位置10にいると判断します。なぜならコントローラはまだ一つのエンコーダパルスしか受け取ってないからです。

11. コントローラはまだ位置10にいると判断しているので、コントローラはステッピングモータ逆向きに1ステップ動いて位置9に行くように最後の3回目の pull-in としてコマンドを送信します。

12. 最終的にモータは原点から16ステップ移動して、その位置にとどまります。なぜならコントローラは設定されたすべての pull-in を終了したからです。


下図は閉ループの時の場合を示しています。



コントローラは開ループモードでは受信した位置エラーを補正しないので、モータは常に同じコマンドを送信された位置に移動します。閉ループモードではモータは正確な位置を探そうとしている1エンコーダパルス内で移動をします。このような挙動をしないために下記の変更を推奨しています。

ハードウェア上の変更

ステップ/回転がエンコーダのカウント/回転よりも多くなるようにシステムを設定してください。この設定は以下の3つのうちの1つを行う事で可能になります。

1. マイクロステップの数を減らす
2. より高いエンコーダの分解能を使用
3. ステッパーモータのより低い分解能を使用

ソフトウェア上の変更

これらの設定は
Device and Interfaces»NI-Motion Devices»Default 73xx Configuration»Axis x»Axis Configuration»Stepper Settings より行うことが可能です。

1. MAX 上で Pull-in tries を 0 にして Pull-in を無効にしてください。
2. オープンループの設定を使用してください。
3. MAX 上の Pull-in ウィンドウを小さくして下さい。

関連リンク:

添付:





報告日時: 05/02/2007
最終更新日: 04/13/2010
ドキュメントID: 491HBUP9