lincurve(9)

lincurve9

One-dimensional lookup table

Usage

loadrt lincurve [count=N|names=name1[,name2...]] [personality=P1,P2,...]

Overview

This component can be used to map any floating-point input to a floating-point output. Typical uses would include linearisation of thermocouples, defining PID gains that vary with external factors or to substitute for any mathematical function where absolute accuracy is not required.

The component can be thought of as a 2-dimensional graph of points in (x,y) space joined by straight lines. The input value is located on the x axis, followed up until it touches the line, and the output of the component is set to the corresponding y-value.

The (x,y) points are defined by the x-val-NN and y-val-NN parameters which need to be set in the HAL file using "setp" commands.

The maximum number if (x,y) points supported is 16.

For input values less than the x-val-00 breakpoint the y-val-00 is returned. For x greater than the largest x-val-NN the yval corresponding to x-max is returned (ie, no extrapolation is performed.)

Sample usage: loadrt lincurve count=3 personality=4,4,4 for a set of three 4-element graphs.

Functions

lincurve.N (requires a floating-point thread)

Pins

lincurve.N.in float in

The input value

lincurve.N.out float out

The output value

lincurve.N.out-io float io

The output value, compatible with PID gains

Parameters

lincurve.N.x-val-MM float rw (MM=00..personality)

axis breakpoints

lincurve.N.y-val-MM float rw (MM=00..personality)

output values to be interpolated

Releases

2 releases since Debian 12 (Bookworm); the text changed 1 time.

  1. 12
  2. 13

Author

Andy Pugh

License

GPL

From linuxcnc-uspace 1:2.9.4-2+deb13u1 in Debian 13 (Trixie). Parsed by carta from the page's man source.