node-pid-controller

Node.js PID controller

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
node-pid-controller
11951.0.15 years ago10 years agoMinified + gzip package size for node-pid-controller in KB

Readme

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. ```js let Controller = require('node-pid-controller'); let ctr = new Controller({ kp: 0.25, ki: 0.01, kd: 0.01, dt: 1 }); ``` You can also pass options as arguments: ```js let ctr = new Controller(0.25, 0.01, 0.01, 1); // kp, ki, kd, dt ```

Set the target

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

Get the correction

```js let correction = ctr.update(110); // 110km/h is the current speed ```

Real example

Normally, you use the correction to a measure, in a closed loop. ```js let goalReached = false while (!goalReached) { let output = measureFromSomeSensor(); let input = ctr.update(output); applyInputToActuator(input); 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 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

```js mocha test ```

Author

Philmod <philippe.modard@gmail.com>