直交エンコーダのシステムインテグレーション


APDahlen Applications Engineer

直交エンコーダとは?

直交エンコーダは、角度位置、回転速度、方向の変化を測定するために使用されるエレクトロメカニカルなセンサです。また、既知のスタートポジションからの相対的なポジションを測定することもできます。回転する反射メカニズムに対して、物理的に位置のずれた2つのセンサを備えています。その結果、直交波形が生成されます。例を図1に示します。この例では、1対のBanner DS18VP6LP レトロリフレクト光センサが機械式シャッターによって遮断されています。

直交エンコーダという用語は、幅広い技術を含んでいます。図1は、光学センサと反射円盤を用いた典型的な例です。この円盤は1回転あたり4個の窓を設けています。これは、市販のセンサが1回転あたり数十、あるいは数百の窓を備えているのに比べると低性能に見えます。しかし、この単純なメカニズムでさえ、円を16分割(22.5度刻み)しています。

直交エンコーダは、出力信号によって定義されるものであり、その信号を開発するために使用される技術によって定義されるものではありません。直交エンコーダは、磁石やホール素子、機械式スイッチ、さらには象限ごとに白と黒が交互に配置された紙を使って製造することもできることに注目してください。いずれの場合も、変化を検出するために一対のセンサが使用されます。

図1: 大型3Dプリンタで作成された直交エンコーダのデモ機の写真で、Phase Dockベース上に産業用コンポーネントを搭載しています。

直交とはどういう意味でしょうか?

直交とは、2つの信号の位相関係を表わす専門用語です。具体的には90度の関係を表します。代表的な例は、図2に示す正弦波と余弦波の関係です。正弦(sin)と余弦(cos)は基本的に物体の回転に関係しているため、三角法の定義はこの議論に重要です。

正弦波と余弦波とを直接測定するエンコーダを作ることは可能です。今では珍しい、昔ながらのアナログ的な例として、直交信号や三相信号を測定するシンクロサーボシステムがあります。

実用的には、波形を表現するデジタル方式を採用する方がかなり簡単です。これは図2の下部に示されているように、センサQ1とQ2は対応する波形がポジティブのときに反応します。このシステムでは、波形を4象限に分割します。それぞれのセンサが2つの象限でプラスであることが分かります。両方のセンサがともにオンのときとオフのときがあります。

図2のモデルは、動画1を見ればよりよく理解できます。状態の変化が、00、01、11、および10のシーケンスを持つ2ビットのグレイコードを使って記述された予測可能なパターンに従っていることに注目してください。グレイコードとは、任意の時点で1ビットが変化するシステムを表すことを思い出してください。動画を見ると、センサのLEDインジケータが下向きに「歩いている」ように見えます。その後、時計回りから反時計回りに方向が変わると、上向きに歩いているように見えます。

図2: 青色の波形が緑色の波形よりも先行する順方向(時計回り)の場合の直交信号。Q1とQ2のセンサは、対応する波形がプラスのときにアクティブになります。

技術的なヒント: 直交という用語は、電子工学や通信工学でよく使われます。歴史的に見ると、最初の多相交流モータのいくつかは、90度の位相がずれた電気信号で駆動されていました。これには、現在の単相交流モータの始動回路と密接な関係にある、有名なテスラ交流モータが含まれます。別の例では、直交検波はラジオ受信機や送信機におけるプロセスを表しており、同相信号と直交相信号に対応する「I」と「Q」信号を使用します。

動画1: 時計回りに3秒、反時計回りに3秒動作する直交エンコーダを示す動画

回転方向が変わると、直交信号はどのように変化するのでしょうか?

これまで、直交信号間の位相関係は一定であると仮定してきました。別の言い方をすれば、単一方向に回転するシステムを想定してきました。

図3は、回転方向を逆にした場合の変化を示しています。信号の直交性(90度)は残っています。しかし、緑色の波形が先行しています。元のグレイコードは00、01、11、および10であったことを思い出してください。現在は00、10、11、および01のシーケンスに移行しています。

図3: 緑色の波形が青色の波形を先行している逆回転方向(反時計回り)の直交信号

直交エンコーダを搭載したシステムでは、ポジションはどのように維持されるのでしょうか?

直交エンコーダは、既知のスタートポジションからの相対的なポジションを測定することができることに注意してください。別の言い方をすれば、直交エンコーダはシャフトのポジションを直接読み取ることができないため、絶対的なポジションのセンサではありません。そのため、直交センサを備えたデジタルシステムは、計測された移動の回数をカウントしなければなりません。このようなシステムでは、既知の「ホームポジション」または「ゼロポジション」でカウントを初期化する必要があります。その結果、すべての位置測定はホームポジションからの相対値として解釈さ れます。カウントのミスやメモリの喪失は、ポジションの喪失につながります。

繰り返しになりますが、デジタルシステムは直交エンコーダを追跡する必要があります。これは、センサのグレイコードの「方向」を監視することによって行われます。デジタルシステムは、各グレイコードの遷移でカウント(位置変数)を更新します。

直交エンコーダとそのシステムにどのような問題が起こり得るのでしょうか?

このシステムレベルのインテグレーションには、慎重なプログラミングが必要です。おそらく最大の課題の1つは、マイクロコントローラやプログラマブルロジックコントローラ(PLC:Programmable Logic Controller)で使用される速度とプログラミング技術に起因します。デバイスが遅かったり、プログラムが遅かったり(ブロッキング)すると、センサの遷移を見逃すことになります。その結果、この種のエラーだけでなく、ノイズ、センサの故障、配線が断続する問題に対しても注意を払う必要があります。

典型的な間違いは、Arduinoのloop( )関数のようなプログラムのスーパーループ内でエンコーダのセンサをモニタすることです。システムは正常に機能しているように見えますが、回転速度が上がるとカウントが狂ってしまうことがあります。この問題は、モータとセンサがPID制御(PID Controller:Proportional Integral Derivative Controller)のようなフィードバックシステムに組み込まれている場合に、さらに深刻になります。問題がPIDコードにあったり、ポジション(カウント)の計算方法にあったりするため、デバッグは非常に困難です。

割り込み処理の使用は、ポジションのエラーをなくすのに大いに役立つでしょう。しかし、この重要な数値を維持することの重要性を考えると、これでは不十分です。ロータリエンコーダが大型機械の位置決めに使われる場合は特にそうです。このようなシステムは、誤ったポジション番号によってメカニズムが終端のストッパに衝突すると、壊滅的に故障する傾向があります。エラーを検出する堅牢な方法を組み込む必要があります。

ロータリエンコーダのグレイコードを監視するためのステートマシンの使用

正回転と逆回転のグレイコードをよく見ると、両者が関連していることが分かります。これは、図4に示す状態遷移図による表現を使って見るのが最も適切です。図4を時計回りに「歩く」と、正回転(図2)の関係が得られます。反時計回りに「歩く」と、図3のパターンになります。

この状態遷移図は、回転方向を決定するための、簡単かつ堅牢な方法の仕組みをもたらします。このデジタルシステム内では、ステートの内部計算を行います。次に、Q1とQ2センサから適切な遷移を探します。例えば、ステート00の場合、3つの有効なステートと1つのフォルトステートがあります。以下の表は、センサ入力に基づく結果を示しています。

  • 00:現在のステートを維持する
  • 01:ステート01に遷移し、ポジションカウントをインクリメントする
  • 10:ステート10に遷移し、ポジションカウントをデクリメントする
  • 11:フォルトステートに遷移する

同様の表はステートごとに必要であり、これらはすべて図4から導き出すことができます。フォルトステートからの戻りがないことに注意してください。その代わりに、システムをリセットし、必要に応じてホームポジションの再設定をする必要があります。

テスト条件として、エンコーダのメカニズムが遷移の端にあり、センサの状態を00と10 の間で切り替えているとします。これはシステムにとって問題ではありません。なぜなら、ポジションの内部計算値が2つのステートの間を行き来し、各ステートの遷移でカウントをインクリメントまたはデクリメントするからです。

別のテスト条件として、センサがグレイコードに違反した場合に何が起こるかを考えてみましょう。グレイコードは1ビットの変化を許容することを思い出してください。内部状態が00でセンサが11に遷移した場合、何かが間違っており、カウントが破損していることになります。しかるべき対応は、フォルトステートとし、システムをシャットダウンすることです。

図4: 直交エンコーダ信号の状態遷移図による表現。円はステートを表し、線の上の数字はセンサの値を表しています。分かりやすくするため、ステート維持のループは省略されています。

直交エンコーダを用いたシステムのホームポジションへの復帰

ホームポジション(ゼロポジション)への復帰方法は、システムの複雑さによって異なります。一部のロータリエンコーダのアプリケーションでは、電源投入時にゼロポジションにリセットするか、最後に保存された値にリセットするだけで十分です。例えば、ロータリエンコーダをボリュームコントロールとして使用する場合があります。デバイスの電源を入れると、不揮発性メモリからカウント値が取り出されます。オーディオシステムの音量は、シャットダウンされたときと同じになります。

より複雑な例は、独立したX、Y、Zモータとエンコーダを備えた装置です。デバイスがオフのときに装置のヘッドの位置が移動していないという確証がないため、パワーオンリセットは不適切です。このような状況では、古典的なホームポジションへの復帰ルーチンを使用します。

  1. ホームポジションリミットスイッチへ移動する
  2. ホームポジションを検出して停止する
  3. 少し後退する
  4. 非常にゆっくりとスイッチを作動させる

おそらく、このアルゴリズムが実際に使われているのを見たことがあるでしょう。同じ技術が、多くの3Dプリンタのステッピングモータに使われています。これは、加工ヘッドの位置がデジタルカウントとして維持される、もう1つのシステムの例です。

直交エンコーダ符号の実装

このページをブックマークしてください。

これは今後の記事へのリンクのためのプレースホルダです。直交エンコーダのステートマシンのラダーロジックベースの実装と、C言語で書かれた例を期待しています。

まとめ

この技術概要では、直交エンコーダについてご紹介します。最も重要な考慮すべき点の1つは、直交エンコーダがPLCやマイクロコントローラと切っても切り離せない関係にあることです。ステートマシンの実装は、ソフトウェアPLCを実装したハードウェア、もしくはマイクロコントローラを実装したハードウェアの速度が遅いことに加え、センサや配線が断続する不具合など、さまざまなエラーから保護する堅牢な方法を提供します。

PLCとマイクロコントローラ両方を実装したロータリエンコーダを探求する今後の記事にご期待ください。

ご健闘をお祈りします。

APDahlen

著者について

Aaron Dahlen 氏、LCDR USCG(退役)は、DigiKeyでアプリケーションエンジニアを務めています。彼は、技術者およびエンジニアとしての27年間の軍役を通じて構築されたユニークなエレクトロニクスおよびオートメーションのベースを持っており、これは12年間教壇に立ったことによってさらに強化されました(経験と知識の融合)。ミネソタ州立大学Mankato校でMSEEの学位を取得したDahlen氏は、ABET認定EEプログラムで教鞭をとり、EETプログラムのプログラムコーディネーターを務め、軍の電子技術者にコンポーネントレベルの修理を教えてきました。彼はミネソタ州北部の自宅に戻り、このような記事のリサーチや執筆を楽しんでいます。 LinkedIn | Aaron Dahlen - Application Engineer - DigiKey

産業用制御とオートメーションのインデックスに戻る




オリジナル・ソース(English)