ロボット向けBLDCモータドライバの開発
ラジコン用ESCだと急峻な制御も難しいし, かといってメーカ製ドライバはバカ高い…。どうしようかと悩んだ末, 自分で作ることにしました。Makerの本能。
設計思想
とりあえず, 私個人ではロボット向けにそこらへんの安いBLDCをサーボのように使えるようにしたいというニーズがあったため, 次のことを前提にして開発をスタートしました。
・シリアルとアナログ入力で制御できる
・シリアル通信は半二重通信でパワーケーブルともにデイジーチェーン可能である
・速度制御, 角度制御が可能である
・誘起電圧オブザーバによりセンサレス自己位置推定を実現する
・各相電流フィードバックによりトルク制御
・20Aくらいのドローン用BLDCが満足に回せるパワー
・小型
ロボット向けなら60Aもいらんなぁと思いつつ, 汎用性考えるとデカめのモータも回せるようにしたいなぁと葛藤がありました。
しかし, パワーを求めると基板サイズも発熱も大きくなりますし, 今回は欲をいわず20A程度のモータがまわせるレベルの設計にすることとしました。
主回路とゲートドライブ
まず悩むのがスイッチング素子の選定とゲートドライブトポロジーです。
基板自体を小型化したいので, 市販のESCのようにFETクラスタ用の別基板を用意することはしたくなく, 小型SMDパッケージでそれなりに電流を流せるFETを探すのは大変でした。
基板サイズからすると電流を流せるゲートドライバを組む余裕は無いと判断したので, ゲート容量も小さいものを選ぶ必要がありました。
素子は結局 Digikey でいい感じの素子を試験的に購入。良ければ決定という手法を取りました。(コスト考えるのも大変なんですよねぇ~)
ゲートドライブに関してはゲートドライブICや三相プリドライバにコストを割きたくなかったので, 簡単に高速フォトカプラでブートストラップ回路を組む事にしました。
制御まわり
MCU(マイコン)には半二重シリアルをハードサポートする事が求められたのと主回路用にシンメトリPWMの生成が容易であることなどから, STmicro のSTM32F303K8 を採用することにしました。
ファームウェアに関してはPWM用タイマ周りと位置推定アルゴリズム, 電流保護やWDTなどの保護周りを慎重に実装します。
というのも, この手のパワー回路をMCUで動かす回路はちょっとのポカミスで素子を全部焼きますので…。
到着した基板
今回はPCBgogoさんに基板製造を発注しました。
高性能モータ制御プロダクトには, イルカのようになめらかに!という思いを込めて「Dolphin Motor」というシリーズ名をつけることにしました。
基板は2枚面付けとし, 捨て板追加とマウスビット追加を依頼しました。
こうすると手でパキっと割れて楽チンです。
MCUとブートストラップ用フォトカプラ群です。
いいかんじ!!なんかエモい。
現在量産中のセンサレスベクトル制御BLDCドライバ, DMDR-3060です。
— KT electronics(準備) (@kt_electronics) October 19, 2019
半二重シリアル通信により, 1つのコントローラーで複数のドライバを制御できます。
各種制御パラメータはシリアルコマンドにより設定可能です。 pic.twitter.com/3GNBWjanhi
1相の電流フィードバック波形です。
すごいきれいで制御が楽でした。
配線を考えて引くとこうゆうところで得をします。大事。
そのうちプロトコルとかコマンドの一覧をまとめなければ。
販売について
テスラキットと同じくECサイトでの販売を考えてます。
現状量産できそうにないので少量ならDMにて相談にのります。
相談は @kt_electronics まで。