Gibanje točke po obroču v relativnem koordinatnem sistemu

Točka z maso m se brez trenja giblje po vertikalno postavljenem obroču, ki se enakomerno s kotno hitrostjo ω vrti okoli premera v navpični smeri. Kot med lego na dnu obroča in pa radij vektorjem točke označimo s ϕ = ϕ(t). Z obravnavo Newtonovega zakona v relativnem koordinatnem sistemu dobimo, da funkcija ϕ zadošča diferencialni enačbi

                                                                                                         (mRd^2)ϕ/(dt^2) = -mgsinϕ + ((mω)^2)Rsinϕcosϕ.
                                                                                                    
Z integracijo lahko to enačbo prevedemo v obliko

                                                                                                         1/2 (mR^2) (((dϕ/dt))^2) + V(ϕ) = E,

kjer je potencial dan s funkcijo

                                                                                                           V(ϕ) = -mgRcosϕ - 1/2 ((mω)^2)(R^2)(sin^2)ϕ.

Točka na dnu obroča je ravnovesna lega, ni pa vedno stabilna. Če je namreč (ω^2) > (g/R), postane ta točka nestabilna.
V naslednjih primerih bomo predpostavili, da je točka v začetnem trenutku na dnu obroča, mi pa jo malce potisnemo. Zanima nas njeno gibanje po obroču. 
Uporabili bomo parametre m = 1kg, R = 1m in g = 10 m/(s^2).

Če se obroč ne vrti, imamo opravka z matematičnim nihalom. Točka v tem primeru niha okoli ravnovesne lege, a ne čisto harmonično.

omega=0;R=1;m=1;g=10;

f[x_]=-m*g*R*Cos[x]-1/2*m*omega^2*R^2*Sin[x]^2;

graf=Plot[f[x],{x,-Pi,Pi},PlotStyle->{Blue}];

ravlege=Graphics[{
{Blue,PointSize[0.02],Point[{{0,f[0]},{Pi,f[Pi]},{-Pi,f[-Pi]}}]},
Text[Style["ϕ",18],{3.5,-2}]
},
AspectRatio->Automatic];

Show[graf,ravlege,PlotRange->{{-3.5,3.5},{-15,15}},AxesStyle->Arrowheads[{0.04}]]

NDSolve[{m*R*x''[t]==-m*g*Sin[x[t]]+m*omega^2*R*Sin[x[t]]*Cos[x[t]],x[0]==0,x'[0]==0.5},x,{t,0,40},PrecisionGoal->10];

f[t_]=First[Evaluate[x[t]/.%]];

Plot[f[t],{t,0,40}]

Animate[
AKS=Graphics3D[{Arrow[{{-1.5,0,0},{1.5,0,0}}],Arrow[{{0,-1.5,0},{0,1.5,0}}],Arrow[{{0,0,-1.5},{0,0,1.5}}],Boxed->False}];
obroc=ParametricPlot3D[{Cos[omega*t]*Cos[u],Sin[omega*t]*Cos[u],Sin[u]},{u,0,2Pi},Boxed->False,Axes->False,PlotStyle->Blue];
tocka=Graphics3D[Rotate[{Blue,PointSize[0.02],Point[{Sin[f[t]],0,-Cos[f[t]]}]},(omega*t/(2Pi))*360*Degree,{0,0,1}],Boxed->False];
Show[obroc,tocka,AKS,PlotRange->{{-1.5,1.5},{-1.5,1.5},{-1.5,1.5}}],
{{t,0,"Čas (s)"},0,40,ControlType->Trigger,AnimationRate->1}]

Obroč sedaj zavrtimo s kotno hitrostjo ω = 3/s. Točka še vedno niha okoli ravnovesne lege, le da z večjo amplitudo.

omega=3;R=1;m=1;g=10;

f[x_]=-m*g*R*Cos[x]-1/2*m*omega^2*R^2*Sin[x]^2;

graf=Plot[f[x],{x,-Pi,Pi},PlotStyle->{Blue}];

ravlege=Graphics[{
{Blue,PointSize[0.02],Point[{{0,f[0]},{Pi,f[Pi]},{-Pi,f[-Pi]}}]},
Text[Style["ϕ",18],{3.5,-2}]
},
AspectRatio->Automatic];

Show[graf,ravlege,PlotRange->{{-3.5,3.5},{-15,15}},AxesStyle->Arrowheads[{0.04}]]

NDSolve[{m*R*x''[t]==-m*g*Sin[x[t]]+m*omega^2*R*Sin[x[t]]*Cos[x[t]],x[0]==0,x'[0]==0.5},x,{t,0,40},PrecisionGoal->10];

f[t_]=First[Evaluate[x[t]/.%]];

Plot[f[t],{t,0,40}]

Animate[
AKS=Graphics3D[{Arrow[{{-1.5,0,0},{1.5,0,0}}],Arrow[{{0,-1.5,0},{0,1.5,0}}],Arrow[{{0,0,-1.5},{0,0,1.5}}],Boxed->False}];
obroc=ParametricPlot3D[{Cos[omega*t]*Cos[u],Sin[omega*t]*Cos[u],Sin[u]},{u,0,2Pi},Boxed->False,Axes->False,PlotStyle->Blue];
tocka=Graphics3D[Rotate[{Blue,PointSize[0.02],Point[{Sin[f[t]],0,-Cos[f[t]]}]},(omega*t/(2Pi))*360*Degree,{0,0,1}],Boxed->False];
Show[obroc,tocka,AKS,PlotRange->{{-1.5,1.5},{-1.5,1.5},{-1.5,1.5}}],
{{t,0,"Čas (s)"},0,40,ControlType->Trigger,AnimationRate->1}]

Mejna hitrost, pri kateri je na dnu obroča še stabilna ravnovesna lega, je ω = √10/s.

omega=Sqrt[10];R=1;m=1;g=10;

f[x_]=-m*g*R*Cos[x]-1/2*m*omega^2*R^2*Sin[x]^2;

graf=Plot[f[x],{x,-Pi,Pi},PlotStyle->{Blue}];

ravlege=Graphics[{
{Blue,PointSize[0.02],Point[{{0,f[0]},{Pi,f[Pi]},{-Pi,f[-Pi]}}]},
Text[Style["ϕ",18],{3.5,-2}]
},
AspectRatio->Automatic];

Show[graf,ravlege,PlotRange->{{-3.5,3.5},{-15,15}},AxesStyle->Arrowheads[{0.04}]]

NDSolve[{m*R*x''[t]==-m*g*Sin[x[t]]+m*omega^2*R*Sin[x[t]]*Cos[x[t]],x[0]==0,x'[0]==0.5},x,{t,0,40},PrecisionGoal->10];

f[t_]=First[Evaluate[x[t]/.%]];

Plot[f[t],{t,0,40}]

Animate[
AKS=Graphics3D[{Arrow[{{-1.5,0,0},{1.5,0,0}}],Arrow[{{0,-1.5,0},{0,1.5,0}}],Arrow[{{0,0,-1.5},{0,0,1.5}}],Boxed->False}];
obroc=ParametricPlot3D[{Cos[omega*t]*Cos[u],Sin[omega*t]*Cos[u],Sin[u]},{u,0,2Pi},Boxed->False,Axes->False,PlotStyle->Blue];
tocka=Graphics3D[Rotate[{Blue,PointSize[0.02],Point[{Sin[f[t]],0,-Cos[f[t]]}]},(omega*t/(2Pi))*360*Degree,{0,0,1}],Boxed->False];
Show[obroc,tocka,AKS,PlotRange->{{-1.5,1.5},{-1.5,1.5},{-1.5,1.5}}],
{{t,0,"Čas (s)"},0,40,ControlType->Trigger,AnimationRate->1}]

Pri večanju kotne hitrosti, postane točka na dnu obroča nestabilna ravnovesna lega, dobimo pa dve novi stabilni ravnovesni legi. Poglejmo si še primera ω = 5/s in ω = 7/s. Večja kot je kotna hitrost, večja je amplituda nihanja točke.

omega=5;R=1;m=1;g=10;

f[x_]=-m*g*R*Cos[x]-1/2*m*omega^2*R^2*Sin[x]^2;

graf=Plot[f[x],{x,-Pi,Pi},PlotStyle->{Blue}];

ravlege=Graphics[{
{Blue,PointSize[0.02],Point[{{0,f[0]},{Pi,f[Pi]},{-Pi,f[-Pi]},{-ArcCos[g/(R*omega^2)],f[-ArcCos[g/(R*omega^2)]]},{ArcCos[g/(R*omega^2)],f[ArcCos[g/(R*omega^2)]]}}]},
Text[Style["ϕ",18],{3.5,-2}]
},
AspectRatio->Automatic];

Show[graf,ravlege,PlotRange->{{-3.5,3.5},{-15,15}},AxesStyle->Arrowheads[{0.04}]]

NDSolve[{m*R*x''[t]==-m*g*Sin[x[t]]+m*omega^2*R*Sin[x[t]]*Cos[x[t]],x[0]==0,x'[0]==0.5},x,{t,0,40},PrecisionGoal->10];

f[t_]=First[Evaluate[x[t]/.%]];

Plot[f[t],{t,0,40}]

Animate[
AKS=Graphics3D[{Arrow[{{-1.5,0,0},{1.5,0,0}}],Arrow[{{0,-1.5,0},{0,1.5,0}}],Arrow[{{0,0,-1.5},{0,0,1.5}}],Boxed->False}];
obroc=ParametricPlot3D[{Cos[omega*t]*Cos[u],Sin[omega*t]*Cos[u],Sin[u]},{u,0,2Pi},Boxed->False,Axes->False,PlotStyle->Blue];
tocka=Graphics3D[Rotate[{Blue,PointSize[0.02],Point[{Sin[f[t]],0,-Cos[f[t]]}]},(omega*t/(2Pi))*360*Degree,{0,0,1}],Boxed->False];
Show[obroc,tocka,AKS,PlotRange->{{-1.5,1.5},{-1.5,1.5},{-1.5,1.5}}],
{{t,0,"Čas (s)"},0,40,ControlType->Trigger,AnimationRate->1}]

omega=7;R=1;m=1;g=10;

f[x_]=-m*g*R*Cos[x]-1/2*m*omega^2*R^2*Sin[x]^2;

graf=Plot[f[x],{x,-Pi,Pi},PlotStyle->{Blue}];

ravlege=Graphics[{
{Blue,PointSize[0.02],Point[{{0,f[0]},{Pi,f[Pi]},{-Pi,f[-Pi]},{-ArcCos[g/(R*omega^2)],f[-ArcCos[g/(R*omega^2)]]},{ArcCos[g/(R*omega^2)],f[ArcCos[g/(R*omega^2)]]}}]},
Text[Style["ϕ",18],{3.5,-3}]
},
AspectRatio->Automatic];

Show[graf,ravlege,PlotRange->{{-3.5,3.5},{-30,15}},AxesStyle->Arrowheads[{0.04}]]

NDSolve[{m*R*x''[t]==-m*g*Sin[x[t]]+m*omega^2*R*Sin[x[t]]*Cos[x[t]],x[0]==0,x'[0]==0.5},x,{t,0,40},PrecisionGoal->10];

f[t_]=First[Evaluate[x[t]/.%]];

Plot[f[t],{t,0,40}]

Animate[
AKS=Graphics3D[{Arrow[{{-1.5,0,0},{1.5,0,0}}],Arrow[{{0,-1.5,0},{0,1.5,0}}],Arrow[{{0,0,-1.5},{0,0,1.5}}],Boxed->False}];
obroc=ParametricPlot3D[{Cos[omega*t]*Cos[u],Sin[omega*t]*Cos[u],Sin[u]},{u,0,2Pi},Boxed->False,Axes->False,PlotStyle->Blue];
tocka=Graphics3D[Rotate[{Blue,PointSize[0.02],Point[{Sin[f[t]],0,-Cos[f[t]]}]},(omega*t/(2Pi))*360*Degree,{0,0,1}],Boxed->False];
Show[obroc,tocka,AKS,PlotRange->{{-1.5,1.5},{-1.5,1.5},{-1.5,1.5}}],
{{t,0,"Čas (s)"},0,40,ControlType->Trigger,AnimationRate->1}]

V vseh zgornjih primerih je bila energija točke premajhna, da bi dosegla vrh obroča. Zato je točka v vseh primerih nihala med dvema ekstremnima položajema. Poglejmo si sedaj še primer, ko ima točka dovolj energije, da doseže vrh obroča. V tem primeru se bo točka po obroču ves čas premikala v isto smer.

omega=2;R=1;m=1;g=10;

N[Sqrt[40]]

NDSolve[{m*R*x''[t]==-m*g*Sin[x[t]]+m*omega^2*R*Sin[x[t]]*Cos[x[t]],x[0]==0,x'[0]==6.33},x,{t,0,40},PrecisionGoal->10];

f[t_]=First[Evaluate[x[t]/.%]];

Plot[f[t],{t,0,40}]

Animate[
AKS=Graphics3D[{Arrow[{{-1.5,0,0},{1.5,0,0}}],Arrow[{{0,-1.5,0},{0,1.5,0}}],Arrow[{{0,0,-1.5},{0,0,1.5}}],Boxed->False}];
obroc=ParametricPlot3D[{Cos[omega*t]*Cos[u],Sin[omega*t]*Cos[u],Sin[u]},{u,0,2Pi},Boxed->False,Axes->False,PlotStyle->Blue];
tocka=Graphics3D[Rotate[{Blue,PointSize[0.02],Point[{Sin[f[t]],0,-Cos[f[t]]}]},(omega*t/(2Pi))*360*Degree,{0,0,1}],Boxed->False];
Show[obroc,tocka,AKS,PlotRange->{{-1.5,1.5},{-1.5,1.5},{-1.5,1.5}}],
{{t,0,"Čas (s)"},0,40,ControlType->Trigger,AnimationRate->1}]

Za konec si poglejmo še primer, ko upoštevamo trenje. Kotna hitrost vrtenja je dovolj velika, da imamo na dnu obroča nestabilno ravnovesno lego. Če točko malce udarimo, bo enkrat prečkala dno obroča, nato pa se bo iznihala v okolici na novo nastale stabilne ravnovesne lege.

omega=3.5;R=1;m=1;g=10;k=0.012;

NDSolve[{m*R*x''[t]==-m*g*Sin[x[t]]+m*omega^2*R*Sin[x[t]]*Cos[x[t]]-k*Sign[x'[t]]*Sqrt[m*R*x'[t]^2+m*g*Cos[x[t]]+m*omega^2*R*Sin[x[t]]^2],x[0]==0,x'[0]==0.5},x,{t,0,30},PrecisionGoal->10];

f[t_]=First[Evaluate[x[t]/.%]];

Plot[f[t],{t,0,30}]

x0=-ArcCos[g/(R*omega^2)];

Animate[
AKS=Graphics3D[{Arrow[{{-1.5,0,0},{1.5,0,0}}],Arrow[{{0,-1.5,0},{0,1.5,0}}],Arrow[{{0,0,-1.5},{0,0,1.5}}],Boxed->False}];
obroc=ParametricPlot3D[{Cos[omega*t]*Cos[u],Sin[omega*t]*Cos[u],Sin[u]},{u,0,2Pi},Boxed->False,Axes->False,PlotStyle->Blue];
tocka=Graphics3D[Rotate[{Blue,PointSize[0.02],Point[{Sin[f[t]],0,-Cos[f[t]]}]},(omega*t/(2Pi))*360*Degree,{0,0,1}],Boxed->False];
ravlega=Graphics3D[Rotate[{PointSize[0.02],Point[{Sin[x0],0,-Cos[x0]}]},(omega*t/(2Pi))*360*Degree,{0,0,1}],Boxed->False];
Show[obroc,tocka,AKS,ravlega,PlotRange->{{-1.5,1.5},{-1.5,1.5},{-1.5,1.5}}],
{{t,0,"Čas (s)"},0,30,ControlType->Trigger,AnimationRate->1}]