A deep dive into advanced encoder velocity estimation techniques for embedded systems. Covers the limitations of simple differentiation and low-pass filtering, then introduces tracking loops (PI-based feedback loops that achieve zero steady-state error even for ramp inputs) and phase-locked loops (PLLs). Explains why scalar PLLs suffer from cycle slips and high-frequency phase detector noise, and how vector PLLs using quadrature mixing avoid atan2 unwrapping pitfalls in noisy or analog sensing scenarios. Python code examples illustrate tracking loop implementation and PLL phase-space behavior.
Table of contents
Information Theory and Estimation (well, some handwaving at least)Common Structures of More Sophisticated EstimatorsTracking loopsPhase-locked loops (PLL)Scalar vs. vector PLLsOkay, well what does this have to do with encoders?Summary3 Impressions