====== @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(); // остановим ПИД-регулятор }); func:: create(opts) Возвращает новый объект ПИД-регулятор с настройками ''opts''. В качестве ''opts'' принимается объект с полями: * ''target'' — уставка ПИД-регулятора (0, если не задано). Это значение, которое ПИД- * ''kp'' — пропорциональный коэффициент ПИД-регулятора (0, если не задано); * ''ki'' — интегральный коэффициент ПИД-регулятора (0, если не задано); * ''kd'' — дифференци (0, если не задано); * ''outputMin'' — минимальная величина выходного воздействия (0, если не задано); * ''outputMax'' — максимальная величина выходного воздействия (1, если не задано); class:: Pid Класс объекта ПИД-регулятора. Используйте ''[[#create|create]]'', чтобы создать новый экземпляр. meth:: Pid.update(input) Принимает входное значение ПИД-регулятора ''input'', рассчитывает и возвращает выходное значение ПИД-регулятора. meth:: Pid.setup(opts) Служит для изменения параметров ПИД-регулятора. Ожидает объект ''opts'' подобный тому, что используется в ''[[#create|create]]''. meth:: Pid.tune(opts) Принимает на вход объект с полями ''kp'', ''ki'', ''kd''. Значение поля будет прибавлено к соответствующему коэффициенту ПИД-регулятора. Используйте его для подбора коэффициентов ПИД-регулятора. meth:: Pid.run(callback, timeout) Заставляет систему вызывать функцию ''callback'' каждые ''timeout'' секунд. Используйте этот метод для получения входного значения, а так же расчёта и использования выходного значения ПИД-регулятора. meth:: Pid.stop() Останавливает работу метода ''[[#run|run]]''.