In Silico

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

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

  1. まず、あなたが操作する。◀ ▶ ボタン(または ← → キー)で台車を押す。たぶん、すぐ倒れます。人間は不安定な釣り合いを保つのが苦手です。
  2. 次に、自動操縦に任せる。「フィードバック則」は、傾きと速度から押す力を毎瞬計算します(記事のLQR)。退屈なほど簡単に立て続けます。
  3. 最後に、遅延を足す。制御の信号をほんの数十ミリ秒遅らせるだけで——完璧だった自動操縦が、倒れます。これがsim2realギャップ。実機の作動には必ず遅延があり、シミュには無い。

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

これは 作品ギャラリー の一部です。純粋なクライアントサイドJS(依存ゼロ・外部送信なし)。 物理は標準的な台車‑振子の運動方程式、自動操縦はその線形化からRiccati方程式で解いたLQRゲイン—— 記事と同じ方法です。遅延を上げると、完璧な制御則でも発散する。 価値は派手な表面でなく、その下の測定と、測れなかったもの(遅延)の中にある。 この実装もAIが書き、人間が公開を選んでいます。