filters: add fixed-wander Kalman servo - #872
Open
jordens wants to merge 2 commits into
Open
Conversation
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.
This adds a single-estimator servo for clocks where oscillator wander can be known or bounded. Oscillator wander (in the model) is independent of the network environment.
The new servo keeps previous online network-noise estimation, but uses a characterized or conservative wander bound instead of a second estimator.
The default is four times the independently measured I210 wander; characterized targets should override it while unknown or
strongly varying oscillators should definitely keep the doubly-adaptive filter.
This assumption gives deterministic startup and lower CPU/memory cost.
Against the full doubly-adaptive
KalmanFilter, the STM32H743 imageuses 2.8 KiB less text and 0.5 KiB less BSS. On the host, the full servo
workload is 1.54x faster. These numbers are on top of the gains in #871.
Note that this stacks on top of #871. And same as there:
I know statime is on hold for the big ntpd-rs work. I'm putting this out anyway because it may still become useful wherever the filters ends up living.