# numbers_log for 003-unit3-sensors (rerun 2026-10-11 02:09)

===== analysis_numbers.py (exit 0, 0.6 s)
T   0.0 C  R   33620.6 ohm  V 2.5435  dR/dT  -1779.9 ohm/K  dV/dT  -30.87 mV/K  counts/K   38.3  K per count 0.0261
T  25.0 C  R   10000.0 ohm  V 1.6500  dR/dT   -444.4 ohm/K  dV/dT  -36.66 mV/K  counts/K   45.5  K per count 0.0220
T  50.0 C  R    3588.2 ohm  V 0.8714  dR/dT   -135.7 ohm/K  dV/dT  -24.26 mV/K  counts/K   30.1  K per count 0.0332
round trip ntc_temperature(R(37)) = 37.0
self-heating power at 25 C mW: 0.2722 ; temperature rise at ASSUMED 1 mW/K: 0.272 K
sound speed at 5 C = 334.33 m/s
sound speed at 20 C = 343.42 m/s
sound speed at 25 C = 346.45 m/s
sound speed at 35 C = 352.51 m/s
echo time for 1.000 m at 25 C (ms): 5.7728
reading assuming 20.0 C when air is 25 C: 0.9913 m, error -0.87 percent (-8.7 mm)
1.000 m at 5 C read with 25 C formula: 1.0363 m (3.63 percent)
ultrasonic echo for 0.05 m at 25 C us: 288.6  for 4 m ms: 23.09
alias of 50 Hz sampled at 1/60 Hz: 0.0  ; single-reading std (V): 0.0352  theory amp/sqrt2: 0.0354
burst of 20 samples at 1 kHz (exactly one 50 Hz period) mean residual std (V): 4.51e-15
burst of 17 samples at 1 kHz (not a whole period) residual std (V): 0.00603
sensitivity dV/dw at 25 percent (V per percent): -0.06
ADC step in percent VWC: 0.0134  rms quantisation in percent: 0.0039
sensor noise 0.015 V averaged over 1 -> percent VWC: 0.25
sensor noise 0.015 V averaged over 16 -> percent VWC: 0.0625
budget (rss) with 16-sample average, quadratic calibration 0.33, drift 7 days x 0.15 half-interval: 0.336 percent VWC
servo 45 deg pulse us: 1250.0  timer ticks per degree at 1 us tick: 5.555555555555555  degrees per tick: 0.18
stepper 200 steps/rev: deg/step 1.8  microstep 1/16 deg: 0.1125  steps for 90 deg at 1/16: 800
encoder counts per wheel rev 1320  mm/count 0.1571  counts/s at 0.5 m/s 3183.1  A-channel frequency Hz at 0.5 m/s: 795.8
odometry error from 1 count over 20 m patrol (percent): 0.00079

===== fig01_accuracy.py (exit 0, 0.9 s)
A: accurate, precise bias -0.007 std 0.099 rmse 0.1 check 0.1
B: accurate, noisy bias 0.013 std 0.801 rmse 0.801 check 0.801
C: biased, precise bias 1.501 std 0.099 rmse 1.505 check 1.505
D: biased, noisy bias 1.511 std 0.81 rmse 1.715 check 1.715

===== fig02_calibration.py (exit 0, 1.1 s)
two-point line mean RMSE over 300 repeats (percent VWC): 1.948 min 1.51 max 2.357
six-point line mean RMSE over 300 repeats (percent VWC): 0.92 min 0.802 max 1.076
six-point quadratic mean RMSE over 300 repeats (percent VWC): 0.326 min 0.236 max 0.469
slope se: formula 0.054 monte carlo 0.0537
fit of V on w (6 points): slope -0.0593 se 0.0025 r2 0.99304 resid std 0.083

===== fig03_aliasing.py (exit 0, 0.8 s)
fs 50 apparent frequency 5.0
fs 12 apparent frequency 5.0
fs 6 apparent frequency 1.0
fs 10: true 4 apparent 4.0
fs 10: true 5.5 apparent 4.5
fs 10: true 9 apparent 1.0
fs 10: true 11 apparent 1.0
fs 10: true 19 apparent 1.0
9 Hz vs -1 Hz samples identical: True

===== fig04_filters.py (exit 0, 3.6 s)
t90 moving average (s): 0.17  EMA: 0.18
noise std raw (first 1.9 s) 0.1907 MA 0.0238 EMA 0.0278
n 1 alpha 1.0 MA gain 1.0004 theory 1.0 EMA gain 1.0005 theory 1.0 delay MA 0.0 EMA 0.0
n 2 alpha 0.6667 MA gain 0.7076 theory 0.7071 EMA gain 0.7073 theory 0.7071 delay MA 0.5 EMA 0.5
n 4 alpha 0.4 MA gain 0.4997 theory 0.5 EMA gain 0.5 theory 0.5 delay MA 1.5 EMA 1.5
n 8 alpha 0.2222 MA gain 0.3536 theory 0.3536 EMA gain 0.3535 theory 0.3536 delay MA 3.5 EMA 3.5
n 16 alpha 0.1176 MA gain 0.2499 theory 0.25 EMA gain 0.25 theory 0.25 delay MA 7.5 EMA 7.5
n 32 alpha 0.0606 MA gain 0.1769 theory 0.1768 EMA gain 0.1767 theory 0.1768 delay MA 15.5 EMA 15.5
n 64 alpha 0.0308 MA gain 0.1246 theory 0.125 EMA gain 0.1246 theory 0.125 delay MA 31.5 EMA 31.5
tau EMA at alpha 0.1, fs 100: 0.0949 s; alpha_from_tau(0.1 s, 0.01): 0.0952

===== fig05_encoder.py (exit 0, 0.8 s)
counts per wheel rev 1320 distance per count mm 0.1571
decoded count of the sequence: 5 errors 0 expected 5
Ts 0.01 speed resolution mm/s 15.708 peak error mm/s 13.053 counts per window 31.8
Ts 0.05 speed resolution mm/s 3.142 peak error mm/s 2.655 counts per window 159.2
Ts 0.1 speed resolution mm/s 1.571 peak error mm/s 1.084 counts per window 318.3
Ts 0.5 speed resolution mm/s 0.314 peak error mm/s 0.173 counts per window 1591.5

===== fig06_drift.py (exit 0, 0.7 s)
interval None worst error 9.7 days over tolerance 45
interval 14 worst error 2.65 days over tolerance 0
interval 7 worst error 1.6 days over tolerance 0
max days between calibrations: 15.33
