|
tomlankhorst/control
|
Control functionality in C++
P, PI, PD and PID control:
Based on trapezoidal (Tustin) discretizations of the standard (serial) PID controller.
PI, PD and PID are use Biquads and expose functionality like .poles().
Biquads, or Second Order Sections (SOS), are transfer functions consisting of a ratio of two quadratic polynomials. With z operator:
(normalized by a0)
Biquads can be chained to obtain higher-order transfer-functions.
The implementation of Biquads in this library is based on the Direct-form II transposed implementation.
Retrieving the poles of a Biquad:
Implements g-h-k filter.
Expose a system to a PRBS to identify its transfer characteristics.
State-spaces allow representation of LTI discretized systems with Nx states, Nu inputs and Ny outputs.
This functionality is based upon the Eigen3 Matrix math library. Eigen takes care of target-specific vectorization!
There's a short article about this library.
1.8.13