Stick-slip oscillations (like in a violin)

SetDirectory[NotebookDirectory[]]

fig=Import["stickslip.pdf"]

stickslip=fig

Manipulate[Module[{sol,x,kk=1000 (*80*Pi^2*),mm=700,NN=10000},

cc=0*2Sqrt[kk*mm]*0.008 (* no viscous damping *);

NNN=NN;
kkk=kk;
mmm=mm;


(* an apparently simple differential equation *)
sol=First[NDSolve[{mmm x''[t]+kkk x[t]+ζ*2Sqrt[kk*mm] x'[t]+ f NNN Sign[x'[t]-V ]== 0,
x[0]==x0,
x'[0]==v0},x,{t,0,tfin}]];


(* here is the solution *)
xx=x/.sol;

Column[{Row[{Show[stickslip,
ImageSize->300,PlotLabel->"Oscillations due\! to stick-slip"],
Row[{
Animate[(kkt=xx[ttt];

Dynamic[figura=Column[{

Plot[{
Tooltip[xx[t],"x[t]"],
Tooltip[(V-xx'[t]),"V-x'[t]"],
Tooltip[f NNN/kkk,"f N/k"],
Tooltip[-f NNN/kkk,"-f N/k"],
V*t+ord },{t,0,tfin},
PlotLabel->StringJoin["V-x'[t]=",ToString[V-xx'[ttt]]],
Epilog->{PointSize[Large],Red,Point[{ttt,xx[ttt] }],
PointSize[Medium],Blue,Point[{ttt,V-xx'[ttt] }]},AxesLabel->{"t","x"},
PlotPoints->200,PlotStyle->{Thick,{Thin,Opacity[op]},Thin,Thin,Thin},ImageSize->500,GridLines->None,PlotRange->{{0,tfin},{-xmax-10,xmax}}],

Show[Graphics[{Thick,GeometricTransformation[Line[{{0,0},{0.5,0},{1,100},{2,-100},{3,100},{4,-100},{4.5,0},{5,0}}/5],{{kkt+100,0},{0,1}}],Black,

(*Line[{{0,-2.5},{6,-2.5}}],Line[{{6,-3},{6,-2}}],
Line[{{kkt/5-7,-3},{kkt/5,-3}}],
Line[{{kkt/5-7,-2},{kkt/5,-2}}],*)
Darker[Green],Opacity[0.4],
Rectangle[{100,-30},{100+50,20}],
Red,Opacity[0.8],
Rectangle[{kkt+100,-30},{kkt+100+50,20}]},PlotRange->{{0,230},{-30,40}}, Frame->True,ImageSize->300]],

Show[{ParametricPlot[{{xx[t],xx'[t] }(*,{xx2[t],xx2'[t] },(*{xx3[t],xx3'[t] },*){xx4[t],xx4'[t] }*)},{t,0,tfin},ImageSize->300,
Epilog->{Line[{{f NNN/kkk,-xmax},{f NNN/kkk,0}}],Line[{{-f NNN/kkk,0},{-f NNN/kkk,xmax}}],
Blue,PointSize[Small],Point[{xx[ttt],xx'[ttt] 
}]},PlotPoints->200,AxesLabel->{"x","x'"},
PlotLabel->"Phase plane",
PlotStyle->{Thick,Thin,Thin,Thick,Thick,Thin},ImageSize->250,GridLines->None,PlotRange->{{-xmax,xmax},{-xmax,xmax}}],Graphics[{(*Thick,GeometricTransformation[Line[{{0,0},{0.5,0},{1,1},{2,-1},{3,1},{4,-1},{4.5,0},{5,0}}],{{kkt,0},{0,1}}],Black,

Line[{{0,-2.5},{6,-2.5}}],Line[{{6,-3},{6,-2}}],
Line[{{5kkt-7,-3},{5kkt,-3}}],
Line[{{5kkt-7,-2},{5kkt,-2}}],*)
(*Blue,
Rectangle[{kkt-2,-4},{kkt+2,4}],*)
Red,PointSize[Large],
Point[{kkt,0 }],
Darker[Green],
Arrow[{{xx[ttt],0},{xx[ttt],xx'[ttt]}}]},PlotRange->{{-100,100},{-4,2}}, Frame->True,ImageSize->700]}]
}]
]
),{{ttt,0,"time"},0,tfin},AnimationRate->2,AnimationRunning->False,AnimationRepetitions->3]}]}](*,

Plot[{
xx[t],
(*(xx'[t]-V),*)
f NN/kk,
-f NN/kk,
V*t+ord },{t,0,tfin},Epilog->{PointSize[Large],Red,Point[{tt,xx[tt] }]},AxesLabel->{"t","x"},
PlotPoints->200,PlotStyle->{Thick,Thin,Thin,Thin,Thin},ImageSize->500,GridLines->None,PlotRange->{{0,tfin},{-xmax-10,xmax}}]*)}]],
{{ζ,0,"ζ"},0,1, Appearance->"Open"},
{{x0,65,"initial pos. x[0]"},0,100, Appearance->"Open"},
{{v0,0,"initial vel. x'[0]"},-80,80,Appearance->"Open"},
{{f,1,"friction coeff. f"},0,2,Appearance->"Open"},
{{V,8,"tape vel. V"},0,100,Appearance->"Open"},
Delimiter,
{{ord,0,"stick finder"},-350,150},
{{op,1,"V-x'[t]"},{0,1}},
Delimiter,
{{xmax,70,"plot range"},10,200},
{{tfin,25,"final time"},1,200},
Delimiter,
Text["Massimo Guiggiani - 20/4/2020 - all rights reserved"],
ControlPlacement->Right,
SaveDefinitions->True
]

Quite interesting numerical examples

1) Tape not moving

2) As above, but now the tape has a positive velocity:

3) Zero initial displacement and zero initial velocity. Low tape speed.

3) Zero initial displacement and zero initial velocity. High tape speed.