SatCat5
satcat5::ptp::ControllerPII Class Reference

Detailed Description

Loop-filter for a proportional-double-integral (PII) controller.

This 3rd-order linear filter can accurately track a steady-state frequency chirp. This improves performance for some oscillators.

Definition at line 349 of file ptp_filters.h.

#include <ptp_filters.h>

Inheritance diagram for satcat5::ptp::ControllerPII:
[legend]
Collaboration diagram for satcat5::ptp::ControllerPII:
[legend]

Public Member Functions

 ControllerPII (const satcat5::ptp::CoeffPII &coeff)
 Constructor sets loop bandwidth, which can be changed later.
 
void set_coeff (const satcat5::ptp::CoeffPII &coeff)
 Adjust tracking-loop bandwidth.
 
void set_slew (u64 slew)
 Adjust maximum slew-rate.
 
void reset () override
 Required API from ptp::Filter.
 
void rate (s64 delta, u32 elapsed_usec) override
 Required API from ptp::Filter.
 
s64 update (s64 next, u32 elapsed_usec) override
 Required API from ptp::Filter.
 

Protected Attributes

satcat5::ptp::CoeffPII m_coeff
 
satcat5::util::int128_t m_accum1
 
satcat5::util::int256_t m_accum2
 
u64 m_slew
 

Private Attributes

satcat5::ptp::Filterm_next
 

The documentation for this class was generated from the following files: