Off[General::spell1];
Off[General::spell];
(*position analysis*)
rA={L1*Sin[q1[t]],L1*Cos[q1[t]],0};
rC1={L1*Sin[q1[t]]/2.,L1*Cos[q1[t]]/2.,0};
rB=rA+{L2*Sin[q2[t]],L2*Cos[q2[t]],0};
rC2=rA+{L2*Sin[q2[t]]/2.,L2*Cos[q2[t]]/2.,0};
(*velocity analysis*)
vA=D[rA,t];
vC1=D[rC1,t];
vB=D[rB,t];
vC2=D[rC2,t];
w1={0,0,q1'[t]};
w2={0,0,q2'[t]};
(*acceleration analysis*)
aA=D[vA,t];
aC1=D[vC1,t];
aB=D[vB,t];
aC2=D[vC2,t];
alpha1={0,0,q1''[t]};
alpha2={0,0,q2''[t]};
FO={FOx,FOy,0};
FA={FAx,FAy,0};
G1={0,m1 g,0};
G2={0,m2 g,0};
JC1=m1*L1^2/12.;
JC2=m2*L2^2/12.;
N1=m1 aC1 - FO - FA - G1;
N2=m2 aC2 + FA - G2;
E1=JC1 alpha1 - Cross[(-rC1),FO] - Cross[(rA-rC1),FA];
E2=JC2 alpha2 - Cross[(rA-rC2),FA];
Simplify[N1[[1]]]
Simplify[N1[[2]]]
Simplify[N2[[1]]]
Simplify[N2[[2]]]
solu=Solve[{N1[[1]]==0,N1[[2]]==0,
N2[[1]]==0,N2[[2]]==0},{FOx,FOy,FAx,FAy}];
(*input data*)
inp={m1->0.4,L1->1.,m2->0.8,L2->2.,g->9.8};
soluti = NDSolve[{((E1[[3]] /. solu)[[1]] /. inp) ==
0, ((E2[[3]] /. solu)[[1]] /. inp) == 0, q1[0] == N[Pi/3],
q2[0] == N[Pi]/6, q1'[0] == 0., q2'[0] == 0.}, {q1, q2}, {t, 0., 10.},
MaxSteps -> 2000]
solu=Solve[{N1[[1]]==0,N1[[2]]==0,
N2[[1]]==0,N2[[2]]==0},{FOx,FOy,FAx,FAy}];
(*input data*)
inp={m1->1.,L1->1.,m2->1.,L2->1.,g->10.};
soluti = NDSolve[{
((E1[[3]] /. solu)[[1]] /. inp) == 0,
((E2[[3]] /. solu)[[1]] /. inp) == 0,
q1[0] == N[Pi/3], q2[0] == N[Pi]/6, q1'[0] == 0., q2'[0] == 0.}, {q1,
q2}, {t, 0., 10.}, MaxSteps -> 2000]
Plot[Evaluate[q1[t]] /. soluti, {t, 0., 10.}]
Plot[Evaluate[q2[t]] /. soluti, {t, 0., 10.}]
Converted by Mathematica
September 29, 2000