node-pid-controller
Simple Node.js PID controller.
Installation
$ npm install node-pid-controller
Example
Let's take the example of a car cruise control. We want the car driving at 120km/h.
Create a Controller instance
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.
let Controller = ; let ctr = k_p: 025 k_i: 001 k_d: 001 dt: 1;
You can also pass options as arguments:
let ctr = 025 001 001 1; // k_p, k_i, k_d, dt
Set the target
ctr; // 120km/h
Get the correction
let correction = ctr; // 110km/h is the current speed
Real example
Normally, you use the correction to a measure, in a closed loop.
let goalReached = falsewhile !goalReached let output = ; let input = ctr; ; goalReached = input === 0 ? true : false; // in the case of continuous control, you let this variable 'false'
Options
k_p
,k_i
,k_d
: the PID's coefficientsdt
: 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)
Test
mocha test
Author
Philmod <philippe.modard@gmail.com>