RCサーボの「数値」にまつわるエトセトラ(歴史風味)

最近の…というか、ここ10年ぐらいのRCサーボにはいろんな数値が出てきていて、時々その意味を勘違いされてるケースもあるようなので、ヲイラの分かる範囲で解説してみようか…と。

とはいえ、いきなり全部の数字の解説を書いて辞書みたいになるのも不本意なので、歴史的な側面を眺めながら、徐々に何がどうなっていったのかをヲイラの知る範疇で解説する…というスタイルでやってみます。

●アナログ回路時代のRCサーボ動作原理

RCサーボを分解したことがある方ならご存知と思いますが、RCサーボの主な部品はこんな感じになります。

  • ケース
  • ギア
  • モータ
  • ポテンショ(よくRC業界でポテンショ「ン」と言う人がいますが、これは誤り)
  • 電子回路基板

さて、この時代に受信機に接続されたRCサーボは、どのように動作していたのでしょうか。若干端折った形になりますが、それは大まかには以下のようなものになります。

  1. 受信機から角度の指示をもらう、来なければ待つ(これは送信機からの指示が受信機を中継してやってきているとお考えください)
  2. もらった指示と、現在のポテンショが示す角度を比較する
  3. 違ってなければそのまま、違ってれば、モータに電気を流して回転させる
  4. モータにはギアがつながっており、ギアの先にはサーボホーン、およびポテンショがつながっているので、サーボホーンが回転し、同時にポテンショも回転する(=角度が変わる)
  5. 一定時間経過したらモータを止める
  6. 1へ戻る

送信機からは連続して指示がやってくるので、毎回このようにしてRCサーボは常に受信機からの指示に従おうと動作しました。そして、指示がなくなればモータへの通電もなくなりました。

専門的には、こういった動作のことを制御と呼び、連続した制御の間隔のコトを「制御周期」と言います。単位は周波数か時間です。1秒間に1回なら1Hz、0.5秒間に1回なら2Hzといった感じです。

実際には、詳しくは後述しますがこのころの制御周期は約20mSecほどでした。送信機から約20mSecの間隔で指示がやってきていたわけです。周波数に換算すると約50Hzになります。

●アナログ回路時代の動作の限界

さて、アナログ回路の時代、RCの無線技術においては、送信機からやってくる信号の間隔こそが制御周期でした。これは当時の方が策定されたものでヲイラはその理由に関しては詳しく存じませんが、基本的には当時の送信機はRC業界で一般によく言われる「PWM信号」をそのまま電波として送信していたため、恐らくは以下のようなコトになっていました。

このPWM信号は、ニュートラルを1.5mSecとし、0.9mSec〜2.1mSecの長さの電気的なパルスを以って信号としています(詳細はこちら)。これをチャンネル数だけ並べると、例えば8チャンネルで最大16.8mSecというコトになります。が、実際にはつながってしまうと前後の区別がつかなくなるので、若干の隙間を必要とします。仮に1チャンネル辺り0.1mSecの隙間を開けるとすると、17.5mSecになります。また、どこがチャンネルの始まりなのかを明確にするために、最初のチャンネルの前にさらに数mSecの大きな隙間を取る必要があったのでしょう。恐らく、これらを合計した形として、約20mSecに1回の割合で電波が送信されていました。

しかし、徐々に問題が発生してきました。その理由は以下のようなものになります。

例えばクルマを運転しているとき、目で見てハンドルを切り、次に目で見てハンドルを切るまでの時間が10秒掛かったらどうなるでしょう。恐らく道を外れて事故になります。当然、もっと素早く判断し操作をしているものと思います。

一般道と高速道路においてはどうでしょうか。より高速に走行する時の方が、より素早く判断し操作せねばならないこともまた、容易に理解可能なものと思います。これはまさに、人間による制御周期そのものと考えて頂いて構わないと思います。

RCサーボにおけるこの「事故」はハンチングの形で発生します。他の原因でハンチングが発生するコトもありますが、これはハンチング発生の大きな要因の一つです。

つまり、いかに制御周期を速くするのかが、制御を安定させるカギになるわけです。状況に応じてこの間隔を狭くしないと、ハンチングは抑えられないというコトになるわけです。

さて、RCサーボの動作は年々高速になっていきました。モータの性能向上もありますし、用途として高速な動作が必要なものもあり、ギア比を変更するなどして年々高速化していったわけです。

しかし、送信機からやってくる指示の間隔は容易には変更できませんでした。これは当時の技術の問題もありますし、互換性の問題もあったようです。これが徐々に大きな問題になっていったというのは、容易にご理解いただけると思います。

●ジャイロ等による、より高速な指示

RC業界にもジャイロ等の「機体側制御」の概念が導入されてきたのですが、ここでも少しややこしい問題が発生していました。

ジャイロ等はそれ自体が制御を行う存在なのですが、ジャイロ自身が何かをするワケではなく、最終的に何かを動かすのは結局RCサーボの仕事になります。RCサーボは受信機の代わりにジャイロからの指示を受けて動作するワケです。最初の頃はノンビリしていたようですが、ジャイロ自身の制御性能を上げようと思うとここでも同じ問題が顕在化し、ジャイロとしての制御周期を高速にしたくなって来たというワケです。いくつかのジャイロには、その設定があったと思います。

アナログRCサーボの場合、受けた指示の間隔がそのまま制御に繋がりますから、より高速に指示を出されればそれに追従しようとはします。しかしながら、約20mSec間隔で動くのを前提に設計されたものにそれ以上のペースで指示を与えると、当然過負荷になってしまいます。

具体的には、PWM信号の最大幅が2.1mSecであるコトから、これを3mSec程度の間隔で指示し続けるのが最大になります。周波数的には333Hzになりますね。実に6倍以上のペースで指示を受け続ければ、そりゃ壊れます。従って、これに対応する方式が求められる事になりました。

●デジタル回路によるRCサーボ動作原理の拡張

前述の問題を解決するため、制御周期を速くするために異なる手法が考え出されました。いわゆるデジタルRCサーボと呼ばれるものがそれになります。

このタイプのRCサーボにおいては、先の制御手順は若干変化し、このようになります。

  1. 受信機から角度の指示が来ているか確認する。来てなければ、その前にもらった指示を使う
  2. もらった指示と、現在のポテンショが示す角度を比較する
  3. 違ってなければそのまま、違ってれば、モータに電気を流して回転させる
  4. モータにはギアがつながっており、ギアの先にはサーボホーン、およびポテンショがつながっているので、サーボホーンが回転し、同時にポテンショも回転する(=角度が変わる)
  5. 1へ戻る

重要な変更点は1で、常に受信機からの指示を待つのではなく、RCサーボ自身のペースで制御周期を回し、その折々に受信機からの指示を確認するという方式に改められました。このため、制御周期を管理するのは送信機からRCサーボ自身に移行され、より高速に制御周期を回すことが可能になりました。

つまり、ここで送信機からの指示の周期とは別に、RCサーボ自身が持つ制御周期という概念が生まれたワケです。

なお、余談ですが実はこのままだと、今度は指示が止まった時にいつまでも以前の指示を元に動き続けてしまうコトから、ある程度の時間が経過しても指示がなければ、アナログ回路時代と同様にモータへの通電を止める機能も追加され、動作上の互換性が図られました。その関係もあり、アナログ回路時代の5番目の項はなくなりました。

このRCサーボ自身が持つ制御周期が充分に高速であれば、RCサーボ自体のハンチングも抑えられますし、ジャイロ等からの高速な指示にも耐えるコトが可能になるワケです。

●デジタル回路制御の変遷…専用回路からマイコン回路へ

前述のようなデジタル回路制御の場合、その実現方法には複数の方式がありました。一つ目は、完全に専用のデジタル回路を構築しそのチップに制御を任せる方法です。多くの初期のデジタルRCサーボはこの方式をとっていました。これは、当時のマイコンの能力では能力不足であり、あまり速い制御周期を確保できなかったのと、そもそも当時のマイコンの部品サイズが大きすぎ、RCサーボのケースに入らなかったなどの理由によります。

しかしながら、固定的な電子回路を用いるため特性の変更は回路そのものを弄る必要があり、条件に応じた柔軟な設定を行うことは概ね無理でした。

時代と共にマイコンの能力が向上し、小さくて能力の高いものが世に出回ると、今度は二つ目の方式としてマイコン制御によるものが登場しました。全ての要素をソフトウエアで管理/制御し前述の制御周期を回すようにできているため、ソフトウエアを変更するだけで、その特性の変更も比較的容易に行えるようになりました。

また、更により性能が向上したマイコンを使うことにより、いわゆるシリアル通信を行うコトができるようにもなりました。ソフトウエアに対して数値的な指示を外部から容易にできるようになったわけです。各種のゲインやニュートラルの位置等をRCサーボ自体に指示し記憶させるコトで、RCサーボの特性を変化させられる時代になってきました。

シリアル通信のメリットには別の面もあります。従来のPWM信号では最大2.1mSecもの時間を要していましたが、シリアル通信は充分に高速なため、一回の指示に要する時間を削減できます。つまり、より高速な指示をジャイロ等が繰り出すことも可能になったワケです。

現状、多くのマイコン系RCサーボは、その制御周期としては1mSec…1kHzが多いと思います。これは、いわゆる制御系を実装しているジャンルにおいては割と業界標準な数値の一つです。しかし、時代の要請と共にこれも変化しており、今はRCサーボにおいて2kHzのものを市場に投入しつつあります。聞いている話では、産業用の制御の中には8kHzもの高速制御を行っているものもあると聞きます。もしかすると、いずれRCサーボもそのようになっていくのかもしれません。

ここまでいろんな数値が出て来ました。それぞれの意味を取り違えないようにしたいものです。

●最後に余談

この記事を書いていて気がついたコトがあります。現在のマイコン系RCサーボにおいて、Pゲインの事を「ストレッチ」と称する場合がありますが、これってアナログ回路時代の5項目の時間をどれだけ「引き延ばす」のかという意味ではないでしょうかね。この時代はアナログ回路で全てを制御していた上、送信機からいつくるか分からない指示を待つ形式のため、いわゆるPID制御などというものはなかったようでしたが、この時間の変更が辛うじてP制御に相当するものであったことは想像ができますから。

(2020/12/08 追記)

●RCサーボの解像度に関して

時々お問い合わせを頂くコトがありますが、RCサーボの解像度に関して少し書いておきたいと思います。

アナログの時代はアナログ量によって動作していたので、あまりこのような概念は存在しなかったのですが、デジタル以降は当然のコトながら「量子化」問題からは逃れられないため、どこまで細かく動作できるのか?を問われるコトになりました。

端的な話をするなら、デジタルに数値で指示を与える場合、その細やかさはどれだけなのか?という話なのですが、実はココに少々ややこしい問題が存在します。

まず、PWM信号を受ける場合、それを何段階ぐらいで受けているのか?があります。信号自体は時間軸(0.9mSec〜2.1mSec)なので、これを数値に変換する必要がありますが、その時の単位時間は何秒なのか?というコトです。これが小さな値であればあるほど、時間軸を細やかに読み取るコトが可能になります。

逆にシリアル信号を受ける場合、角度指示に使われている数値の範囲がいくつなのか?が問題になります。RCサーボがフルスイングする場合に使われる数値の範囲が大きければ大きいほど、細やかな指示が可能になります。

一方、制御として現在の角度をどれだけ細かく検出しているのか?という問題があります。大抵はポテンショの値をADCで読み取るワケですが、このADCの読み取る電圧の細やかさは、そのまま制御の細やかさに直結します。

そして、RCサーボの外部から見た場合、指示する解像度と制御する解像度のどちらか荒いものが、実際の解像度になります。従って、単純に指示している数値範囲だけが解像度というワケではありませんし、PWM信号をどれだけ細やかに読んでいるのかはそのマイコンとソフトに依存するワケです。