PWM制御


PWM制御についてはPWMでモータ制御を参照.

必要なPWM周波数

本節では,あるモーターに対して,PWM周期をどの程度に設定すればよいのか検討する.
TekuRobo工作室によると,PWM周期は電気的時定数の5倍がいいらしい(トラ技ORIGINAL No.7 マイコン&メカトロニクスの誕生 CQ出版社がソースらしい)

本節では必要な周波数をシミュレーション実験によって検討する.
すなわち,モータの出力軸がフリーの状態でモーターを回転させるシミュレーションを行う.

モーターのモデルを適切に式変形を行うと,

(1)    \begin{align*} \dot{\omega}&=-\frac{B  }{J}\omega+\frac{k_m}{J}i-M_Rsgn(\omega)\\ \dot{i}     &=-\frac{K_E}{L}\omega+\frac{R  }{L}i+\frac{1}{L}e \end{align*}

このシステムに1717006SRの各種定数を代入する.前述した値に加え,M_R=0.18*10^{-3}\displaystyle[Nm],J=0.18*10^{-3}\displaystyle[Nm],
B=0\displaystyle(データシートに記載がなかったため,粘性抵抗は無視した.),
e=\left\{ \begin{array}{l} 5((t \mod f)/f<0.1)\\ 0((t \mod f)/f\geq 0.1) \end{array} \right.を代入する.ただし,f\displaystyle[t]は1周期分の時間である(PWM周波数が100hzならfreq=0.01[t]).初期条件は,i(0)=0,\omega(0)=0\displaystyleとする.これらの条件は,電源電圧は5V,dutyは10%で,1717006SRを無負荷で回転させていることを意味している.

PWMの周波数を電気的時定数の0.1倍,0.5倍,1倍,2倍,3倍,5倍に変化させた比較を行う.ダイナミクスに不連続な項が入っているため,オイラー法でシミュレーションを行う.

以下はシミュレーション結果である.

Timeconstant

図より,PWM周波数は電気的時定数の2倍は必須.5倍が推奨値とされていることが妥当であることがわかる.また,PWM周波数を電気的時定数の0.5倍以下になるともはやPWMではなく,オンオフ制御に近いことがわかる.1717006SRだと,推奨値は330[Khz],132.2[Khz]は必須.33.05[Khz]だと使い物にならない.ぷーちん太郎Blogアーカイブによると,マウサー上位陣は一通りこの問題をギリギリラインで回避しているようである.とても競技らしくて面白い結果である.

ここで注意する点として,数学的にはいくら周波数を低くしても電流値は0にならないということである.また,ノコギリ状の波形はPWM周波数・抵抗・インダクタ・コンデンサの値などを調整することによって,外部ノイズより小いオーダーに押さえこむことはできる.しかし,線形素子を使う限り,このノコギリを消去することは「絶対に」できない.これはモータの制御法としてPWM制御を採用する限り逃げられない問題である.

PWM制御の分解能

PWM制御の分解能はどの程度あればよいか検討する.前節で示したプログラムのdutyの値を変更したシミュレーションを行う.

以下はデューティー比を1/128,1/256にとった場合の図である.

Timeconstant128
Timeconstant256

図より,これ以上デューティー比を細かく取ると,PWM周波数を多少あげたところでノコギリの大きさが小さくならない.すなわち,1717006SRはPWM制御の分解能を256より細かくとっても,モーターのダイナミクスがその細かさを出力できず,意味がないことがわかる.マイコンのタイマーはクロック速度によって,分解能とPWM周波数の間にトレードオフの関係がある.このトレードオフに対しては,PWM制御の分解能は256分割程度にしておき,モータドライバとマイコンのクロック・タイマーが許す限りPWM周波数をあげるべきであることがわかった.