Constructing and interpreting Bode plots, assessing stability margins, and extracting system parameters from experimental step and frequency response data.
A Bode plot displays the sinusoidal transfer function magnitude (in dB) and phase (in degrees) as functions of log frequency. Asymptotic approximations allow hand construction from pole-zero locations.
Gain K: magnitude = 20·log_10|K| dB (flat line), phase = 0° (or 180° if K<0)
Integrator 1/s: magnitude slope -20 dB/decade, phase = -90° (constant)
Simple pole at s = -a: G(s) = 1/(s/a + 1)
Below ω = a: 0 dB, 0°
Above ω = a: -20 dB/decade, approaches -90°
At ω = a: asymptotic approx -3 dB error, -45° exact
Simple zero at s = -a: G(s) = (s/a + 1)
Below ω = a: 0 dB, 0°
Above ω = a: +20 dB/decade, approaches +90°
Second-order pair: G(s) = ω_n²/(s²+2ζω_n s+ω_n²)
Below ω_n: 0 dB, 0°
Above ω_n: -40 dB/decade, approaches -180°
At ω_n: peak of 1/(2ζ) = -20·log(2ζ) dB (for underdamped)
Frequency where open-loop phase = −180°. At this frequency, the feedback becomes positive and the system is on the edge of instability.
The additional gain that can be added before instability. GM = −|G(jωpc)|dB. Positive GM means stable. Target: GM > 6 dB.
Frequency where |G(jω)| = 1 (0 dB). This is the approximate closed-loop bandwidth.
PM = 180° + ∠G(jωgc). How much additional phase lag before instability. Target: PM > 45°. PM ≈ 45° gives ζ ≈ 0.45.
When an analytical model is unavailable, system parameters can be extracted from experimental data.
First-order: τ = time to reach 63.2% of final value
Second-order (underdamped):
ω_d = 2π / T_d (T_d = period of damped oscillation)
ζ = -ln(%OS/100) / √(π² + [ln(%OS/100)]²)
ω_n = ω_d / √(1 - ζ²)
Swept-sine excitation: apply sinusoids at each frequency, measure magnitude and phase of output. Coherence function (0 to 1) indicates how well output is linearly related to input — values below 0.9 indicate nonlinearity or poor signal-to-noise. Random noise (white noise) allows simultaneous excitation of all frequencies using cross-spectral methods.
ζ = -ln(0.25) / √(π² + [ln(0.25)]²) = 1.386 / √(9.870 + 1.921) = 1.386 / √11.791 = 1.386 / 3.434 = 0.404
ω_d = 2π / T_d = 2π / 0.5 = 12.57 rad/s
ω_n = ω_d / √(1-ζ²) = 12.57 / √(1-0.163) = 12.57 / √0.837 = 12.57 / 0.915 = 13.74 rad/s
ζ = 0.404, ω_d = 12.57 rad/s, ω_n = 13.74 rad/s
GM = −|G(jω_pc)|_dB = −(−10 dB) = +10 dB
GM = +10 dB. Positive gain margin means stable. The loop gain could increase by 10 dB (factor of 3.16) before instability.