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.
var Controller = require('node-pid-controller');
var ctr = new Controller(0.25, 0.01, 0.01); // k_p, k_i, k_dctr.setTarget(120); // 120km/hvar correction = ctr.update(110); // 110km/h is the current speedNormally, you use the correction to a measure, in a closed loop
var goalReached = false
while (!goalReached) {
var output = measureFromSomeSensor();
var input = ctr.update(output);
applyInputToActuator(input);
goalReached = (input === 0) ? true : false; // in the case of continuous control, you let this variable 'false'
}mocha testPhilmod <[email protected]>