SYNOPSIS

Limit the output signal to fall between min and max, limit its slew rate to less than maxv per second, and limit its second derivative to less than maxa per second squared. When the signal is a position, this means that the position, velocity, and acceleration are limited.

FUNCTIONS

limit3.N (requires a floating-point thread)

PINS

limit3.N.in float in

limit3.N.enable bit in (default: 1)

1: out follows in, 0: out returns to 0 (always per constraints)

limit3.N.out float out

limit3.N.load bit in (default: 0)

When TRUE, immediately set out to in, ignoring maxv and maxa

limit3.N.min- float in (default: -1e20)

limit3.N.max- float in (default: 1e20)

limit3.N.maxv float in (default: 1e20)

limit3.N.maxa float in (default: 1e7)

Max Acceleration. Note that the component becomes unstable with maxa greater than about 1e7 in a 1kHz thread

limit3.N.smooth-steps u32 in (default: 2)

Smooth out acceleration this many periods before reaching input or max/min limit. Higher values avoid oscillation, but will accelerate slightly more slowly.

AUTHOR

John Kasunich

LICENSE

GPL