Resonance test excitation explorer

The motion TEST_RESONANCES commands: frequency ramps at hz_per_sec, each cycle accelerates at accel_per_hz·freq, with an optional slow sweeping oscillation layered on top. The enforced accel/velocity limits are derived from the actual generated sequence; upstream used a fixed formula that ignores the sweeping term.

test generator (from resonance_tester.py)
max_freq (Hz)135
accel_per_hz75
hz_per_sec1.0
sweeping_period (s)0.40
sweeping_accel400
zoom frequency (Hz)60
frequency vs time (the sweep — rises at hz_per_sec)

Click a legend entry on a chart to hide or show that line.

acceleration envelope vs time (with enforced accel limits)
zoomed waveform at the selected frequency (the actual ± pulse and resulting velocity)

Motion generated by porting VibrationPulseTestGenerator.gen_test and SweepingVibrationsTestGenerator.gen_test. The sequence-derived limits max|accel|+10 / max|v|+1 come from accumulating the real sequence (as in ResonanceTestExecutor.run_test); upstream used freq_end·accel_per_hz+10 and accel_per_hz·0.25+1. sweeping_period=0 disables the sweep (its config default); it's set to 0.4 here so the difference is visible. Rendered with Chart.js.