2009年8月30日日曜日

DCモータの制御(フィードフォワード)

 マウスにおいて最大のパフォーマンスを発揮するためには等加速度の加減速をすることが必要.わりときっちり制御しないと,過剰なトルクがかかってスリップなんてことになってしまう.

今,加速度aで加速(もしくは減速)したいとすると,必要なタイヤのトルクT_tireは
   T_tire = a /2 * d
   T_tire = m * a / 2 * r_tire
となる.mは機体質量,r_tireはタイヤ半径であり,2で割っているのはタイヤが左右で2つある場合を考えているから.モータが出力すべきトルクT_motorはギヤ比をr_gearとして,
   T_motor = T_tire / r_gear.
モータのカタログにのっているトルク定数k_mを用いれば,モータに流すべき電流Iは
   I = T_motor / k_m.
そのために必要なモータの両端の電圧Vは
   V = R * I + V_r
である.Rはモータの巻線抵抗,V_rはモータに発生する逆起電力で,カタログの発生電圧定数k_eを用いれば,
   V_r = k_e * n
となる.ただし,nはモータの回転数であり,一定時間のエンコーダのカウント値からわかる.
実際にモータを制御する際にはPWM波のduty比r_dutyを変化させる.電源電圧をVsとして,
   r_duty = V / Vs
である.これで今モータに与えるべきduty比を計算することができる.

 以上はフィードフォワード制御をする場合に役に立つ.というかこれなしではレスポンスが遅すぎて制御しにくいと思う.実際にはこれに加えて目標値とのずれを埋めるためにフィードバック制御もする.

0 件のコメント:

コメントを投稿