(Over-damped) bead on a rotating hoop

1-D nonlinear phase portrait

Clear[x,y,g,r,ω]
t0=0.0;tmax=4;
g=9.8;
r=1.0;

Manipulate[
gamma =((r (ω^2))/g);
fixedpoints=Quiet[Solve[{Sin[x] (gamma Cos[x]-1)==0,y==0,x≥-Pi,x≤Pi},{x,y}]];
coordinates={x,y}/.fixedpoints;
fixedp=Graphics[{PointSize[0.02],Red,Point[coordinates]}];
p=Plot[ Sin[x] (gamma Cos[x]-1),{x,-Pi,Pi},PlotRange->All,ImageSize->550,AxesLabel->{ϕ,"(∂_t)ϕ"},PlotLabel-> Style["1-D approximation, phase portrait",19],LabelStyle->17, PlotStyle->Black];
Show[p,fixedp],
Control[{{ω,3.5,"Angular velocity, ω"},0,6,Appearance->"Labeled"}],
TrackedSymbols:>{ω}, SaveDefinitions->True]

Integrated solutions (dimensionless), interactive code

Clear[x,x0,g,r,ω,sols,sol]
t0=0.0;tmax=4;
g=9.8;
r=1;

Manipulate[
sols=ParametricNDSolveValue[{x'[t]==  Sin[x[t]] (((r (ω^2))/g) Cos[x[t]]-1),x[0]==IC},x,{t,t0,tmax},{IC}];
prologue=Plot[Evaluate[Table[sols[ic][t],{ic,-Pi,Pi,Pi/20}]],{t,t0,tmax},AxesLabel->{τ,ϕ[τ]},ImageSize->400,PlotRange->{-Pi,Pi},LabelStyle->17,PlotStyle->{{LightGray}},AspectRatio->4/3,PlotLabel-> Style["Integrated solution",17]];
sol=NDSolve[{x'[t]==  Sin[x[t]] (((r (ω^2))/g) Cos[x[t]]-1),x[0]==x0},x,{t,t0,tmax}];
plot1a=Plot[Evaluate[x[t]/.sol],{t,t0,tmax},AxesLabel->{τ,ϕ[τ]},ImageSize->350,AspectRatio->1,PlotRange->{-Pi, Pi},LabelStyle->17,PlotLabel-> Style["Integrated solution",17],PlotStyle->{Black,Thick}];
plot2a=ParametricPlot[Evaluate[{x[t],x'[t]}/.sol],{t,t0,tmax},PlotRange->{{-Pi,Pi},{-1.6,1.6}},AxesLabel->{ϕ[τ],"(∂_τ)ϕ"},ImageSize->450,AspectRatio->1, LabelStyle->17,PlotLabel-> Style["Phase portrait",17],PlotStyle->{Black,Thick}];
Grid[{{Show[prologue,plot1a],plot2a}},Frame->All],
Control[{{x0,2,"Initial condition, ϕ(0)"},-Pi,Pi,Appearance->"Labeled"}],
Control[{{ω,3,"Angular velocity, ω"},0,6,Appearance->"Labeled"}],
TrackedSymbols:>{x0,ω}, SaveDefinitions->True]

Creation of this notebook was supported by IT Academy program of Information Technology Foundation for Education (HITSA).