2010年4月11日日曜日

センサーレス技術

ネットで調べると、MicroChip社のHPにいくつかのアプリケーションノートを見つけることができる。

(AN901)センサーレス BLDC コントロール用 dsPIC30F の使用
(AN1175)Sensorless Brushless DC Motor Control with PIC16
(AN857) Brushless DC Motor Control Made Easy ソースコードあり
(AN1083)Sensorless BLDC Control with Back-EMF Filtering(Japanese)

同社のPICをコントローラーとして使ってもらえるように準備しているのか、意外とたくさんある。
dpPICのDSP技術をつかうものは、今回は技術的な部分を読むだけにとどめておこう。
PIC16がいくつかあるので、こちらは具体的に検討する価値がありそうだ。

BEMFとは、Back ElectroMotive Force の略で、モーターの逆起電力のことのようである。
AN857によると
PRM=KV×Volt
BEMF=PRM/KV
Torque=KT×Amps
KV×KT=1
という関係があるようだ。

このアプリケーションノートでは、センサーつきのブラシレスモーターの速度制御をPWMのデューティー比を変化させて実現するための技術的な解説が書かれているようである。

PWMでデューティー比を下げると、BEMFの絶対値が下がることが観測される。これは見かけ上、電源電圧Voltを下げたことになる。式からVoltが小さくなるとPRMが下がる。この関係を利用するようだ。

AN1175、これは本命とみているのだけれど、このアプリケーションノートのBack EMF Sensing の中で、Zero-Crossing event を見つけ出すことがポイントだと述べられている。
そして、この零点を検出する方法は2つあるそうだ。
  1. 3相の各信号と、それらを符号反転させた信号を作り出して比較する方法。
  2. 3相の各信号と、中性点(三相のゼロボルト点)を比較する方法。
この1番目の方法は、前回の失敗したボードでつくったもので、U、V、Wの三相から、反転した波形をV+W、W+U、U+Vというふうに合成して作り出し、UとV+W、VとW+U、WとU+Vの組み合わせで比較していく方法だ。

2番目の方法は、U、V、Wから中性点を作る。すなわち、U+V+Wの合成で中性点が得られる。この中性点とU、V、Wの各々と比較する方法。そして、こちらの回路を作るほうが、部品点数が少なくてすむ。

ただし、三相モーターで1回転に6つの零クロスが存在するものにしか適用できないとある。
今回使用するHyperionモーターはこの要件を満たしているので問題ない。

どうやら、後者のほうが回路も簡単で良さそうだ。

今回使用する予定の PIC16F648A にはコンパレータ(比較器)が2つしかないため、三相を比較することができない。だからLM339というコンパレータを外付けにすることになる。

このMicroChipのアプリケーションノートのゼロ交差検出方法は、零点と零点の時間間隔をタイマーで計測して、適切な相の切り替えを行っている。ゼロ交差が検出できない初期のスタート時などは、強制的に規定速度まで回転していくようである。

また、進み角の設定については余り述べられておらず、進み角の設定を誤るとモーターに余計な電流が流れ、それによる発熱でモーターの寿命が短くなると警告していた。
このあたりの表現からするとモーターを良く知らない素人には手を出すなということだろうなと思う。そのあたり、英語圏のドキュメントだなと思ったりする。日本人的には、細かい点が気になるので、そういったもう一歩踏み込んだ情報も得たいと感じる。

0 件のコメント:

コメントを投稿