不正確な閉ループステッパーの動作について
使用ソフトウェア:
使用ソフトウェア・バージョン: 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