倒立振子
倒立振子(とうりつしんし inverted pendulum)とは、支点よりも重心が高い位置にある振り子をいう。写真に示すように、支点を台車に載せて実装する、台車駆動型倒立振子がよく知られている。ほとんどの応用例において振り子はある回転軸まわりにのみ運動するよう固定されており、自由度は1に制限されている。振り子は吊り下げられた状態が安定であり、したがって倒立振子は本質的に不安定であるため倒立状態を保つためには常に能動的に制御する必要がある。このためには支軸に直接トルクを加えたり、支点を水平方向もしくは鉛直方向に移動させることにより振り子の錘の回転速度を変化させることにより総トルクを変化させたりしてフィードバック系を構築する。支点を動かす型の倒立振子の一番簡単な例は、箒を手の上に立たせる系である。倒立振子は動力学と制御論における古典的な問題であり、制御戦略の試験用ベンチマークとして用いられる。また、パーソナルモビリティ分野において二輪倒立振子(例: セグウェイ)や自立安定一輪車(例: ホンダ・U3-X)などの形式で応用されつつある。
別の種類の倒立振子として、高層建築に用いられる傾斜計が挙げられる。建築物の基部にワイヤの一端を固定し、他端につけた浮きを建築物の最上部に油で浮かべ、浮きの平衡位置の変化を測定することで傾斜を検出する。
倒立振子は動力学および制御論における古典的な問題であり、制御アルゴリズム(PID制御、状態空間表示、ニューラルネットワーク、ファジィ制御、遺伝的アルゴリズムなど)の試験用ベンチマークとして広く用いられている。この問題はリンクの追加や台車への移動指令、台車をシーソーの上に載せるなどの様々な拡張が可能である。また、ロケットやミサイルは空気抵抗の力の中心が重心よりも前側にあるため空気力学的に不安定であり、その誘導制御問題と倒立振子問題は関連している。このような問題を理解するため、単純なロボット台車の上に載せた倒立振子が用いられることが多い。手の上に箒を立てる遊びや、自律平衡型の輸送機械であるセグウェイなどもこの問題の解である。
フィードバックに頼らず倒立振子を安定化する別の方法として、支点を上下に高速に振動させる方法がある。このような装置をカピッツァの振り子と呼ぶ。支点を(加速度と振幅の意味で)十分に強く振動させることにより、直感には強く反するが倒立振子に加えられた擾乱から回復することが可能となる。支点が単振動する場合は、振り子の動きはマシュー方程式により記述することができる。
倒立振子の運動方程式は、倒立振子に課せられる拘束によって変化する。倒立振子の構成には様々なものがありうるため、それらを記述する運動方程式も数多く存在する。
振り子の支点が空間的に固定されている場合、運動方程式は非倒立振子のものと同一となる。次に示す方程式は運動に抗する摩擦力がなく、棒は質量のない剛体と見做すことができ、平面内に運動が制限されているという仮定をおいた場合の運動方程式である。
\ddot \theta - {g \over \ell} \sin \theta = 0
ここで、θ は角加速度を、g は重力加速度を、ℓ は振り子の長さを、θ は平衡位置からの変位角を表わす。
片々足し合わせることにより角加速度項と重力項が同符号となるように変形することもできる。
\ddot \theta = {g \over \ell} \sin \theta
したがって、倒立振子は不安定平衡点からみた初期位置の方向に向かって、長さに反比例した加速度で遠ざかることがわかる。したがって、振り子は長い方が短い振り子よりも遅く落ちる。
トルクと慣性モーメントを用いた導出
質量 m の質点を、長さ ℓ の質量のない剛体棒の支点と逆側に固定した構成の振り子を考える。
系の総トルクは慣性モーメントと角加速度をかけた値に等しくなる。
\boldsymbol{\tau}_{\mathrm{net}=I \ddot \theta
重力による総トルクは以下のように書ける。
\boldsymbol{\tau}_{\mathrm{net}= m g \ell \sin \theta\,\!
ここで、θ は倒立平衡点から測った変位角である。
したがって、次の運動方程式を得る。
I \ddot \theta= m g \ell \sin \theta\,\!
質点の慣性モーメントは次のように得られる。
I = m R^2
倒立振子の場合、動径は棒の長さ ℓ に等しい。
I = mℓ2 を代入すると以下が得られる。
m \ell ^2 \ddot \theta= m g \ell \sin \theta\,\!
mℓ2 で辺々割って次を得る。
\ddot \theta = {g \over \ell} \sin \theta
台車駆動型倒立振子は図のように、質量 m の質点を長さ ℓ の棒の先に付け、逆側を水平に動ける台につけた構成である。台車は線形運動しかしないものとし、運動を起こさせたり妨げたりするような力がはたらくものとする。
倒立振子を安定化するための要点は定性的に三つのステップにまとめることができる。
もし傾き角 θ が右向きならば台車は右に加速する必要があり、逆もまたなりたつ。
軌条中心からの相対台車位置 x を安定させるには、ヌル角度(制御系がゼロにしようとする角度誤差)を位置で変調すればよい。具体的にはヌル角度を θ + kx とする。ただし、k は小さくとる。これにより、台車が軌条中心から外れているなら棒は中心に向けてわずかに傾こうとするので、台車は中心向きに加速する。軌条中心では棒が鉛直に立つことで安定となる。傾きセンサのオフセットや軌条の傾きなどの不安定要素は安定位置のオフセットとして表われる。さらにオフセットを追加すると位置制御ができる。
クレーンで荷を運ぶときのように、運動する支点に吊り下げられた非倒立振子の応答には振り子の角振動数 ωp = g/ℓ にピークがある。制御不能な振動を防ぐため、ωp に近い支点運動の周波数スペクトルを抑制する必要がある。倒立振子でも、安定化のために同じようなフィルタが必要となる。
ヌル角度変調戦略の結果として、位置フィードバックは正のフィードバックとなり、突然右に動くよう指令すると台車はまず左へ動いてから右へ傾いた振り子を再び平衡にするため右へと移動する。倒立振子の不安定性と、正の位置フィードバックによる不安定性との相互作用により系は安定となっており、これを数学的に解析することは興味深く奥の深い問題となっている。
ラグランジュ方程式から運動方程式を導出することもできる。前掲の図のように、θ(t) を長さ ℓ の振り子の直立位置からの変位角とし、作用する力は重力および x 方向への外力 F とする。 x(t) を台車の位置と定義すると、系のラグランジアン L = T − V は以下のように書ける。
L = \frac{1}{2} M v_1^2  + \frac{1}{2} m v_2^2 - m g \ell\cos\theta
ここで v1 は台車の速度、 v2 は質量 m の質点の速度とする。v1 および v2 は x と θ の導関数を用いて次のように書ける。
v_1^2=\dot x^2
v_2^2=\left({\frac{\mathrm d}{\mathrm dt}{\left(x- \ell\sin\theta\right)}\right)^2 + \left({\frac{\mathrm d}{\mathrm dt}{\left( \ell\cos\theta \right)}\right)^2
v2 の表式を展開すると以下のようになる。
v_2^2= \dot x^2 -2 \ell \dot x \dot \theta\cos \theta + \ell^2\dot \theta^2
すると、ラグランジアンは次のように書ける。
L = \frac{1}{2} \left(M+m \right ) \dot x^2 -m \ell \dot x \dot\theta\cos\theta + \frac{1}{2} m \ell^2 \dot \theta^2-m g \ell\cos \theta
ここで、オイラー・ラグランジュの運動方程式は次の表式である。
\frac{\mathrm{d}{\mathrm{d}t}{\partial{L}\over \partial{\dot x} - {\partial{L}\over \partial x} = F
\frac{\mathrm{d}{\mathrm{d}t}{\partial{L}\over \partial{\dot \theta} - {\partial{L}\over \partial \theta} = 0
この方程式系における L に上の表式を代入すると、倒立振子の運動を記述する方程式系が次のように得られる。
\left ( M + m \right ) \ddot x - m \ell \ddot \theta \cos \theta + m \ell \dot \theta^2 \sin \theta = F
\ell \ddot \theta - g \sin \theta = \ddot x \cos \theta
この方程式系は非線形であるが、制御系の目標は振り子を直立に保つことなので、θ ≈ 0 近傍で線形化することが多い。
ラグランジュ方程式の代わりに、ニュートンの第二法則を用いる方が利点が多いことが多い。ニュートン方程式を用いれば、振り子と台車の間の結節点における反力が得られる。すると、それぞれの物体について x 方向と y 方向のあわせて二つの方程式が得られる。台車の運動方程式は次のようになる。ただし、左辺は合力、右辺は加速度を表わす。
F-R_x = M \ddot x
F_N - R_y - M g = 0
ここで、Rx および Ry は結節点における反力を表わす。FN は台車にかかる垂直抗力である。二つ目の方程式は鉛直方向の反力にしか依存しないので、垂直抗力を解くのに用いることができる。一つ目の方程式は水平方向の反力を解くのに用いることができる。この運動方程式系を完成させるには、振り子に固定された質点の加速度を計算する必要がある。慣性座標系における質点の位置は次のように表わすことができる。
\vec r_P = (x-\ell \sin \theta) \hat x_I + \ell \cos \theta \hat y_I
二階微分をとることにより慣性系における加速度ベクトルを得る。
\vec a_{P/I} = (\ddot x + \ell \dot \theta^2 \sin \theta - \ell \ddot \theta \cos \theta ) \hat x_I + (-\ell \dot \theta^2 \cos \theta - \ell \ddot \theta \sin \theta) \hat y_I
第二運動法則を用いて、 x 方向と y 方向の二つの方程式を得る。質点にかかる反力は台車にかかる反力と逆符号になることに注意されたい。これはニュートンの第三法則から帰結する。
R_x = m(\ddot x + \ell \dot \theta^2 \sin \theta - \ell \ddot \theta \cos \theta )
R_y - m g = m (-\ell \dot \theta^2 \cos \theta - \ell \ddot \theta \sin \theta)
一つ目の方程式から、外力 F によらず水平方向の反力を計算する方法が得られる。 二つ目の方程式は鉛直方向の反力の計算に用いることができる。一つ目の運動方程式は F-R_x = M \ddot x を R_x = m(\ddot x + \ell \dot \theta^2 \sin \theta - \ell \ddot \theta \cos \theta ) に代入して次のように得られる。
\left (M+m \right) \ddot x - m \ell \ddot \theta \cos \theta  + m \ell \dot \theta^2 \sin \theta  = F
この方程式をよく見れば、ラグランジュ法による方程式と同じであることがわかる。二つ目の方程式を得るには、振り子の運動方程式と、常に振り子に直交する単位ベクトルとのドット積をとる必要がある。このベクトルは物体系の x 座標と呼ばれることが多い。慣性座標系ではこのベクトルは単純な二次元座標変換を用いて以下のように表わされる。
\hat x_B = \cos \theta \hat x_I + \sin \theta \hat y_I
ベクトル表記で書いた振り子の運動方程式は \sum \vec F = m \vec a_{P/I} のようになる。この両辺と xB とのドット積を取ると、求める運動方程式の左辺は次のようになる(転置をとってかけるとドット積になることに注意)。
(\hat x_B)^T\sum \vec F = (\hat x_B)^T (R_x \hat x_I + R_y \hat y_I - m g \hat y_I) = (\hat x_B)^T(R_p \hat y_B - m g \hat y_I) = -m g \sin \theta
上の式展開においては反力の物体系成分と慣性系成分との関係式が用いられている。質点と台車を繋ぐ棒が質量を持たないという仮定から、この棒は自身に垂直な負荷をまったく伝えないと考えられる。したがって、反力の物体系成分は単に Rp yB のように書け、棒に沿った成分しか存在しないことがいえる。このことから、棒の張力に関して次の方程式が得られる。
R_p = \sqrt{ R_x^2 + R_y^2}
同様に、先に示した加速度 aP/I の式と xB とのドット積を取ることで、求める運動方程式の右辺も計算することができる。その結果は(少々整理すると)以下のようになる。
m(\hat x_B)^T(\vec a_{P/I}) = m(\ddot x \cos \theta - \ell \ddot \theta)
左辺と右辺を繋いで m で割ると以下を得る。
\ell \ddot \theta - g \sin \theta = \ddot x \cos \theta
これもまた、ラグランジュ法による方程式と同一である。ニュートン法を用いる利点は、全ての反力が明らかであり、損壊がないことを保証できる点にある。
質量の無い、振動する台に繋がれた振り子の運動方程式は台車に繋がれた振り子と同じように導出することができる。質点の位置はこの場合は次のように表わされる。
\left( -\ell \sin \theta , y + \ell \cos \theta    \right)
そして、位置の一階微分をとることにより速度が得られる。
v^2=\dot y^2-2 \ell \dot y \dot \theta \sin \theta  + \ell^2\dot \theta ^2
この系のラグランジアンは次のように書ける。
L = \frac{1}{2} m \left ( \dot y^2-2 \ell \dot y \dot \theta \sin \theta  + \ell^2\dot \theta ^2   \right) - m g \left( y + \ell \cos \theta  \right )
そして、オイラー・ラグランジュ方程式
{\mathrm{d} \over \mathrm{d}t}{\partial{L}\over \partial{\dot \theta} - {\partial{L}\over \partial \theta} = 0
から次の運動方程式が得られる。
\ell \ddot \theta - \ddot y \sin \theta = g \sin \theta
ここで、y が単振動 y = A sin ωt で表わされる場合、次の微分方程式を得る。
\ddot \theta - {g \over \ell} \sin \theta = -{A \over \ell} \omega^2 \sin \omega t \sin \theta
この方程式は閉形式の基本解を持たないが、様々な方法で調べることができる。たとえば、振幅が小さい場合はマシュー方程式により精度よく近似することができる。解析により、振動が速ければ振り子が直立を保つことがわかる。下図のプロットの一つ目は y の振動が遅い場合には振り子を直立状態からずらすとすぐに倒れてしまうことを示している。短時間で θ は 90°を超えており、つまり振り子は倒れてしまっている。y の振動が速ければ振り子は直立位置の周りで安定に保たれる。二つ目のプロットは振り子が直立位置 (θ = 0) からずれてもその近傍で振動することを示している。直立位置からのずれは小さくたもたれ、倒れてしまうことはない。
倒立振子を安定させることは広く取り組まれている工学的課題である。台車駆動型倒立振子にも、棒を載せただけのものから振り子が複数の節に分かれているものまで様々な変種がある。その他にも、倒立振子の棒もしくは節分けされた棒を回転部品の端にとりつける種類のものがある。台車型と回転型のいずれの場合でも、倒立振子は平面内でしか運動しない。平衡位置にある倒立振子を維持するのが課題である場合もあれば、自律的に平衡位置を達成することが求められる場合もある。また、二輪倒立振子という別のプラットフォームもある。二輪倒立振子では一点での回転が可能であり、格段に高い操作性を実現できる。その他にも、一点上での平衡をとるものもある。コマや 一輪車、ボール上の倒立振子はすべて一点上で平衡をとる。上で説明したように、鉛直に振動する台によっても倒立振子を安定化することができる。
倒立振子には人造のものも自然のものも含めて様々な例がある。
最も身近な倒立振子はヒトであるといわれる。直立した体を持つヒトは、常に平衡を保つための調整を行なっていなければ立つことも歩くことも走ることもできない。
単純な例として、箒や定規を手の上で直立させる遊びが挙げられる。
倒立振子は様々な装置に組込まれており、また特異的な工学的問題として研究されている。倒立振子は本質的に不安定なので擾乱に対して計測可能な応答を示すため、初期の地震計の設計における中心的要素として採用されていた。
倒立振子模型はいくつかのパーソナルモビリティにも採用されている。二輪車椅子やその他の二輪モーター車両により高い移動性を確保することができる。