Desarrollando algoritmos de control PID (parte 1)

Standard

“Paradigmas de los controladores PID”

             

Que tal amigos lectores, antes de comenzar a hablar sobre lo que tratará este blog permítanme hablarles un poco de mí. Soy estudiante de Ing. Mecatrónica del Instituto tecnológico de Culiacán, actualmente estoy cursando mi último semestre y me encuentro colaborando medio tiempo con esta empresa desde Junio del presente año.

Me llamo Earvin Ricardo Casillas Filippini, la mayoría de las personas se refieren a mí por mi segundo apellido y todos los derivados que se les puedan ocurrir. Tal como “Fili”, “Panini”, “El italiano” etc. Sí, así es, mi segundo apellido es de origen italiano. Algunas chicas también me conocen también por “papito”, “guapillo”, “hermoso”, “Filippini Grey” en fin. Ninguna chica ha sido capaz de resistirse a mis encantos.
Pero bueno amigos, continuemos ahora sí con el verdadero tema de este blog, el famoso control PID. Quiero hacer énfasis que en este blog sólo explicaré la forma de implementar esta técnica de control en la plataforma Arduino. Por lo que, si mínimamente no sabes lo que es un sistema de control en lazo cerrado, te recomiendo que previamente dediques algo de tu tiempo a leer los libros de “Ingeniería de control moderna” y “Sistemas de control en tiempo discreto” ambos de Katsuhiko Ogata. Dado a que este tema da mucho que hablar, este blog estará compuesto de varias partes. En esta primera parte solo hablaré de los complejos que cargamos cuando se nos encomienda esta labor. Así que si esperas que en esta primera parte te muestre como implementar PID, lamento decepcionarte, eso será durante las próximas entregas, paciencia, es un tema algo extenso. Comencemos.

Buenos amigos, el principal inconveniente que encontramos para este tipo de control es que a la mayoría de los jóvenes estudiantes que requerimos este conocimiento, nos parece demasiado tedioso poder desarrollar este tipo de control. Ya que la teoría nos indica que para desarrollar nuestro sistema de control, primero hay que obtener un modelo matemático que describa la dinámica de nuestro sistema, estudiar la respuesta de nuestro sistema ante diferentes formas de excitación, en fin. Todos aquellos que han lidiado con estos temas saben a lo que me refiero. Además a nivel universitario, hablando en general, solamente se estudian sistemas lineales, de una entrada y una salida, (SISO = Single Input, Single Output). Sistemas sencillos de analizar. ¿Pero que creen? En la práctica es muy, pero muy probable que nos encontremos con sistemas NO lineales y sistemas MIMO (Multiple Inputs, Multiple Outputs). Obviamente el nivel de dificultad para modelar matemáticamente los sistemas anteriores es mucho mayor a los sistemas SISO. A menos que seas alguien muy metódico, con muchísima disponibilidad de tiempo y estés enamorado del maravilloso mundo de las matemáticas te parecerá algo sumamente atractivo. Personalmente me considero alguien metódico y con un gran gusto por las matemáticas.

¿Pero que creen? No dispongo de mucho tiempo. Lo siento chicas, Filippini Grey está temporalmente de fuera de servicio. Además de lo anteriormente mencionado, los tiempos de desarrollo en las empresas son muy importantes, el factor tiempo es algo de mucho valor, por lo que para muchos el desarrollar un algoritmo de control PID tal y como lo precisa la literatura, resulta algo impráctico. Este es el paradigma de mayor peso relacionado a este tema, por lo que definitivamente se busca evadir esta labor cuando se trata de desarrollarla.
En la industria existen controladores industriales que sin duda nos facilitan en demasía esta labor. Durante mis prácticas en la escuela tuve la oportunidad de manejar el Burkert 1110. Y en el caso de Arduino, existen bibliotecas (librerías) de programación que mágicamente funcionan y nos evitan el desarrollo de los controladores PID. Entonces ¿Cuál es el objetivo de mi blog?, es simplemente hacerles ver amigos lectores que con tan solo 5 líneas de código podemos desarrollar un algoritmo de control PID, es algo que después de mucha investigación y trabajo en conjunto en particular con dos amigos que en su momento también colaboraron en esta empresa, me permitió abrir los ojos y romper con ese pesado paradigma que realmente resulta ser muy incómodo. Y como lo mencioné antes el resultado de dicha investigación resultó en solo 5 líneas de código necesarias exclusivamente para el controlador PID. ¿Cómo implementar eso?, ¿Cómo llegar a hacer un controlador en un Arduino?, ¿Cómo escribir el código para eso? Son preguntas que conforme avancen las publicaciones de este blog se contestarán en su momento. Pero, ¿Por qué desarrollar por nuestra cuenta el controlador PID y no usar la biblioteca PID de Arduino? Como lo mencioné anteriormente me considero alguien metódico y siempre que hay algo que no conozco al 100% su funcionamiento, no me quedo satisfecho. ¿Por qué? Pues por el simple motivo que no sé exactamente qué es lo que sucede en alguna parte del sistema, y en el caso que se presente algún problema en esa “caja negra” no podremos identificar las fallas de forma precisa. No tengo nada en contra de las bibliotecas de programación, yo me he beneficiado mucho de ellas, pero como les expliqué anteriormente. En la medida de lo posible trato de desarrollar un sistema por completo, en cuanto a algoritmos de programación se refiere. Pero bueno amigos hasta aquí llegará esta primera entrega, si continuo profundizando es algo de nunca acabar.

Prometo que la siguiente tratará exclusivamente de información técnica sobre la tan mencionada implementación en Arduino. Estén pendientes de su publicación. Cuéntame, ¿Te sucede algo similar a lo que expuse en esta entrega?, ¿Compartes lo que he expuesto? No olviden sus comentarios.
Me despido mandándoles un fuerte abrazo, saludos!

filipini Earvin Casillas Filippini

Desarrollador de proyectos Mecatrónicos

Ing. Mecatrónico.

Leave a Reply

Your email address will not be published. Required fields are marked *