# numbers_log for 009-unit9-control (rerun 2026-10-11 03:16)

===== analysis_lambda.py (exit 0, 0.5 s)
design: kp 1.0740, Ti 112.47 ms ; ideal first-order closed loop: rise(10-90) = 2.197 tau_c = 65.9 ms, settle(2%) = 3.912 tau_c = 117.4 ms, overshoot 0
Ts     1 ms, delay 0 samples: rise   65.0 ms, overshoot   0.0 %, settle    115 ms
Ts     5 ms, delay 0 samples: rise   60.0 ms, overshoot   0.1 %, settle    105 ms
Ts    10 ms, delay 0 samples: rise   50.0 ms, overshoot   0.3 %, settle     90 ms
Ts    10 ms, delay 1 samples: rise   30.0 ms, overshoot   3.5 %, settle     90 ms
Ts    10 ms, delay 2 samples: rise   20.0 ms, overshoot  31.7 %, settle    220 ms
Ts    20 ms, delay 1 samples: rise   20.0 ms, overshoot  48.5 %, settle    320 ms
Ts    50 ms, delay 1 samples: rise    0.0 ms, overshoot 404.6 %, settle    nan ms

===== analysis_slope.py (exit 0, 0.5 s)
load torque 0.0212 N m; PI: dip 0.524 rad/s = 3.46 percent of setpoint; time outside +-2 percent after the slope: 0.10 s ; final error 0.00000 rad/s
voltage to hold 15.15 rad/s: flat 4.340 V ; on the 5 degree slope 5.022 V ; open-loop droop 2.380 rad/s
motor plug-braking from 15.15 rad/s at -7 V: deceleration 351.9 rad/s^2 = 11.61 m/s^2 (traction limit 178.4 rad/s^2 = 5.89 m/s^2 for mu 0.6)

===== fig01_motor.py (exit 0, 0.8 s)
k 0.2328  R 7.5  b 0.001667  den 0.008891  tau 112.47 ms  K 3.491 rad/s per V ; w(6 V) = 20.944 rad/s ; w(7 V) = 24.43 rad/s = 0.806 m/s
simulated time to 63.2 percent 112 ms (tau 112.5); to 95 percent 336 ms (3 tau 337)
5 degree slope: load torque per wheel 0.0212 N m ; open-loop droop 2.38 rad/s = 0.0785 m/s
open loop (voltage for 15.15 rad/s) speed 1 s after the slope: 12.77 rad/s, drop 2.38
P, kp = 1 min after the slope 11.225  speed at 3 s 11.246  at 4 s 11.246
PI (lambda 30 ms) min after the slope 14.626  speed at 3 s 15.15  at 4 s 15.15

===== fig02_step.py (exit 0, 0.9 s)
Ku = 3.3675, Tu = 57.35 ms -> ZN PID kp 2.0205, Ti 28.67 ms, Td 7.168 ms ; ki 70.47, kd 0.01448; kp 3 is 89 percent of Ku
CLEAN MEASUREMENT: controller                       rise ms  overshoot %  settle(2%) ms  sse rad/s   u peak V
P, kp = 1.0                                         nan        0.0          nan      0.668       3.00
PI lambda (kp 1.07, Ti 112 ms)                       30        3.5           80     -0.000       3.51
PI aggressive (kp 3, Ti 112 ms)                      10       48.8          620     -0.000       7.00
PID Ziegler-Nichols (kp 2.02, Ti 28.7 ms, Td 7       10       34.5          150      0.000       7.00
QUANTISED MEASUREMENT (one count = 0.476 rad/s at 10 ms): steady-state voltage noise, setpoint 3 rad/s held from 0.1 s
P, kp = 1.0                                    u std 0.143 V  u peak-to-peak 0.48 V  speed std 0.042 rad/s
PI lambda (kp 1.07, Ti 112 ms)                 u std 0.225 V  u peak-to-peak 0.52 V  speed std 0.047 rad/s
PI aggressive (kp 3, Ti 112 ms)                u std 4.868 V  u peak-to-peak 14.00 V  speed std 1.912 rad/s
PID Ziegler-Nichols (kp 2.02, Ti 28.7 ms, Td 7 u std 0.778 V  u peak-to-peak 3.39 V  speed std 0.178 rad/s

===== fig03_zn.py (exit 0, 1.0 s)
P loop at 0.5 Ku: growth ratio late/earlier envelope 0.000
P loop at 0.9 Ku: growth ratio late/earlier envelope 0.072
P loop at 1.0 Ku: growth ratio late/earlier envelope 1.000
P loop at 1.1 Ku: growth ratio late/earlier envelope 11.997
delay 0 samples: Ku 6.4485  Tu 20.00 ms  ZN PID kp 3.869
delay 1 samples: Ku 3.3675  Tu 57.35 ms  ZN PID kp 2.021
delay 2 samples: Ku 2.1626  Tu 92.62 ms  ZN PID kp 1.298
delay 3 samples: Ku 1.6138  Tu 126.12 ms  ZN PID kp 0.968
delay 4 samples: Ku 1.3033  Tu 158.14 ms  ZN PID kp 0.782
delay 5 samples: Ku 1.1043  Tu 188.89 ms  ZN PID kp 0.663

===== fig04_windup.py (exit 0, 0.9 s)
mode      max speed after release (rad/s)  integrator at release (V)  time back within 2% after release (s)
none                         24.43                     146.11                           2.12
backcalc                     17.06                       7.00                           0.34
clamp                        15.24                       4.30                           0.09

===== fig05_line.py (exit 0, 1.1 s)
closed-form delay margin of the ideal model: 0.8772 s ; natural frequency sqrt(v k1) = 2.0 rad/s, damping k2/(2 sqrt(v k1)) = 0.7
delay 0.0 s: min y -0.013 m (undershoot), settles into 1 cm at 2.73 s, max |y| in last 3 s 0.0000 m
delay 0.2 s: min y -0.051 m (undershoot), settles into 1 cm at 2.97 s, max |y| in last 3 s 0.0000 m
delay 0.6 s: min y -0.181 m (undershoot), settles into 1 cm at 13.34 s, max |y| in last 3 s 0.0244 m
delay 0.8 s: min y -0.255 m (undershoot), settles into 1 cm at nan s, max |y| in last 3 s 0.1482 m
delay 1.0 s: min y -0.366 m (undershoot), settles into 1 cm at nan s, max |y| in last 3 s 0.3659 m
ideal (no motor dynamics, no delay): min y -0.0133  settle 2.65 s

===== fig06_brake.py (exit 0, 0.8 s)
traction-limited deceleration 5.886 m/s^2 =  178.4 rad/s^2 per wheel ; braking time from 0.5 m/s 0.0849 s ; braking distance 0.0212 m
latency 15 ms: simulated stopping distance 2.85 cm ; formula 2.87 cm
latency 150 ms: simulated stopping distance 9.60 cm ; formula 9.62 cm
latency allowed for a 5 cm stop: 57.5 ms ; for 10 cm: 157.5 ms ; at 100 ms: 7.12 cm ; at 15 ms: 2.87 cm
mu 0.3 braking distance 4.25 cm
mu 0.6 braking distance 2.12 cm
mu 0.9 braking distance 1.42 cm
