Modelowanie zjawisk makroskopowych

Tłumione wahadło z sinusoidalną siłą wymuszającą

Małgorzata Tomanek (2007)

Rysunki numerowane wg dokumentu: http://users.uj.edu.pl/~golak/MZM06-07/chaos.pdf

Równanie z warunkami początkowymi:

g = 9.8;
l = 9.8;
q = 0.5;
wd = 2/3;
Fd = 1.2;
uklad = {ψ'[t] == - g/l Sin[φ[t]] - q ψ[t] + Fd Sin[wd t] ,
		φ'[t] == ψ[t], 
		φ[0] == 0.2,
		ψ[0] == 0};

Rozwiązanie (najprostsze) i wykres φ(t):

rozwPodst=NDSolve[uklad,{ψ[t],φ[t],ψ'[t],φ'[t]},{t,0,150}];
Print["Rys. 2a"]
Plot[Evaluate[{φ[t]}/.rozwPodst],{t,0,60},PlotPoints->1000]

Tutaj chcialam ograniczyc φ(t) do przedziału [-π; π] poprzez StepMonitor:

rozw = NDSolve[uklad, {ψ[t], φ[t], ψ'[t], φ'[t]}, {t, 0, 150}, 
StepMonitor:>Block[{a = φ[t]}, (If[a > π, φ[t]=a- 2 π]; If[a < -π, φ[t]=- a+2 π,] ) ]];

Jednak robię coś nie tak (albo  StepMinitor się do tego nie nadaje), ponieważ wykres się nie zmienił.

Print["Rys. 2b"]
Plot[Evaluate[{φ[t]}/.rozw],{t,0,60},PlotPoints->1000]

A to coś, co chciałam osiągnąć docelowo, czyli wykres fazowy, ale dla φ(t) ograniczonego do [-π; π]:

Print["Rys. 5c"]
ParametricPlot[Evaluate[{φ[t],φ'[t]}/.rozw],{t,0,124},PlotPoints->1000]