Analytical
Analytical
In[]:=
a={{g},{0},{0}};a1={{x,y,z},{x–l1,y,z–l2}};b=–alpha*{{1},{1}};e=b–a1.a;apinverse=Simplify[Transpose[a1].PseudoInverse[a1.Transpose[a1]]];acc=Flatten[Simplify[a+apinverse.e]];u=acc/.{x–>x[t],y–>y[t],z–>z[t],l1–>1,l2–>1,g–>10,alpha–>x'[t]^2+y'[t]^2+z'[t]^2};u1[t]=u[[1]];u2[t]=u[[2]];u3[t]=u[[3]];sol=NDSolve[{x''[t]==u1[t],y''[t]==u2[t],z''[t]==u3[t],x'[0]==0,y'[0]==4,z'[0]==0,x[0]==1,y[0]==0,z[0]==0},{x,y,z},{t,0,3}]
Out[]=
xInterpolatingFunction
,yInterpolatingFunction
,zInterpolatingFunction
|
|
|
In[]:=
u
Out[]=
+2–2x[t]z[t]+,–+2–2x[t]z[t]+,–+2–2x[t]z[t]+
10–x[t]([t]+[t]+[t])+z[t]([t]+[t]+[t])
2
y[t]
2
′
x
2
′
y
2
′
z
2
′
x
2
′
y
2
′
z
2
x[t]
2
y[t]
2
z[t]
y[t](10(x[t]–z[t])+2([t]+[t]+[t]))
2
′
x
2
′
y
2
′
z
2
x[t]
2
y[t]
2
z[t]
10–x[t]([t]+[t]+[t])+z[t]([t]+[t]+[t])
2
y[t]
2
′
x
2
′
y
2
′
z
2
′
x
2
′
y
2
′
z
2
x[t]
2
y[t]
2
z[t]
In[]:=
Plot[Evaluate[y[t]/.sol],{t,0,3}]
Out[]=
In[]:=
Plot[Evaluate[z[t]/.sol],{t,0,3}]
Out[]=
In[]:=
ParametricPlot[Evaluate[{z[t],y[t]}/.sol],{t,0,3}]
Out[]=
Numerical
Numerical
In[]:=
Clear[U];U[X_?VectorQ,X1_?VectorQ]:=Module[{rules,a,a1,b,e,apinverse,acc,u,u1,u2,u3,x,y,z,l1,l2,g,alpha},rules={x–>X[[1]],y–>X[[2]],z–>X[[3]],l1–>1,l2–>1,g–>10,alpha–>X1[[1]]^2+X1[[2]]^2+X1[[3]]^2};a={{g},{0},{0}}/.rules;a1={{x,y,z},{x–l1,y,z–l2}}/.rules;b=–alpha*{{1},{1}}/.rules;e=b–a1.a;apinverse=Transpose[a1].PseudoInverse[a1.Transpose[a1]];acc=Flatten[a+apinverse.e];(*Remove[a,a1,apinverse,b,e];*)u=acc(*/.{x–>X[[1]],y–>X[[2]],z–>X[[3]],l1–>1,l2–>1,g–>10,alpha–>X1[[1]]^2+X1[[2]]^2+X1[[3]]^2}*);u1=u[[1]];u2=u[[2]];u3=u[[3]];u];
In[]:=
sol=NDSolve[{X''[t]==U[X[t],X'[t]],X'[0]=={0,4,0},X[0]=={1,0,0}},X[t],{t,0,3}]
Out[]=
X[t]InterpolatingFunction
[t]
|
In[]:=
Plot[Evaluate[X[t]/.sol][[1,2]],{t,0,3}]
Out[]=
In[]:=
Plot[Evaluate[X[t]/.sol][[1,3]],{t,0,3}]
Out[]=
In[]:=
ParametricPlot[Evaluate[X[t]/.sol][[1,{3,2}]],{t,0,3}]
Out[]=
Generalized
Generalized
In[]:=
M={{m1,0,0},{0,m1,0},{0,0,m1}};Minv=Inverse[M];Minvsqrt=MatrixPower[M,–1/2];a=Minv.{g,0,0};A={{x[t],y[t],z[t]},{x[t]–l1,y[t],z[t]–l2}};AT=Transpose[A];alpha=x'[t]^2+y'[t]^2+z'[t]^2;b=–alpha*{{1},{1}};FullSimplify[ComplexExpand[a+Flatten[Minvsqrt.PseudoInverse[A.Minvsqrt].(b–A.a)]],{Element[m1,Reals]&&m1>0}]FullSimplify[a+Flatten[Minv.AT.PseudoInverse[A.Minv.AT].(b–A.a)]]
Out[]=
,–,
l2(gl2–m1(l2x[t]–l1z[t])([t]+[t]+[t]))
2
y[t]
2
′
x
2
′
y
2
′
z
m1(+(+)–2l1l2x[t]z[t]+)
2
l2
2
x[t]
2
l1
2
l2
2
y[t]
2
l1
2
z[t]
y[t](gx[t]–gl1l2z[t]+(+)m1([t]+[t]+[t]))
2
l2
2
l1
2
l2
2
′
x
2
′
y
2
′
z
m1(+(+)–2l1l2x[t]z[t]+)
2
l2
2
x[t]
2
l1
2
l2
2
y[t]
2
l1
2
z[t]
l1(–gl2+m1(l2x[t]–l1z[t])([t]+[t]+[t]))
2
y[t]
2
′
x
2
′
y
2
′
z
m1(+(+)–2l1l2x[t]z[t]+)
2
l2
2
x[t]
2
l1
2
l2
2
y[t]
2
l1
2
z[t]
Out[]=
,–,
l2(gl2–m1(l2x[t]–l1z[t])([t]+[t]+[t]))
2
y[t]
2
′
x
2
′
y
2
′
z
m1(+(+)–2l1l2x[t]z[t]+)
2
l2
2
x[t]
2
l1
2
l2
2
y[t]
2
l1
2
z[t]
y[t](gx[t]–gl1l2z[t]+(+)m1([t]+[t]+[t]))
2
l2
2
l1
2
l2
2
′
x
2
′
y
2
′
z
m1(+(+)–2l1l2x[t]z[t]+)
2
l2
2
x[t]
2
l1
2
l2
2
y[t]
2
l1
2
z[t]
l1(–gl2+m1(l2x[t]–l1z[t])([t]+[t]+[t]))
2
y[t]
2
′
x
2
′
y
2
′
z
m1(+(+)–2l1l2x[t]z[t]+)
2
l2
2
x[t]
2
l1
2
l2
2
y[t]
2
l1
2
z[t]
In[]:=
NonlinearStateSpaceModel0==+2–2x[t]z[t]+–x''[t],0==–+2–2x[t]z[t]+–y''[t],0==–+2–2x[t]z[t]+–z''[t],{x[t],x'[t],y[t],y'[t],z[t],z'[t]},{fx[t],fy[t],fz[t]},{},t
10–x[t]([t]+[t]+[t])+z[t]([t]+[t]+[t])
2
y[t]
2
′
x
2
′
y
2
′
z
2
′
x
2
′
y
2
′
z
2
x[t]
2
y[t]
2
z[t]
y[t](10(x[t]–z[t])+2([t]+[t]+[t]))
2
′
x
2
′
y
2
′
z
2
x[t]
2
y[t]
2
z[t]
10–x[t]([t]+[t]+[t])+z[t]([t]+[t]+[t])
2
y[t]
2
′
x
2
′
y
2
′
z
2
′
x
2
′
y
2
′
z
2
x[t]
2
y[t]
2
z[t]
Out[]=
x[t] | x. 1 |
x. 1 | 10 2 y[t] 2 x. 1 2 x. 2 2 x. 3 2 x[t] 2 y[t] 2 z[t] |
y[t] | x. 2 |
x. 2 | – 2y[t]5x[t]–5z[t]+ 2 x. 1 2 x. 2 2 x. 3 2 x[t] 2 y[t] 2 z[t] |
z[t] | x. 3 |
x. 3 | –10 2 y[t] 2 x. 1 2 x. 2 2 x. 3 2 x[t] 2 y[t] 2 z[t] |