Nuestros amigos de Cameracopter, equipo formado por excelentes pilotos y perteneciente a la gran familia DDC, han hecho un fantástico artículo explicando los PID desde un punto de vista matemático pensado para los 100tifikos y developers de la comunidad. Si sois curiosos y os gusta profundizar en los temas para aumentar vuestro conocimiento… no os lo podéis perder!  Si queréis verlo desde un punto de vista más básico y práctico podéis consultar nuestro artículo sobre PID: PID ¿Que es? A continuación republicamos el artículo que podéis encontrar también en su página web: Los PID desde un punto de vista matemático 

A todos nos suena lo que son los PID y conocemos la criticidad de sus parámetros a la hora de calibrar el control de nuestro multirotor. Pero, ¿qué son realmente los PID? ¿Cómo afectan al control de nuestro aeronave? ¿En que se basa un sistema de control por PID?

Desde CameraCopter queremos acercaros un poco más a la base en la que se sustenta este tipo de control desde un punto de vista matemático (pero sin pasarnos) intentando ilustrarlo con ejemplos prácticos aplicados a nuestro entorno.

 

Sistemas de control

Los sistemas de control se utilizan en numerosas aplicaciones, procesos industriales y controles automáticos de operaciones, dónde intervienen multitud de variables. Enumeramos a continuación una serie de conceptos que comparten todos los sistemas de control, que usaremos recursivamente en el ámbito que nos interesa: el control por PID.

  • Sistema de control en lazo abierto: Se trata de aquellos sistemas de control en el que no existe retroalimentación entre la señal de salida y la de entrada.
  • Sistema de control en lazo cerrado: En caso contrario al sistema anterior, la señal de salida tiene componentes de la señal de entrada para sus correcciones. Se trata del caso de control por PID.
  • Variable manipulada: Es el elemento del sistema que se manipula para conseguir la respuesta deseada. Por ejemplo en nuestro caso serían las RPM que alcanzan los motores.
  • Variable controlada: A diferencia del caso anterior, se trata del parámetro que se controla para tomar la decisión si se ha alcanzado el valor deseado. Siguiendo en nuestro ámbito, por ejemplo sería el ángulo en roll que queremos alcanzar mediante nuestro control remoto. La controladora monitoriza el ángulo deseado versus el ángulo real capturado por los sensores.
  • Planta: La planta es el conjunto de elementos o dispositivos de una máquina que tienen el objetivo de ejecutar una operación en particular. En concreto, el conjunto que conforma nuestro multirotor. Notemos que no todos los quads se comportan igual aunque tengan exactamente los mismos componentes: el motivo es que las plantas que los caracterizan son diferentes.
  • Proceso: Se trata de la operación que persigue un objetivo concreto realizando cambios en el sistema. En nuestro caso no es más que el comportamiento dinámico de la aeronave.
  • Variaciones: Variaciones externas, interferencias, perturbaciones… Factores que influyen en las acciones de producir cambios correctivos en el sistema. Existen dos tipos, las internas al sistema e inherentes (ruido en los sensores, sesgo de los componentes electrónicos, desajustes mecánicos…) así como los externos como la fuerza del viento.
  • Realimentación: Es lo que caracteriza los sistemas de control en lazo cerrado. Se trata de una relación causa-efecto entre las variables de estado para minimizar los errores del sistema.

 

 

Después de esta breve introducción de conceptos, sigamos a lo que nos interesa realmente…

 

Control por PID

Como hemos comentado anteriormente se trata de un sistema de control de lazo cerrado (retroalimentado) usado en numerosas aplicaciones tales como el control de velocidad de un vehículo o alcanzar la temperatura deseada en un horno de fusión de metales, etcétera…

El nombre de PID viene de las tres constantes que intervienen: P.I.D = Proporcional + Integrador + Derivativo. Y es que estas siglas resumen el funcionamiento de este sistema. Las tres constantes, o tambien llamadas ganancias, son las encargadas de parametrizar el comportamiento de control. Cada una de estas constantes realiza un ajuste en referencia a los errores calculados en el sistema de control. Estos parámetros hay que ajustarlos con el objetivo de minimizar el tiempo de variación y sus perturbaciones (las conocidas vibraciones causadas por los PID). Cada componente pretende corregir el error en una fase del tiempo: la constante proporcional Pdetermina la reacción al error actual, la constante integradora I hace referencia a la acumulación de los errores en el pasado y la derivativa D pretende anticiparse a posibles errores futures basándose en la velocidad de cambio del señal medido.

Hay que asumir que el uso de PID no garantiza el control óptimo ni tampoco la estabilidad del sistema, y que hay muchas aplicaciones dónde no es el sistema idoneo. Del mismo modo tambien, no todas las aplicaciones requieren del uso de las tres constantes PID. Muy amenudo las aplicaciones industriales se bastan con un controlador PI, dado que la componente D es altamente sensible al ruido que puedan inducir los sensores y ésto perjudique más al conjunto de lo que corrige en si mismo.

A continuación tenéis el diagrama de control de PID y su formulación:

 

 

 

  • Kp: Ganancia de componente proporcional.
  • Ki: Ganancia de componente integradora.
  • Kd: Ganancia de componente derivativa.
  • e: Señal de error, diferencia entre el valor objetivo y el valor actual.
  • t: Variable tiempo.
  • τ: Variable de integración temporal.

Componente proporcional

La parte proporcional es el producto directo entre la señal de error y la constante proporcional, para conseguir que el error actual sea anulado. Se regula mediante la constante Kp. Si la constante tiene un valor demasiado elevado, el sistema puede resultar inestable. En caso contrario, si la constante es demasiado pequeña el sistema puede no llegar a compensar las variaciones y por tanto, nunca alcanzar los valores deseados. En términos prácticos, la componente proporcional es la que más contribuye a la salida del sistema.

Dado que la parte proporcional no tiene en cuenta el tiempo, es ideal aparejarla con una componente integradora o derivativa para mitigar los efectos de las variaciones de error respecto al tiempo.

Componente integradora

El objetivo de la componente integradora es el de reducir i eliminar los errores estacionarios. Se ajusta mediante la constante Ki. Este componente compensa el aporte de los errores acumulados que no han logrado corregirse con anterioridad i le da velocidad al factor de corrección.

Del mismo modo que en el caso anterior, un valor demasiado elevado de Ki puede resultar sistemas sobreamortiguados.

Componente derivativa

Finalmente la componente derivativa se alinea con la pendiente de la señal del error con el tiempo. Dicho en otras palabras, pretende hacer una previsión de las interferencias futuras basándose en la variación actual.

 

Discretización del PID

En nuestro caso, la señal que proviene de los sensores no es continua, sino que los sensores “sirven” a la controladora una muestra cada cierto tiempo. A esto se le conoce como señal discreta. En este caso el modelo de PID anterior no aplica, hay que discretizarlo.

Y es aquí donde intervienen los famosos looptime: frecuencia (o periodo) de refresco del componente. Es el periodo en el cual se discretiza el PID.

Los componentes discretizados acaban resultando correspondientemente para la parte proporcional, integradora y derivativa:

 

 

 

Y la formula final que las aglutina:

 

Éste es el modelo matemático que aplica en nuestro caso.

Conclusiones

Esperamos que no se haya hecho muy pesado este artículo y haya sido del agrado de los 100tifikos y developers más curiosos.

Este artículo no pretende más que, entre todos podamos alcanzar un punto mayor de conocimiento y nos acostemos un poco menos ignorantes. Ya sabéis que no hay personas con mayor conocimiento, sino que realmente ignoran cosas distintas.

 

Fuente e imágenes |  http://www.cameracopter.es/index.php/es/articles-es/79-guide-es/182-mathpid-es