Como ya sabrán la mayoría de los que leen este blog a diario, el algoritmo PID (o Proporcional Integral Derivativo), es un elemento bastante usado en sistemas autómatas (de una manera u otra), en los cuales este algoritmo cobra bastante importancia en las funciones de re-alimentación, además de provocar que la curva de respuesta sea mucho mas suave que si usamos un sistema alternativo.
La idea es haceros un poco de resumen sobre el panorama de librerías ya diseñadas que nos permitan crear un control PID sencillo (relativamente), sin tener que programarlo desde 0.
Arduino no se queda atrás!
El PID tiene una fórmula, ecuación, expresión, que nos permite calcular los parámetros de salida, a partir de unos dados, básicamente es esta:
Y ahora, vayámonos con la lib de arduino!
ARDUINO PID LIBRARY
Cita de wikipedia
"Un PID (Proporcional Integral Derivativo) es un mecanismo de control por realimentación que calcula la desviación o error entre un valor medido y el valor que se quiere obtener, para aplicar una acción correctora que ajuste el proceso."
Funciones
PID()
Compute()
SetMode()
SetOutputLimits()
SetTunings()
SetSampleTime()
SetControllerDirection()
Ejemplo básico:
/******************************************************** * PID Basic Example * Reading analog input 0 to control analog PWM output 3 ********************************************************/ #include //Define Variables we'll be connecting to double Setpoint, Input, Output; //Specify the links and initial tuning parameters PID myPID(&Input, &Output, &Setpoint,2,5,1, DIRECT); void setup() { //initialize the variables we're linked to Input = analogRead(0); Setpoint = 100; //turn the PID on myPID.SetMode(AUTOMATIC); } void loop() { Input = analogRead(0); myPID.Compute(); analogWrite(3,Output); }
Enlaces
Página oficial en background de Arduino (Con 2 ejemplos mas!)
Explicacíon de la librería y el PID por el autor de dicha libreria