Conservative Dynamical systems of 1DoF
Example: Eardrum Oscillations x''[t]=-x[t]-a x[t]^2

C. Borders - Bounded trajectories

Clear["Global'*"]

System definition for a=1/4, Potential and Energy functions

a=1/4
f=-x-a x^2
V= -∫f\[DifferentialD]x
Energy[x_,y_]=(1/2)y^2+V
E0=1.5;

Phase space portrait

plot1=ContourPlot[Energy[x,y],{x,-8,5},{y,-5,5}, ContourShading->False, Contours->40, ContourLabels->True];
plot2=ContourPlot[Energy[x,y],{x,-8,5},{y,-5,5}, ContourShading->False, Contours->{1.5}, ContourStyle->{{Red, Thick}}];
Show[plot1,plot2]

Borders - oscillation amplitude

Plot[{E0,V},{x,-7,3}, PlotStyle->{RGBColor[0,1,1],RGBColor[0,0,1]}]

motionBorder=Solve[E0-V==0,x]

Reduce[E0-V≥0,x]

Bounded trajectory x1≤x≤x2

x1=x/.motionBorder[[2]]
x2=x/.motionBorder[[3]]
Print["Amplitude of oscillation (peak to peak) Dx=",x2-x1]

Oscillation period

period=2*NIntegrate[(2*(E0-V))^(-1/2),{x,x1,x2}]

Numerical solution and plot x(t) and trajectory (x,y)

deq=x''[t]==-x[t]-a x[t]^2
x0=x1; y0=0;  (* initial conditions are taken at the border of motion *) 
tmax=3*period;
sol=NDSolve[{deq,x[0]==x0,x'[0]==y0},x,{t,0,tmax}]
xt=x[t]/.sol[[1]];
yt=x'[t]/.sol[[1]];
Plot[xt,{t,0,tmax}]
ParametricPlot[{xt,yt},{t,0,period}]

ParametricPlot[{xt,yt},{t,0,period}]