Comments
Description
Transcript
FPGA を用いたステッピングモータの制御に関する検討
計測自動制御学会東北支部第 251 回研究集会(2009.7.15) 資料番号 251-2 FPGA を用いたステッピングモータの制御に関する検討 Control of a Stepping Motor using FPGA ○萩原正基*, 秋山宜万*, 松尾健史*, 三浦 武*, 谷口敏幸* ○Masaki Hagiwara*, Yoshikazu Akiyama*, Kenshi Matsuo*, Takeshi Miura*, Toshiyuki Taniguchi* *秋田大学 *Akita University キーワード: FPGA(FPGA),ステッピングモータ(stepping motor),励磁パルス(exciting pulse) 連絡先:〒010-8502 秋田県秋田市手形学園町 1-1 秋田大学工学資源学部 電気電子工学科 松尾健史,TEL:(018)889-2338,FAX:(018)837-0406,E-mail:[email protected] こで本研究では,その改善策として高速動 1.はじめに 作が可能な FPGA を用いてステッピングモ ータの励磁タイミンングを自由に操作でき ステッピングモータは,総回転数が励磁 るプログラムを作成した. パルスの総数に比例し,回転速度が単位時 間当たりの励磁パルス数に比例するといっ た特徴を持っている 1) .そして,ステッピ 2.FPGA ングモータの励磁パルスの生成にはパーソ ナルコンピュータを用いる事ができるが, FPGA はプログラマブルデバイスと呼ば これでは駆動システムが大きくなってしま れる,内部構造のプログラミングが可能な う.ステッピングモータの励磁パルスをパ LSI の一種であり,論理回路そのものをプ ーソナルコンピュータで生成する代わりに, ログラムできる.よって,動作しているの マ イ ク ロ コ ン ピ ュ ー タ や FPGA (Field が論理回路そのものであるから,動作速度 Programmable Gate Array)を用いる事で駆動 が速く,低消費電力であるといった特徴が システムの小型化が行える. ある 2). 一方,ステッピングモータを高速で駆動 今回,Verilog HDL で開発可能な環境があ させる際,モータの励磁タイミングを適切 るので,これを用いて FPGA のプログラム に行う事が困難になる.これは,励磁タイ を行った. ミングを操作する事で改善可能である.そ 1 start start definition of input output pin,and parameter1,2 definition of input output pin preset of initial value counting clock number N clock number = parameter1 N flag1=”H” Y Y flag1=”H” Y update signals a1→b1 b1→c1 c1→d1 d1→a1 counting clock number clock number = parameter2 flag2=”H” flag1=”L” N update signals a2→b2 b2→c2 c2→d2 d2→a2 flag2=”L” output logical sum of signals Y flag2=”H” return counting clock number to 0 (a) Production of timing pulse (b) Exciting sequence 図 1 フローチャート Fig. 1 Flowcharts を開始する.(b)の信号の更新は,a1→b1→ 3.FPGA の処理 c1→d1 の様に順々に入れ替えるのでは無 く,a1→b1,b1→c1,c1→d1,d1→a1 の様 FPGA の処理フローチャートを図 1 に示 に同時に値を入れ替えている.これは す.(a)は励磁パルスの生成の為のタイミン Verilog HDL が全ての動作を同時に行うプ グパルス生成部,(b) は励磁シーケンス部 ログラム言語だからである. である.ここで,(a)の flag1,2 は,励磁タイ ミングを調節する信号であり,1 クロック 表 1 初期値 分だけ”H”の状態になる.また,(b)の a1~ Table 1 d1,a2~d2 の信号はステッピングモータの 各相を励磁させるものである.この信号の 初期値を表 1 に示す.そして,flag1,2 の信 号によって,a1~d1,a2~d2 の信号は更新 2 Initial values a1 1 a2 1 b1 0 b2 0 c1 0 c2 0 d1 0 d2 0 4. 実験システム 流すユニポーラ駆動型の定電圧駆動回路で ある. 本研究の実験システムを図 2 に示す.パ 表2 ーソナルコンピュータはモータ駆動の処理 を行うものではなく, Verilog HDL でプロ Table 2 FPGA(XC3S100E)の仕様 Specification of FPGA(XC3S100E) グラムを作成し,FPGA に実装させるもの Number of system gate である. 開発ツールとしては Xilinx 社の ISE Number of logic cell Web Pack 8.2i を用いた. Embedded memory 使用した FPGA と,FPGA が搭載されて いるボードの仕様を表 2,表 3 に示す.FPGA 100000 2160 52Kbit Core voltage 1.2V I/O voltage 3.3V は Xilinx 社製の「Spartan-3E ファミリ」のう ち「XC3S100E」である. 表3 モータの仕様は表 4 を示す.使用したモ Table 3 FPGA 搭載ボードの仕様 Specification of FPGA board ータは,オリエンタルモーター社製 2 相ハ On-board FPGA イブリッド型ステッピングモータ Supply voltage (PK244-02B)である. Frequency of clock oscillator XC3S100E 5V 33MHz 使用した駆動回路を図 3 に示す.今回用 いた駆動回路は,電流を一定方向のみに 表 4 ステッピングモータの仕様 Table4 PC PC ;used for programming Specification of a stepping motor Rated voltage 6.0V Rated current 0.8A Step angle 1.8deg. FPGA FPGA board Drive circuit DC power supply E Stepping motor 図 2 実験システム Fig. 2 図 3 駆動回路 Experimental system Fig. 3 3 Drive circuit 5. 実験方法 Exciting voltage [V] 4 3 章で述べた FPGA の処理を実装させ, 作成したプログラムが指示通り動作してい るか出力された励磁パルスで確認を行う. 本研究では,図 4 の様に励磁タイミング を操作した時間を進み時間と定義する. Phase A Phase B 3 2 1 Lead time 0 10 20 30 Time [ms] (a) Lead time 0ms t 4 Exciting voltage [V] Phase A Phase B 図 4 進み時間(Lead time)の定義 Fig. 4 Definition of lead time 6. 実験結果 3 Lead time 2 1 図 5 に励磁タイミングを操作した励磁パ 0 ルスを示す.この出力波形の基本励磁時間 10 30 20 Time [ms] は 10ms であり,(a)は進み時間 0ms,(b)は (b) Lead time 2ms 進み時間 2ms,(c)は進み時間 8ms の波形で 4 ある.図 5 を見みると,励磁するタイミン Phase A Phase B Exciting voltage [V] グを操作できている事が分かる.これは 3 章で述べた flag1,2 を立ち上げるタイミン グを変化させる事で実現できた. また,図 6 にステッピングモータの A 相 の巻線電流と励磁パルスを示す.(a)は進み 3 Lead time 2 1 時間 0ms,(b)は進み時間 2ms,(c)は進み時 間 8ms の波形である.図 5 を見てみると, 励磁タイミングを早めると,巻線電流が増 0 10 20 Time [ms] 加しているのが分かる.また,10ms 時の巻 (c) Lead time 8ms 線電流の値は(a)の波形に比べ(b),(c)の波形 の方が高くなっているのが分かる. 図 5 励磁パルス Fig. 5 7. 考察 図 5 の通り,FPGA を用いてステッピン 4 Exciting pulse 30 Winding current Exciting pulse 4 できた.これを応用する方法として,進み 0.8 Winding current [A] グモータの励磁タイミングを操作する事が 3 0.6 2 0.4 Exciting voltage [V] 1 角制御が考えられる.進み角制御とは,モ ータの回転子がある相の平衡点に到達する 前にその次の相も励磁し,電流の立ち上げ を早くする事でモータに十分なトルクを発 生させる方式である 1 3) .今回の行った励磁 タイミングの操作で,進み角制御のような 0.2 閉ループ制御が行えると考えられる. 0 10 0 30 20 Time [ms] 8.おわりに (a) Lead time 0ms Winding current Exciting pulse 4 本研究では,FPGA を用いてステッピン Winding current [A] 0.8 3 0.6 2 0.4 グモータの励磁タイミングを自由に操作す Exciting voltage [V] 1 る FPGA のプログラムを作成し,実装させ た.今後の課題として,今回の結果を進み 角制御に応用し,ステッピングモータの閉 ループ制御のアルゴリズムを構築して FPGA に実装するといった事が考えられる. 1 0.2 0 20 10 0 30 参考文献 Time [ms] (b) Lead time 2ms 1) 坂本正文:ステッピングモータの使い方, Winding current Exciting pulse 4 2) 井倉将実:FPGA ボードで学ぶ Verilog 0.8 Winding current [A] 1/7,オーム社(2003) 3 0.6 2 0.4 HDL , 7/12,CQ 出版社(2007) Exciting voltage [V] 1 3) 見城尚志,菅原晟:ステッピングモータ とマイコン制御,262/268,総合電子出 版社(1994) 1 0.2 0 20 10 0 30 Time [ms] (c) Lead time 8ms 図 6 巻線電流と励磁パルス Fig. 6 Winding current and exciting pulse 5