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.