磁気式エンコーダ その2
こんにちは。エヌがのです。
前回から引き続き、磁気式エンコーダについて書いていきたいと思います。
エンコーダから角度を取得しグラフにしたところ、このような結果になったことを前回書きました
左:速度mm/s 右:取得角度(14bit/rot)
モータに一定のdutyをかけ、空転させたときのデータです
速度がものすごくブレてます。理想的な状態ならば、速度が一定になるはず。角度から察するに、速度のブレの周期がおよそ磁石が1回転する周期と同等程度なのはわかります。どうしてこんなにぶれているかの原因を推測しますと、
・磁気式ICと磁石の並行がとれていない
・磁気式ICの計測中心と磁石の回転中心があっていない
・磁石の回転が偏心している
・磁石自体の精度が悪い
・SPI通信で値を取得しているため、時間の整合性が合ってない
様々な原因がありますが、一番の原因は磁気式ICの計測中心と磁石の回転中心がずれていることだと考えました。そこで、再びばらばらにし磁気式エンコーダICを丁寧にはんだづけしましたが、機械的な基準も拘束もなかったため、肉眼で合わせるくらいしかできませんでした。
肉眼では合っているように見える。
改善の結果としては、少しマシになった程度で、効果は薄かったです。
機械的な原因はもう設計時点でのミスであり、どうすることができませんでしたので、次はソフトウェアで対処することにしました
とりあえず適当にFF制御で動かしたマウスの速度データが以下になります。
これでは制御ができないのでなんとか使えるデータにしてみます
方法としては、こちらで紹介されている方法を用いました。
10,20,30回で平均をとったデータがこちらです
10,20,30と増やしていくに連れて、データが平滑化されているのがわかります。これはローパスフィルタがかかっているものと同義と私は考えていて、ある程度は効果がありますが、平滑化しすぎると応答の遅れから発振しやすくなります。私は、どれくらい平滑化するかは完全に主観で決め、20回と設定しました。
これでまともに制御できるくらいにはなりました。しかし、まだ振れが大きくゲインをあまり上げられないという問題があり、なんとかならないかと考えました。
今回はここまでになります。この話題についてはあと1回ほど書こうと思っていますが、ほとんどおまけみたいなものです。
長文になりましたがここまで読んで下さり、ありがとうございます。