| LIB "control.lib";
// TwoPendula with L1=L2=L
ring r=(0,m1,m2,M,g,L),Dt,dp;
module RR =
[m1*L*Dt^2, m2*L*Dt^2, -1, (M+m1+m2)*Dt^2],
[m1*L^2*Dt^2-m1*L*g, 0, 0, m1*L*Dt^2],
[0, m2*L^2*Dt^2-m2*L*g, 0, m2*L*Dt^2];
module R = transpose(RR);
list C = control(R);
list CC = canonize(C);
view(CC);
==> number of first nonzero Ext:
==>
==> 1
==>
==> not controllable , image representation for controllable part:
==>
==> -Dt^2 ,
==> -Dt^2 ,
==> (M*L)*Dt^4+(-m1*g-m2*g-M*g)*Dt^2,
==> (L)*Dt^2+(-g)
==>
==> kernel representation for controllable part:
==>
==> 1,0,0,
==> 0,1,0,
==> 0,0,1
==>
==> obstruction to controllability
==>
==> 1,0,0 ,
==> 0,1,0 ,
==> 0,0,(L)*Dt^2+(-g)
==>
==> annihilator of torsion module (of obstruction to controllability)
==>
==> (L)*Dt^2+(-g)
==>
==> dimension of the system:
==>
==> 1
==>
|