理系的な戯れ

理工学系とくにロボットやドローンに関する計算・プログラミング等の話題を扱って、そのようなことに興味がある人たちのお役に立てればと思っております。

移動ロボットの加減速とモータと運動方程式

移動ロボットの加減速はどうなるの?

浅学菲才の身でありますが、自分の頭の整理のためにも、移動ロボットの加減速運動について考えてみました。

移動ロボットの加速と減速の性能はどうなるのか知りたいと思うことがあります。 この記事では、DCモータによる移動ロボットの加減速について計算する方法を議論したいと思います。 ただし移動ロボットの加減速に関わる様々な現象の一部だけ考慮した話です。地面とタイヤとの摩擦や、空気抵抗などは取り扱わない話をします。 考慮しなかった要素を加える場合も、考え方の流れは同じになると思いますので、より詳細な検討のために他の要素を加えていくことは可能だと思います。

この記事ではタイヤは滑らないものとして取り扱った話にしたいと思います。 歯車の伝達効率も1とします。 また移動ロボットは直進だけではなく曲がったりもするのですが、それについても直進だけを仮定しようと思います。

なお、この記事は、だいぶ長くなりますので、式番を使った一般的な理系文章の記述様式ですと文章を上下に行ったり 来たりしないとならなくなり読みにくいので、出来るだけ式の再掲載をしてその都度式を書き直して表示しています。

ロボットの運動方程式

まずはロボットの運動方程式です。 使用する記号を以下のように決めておきます。

  • ロボットの速度 {\displaystyle v}
  • ロボットの質量 {\displaystyle M}
  • ロボットの推進力 {\displaystyle F}

ロボットの運動方程式は次のようになります

{\displaystyle
\begin{equation}
M \frac{d v}{d t} = F
\end{equation}
}

歯車による減速

モータの回転はモータのピニオンギヤから平歯車1枚で1段の減速によりタイヤに伝えられるとします。 モータからタイヤまでの減速の話をします。

ここで使う記号を以下のように決めておきます。

  • ピニオンギヤの歯数 {T_1}
  • 平歯車の歯数 {T_2}
  • 減速比 {\eta}

減速比は以下のように計算します。

{\displaystyle 
\begin{equation}
\eta = \frac{T_2}{T_1}
\end{equation}
}

 

通常はピニオンギヤの歯数より平歯車の歯数の方が大きいです。回転数は落ちますが、タイヤ軸のトルクは大きくなりますので より大きな推進力で地面をキックすることができます。 従って、減速比{\eta}というのは1以上の数値になります。

タイヤの角速度とロボットの速度

タイヤの角速度とロボットの速度との関係について話をします。

ここで使う記号を以下のように決めておきます。

  • ロボットの速度 {\displaystyle v}
  • タイヤの角速度 {\displaystyle \omega_{T}}
  • モータの角速度 {\displaystyle \omega}
  • タイヤの半径 {\displaystyle r}
  • 減速比 {\eta}

タイヤの角速度とモータの角速度の関係は、減速比を用いると以下のようになります。

{\displaystyle 
\begin{equation}
\omega_{T} = \frac{\omega}{\eta}
\end{equation}
}

タイヤの角速度とロボットの速度の関係は、いわゆる周速度の計算式と同じで以下のようになります。

{\displaystyle 
\begin{equation}
v = r \omega_{T}
\end{equation}
}

よって、モータの角速度とロボットの速度の関係は以下のようになります。

{\displaystyle 
\begin{equation}
v = \frac{r}{\eta} \omega
\end{equation}
}

あとで使うのでモータの角速度について解いておくと以下のようになります。

{\displaystyle 
\begin{equation}
\omega = \frac{\eta}{r} v
\end{equation}
}

タイヤの運動方程式

タイヤの回転運動について話したいと思います。 ここで使う記号を以下のように決めておきます。

  • モータ軸の角速度 {\displaystyle \omega}
  • タイヤの慣性モーメント {\displaystyle J_T}
  • 推進力 {\displaystyle F}
  • 負荷トルク {\displaystyle F_L}
  • 減速比 {\eta}

タイヤの角速度はモータの角速度が減速装置で減速されたものになりますので、運動方程式はモータの角速度を用いた表現を使ってあらわすことにします。タイヤはモータから見て負荷ですのでタイヤ軸の負荷トルクによりタイヤは回されようとしますが、タイヤは地面と接しロボットの推進力で地面をキックしていますので、推進力の反作用によるトルクもタイヤにかかります。それらを考慮した運動方程式は以下のようになります。

{\displaystyle 
\begin{equation}
\frac{J_{T}}{\eta} \frac{d \omega}{d t} = \eta T_L - r F
\end{equation}
}

モータの運動方程式

ここではモータの回転運動について話をします。

ここで使う記号を以下のように決めておきます。

  • モータ軸の角速度 {\displaystyle \omega}
  • モータの軸周りの慣性モーメント {\displaystyle J_M}
  • モータの軸周りの動粘性抵抗係数 {\displaystyle D}
  • 負荷トルク {\displaystyle F_L}
  • トルク定数 {\displaystyle K}
  • モータコイルに流れる電流 {\displaystyle i}

モータの回転の運動方程式は以下のようになります。

{\displaystyle 
\begin{equation}
J_{M} \frac{d \omega}{d t} + D \omega= K i - T_L
\end{equation}
}

 

モータは電流がモータのコイルに流れて電磁石になることによりトルクを生じる装置なのですが、自分自身を回すだけではなく、負荷を駆動するのにそのトルクは使われます。この記事の場合は負荷トルクはロボットを加速したり、減速したりするためのトルクです。上の式はコイルの発生したトルク{\displaystyle K i}は負荷トルク{\displaystyle T_L}に減じられていると読むことができると思います。

モータの運動方程式とタイヤの運動方程式を統合する

これまでに記述したモータの運動方程式とタイヤの運動方程式は減速比を用いてモータの角速度の式として どちらも記述されています。 これらの微分方程式から負荷トルクを消去することで一つの式にまとめられます。 タイヤの方程式の両辺を{\displaystyle \eta}で割り算して、両式を並べてみます。

{\displaystyle 
\begin{equation}
\frac{J_{T}}{\eta^{2}} \frac{d \omega}{d t} =  T_L -\frac{ r F}{\eta}
\end{equation}
}
{\displaystyle 
\begin{equation}
J_{M} \frac{d \omega}{d t} + D \omega= K i - T_L
\end{equation}
}

上記の2式、式同士加算すると以下のようになります。

{\displaystyle 
\begin{equation}
\left(J_{M} + \frac{J_{T}}{\eta^{2}} \right) \frac{d \omega}{d t} + D \omega= K i - \frac{ r F}{\eta}
\end{equation}
}

ロボットの運動方程式を用いて推進力を消去

以上の式ではロボットの推進力{\displaystyle F}のみが明らかではありませんので、 ロボットの運動方程式を用いて消去します。 ロボットの運動方程式を再度記述すると

{\displaystyle 
\begin{equation}
M \frac{d v}{d t} = F
\end{equation}
}

となりますが、以下に再掲載したモータ軸とロボットの速度との関係式

{\displaystyle 
\begin{equation}
v = \frac{r}{\eta} \omega
\end{equation}
}

を代入すると

{\displaystyle 
\begin{equation}
\frac{Mr}{\eta} \frac{d \omega}{d t} = F
\end{equation}
}

上式を先ほど求めた

{\displaystyle 
\begin{equation}
\left(J_{M} + \frac{J_{T}}{\eta^{2}} \right) \frac{d \omega}{d t} + D \omega= K i - \frac{ r F}{\eta}
\end{equation}
}

に代入すると

{\displaystyle 
\begin{equation}
\left(J_{M} + \frac{J_{T}}{\eta^{2}} \right) \frac{d \omega}{d t} + D \omega= K i - \frac{Mr^{2}}{\eta^{2}} \frac{d \omega}{d t}
\end{equation}
}

これを整理すると

{\displaystyle 
\begin{equation}
\left(J_{M} + \frac{J_{T}}{\eta^{2}}  + \frac{Mr^{2}}{\eta^{2}} \right) \frac{d \omega}{d t} + D \omega= K i 
\end{equation}
}

上式は電流{\displaystyle i}が流れた際にどのようにモータが回るかということを表していますが、電流{\displaystyle i}がどのように流れるかについて更に考察していきたいと思います。

モータに流れる電流の方程式

モータのコイルに流れる電流は、コイルのインダクタンスと抵抗値とモータの発電機としての能力で全て記述されます。

ここで使う記号を以下のように決めておきます。

  • モータ軸の角速度 {\displaystyle \omega}
  • 逆起電圧定数(=トルク定数) {\displaystyle K}
  • モータコイルに流れる電流 {\displaystyle i}
  • モータコイルの抵抗値 {\displaystyle R}
  • モータコイルのインダクタンス {\displaystyle L}
  • モータに印加する電圧 {\displaystyle e}

電流に関する回路の方程式は次のような微分方程式なります。

{\displaystyle 
\begin{equation}
L\frac{d i}{d t}  + R i + K \omega= e 
\end{equation}
}

ここでもっぱら行われる簡単化のテクニックとしてインダクタンス {\displaystyle L}が他の定数に比して十分に小さい場合は0と考えて電流の微分項を無視するというのがあります。すると上式は電流に関する代数方程式になり、次のようになります。

{\displaystyle 
\begin{equation}
R i + K \omega= e 
\end{equation}
}

上式を電流について解くと、以下のようになります。

{\displaystyle 
\begin{equation}
 i = \frac{e - K \omega}{R} 
\end{equation}
}

モータ軸の角速度の運動方程式

上式を、先ほど導出した以下のモータの運動方程式

{\displaystyle 
\begin{equation}
\left(J_{M} + \frac{J_{T}}{\eta^{2}}  + \frac{Mr^{2}}{\eta^{2}} \right) \frac{d \omega}{d t} + D \omega= K i 
\end{equation}
}

に代入すると以下のようになります。

{\displaystyle 
\begin{equation}
\left(J_{M} + \frac{J_{T}}{\eta^{2}}  + \frac{Mr^{2}}{\eta^{2}} \right) \frac{d \omega}{d t} + D \omega= \frac{K e - K^{2} \omega}{R}
\end{equation}
}

更に整理します。

{\displaystyle 
\begin{equation}
\left( J_{M} + \frac{J_{T}}{\eta^{2}}  + \frac{Mr^{2}}{\eta^{2}} \right) \frac{d \omega}{d t} + \left( D + \frac{K^{2}}{R} \right) \omega= \frac{K}{R} e
\end{equation}
}

上式が移動ロボットを駆動するモータ軸の角速度を表す運動方程式となります。長かったですが、ひとまずの結論です。これを更に、ロボットの速度視点で書き直してみます。

ロボットの速度の運動方程式

上式からロボットの速度に関する運動方程式を求めます。 そのため、上式に次のモータの角速度とロボットの速度の関係を表す式

{\displaystyle 
\begin{equation}
\omega = \frac{\eta}{r} v
\end{equation}
}

を代入します。

{\displaystyle 
\begin{equation}
\left( J_{M} + \frac{J_{T}}{\eta^{2}}  + \frac{Mr^{2}}{\eta^{2}} \right) \frac{\eta}{r} \frac{d v}{d t} + \left( D + \frac{K^{2}}{R} \right) \frac{\eta}{r} v = \frac{K}{R} e
\end{equation}
}

整理します。

{\displaystyle 
\begin{equation}
\left( \frac{\eta J_{M}}{r} + \frac{J_{T}}{r \eta}  + \frac{Mr}{\eta} \right) \frac{d v}{d t} + \left( \frac{\eta D}{r} + \frac{\eta K^{2}}{Rr} \right)  v = \frac{K}{R} e
\end{equation}
}

各定数の影響

ようやくモータ又は速度の運動方程式がもとまりました。入力する電圧から出力の速度を求める準備ができたわけです。これらの式を眺めてみるとどのような変数が運動に対して支配的なのかもわかってきます。どの様な定数を持つモータを選定するべきなのか、減速比をどのようにするべきなのか、どのような定数は場合によっては無視しても結果にさほど影響がないのか色々わかってくるわけです。 これら二つからモータの慣性モーメントはモータの回転にとってもロボットの運動として見た場合も、影響があることがわかります。タイヤやロボットの質量の影響は減速比である程度緩和できそうです。減速比の調整で加速度や最大速度も調整できそうだということももしかしたらわかってくるかもしれません。

運動方程式ラプラス変換で解く

求められたロボットの速度に関する微分方程式

{\displaystyle 
\begin{equation}
\left( \frac{\eta J_{M}}{r} + \frac{J_{T}}{r \eta}  + \frac{Mr}{\eta} \right) \frac{d v}{d t} + \left( \frac{\eta D}{r} + \frac{\eta K^{2}}{Rr} \right)  v = \frac{K}{R} e
\end{equation}
}

については、ロボットの各部品要素の定数が式の中に散りばめられているので一見すると長くて難しそうな感じを受けるのですが、次のように記述すると1階の線形微分方程式なので なんとなく解けそうな気がしてきますし、実際に解析的に解くことができます。

{\displaystyle 
\begin{equation}
A\frac{d v}{d t} + B v = C e
\end{equation}
}

ここで、上式のそれぞれの係数は以下のようになります。

{\displaystyle 
\begin{equation}
A = \frac{\eta J_{M}}{r} + \frac{J_{T}}{r \eta}  + \frac{Mr}{\eta}
\end{equation}
}
{\displaystyle 
\begin{equation}
B = \frac{\eta D}{r} + \frac{\eta K^{2}}{Rr}
\end{equation}
}
{\displaystyle 
\begin{equation}
C =  \frac{K}{R}
\end{equation}
}

それでは

{\displaystyle 
\begin{equation}
A\frac{d v}{d t} + B v = C e
\end{equation}
}

ラプラス変換するとどうなるか考えるとラプラス変換微分はsの掛け算で表すので

{\displaystyle 
\begin{equation}
AsV(s) + B V(s) = C E(s)
\end{equation}
}

となります。ラプラス変換とは時間の関数を周波数sの関数に変換することなのですが 形式上は小文字で表された時間関数{\displaystyle v(t)}{\displaystyle e(t)} を大文字で表された {\displaystyle V(s)}{\displaystyle E(s)}に置き換える 作業です。元の微分方程式微分されている関数については{\displaystyle s}微分されている階数分だけ掛けておきます。 初期値が0でない場合は、もう少し複雑になりますがここでは省略します。

上式を整理すると以下のようになります。

{\displaystyle 
\begin{equation}
(As + B )V(s) = C E(s)
\end{equation}
}

もう少し整理を進めると以下のように書けます。

{\displaystyle 
\begin{equation}
V(s) = \frac{C}{(As + B )} E(s)
\end{equation}
}

続く