はじめに SympyはPythonの記号計算パッケージとして有名ですが、ラグランジュ法(ラグランジュの運動方程式)を用いて質点系の運動モデルを導出できる機能についてはあまり知られていないようです。 少し調べてみたところなかなか便利そうなので、この記事では覚え書きも兼ねて、最適制御や強化学習の題材としてよく使われる「倒立振子(Inverted Pendulum)」を例に、運動方程式を導出して線形化するまでの一連の方法について説明してみたいと思います。 なお、この記事ではPython3.6 + Sympy1.2を使用しています。 倒立振子とは 倒立振子は、重心が支点より高い位置にある、つまり逆立ち状態の振り子のことを指します。特に制御工学では、振り子が台車に取り付けられた「台車駆動型倒立振子(CartPole)」を安定化させる問題がよく扱われます。問題設定にはいくつかバリエーションがありますが