ガルバノスキャナを自作する(製作編)

部品の加工

機械部品の加工は、僕らのガレージの設備を使わせていただきました。 充実した工作機械や治工具類が揃っているので、必要な部品は全て製作できる環境です。 https://www.bokugare.com

ロータ

ロータは、円筒マグネットの両端に軸を接着して構成します。強度を高めるため、外周を薄い円筒で覆います。

コイル

コイルの製作は2段階で行います。まず空芯コイルを巻き、その後八つ橋型に成形します。 巻き治具を使用し、ワニスを筆塗りしながら巻いていきます。規定の巻数に達したら、オーブンで焼き付けて固定します。 最後に3Dプリンタで作製した型を使って形状を整えます。

エンコーダ

ロータとフォトダイオードの位相に合わせてハネを接着します。 フォトダイオード信号を受けるアンプ回路はopampで平均、差動処理も行い、角度と電圧が対応する形で出力するようになっています。

組み立て

ステータの内壁にコイルを接着し、 ロータを組み付けることで磁気回路が完成します。 ミラーとエンコーダを取り付けてガルバノスキャナの完成です。

素材の購入元

鋼材 SUS304丸棒(非磁性・ロータ用) SUS430丸棒(磁性・ステータ用) https://www.idasyouten.jp/

マグネットワイヤ PEW0.3mm 2種 https://shop.oyaide.com/products/p-999.html

ワニス https://shop.oyaide.com/products/w-2023m20ml.html

マグネット N45φ4×20径方向着磁 https://www.neomag.jp/shop/

表面反射鏡1.1mm厚 https://www.e-kagami.com/shop/product/760/?srsltid=AfmBOopWR6SDcIKH3HUX1c2rivTouFcr5LnpFeNTqofERlr4bwvuGnEf

ガルバノスキャナを自作する(設計編)

はじめに

ブラシレスモータの自作が楽しかったので、今度は別のタイプのアクチュエータを製作することにしました。 ブラシレスモータは構造が複雑で実用的な性能には至らなかったため、より単純な構造で高応答・高精度を実現できるガルバノスキャナを製作することにしました。

目標

駆動範囲:±11.25deg

今回製作するガルバノスキャナは磁気回路の構造上、無限回転はできません。 ミラーを取り付けて使用することを考えると±45deg以上の可動域は不要です。 そのため、センサと磁気回路のリニアリティを考慮した作りやすい範囲に設定しました。

サーボ帯域:1000Hz

レーザーで図形を描画する場合、目標波形の周波数は数百Hz以上になります。この周波数に追従できるサーボ帯域を目指します。

スポット径:5mm

ミラーで反射させる光線の径です。ミラーのサイズを決定するために設定しました。レーザーだけでなく、太めの光線での実験も想定して余裕を持たせています。

ガルバノスキャナの構成

ガルバノスキャナの設計に必要な要素は、磁気回路、エンコーダ、コントローラの3つです。この記事では磁気回路とエンコーダの設計について説明します。

磁気回路設計

今回製作するガルバノスキャナは単相(コイルが1組)、単極(磁石が1つ)、コアレス(コイルに鉄芯がない)タイプです。電磁アクチュエータとしては最もシンプルな構造のため、高い性能が期待できます。 このタイプはガルバノスキャナとして一般的な構造のようです。

磁気回路は、ローター、ステーター、コイルの3つの要素で構成されます。コイルは空芯コイルを八つ橋型に曲げ、ステーターに接着します。ローターは薄い金属の筒でマグネットを覆い、シャフトと接着する構造です。 磁気回路の設計には、フリーの電磁界シミュレータFEMMを使用します。 コイル体積、マグネット直径、線径を様々に変更して、性能と体積の最適なバランスを探ります。

エンコーダ設計

エンコーダは、フォトダイオードと遮光ハネを組み合わせ、光量変化から角度を検出する仕組みを採用しました。 磁気式エンコーダでも機能的には成立しますが、ガルバノスキャナの駆動角度が限定されているため、エンコーダも角度を制限することで高分解能を狙いました(360度から22.5度に制限することで、角度分解能を16倍に改善)。 エンコーダには4つのフォトダイオードを搭載し、対角(同相信号)の平均値と左右(逆相信号)の差分を取ることで、アキシャル方向の振動による光量変化をキャンセルする設計としました。 フォトダイオードの出力電流は受光面積に比例するため、ハネ形状とフォトダイオードの配置がリニアリティに影響します。今回は部品配置の制約から、ハードウェアでの完全な最適化は狙わず、AD変換後にソフトウェアで補正する方針としました。

次の記事は製作編です。

ブラシレスモータを自作してみる(FEMMでsim編)

前回の続きです。

順番が前後してる気もしますが、今回製作したモータの特性をシミュレーションしてみます。
実機の特性もまじめに測定しているので、sim結果と比較すればお互いの確からしさも雰囲気がつかめるのではないかと思っています。

電磁界シミュレータはFEMMというフリーのツールを使用しました。ほかのツールは使ったことがないですが、フリーなものの中ではメジャーみたいです。

simする項目は実機評価に合わせて以下の2つ
・トルク定数(分布)
・コギングトルク(分布)

コイル抵抗はターン数、線径から容易に計算可能なため別途求めておきます。(simは線径、ターン数が分かっていればOK)

simの流れ

FEMMを用いた電磁界シミュレーションの流れは
形状の作成→材料の割り当て→マグネット/コイルの設定→解析→領域選択→結果取得
となります。
これでとある1条件での解が得られるので、角度に対する分布が欲しい場合はちょっとずつ角度を変えた形状を作成して順次simしていくことになります。

形状の作成

FEMMを起動し、File→Import DXFからヨーク、マグネット、コイルの形状を読み込みます。
回転中心を座標0,0に合わせないとトルクが計算できないので注意です。

材料の割り当て

Properties→Material Libraryで使用する材料を読み込みます。
マグネット、ヨーク、コイル、空気あたりが必要です。

次に閉じた領域すべてに材料を割り当てます。
Operation→Blockで選択モードを切り替え、左クリックで閉じた領域に点を打ちます。
右クリックで点を選択し、スペースでblockのプロパティを開きます。
Block typeで任意の材料を選択すれば設定完了です。マグネットは磁束の方向を角度で指定します。 次にコイルの回路を設定します。
Properties→Circuits→Add Propertyから設定しますが、3相分 x 通電方向正負で6つ必要です。
今回は1相のみ定電流で通電した際のトルク分布からトルク定数を求めるため、circuit1=1A、circuit1-=-1A、他=0Aとしておきます。
Circuit1,1-も0にするとコギングトルクのみ得ることもできます。 コイルの領域もヨーク、マグネットと同様にBlockを設定します。これでsimの準備は完了です。

解析/結果の確認

run alanysysで解析を実行します。
自分の環境(i7 1360P)で20分ぐらいかかります。
終了後View Resultを押すと結果が表示されます。

Operation→Areaで選択モードを切り替え、トルクを取得したい領域を選択します。(今回はステータ)
Block Integral→Torque Via Weighted Stress Tensorを選択すると座標0,0まわりのトルクが表示されます。 これで1stepの解析は完了です。
この後ステータを少し回転させて解析していけばトルク分布を計算できますが、実際は解析実行以降の操作をスクリプト化しています。

github.com

解析結果/実測比較

単相トルク定数分布

simのほうが20%程度大きく出ています。歪み方の特徴がsimにも表れています。

q軸トルク定数分布

q軸で見ると単相での歪がトルク定数の脈動として表れている様子がよくわかります。 コギングトルクもsimのほうが大きく出ていますが、スケール感としてはそれなりに見れてるんではないでしょうか。

まとめと感想

ブラシレスモータのsim、製作、評価の流れを一通りやってみました。手作りでもそれなりに回る程度なら簡単に作れそうです。
ただ、ここから性能の向上(コギングの低減、トルク定数up)を狙おうとすると個別のノウハウ的な要素が多くなってくるような気がしており、厳しそうです。モータは作るより買うほうがいいのかも。

ブラシレスモータを自作してみる(制御・評価編)

前回のつづきです。

制御

今回製作したモータはロボットの関節に使うような想定なので、低速かつ過渡的な状態で動作します。
センサレスは厳しいと思われるため、絶対角が測れる磁気エンコーダを用いて電気角を測ります。磁気エンコーダの角度情報はFOCによる励磁だけでなく、PIDによる角度サーボにも使います。
また電流のフィードバックは行いません。 回路はnucleoの上に3相ハーフブリッジ(BOOSTXL-3PHGANINV)が乗っただけの簡単な構成です。 こちらのコントローラでそこそこの動作ができるところまで確認できました。

評価

次作る時の参考にするため、基本的な特性を測っておきます。

自分の用途で気になる項目は以下の通りです。
・相抵抗
・トルク定数(分布)
・コギングトルク(分布)

トルク定数やコギングを測るにはトルクメータが欲しくなりますが、個人で買うには勇気がいる価格です(50万円ぐらい)。
今回はトルクメータを使わず、オシロスコープだけで測定します。

相抵抗

こちらは普通にテスターで測ります。
1.5 Ω(各相 12直列)でした。

トルク定数

軸を外部から回転させた際の逆起電圧から計算します。
測定位置はスター結線の中性点-端子間とします。(UVWの3相分)
中性点は特別に線だしが必要ですが、中性点をGNDとしてプロービングすることでシングルエンドの一般的なオシロでも3相同時に測定できます。
また回転速度を得るために、絶対角を電圧として出力する磁気エンコーダを取り付けます。角度信号もオシロで同時に測定し、後処理で微分することで逆起波形に同期した速度信号を得ます。今回はAS5600を使用しました。
あとは各相の逆起電圧を速度で割ることで逆起電圧定数(=トルク定数)を求めることができます。
今回はオシロのcavデータを処理するスクリプトを作成し、トルク定数分布を計算しました。
測定結果は0.33Nm/A(dq軸上)ですが、各相の波形が歪んでいるためトルクリップルが大きいようです。

コギングトルク

サーボ保持で微速駆動した際のdq電圧から計算します。
今回はdq軸電圧/dq軸抵抗*トルク定数=発生トルクとしてコギングトルクを得ましたが、電流が測定できるならそのほうがいいかもです。 結果は±0.4Nmで、かなりでかいです。触った感じもステッピングモータみたいです。

なお評価にあたり、測定値に対してさまざまな換算が必要になります。以下の本は網羅的かつ親切で参考になりました。
高トルク&高速応答!センサレス・モータ制御技術

次回は電磁界シミュレータFEMMを用いたsimについて書きます。

ブラシレスモータを自作してみる(製作編)

はじめに

今までモータは購入品を使うだけでしたが、徐々にモータ自体への興味がわいてきました。ついでに自分の用途にぴったり合うモータを自分で作れたらロボット作りの幅が広がりそうというのもあり、作ってみることにしました。

目標

今回作るモータは具体的な用途を決めてませんが、最終的には脚ロボットの関節にダイレクトドライブで使えるといいなと思ってます。したがって、

最高速度:数百rpmとかでOK
最大トルク:数Nm程度取り出したい
重さ:軽いほどいい
相抵抗:小さいほどいい

という感じです。

設計

上記の目標に合うように設計していきます。

モータ設計は全く素人でよくわからなかったので簡易ツールのJMAG Express Onlineを使ってみました。
所属組織のメールアドレスがあれば無料で使えます。

www.jmag-international.com

モータ形状のテンプレートを選んで相数、スロット数、線径などを振ると各性能を計算してくれます。
相抵抗、トルク定数、磁束密度を見ながら適当にパラメータを振って、それっぽい解が得られました。(1Nm/A、相抵抗2.5ohm)

具体的な設計はJMAGの開発元が書いている以下の本を足掛かりにしました。

モータ設計初心者のための永久磁石同期モータ設計入門
https://www.jmag-international.com/jp/book/

あとはJMAG Expressで作った形状を3DCADに移して構造部品を設計して完成です。

ロータはマグネットの吸引力に耐えないといけないのでしっかり目に作るのがポイントです。(1回失敗した)

製造

購入した部品と購入先は

・冷延鋼板 2.3mm (横山テクノ)
https://www.yokoyama-techno.net/detail/646.html

・マグネット 20x10x2mm N40(ネオマグ)
https://www.neomag.jp/shop/shoppingcart/itemdetail.php?itemno=NB02001000211&qty=1

・エナメル線 0.4mm (オヤイデ)
https://shop.oyaide.com/aiw0-4mm.html

・ベアリング/軸(Misumi

です。今回の仕様だと材料費は1台5000円ぐらいだと思います。

こちらの材料をなんやかんや加工してモータの形にしていきます。

ステータ製作

まずはステータ作成のための鉄板加工ですが、幸い自宅にCNCフライスがあるのでこちらを使います。

ステータは市販のモータと同じく薄い鋼板を積み重ねる形で作ります。市販モータは渦電流低減のために積層しているようですが、今回は薄板しか切削できないという製造上の都合のほうが大きいです。
そもそも渦電流低減をちゃんと狙おうとすると鋼板の絶縁処理が必要なようで、家庭だとなかなか難しそうです。

使っているCNCフライスはoriginalmindのCL200という機種で公式に鉄板が切削できる機種ではないですが、細いエンドミルを使えば何とか削れるようです。(切削条件は切り込み0.1mm、送り速度200mm/min) ただ、エンドミルの寿命が著しく短く、せいぜいステータ2枚分しか作れません。この作業が一番つらいです・・・(上が新品、下が使用後) なんとかステータを削り終えたら次は接着です。ステータに接着剤を塗って簡易治具でプレスします。 接着後はこんな感じ。ステータの位置決めもかねて3Dプリンタのハブも一緒に接着しました。 次はコイルを巻いていきます。ステータの上に直でコイルを巻くと角部でショート必至なので、3Dプリンタでキャップを作って保護します。
占積率は下がっちゃいますが、ショートよりはマシです。 次はコイル巻きです。1ティースにつき28T * 36スロットをひたすら手で巻いていきます。
ちゃんと引っ張りながら巻かないと膨らんで線が入らなくなります。巻き終わったらステータ側完成です。

ロータ製作

ロータ側はステータよりだいぶ簡単です。 まずはロータのフレームに鋼板を貼ります。本当は鉄パイプとかを使いたいところですが、ちょうどいいサイズのものが入手できなかったので、鋼板を短冊状に切って使っています。 あとはマグネットをN/S交互に貼っていくだけです。位置決め用にくし歯状の部品を3Dプリンタで作って貼ってあります。これでロータも完成。

組立

あとはステータをロータに入れるだけです。
今回みたいなサイズだと磁気吸引力が強烈なので、指を挟んでケガしないように注意が必要です。 この瞬間が一番楽しいですね。 きれいにできた・・・・

制御編、評価編もいずれ書きます。