StickSlipOscillator¶
Systems / ODEs / Oscillatory systems
A harmonically forced dry-friction oscillator whose Stribeck velocity switch produces alternating stick and slip phases that can turn chaotic.
Definition¶
\[
\begin{aligned}
\dot{x} &= v \\
\dot{v} &= a x - b x^{3} + eps \left(\alpha v - \beta \left(v - vs\right)^{3} + \gamma \cos{\left(th \right)} - t_{0} \operatorname{sign}{\left(v - vs \right)}\right) \\
\dot{th} &= w
\end{aligned}
\]
Parameters¶
| Symbol | Default | Role |
|---|---|---|
a |
1 |
linear stiffness of the Duffing restoring force |
alpha |
0.3 |
linear velocity coefficient of the friction torque |
b |
1 |
cubic stiffness of the Duffing restoring force |
beta |
0.3 |
cubic velocity coefficient of the friction torque |
eps |
0.05 |
coupling weight of the friction/forcing term |
gamma |
1 |
amplitude of the harmonic drive |
t0 |
0.3 |
static (Coulomb) friction level |
vs |
0.4 |
reference Stribeck sliding velocity |
w |
2 |
angular frequency of the harmonic drive |
State variables: x, v, th
Properties¶
Lyapunov spectrum
TODO — lyapunov_spectrum failed: AttributeError
Kaplan–Yorke dimension
TODO — requires a numeric Lyapunov spectrum
Divergence ∇·f
n/a — non-smooth right-hand side — divergence is piecewise (defined almost everywhere)
Equilibria
none found (no equilibria)
Use it in TSDynamics¶
import tsdynamics as ts
system = ts.systems.StickSlipOscillator()
traj = system.run(final_time=100.0, dt=0.01)
ts.plot(traj)
spectrum = ts.analysis.lyapunov_spectrum(system)
ts.analysis.kaplan_yorke_dimension(spectrum)
Reference¶
Awrejcewicz & Holicke (1999), Int. J. Bifurc. Chaos
doi:10.1142/s0218127499000341