do_freq_est: document the state×arm incidence (table + diagram)#82
Merged
Conversation
DOFreqEst fuses up to 6 measurement arms into a 4-state EKF, but which arm observes which state — and which state is hidden — wasn't written down anywhere. Add a state×arm incidence table to the module docstring (ASCII, renders in-place) and a matching SVG, making the structure explicit: x0/x1/x2 are directly measured; x3 (DO frequency) is the lone HIDDEN state, recovered only through the predict-step integrator coupling — and it's the very state the servo actuates on (adjfine ≈ −f_do). Also flags TICC (Arm 4) as the only non-diagonal arm, intermittent at 125 MHz tick boundaries. Files: docs/dofreqest-state-arm-map.svg + its generator scripts/gen_dofreqest_state_arm_svg.py (keep the two in sync). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Documents which of DOFreqEst's 6 measurement arms observes which of its 4 states — and which state is hidden. Purely additive (docstring + docs), no logic change.
scripts/peppar_fix/do_freq_est.py(+24): ASCII state×arm incidence table in the module docstring (renders in-place), with footnotes for the one non-diagonal arm (TICC, intermittent at 125 MHz tick boundaries) and for x3 (DO frequency) — the lone HIDDEN state, recovered only via the predict-step integrator coupling, yet the state the servo actuates on (adjfine ≈ −f_do).docs/dofreqest-state-arm-map.svg+ its generatorscripts/gen_dofreqest_state_arm_svg.py.No overlap with the in-flight PR #79 (routedQErrArm), which edits
do_freq_est.pyfrom line 69+; this change is the top module docstring.Test plan
🤖 Generated with Claude Code