解決策
コントローラ(NI 73xxモーションコントローラの製品群)は、フィードバック信号をその指令信号と比較して、モータがコマンドに従っていることを確認します。これらの値の違いは、追従誤差と呼ばれます。下図は、MAXで表示された追従誤差です。
モータを移動させるコマンドを送ったときに追従誤差のリミットを越えましたというとエラーがでるのはなぜですか?
モータが動いている間に許容されている調整可能な追従誤差のリミットがあります。リミットを超えると、このリミットのフォールトを報告するエラー条件が作成されます。追従誤差の状態は、機械的問題、不適切な入力/出力、および制御ループの不具合の組み合わせによって引き起こされる可能性があります。追従誤差の状態をデバッグするのは困難ですが、よくある一般的な原因は次のとおりです。
- 原因 1: エンコーダの入力分解能が正しく設定されていない
フィードバック精度を高めるため、NIモーションコントローラはエンコーダフィードバック信号のすべてのエッジを読み取ります。直交位相エンコーダを使用すると、エンコーダの各直交パルスに対して4つのエッジ(ラインAとBの立ち上がりと立ち下がり)が発生します。したがって、直交位相エンコーダの定格回転数が20002 PPR(Pulse Per Revolution)の場合、コントローラは実際には1回転あたり8000エッジを読み取ります。これらはそれぞれ1カウントと見なされます。
エンコーダの極性を逆にした場合、MAXで極性を切り替えることもできます。エンコーダの極性を変更するには、問題が発生している軸を選択し、エンコーダのエントリを見つけます。 エンコーダタブでは、AまたはBの極性を変更できますが、使用する場合はインデックスと両方を変更しないでください。
- 原因 2: コマンドまたはフィードバックの配線が逆になっている
正方向に移動するコマンドを送信した場合、フィードバック信号は正の動きを返しますか?
フィードバック信号が負の動きを示す場合、モータへのアナログ出力の極性またはエンコーダの位相(A、B)のいずれかが逆になっています。この状況を解決するには、適切な配線接続を確認する必要があります。
エンコーダの極性を逆にした場合、MAXで極性を切り替えることもできます。エンコーダの極性を変更するには、問題が発生している軸を選択し、エンコーダのエントリを見つけます。 エンコーダタブでは、AまたはBの極性を変更できますが、使用する場合はインデックスと両方を変更しないでください。
- 原因 3: サーボシステムで不適切なPIDループがチューニングされている
NIサーボモータコントローラは、さまざまなアプリケーションで使用できるように設計されているため、PID制御ループは各特性の状況に合わせて構成する必要があります。モータが期待どおりに応答するように、ループを適切にチューニングする(
Kp、Kd、Kiなどのパラメータを設定する)必要があります。移動コマンドでシステムが振動または不規則に動作する場合、制御ループが調整されていない可能性があります。モーションシステムのチューニングについては、
Understanding Servo Tuneを参照してください。
非常に高速な移動には、応答性の高いモーションシステムが必要です。高速または高加速のコマンドが定期的な追従誤差の発生につながる場合、モータ/ステージの設定は目標速度または加速に達していない可能性があります。(原因は、過度の摩擦、機械部品の位置ずれ、モータートルクの不足などがかなり広範囲に考えられます。)機械的な設定や速度/加速度の低速化が必要な場合があります。