@amperka/pid
Пропорционально-интегрально-дифференцирующий (ПИД) регулятор нужен для поддержания одной характеристики устройства на нужном уровне при помощи изменения другой характеристики. Например, ПИД-регулятор поможет выдержать заданную температуру бака с водой, регулируя мощность нагревателя.
var myControl = require('@amperka/pid').create({ target: 30, // требуемая величина выходного значения kp: 3, // пропорциональная составляющая ki: 0.9, // интегральная составляющая kd: 0.1, // дифференциальная составляющая outputMin: 0, // минимальное значение выхода outputMax: 1 // максимальное значение выхода }); myControl.run(function() { var input = analogRead(A5); var output = myControl.update(input); analogWrite(P9, output); }, 0.05); // запускаем ПИД-регулятор каждые 50 мс myFirstButton.on('click', function() { myControl.setup({target: 35}); // задаём новую уставку }); mySecondButton.on('click', function() { myControl.tune({kp: -0.05}); // Уменьшим пропорциональный коэффициент на 0,05 }); myStopButton.on('click', function() { myControl.stop(); // остановим ПИД-регулятор });
Возвращает новый объект ПИД-регулятор с настройками opts
. В качестве opts
принимается объект с полями:
target
— уставка ПИД-регулятора (0, если не задано). Это значение, которое ПИД-kp
— пропорциональный коэффициент ПИД-регулятора (0, если не задано);ki
— интегральный коэффициент ПИД-регулятора (0, если не задано);kd
— дифференци (0, если не задано);outputMin
— минимальная величина выходного воздействия (0, если не задано);outputMax
— максимальная величина выходного воздействия (1, если не задано);
Класс объекта ПИД-регулятора. Используйте create
, чтобы создать новый экземпляр.
Принимает входное значение ПИД-регулятора input
, рассчитывает и возвращает выходное значение ПИД-регулятора.
Служит для изменения параметров ПИД-регулятора.
Ожидает объект opts
подобный тому, что используется в create
.
Принимает на вход объект с полями kp
, ki
, kd
. Значение поля будет прибавлено к соответствующему коэффициенту ПИД-регулятора. Используйте его для подбора коэффициентов ПИД-регулятора.
Заставляет систему вызывать функцию callback
каждые timeout
секунд.
Используйте этот метод для получения входного значения, а так же расчёта и использования выходного значения ПИД-регулятора.
Останавливает работу метода run
.