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_p, k_i and 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.

var Controller = require('node-pid-controller');
var ctr = new Controller(0.25, 0.01, 0.01, 1); // k_p, k_i, k_d, dt 
ctr.setTarget(120); // 120km/h 
var correction = ctr.update(110); // 110km/h is the current speed 

Normally, you use the correction to a measure, in a closed loop

var goalReached = false
while (!goalReached) {
  var output = measureFromSomeSensor();
  var input  = ctr.update(output);
  goalReached = (input === 0) ? true : false; // in the case of continuous control, you let this variable 'false' 
mocha test

Philmod <>