Quarter-Car Road Playground

m₁ 30 kg  m₂ 375 kg  k₁ 225 kN/m  k₂ 23.55 kN/m  b 1783 N s/m
R_r 21 319 N/m  c_c 5655 N s/m  f_body 1.18 Hz
Playback: vertical motion exaggerated ×3 / solid = skyhook, dashed = passive
body accel
--
m/s²
RMS accel
--
m/s² / comfort
susp. travel
--
mm / working space
tire deflection
--
mm / grip
actuator Fₐ
-pk-
N / the price
seed
speed 15 m/s
skyhook gain c_sky 2175 N s/m ζ_sky 0.385  /  ζ_eff 0.700
Road profile: drag to draw / 120 m long / ±10 cm

Both runs use the same road array and the same speed, and the only difference is the actuator. Passive is the dashed reference body; skyhook is the solid one. Control law is Fₐ = −c_sky ẋ₂, force applied −Fₐ on m₁ and +Fₐ on m₂ (one internal force, both ends). Set c_sky = 0 and the two bodies must overlap exactly. That is the passive gate, run it visually before trusting anything else.
Same equations and parameters as passive_baseline.py, re-implemented in JavaScript and integrated with fixed-step RK4 (dt = 1 ms). Drawn roads are lightly smoothed so pixel jaggies don’t inject fake high frequencies. “Resonance road” is a 10.7 mm sine whose wavelength lands at 1.18 Hz for the current speed, so it retunes itself when you move the speed slider.