HAL Component — ILOWPASSV2
INSTANTIABLE COMPONENTS — General
All instantiable components can be loaded in two manners
Using loadrt with or without count= | names= parameters as per legacy components
Using newinst, which names the instance and allows further parameters and arguments
primarily pincount= which can set the number of pins created for that instance (where applicable)
ilowpassv2 — Low-pass filter with integer inputs and outputs
newinst ilowpassv2 <newinstname> [ pincount=N | iprefix=prefix ] [instanceparamX=X | argX=X ]
( args in [ ] denote possible args and parameters, may not be used in all components )
While it may find other applications, this component was written to create smoother motion while jogging with an MPG.
In a machine with high acceleration, a short jog can behave almost like a step function. By putting the \fBilowpass\fR component between the MPG encoder \fBcounts\fR output and the axis \fRjog-counts\fR input, this can be smoothed.
Choose \fBscale\fR conservatively so that during a single session there will never be more than about 2e9/\fBscale\fR pulses seen on the MPG. Choose \fBgain\fR according to the smoothing level desired. Divide the \fRaxis.\fIN\fR.jog-scale\fR values by \fBscale\fR.
ilowpassv2.N.funct ( OR <newinstname>.funct (requires a floating-point thread) )
Update the output based on the input and parameters
Jeff Epler <email@example.com>