entramado.net

Posts tagged “Curso de Control

Curso de Control: 11. Controlando nuevos sistemas

Una de las funcionalidades de nuestros archivos de Octave que he mantenido en secreto por ahora, en el curso, es que es posible definir nuestros propios sistemas y controlarlos con estos scripts. Todas las funciones aceptan un argumento en forma de sistema, este puede definirse de muchas formas y me remitiré sin más a la documentación de la Toolbox de Control de Octave, yo en este caso he optado por introducir los sistemas en Función de Transferencia, no es el objetivo de este curso introductorio explicar que quiere decir esto, sólo diré por si tenéis curiosidad que utiliza la Transformada de Laplace cuando estamos en tiempo continuo.

Por ejemplo para el control P usaríamos la siguiente sintaxis:controlP(kp , sistema)

Ahora vamos a ver distintos sistemas que podemos probar , sólo es necesario sustituir “sistema” en el anterior comando por lo que pongo a continuación:

Este es un sistema más fácil del que hemos visto, se trata de un sistema de 1º Orden y la teoría nos dice que es posible controlarlo completamente con tan sólo un PI, a ver si lo conseguís:
tf([1],[1, 1])

En siguiente sistema consta de un Integrador, es decir como la acción integral, por lo tanto no necesitaremos acción integral para garantizar que llegue al punto deseado ¡Llega solo!
tf([1],[1, 0.1, 0])
El último sistema que vamos a ver es un sistema de 2º Orden como el primero que vimos pero con una particularidad, tiene lo que en control llamamos un cero. ¿Me podéis decir que efectos provoca este cero?

tf([1 0.1],[1, -0.1, 0.1])

Con esto y algún apunte más terminamos la parte básica del curso, me surgen diferentes caminos que podría tomar a partir de ahora, así que lo meditaré y posiblemente el curso y las novedades que le rodean tengan un parón en la frecuencia de publicación. Eso espero que me permita retomar otros temas del blog que he dejado más apartados.

Los que habéis llegado hasta aquí: ¡Enhorabuena! Ya tenéis una idea de qué es el control y de como controlar alguna cosilla fácil, si completáis todas las actividades tendréis un premio.


Curso de Control: 10. Ajuste de un controlador PID

Llegamos al último tipo de controlador que vamos a ver, el que aúna los tres tipos de control que ya hemos visto. Como ya he explicado anteriormente el uso que le damos a los parámetros kp, Ti y Td, os recomiendo que volváis a esas explicaciones si tenéis dudas y os paso directamente el archivo de la semana, esta vez con la siguiente sintaxis:controlPID(kp, Ti, Td)

Ahora las combinaciones posibles son enormes y tenemos una gran libertad de elección, pero os dejo a vosotros que experimentéis y os paso una imagen de muestra, a ver si conseguís algo parecido.

Ejemplo de sistema controlado con un PID.

Ejemplo de sistema controlado con un PID.


Curso de Control: 9. Ajuste de un controlador PI

Uno de los problemas de los controladores que hemos visto hasta ahora es que no garantizan que lleguemos al punto de referencia después de todo el transitorio, la diferencia entre la referencia y la salida una vez se ha estabilizado se llama error en régimen permanente.

Para eliminar este error se utiliza la acción integral, vamos a ver un caso práctico con un controlador PI, como en capítulos anteriores tenéis a vuestra disposición un pequeño script donde probar los resultados, lo podéis descargar aquí.

El funcionamiento del script es similar a los anteriores:controlPI(kp, Ti)

En este caso la constante que afecta al término integral es Ti y nos da una idea de en cuanto tiempo va a actuar esta acción integral, vamos a ver un ejemplo:controlPI(1,100)

Esto nos va a dar una respuesta como la siguiente:

Control PI con kp 1 y Ti 100.

Control PI con kp 1 y Ti 100.

Como podemos observar la señal de salida que en un principio parece que se va a estabilizar en 0.9 poco a poco se va corrigiendo hasta llegar a 1 de una forma suave.

A partir de aquí podemos empezar a jugar con nuestras constantes para obtener una buena respuesta igual que en capítulos anteriores. En el próximo vamos a ver el controlador que mejor resultados nos va a dar, el que combina la acción derivada con la integral, el PID.


Curso de Control: 8. Ajuste de un controlador PD

La semana pasada estuvimos probando el control P, vimos que al tener solo un grado de libertad no obteníamos unas respuestas totalmente a nuestro gusto. Hoy vamos a mejorar esto añadiéndole al control una componente derivativa, lo que se conoce también como acción derivada.

El mecanismo de la acción derivada es sencillo, intenta corregir la pendiente del error, esto provoca que la salida se suavice, es decir, que no tenga grandes pendientes y con esto conseguimos reducir e incluso eliminar la sobreoscilación.

Igual que el último día podéis descargar la función controlPD, de aquí, el funcionamiento es muy parecido:controlPD(kp,Td)

El sistema a controlar no ha cambiado, pero ahora podemos modificar dos parámetros para mejorar el control: kp, que afecta a la parte proporcional y Td que afecta a la parte derivativa.

Vamos a probar algo sencillo:controlPD(1,1)

Y obtenemos la siguiente respuesta:

Control PD con kp 1 y Td 1.

Control PD con kp 1 y Td 1.

Vemos que el control es algo más rápido y se ha eliminado la sobreoscilación que teníamos con el control P.

Ahora toca jugar un poco. ¿Hasta donde podéis llegar con estos dos parámetros?


Curso de Control: 7. Ajuste de un controlador P

Vamos a empezar la primera actividad con el ajuste de uno de los controladores más sencillos que existe, el controlador proporcional o simplemente P. Este controlador lo hemos visto de pasada en capítulos anteriores, se trata del controlador estático, una simple constante multiplicando a la señal de error y su salida es la señal de control.

Esquema de Realimentación.

Esquema de Realimentación.

Este controlador debido a su sencillez, sólo nos ofrece un grado de libertad, modificar el valor de la constante (kp) y por lo tanto tendremos algunas limitaciones que veremos en la práctica.

Nuestro objetivo va a ser conseguir que la salida del sistema siga a la referencia, que va a ser una señal de escalón unitario, esto es que en el instante 0 pasa de 0 a 1 inmediatamente, por eso tiene una forma de escalón.

¿Cómo quedaría si no utilizáramos ningún control y no cerráramos el bucle? Directamente aplicando la referencia en escalón al bucle obtendríamos esto:

Sin control, sistema en bucle abierto

Sin control, sistema en bucle abierto

La línea azul nos muestra la evolución del sistema y la verde el valor al que tiende en el infinito. Como vemos el sistema llega a 10 en lugar de a 1 y es bastante lento, unos 50 segundos, así que vamos a mejorar todo esto con nuestro control P.

Para probar distintos valores de kp en el bucle de una forma sencilla podéis descargaros este script que he hecho para Octave, el funcionamiento es el siguiente: tenéis un sistema por defecto dentro del script y todo montado para simular. Nos situamos en Octave dentro de la carpeta donde hemos guardado el script y llamamos a la función del controlP:controlP(kp)

Donde kp es la constante proporcional que queramos utilizar. Podemos probar por ejemplo: controlP(1)

Y nos mostrará la siguiente imagen:

Control Proporcionas con ganancia 1.

Control Proporcional con ganancia 1.

Vemos que el control ha mejorado bastante, es como 5 veces más rápido y a pesar de que aún no llega a 1 exactamente ya se acerca bastante más y no se pasa demasiado en el trayecto (sobreoscilación). Ahora podemos ir buscando una kp que haga que el sistema funcione más a nuestro gusto.

El objetivo de la actividad es experimentar con el control proporcional y buscar una buena respuesta, podéis escribir un post con la experiencia en vuestro blog y si no dejarla en comentarios o mandármela por correo con vuestro nombre/alias y yo la publicaré en los comentarios.

Suerte.


Curso de Control: 6. Instalación de Octave

Empezamos las actividades del curso y para ello tenemos que poner en marcha el software que vamos a utilizar. Habitualmente se utiliza en control el software y lenguaje de programación MATLAB, hay que recordar que este tipo de software sólo es una herramienta, útil la mayor parte de las veces para el aprendizaje pero cuando nos enfrentamos a problemas reales muchas veces no podremos hacer uso de MATLAB o similares y tendremos que recordar la teoría, que es lo realmente importante.

En nuestro caso como éste es un curso para todos los públicos y pensado desde el software libre, vamos a utilizar el software Octave, un clon de MATLAB de código abierto y en este tutorial vamos a mostrar como instalarlo en Linux.

Vamos a instalar el núcleo de Octave y frontend que nos hará la vida más fácil, de estos hay varios y he elegido QtOctave por su sencillez.

sudo apt-get install octave3.2 qtoctave

Podemos instalar el paquete de control de Octave como un paquete de apt-get o desde QtOctave, lo vamos a hacer de esta última forma, pero necesitamos permisos de superusuario para poder instalar los paquetes, por lo tanto hacemos:

sudo qtoctave

Una vez abierto nos vamos al menú Configuración>Instalar paquetes de Octave  y nos aparecerá un cuadro con los paquetes que podemos instalar, buscamos el de Control y lo instalamos.

Gestor de paquetes de QtOctave

Gestor de paquetes de QtOctave

Salimos del programa y esta vez entramos con nuestro usuario normal, con el icono de QtOctave. Ya podemos empezar a hacer cosas con Octave, la sintaxis es prácticamente igual a la de MATLAB y si necesitamos ayuda podemos escribir:

controldemo

Y entraremos en el menú de muestra del paquete de control que nos enseñará todas sus posibilidades.


Curso de Control: 5. Controladores

¿Qué es el controlador?

Ha llegado el momento de definir que es exactamente este controlador que hemos visto.

Un controlador va a ser por supuesto un sistema estático o dinámico que creamos nosotros, veamos como lo definimos:

Es una función que multiplica a nuestro error. Puede ser estática o dinámica:

Estática, donde K es una contante que multiplica al error:

$latex u=K \cdot e $

Dinámica en tiempo discreto, en este caso es un sistema de 1º orden, es decir que depende únicamente del error en ese instante (ek) y el anterior(ek-1), podría ser de un orden superior donde iría aumentando el número de instantes anteriores que usaríamos. En este caso tenemos dos constantes K1 y K2:

$latex u=K_1 \cdot e_k+K_2 \cdot e_{k-1}$

¿Cómo encontramos unos buenos valores de K?

Con una realimentación y un valor cualquiera podemos ya obtener una aproximación al control, pero pueden pasar varias cosas, que el sistema se haga inestable (algo que hay que evitar siempre, veremos ejemplos), que el sistema no se mueva en absoluto o que el sistema llegue al punto de referencia en un tiempo más o menos largo.

Para conseguir un buen control tenemos que ajustar K para llegar a la referencia en un tiempo no demasiado largo y sin que de muchos bandazos. Esto se puede conseguir de distintas formas:

  • A ojo: Aunque parezca mentira se hace mucho y es algo que no se suele enseñar en la universidad, esto se aprende con la práctica, lo veremos.
  • Auto-tuning: Viene a ser lo mismo que a ojo pero lo hace una máquina de una forma muy rápida, muchos controladores comerciales lo lleva incorporado de serie, son conectar apretar el botón y listo.
  • Analíticamente: Entramos en terreno pantanoso, para ello primero necesitamos modelar el sistema a controlar, para esta parte aún necesitamos más base.

Curso de Control: 4. El error y la realimentación

Vamos a pasar a ver los conceptos claves de la teoría de control moderna, estos son la realimentación y el error.

El Error

Cuando estamos controlando, intentamos que nuestra señal de salida (y) sea lo más parecida posible a la referencia (r) en todo momento, por eso se define la señal de error (e) como la diferencia entre ambas:

$latex e=r-y$

Podemos representar esta resta en diagrama de bloques de la siguiente forma:

Resta de señales referencia y salida.

Resta de señales referencia y salida.

El signo de negativo indica que es una resta, si no lo pusiéramos tendríamos la representación de una suma.

Para afianzar el concepto vamos a ver una representación de una señal continua cualquiera de salida respecto al tiempo, la referencia y lo que sería el error en el momento actual:

Ejemplo de medida del error en un punto.

Ejemplo de medida del error en un punto.

Una vez obtenida esta señal podemos hacer uso de ella para el control y ahí es de donde surge el concepto de realimentación.

La Realimentación

La idea de la realimentación consiste en utilizar esta señal de error para alimentar un controlador que intentará reducir este error al mínimo. Nuestro esquema quedará de la siguiente forma:

Esquema de Realimentación.

Esquema de Realimentación.

Llegados a este punto ya hemos aprendido en que se basa el control, a partir de ahora vamos a ver como controlar y dentro de poco tendremos actividades prácticas, para aprender “haciendo”, que es la única forma de aprender.


Curso de Control: 3. El Tiempo

Como hemos visto en lo que llevamos de curso la medida del tiempo es un aspecto fundamental en este campo. Aquí aparece la primera gran división entre los sistemas que vamos a ver, el tiempo continuo y el tiempo discreto.

El tiempo continuo

Cuando hablamos de tiempo continuo nos referimos al tiempo al que estamos acostumbrados, podemos dividir el tiempo en fracciones cada vez más pequeñas sin ningún límite teórico. Tenemos valores de nuestras señales tanto en el segundo 1 como en el segundo 0.0000000000001. Este es el tiempo que se utiliza habitualmente en los sistemas físicos, las complicaciones que nos supone es la utilización de una matemática más compleja para modelar (el cálculo infinitesimal) y lo que es más importante, la incompatibilidad con los computadores que son discretos por naturaleza ya que trabajan con el bit como unidad mínima de medida, los periodos de muestreo de sus sensores y la frecuencia de actuación máxima posible.

Pasamos a ver un ejemplo de señal discreta:

Imagen de una señal en tiempo continuo.

Respuesta de un sistema a una señal impulsional.

Como podemos ver se trata de una señal continua, sin discontinuidades.

El tiempo discreto

El opuesto al tiempo continuo es el tiempo discreto, en el se define un periodo mínimo en que se puede dividir el tiempo y se le llama periodo de muestreo, lo que pasa en el tiempo entre los muestreos es desconocido por eso nos interesa que nuestro periodo de muestreo sea lo más pequeño posible.

Pasamos a ver un ejemplo de una señal discreta cosenoidal.

Señal discreta con forma de coseno.

Señal discreta con forma de coseno.

Los puntos de medida reales son los círculos y como vemos entre esos puntos no existe nada. Habitualmente se añaden lineas entre los puntos para dar una sensación de continuidad, pero los valores en esas lineas no tienen por que corresponderse con la realidad.

Aproximación a tiempo continuo

¿Como podemos simular sistemas continuos en computadores que son discretos? Teóricamente no podemos. El problema se soluciona haciendo el periodo de muestreo muy pequeño en comparación al sistema que estamos simulando, de esta forma obtenemos una aproximación al continuo que se acercará mucho a la realidad.

Una vez terminado este inciso necesario para el curso, continuamos, tenemos que llegar al punto clave en control, la realimentación.


Curso de Control: 2. Estrategias en Ingeniería de Sistemas

Continuamos con el curso, a parte de la teoría que hay en esta serie de artículos voy a abrir una sección de apuntes al curso de control, la idea es poner cosillas más fuera de la explicación principal que completen al curso. Lo mejor de todo es que podemos crear un curso distribuido, si queréis hacer algún apunte vosotros, la única norma es poner como etiqueta “Apuntes al Curso de Control” y luego podemos hacer una recopilación con el nuevo gestor de enlaces de entramado, ya lo veremos, empezamos:

Podemos utilizar la ingeniería de sistemas de distintas formas, en este capítulo vamos a ver las distintas estrategias que podemos seguir, entre las que se encuentra, por supuesto, el control.

Las estrategias son las siguientes:

  • Modelar: Llamamos modelar a obtener la función matemática que relaciona la salida del sistema con la entrada, podemos usar variables internas o una relación directa y como hemos visto que tratamos con sistemas dinámicos, necesitaremos relacionarlo con entradas y salidas en instantes anteriores al actual.

    Representación esquematica modelado

    ¿Qué función se ajusta al sistema?

  • Simular: Este es el paso inverso al anterior, una vez tenemos el modelo matemático, le aplicamos entradas a lo largo del tiempo y obtenemos las salidas para cada instante de tiempo. Este es el método que se usa para predicción. Por ejemplo, como hablábamos el último día de predicción meteorológica, esta consiste en un modelo meteorológico al que se le aplican las entradas como la temperatura actual, dirección del viento, humedad, etc y se obtiene una predicción más o menos acertada.

    Representación de una simulación

    Se aplican entradas y se obtienen salidas.

  • Controlar: En este caso entra en juego un nuevo actor, la referencia. ¿Donde queremos que vaya el sistema? ¿Cómo queremos que se comporte? Ese es nuestro objetivo y se le da el nombre de referencia(r). En el caso del control queremos que el sistema siga a esa referencia lo mejor posible, entonces tendremos que crear un sistema que tenga como entrada la referencia y como salida las acciones de control que irán a parar a la entrada del sistema a controlar(u). Se entiende mejor gráficamente:

    Esquema de un controlador unido a un sistema.

    Esquema de control muy simplificado.

Pero esto no termina aquí ahora nos podemos plantear como podemos hacer el controlador, ahí empieza el verdadero control.


Curso de Control: 1. Introducción

Lo prometido es deuda, empezamos con este curso de introducción al control. Antes que nada tengo que pedir perdón por adelantado a los que queráis cursarlo, va a estar en un estado muy alfa, aunque intentaré explicarme lo mejor que pueda. Al lío:

¿Qué es la Ingeniería de Control?

La rama de la ingeniería que estudia como hacer que los sistemas se comporten de una forma predeterminada. Cuando hablamos de sistema me gusta especialmente la definición de Wikipedia, por lo genérico de la misma:

Un sistema es un objeto complejo cuyos componentes se relacionan con al menos algún otro componente; puede ser material o conceptual.

Es decir que podemos aplicar la ingeniería de control sobre cualquier conjunto de elementos relacionados. Por otra parte, para aclarar otro concepto, se llama Ingeniería de Sistemas a la comprensión mediante herramientas matemáticas de estos sistemas.

Podemos encontrar aplicaciones de Control en sistemas de tan diversos tipos como:

  • Eléctricos
  • Mecánicos
  • Biológicos
  • Químicos
  • Económicos
  • Informáticos

De ahí la versatilidad del uso del control, que comenzó con el auge de la electrónica pero una vez llegado a su madurez con los sistemas de control digitales se independizó de esa rama e incluso de su aplicación en industria.

Representación

Para representar los sistemas de una forma gráfica utilizaremos los diagramas de bloques, como vemos a continuación, el convenio más extendido es el de llamar a las entradas de un sistema a controlar ‘u’ y a las salidas ‘y’, con un numero identificador.

sistema de 3 entradas y 2 salidasComo podemos observar en este sistema tenemos acceso a 3 entradas para modificar su comportamiento y 2 salidas que podemos medir.

Pero en este curso no vamos a irnos a sistemas tan complejos, sólo vamos a trabajar con sistemas SISO, una entrada y una salida. Algo como esto:

sistema SISO

Los sistemas dinámicos

Los sistemas que vamos a estudiar se llaman sistemas dinámicos puesto que sus salidas dependen de entradas y/o salidas anteriores. Como en el siguiente ejemplo, se trata de un histórico de las temperaturas medias durante el último mes en València. La predicción del tiempo implica un sistema extremadamente complejo que estudia la ingeniería de sistemas en combinación con otras áreas como al meteorología y la física.

Evolución de la temperatura media con respecto al tiempo.

Temperatura media en València.

Este es un ejemplo práctico del tipo de gráfica a los que nos vamos a tener que acostumbrar en este curso, la evolución de una señal en el tiempo.

Una vez introducidos los conceptos principales podemos pasar a algo con más chicha, distintas estrategias en Ingeniería de Sistemas ¿Como lleváis el álgebra?

Espero vuestros comentarios y dudas para mejorar el curso.


Todos usamos cookies, acéptalo ya. más información

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close