今,加速度aで加速(もしくは減速)したいとすると,必要なタイヤのトルクT_tireは
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 件のコメント:
コメントを投稿