計測自動制御学会東北支部第 244 回研究集会(2008.7.2)
資料番号 244-9

光学式ロータリエンコーダ
光学式ロータリエンコーダによるロータリエンコーダによる回転検出による回転検出
A Detection of Motor Rotation Using Optical Encoder○舘石竜一*, 秋山宜万*, 松尾健史*, 三浦 武*, 谷口敏幸*○Ryuichi Tateishi*, Yoshikazu Akiyama*, Kenshi Matsuo*, Takeshi Miura*, Toshiyuki Taniguchi**秋田大学*Akita University
キーワード：光学式ロータリエンコーダ(optical rotary encoder)，FPGA(FPGA)，
角度検出(angle detection)，カウンタ(counter)
連絡先：〒010-8502 秋田県秋田市手形学園町 1-1

秋田大学工学資源学部 電気電子工学科

松尾 健史，TEL：(018)889-2338，FAX：(018)837-0406，E-mail：matsuo@ipc.akita-u.ac.jp

1. はじめにを開発し，国家標準やトレーサビリティ体系の確立を目指している．

ロータリエンコーダは，サーボシステム

本研究では，ロータリエンコーダの信号において位置および速度の制御を行うため処理について，アナログ系からディジタルの角度センサの一種であり，工作機械，ロ系の変換に注目して高精度化を検討する．

ボット，工場の自動化ラインなどに広く使われている．ロータリエンコーダは回転角

2.

ロータリエンコーダ

度に比例するパルスを出力するものが一般的であり，一回転あたりのパルス数は数万

本研究で使用したロータリエンコーダは以上におよび，論理処理を行うことにより，オムロン社製の光学式インクリメンタル形その分解能を向上させることができる．の E6B2-CWZ である．その仕様を表 1 に示

文献 1)において，ドイツなどでは古くかす．

らロータリエンコーダ用の国家標準を設置

表 1 ロータリエンコーダの仕様し，より高精度な測定法を開発しているとTable 1 specification of rotary encoder

いう報告があり，日本でもこの文献のグル

allowable maximum rotating load

6000 [min-1]

ープがエンコーダの全角度目盛 225,000 点

max response frequency

100 [kHz]の誤差データを自動測定する校正システム

resolution-1-500 [pulses/rev.]その基本的な構造を図 1 に示す．発光ダード化したデータを出力する．そのためカイオードなどの発光素子とフォトトランジウンタを必要とせず，常に回転軸の絶対的スタなどの受光素子をスリットの入った円な角度位置の検出が可能となるが，各層ご板をはさんで設置することで，スリットをとに信号を出力するためインクリメンタル通過する光量に応じた電流が出力され，そ方式よりも高価格化，大型化する．の波形を波形整形回路によってパルス信号その他のパルス出力の代表的な分類としに変換し，電圧信号として出力される．てはオープンコレクタ出力と TTL 互換電圧出力がある．オープンコレクタ出力では整形されたパルスをそのまま出力する方法で，スイッチ接点と同様に扱うことが出来る．
TTL 互換電圧出力は，TTL-IC を用いて 5[V]の電圧でパルスを出力する．
本研究ではインクリメンタル方式のロータリエンコーダを用いる際に必要なカウンタ回路を FPGA によって構成し，位相差に

図 1 光学式ロータリエンコーダの構造よる回転方向の判別を行う．

Fig.1 scheme of optical rotary encoder
3. 信号の信号のパルス化
パルス化
インクリメンタル方式では，エンコーダが一定角度回転するごとにパルス信号が発前章で述べたように，ロータリエンコー

生し，そのパルス数をカウンタなどによりダから出力されるパルスは受光素子から出積算することで回転角度を計測する．実際力される正弦波状の信号を整形したものでには回転方向を判別するために 90°の位相ある．しかし，このパルスが受光素子から差をもつ 2 相のスリットを設け，出力され出力される信号を正確に表しているかを確たパルス列の推移を検出する．

認するため，本研究ではロータリエンコー

またパルス列の立上り，立下りの推移のダから，パルスを生成する前の 2 相の正弦組み合わせにより，1 周期分のパルス出力波状の電気信号を取り出している．

から 4 個の分解能をとることができる．
この方式ではエンコーダごとのパルスのphase A

sine-wave

発生頻度，つまりスリット数によって分解P能が変わるため，高精度になるほど装置がA/D converter

phase Bphase Apulse

Rotaryencoderphase B

大型化し，高価格となる．

GearC

一方，アブソリュート方式では円板上にD/A
converter

ｎ層のスリットを設け，それぞれに対応したｎ個の受光素子により変換された電圧信Poweramplifer

DCservomotor

図 2 実験システム

号のパターンを，グレイコードを用いてコ

Fig.2 experimental system

-2-DC
power
supply10.8

0.8

voltage[V]voltage[V]

10.6

0.6
0.4

0.40.20.20500

600

7000500800600time[ms]

800

700

800

6voltage[V]6voltage[V]700time[ms]420500600700

420500800600time[ms]time[ms]a) phase Ab) phase B

図 3 エンコーダの出力波形
Fig.3 output waveform of encoder
ロータリエンコーダを回転させるための100:1 のギアを介している．DC サーボモー

DC サーボモータの回転検出装置の構成を

タの回転角度に応じてロータリエンコーダ

図 2 に示す．使用した DC サーボモータは，から出力される正弦波状の信号とパルス信

山洋電気社製の R301T-011 である．その仕号を，AD 変換器を介して PC に出力する．

様を表 2 に示す．

取得した正弦波とパルスの出力波形を図パーソナルコンピュータ(以下 PC と示す)

3 に示す．この結果から，正弦波側が一定からの指令を DA 変換器を介してアナログ以上の値となることでパルスが立ち上がっ信号とし，増幅器を通して DC サーボモーていることを確認した．

タを回転させる．今回の研究でのモータ印

同様に，測定中にモータの回転方向を反加電圧は 5[V]としている．DC サーボモー転した際の出力を図 4 に示す．ここでは

タとロータリエンコーダの接続部には1000[ms]で回転方向を反転している．この波形から，反転直後はパルス幅に大きなゆ

表 2 モータの仕様

らぎが生じていることがわかる．

Table 2 specification of motor
rated power

11 [W]

rated voltage

24 [V]

rated current

1.25 [A]rated speed

3000 [min-1]

rated torque0.034 [N・m/A]

4. パルスのパルスの処理
本研究ではアップダウンカウンタとして
FPGA (Field Programmable Gate Array)を用いる．FPGA はプログラマブルデバイスと-3-10.80.8

voltage[V]voltage[V]

10.6
0.4

0.6
0.4
0.2

0.20900

1000

0900

1100

1000time[ms]66

voltage[V]voltage[V]1100time[ms]42090010004209001100

1000

1100time[ms]time[ms]a) phase Ab) phase B

図 4 反転時の出力波形
Fig.4 output waveform when reverse

呼ばれる，内部構造のプログラミングが可Xilinx 社の Spartan-3E は同社の FPGA の能な LSI の一種である．プログラマブルデ中の Spartan シリーズのひとつであり，論理バイスは，多数の小規模な論理ブロックをブロック以外にクロック管理ブロックや乗相互接続することで構成された FPGA と，算器ブロックを持つ．対応する I/O 規格が｢マクロセル｣と呼ばれる比較的大規模な論豊富なこと等から低コストでのシステム開理ゲートによって構成される PLD に大きく発が可能である．

分類される．今回は参考文献 3)に付属してここでは，本研究で用いる FPGA の処理

いる FPGA 搭載のボードを用いて研究を行

性能に関して，入力信号の周波数を上げてった．このボードと搭載されている FPGA分周処理を行うことで，処理速度の確認をの仕様をそれぞれ表 3,4 に示す．FPGA は行った．そのアルゴリズムを以下に示す．

Xilinx 社製の Spartan 3E ファミリである．ま

表 4 搭載 FPGA の概要

た開発ツールとしては Xilinx 社の ISE Web
Pack 8.2i を用いた．

Table 4 outline of on-board FPGA

表 3 FPGA ボードの仕様

number of system gate

Table 3 specification of FPGA board

100,000

number of logic cell

2160

embedded memory

52[Kbit]clock oscillator

33[MHz]supply voltage5[V]core voltage

1.2[V]

on-board FPGAXC3S100E

I/O voltage

2.5[V] or 3.3[V]-4-433voltage [V]voltage [V]

42
1

10002

12time [s]3041044332
140

342
100030c) 100kHz

voltage [V]voltage [V]a) 1kHz

20time [ms]100200time [ms]b) 10kHz

300

0400

12time [ms]d) 1MHz

図 5 FPGA の出力波形
Fig.5 output waveform from FPGA研究に用いる際に十分な性能であることが1) クロックの立上りごとに入力信号の値確認できた．

を保持

今回の研究では，使用したボードに搭載

2) 保持した値から入力信号の立上り，立下されている 33[MHz]の発振器をクロックとりを認識して用いているが，FPGA に入力するクロ

3) 入力信号の立上り，立下りを認識するごックの値を変更することで，より高い周波とにカウント数の信号がカウントできるかどうか考察す4) 1000 カウントで出力信号の値を切り替える必要がある．

このアルゴリズムを基に，ハードウェ

次にロータリエンコーダから出力されるア記述言語のひとつである Verilog HDL

パルスと同様に，90°の位相差をもつ 2 相を用いて論理回路設計を行う．その後の信号を入力し，4 逓倍した状態で回転方FPGA にダウンロードし，入力信号として向の判別を行う回路を作成し，その論理回発振器から周波数の異なる方形波を入力， 路のシミュレーションを行った．このシミ
FPGA からの出力についてオシロスコーュレーションでは A 相，B 相の立上り，立プにより観測を行った．その結果を図 5

下りそれぞれでカウントが行われているこに示す．この結果から，2[MHz]までの入力との確認，また正転，逆転それぞれの場合

信号について，ほぼ正確に信号の立上り・でパルスを出力することで，回転方向の判立下りをカウント，出力がなされており，別が可能となっている．

-5-以上の結果から，これらのシステムを用

ログ信号の処理が統一されているのか，メいることで実際にロータリエンコーダの出ーカごとに信号を検出して確認を行う必要

力波形を入力し，カウンタとして用いるこがある．またエンコーダから出力されるパとが可能であると考えられる．

ルスから，アナログ信号で生じるゆらぎを検出する方法を検討する必要がある．

5. パルスゆらぎのパルスゆらぎの考察
ゆらぎの考察図 3 を詳細に検討すると，パルス幅が変謝辞動している．この変動は直流モータの回転本研究の実験の一部は，本学工学資源学

むらや，受光素子の電気信号のゆらぎが原研究科 博士前期課程の萩原正基氏の協力因と考えられる．電気信号のゆらぎについを受けて行ったものである．同氏に深く感ては十分に検討する必要がある．

謝します．

本研究では，ロータリエンコーダ内でパルスに整形される以前の正弦波状のアナログ信号を取得することで，出力波形のゆらぎについて検討したが，ロータリエンコー
ダ実装時にアナログ信号を取得することは参考文献困難である．そのため，エンコーダから出力されるパルス信号を用い，ディジタル系

1) 玉真昭男，杉浦正大，益田 正：ロータでのゆらぎの検出方法について検討した．

リエンコーダ用誤差測定回路の高度化,そのひとつとして，FPGA によってパル

電子情報通信学会技術研究報告

スの検出を行った際に，パルスが H となっ

VLD2005-56, 15/20 (2005)
2) 高野英司，川嶌俊夫：センサの技術,ている間隔により，パルス幅のゆらぎを取

37/39 理工学社(2001)

得できるかどうか検討した．

3) 井倉将実：FPGA ボードで学ぶ Verilog
HDL , CQ 出版社(2007)

6. おわりに本研究では，角度センサの一種であるロータリエンコーダの信号処理について，アナログ系とディジタル系それぞれの方向から検討した．3 章の結果から，回転方向の転換時にアナログ信号の状態でゆらぎが生じることを確認した．また 4 章で述べたように，FPGA を用いて十分な処理性能のカウンタを作成することができた．
問題点としては，回転方向転換時のアナ-6-