FC2ブログ

爪車

磁気シールド

リング型の磁石と磁気式エンコーダを組み合わせて、減速機の減速後の回転角度を直接計測しているのですが、どうもモータの磁石の影響をうけてエンコーダの値が変動してたので、磁気シールドでモータの磁力を遮蔽してみました。
20181102_2.jpg
20181102_1.jpg
出力軸にリング型の磁石を取り付けていて、ケース側のエンコーダで計測するようにしています。

試してみたのは、磁気シールドシート(日立金属のMS-FR 470-100M-T0、エコロガのMS5000M)です。(MS-FR 470-100M-T0を切り売りしているのが、エコロガのMS5000M)
20190210_1.jpg

モータを手で回した時のエンコーダ(14bit)の出力値です。
エンコーダ用磁石は固定しているので、出力値は変動しないのが望ましい状態での計測。
20190210_2.png
ちゃんとした計測ではないのであくまで参考程度ですが、シートを複数枚重ねるとはっきりと磁気遮蔽の効果がみられます。
また、磁気シールドシート自体も磁石にくっつく素材なので、エンコーダにシールドを近づけると、エンコーダの値が変動します。

最終的には、磁気シールドシートを4枚重ねてモータと減速機の間に挟み込むようにしました。 
20199212_1.jpg
20190212_2.jpg

出力軸のエンコーダ出力値。(モータほぼ一定の速度で回転。)
エンコーダがoff-axis配置なので、非線形な値になっています。
20190212_3.png
シート入れる前


20190212_4.png
シート4枚入れた後

エンコーダの値のがたつきが多少改善されました。

本来だと、この出力軸のエンコーダの値をそのまま減速後の回転角度として使用できればよいのですが、off-axis配置で非線形なのと、多少の値のがたつきがあるため、エンコーダの値から一意に出力の回転角度を特定できませんでした。
そのため、出力軸のエンコーダの値とモータ側のエンコーダの値を用いて角度を求めるようにしました。

いろいろ方法はあると思いますが、今のところ以下の方法で回転角度を求めています。
出力軸14bitの上位10bitとモータ側14bitの上位4bitを組み合わせた14bit長のindexを持つテーブルに事前に求めた角度計算用の値を入れておいて、実行時はその値をテーブル引きして角度を求める。
index = (0xFF0 & reducer_14bit) | (motor_14bit >> 10)
angle_14bit = (0x3FFF * rotation_table[index] + motor_14bit) / reduction_ratio




« タイトルなし|Top|ブートローダ »

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://tsumeguruma.blog46.fc2.com/tb.php/333-ce50ca98

Top

HOME

tsumehashi

Author:tsumehashi
FC2ブログへようこそ!

10 | 2019/11 | 12
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30