Skip to content

Repository files navigation

node-pid-controller

Simple Node.js PID controller.

pid

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.

letController=require('node-pid-controller');letctr=newController({k_p: 0.25,k_i: 0.01,k_d: 0.01,dt: 1});

You can also pass options as arguments:

letctr=newController(0.25,0.01,0.01,1);// k_p, k_i, k_d, dt

Set the target

ctr.setTarget(120);// 120km/h

Get the correction

letcorrection=ctr.update(110);// 110km/h is the current speed

Real example

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

letgoalReached=falsewhile(!goalReached){letoutput=measureFromSomeSensor();letinput=ctr.update(output);applyInputToActuator(input);goalReached=(input===0);// in the case of continuous control, you let this variable 'false'}

Options

  • k_p, k_i, 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)

Test

mochatest

Author

Philmod <philippe.modard@gmail.com>

About

Node.js PID controller

Resources

Stars

129 stars

Watchers

9 watching

Forks

Releases

Packages

Used by

Contributors

Languages