GMコアレスモーターに対応する
以前の記事でPICマイコンによるPWM制御で車両を起動してみたら飛び出し発進した事を書きました。
ところが,同じPWM制御のKATO パワーパック ハイパーDXは滑らかに発進する事がわかりました。
実はそれだけではなく,GREENMAXのコアレスモーターではまともに速度制御ができなかったのです。今回はその原因を突き止めて解決していきます。
まずは,ハイパーDXでも行われていたPWM波形に周波数変調を掛けるという事をやってみます。下の画像の通りにかけてみました。
青線(上)がモータードライバーICの制御信号,赤線(下)が電動機の電源波形です。パーシスタンスで見ると以下の様になります。
デューティーは10-bit (1024) なので,1割以下で振れる様にしています。今回は32段階(±16段階)を4段階ずつ振ってみました。PWM周波数は19.53kHzで,3回に1回 (153.6μs) の割合で振る様にしました。
ところが,これだけではコアレスモーターを制御することができなかったのです。どうもモータードライバーICの制御方法に問題があった様です。
これはLV8548MCのデータシートにあるブロック図です。今回は電動機が1個なので赤枠の部分のみ使っています。そして制御論理は以下の様になっています。同じくデータシートからの引用です。
電動機に電流を流すには,表の「正転」又は「逆転」状態になる様,IN1とIN2を設定します。そして片方をPWM波形にする事で電動機のPWM制御ができる様になります。
ところで,PMW制御は電流を流したり切ったりする制御方法です。
電流を切る場合は上の表の「待機」又は「ブレーキ」にします。筆者は今まで「待機」に設定していました。ところが,これでは上の図の様に回路が切れてしまい,ダイオードがあっても電動機の回生電流を消費する事ができずに電動機が回り続けていたみたいです。低速では逆起電圧が電源電圧より低いから,発電した電力が電源に帰らず消費されないと言う方が正しいでしょう。
そこで,「ブレーキ」状態に変更してみたところ,GREENMAXのコアレスモーターも,KATOのフライホイール搭載動力車も,PWM周波数19.53kHzで滑らかに発進するようになりました。特にGREENMAXのコアレスモーターはものすごく滑らかです。
ただ,「ブレーキ」状態は電動機の両端を短絡しているので逆起電圧が発生せず,電動機の回転数を測定する事はできません。電動機の回転数を測定する時は,「待機」状態にする必要があります。
これで,速度制御の基礎は出来上がりました。次は,スケールスピードで運転する為,速度と加速度を実車に合わせていきます。