In Silico

シミュレーション・制御・実機

倒立振子を立たせてみる——あなた、機械、そして遅延

2026/6/24

台車の上に、棒が一本ヒンジで立っている。台車を左右に動かして、棒を倒さないように保つ——これが倒立振子、制御とAIの最小の実験場である(解説記事)。下の振子は、あなたのブラウザの中で本物の運動方程式に従って動いている。三つ、試してほしい。

「あなたが操作」モード。← → かボタンで台車を押し、棒を立て続けてください。

仕組み——数式で書くとどうなるか(クリックで展開)

式はすべて上のデモの実装そのままである。状態は4つの数 s=[x,x˙,θ,θ˙]\mathbf{s} = [x,\, \dot{x},\, \theta,\, \dot{\theta}](台車位置・台車速度・棒の角度・角速度。θ\theta は鉛直からの傾きで、0 が真上)。物理定数は台車 M=1.0M=1.0、棒 m=0.1m=0.1、棒の半長 =0.5\ell=0.5、重力 g=9.8g=9.8、加える力 FF

  1. 運動方程式(標準の台車‑振子)。FF と現在の状態から、台車の加速度 x¨\ddot{x} と棒の角加速度 θ¨\ddot{\theta} を出す。分母の 4/34/3 は、棒を一様な剛体棒とみなしたときの慣性モーメントから来る項である。
temp=F+mθ˙2sinθM+m\text{temp} = \frac{F + m\ell\dot{\theta}^2\sin\theta}{M + m}θ¨=gsinθcosθtemp ⁣(43mcos2θM+m)\ddot{\theta} = \frac{g\sin\theta - \cos\theta \cdot \text{temp}}{\ell\!\left(\dfrac{4}{3} - \dfrac{m\cos^2\theta}{M+m}\right)}x¨=tempmθ¨cosθM+m\ddot{x} = \text{temp} - \frac{m\ell\ddot{\theta}\cos\theta}{M+m}
  1. 一歩進める(準陰的オイラー、Δt=0.02\Delta t = 0.02 秒=50Hz)。 まず加速度で速度を更新し、その更新後の速度で位置を進める(速度を先に使うこの順序=準陰的オイラーは、素朴なオイラーより振動系で安定する)。
x˙x˙+x¨Δt,xx+x˙Δt\dot{x} \leftarrow \dot{x} + \ddot{x}\,\Delta t, \qquad x \leftarrow x + \dot{x}\,\Delta tθ˙θ˙+θ¨Δt,θθ+θ˙Δt\dot{\theta} \leftarrow \dot{\theta} + \ddot{\theta}\,\Delta t, \qquad \theta \leftarrow \theta + \dot{\theta}\,\Delta t
  1. 自動操縦=LQR(線形二次レギュレータ)。 4つの状態それぞれに重み KK を掛けて足し、その符号を反転した力を加える=F=KsF = -K\mathbf{s}。ゲイン KK は、上の非線形式を真上まわりで線形化したモデルに対しリッカチ方程式をオフラインで解いて求め(解説記事と同じ方法)、非線形シミュで検証した固定値である。力は ±60\pm 60 にクランプする。
F=(K0x+K1x˙+K2θ+K3θ˙)F = -(K_0 x + K_1 \dot{x} + K_2 \theta + K_3 \dot{\theta})K=[5.8159, 10.6212, 76.2852, 19.471]K = [-5.8159,\ -10.6212,\ -76.2852,\ -19.471]
  1. 遅延=この記事の主役。 制御が計算した力をすぐには効かせず、いったんキューに積んで nn ステップ遅らせてから台車に渡す(スライダーが nn を 0〜6 ステップ=0〜120ms で動かす)。完璧なはずの LQR でも、わずか数十 ms の作動遅延でゲインの符号合わせが間に合わなくなり、振動が増幅して発散する。これがsim2realギャップ——実機の作動には必ず遅延があり、シミュには無い——を一行で再現している。棒が θ>0.9rad|\theta|>0.9\,\text{rad} 傾くか台車が軌道端(x>2.4|x|>2.4)に達したら「転倒」。

物理は標準的な台車‑振子の運動方程式、自動操縦はその線形化からRiccati方程式で解いたLQRゲイン——記事と同じ方法である。遅延を上げると、完璧な制御則でも発散する。価値は派手な表面でなく、その下の測定と、測れなかったもの(遅延)の中にある。

この記事はAIが下書きし、人間が編集・公開しています。