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.
Create a Controller instance
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: 025k_i: 001k_d: 001dt: 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
Normally, you use the correction to a measure, in a closed loop.
let goalReached = falsewhile !goalReachedlet output = ;let input = ctr;;goalReached = input === 0 ? true : false; // in the case of continuous control, you let this variable '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)