alro65
|
c432fc3725
|
feat: sea-state model + 7 bad-weather / stress TCs (14/14 pass)
esp32_sim.py — Sea state engine
• _BEAUFORT_TABLE (B0–B8): wave torque, swell, noise, wind-bias, period
• set_sea_state(beaufort, seed): injects external_yaw_torque into
VesselHeadingSimulator each tick (sine wave + swell + white noise +
weather-helm drift). B4≈±3° heading osc, B6 disengages correctly.
• tune_response(rudder_kp, counter_rudder, max_rudder_deg): runtime
gain adjustment — simulates the classic Robertson "RUDDER" /
"COUNTER RUDDER" / working-rudder-limit knobs.
• _compute_wave_torque(): composed 4-component disturbance model.
sim_protocol.py — 7 new demanding test cases
TC-08 Beaufort 4, 5 min max dev 10.4°, RMS 5.6°, no disengage
TC-09 Beaufort 6 operational limit — SEVERE alarm fires at 35.8 s
(correct safety behaviour; documents factory-gain limit)
TC-10 Low speed 2 kn, +10° τ_outer≈113 s, settles 0.83° < 3°
TC-11 180° reversal no SEVERE (tracking_settled guard), 1.18°
TC-12 Rapid setpoint stress 5 changes in 100 s, final error 1.17°
TC-13 Gain boost in B5 1.70× RMS improvement (12.3°→7.2°),
demonstrates RUDDER+COUNTER RUDDER tuning effect
TC-14 B7 spike (30 s) SEVERE fires correctly, re-engages,
recovers to 0.0° within 90 s of calm return
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-05-22 08:26:37 -04:00 |
|
alro65
|
2b574b57f6
|
feat: Python-native ESP32 simulator + 7-TC HIL protocol (all pass)
tools/esp32_sim.py – Full software ESP32 simulator with cascade PID
(outer 10 Hz / inner 50 Hz), vessel yaw physics, Modbus register banks,
mode state-machine (STANDBY/HEADING_HOLD/DODGE), alarm engine
(HEADING_LOST, OFF_COURSE with _tracking_settled guard).
Sim-specific parameter tuning vs. firmware defaults:
• outer: kd=0, ki=0, aw_gain=0, deadband=0 → pure P+ROT-FF, τ≈24 s
• inner: kp=20, deadband=0, min_useful=0 → τ_cl=1 s, no bang-bang
• vessel: rudder_response_gain=0.004 → 30 m yacht dynamics
tools/sim_protocol.py – 7 automated test cases (TC-01…TC-07) with
heading-trace charts and HTML report. All 7 PASS:
TC-02 settle 49.8 s, error 0.488° (crit <60 s, <1°)
TC-03 settle 134 s, error 0.985° (crit <180 s, <2°)
TC-04 settle 56.5 s, error 0.570° (crit <90 s, <1°)
TC-07 dodge 1.73°, return 0.527° (crit <2°, <1°)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-05-22 04:18:01 -04:00 |
|