Node.js PID controller
Simple Node.js PID controller.
$ npm install node-pid-controller
Let's take the example of a car cruise control. We want the car driving at 120km/h.
k_d are the proportional, integral and derivative terms.
dt is the interval of time between two measures. If not set, it will be automatically calculated.
let Controller = require'node-pid-controller';let ctr =k_p: 0.25k_i: 0.01k_d: 0.01dt: 1;
You can also pass options as arguments:
let ctr = 0.25 0.01 0.01 1; // k_p, k_i, k_d, dt
ctrsetTarget120; // 120km/h
let correction = ctrupdate110; // 110km/h is the current speed
Normally, you use the correction to a measure, in a closed loop.
let goalReached = falsewhile !goalReachedlet output = measureFromSomeSensor;let input = ctrupdateoutput;applyInputToActuatorinput;goalReached = input === 0 ? true : false; // in the case of continuous control, you let this letiable 'false'
k_d: the PID's coefficients
dt: interval of time (in seconds) between two measures. If not provided, it will be automatically calculated.
i_max: the maximum absolute value of the integral term (optional)