Forced Oscillator with Damping

DPPlot[bb_,mm_,kk_,xinit_,AA_,ωω_,tfinal_]:=Module[{},
Clear[t,x,A,ω,k,b,m];
With[{sol=First@NDSolve[{x''[t]+(bb/mm) x'[t]+(kk/mm)x[t]==AA/mm*Cos[ωω t],x'[0]==0,x[0]==xinit},x,{t,0,tfinal}]},Plot[Evaluate[x[t]/.sol],{t,0,tfinal},PlotRange->{{0,tfinal},{-10,10}},ImageSize->{425,350},ImagePadding->{{35,35},{20,40}},AxesLabel->{Style["t",14,Bold,Italic],Style["x(t)",14,Italic,Bold]},PlotLabel->TraditionalForm[m x''[t]+b x'[t]+k x[t]==A Cos[ω t]]]]]

DPPhasePlot[bb_,mm_,kk_,xinit_,AA_,ωω_,zoom_,tfinal_]:=Module[{x,t},With[{sol=First@NDSolve[{x''[t]+(bb/mm) x'[t]+(kk/mm)x[t]==AA/mm*Cos[ωω t],x'[0]==0,x[0]==xinit},x,{t,0,tfinal}]},ParametricPlot[{Evaluate[x[t]/.sol],Evaluate[x'[t]/.sol]},{t,0,tfinal},PlotRange->{{-zoom,zoom},{-zoom,zoom}},ImageSize->{425,350},AxesLabel->{Style["x(t)",14,Italic,Bold],Style["x'(t)",Italic,14,Bold]}]]]

Manipulate[Column[{Switch[plottype,"position",DPPlot[bb,mm,kk,xinit,AA,ωω,time],"phase",DPPhasePlot[bb,mm,kk,xinit,AA,ωω,zoom,time]],Style[Row[{"mass = ",mm,Spacer[20],"|",Spacer[20],"spring constant = ",kk,Spacer[20],"|",Spacer[30],"damping = ",bb}],"Label"],Style[Row[{"driving amplitude = ",AA,Spacer[20],"|",Spacer[20],"driving frequency = ",ωω}],"Label"]},Center],
{{mm,4,"mass"},1,10,.01,ImageSize->Tiny},
{{kk,3,"spring constant"},0,10,.01,ImageSize->Tiny},
{{bb,0,"damping"},0,5,.01,ImageSize->Tiny},
{{xinit,8,"initial position"},0,10,ImageSize->Tiny},Delimiter,"forcing function",{{AA,0,"amplitude"},0,10,.01,ImageSize->Tiny},{{ωω,0,"frequency"},0,2π,.01,ImageSize->Tiny},
Delimiter,
{{plottype,"position","plot type"},{"position","phase"}},{{zoom,10},.5,20,ImageSize->Tiny,Enabled->plottype=="phase"},
Delimiter,
{{time,50},1,200,1,ImageSize->Tiny},
SaveDefinitions->True,AutorunSequencing->{2,3,5}]