# Delayed corrections in a scalar teaching model

Run `python reproduce.py` with matplotlib to regenerate steps.csv, summaries.csv, study.json, validation.json and two original PNG/SVG/PDF figures. This new deterministic model is separate from the archived feature-matching benchmark. There is no sensor noise or physical robot.

Initial signed lateral error is 0.3 m. At update k, the controller reads e[max(0,k−d)] and requests −K times that value, limited to ±0.05 m. This correction is added directly to the current error. Disturbance w[k] is then added: +0.3 m at k=40, −0.3 m at100 and +0.3 m at150. All other disturbance values are zero. Thus the first jump appears in state e[41], not e[40]. Delayed reads before sufficient history use the initial state.

The 24 scenarios cross four gains (0, 0.4, 0.8, 1.6), three delays (0, 2, 5 updates) and observation-gap enabled/disabled. When enabled, steps70–89 have no observation and correction is exactly zero. The delayed value is not silently replaced by a current estimate. No braking or safe-stop behaviour is modeled. Pausing correction may change oscillation in this scalar recursion; it should not be interpreted as a generally beneficial sensor failure.

Each scenario has 200 update rows, collectively4800rows. A row contains scenario parameters, step, error before update, referenced state index, observation availability, observed error or blank, applied correction, disturbance and error after update. Initial state plus all post-update errors encode201states. The24summaryrows contain signed initial/final error, maximum absolute error, RMS across all201states and total absolute correction. Blanks mean no observation, not zero measured error.

Update step is neither seconds nor metres of forward travel. A correction is an instantaneous position increment in this model, not speed, acceleration or steering. Missing physics includes platform dynamics, finite response, obstacles, collision, slip, noise, energy and scene interpretation. No measured performance, hardware threshold or safe operating region follows.

Checks reconstruct every state increment, verify correction limits and observation indices, ensure missing observations and zero gain produce zero correction, and confirm the zero-gain final error0.6m. In the unsaturated zero-delay disturbance-free segment, the independent closed form e[k]=e[k0]*(1−K)^(k−k0) agrees to floating-point precision. Figures display complete states and explicitly label their hypothetical scope.
