Author: Akshat Verma Stack: Python · NumPy · SciPy · PyWavelets · Matplotlib
The Jeffcott rotor (derived by H.H. Jeffcott in 1919) is the canonical model of a flexible rotating shaft. It consists of:
- A massless elastic shaft of stiffness
$k$ (N/m), simply supported at both ends - A rigid disk of mass
$m$ (kg) mounted at the shaft midspan -
Viscous damping
$c$ (N·s/m) representing bearing dissipation - A mass eccentricity
$e$ (m) — the offset of the centre of mass from the geometric centre
Despite its simplicity, the Jeffcott rotor captures the three most important phenomena in rotating machinery dynamics:
- Critical speed resonance — the operating speed at which shaft flexibility causes catastrophic vibration amplification
- Self-centring above critical speed — the counter-intuitive reduction in vibration at supercritical speeds
- Phase reversal at resonance — the 90° → 180° phase shift that is the basis of industrial balancing procedures
The governing equations in the inertial
The right-hand side is the centrifugal unbalance force rotating at shaft speed
where
The simulator implements four configurations, switchable via the CONFIG dictionary:
Small residual eccentricity only. Produces a pure 1× spectrum and a circular orbit. Used as the diagnostic baseline.
Elevated eccentricity
Key diagnostic: 1× amplitude is elevated; 2× and higher are at the noise floor; orbit is round.
A transverse shaft crack opens and closes once per revolution under gravity bending. Modelled as:
where
Key diagnostic: Growing 2× component in the spectrum; inner loop in the orbit plot. 2×/1× amplitude ratio increases monotonically with crack depth
When shaft displacement exceeds radial bearing clearance
This nonlinear switching generates super-harmonics (2×, 3×, ...) and potentially sub-harmonics (½×) depending on the severity.
Key diagnostic: Multiple harmonics (2×, 3×) in FFT; elevated kurtosis (> 4.0); clipped or flattened orbit.
For each fault configuration, the notebook produces:
| Output | Tool | What it shows |
|---|---|---|
| Time domain |
Direct integration | Overall vibration level and waveform shape |
| Orbit plot | Parametric |
Shaft centreline trajectory — shape is fault-specific |
| FFT order spectrum |
np.fft.rfft + Hann window |
Frequency content normalised to running speed |
| STFT spectrogram | scipy.signal.stft |
Time-varying frequency content |
| CWT scalogram |
pywt.cwt (Morlet) |
Multi-resolution time-frequency decomposition |
| Statistical features | RMS, kurtosis, crest factor | Scalar fault indicators for classification |
| Campbell diagram | Speed sweep | Amplitude vs speed — identifies critical speed |
numpy
scipy
matplotlib
pywt # pip install PyWavelets
pandas
Install all at once:
pip install numpy scipy matplotlib PyWavelets pandas jupytergit clone https://github.com/akshatverma1602/Advanced-Jeffcott-Rotor-Dynamics-Simulator.git
jupyter notebook jeffcott_rotor_simulator.ipynb**All parameters are in the CONFIG dictionary at the top of Section 1.
In industrial practice, the Jeffcott rotor is the conceptual backbone of every rotating machinery vibration analysis. When a vibration analyst looks at data from a centrifugal pump, compressor, or steam turbine, they are mentally applying the Jeffcott model to interpret what they see:
- 1× dominant spectrum + round orbit → unbalance → ISO 1940 balancing procedure
- Elevated 2× appearing → crack or misalignment → shut down and inspect
- Multiple harmonics + high kurtosis → bearing clearance or rub → expedited maintenance
- Sub-synchronous component → oil whirl/whip → bearing redesign or speed change
This simulator generates vibration data that reproduces these exact signatures, providing a controlled environment to study fault evolution and develop/validate diagnostic algorithms.
- Jeffcott, H.H. (1919). The lateral vibration of loaded shafts in the neighbourhood of a whirling speed. Philosophical Magazine, Series 6, 37(219), 304–314.
- Mayes, I.W. & Davies, W.G.R. (1984). Analysis of the response of a multi-rotor-bearing system containing a transverse crack in a rotor. Journal of Vibration, Acoustics, Stress, and Reliability in Design, 106(1), 139–145.
- Vance, J.M., Zeidan, F. & Murphy, B. (2010). Machinery Vibration and Rotordynamics. Wiley.
- Rao, J.S. (1996). Rotor Dynamics, 3rd ed. New Age International.
- ISO 1940-1:2003 — Mechanical vibration — Balance quality requirements for rotors in a constant (rigid) state.
- API Standard 610, 12th ed. — Centrifugal Pumps for Petroleum, Petrochemical and Natural Gas Industries.