曲がった床の上を、滑ったり転がったりしている剛体の運動方程式を求めたい。
運動方程式()の拘束力 と拘束トルク を求めたい
床の上で運動する剛体の運動を計算したい。剛体に課せられる拘束条件としては、「滑り拘束(=摩擦なく滑る)」と「転がり拘束(=摩擦が働き、全く滑らずに転がる)」を考える。
運動方程式を求めれ場良いわけだが、そのための戦略として2種類が考えられる。1つ目は、前章のように自由な速度を求め、その速度に対する運動方程式を立てる方法。2つ目は、拘束の無い剛体の運動方程式(第11章の11.1節)に、拘束力の総和
と拘束トルク
を加えたもの:(添え字
は重心を基準にしていることを表す)
を用いる方法である。
を求めれば、運動方程式が確定することになる。
今考えている状況では、拘束を受ける点(=床と接触している点)が時々刻々変わるので、1つ目の方法は難しそうである。よって、式()を用いる2つ目の方法を採用しよう。
即ち、
を求めることが目的となる。そのためには第8章と同様に、拘束条件を式で表してやればよい。そうすれば、ダランベールの原理から拘束力が決まり、
も決まることになる。
従って、議論すべきは、拘束条件から
を求める公式の導出と、床の上を運動する剛体に課せられた拘束条件の定式化である。この章では、この方針に従って、以下のように4つの節に分けて議論する。
拘束が追加された剛体の運動方程式剛体と床が接している条件滑り拘束転がり拘束
13.1拘束条件が追加された剛体の運動方程式
計算を見やすくするため、運動方程式()を以下のようにまとめておく:
ただし、各々の記号は以下のように定義している:
運動方程式を決めるためには、
(これも拘束力と呼ぶことにする)を求めればよい。重心を基準にしているので
などは
のように書いたほうがよいが、見づらいので省略している。
この節では、剛体に拘束条件を課した時の拘束力
を一般的に求め、その場合の運動方程式()を導く。これにより、後の節で滑り・転がりの場合の拘束条件を求めれば、運動方程式が確定する。
剛体の速度 に対する拘束条件の一般系:式()
まず、剛体の速度
に対する拘束条件が、どのような形で与えられるかを考える。一般に、座標
に対する拘束条件の場合は
の形で与えられる。速度
に対する条件は、これを
で微分したもの:
である。
剛体の場合、
は質点要素の速度である。
と剛体の速度
の関係式は、ある行列
を用いて
の形で書ける(第11章の【11.1-注1】)。そこで、この関係式を式()に代入して得られる
の形の式が、
に対する拘束条件の一般系だと仮定しよう。拘束条件が時間に依存しない場合には、式()の場合と同様に、
となるだろう。速度の式()は、座標の式()が存在することを前提として導いた。しかし、この2つは等価ではない。詳しくはこの節の最後の【13.1-注2】で述べるが、例えば、転がり拘束の場合、拘束条件は速度の式()の形で書けるにもかかわらず、座標の式()の形にすることはできない(存在しない)。即ち、速度に対する拘束条件()は、座標の式()よりも広いものとなっている。
ダランベールの原理()により、運動方程式は式()
拘束条件()から拘束力
を導くには、ダランベールの原理(第8章の8.2節)を適用すればよい。ダランベールの原理とは「拘束面と拘束力が垂直になる」というものであった。拘束面は、「時間依存性を無視した時の拘束条件」を満たす速度
で張られる空間である。
今の場合、拘束面は、式()で時間依存性を除いた
を満たす
が張る空間である。この式を
の関係式にするには、式()の両辺に
を左乗するだけである:
よってダランベールの原理により、拘束条件()による拘束力
は、この式()を満たす全ての
と垂直になる。即ち、ある未定乗数
を用いて、以下のように書ける:
垂直という条件
を満たすことは実際に上式を代入すれば分かる。
という記号は、
および
の略記である(両方とも同じ値になる)。
次に、式()を、式()の拘束力
の形にする必要がある。これは、第11章の11.1節で
を求めたときと同様に、
を左乗すればよい:
これが、剛体に拘束条件を追加した時のダランベールの原理である。
後は、
を求めれば、拘束力
が確定する。その方法は第8章の場合と同様で、運動方程式()と拘束条件()を連立するだけである。実際に計算すると、求める運動方程式は、以下の【13.1-注1】のようになる。
【13.1-注1】拘束された剛体の運動方程式:式()
剛体に、速度
に対する拘束条件
が課せられているとする。この時、剛体の運動方程式は以下のようになる:
なお、
は以下のように書ける:(第11章の【11.1-注3】)
導出
ダランベールの原理()を運動方程式()に代入すれば、式()の形になる。後は、未定乗数
が式()になることを示せばよい。
は、拘束条件()から決まる。即ち、運動方程式()の左辺の時間微分を実行したもの:
を、拘束条件()の時間微分:
に代入して
を消去すればよい。その式を
の形に変形すれば、式()になる。
初期値に対する拘束条件には要注意
運動方程式()が得られたので、初期値を与えれば運動を計算することができる。初期値は、拘束条件を満たすように取っておく必要があるが、これがなかなかに厄介である。初期値さえ拘束条件を満たしていれば、運動方程式()の解は、自動的に拘束条件を満たし続ける。
まず、
における初期速度
は、もちろん拘束条件()を満たさなければならない。しかし、これだけではない。一般に、拘束条件は
だけでなく、剛体の位置
と向き
に対しても課されている(例えば床に接しているという条件)。従って、
における
についても、何らかの拘束条件が課されることになる。
もし、拘束条件が、速度
を含まない関係式
の形に書けたならば、初期値が満たすべき拘束条件は、第8章のように、
である。その場合、拘束条件()は
と等価である。問題は、式()に対応する
が常に存在するとは限らないということである。
が存在する場合、拘束条件は可積分であるといい、存在しない場合、非可積分であるという(以下の【13.1-注2】)。非可積分な拘束条件の場合、速度
を含んだ形でしか書けず、
に対する条件は出ない(式()のみとなる)。
従って、式()の形で拘束条件が与えられている場合、正しい初期値を与えるためには、その式が可積分かどうかを判定し、可積分であれば、対応する
という拘束条件を初期条件に追加する必要がある。拘束条件の一部が非可積分という場合もある。13.4節で述べるが、転がり拘束の場合がそうであり、床に接するという条件は可積分だが、転がるという条件は非可積分になる。
【13.1-注2】非可積分な拘束条件
一般に、拘束条件
が、何らかの拘束条件
の時間微分
と等しい時、式()は可積分(あるいはホロノミック)であると言う。逆に、
が存在しない場合、非可積分(あるいは非ホロノミック)であるという。
可積分性の判定には、第15章の15.3節で述べるフロベニウスの定理をつけばよい。
補足
- 可積分な拘束条件として例えば、
という拘束条件は、
と書けるので、可積分である。これは、原点からの距離
が一定という拘束条件である。運動を計算する際には、
は問題設定の中で与えられているだろう。
- 可積分の場合には、式()を満たす
を特定したいわけだが、単純に、式()と式()の左辺同士を見比べて
となる
を探せばよいというわけではない。というのも、拘束条件()には、逆行列を持つ任意の関数
(行列)を両辺に掛ける自由度があるからである。従って、解くべきは
である。
を特定するには、この
を見つけなければならないので難易度が高い。第10章の【10.3-注1】で、角速度
に対し、
となるような回転の自由な座標
が存在しないことを示した。その時は偏微分の可換性を使うだけでよかった。今の場合も似た状況ではあるが、式()には未知関数
が含まれるため、可積分性の判定はより複雑である。
- 転がり拘束は、非可積分である。簡単のため水平な床を考えよう。転がり拘束下でのボールの運動の自由度は、「鉛直軸周りのスピン」と「前後に転がす操作」の3自由度である。よって、転がり拘束が可積分であれば、3つの拘束条件(剛体の自由度
-自由度
)
が存在する。これにより、剛体の位置
と向き
の
自由度のうち
成分を決めれば、残りは式()から決まることになる。ということは、剛体の位置を決めれば向きは自動的に決まることになる。しかし、これは現実と矛盾する。実際、床の上でボールを転がしてから元の場所に戻すと、向きが変化することが知られている。よって、可積分ではありえない。
13.2剛体と床が接しているための条件
この節では、剛体と床が接触し続けるために成り立つべき、剛体の速度
に対する拘束条件()を導く。滑り拘束と転がり拘束は両方とも、この条件を満たさなければならない。簡単のため、床と剛体は1点でのみ接しているとする。
モデリング:時刻 での剛体の形状は式()
床の形状を
で表すことにする(右図)。即ち、これを満たす
の集合が床を構成する。
に依存しているように書いているのは、時間とともに床が変形してもよいことを表している。
また、モデル位置における剛体の形状を
で表すことにする。モデル位置は任意であり、床と接触するようにとる必要はない。時刻
において、剛体の位置および向きが
であるとする(
は重心位置、
は回転行列)。この時の剛体の形状
(右図)は、モデル位置での形状
を用いて、以下のように書ける:(
はモデル位置での剛体の重心)
これを示すには、モデル位置での質点要素
が満たす式
に、時刻
での質点要素の位置
を代入して、
を消去すればよい(回転行列の性質
を使う)。
が時間に依存しているように書かれているのは、剛体の運動によって、位置・向きが変わることによるものであり、剛体自体が変形するわけではない。
剛体の位置・向き に対する拘束条件:式()
この節の目的である、剛体と床が接触しているための条件を考える。剛体と床の接触点を
とおく(右図)。接触は1点のみと仮定する。
が満たす条件は、「
が剛体と床の両方の表面にあり、かつその点での接平面が一致する」ことなので、以下のように書ける:
は、ともに
での値である。
は
の大きさを正規化したものである。
はそれぞれ
が大きくなる方向を向くので、右図のように互いに逆を向くことに注意。
式()の第3式は、
成分であるが、
の一方が与えられた時に、他方の向きを決めるだけなので、実際には
つの条件しか与えない。よって、式()は全体として
つの条件を与える。
を決定するには
つの条件が必要なので、剛体に対する拘束条件の数は残りの
つとなる。この
つが
(=剛体の位置・向き)に対する条件を課し、式()を通して剛体の位置・向き
に対する拘束条件になっている。例えば、水平な床の上の球を考えると、拘束条件は球の高さを固定する
つだけであり、水平方向や回転は自由に動ける。
剛体の速度 に対する拘束条件()
運動方程式を導くには、式()の形の拘束条件が必要である。よって、式()を、剛体の速度
に対する条件にしたい。そのためには、式()を時間微分すればよい:(接触点
も時間依存することに注意)
の時間微分には
が含まれているので、この式は、接触点の速度
に対する条件であると同時に、
に対する拘束条件にもなっている。上述の通り、
の時間依存性は、剛体の位置・向きの変化、即ち、
の時間依存性によるものである。
この式()は、
に対する拘束条件と
に対する条件式が合わさったものなので、
を消去することを考える。これは簡単で
式の第式同第式
に、式()の第3式を代入すればよい:
これが
に対する拘束条件であり、式()(
)の形に変形すると、以下の【13.2-注1】の式()のようになる。
【13.2-注1】床との接触条件
床と剛体が接触し続けている時、剛体の速度
に対する拘束条件は、以下のようになる:
床の形状は
で与えられ、
は剛体と床の接触点である。特に、床が静止している場合(
)、この式は、接触点における「剛体の質点要素の速度
」が、
と垂直、即ち、拘束面と平行になっていることを意味しており、直感的にも自然である(そうでなかったら、めり込んだり離れたりしてしまう)。
導出
本文中で求めた
に対する拘束条件():(再掲)
を変形するだけである。この式の
の中に含まれている
を表に出す必要がある。そのためには、
と
の関係式():(再掲)
を使えばよい。この式の両辺の
微分および
微分を取ると、それぞれ以下のようになる:(
が
だけに作用することに注意)
後は、第1式に、第2式を代入して
部分を消去すると
となる。拘束条件()は
の時に成立する式なので、式()において
としたものを式()を代入すれば、与式を得る。(式()の第3式
を使って
を
で置き換える。)
接触点 の速度()
拘束条件()は、接触点
を決める式でもある。実際に
を求めよう。
同式の第3式は3成分の式なので、逆行列をかけて
の形に変形できればよいが、それはできない。実際、同式に現れる単位ベクトルの微分には、「その単位ベクトルと直交する面」への射影行列が含まれるため(第8章の【8.3-注1】)、ある
が解であるとき、
に「
に平行なベクトル」を加えたものも再び解になってしまい一意的には決まらない。
よって、
を求めるには、拘束条件()の第3式と、式()の別の1つの式を連立する必要がある。例えば、第1式に
をかけた
を同第3式に辺々加えると
となる。
にかかる行列は、
にかけてもゼロにならなくなるので、可逆になり、
が求まる:
以上により、速度に関する拘束条件()を、「1つの拘束条件()」と「
を与える3成分の式()」に過不足なく分離することができた。
13.3滑り拘束
この節では、滑り拘束に対する運動方程式の解き方をまとめる。それを用いて、具体的な数値計算を行う。前述のように、今考えているのは、常に1点で接触している状況である。接触点が複数ある場合、あるいは運動の途中で増える場合(衝突運動になることが多いだろう)は考慮していない。逆に、接触点が減る場合も扱えない。例えば、本来であれば空中に飛び上がってしまうような場合でも、床から離れないようにする拘束力が働いて、床にくっついたままになる。
計算方法
剛体が床の上を滑るという拘束条件は、剛体と床が接触しているという前節の条件()そのものである。よって、運動方程式()はすでに確定している。数値的に計算する方法をまとめると、以下のようになる:
1まず、床の形状
と、モデル位置での剛体の形状
を定義する。
2次に、
での初期位置
を、拘束条件()を満たす接触点
が存在するようにとる。初期速度
については、拘束条件()を満たすようにをとる。
3その後の運動は、運動方程式()から計算できる。その解き方は第11章の11.2節と同じである。ただし、
およびその時間微分は拘束条件()で与えられる(
における値である)。その際に現れる
は、式()から求められる。
なお、接触点
は、
から直接計算することも原理的には可能であるが、ステップ毎に直接計算するのは、一般に困難である。その場合、式()の
を用いて
の時間変化を同時に計算していけば良い:
。
【例題】
例として、球を
方向につぶした(あるいは伸ばした)楕円体の剛体:
を取りあげる(
は定数)。密度は一様とする。このモデル位置での慣性モーメント
は、剛体を質点要素に分解して数値的に近似計算してもよいが、今の場合には解析的に計算することができ、以下のようになる:
は剛体の質量である。(導出は第14章で行う。)
数値計算を行うと右図のようになる。
13.4転がり拘束
この節では、転がり拘束での拘束条件が、式()となることを見る。前節の滑り拘束に、滑らないという拘束条件を加えればよい。具体的な数値計算も行う。
拘束条件は式()
滑らないということは、接触点
において剛体と床が相対速度を持っていないということである。即ち、「
に位置している剛体上の質点要素
」の速度:
と「
に位置している拘束面上の点
」の速度
が等しいということである:
よって、式()の形に変形すると
となる。床が静止している場合には、
である。そうでない場合、
を求めるためには、床の上の各点の速度を与える必要がある。しかし、動く壁との衝突(第5章の5.2節)の際にも述べたが、床を定義する
という式の中に、床の水平方向の速度の情報を含めることはできない。そのため、床が動いている場合には、追加でその情報を与えてやる必要がある。
式()は、滑り拘束の条件()を含んでいる。実際、式()の両辺に
を左乗すると、式()に一致する。よって結局、転がり拘束の場合の計算方法は、滑り拘束の場合の拘束条件()を、上式()で置き換えるだけである。
剛体の初期位置・向きに対する拘束条件は、床と剛体が接していることのみなので、滑り拘束の場合と同じである。一方、初期速度・角速度に対する拘束条件は式()の3つを満たす必要がある。位置・向きに対する条件より、速度・角速度に対する条件のほうが多いので、上述の通り、転がり拘束は非可積分(【13.1-注2】)であることが分かる。
【例題】
床が静止している場合、数値計算を行うと右図のようになる。