[0] MAXIMAを用いて、倒立振子の運動方程式を導出し、非線形状態方程式を求め、これを平衡状態まわりで線形化(1次近似)し、線形状態方程式を求めます。
そのために必要となるのが、ベクトル値多変数関数
の まわりの1次近似式
です。これは、たとえば、 のとき、次のように計算されます。
[1] 振り子PEN
上図の振り子PENを見てください。長さ、 の振り子の重心周りの慣性モーメントは
のように計算できます。これから,振り子の軸まわりの慣性モーメントは、平行軸の定理を使って
のように与えられます。また、軸まわりのトルクは
のように表わされます。したがって、振り子の運動方程式は、次式となります。
それでは、この運動方程式を、ラグランジュの方法で導出してみます。その手順は次のようになります。
まず、振り子の重心のx、y座標と、軸周りの慣性モーメントは
ですから、運動エネルギーと位置エネルギーは
となり、ラクランジアンを
として、ラグランジュの運動方程式は
となります。これから振り子の運動方程式が得られます。
それでは、MAXIMAを用いて、振り子の運動方程式を導出してみましょう。
/*pen.wxm*/
dth:’diff(th(t),t);
ddth:’diff(th(t),t,2);
x:ell*sin(th(t));
y:ell*cos(th(t));
J:(1/3)*m*ell^2;
T:(1/2)*m*(diff(x,t)^2+diff(y,t)^2)+(1/2)*J*dth^2;
V:m*g*ell*cos(th(t));
L:T-V;
LE:diff(diff(L,dth),t)-diff(L,th(t))=0,trigreduce;
sol:solve(LE,ddth);
次に、2階微分を含む運動方程式を1階微分だけの連立微分方程式に変換し、これをベクトル表示します。
すなわち、状態変数ベクトル
を定義するとき、振り子の非線形状態方程式
ただし
が得られました。ところで、振り子は2つの平衡状態(物理的な釣り合いの状態)を持ちます。
これらは次のように特徴付けられます。
すなわち
そこで、振り子の非線形状態方程式を、平衡状態まわりで線形化(1次近似)します。
ただし
これから、振り子の線形状態方程式
すなわち
を得ます。以上の計算をMAXIMAを用いて実行するには、次のコマンドを与えます。
f:matrix([dth],[rhs(sol[1])]);
A:matrix([diff(f[1,1],th(t)),diff(f[1,1],dth)],[diff(f[2,1],th(t)),diff(f[2,1],dth)]);
A1:A,th(t)=0;
A2:A,th(t)=%pi;