サーボの指令とエンコーダ戻りが揃わない理由を解説

サーボの指令とエンコーダ戻りが揃わない理由を解説

執筆者:

カテゴリ:

位置を目標どおりに動かす装置をサーボと言います。その一周では、コントローラが目標を指令にし、電力を電流に変える箱がモータを回し、軸が動き、回転や位置を測るセンサの値がコントローラへ戻ります。そして、このセンサをエンコーダと言います。しかし、一周は、時計を合わせても、同じ瞬間には揃いません。

遅れは、計算に要する時間、電力の切り替え、機械のたわみ、読み取りの時刻に溜まります。ただし、同じ瞬間に揃える回路があるのではなく、次に読むまでのあいだに足りない分を先に足して、追従の誤差を仕様の中に収めています。なお、比例・積分・微分の意味はPID 制御、A 相と B 相の読み方はエンコーダの記事に渡し、ここでは一周の遅れと、それを補う場所だけを見ます。

この記事の要点

この節で解説すること
サーボループの四つの仕事指令の計算、電力への変換、動き、エンコーダ戻り
指令とエンコーダ戻りのずれサンプル時刻、計算の一周、PWM、量子化、測る場所。ネックは機械側が多い
フィードフォワードと遅れの補償電流を先に速く閉じ、足りない分を指令へ先に足す。決まった周波数の揺れも抑える
半閉と全閉の測り方モータ軸だけを測るか、負荷側のスケールで閉じるか

サーボループの四つの仕事

コントローラからエンコーダ戻りまでの一周を、サーボループと言います。この節では、その一周を四つの仕事に分けます。

一つ目は、指令を計算することです。コントローラは、目標と戻ってきた値の差から、次に出す指令を決めます。そのとき、値を一定の間隔で取る仕事をサンプリングと言い、その一回分をサンプルと言います。しかし、このサンプルで読んだ値は、多くの場合、次のサンプルの指令にしか間に合いません。この、計算そのものに要する時間の遅れを、一周遅れと言います。

二つ目は、指令を電力に変えることです。指令は電圧の数字のままではモータを回せません。そこで、直流を細かいオンとオフに刻み、平均の電圧を作る仕事が PWM です。また、上下のスイッチが同時に入らないように空ける隙間をデッドタイムと言います。ここにも、指令が出てから電流が乗るまでの遅れがあります。なお、モータの止め方と回生は、一周の遅れとは別の話で、DC モータの停止にあります。

三つ目は、動くことです。電流がトルクになり、軸と負荷が動きます。しかし、ねじやカップリングはばねのようにたわみます。そのため、モータ軸の位置と、テーブルの位置は、同じ瞬間の同じ数字ではありません。

四つ目は、位置を戻すことです。軸やテーブルの位置を、パルスや数字にしてコントローラへ返すのがエンコーダです。その数字の段差を量子化と言います。また、シリアルで返す方式では、線の上を走る時間も足されます。なお、Gray コードや A 相・B 相の読み方は、エンコーダの記事側です。ここでは、戻りの値がいつ届くかだけを見ます。

仕事担当このサンプルで起きること
指令を計算するコントローラ今読んだ値は、次の指令に乗る
電力に変えるアンプPWM とデッドタイムのあと、電流が乗る
動くモータと負荷たわみの分だけ、負荷が遅れる
位置を戻すエンコーダ量子化と伝送のあと、次のサンプルで読まれる

下の図は、この四つの仕事を一周で見たものです。図では、指令がアンプを出て、モータへ向かうところです。一方、エンコーダの戻りは、次のサンプルに届く側にあります。

サーボが一周する経路を、指令計算・電力変換・動き・エンコーダ戻りの四段で示した図です。各段にサンプル時刻の遅れが残り、指令と戻りが同じ瞬間には揃わないことを説明しています。画像では、指令がアンプを出てモータへ向かう途中で、戻りはまだコントローラに届いていません。
指令からエンコーダ戻りまでの一周。各段に、このサンプルでは間に合わない時間が残る。

図の各段の下にある短いラベルが、その場所に溜まる遅れです。具体的には、コントローラでは今のサンプルに間に合わないこと、アンプでは PWM とデッドタイム、負荷ではねじのばね、エンコーダでは量子化と線の時間です。ただし、時計がずれているという話ではありません。

💡 Tip

電流を閉じる周期の数字だけを見て、位置が間に合うと決めない方がよいです。電流の仕事はアンプの中で先に終わります。一方、位置のサンプル時刻は、その外側に残ります。

指令とエンコーダ戻りのずれ

一周の図で見た遅れを、どこに溜まるかで並べます。ただし、完全に揃わないのは、故障ではありません。離散のサンプルで一周している以上、今の瞬間の値は次の指令にしか使えません。

要因どこに溜まるか現場での大きさ
離散のサンプルコントローラ必ずある。そして消えない
計算の一周遅れコントローラ電流の周期より、位置の周期の方が長い
PWM とデッドタイムアンプ小さいことが多い
量子化と伝送エンコーダ分解能を上げても、時刻は残る
たわみと測る場所機械精密では、ここがネックになることが多い
1 ネックは、多くの現場で機械と「どこを測っているか」です。モータ軸のエンコーダと、テーブルの位置は同じものではありません。そのため、ねじとカップリングのばね、バックラッシュ、テーブルのたわみが、電気の一周より大きく残ります。ですから、分解能の桁を足しても、測っていない場所のばねは消えません。
2 計算の一周遅れは、消せず、隠せるだけです。このサンプルで読んだ位置は、次の指令にしか使えません。また、電流を閉じる周期を速くしても、位置を読む周期が遅ければ、位置の遅れは残ります。しかし、入れ子になっているので、壊れているのではありません。
3 PWM、デッドタイム、量子化、シリアルの伝送は、あるが小さいことが多いです。アンプとエンコーダのカタログの数字はここで効きます。ただし、精密位置決めの仕様を外す主因になることは、機械側より少ないです。

電流を先に閉じ、その外側で速度、その外側で位置を閉じます。これは、速いループが遅いループを内側で支える入れ子です。ですから、周期が違うのは取り違えではなく、役割の分け方です。

⚠️ よくある落とし穴

エンコーダの分解能を上げれば、指令と戻りは同じ瞬間に揃う、と思い込むことです。たしかに、量子化の段差は細かくなります。しかし、サンプルの時刻と、測っていないばねは残ります。ですから、桁を足す前に、どこを測っているかを見ます。

フィードフォワードと遅れの補償

遅れを補っているのは、同じ瞬間に揃える回路ではありません。そうではなく、次のサンプルで足りない分を先に足して、追従の誤差を仕様の中に飲む仕組みです。

まず、電流を閉じるループを先に速くします。一方、位置のループは、その外側で、より長い間隔で指令を出します。電流が先に終わっているので、位置の指令が来たとき、アンプ側はすでにトルクを出せる状態に近いです。ただし、電流周期を速くしても、位置が完全に追いつくわけではありません。つまり、追いつかせているのではなく、内側を先に終わらせているのです。

次に、目標の速度や加速度から、足りない分を指令に先に足します。つまり、戻りの誤差を待ってから足すのではなく、次に進む量を知っている側から足します。この足し方をフィードフォワードと言います。ただし、比例・積分・微分で誤差を詰める仕事の代わりではありません。そうではなく、誤差を詰める仕事の前に、分かっている遅れを先に埋める仕事です。なお、P・I・D の意味と、定常偏差が残る理由は、PID 制御の記事にあります。

機械が決まった周波数で揺れるときは、その周波数だけを抑えるフィルタを入れます。この抑え方をノッチと言います。ただし、一周の遅れを消すものではなく、共振が指令を増幅しないようにする仕事です。

補う仕事何をしているか消えないもの
電流を先に閉じる速いループを内側に置く位置のサンプル時刻
フィードフォワード次に進む量を指令へ先に足す測っていないばね
ノッチ決まった周波数の揺れを抑えるサンプルそのもの

多軸が同じ時刻の指令を飲むための時計合わせは、一周の遅れを消す話ではありません。それは、バスの上で時刻を揃える仕事で、産業用 Ethernet の分散クロックがそれに当たります。なお、指令がドライブに乗る一段は、産業用通信の EtherCAT の節です。一方、この記事の主題は、1 軸の一周です。

💡 Tip

フィードフォワードを強くしても、測っていない場所のばねは埋まりません。なぜなら、モータ軸の戻りだけを見ているあいだは、テーブル側の遅れは「無いもの」として指令に足されるからです。なお、測る場所を変える話は、次の節です。

半閉と全閉の測り方

精密な位置決めで効く工夫の中心は、ゲインの桁ではなく、どこを測って一周を閉じるかです。

モータの軸だけを測ると、ねじのばねが誤差に残ります。その結果、負荷は指令に遅れます。それなのに、コントローラはモータ軸が目標にいると見なします。この測り方を半閉ループと言います。一方、テーブル側にスケールを置き、負荷の位置で一周を閉じる測り方を全閉ループと言います。同じ指令でも、負荷位置の遅れ方が変わります。

下の図は、左がモータ軸だけ、右がテーブル側のスケールです。ねじのばねはどちらにもあります。しかし、違うのは、戻りがどこから来るかです。

モータ軸だけを測る半閉と、テーブル側のスケールで測る全閉を左右に並べた図です。ねじのばねが残ると負荷位置が指令に遅れることと、測る場所を負荷側へ移す補償を説明しています。画像では、指令が左右ともモータまで届いたところで、左はモータエンコーダ、右はテーブル側のスケールです。
左はモータ軸だけを測り、右はテーブル側のスケールで閉じる。ねじのばねはどちらにも残る。

図の左では、戻りはモータから出ています。一方、テーブルは指令に遅れたまま、測られていません。右では、戻りはテーブル側のスケールから出ています。ねじのばねは残りますが、一周は負荷の位置で閉じます。また、モータ軸の速度と、負荷の位置を二重に閉じる実装もあります。ただし、名前より先に見るのは、戻りがモータか、負荷かです。

正弦の 2 相を細かく分割して、分解能を稼ぐ仕事があります。この分割を内挿と言います。その結果、量子化の段差は細かくなります。しかし、サンプルの時刻は残ります。ですから、内挿は桁の話で、測る場所の話の代わりにはなりません。

スケールもねじも、温度で伸びます。ただし、熱は遅れの一周とは別の誤差なので、ここではこの一文で打ち切ります。なお、補償の本筋は、測る場所と、足りない分を先に足すことです。

⚠️ よくある落とし穴

全閉にした瞬間から、ゲインを半閉のまま上げられる、と思い込むことです。負荷側で閉じると、ねじのばねがループの中に入ります。そのため、安定の取り方が変わります。ですから、測る場所を変えたら、内側の電流と速度の閉じ方も、合わせて見ます。

まとめ

サーボの一周は、指令の計算、電力への変換、動き、エンコーダ戻りです。しかし、同じ瞬間には揃いません。遅れはサンプル時刻、計算の一周、PWM、量子化、機械のたわみに溜まります。そして、ネックは多くの現場で、機械とどこを測っているかです。一方、補っているのは完全同期ではなく、電流を先に閉じること、足りない分を先に足すこと、負荷側で一周を閉じることです。つまり、追従の誤差を仕様の中に飲む、が目標です。

A 相と B 相、Gray コードはエンコーダ、比例・積分・微分はPID 制御に続きます。なお、関節サーボも、この一周は同じです。

よくある質問

Q1. 電流周期を速くすれば、位置は完全に追いつくか

A. 追いつきません。電流を閉じる周期を速くすると、トルクは先に出せます。しかし、位置を読むサンプルの時刻は残ります。つまり、内側を先に終わらせているのであって、位置の一周を消しているのではありません。

Q2. エンコーダの分解能を上げれば、遅れは消えるか

A. 消えません。たしかに、量子化の段差は細かくなります。しかし、サンプルの時刻と、測っていないばねは残ります。ですから、桁を足す前に、戻りがモータ軸か負荷かを見ます。

Q3. 半閉と全閉は何が違うか

A. 測る場所です。半閉はモータ軸のエンコーダだけで一周を閉じます。その結果、ねじのばねが誤差に残ります。一方、全閉はテーブル側のスケールなど、負荷の位置で閉じます。ばねは残りますが、一周は仕事をしている場所で閉じます。

Q4. フィードフォワードは PID の代わりか

A. 代わりではありません。次に進む量を指令へ先に足す仕事です。一方、誤差を詰める比例・積分・微分は残ります。また、先に足しても、測っていない場所のばねは埋まりません。

Q5. ロボットの関節も同じ一周か

A. 同じです。関節のサーボも、指令、電力、動き、エンコーダ戻りです。ただし、セルの PLC が軌道を毎周期振る話ではありません。一周の遅れと測る場所は、アームでもテーブルでも共通です。

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です