モーションコントロールシステムでの追従誤差

更新しました Apr 18, 2023

使用製品

ハードウェア

  • PCI-7334
  • PXI-7332
  • PXI-7330
  • PXI-7348
  • PXI-7340

ソフトウェア

  • Measurement and Automation Explorer (MAX)
  • LabVIEW Base

ドライバ

  • NI-Motion

オペレーティング・システム

  • Windows

問題

モーションコントロールシステムの追従誤差(Following Error)とは何ですか?また、この誤差はモーションを使用したアプリケーションでどのように影響しますか?

解決策

コントローラ(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を参照してください。

 
  • 原因 4: 速すぎる移動コマンドを送っている
非常に高速な移動には、応答性の高いモーションシステムが必要です。高速または高加速のコマンドが定期的な追従誤差の発生につながる場合、モータ/ステージの設定は目標速度または加速に達していない可能性があります。(原因は、過度の摩擦、機械部品の位置ずれ、モータートルクの不足などがかなり広範囲に考えられます。)機械的な設定や速度/加速度の低速化が必要な場合があります。

追加情報

NI 73xxモーションコントローラには、位置および速度フィードバックを使用してコマンド信号を調整するためのオンボードPID制御ループが含まれています。このフィードバックは、アナログ電圧またはパルス列エンコーダ信号から読み取られ、モータの実際の位置/速度を示します。

Measurement&Automation Explorer(MAX)で回転ごとエンコーダカウント入力を設定すると、この値をエンコーダの物理分解能と間違えることがよくあります。代わりに、この設定では、コントローラによって読み取られるカウントの対応する数を保持する必要があります。これは、その解像度の4倍です。

 

許容される最大許容誤差の変更

MAXでは、軸ごとに次のエラーを設定できます。これを行うには、「 デバイスとインタフェース」→「PCI-73xx」→「デフォルト73xx設定」→「軸x」→「軌道設定」に進みます。また、画面の下部にある[ 詳細設定 ]タブに移動し、MAXに1-D対話又は2-D対話画面を使用して移動を指令します。 Advanced Trajectory Parametersグループで、 Following Errorというラベルの値を調整します。 LabVIEW用のFlexMotion APIを使用する場合は、「エラーに続いてロードする」VIを使用して、許可されたカウント数を設定します。

CまたはVisual Basicでプログラミングする場合は、 flex_load_follow_err関数を使用します。