MAXONのPWM周波数を考える

MAXONのPWM周波数を考えた話

Tue, 18 Apr 2017

聞かれそうなこと先に書く

この記事のコメントにて

「VNH+ArduinoMEGAだとなぜマクソンが台無しになるのでしょうか?
よかったら教えてください。」

と指摘されたので,これと関連付けてMAXONのPWM周波数どうしようかいま悩んでいることを書きます.

※これから書くことは炎上している可能性があります.(圧倒的未来予知)

FETの駆動方式(というかPWMの形式)

NOTE – 回路設計編 – モータドライバと象限

こちらのページのみれば分かる通り,”Sign/Magnitude PWM”と”Locked Anti-Phase PWM”の2種類があります.

20170418102623

先程のリンクより引用させていただくだけですが,

【Sign/Magnitude PWM】(以下,SMと略します)

上段のスイッチを回転方向を決めるのに使い、下段のスイッチでPWMにする形式です。ブレーキは、上段を両側OFFにして、下段の両側を同時にONする事で端子間を短絡させて行います。

4つの象限のどこを使うかを明示的に指定することが特徴です。
よって、可動フェーズが明確に分かれている場合に有効です。

最低2本(PWM/回転方向)、ブレーキのコントロールも入れると、3本の信号が必要になりますし、ドライバレベルでは制御に応じて4つのスイッチング素子を独立して制御する必要があります。

【Locked Anti-Phase PWM】(以下,LAPと略します)

1本のPWM信号のH/Lで、ブリッジを常に正転/逆転させる形式です。
出力波形の電圧積分が平均電圧になるので、50%duty で出力 0V=停止します。

指令値とモータの状態によって、4つの象限の間を境目無しに行き来することが特徴です。
フィードバック制御をかける場合、この制御を使っていると、パルスドライバでもDCモータの基本制御式(無負荷回転は電圧に比例し、トルクは電流に比例する、ってやつ)が使えます。

ただし、PWMを余裕を持って電流連続モードにしないと、モータが振動したり、無負荷でも大きな電流が流れて発熱したりします。

波形について気にしたことないとぴんとこないと思いますが,モータードライバICでよくあるのはSMです.

あと,「パルスドライバでもDCモータの基本制御式が使える」っていうのは,LAPだからなのか,電流連続モードだからなのかっていうのはよくわからないです.

つまりは,SMでも電流連続モードなら...という疑問です.

でも,LAPは電流連続モード必須なので,LAP使えばいいっていう話ですね.

PWMの電流モード

ゆーくりっどさんがC89で出した「モータードライバの作り方ver1.1」(以下,まんじゅう本)とか,

NOTE – 回路設計編 – PWMドライブの設計とかを読むと,

PWMには”電流不連続モードPWM”と”電流連続モードPWM”の2種類があります.

これまた引用ですが,

【電流不連続モードPWM】

モータの電気時定数に対して、PWMの周期が十分長い=PWM周波数が低い場合で、ON期間は電流が全開 で流れ、OFF期間は電流が完全に流れなくなります
よって、トルク変動が最大になりますが、機械的な慣性モーメントによって、モータの回転数の変動が実用上の許容範囲内に入っているようにした設計です。

# 主に、3極モータ(540とか)のような起動時の抵抗が大きなモータに使います。

また,

この駆動法は、設計や製作が楽なのでよく使われていますが、コアレスモータや、工業用サーボモータには向かないです。コアレスや工業用サーボに使うと、モータが異常発熱したり、定格に達する前に焼き切れたりする場合があります。
このようなモータは、かならず電流連続モードのPWMになるようにします。

逆に、この後で述べる電流連続モードPWMだと、3極モータのような起動時の閾値の高いモータの場合、うまく起動しなかったり、低速トルクが足らない場合があります。この場合は、電流不連続モードのPWMになるようにする方がいいです。

【電流連続モードPWM】

LR 直列回路のパルス応答でOFF期間もLに蓄えられたエネルギーで電流が流れ続けることで電流の変動が小さくなるようにした場合です。電流の変動が小さいので、当然トルクリップルも減って大変なめらかに回転します。ただし、きちんと設計しないと、うまく動きません(^^;

だそうです.

要はPWM周波数を高すれば電流連続モードになるってことですかね.

電流連続モードPWMの周波数の検討

いろいろ説明したところで,MAXONのPWM周波数について検討します.

1. まんじゅう本や,適切なPWM周波数を考える – Takeyuta Labによると,

コアレスモーターのPWM周波数は電気的時定数の10倍以上らしいです.

INPUTで使っているDCX16は,

端子間抵抗R=1.63[Ohm]

端子間インダクタンスL=0.096[mH]

なので,

電気的時定数 τeは
τe=LR58.9(μs)\tau_{e} = \frac{L}{R} \simeq 58.9 ( \mathrm{\mu s} )

になります.

これの10倍の周波数を得るとすれば,

f=1τe10=169.8(kHz)f = \frac{1}{ \tau_{e}} * 10 = 169.8 ( \mathrm{kHz} )

以上の周波数でスイッチングすればいいことになります.

2. NOTE – 回路設計編 – PWMドライブの設計によると,

LR直列回路において,入力電圧vの方形波入力時の出力電流の変化は,

立ち上がり時に

i(t)=VR(1etk)i(t) = \frac{V}{R} ( 1-e^{- \frac{t}{k}} )

立ち下がり時に

i(t)=VRetki(t) = \frac{V}{R} e^{- \frac{t}{k}}

で変化するらしいです.

これより,

時定数 k が 10倍 ( k > 10T ) の場合,電流変動は +-5%程度

k が 100倍 ( k > 100T ) の場合,電流変動は +-1%程度

になるらしく,電流変動が連続定格に対して数%以内に収まるようにすればいいらしいので,まあ10倍ってことでいいですかね.

(1 の方々はきっとこのページも参考にしてるから一緒なんだろうな)

3. デバプラ記事によると,

τetpwm100\frac{ \tau_{e}}{tpwm} \geq 100

から,

tpwm100τe=1698(kHz)tpwm \geq \frac{100}{ \tau_{e}} = 1698 ( \mathrm{kHz} )

ということになります.(つまり電気的時定数の100倍以上)

僕の解釈が間違っていると思いたいんですがこの周波数は無理です.

4. MAXONアカデミーによると,

 マクソンのコントローラのPWM周波数は通常、39~60[kHz]

らしいです.

また,

 さらに、低インダクタンスのモータには、追加のインダクタンスが電流の反応を減衰させます。マクソンのコントローラには通常、モータチョークが組み込まれています。

なので,PWM周波数が1,2の計算に比べ低めに設定されています.

これらより,電気的時定数の10倍の周波数でいいんじゃないかと考えています.

つづき

MAXONのPWM周波数を考える2

© anbalab 2019