Vehicle Controller Frequency Response & Pseudo-Chirp Analysis
- Domain
- Autonomous Vehicle Dynamics & Control, System Identification
- Tools
- Python (SciPy/NumPy), MATLAB/Simulink, Signal Processing, Cubic Splines
The engineering challenge
Evaluating the dynamic response and bandwidth limits of a vehicle steering or velocity controller requires testing across a wide frequency range. Standard linear sine sweeps present two problems: large amplitudes at low frequencies cause excessive vehicle displacement, quickly running out of track, while abrupt frequency steps create acceleration and jerk spikes that trip actuator torque limits and safety-controller overrides.
Engineering decisions & implementation
To excite the closed loop safely across the full target bandwidth, I built a custom excitation and analysis pipeline:
[ Raw Frequency Target ]
│
▼
[ C² Spline Smoothing ]
│
▼
[ A/ω² Amplitude Scaling ]
│
▼
[ Safe Vehicle Input ]- C² continuity via cubic splines — smooth position, velocity, and acceleration across input transitions to eliminate artificial jerk spikes that trip steering or drive actuators.
- Dimensionless A/ω² displacement scaling — command amplitudes scaled down at higher frequencies to bound physical path displacement while keeping enough excitation to analyse tracking performance.
- Automated Bode & phase-lag extraction — a script that processes commanded-vs-measured telemetry to extract gain margin, phase lag, and closed-loop bandwidth.
Results
- Hardware-safe sweeps — dynamic frequency sweeps run on vehicle control loops without triggering over-torque faults or exceeding track lateral boundaries.
- Automated diagnostics — replaced manual, single-frequency test runs with a pipeline that outputs the controller's empirical Bode plot and tracking limits directly from test logs, capturing the −3 dB bandwidth and phase margin.