Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Es la parte del sistema que describe lo que deseamos obtener del controlador.
Por ejemplo, una consigna puede ser un mando manual en el que seleccionamos
un tiempo de funcionamiento de 2 minutos en un microondas. Otro ejemplo sería
el mando con el que seleccionamos la potencia de calentamiento que deseamos
obtener en una vitrocerámica al cocinar.
Controlador
Se encarga de recibir una señal de consigna o señal de referencia y convertirla en
una señal que consiga que el sistema alcance la referencia deseada.
Accionador
Sistema
En los sistemas en lazo abierto se puede controlar que el sistema reciba del accionador
más o menos potencia, pero no se puede controlar con exactitud el punto en el que se
encontrará el sistema controlado.
Esta desventaja de los sistemas en lazo abierto no impide que se utilicen con mucha
frecuencia por su gran sencillez y por ser muy robustos.
Este tipo de sistema de control soluciona el problema de los sistemas en lazo abierto, que
dependen del accionador, de las condiciones ambientales, etc. El nombre de lazo cerrado
proviene de la señal del sensor que vuelve al controlador, cerrando el lazo de control. Los
elementos del sistema de control en lazo cerrado son los mismos que los elementos del
sistema de control en lazo abierto con dos añadidos:
Sensor
A partir de ese error se puede conseguir llevar al sistema al estado deseado, que
es el que dicta la consigna.
Seña
Nombre Función
l
Al igual que en el caso de los controladores en lazo abierto, también existen múltiples
aparatos cotidianos que tienen sistemas de control en lazo cerrado. Estos se caracterizan
por tener un sensor que permite medir el estado del sistema y controlarle con precisión.
Referencias
Wikipedia: Sistema de control
Wikipedia: Servomotor
[1] Ogata, Katsuhiko. Ingeniería de Control Moderna. Tercera edición. Editorial Prentice
Hall.
[2] Ogata, Katsuhiko. Sistemas de control en tiempo discreto. Segunda edición. Editorial
Prentice Hall.
CONTROLADOR PID
La letra t dentro del paréntesis significa que las señales cambian con el tiempo (t), es
decir que no permanecen con el mismo valor.
Si la señal de error es grande, significa que el estado del sistema se encuentra lejos del
estado de referencia deseado. Si por el contrario el error es pequeño, significa que el
sistema ha alcanzado el estado deseado.
Acción de control Proporcional
Como su nombre indica, esta acción de control es proporcional a la señal de error e(t).
Internamente la acción proporcional multiplica la señal de error por una constante Kp que
determina la cantidad de acción proporcional que tendrá el controlador.
Esta acción de control intenta minimizar el error del sistema. Cuando el error es grande, la
acción de control es grande y tiende a minimizar este error.
Los dos primeros efectos son positivos y deseables. El último efecto es negativo y hay
que intentar que sea reducido. Al aumentar la acción proporcional existe un punto de
equilibrio en el que se consigue suficiente rapidez de respuesta del sistema y reducción
del error, sin que el sistema sea demasiado inestable. Aumentar la acción proporcional
más allá de este punto producirá una inestabilidad indeseable. Reducir la acción
proporcional, reducirá la velocidad de respuesta del sistema y aumentará su error
permanente.
En los gráficos anteriores puede observarse el efecto de aumentar progresivamente la
acción proporcional en un control de posición.
Llegado a este punto, puede verse que la acción proporcional no puede mejorar más la
respuesta del sistema. La mejor opción con Kp=20 presenta un sobrepulso de unos 30
milímetros y un error permanente de 5 milímetros. Si se desea mejorar esta respuesta hay
que incorporar otro tipo de control. Aquí es dónde el control derivativo puede ayudar a
mejorar la respuesta del sistema.
Esta acción de control servirá, por lo tanto, para estabilizar una respuesta que oscile
demasiado.
En los gráficos anteriores puede verse como, al aumentar la acción derivativa Kd, se
consigue disminuir las oscilaciones hasta el punto de que desaparecen para Kd=50.
También puede apreciarse cómo la respuesta se hace un poco más lenta al aumentar la
constante derivativa. Con Kd=0 el sistema tarda 1,8 segundos en subir hasta el valor de
referencia. Con Kd=20 el sistema tarda 2 segundos en subir hasta el valor de referencia.
En este ejemplo la acción derivativa se ha escalado de forma que sus valores se
encuentren entre 0 y 100.
Un problema que presenta el control derivativo consiste en que amplifica las señales que
varían rápidamente, por ejemplo el ruido de alta frecuencia. Debido a este efecto, el ruido
de la señal de error aparece amplificado en el accionamiento de la planta. Para poder
reducir este efecto es necesario reducir el ruido de la señal de error mediante un filtro
paso bajo <https://es.wikipedia.org/wiki/Filtro_paso_bajo> antes de aplicarla al término
derivativo. Con este filtro la acción derivativa se encuentra limitada, por lo que es
deseable reducir el ruido de la señal de error por otros medios antes de recurrir a un filtro
paso bajo.
Llegado a este punto, el sistema es rápido y estable, pero mantiene todavía un pequeño
error en régimen permanente. Esto significa que la posición real del sistema no es
exactamente la posición deseada. Para poder reducir este error se recurre a la tercera
acción del controlador PID, el control Integral.
Esta acción de control, como su nombre indica, calcula la integral de la señal de error
e(t) y la multiplica por la constante Ki. La integral se puede ver como la suma o
acumulación de la señal de error. A medida que pasa el tiempo pequeños errores se van
sumando para hacer que la acción integral sea cada vez mayor. Con esto se consigue
reducir el error del sistema en régimen permanente. La desventaja de utilizar la acción
integral consiste en que esta añade una cierta inercia al sistema y, por lo tanto, le hace
más inestable.
Se aumenta poco a poco la acción proporcional para disminuir el error (diferencia entre el
estado deseado y el estado conseguido) y para aumentar la velocidad de respuesta.
2º - Acción Derivativa.
3º - Acción Integral.
En el caso de que el error del sistema sea mayor que el deseado, se aumentará la
constante integral Ki hasta que el error se minimice con la rapidez deseada.
Con estas sencillas reglas es sencillo afinar poco a poco el controlador PID hasta
conseguir la respuesta deseada.
Para:
En los sistemas reales existen limitaciones que reducen la capacidad del controlador para
conseguir la respuesta deseada. Por mucho que se aumente la acción proporcional,
llegará un momento en el que el accionador se saturará y no podrá dar más de sí. Por
ejemplo en un sistema de control de temperatura, la resistencia calefactora podrá
suministrar potencia hasta los 2000 vatios. Si el controlador intenta entregar más potencia
para conseguir más velocidad de calentamiento, no se podrá y el sistema no conseguirá
mayor rapidez. Aunque se aumente la acción de control proporcional el límite del
accionador de 2000 vatios limita la velocidad máxima de calentamiento.
Por lo tanto, hay que tener en cuenta que la velocidad de respuesta de los sistemas
reales tiene ciertos límites que el control no podrá superar.
Este pequeño programa simula un carro guiado de forma automática y controlado por un
controlador PID. El objetivo del programa es aprender a modificar los parámetros del
controlador PID para conseguir que el carro se posicione con rapidez y sin error.
Motion Control. Versión 0,31
Este otro programa simula el calentamiento de una caldera utilizada para calentar a su
vez agua de calefacción. El sistema térmico utiliza dos controles PID para controlar las
dos distintas temperaturas del agua.
Thermal Control. Versión 0,11
Referencias
Wikipedia: Servomotor
[1] Ogata, Katsuhiko. Ingeniería de Control Moderna. Tercera edición. Editorial Prentice
Hall.
[2] Ogata, Katsuhiko. Sistemas de control en tiempo discreto. Segunda edición. Editorial
Prentice Hall.
MÉTODO DE ZIEGLER-NICHOLS
Este método de sintonización se adapta bien a los sistemas que son estables en lazo
abierto y que presentan un tiempo de retardo desde que reciben la señal de control hasta
que comienzan a actuar.
Para calcular los parámetros se comienza por trazar una línea recta tangente a la señal
de salida del sistema (curva azul). Esta tangente está dibujada en la imagen con una recta
a trazos.
Además de estos dos tiempos característicos también hay que calcular la variación de la
señal escalón dX y la variación de la respuesta del sistema dY.
Y a partir de la constante Ko se pueden calcular los parámetros del controlador PID con
acción solo proporcional (P), proporcional e integral (PI), proporcional y derivativa (PD) o
proporcional integral y derivativa (PID):
Control Kp Ki Kd
P Ko
PI 0,9*Ko 0,27*Ko/T1
PD 1,6*Ko 0,60*Ko*T1
Para calcular los parámetros del sistema se fuerza una respuesta al escalón fijando la
señal de control en 0 voltios con un escalón de 5 voltios. El sistema responde cambiando
desde 25 grados centígrados (0.25V) a 225 grados centígrados (2.25V). Los tiempos son
los que aparecen en las gráficas anteriores, con lo cual los valores de la curva de
respuesta del sistema son los siguientes:
dX = 5 - 0 = 5 voltios
A partir de estos valores se pueden calcular los parámetros del regulador PID:
Control Kp Ki Kd
24,
P
2
21,
PI 5,44
8
38,
PI 17,4
7
Control Kp Ki Kd
29,
PID 12,1 17,4
0
Ahora se pueden ajustar a mano los parámetros del PID para conseguir una respuesta un
poco más estable. Se ha aumentado la ganancia derivativa y reducido la integral para
reducir las oscilaciones:
Kp = 28
Ki = 10
Kd = 21
Este método no requiere retirar el controlador PID del lazo cerrado. En este caso solo hay
que reducir al mínimo la acción derivativa y la acción integral del regulador PID. El ensayo
en lazo cerrado consiste en aumentar poco a poco la ganancia proporcional hasta que el
sistema oscile de forma mantenida ante cualquier perturbación. Esta oscilación debe ser
lineal, sin saturaciones. En este momento hay que medir la ganancia proporcional,
llamada ganancia crítica o Kc, y el periodo de oscilación Tc en segundos.
Una vez medidos estos dos valores, se pueden calcular los parámetros del controlador
PID con acción solo proporcional (P), proporcional e integral (PI), proporcional y derivativa
(PD) o proporcional integral y derivativa (PID):
Control Kp Ki Kd
P 0,50*Kc
PI 0,45*Kc 0,54*Kc/Tc
PD 0,80*Kc 0,075*Kc*Tc
Kd = 0
Ki = 0
A continuación se fija una temperatura de trabajo en la referencia y se aumenta la
ganancia proporcional hasta conseguir una respuesta oscilatoria mantenida.
Al aumentar la ganancia hasta Kp = 0,45, las oscilaciones crecen en el tiempo, por lo que
la ganancia sería demasiado alta.
En este caso, por lo tanto, la ganancia crítica y el periodo son:
Kc = 0,43
Tc = 21/4 = 5,3 s
Control Kp Ki Kd
P 0,215
PI 0,195 0,044
PI 0,344 0,169
Como puede comprobarse, los valores son semejantes a los valores obtenidos
anteriormente con el método de la respuesta al escalón. Las diferencias se deben a que
este sistema no es lineal y por lo tanto tiene una respuesta oscilatoria distorsionada
cuando se busca la ganancia crítica.
Referencias
Wikipedia: Servomotor
[1] Ogata, Katsuhiko. Ingeniería de Control Moderna. Tercera edición. Editorial Prentice
Hall.
[2] Ogata, Katsuhiko. Sistemas de control en tiempo discreto. Segunda edición. Editorial
Prentice Hall.
CONTROLADOR PID DIGITAL
Las funciones del microcontrolador están encerradas en el cuadrado con lineas de puntos.
Los bloques que sirven de conexión entre el microcontrolador y el sistema son un DAC
(conversor digital a analógico) y un ADC (conversor de analógico a digital). Estos dos
bloques permiten traducir las señales analógicas del sistema controlado a números
digitales utilizados por el microcontrolador y viceversa.
Período de muestreo
Mientras que los sistemas analógicos son continuos, los sistemas digitales son
discontinuos. Esto significa que sus valores se evalúan o cambian cada cierto período de
tiempo llamado tiempo de muestreo. El período de muestreo define cuantas veces por
segundo se van a realizar las conversiones analógico-digitales y se van a calcular los
parámetros del PID. En adelante el período de muestreo se representará por la letra T.
Este tiempo de subida se puede calcular como el tiempo que tarda el sistema en subir
desde un 10% hasta un 90% del valor final.
T < Tiempo_de_respuesta / 10
En los dos casos se ha utilizado la misma planta para calcular el tiempo de muestreo.
Como puede verse los resultados son muy diferentes. Con el segundo método el tiempo
de muestreo es tres veces mayor que con el primero. Por lo tanto, el tiempo de muestreo
depende también de la respuesta que se vaya a conseguir y del tipo de sistema.
Siempre que sea posible, será preferible utilizar el primer método puesto que calcula
tiempos menores y, por lo tanto, más seguros.
Por lo tanto, lo ideal es establecer un tiempo de muestreo que consiga una respuesta
aceptable en el sistema sin que sobrecargue mucho los cálculos y que no afecte al
término derivativo.
Un sistema térmico cuyo sensor cambia con una velocidad de 0,1 voltio/segundo es
muestreado por un conversor analógico-digital de 10bits (1024 niveles) con una referencia
de tensión de 5 voltios. La sensibilidad del conversor analógico-digital será:
Por otra parte, la ganancia derivativa será 100 veces mayor, al estar dividida por un
tiempo de muestreo 100 veces más pequeño.
El resultado es que la acción derivativa actuará a impulsos muy bruscos cada 5 ciclos.
Este comportamiento no es deseable y se puede corregir simplemente aumentando el
tiempo de muestreo.
Cada uno de los bloques que aparecen dentro del PID digital se traducen a una ecuación.
Las ecuaciones para calcular el comparador y el controlador PID son las siguientes:
# Tiempo de muestreo en segundos
T = 0.1
La instrucción leer_ADC() debe leer el valor devuelto por el sensor y acondicionar ese
valor para que esté medido en las mismas unidades que se están utilizando en la
referencia. En el caso del ejemplo, grados centígrados.
Las funciones de entrada y salida deben tener una conversión adecuada de unidades. La
función leer_ADC() debe devolver un valor con las mismas unidades que utilice la
referencia. Es conveniente que la función escribir_DAC() acepte valores de control entre 0
y 5 voltios para que se correspondan con el valor real de salida del conversor DAC, que
tendrá una tensión de salida, por ejemplo, entre 0 y 5 voltios. Los valores de control no
están acotados y por lo tanto pueden llegar a valer más que el valor máximo de salida de
5 voltios o menos que el valor mínimo de salida de 0 voltios. En este caso la función
escribir_DAC() debe recortar los valores máximos a 5v y los valores mínimos a 0v.
El control integral es un sumatorio que puede llegar a acumular valores muy altos. Esto
ocurre generalmente cuando el error es muy elevado y se mantiene durante mucho
tiempo. En este caso el sistema está saturado y el control integral no puede realizar su
función. En estos casos, es recomendable deshabilitar el control integral para que no se
produzca un sobrepulso excesivo. Existen varias formas de implementar este control anti-
windup. Aquí se implementará deshabilitando el control integral mientras el error sea
superior a una cota determinada. Para implementar este control anti-windup, se añaden
las siguientes líneas al programa anterior.
# Error máximo para que pueda funcionar el término integral
max_integral_error = 30
Ruido en la realimentación
Hay varias fuentes de ruido que perturban la señal de realimentación h(t). A continuación
se presentan las más importantes.
El ruido del sensor entra en el sistema digital a través del conversor analógico-digital.
Según el teorema de Nyquist, la máxima frecuencia que puede medir un sistema de
muestreo digital es igual a la mitad de la frecuencia de muestreo. Esto impone un límite
máximo a las frecuencias que se van a poder muestrear con fidelidad.
Entonces ¿Qué pasa con las frecuencias mayores a este límite? Esas frecuencias se
traducen en frecuencias más bajas. Esto significa que el ruido de alta frecuencia se verá
dentro del microcontrolador como una señal de menor frecuencia. Este efecto puede
apreciarse bien en la siguiente imagen:
La señal original aparece en rojo, con una frecuencia de 3 ciclos por intervalo. La mínima
frecuencia de muestreo debería ser de 6 muestras por intervalo.
Los puntos negros son las muestras que se han tomado de la señal original, con una
frecuencia de 5 muestras por intervalo, menor de la frecuencia mínima necesaria.
Cuando se unen entre sí los puntos negros, aparece la señal que el controlador cree
haber muestreado. Como resultado el sistema digital verá una frecuencia menor que la
que tiene la señal real.
Para evitar este efecto es conveniente limitar el ruido de alta frecuencia en la señal
analógica por medio de un diseño cuidadoso, eligiendo un sensor adecuado y utilizando
un filtro analógico cuando sea necesario.
Los filtros digitales solo podrán actuar de forma efectiva sobre las frecuencias que estén
por debajo de la mitad de la frecuencia de muestreo.
Ruido de cuantificación
Este ruido está producido por el conversor analógico-digital y procede de redondear el
valor analógico real al valor digital más próximo dado que el valor digital tiene un numero
finito de valores posibles. Este error se puede calcular a partir del número de bits del
conversor analógico-digital y su rango de medida.
Este valor puede también convertirse a unidades de medida de salida de la planta a partir
de la sensibilidad del sensor. Veamos el ejemplo de un sensor de temperatura que
entrega una salida con sensibilidad de 10 mV/ºC
Este ruido también afecta a la máxima precisión que puede conseguir el controlador. En el
ejemplo anterior, el controlador no podrá conseguir controlar la temperatura con una
precisión mejor de 0,49 grados centígrados.
Referencias
[1] Ogata, Katsuhiko. Sistemas de control en tiempo discreto. Segunda edición. Editorial
Prentice Hall.
SERVOMOTOR
Funcionamiento
Composición interna:
https://youtu.be/ZZhuD78BLDk
Motor eléctrico.
Reductora mecánica.
Sensor de posición. Generalmente es un potenciómetro.
Circuito de control.
El giro de los motores eléctricos suele ser muy rápido y con poca fuerza, la reductora
mecánica consigue reducir la velocidad de giro y aumentar la fuerza, de manera que el
giro final es más útil.
El sensor de posición permite conocer la posición exacta del eje de giro del servomotor.
Con el sensor, se puede corregir la posición del eje para que en todo momento se
encuentre en la posición deseada.
El circuito de control recibe por el cable la señal de la posición deseada y la compara con
la posición real del eje, medida por el sensor. Este circuito se encarga de mover al motor
para llevar al eje a la posición deseada y mantenerle en esa posición. En ocasiones
parece que el eje del servomotor tiembla. Esto se debe al circuito de control que corrige
continuamente la posición con giros a derecha y a izquierda para mantener estable la
posición final.
Especificaciones
Existen muchos tipos de servomotores. Como ejemplo se muestran las especificaciones
de un pequeño servomotor Tower Pro 9g.
Esquema de conexión
La librería de control para servomotores viene de forma estándar con el entorno Arduino.
Su nombre es <Servo.h>
Hay que tener en cuenta que el servomotor tarda aproximadamente 360 milisegundos
en volver a su posición inicial. El tiempo total programado para el movimiento no debe
ser menor.
3. Realizar un programa que mueva un servomotor a la posición 0 grados al presionar el
pulsador 1 y que mueva el servomotor a la posición 90 grados al presionar el pulsador
2.
Extras