はじめに
本記事はMATLAB Expo2021 LTでの発表「MATLAB Homeでのモータ制御MBD開発に向けた“脱獄指南書”」の解説をシリーズ化したものの3番目の記事となります。
シリーズ構成案は下記。
①Arduino Dueに3相同期・三角波・相補PWMを打たせる
②Arduino DueでPWM山同期AD変換を行う
番外編 実質無料! Tiの3相GaNインバータの使い方
③Arduino Dueの2ch DACを利用する
④MATLAB/SimulinkでArduinoのレジスタを叩く
⑤MATLAB/SimulinkとArduino DueでPWM同期の制御を実現する
Tiの3相GaNインバータについてはシリーズ記事の中で既に何度か紹介済みですが、本記事では改めてその特徴について語るものとします。
正直なところ、1章はネタ記事に近いのでピン配置や注意点のみが気になる方は2章のみ読んで頂いても構いません。
1. なぜ「実質無料」か
1.1 電流検出方法がナイス
前記事にも書きましたが、この3相GaNインバータは電流検出方法として「インバータ-モータ間 3シャント電流検出方式」が採用されています。
この電流検出方式では、インバータのスイッチング状態によらず常にモータに流れる電流を観測可能で、電流検出アナログ出力ポートとオシロスコープを接続するだけで下記のように3相交流波形を得ることが出来ます。
Tiの3相GaNインバータのシャント抵抗で検出した3相電流波形。いやーキレイっす。 pic.twitter.com/AEfJo0IAUw
— モータ制御マン (@motorcontrolman) July 24, 2021
同様の電流観測を実現する手段の1つとして非接触方式の電流センサを用いる方法が挙げられますが、前記事でも書いた通りお値段がそれなりにします。
例えばLEMのLTS 6NPだとこんなん。(2021/7月頃時点。よく欠品になります)
3相の電流を検出した場合は×3なので、お財布にそれなりの負担となります。
これに対し、Tiの3相GaNインバータはというと…$49となっております。
ということで、著者としてはこれだけで既に「実質無料」だと考えています。
なお余談ですが、電流→アナログ信号への変換レートがLEMのLTS 6NPとかなり近いという面白い特性を持っています。
※上記、ツイートでは「全く同じ」と書いていますが厳密には違いました。[2.2 ②](https://qiita.com/motorcontrolman/items/95560fd38545637fad2a#-%E9%9B%BB%E6%B5%81%E6%A4%9C%E5%87%BA%E5%80%A4%E3%81%AF%E3%83%9E%E3%82%A4%E3%83%8A%E3%82%B9%EF%BC%91%E5%80%8D%E3%81%8C%E5%BF%85%E8%A6%81)参照。電流→アナログ信号変換レートがLEMの電流センサ(LTS 6NP)と全く同じらしく、波形がぴったり重なります。 pic.twitter.com/ygeOFZANtm
— モータ制御マン (@motorcontrolman) July 24, 2021
1.2 脅威のデッドタイム8ns
本インバータにてSW素子として使用されているLMG5200ですが、データシートに記載された使用例として下記の記載されています。
8nsってアンタ。流石はGaN、というところでしょうか。
デッドタイムが短いことの恩恵は様々ありますが、モータ制御勉強用途としてはデッドタイムの長い/短いが電流波形にどのような影響を与えるのか、更にはモータの制御性にどのような影響を与えるのかを考察できるのが嬉しいですね。
1.3 SW周波数の設定可能幅が広い
上記のデータシートにはSW周波数:1MHzが記載されており、これまたモータ制御用途ではオーバースペック気味と言えますが個人的に着目すべきは低い側の周波数も広く設定可能ということです。試した限りでは2.5kHzまでは正常な動作が確認できました。
電流歪みの観測しやすいモータにて、キャリア周波数を2.5kHzと10kHzで交互に入れ替えるなど。音も分かりやすいですね。 pic.twitter.com/yzZMBdC7U6
— モータ制御マン (@motorcontrolman) August 10, 2021
(なお、本特性はGaNの使用によって実現されている訳ではなく、使用されているブートストラップコンデンサが大きいことで実現されているものです)
(ちなみに上記の動画もシャント抵抗による検出値です。いや本当に便利。)
低い周波数を設定できることのメリットとしては下記が挙げられます。
・音を出して遊べる(たのしい)
・演算負荷を余り気にすることなくモータ制御開発が出来る
・搬送波同期の電圧重畳センサレス制御のS/N比を改善できる
上記メリットを享受するケースは実際にはそれほど多くないかとは思いますが、ちょっと試したいと思った時に使えるのはすごく便利ですね。
2. 使用方法
2.1 ピン配置
回路図に記載がありますが、一部分かりにくいため必要最低限のピン配置を下記表に示します。
なお回路図では3相を「A」「B」「C」と呼称していますが、本記事では「U」「V」「W」と呼称するものとします。
J1/J3コネクタ
ここは回路図読めば分かる内容と思います。
上記ピンから出力される信号の電圧/電流比は2.2 ②にて後述します。
J2/J4コネクタ
最低限、上記11ピンをマイコンと接続することでインバータを駆動することが可能です。
2.2 駆動時における注意点
① 13pinはLOWに接続!
上記ピン配置にて記載した通り、13pinはnEnableですが、その名前の通り入力信号がHIGHの場合はインバータ駆動を停止しLOWの場合はインバータ駆動を行います。
(無論、何も接続しない状態では駆動停止となります)
② 電流検出値はマイナス1倍が必要!
称賛しまくっていた3シャント電流検出機能ですが、1つだけ難点があります。
それは、電流検出値はインバータ→モータに流れる方向を負として定義されており、一般的なモータ制御における電流定義と異なるということです。
マイコンに取り込む際には、オフセット除去した上でマイナス1倍する必要がある点に注意が必要です。
なお、電圧/電流比については0.1V/1A となります。
なぜそうなるか:
・シャント抵抗:5mΩ
・電流センスアンプINA240A1PWのゲイン:20V/V
・上記より、電流1A条件におけるシャント抵抗の電圧降下=5mVであり、
20倍すると0.1V/1Aとなる
なお、LEMのLTS 6NPの電圧/電流比は 0.625V/6A = 0.104V/1A です。
差が4%程度のため、オシロスコープの波形としては一致したように見えたものと思われます。
おわりに
正直、ピン配置と注意点だけ書けば30分で書き終わる記事なのですが「実質無料」を前面に押し出したく、その部分に時間を割いてしまいました。
念のため言っておくとTiの社員でも、Tiから何か貰っている訳でもございません。