Anda di halaman 1dari 70

Universidad de Costa Rica

Facultad de Ingenierı́a
Escuela de Ingenierı́a Eléctrica

Implementación de un controlador
adaptativo para un proceso de laboratorio,
utilizando la plataforma Arduino

Por:

Macarena Céspedes Quesada

Ciudad Universitaria “Rodrigo Facio”, Costa Rica

Julio de 2014
Implementación de un controlador
adaptativo para un proceso de laboratorio,
utilizando la plataforma Arduino

Por:
Macarena Céspedes Quesada

IE-0499 Proyecto eléctrico


Aprobado por el Tribunal:

Dr. Jose David Rojas Fernández


Profesor guı́a

Ing. Mercedes Chacón Vásquez Ing. Federico Ruiz Ugalde


Profesora lectora Profesor lector
Dedicatoria
A Dios y a mis seres queridos, especialmente a mi madre Roxana Quesada
Álvarez.

v
Agradecimientos
Le agradezco al profesor Dr. Jose David Rojas Fernández por su tiempo y
disposición para aconsejarme durante la elaboración del presente trabajo.
A mis compañeros que se han convertido en amigos y que formaron parte de
este proceso.
A las personas que me han apoyado a lo largo de la carrera.
Profundamente agradecida con la Universidad de Costa Rica.

vii
Resumen
El objetivo primordial del presente trabajo fue implementar un control adap-
tativo utilizando la plataforma Arduino en un proceso de laboratorio.
El proceso que requirió control es de primer orden, por lo tanto se estudiaron
distintas técnicas de control adaptativo y se decidió utilizar el control adapta-
tivo por modelo de referencia (MRAC), estableciendo un modelo deseado de
primer orden más rápido. La regla de adaptación se obtuvo con la teorı́a de
estabilidad de Lyapunov para garantizar la estabilidad del sistema.
Para realizar la actualización de los parámetros del controlador se utiliza el
método numérico Runge-Kutta de segundo orden, ya que mostró mejores re-
sultados entre las múltiples pruebas y simulaciones que se realizaron en Matlab
implementando distintos métodos.
La implementación del control se realizó utilizando un Arduino UNO, que se
encarga de ejecutar el algoritmo de control.
Una vez implementado el controlador el sistema logra el seguimiento del valor
de referencia, de igual forma, ante perturbaciones y variaciones de parámetros
del proceso, logra retomar el valor de referencia propuesto.

ix
Índice general

Índice de figuras xiii

Nomenclatura xv

1 Introducción 1
1.1 Alcance del proyecto . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3 Metodologı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Antecedentes 3
2.1 Control Adaptativo . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Reguladores autoajustables . . . . . . . . . . . . . . . . . . . . 4
2.3 Controladores adaptativos por modelo de referencia . . . . . . . 5
2.4 Método del gradiente (Regla del MIT) . . . . . . . . . . . . . . 6
2.5 Teorı́a de estabilidad de Lyapunov para sistemas dinámicos . . 7
2.6 Métodos numéricos . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.7 Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3 Desarrollo 17
3.1 Proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2 Implementación en Simulink . . . . . . . . . . . . . . . . . . . . 19
3.3 Selección del método numérico . . . . . . . . . . . . . . . . . . 23

4 Implementación del Controlador 31


4.1 Algoritmo de control en Arduino . . . . . . . . . . . . . . . . . 31
4.2 Interfaz de adquisición de datos . . . . . . . . . . . . . . . . . . 32
4.3 Conexiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

5 Resultados 37
5.1 Implementación en el proceso . . . . . . . . . . . . . . . . . . . 37
5.2 Seguimiento del valor de referencia . . . . . . . . . . . . . . . . 37
5.3 Rapidez del Sistema . . . . . . . . . . . . . . . . . . . . . . . . 42
5.4 Comportamiento ante perturbaciones . . . . . . . . . . . . . . . 42

6 Conclusiones y recomendaciones 51
6.1 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

xi
6.2 Recomendaciones . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Bibliografı́a 53

xii
Índice de figuras

2.1 Sistema adaptativo . . . . . . . . . . . . . . . . . . . . . . . . . . . 3


2.2 Regulador autoajustable . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 Controlador adaptativo por modelo de referencia . . . . . . . . . . 6
2.4 Control utilizando teorı́a de estabilidad. . . . . . . . . . . . . . . . 11
2.5 Arduino UNO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.6 PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.1 Proceso de control de flujo y temperatura. . . . . . . . . . . . . . . 17


3.2 Entradas y salidas del proceso de control de flujo y temperatura. . 18
3.3 Orificio que permite introducir perturbaciones. . . . . . . . . . . . 18
3.4 Entrada vs Salida proceso. . . . . . . . . . . . . . . . . . . . . . . . 19
3.5 Cálculo del periodo . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.6 Modelo vs Proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.7 Simulación en Simulink . . . . . . . . . . . . . . . . . . . . . . . . 21
3.8 Valores de θ1 y θ2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.9 Señal de salida del proceso . . . . . . . . . . . . . . . . . . . . . . 23
3.10 Señal de control del proceso . . . . . . . . . . . . . . . . . . . . . . 24
3.11 Señal de error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.12 Diagrama de flujo . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.13 Código para el Método de Runge-Kutta . . . . . . . . . . . . . . . 27
3.14 Código para Método de Euler y para Regla del Trapecio . . . . . . 28
3.15 Salidas obtenidas con los métodos numéricos . . . . . . . . . . . . 28
3.16 Señal de error obtenida con los métodos numéricos . . . . . . . . . 29
3.17 Señal de control obtenida con los métodos numéricos . . . . . . . . 29
3.18 Señal de control para 2,5 V en la referencia . . . . . . . . . . . . . 30
3.19 Señal de control para cambios en la rapidez del sistema . . . . . . 30

4.1 Diagrama de flujo del código realizado en Arduino . . . . . . . . . 31


4.2 Código realizado en Arduino, parte I . . . . . . . . . . . . . . . . . 33
4.3 Código realizado en Arduino, parte II . . . . . . . . . . . . . . . . 34
4.4 Tarjeta NI USB-6009 . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.5 Programa de adquisición de datos . . . . . . . . . . . . . . . . . . 35
4.6 Diagrama de componentes del sistema . . . . . . . . . . . . . . . . 36

5.1 Conexión del Sistema . . . . . . . . . . . . . . . . . . . . . . . . . 37


5.2 Conexión del Sistema . . . . . . . . . . . . . . . . . . . . . . . . . 38

xiii
5.3 Salida del Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.4 Error entre el proceso y el modelo de referencia . . . . . . . . . . . 39
5.5 Señal de control del sistema . . . . . . . . . . . . . . . . . . . . . . 40
5.6 Valor promedio de la señal de control del sistema . . . . . . . . . . 40
5.7 Salida del sistema para 100 ms . . . . . . . . . . . . . . . . . . . . 41
5.8 Parámetros del controlador para 100 ms . . . . . . . . . . . . . . . 41
5.9 Errores producidos para 100 ms . . . . . . . . . . . . . . . . . . . . 42
5.10 Cambio en el código para τm =0,6 . . . . . . . . . . . . . . . . . . . 42
5.11 Señal del controlador para τm =0,6 . . . . . . . . . . . . . . . . . . 43
5.12 Orificio al 50 % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.13 Señal de salida del sistema con pertubación al 50 % . . . . . . . . . 44
5.14 Señal de error del sistema con pertubación al 50 % . . . . . . . . . 45
5.15 Señal de control del sistema con pertubación al 50 % . . . . . . . . 45
5.16 Orificio al 100 % . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.17 Salida del sistema con pertubación al 100 % . . . . . . . . . . . . . 46
5.18 Comportamiento de θ1 y θ2 con perturbación al 100 % . . . . . . . 47
5.19 Aumento en la tensión de la señal de control. . . . . . . . . . . . . 47
5.20 Secuencia de la variación de las ganancias . . . . . . . . . . . . . . 47
5.21 Salida del sistema con variaciones en la ganancia. . . . . . . . . . . 48
5.22 Variación de la ganancia. . . . . . . . . . . . . . . . . . . . . . . . 48
5.23 Salida del sistema con variación en la ganancia. . . . . . . . . . . . 49
5.24 Comportamiento de θ1 y θ2 para variación en la ganancia. . . . . . 49
5.25 Cambio en la tensión para variación en la ganancia. . . . . . . . . 50

xiv
Nomenclatura
a parámetro del proceso.

am parámetro del modelo de referencia.

b parámetro del proceso.

bm parámetro del modelo de referencia.

CERlab Control engineering research laboratory.

dt paso de integración.

e Error entre la salida del proceso y la salida del modelo de


referencia.

γ ganancia de adaptación.

h paso de integración.

I integral

j1 parámetro para aproximar θ2 .

j2 parámetro para aproximar θ2 .

K Ganancia de la planta.

Km Ganancia del modelo de referencia.

k1 parámetro para aproximar la salida del proceso.

k2 parámetro para aproximar la salida del proceso.

J ı́ndice de desempeño.

m1 parámetro para aproximar la salida del modelo de refe-


rencia.

m2 parámetro para aproximar la salida del modelo de refe-


rencia.

M Hz mega-hertz, unidad de frecuencia.

xv
M IT Massachusetts Institute of Technology.
M RAC model reference adaptive control.
ms milisegundos.
NI national instruments.
p1 parámetro para aproximar θ1 .
p2 parámetro para aproximar θ1 .
φ pendiente estimada en método Runge-Kutta.
ϕ vector de señales de r y y.
PWM pulse-width modulation.
r entrada al sistema.
s segundos.
ST R self tuning regulator.
t tiempo.
T constante de tiempo de la planta.
Tm constante de tiempo del modelo de referencia.
τ constante de tiempo de la planta.
τm constante de tiempo del modelo de referencia.
θ1 parámetro del controlador.
θ2 parámetro del controlador.
u señal de control.
Uact señal de control.
V volts, unidad de tensión.
V (x) función de Lyapunov.
Yf valor final de la salida.
yi valor actual de la salida.
yi+1 aproximación del siguiente valor de la salida.
ym salida del modelo de referencia.

xvi
1 Introducción

La intención del trabajo fue el estudio del control adaptativo, que es una téc-
nica de control avanzado, con la finalidad de implementar un controlador uti-
lizando esta técnica para un proceso de laboratorio, empleando como recurso
principal la plataforma de desarrollo Arduino. Para tal objetivo fue necesario
considerar las caracterı́sticas del proceso, y con esta información se analizó
cual metodologı́a de control adaptativo se ajustaba a los intereses y alcances
del proyecto. Logrado esto, se diseñó el controlador con la metodologı́a que
se consideró adecuada y se implementó en una tarjeta de pruebas. Se realiza-
ron múltiples ensayos controlando un proceso que utiliza señales estándar de
tensión y se verificó el funcionamiento del controlador con el diseño propuesto.

1.1 Alcance del proyecto


El presente trabajo contiene la documentación necesaria sobre conceptos de
interés acerca de control adaptativo. Además, se pone en práctica estos con-
ceptos para el diseño de un controlador utilizando esta técnica de control,
mediante simulaciones en computadora e implementación en un proceso de
control de flujo. No es un estudio a profundidad sobre las diferentes técni-
cas de control adaptativo. No se aplica control a diferentes procesos, solo al
proceso mencionado para validar el funcionamiento del controlador diseñado.

1.2 Objetivos
Objetivo general
Implementar un prototipo de controlador adaptativo en la plataforma de desa-
rrollo Arduino de manera que pueda controlar un proceso a nivel de laborato-
rio.

Objetivos especı́ficos
Para el desarrollo de este proyecto se establecieron los siguientes objetivos:

• Investigar sobre las metodologı́as que existen alrededor del control adap-
tativo y documentar dicha investigación.

1
2 1 Introducción

• Escoger una metodologı́a adecuada y programar el controlador en la


plataforma de desarrollo Arduino.

• Diseñar e implementar un prototipo a nivel de protoboard del controla-


dor, de manera que se pueda conectar a un proceso que utilice señales
estándar de tensión.

• Utilizar este controlador para manipular un proceso a nivel de laborato-


rio y validar el funcionamiento.

• Documentar el diseño y la programación. Crear un sitio web (o un wiki)


que contenga la documentación realizada.

1.3 Metodologı́a
El desarrollo del trabajo incluyó los siguientes pasos y procedimientos, listados
en secuencia:

1. Investigación sobre control adaptativo en libros y publicaciones varias,


de los cuales se extrajeron y documentaron los conceptos de mayor re-
levancia.

2. Análisis del proceso a controlar caracterizando el comportamiento desea-


do del sistema de lazo cerrado.

3. Determinación de la ley adecuada de control adaptativo para el diseño


del controlador tomando en cuenta las caracterı́sticas del proceso.

4. Programación del controlador adaptativo implementando la ley de con-


trol que mejor se adaptó utilizando la plataforma Arduino.

5. Empleo del controlador en el proceso analizado con anterioridad para


múltiples pruebas y verificación de su funcionamiento.

6. Análisis del funciomiento del controlador y el comportamiento a la salida


del proceso.

7. Elaboración de la documentación del trabajo realizado, incluyendo in-


vestigación, aplicación práctica, programación, resultados obtenidos y el
análisis de dichos resultados.
2 Antecedentes

2.1 Control Adaptativo


El control adaptativo es una técnica de control avanzado, que se utiliza cuando
la dinámica de un proceso presenta variaciones impredecibles en sus paráme-
tros. Por la naturaleza de estos procesos, se necesita de un controlador que
esté preparado para adaptarse a estos cambios inesperados. Según Rubio y
Sánchez (1996) “un controlador adaptativo es el que puede modificar su com-
portamiento en respuesta a cambios en la dinámica del sistema y a las pertur-
baciones”. En otras palabras, un “controlador adaptativo es un controlador con
parámetros ajustables y un mecanismo de ajuste de los parámetros” (Åström
y Wittermark, 2008). La importancia de este tipo de control radica en que
muchos procesos dependen de condiciones variantes en el tiempo, y como se
dijo anteriormente, muchas veces impredecibles. Por ejemplo un sistema que
se encuentre expuesto, o que dependa de condiciones ambientales, va a tener
un punto de operación variante, por lo cual resulta necesario este mecanismo
de control.
En la figura 2.1 se presenta un esquema general de un sistema adaptativo,
donde se observa el control realimentado y las lı́neas punteadas resaltan las
partes que son propiamente de control adaptativo. “El control adaptativo pue-
de verse como la composición de dos lazos, uno encargado del mecanismo de

Figura 2.1: Sistema adaptativo. Adaptado de: Åström y Wittermark (2008)

3
4 2 Antecedentes

ajuste de los parámetros del controlador y el lazo normal de realimentación


que contiene el controlador y el proceso” (Åström y Wittermark, 2008). El
lazo de realimentación tiene la función de rechazar las perturbaciones y es
comúnmente más rápido que el lazo de ajuste.
El control adaptativo se puede clasificar en dos categorı́as: directo e indi-
recto.

Control adaptativo directo


Los parámetros del controlador se ajustan de manera que el error entre la
salida de la planta y el modelo de referencia a lazo cerrado sea el mı́nimo, sin
ninguna estimación de por medio. En otras palabras “El control adaptativo
directo cubre aquellos procesos en que los parámetros del controlador se ac-
tualizan directamente de una señal de error que refleja la diferencia entre el
rendimiento obtenido y el deseado” (Landau et al., 2011).

Control adaptativo indirecto


Los parámetros de la planta son primero estimados y el controlador escoge
la acción de control suponiendo que los valores estimados son correctos. Si el
error persiste, el controlador modifica su estimación. (Chekkouri y Romeral,
2001).

2.2 Reguladores autoajustables


Los reguladores autoajustables o STR por sus siglas en inglés, están consti-
tuidos por dos lazos. Uno de estos es el lazo de realimentación en el que se
encuentra el controlador y el proceso. Por otro lado, el segundo lazo cumple la
función de estimar los parámetros del proceso por medio de un algoritmo y con
estos datos se procede a realizar el ajuste de los parámetros del controlador.
La estructura de un sistema que utiliza este tipo de control se observa en la
figura 2.2, se muestra en lı́neas punteadas el lazo adicional que realiza la lógica
de ajuste.
Es ideal aplicar este control cuando no se cuenta con un modelo de comporta-
miento del sistema o se tienen perturbaciones que no se pueden medir. Según
Rubio y Sánchez (1996) “los reguladores adaptativos autoajustables tratan
de alcanzar un control óptimo, sujeto a un tipo de controlador y a obtener
información del proceso y sus señales.”
2.3. Controladores adaptativos por modelo de referencia 5

Figura 2.2: Regulador autoajustable. Adaptado de: Rubio y Sánchez (1996)

2.3 Controladores adaptativos por modelo de


referencia
Los controladores adaptativos por modelo de referencia o MRAC por sus siglas
en inglés, se utilizan cuando se cuenta con un modelo de referencia, el cual
indica cómo debe ser la respuesta a la salida del proceso con base en una señal
de entrada, tal como lo menciona Rubio y Sánchez (1996) “Los controladores
adaptativos con modelo de referencia, intentan alcanzar para una señal de
entrada definida, un comportamiento en bucle cerrado dado por un modelo de
referencia”.
En la figura 2.3 se observa el modelo paralelo que es la configuración más
común, se cuenta con el lazo ordinario de realimentación, además se observa
otro lazo encargado de obtener el error entre el modelo de comportamiento
del sistema y la salida real del proceso, dicha información se utiliza para el
cálculo y ajuste de los parámetros del controlador con la finalidad de que el
error sea mı́nimo. Los bloques adicionales que son propios de esta metodologı́a
se presentan con lı́neas punteadas.
“El mecanismo de ajuste de los parámetros en un sistema adaptativo por
modelo de referencia puede obtenerse siguiendo dos caminos: usando el método
del gradiente o aplicando teorı́a de estabilidad” (Åström y Wittermark, 2008).
Tanto el control adaptativo por modelo de referecencia (MRAC ), como los
reguladores autoajustables (STR), son de adaptación continua, por lo tanto es
un ciclo que se repite continuamente ajustando los parámetros del controlador
en tiempo real.
A continuación se introducen los métodos de ajuste de parámetros para un
MRAC.
6 2 Antecedentes

Figura 2.3: Controlador adaptativo por modelo de referencia. Adapatado de:


Rubio y Sánchez (1996)

2.4 Método del gradiente (Regla del MIT)


Este método fue desarrollado en el Laboratorio de Instrumentación pertene-
ciente al Instituto de Tecnologı́a de Massachusetts, o MIT, por sus siglas en
inglés, por lo tanto se conoce como la regla del MIT.
Se presenta esta regla según Rubio y Sánchez (1996), considerando que el con-
trolador tiene un solo parámetro ajustable θ, pero debe tomarse en cuenta que
esta metodologı́a es aplicable al caso en que se tengan más parámetros en el
controlador.
Para encontrar el valor de θ, es necesario contar con un ı́ndice que indique
el desempeño del sistema a lazo cerrado. Si se considera e como la variable
que indica el error entre la salida real del lazo de control, comparado con el
deseado, un posible ı́ndice de desempeño viene dado por:

1
Z
J= e2 dt, (2.1)
2

utilizando la técnica de optimización del gradiente, donde ∇θ es la variación


de θ con respecto al último valor calculado y K es llamada la ganancia de
adaptación.
∂J
∇θ(e, t) = −Kgrad(J) = −K (2.2)
∂θ
2.5. Teorı́a de estabilidad de Lyapunov para sistemas dinámicos 7

Donde θ varı́a respecto al tiempo, se tiene:


 
∂ ∂J
θ̇ = −K (2.3)
∂t ∂θ
Cambiando el orden de las derivadas se obtiene (2.4).
∂ e2
 
∂ ∂J
θ̇ = −K ( ) = −K (2.4)
∂θ ∂t ∂θ 2
Finalmente se obtiene la regla del MIT en (2.5).
∂e
θ̇ = −Ke (2.5)
∂θ
Se observa que esta regla queda en términos de la derivada parcial del error
respecto a los parámetros ajustables del controlador. La variación del error de
acuerdo con el ajuste de los parámetros es llamada función de sensibilidad y
viene dada por:
∂e ∂(ym − y)
= , (2.6)
∂θ ∂θ
Donde el error es la diferencia entre la salida del modelo de referencia ym y la
salida real de proceso y.

La regla del MIT también puede ser utilizada cuando se requieren ajustar
muchos parámetros, según Åström y Wittermark (2008), “El sı́mbolo θ debe
ser interpretado como un vector, y (2.6) como el gradiente del error con res-
pecto a los parámetros”. Sin embargo este método no garantiza la estabilidad
a lazo cerrado de un sistema adaptativo. “El sistema puede hacerse inestable
si el modelo de referencia no se escoge adecuadamente o si la ganancia de
adaptación se elige demasiado grande” (Rubio y Sánchez, 1996).

2.5 Teorı́a de estabilidad de Lyapunov para


sistemas dinámicos
La teorı́a de estabilidad de Lyapunov está compuesta de dos métodos: método
indirecto o método de linealización y método directo o segundo método.
• Método indirecto de Lyapunov
Este método establece que “las propiedades de estabilidad de un sistema no
lineal en las proximidades de punto de equilibrio son esencialmente las mismas
que las de su correspondiente sistema liealizado simple” (Blázquez y de Miguel,
2004). Dado esto, es importante tener claro que existen ciertas restricciones, ya
que éste método es aplicable cuando se trabaja alrededor de un determinado
punto de operación.
8 2 Antecedentes

• Método directo de Lyapunov

Según Blázquez y de Miguel (2004) “El método directo es una generalización


de los conceptos de energı́a asociados con un sistema mecánico: el movimiento
de un sistema mecánico es estable si el total de su energı́a mecánica disminuye
todo el tiempo”. El objetivo de este método es obtener una función escalar
de signo positivo que contenga los estados del sistema y adaptar una ley de
control que logre que la función decrezca.
El método directo de Lyapunov establece que para sistemas variantes en el
tiempo:
ẋ = f (x, t) , (2.7)

tiene un equilibrio x = 0 y es asintóticamente estable si existe una función de


Lyapunov, V (x), que cumple las condiciones:

V (x) > 0 para x 6= 0 definida positiva

V̇ (x) < 0 para x 6= 0 definida negativa (2.8)

V (x) → ∞ para k x k→ ∞

V (0) = 0

“Usualmente cuando se trabaja con sistemas adaptativos V̇ (x) es negativa


semi − def inida, lo cual implica que la segunda condición de (2.8) sea de la
forma:
V̇ (x) ≤ 0, (2.9)

por lo tanto, para comprobar que el sistema es estable basta con demostrar
que V̈ (x) es acotada” (Åström y Wittermark, 2008).
Según Rubio y Sánchez (1996) para obtener la ley de adaptación con esta
teorı́a es necesario seguir los pasos:

1. Encontrar la ecuación de error.

2. Encontrar una función de Lyapunov como una función del error entre
las señales y del error en los parámetros del controlador.

3. Calcular la derivada de la función de Lyapunov. La derivada debe ser


negativa.

4. Obtener la ley de adaptación θ̇, que normalmente está relacionada con


el error y el vector de señales.
2.5. Teorı́a de estabilidad de Lyapunov para sistemas dinámicos 9

MRAS de primer orden obtenido con la teorı́a de estabilidad


Se tiene el proceso
ẏ = −ay + bu, (2.10)
y suponiendo que la respuesta deseada es:

ẏm = −am ym + bm r (2.11)

La señal del controlador viene dada por:

u = θ1 r − θ2 y (2.12)

La señal de error entre el modelo y el proceso es:

e = y − ym , (2.13)

el comportamiento del error respecto al tiempo se obtiene utilizando (2.10),


(2.11) y (2.12).
de
= ẏ − ẏm (2.14)
dt
de
= −ay + bθ1 r − bθ2 y + am ym − bm r, (2.15)
dt
Reemplazando ym de acuerdo a (2.13), se obtiene (2.16). El objetivo es que el
error disminuya conforme se avance en el tiempo.
de
= −am e − (bθ2 + a − am )y + (bθ1 − bm )r (2.16)
dt
Se escoge una función que cumpla las condiciones de (2.8) y que esté definida
en función del error y de los parámetros del controlador.
 
1 2 1 2 1 2
V (e, θ1 , θ2 ) = e + (bθ2 + a − am ) + (bθ1 − bm ) (2.17)
2 bγ bγ
Para que (2.17) sea considerada una función de Lyapunov su derivada respecto
al tiempo debe ser negativa.
dV 1 1
= eė + (bθ2 + a − am )θ̇2 + (bθ1 − bm )θ̇1 (2.18)
dt γ γ

dV 1 dθ2 1 dθ1
= −am e2 + (bθ2 + a − am )( − γye) + (bθ1 − bm )( + γre) (2.19)
dt γ dt γ dt
Entonces, es claro que para que esta función sea siempre negativa, se requiere
que los parámetros del controlador, θ1 y θ2 , tomen los valores:
dθ1
= −γre (2.20)
dt
10 2 Antecedentes

dθ2
= γye , (2.21)
dt
con lo que se llega a que:
dV
= −am e2 (2.22)
dt
Como se señaló anteriormente, V̇ (x) es negativa semi − def inida, por lo tanto
es necesario obtener la segunda derivada.

dV 2 de
2
= −2am e (2.23)
dt dt
Sustituyendo ė por (2.16):

dV 2
= −2am e (−am e − (bθ2 + a − am )y + (bθ1 − bm )r) , (2.24)
dt2
como se demuestra en (2.24), la segunda derivada de la función de Lyapunov
depende de la entrada al sistema r, de la salida del sistema y y del error e,
que son señales acotadas, lo cual implica que V̈ (x) es también acotada.
Por lo tanto se garantiza la estabilidad del sistema y la ley de control puede
escribirse:

= γϕe, (2.25)
dt
donde ϕ es el vector de señales.

ϕ = (−r y)T (2.26)


La implementación del control adaptativo con el proceso descrito se ilustra
en el diagrama de la figura 2.4. Se observa que todas las técnicas descritas
anteriormente conllevan a la resolución de ecuaciones diferenciales. Muchas de
estas ecuaciones representan gran complejidad a la hora encontrar la solución
analı́tica. Una herramienta útil cuando se requieren cálculos de este tipo son
los métodos numéricos, ya que constituyen una alternativa más simple para la
resolución de ecuaciones diferenciales.

2.6 Métodos numéricos


Los métodos numéricos son procedimientos iterativos, que mediante cálculos
aritméticos permiten la aproximación de la solución de ecuaciones diferenciales
y de integrales.
La diferencia entre la variedad de métodos numéricos existentes es el error
entre la aproximación y el valor real. Para disminuir la magnitud de los errores,
se requiere el cálculo de algoritmos complicados y extensos, muchas veces
2.6. Métodos numéricos 11

Figura 2.4: Control utilizando teorı́a de estabilidad. Adaptado de: Åström y


Wittermark (2008)

siendo necesario utilizar una herramienta de cómputo para realizar dichos


cálculos.
En la presente sección se presentan algunas de las técnicas de la familia de
Métodos de Runge-Kutta y el método del trapecio que forma parte de las
fórmulas de integración de Newton-Cotes.

Métodos de Runge-Kutta para solución de ecuaciones


diferenciales ordinarias
Los métodos de Runge-Kutta permiten la solución de ecuaciones diferenciales
de la forma:
dy
= f (x, y), (2.27)
dx
utilizando fómulas de este tipo:

yi+1 = yi + φh, (2.28)

en donde “la pendiente estimada φ se usa para extrapolar desde un valor


anterior yi a un nuevo valor yi+1 en una distancia h. Esta fórmula se aplica
paso a paso para calcular un valor posterior, y por lo tanto, para trazar la
trayectoria de la solución” (Chapra y Canale, 2010). Como el valor siguiente
depende del valor actual, para empezar las iteraciones es necesario contar con
los valores iniciales respectivos. La diferencia entre la variedad de métodos
12 2 Antecedentes

de Runge-Kutta radica en la manera de estimar la pendiente. La solución


mediante estos métodos conllevan a dos tipos de error: de truncamiento y de
redondeo.

1. Los errores de truncamiento son originados por la naturaleza de las técni-


cas empleadas para aproximar los valores de y (Chapra y Canale, 2010).

2. Los errores de redondeo son causados por el número limitado de cifras


significativas que una computadora puede manejar.

Existen limitaciones para calcular el error, pues incluyen expansiones de Taylor


que no son simples de obtener, además de que los valores verdaderos de la
solución de las ecuaciones no se conocen. Según Chapra y Canale (2010) “el
error de truncamiento es proporcional al tamaño del paso h”, por lo tanto
lo recomendable para disminuir este error es que el tamaño de h sea lo más
pequeño posible que viene dado por:

h = ti+1 − ti , (2.29)

y se considera fijo durante los cálculos.

• Método de Euler

Consiste en el método Runge-Kutta de primer orden, el cual implica la reso-


lución la siguiente ecuación.

yi+1 = yi + f (xi , yi )h (2.30)

El nuevo valor de y se predice utilizando la primera derivada para obtener la


estimación de la pendiente en el valor actual. Entre las ventajas que presenta
este método, es que no es necesaria la evaluación de derivadas parciales de or-
den alto, tal como sucede con otros métodos, como los de Taylor. Sin embargo,
es un método de baja exactitud ya que el paso de integración debe ser muy
pequeño para alcanzar resultados aceptables, lo que implica mayor cantidad
de cálculos y mayor tiempo en encontrar la solución.

• Métodos de Runge-Kutta de segundo orden

Los métodos de segundo orden generalemente presentan la forma:

yi+1 = yi + (a1 k1 + a2 k2 )h, (2.31)

donde:
k1 = f (xi , yi ) (2.32)
k2 = f (xi + p1 h, yi + q11 k1 h) (2.33)
2.6. Métodos numéricos 13

Utilizando expansiones de Taylor, se llega a un sistema de tres ecuaciones que


contienen las cuatro incógnitas.

a1 + a2 = 1 (2.34)
1
a 2 p1 = (2.35)
2
1
a2 q11 = (2.36)
2
Según Chapra y Canale (2010): “como hay una incógnita más que el nú-
mero de ecuaciones, no existe un conjunto único de constantes que satisfaga
las ecuaciones. Sin embargo considerando un valor para una de las constantes,
es posible determinar el valor de las otras tres.”
Dando un valor a a2 , se resuelven las ecuaciones, sin embargo hay infinitos va-
lores que a2 puede tomar, lo que conlleva a infinitos métodos de Runge-Kutta
de segundo orden.

A continuación se presenta el método de Heun, el cual propone dar el valor


a a2 de:
a2 = 1, (2.37)
de manera inmediata se obtienen los valores para las demás incógnitas.

a1 = a2 = 1 (2.38)

p1 = q11 = 1 (2.39)
Por lo tanto (2.31) adquiere la forma:
 
1 1
yi+1 = yi + k1 + k2 h, (2.40)
2 2

donde k1 y k2 se calculan:
k1 = f (xi , yi ) (2.41)
k2 = f (xi + h, yi + k1 h) (2.42)

Fórmulas de integración de Newton-Cotes


“Las fórmulas Newton-Cotes se basan en la estrategia de reemplazar una fun-
ción complicada o datos tabulados por un polinomio de aproximación que es
fácil de integrar”(Chapra y Canale, 2010).
Z b Z b
f (x) dx ∼
= fn (x) dx , (2.43)
a a
14 2 Antecedentes

donde fn (x) es un polinomio de la forma:

fn (x) = a0 + a1 x + · · · + an−1 xn−1 + an xn , (2.44)

donde n es el grado del polinomio. Al ser un método iterativo igual que


Runge − Kutta, se presentan errores de truncamiento y de redondeo.

• Regla del trapecio

La regla del trapecio corresponde a la fórmula de Newton-Cotes en donde


el polinomio que se utiliza para realizar la aproximación de la integral es de
primer grado.
Z b Z b
I= ∼
f (x) dx = f1 (x) dx (2.45)
a a
Según Chapra y Canale (2010) “El cálculo de f1 (x) se realiza representando
una lı́nea recta” como se aprecia en la siguiente fórmula:
 
f (b) − f (a)
f1 (x) = f (a) + (x − a) , (2.46)
b−a
por lo tanto la integral pasa a ser de la siguiente forma:
Z b   
f (b) − f (a)
I= f (a) + (x − a) dx, (2.47)
a b−a
el resultado de la integración es lo que se denomina la Regla del trapecio.
f (a) + f (b)
I = (b − a) (2.48)
2

2.7 Arduino
Como se mencionó con anterioridad, el algoritmo de control será implementado
en la plataforma Arduino, por lo tanto, es necesario conocer funciones que
pueden ser de utilidad para implementar en el controlador.
En la figura 2.5 se tiene la imagen de un Arduino UNO, se va a trabajar con
este modelo porque cumple con la caracterı́stica de que trabaja con rangos de
tensión de 0 V a 5 V, al igual que el proceso a controlar, como se verá más
adelante.

Funciones de Arduino
Entre la gran variedad de funciones que se encuentran disponibles, se explican
las siguientes de acuerdo a (www.arduino.cc, 2014), que son de utilidad para
el desarrollo del presente trabajo.
2.7. Arduino 15

Figura 2.5: Arduino UNO

• digitalRead(pin) y digitalWrite(pin,value)

Estas funciones permiten utilizar pines como entradas o salidas digitales res-
pectivamente. En el paréntesis se debe escribir el número del pin que se em-
pleará. Primero se requiere habilitar el pin a utilizar especificando si es una
salida o entrada. Si es una salida, digitalWrite() pondrá en la salida BAJO o
ALTO, dependiendo de la instrucción dada en value. Si es una entrada, digi-
talRead lee en la entrada BAJO para 0 V o ALTO para 5 V.
Si el pin especificado como entrada no se conecta, la función digitaRead() pue-
de leer BAJO o ALTO.
Los pines que sirven para estas funciones son los que en 2.5 están identificados
de 0 al 13.

• analogRead(pin)

Esta función permite leer los valores en la entrada de los pines designados
como analógicos, los cuales son A0, A1, A2, A3, A4 y A5.
Se pueden leer tensiones entre 0 V y 5 V, cuentan con un convertidor analógico
digital de 10 bits que transforma la variable entre un rango de 0 a 1023 unida-
des. Esto quiere decir que cada unidad equivale a 0,0049 V aproximadamente.

• analogWrite(pin,value)

La función analogWrite() permite escibir un valor analógico en cualquiera de


los pines 11, 10, 6, 5, o 3. Para esto, utiliza modulación por ancho de pulso, o
por sus siglas en inglés PWM.
La modulación por ancho de pulso es una función de pulsos cuyo valor prome-
dio dependerá del ciclo de trabajo asignado, tal como se muestra en la figura
2.6. El ciclo de trabajo se especifica dentro del paréntesis en la posición de
value y solo se admiten valores de 0 a 255.
16 2 Antecedentes

Figura 2.6: Señal PWM. Tomado de: arduino.cc

• millis() y delay()

Ambas funciones son llamadas de tiempo, esto porque millis() permite medir
el tiempo en milisegundos que el arduino tarda en ejecutar un programa o
función. La función delay() espera el tiempo especificado, en milisegundos,
dentro de su paréntesis para realizar la próxima actividad.
3 Desarrollo

3.1 Proceso
El proceso de laboratorio en el que se implementa el control adaptativo es el
de flujo y temperatura que se encuentra en el Control Engineering Research
Laboratory (CERLab), ubicado en la Escuela de Ingenierı́a Eléctrica de la
Universidad de Costa Rica. El proceso se muestra en la figura 3.1.
A pesar de que el proceso abarca flujo y temperatura, solo se va a trabajar
controlando la parte de flujo. Como se observa, para controlar el flujo se pue-
den utilizar entradas de tensión que varı́an de 0 V a 5V o de corriente que van
de 4 mA a 20 mA, como se muestra en la figura 3.2
Además el proceso permite la introducción de perturbaciones mediante un
orificio en la parte superior, dependiendo de la distancia que se abra, el com-
portamiento del proceso varı́a.
Es necesario contar con el modelo de la planta para efectuar simulaciones del
sistema. Para esto, se precisa que la planta trabaje en un punto de operación
en estado estacionario. Aplicando un cambio en la entrada se observa el cam-
bio que se presente en la salida y empleando un método de identificación se
obtiene una estimación del modelo.
Se procedió a aplicar 2,5 V a la entrada del proceso y luego se realizó un cam-
bio del 20 % que corresponde a 0,5 V para registrar la variación en la salida.
En la figura 3.4 se muestra el gráfico con la entrada y la salida del proceso, el
comportamiento corresponde a una planta de primer orden según la curva de
reacción.
La fórmula del modelo de primer orden según Alfaro (2013).

Figura 3.1: Proceso de control de flujo y temperatura.

17
18 3 Desarrollo

Figura 3.2: Entradas y salidas del proceso de control de flujo y temperatura.

Figura 3.3: Orificio que permite introducir perturbaciones.

K
P (s) = (3.1)
τs + 1
En donde la ganancia del proceso se calcula con la ecuación:
∆Y
K= , (3.2)
∆R
∆Y representa el cambio en la salida del proceso y ∆R representa el cambio
en la entrada. Por lo tanto aplicando (3.2) se obtiene que K = 1,35.
3,175 − 2,5
K= = 1,35 (3.3)
3 − 2,5
Para obtener la constante de tiempo T se necesita calcular el 63,2 %del valor
final de la salida Y .
Yf = 3,175 − 2,5 = 0,675 (3.4)
0,632 ∗ 0,675 = 0,4266 (3.5)
2,5 + 0,4266 = 2,9266 (3.6)
Localizando en la gráfica el valor de (3.6) se obtiene el periodo de tiempo T .

T = 41,38 − 39,6 = 1,78 (3.7)


3.2. Implementación en Simulink 19

Figura 3.4: Entrada vs Salida proceso.

Con los datos obtenidos, se consigue el modelo de primer orden mostrado en


la siguiente ecuación.
1,35
P (s) = (3.8)
1,78s + 1
En la figura 3.6 se observa la comparación de la salida del proceso con la salida
del modelo estimado ante la misma entrada, se observa que la aproximación
es muy cercana al proceso, además el error de mayor amplitud es 0,1, lo cual
corresponde a un 0,02 %.

3.2 Implementación en Simulink


Es sabido que “No hay garantı́a de que un controlador adaptativo basado en la
regla de MIT de como resultado un sistema de lazo cerrado estable” (Åström
y Wittermark, 2008). Por lo tanto se utiliza la Teorı́a de estabilidad de Lya-
punov para diseñar el controlador requerido, con la finalidad de que el sistema
no caiga en la inestabilidad.
Se implementa el diagrama de la figura 2.4 en Simulink utilizando los valo-
20 3 Desarrollo

Figura 3.5: Cálculo del periodo

res del modelo obtenido para visualizar el comportamiento del sistema. Es


necesario establecer el modelo de referencia deseado:
Km
Pm (s) = , (3.9)
τm s + 1
se fija ganancia unitaria para evitar que el proceso controlado sufra un error
permanente diferente de cero. En cuanto a la constante de tiempo de lazo
cerrado deseada, esta se fija en uno para realizar las simulaciones en Matlab,
sin embargo, la rapidez del modelo de referencia se define de manera que sea la
mayor sin alterar negativamente la dinámica del sistema cuando se implemente
en su uso real.
El sistema se encuentra trabajando con una entrada de 2,5 V que representa un
punto de operación del 50 %, para que sea congruente con el punto de operación
y el cambio en la entrada con los cuales se obtuvo el modelo del proceso, como
se explicó anteriormente. Para realizar la simulación, se introdujo una onda
cuadrada de amplitud 0,5 y periodo 20 s como entrada de referencia. Además
el sistema se simula durante 200 s. Se realizaron pruebas con tres diferentes
valores de γ para observar como varı́an las señales del sistema.
En la figura 3.8 se presenta el comportamiento de θ1 y θ2 , se observa que sin
3.2. Implementación en Simulink 21

Figura 3.6: Modelo vs Proceso

Figura 3.7: Simulación en Simulink


22 3 Desarrollo

Figura 3.8: Valores de θ1 y θ2

importar el valor de γ las tres gráficas convergen al mismo valor, aunque no


con la misma rapidez. Para el mayor valor de γ, θ1 y θ2 alcanzan su valor final
a los 500s aproximadamente, mientras que cuando γ es igual a 0,2 requiere
1900s para alcanzar el mismo valor. Se espera que la señal de control tenga
un comportamiento similar, ya que ésta es dependiente de ambos parámetros.
Según la figura 3.9 el sistema que mejor se adapta al modelo deseado es el
que trabaja con el valor unitario de γ. Entre menor es la magnitud de γ, es
notorio que el proceso necesita más tiempo para ajustarse al comportamiento
del modelo de referencia. El aumento del valor de γ influye en la señal de
control de manera que consigue el valor final más rápido que los restantes
valores tal como se aprecia en 3.10.
De acuerdo con la señal de error en la figura 3.11, para el valor unitario de γ,
el error es menor en todo momento en comparación con los conseguidos con
los dos valores restantes de γ, tal como se esperaba ya que tiene que coincidir
con los resultados de la figura 3.9.
Considerando lo anterior se propone utilizar un valor unitario en γ, con la
finalidad de garantizar el menor error posible entre el proceso y el modelo de
referencia, sin embargo, es necesario aclarar que se pueden seleccionar valores
mayores a la unidad, pero podrı́a ser contraproducente ya que para valores de
referencia superiores a 0,5 la señal de control excederı́a el lı́mite permitido por
el proceso.
A partir de lo anterior y con los valores establecidos a utilizar en el sistema, se
procede a elección del método para la programación del algoritmo de control.
3.3. Selección del método numérico 23

Figura 3.9: Señal de salida del proceso

3.3 Selección del método numérico


Se realizaron pruebas utilizando distintos métodos numéricos para analizar
cuál de ellos es el más preciso. Para esto, se recurrió a la utilización de Matlab,
en el cual se crearon tres códigos implementando el método de Runge-Kutta
de segundo orden, el método de Euler y la Regla del trapecio. Los códigos
realizados siguen la lógica del diagrama de flujo de la figura 3.12.
El sistema se encuentra trabajando al 50 % y se aplica a la entrada una
onda cuadrada de magnitud 0,5, lo cual representa un cambio del 10 % en
la referencia. Se utilizan valores iniciales igualados a cero para empezar las
iteraciones en cada método. El paso de integración utilizado es 0,01s en los
tres casos.
En la figura 3.13 se muestra el código implementado para el método de Runge-
Kutta, es necesario aplicarlo en cuatro ocasiones distintas, ya que se debe
calcular la aproximación de la salida del proceso real, la salida del modelo de
referencia, y los valores de θ1 y θ2 , para esto se utilizan las variables k1 , k2 ,
m1 , m2 , p1 , p2 , j1 y j2 que son exclusivas de este método.
El programa se ejecuta durante 500s ya que se está utilizando γ igualado a
uno, y el tiempo que requiere para alcanzar el modelo deseado es menor como
se explicó anteriormente.
En la figura 3.14 se muestra la programación del método de Euler y el de la
Regla del Trapecio, solo se muestra la parte del código que cambia, ya que la
parte inicial de la declaración de variables y valores iniciales es la misma.
24 3 Desarrollo

Figura 3.10: Señal de control del proceso

Cuando se ejecutan los programas, se realiza la aproximación de los valores


siguientes de cada función con base en los valores actuales, lo que permite el
ajuste de los parámetros θ del controlador.
En la figura 3.15 se muestra la comparación de la salida obtenida con
cada método numérico y el comportamiento deseado, todos los métodos lo-
graron darle seguimiento al modelo propuesto, sin embargo, el realizado con
Runge-Kutta de segundo orden es el que muestra menor margen de error. Para
corroborar esto, se muestra la señal de error registrada con los tres métodos
en la figura 3.16.
El máximo error obtenido es con la Regla del Trapecio de un 7,4940 %, mien-
tras que el máximo error obtenido con el método Runge-Kutta es de 6,8790 %,
lo cual implica una diferencia de 0,6150 %. Además, el error que que se genera
utilizando el método de Runge-Kutta se atenúa con mucha más rapidez en
comparación con el de los restantes procedimientos.
Como se presenta la señal de control en la figura 3.17, en ningún momento se
acerca al 100 %, lo cual es importante, ya que en la medida de lo posible, la
3.3. Selección del método numérico 25

Figura 3.11: Señal de error

entrada al proceso no debe ser muy cercana al lı́mite permitido, que son 5V
en este caso.
Los resultados anteriores indican que el modelo matemático más acertado es
el de Runge-Kutta, por lo tanto es el escogido para introducir en el algoritmo
de control.
Es importante aclarar que los análisis anteriores se basaron en que el cam-
bio en la entrada es 0,5 V, o sea, de un 10 %, pero es necesario observar el
comportamiento de la señal de control para cambios mayores en el valor de
referencia. Como el sistema se encuentra trabajando al 50 %, el mayor cambio
que podrı́a sufrir es del 50 %, como se observa en la figura 3.18. La señal de
control alcanza el 90 % aproximadamente como valor máximo.
Se hacen pruebas conservando 50 % en la referencia, pero aumentando la
rapidez del modelo deseado, como se presenta en la figura 3.19. Se concluye
que valor óptimo de τm es el unitario, ya que con valores menores a este, si
se producen cambios grandes en el valor de referencia, la entrada al proceso
sobrepasarı́a el lı́mite, lo cual incurrirı́a en un mal funcionamiento o posible
daño del sistema.
26 3 Desarrollo

Figura 3.12: Diagrama de flujo


3.3. Selección del método numérico 27

Figura 3.13: Código para el Método de Runge-Kutta


28 3 Desarrollo

Figura 3.14: Código para Método de Euler y para Regla del Trapecio

Figura 3.15: Salidas obtenidas con los métodos numéricos


3.3. Selección del método numérico 29

Figura 3.16: Señal de error obtenida con los métodos numéricos

Figura 3.17: Señal de control obtenida con los métodos numéricos


30 3 Desarrollo

Figura 3.18: Señal de control para 2,5 V en la referencia

Figura 3.19: Señal de control para cambios en la rapidez del sistema


4 Implementación del Controlador

4.1 Algoritmo de control en Arduino


La lógica del programa que se desarrolló en Matlab se modificó para adaptar el
código a Arduino, como se muestra en la figura 4.1. El cambio es básicamente
habilitar las entradas y salidas para la captura y transmisión de datos. En la
figura 4.2 se encuentra la primera parte del código creado en Arduino, como
se observa se declara el paso de integración, los parámetros del proceso y del
modelo deseado y demás valores iniciales tal como se hizo anteriormente para
el programa realizado en Matlab.
No es necesario declarar las variables k1 y k2 , ya que no se requiere realizar
la aproximación de los valores de proceso porque se leerán directamente utili-
zando las entradas analógicas del Arduino.
Para leer la salida se habilitó la entrada analógica A1 y se utiliza la función
analogRead(), como se explicó en el capı́tulo 2, se necesita el factor de con-
versión 0,0049 para realizar los cálculos con el valor correcto de la entrada,
porque en el pin se encuentra un convertidor analógico digital que convierte el
dato leı́do en un valor dentro del rango 0 a 1023. Esta conversión se observa

Figura 4.1: Diagrama de flujo del código realizado en Arduino

31
32 4 Implementación del Controlador

en la figura 4.3.
La entrada A0 se encarga de leer el valor de referencia y requiere la misma
conversión utilizada para la lectura de la salida del proceso.
Con base en esto, se calcula el valor del error y la señal de control, seguidamen-
te la señal de control se crea utilizando una salida PWM, para esto se calcula
el ciclo al cual debe trabajar la señal, de tal manera que el valor promedio
corresponda al requerido según el controlador.
Se habilita el pin 3, el cual es para salidas de este tipo, como se aprecia en 4.3.
Los valores de la señal del controlador se encuentran entre 0 V y 5 V, como
se mencionó en el capı́tulo 2 el ciclo de trabajo se especifica en valores entre
0 y 255, por lo tanto es necesario realizar la conversión presentada en (4.1),
donde Uact es el valor actual de la señal de control.
 
Uact
ciclo = ∗ 255 (4.1)
5
Se divide entre 5 para obtener la proporción del valor total de la señal de
control y luego se multiplica por 255 para obtener su equivalencia entre 0 y
255. La ecuación se escribe de la siguiente forma en el código:

ciclo = U act ∗ 51, (4.2)

que es equivalente a (4.1).


Posteriormente, se calculan las variables para aplicar el método de Runge-
Kutta y ası́ obtener los parámetros del controlador para la siguiente iteración.
Se utiliza la función millis, la cual mide la duración de los cálculos, y con
ayuda de la función delay() se logra que el tiempo entre cada iteración sea
congruente con el paso de integración, de 10 milisegundos.

4.2 Interfaz de adquisición de datos


Para la visualización de resultados en tiempo real, se utiliza un programa
desarrollado en LabView, el cual emplea una tarjeta NI USB-6009 para la
adquisición de los datos. En la figura 4.4 se presenta dicha tarjeta, la cual
consta con pines analógicos y digitales, ya que se está trabajando con valores
contı́nuos se utilizan los pines de salidas y entradas analógicas que son los
enumerados del 1 al 16, de estos 4 son entradas y sus respectivos pines para
conectarlos a la referencia o tierra, y cuenta con 2 salidas, los 6 pines restantes
son conexiones a tierra.
En la figura 4.5 se presenta el programa que se complementa con el de la figura
4.4, se observa que permite introducir el tiempo de lectura de los valores, el
cual se fija en 10 ms, también permite seleccionar el valor de referencia, y
además contiene una gráfica en función del tiempo que permite observar el
4.2. Interfaz de adquisición de datos 33

Figura 4.2: Código realizado en Arduino, parte I


34 4 Implementación del Controlador

Figura 4.3: Código realizado en Arduino, parte II


4.3. Conexiones 35

Figura 4.4: Tarjeta NI USB-6009

Figura 4.5: Programa de adquisición de datos

comportamiento de la salida del sistema y de la señal de control.


Todos los datos registrados se guardan en un archivo .tex, lo que permite
accesarlos con otros programas para su posterior análisis.

4.3 Conexiones
El diagrama de componentes del sistema se muestra en la figura 4.6, también
se dibujaron las conexiones entre los componentes. La salida del proceso se
conecta a la tarjeta NI para que guarde los valores, y se conecta al pin A1 del
Arduino para que realice los cálculos necesarios como se mencionó anterior-
36 4 Implementación del Controlador

Figura 4.6: Diagrama de componentes del sistema

mente.
La señal de control se trasmnite por el pin 3 y también es capturada por la
tarjeta NI. La señal de referencia se difunde de la tarjeta NI hacia el Arduino
para que realice los cálculos respectivos. El resto son conexiones a tierra, in-
cluyendo el pin 7 del arduino, que debe estar en BAJO para que realice los
procedimientos.
5 Resultados

5.1 Implementación en el proceso


Se implementó el sistema según las conexiones de la figura 4.6 tal como se
muestra en la figura 5.1 y en la figura 5.2. Posteriormente se realizaron múl-
tiples pruebas para verificar el funcionamiento del controlador.

5.2 Seguimiento del valor de referencia


En la figura 5.3 se aprecian los resultados obtenidos para cambios en el valor
de referencia, se muestra la salida del proceso y el seguimiento del modelo
deseado. Las gráficas se presentan con los valores reales y valores en porcen-
taje para su mejor comprensión.
Inicialmente el sistema se encuentra trabajando en el punto de operación del
50 %, cuando se realizan los cambios en el valor de referencia, el proceso no

Figura 5.1: Conexión del Sistema

37
38 5 Resultados

Figura 5.2: Conexión del Sistema

presenta dificultad en adaptarse a ellos, excepto al inicio que le toma 30 se-


gundos en cambiar de 2,5 V a 2,8 V en la salida.
El comportamiento de la planta parece darle buen seguimiento al modelo
deseado, en la figura 5.4 se muestra el comportamiento de la señal de error en-
tre la salida del proceso y la del modelo de referencia, los picos que se observan
se producen inmediatamente cuando se da el cambio en el valor de referencia,
pero una vez que el proceso ha alcanzado el valor especificado, no se producen
cambios significantes en la variación del error. En cuanto al error producido
entre el valor de referencia y la salida, parece tener el mismo comportamiento,
el error es más pronunciado inmediatamente después de los cambios en la en-
trada, sin embargo los picos son de mayor amplitud. Lo anterior tiene sentido,
ya que al modelo de referencia le toma cierto tiempo para adaptarse al cambio
en la entrada al igual que el proceso, por lo tanto el error entre ambos va a
ser menor que si se compara el error entre la entrada y la salida del proceso,
pues el cambio es más brusco.
La señal de control es PWM, como se habı́a mencionado anteriormente y es
importante monitorear que el valor promedio no sobrepase el lı́mite permitido
en la entrada de control del proceso que son 5 V.
Para monitorear los valores promedio de la señal de control se utilizó un osci-
loscopio, como se muestra en la figura 5.6, se observa que cuando el valor de
referencia es de 4 V, el valor promedio de la señal de control permanece por
debajo de 4 V.
Para tomar los datos de θ1 y θ2 provenientes del controlador es necesario que
las iteraciones con que se calculan los valores se hagan cada 100 ms, ya que el
Arduino necesita un tiempo adicional para enviar los datos a la computadora
5.2. Seguimiento del valor de referencia 39

Figura 5.3: Salida del Sistema

Figura 5.4: Error entre el proceso y el modelo de referencia


40 5 Resultados

Figura 5.5: Señal de control del sistema

Figura 5.6: Valor promedio de la señal de control del sistema


5.2. Seguimiento del valor de referencia 41

Figura 5.7: Salida del sistema para 100 ms

Figura 5.8: Parámetros del controlador para 100 ms

a través del puerto serial, lo que afecta la rapidez del mismo. Sin embargo, esto
se realizó para analizar el comportamiento de los parámetros del controlador.
En la figura 5.7 se observa la salida del sistema ante la referencia y en la figura
5.8 se observa el comportamiento de los parámetros del controlador, además
en la figura 5.9 se muestran los errores producidos entre la entrada del sistema
y la salida del modelo deseado.
42 5 Resultados

Figura 5.9: Errores producidos para 100 ms

5.3 Rapidez del Sistema


Considerando que el sistema trabaje con mayor rapidez se disminuyó la cons-
tante de tiempo de lazo cerrado deseada τm a 0,6, con la finalidad de compro-
bar como se habı́a dicho en la sección anterior, que la señal del controlador
puede elevarse y estar operando cerca del lı́mite. Lo cual es cierto, cuando se
mantiene la referencia en 4 V, se observa que el valor promedio de la señal de
control alcanza 4,66 V, el aumento es de 0,7 V en comparación del sistema
trabajando con el valor unitario para τm . Dado el resultado anterior, se decide
no realizar ningún cambio en la constante de tiempo para no comprometer el
funcionamiento de la planta.

Figura 5.10: Cambio en el código para τm =0,6

5.4 Comportamiento ante perturbaciones


• Perturbación mediante pérdida de flujo

Se registró el comportamiento del sistema introduciendo una perturbación a


los 25 segundos aproximadamente, como se muestra en la figura 5.13, para
lo cual se abrió un 50 % el orificio con el que el proceso cuenta en la parte
5.4. Comportamiento ante perturbaciones 43

Figura 5.11: Señal del controlador para τm =0,6

Figura 5.12: Orificio al 50 %

superior. Se observa que la respuesta del sistema decae en el momento en el


que se produce la perturbación pero logra seguir los cambios en la referencia,
con el inconveniente de que cuando se encuentra operando en valores cercanos
al 50 % presenta problemas para seguir la entrada.
Este error puede deberse a problemas de cálculo en el algoritmo de control
cuando se efectúa la resta de 2,5 en las entradas, como se observa en la figura
4.3, incurriendo a una actualización de los parámetros incorrecta cuando se
trabaja cerca del punto de operación del 50 %. Otra posibilidad es que el tiem-
po que necesita para retomar el valor de referencia de 50 % es mucho mayor
en comparación con el tiempo que necesita para alcanzar los otros valores de
referencia durante la perturbación.
En la figura 5.14 se presentan en porcentajes, el error entre el proceso y el
modelo de referencia no sobrepasa el 10 %, pero el error entre la entrada y
el proceso alcanza valores de hasta 20 %, por la misma razón que se explicó
anteriormente.
44 5 Resultados

Figura 5.13: Señal de salida del sistema con pertubación al 50 %

En la figura 5.17 se muestra el comportamiento del sistema con una pertur-


bación mayor, para esto se abre el orificio al 100 %. El sistema se encuentra
trabajando al 60 % y aproximadamente a los 230 s se introduce la perturba-
ción. La respuesta decae pero le toma poco menos de 15 segundos en retomar
el valor de referencia.
En la figura 5.18 se observa el comportamiento de los parámetros del con-
trolador. Para tomar estos datos se realizó la misma modificación en el código
para que calculara las iteraciones cada 100 ms por la razón que se explicó
anteriormente.
Se capturó como varı́a la tensión antes de introducir la perturbación y luego
que el sistema ha alcanzado nuevamente el valor de referencia sobrellevan-
do la perturbación. En la figura 5.19 se observa que la tensión promedio de
la señal de control debe aumentar 0,75 V para comportarse como es requerido.

• Perturbación mediante variación de la ganancia del proceso

Se modificó la ganancia del proceso utilizando la perilla con la cual se fijan los
parámetros del sensor de flujo, esto para simular una perturbación que afecte
los parámetros del proceso. El cambio de la ganancia se realizó de acuerdo a
la secuencia mostrada en la figura 5.20. En la posición 1 es cuando la planta
se encuentra funcionando normalmente, seguidamente se ajusta la ganancia
5.4. Comportamiento ante perturbaciones 45

Figura 5.14: Señal de error del sistema con pertubación al 50 %

Figura 5.15: Señal de control del sistema con pertubación al 50 %


46 5 Resultados

Figura 5.16: Orificio al 100 %

Figura 5.17: Salida del sistema con pertubación al 100 %

de acuerdo a la posición 2 a los 70 segundos aproximadamente, en donde se


aprecia que la salida sufre un aumento momentáneo en su amplitud. Luego
de unos segundos consigue volver al valor de referencia. A los 105 segundos la
perilla se fija en la posición 3, en donde nuevamente la salida sufre otro pico
momentáneo, de menor magnitud, ya que el cambio en la ganancia fue menos
brusco. Estos resultados se observan en 5.21.
Se realizó una prueba similar variando una vez la ganancia a los 70 s aproxi-
madamente como se muestra en 5.23, el sistema necesita menos de 20 s para
retomar el valor de referencia. El comportamiento de θ1 y θ2 se observan en
la figura 5.24, al presentarse el cambio en la ganacia, el θ1 tiende a aumentar,
por otro lado θ2 disminuye. La tensión aumenta 0,29 V como se aprecia en la
figura 5.25.
5.4. Comportamiento ante perturbaciones 47

Figura 5.18: Comportamiento de θ1 y θ2 con perturbación al 100 %

Figura 5.19: Aumento en la tensión de la señal de control.

Figura 5.20: Secuencia de la variación de las ganancias


48 5 Resultados

Figura 5.21: Salida del sistema con variaciones en la ganancia.

Figura 5.22: Variación de la ganancia.


5.4. Comportamiento ante perturbaciones 49

Figura 5.23: Salida del sistema con variación en la ganancia.

Figura 5.24: Comportamiento de θ1 y θ2 para variación en la ganancia.


50 5 Resultados

Figura 5.25: Cambio en la tensión para variación en la ganancia.


6 Conclusiones y recomendaciones

6.1 Conclusiones
Utilizando el controlador diseñado el sistema presenta un buen seguimiento del
valor de referencia en las pruebas realizadas, además actúa de manera efectiva
tanto para cambios en los parámetros del proceso como ante perturbaciones,
lo que lo convierte en una herramienta útil para controlar el proceso. Por lo
tanto se cumple el objetivo principal del presente trabajo.
Una de las ventajas del control adaptativo es que no se diseña para un punto
de operación en particular, lo que proporciona cierta flexibilidad en el sistema
para trabajar en varios puntos de operación.
El método numérico Runge-Kutta de segundo orden proporciona es efectivo
para la actualización de los parámetros del controlador. Se pudo haber esco-
gido un método que utilizara mayor cantidad de valores iniciales para obtener
aproximaciones más exactas, como la regla de Simpson, sin embargo, se podrı́a
comprometer la memoria del Arduino.
Utilizar Arduino fue una gran ventaja, ya que además de ser un componente
económico y de software gratuito, utiliza un lenguaje sencillo. Posee gran va-
riedad de funciones para manipular el hardware lo que facilita y disminuye el
tiempo de programación.
A pesar de que la plataforma Arduino no posee salidas de tensión directa que
varı́en en un determinado rango, las salidas PWM son una alternativa útil,
ya que el ciclo de trabajo de la señal se configura fácilmente para obtener el
valor deseado de tensión.

6.2 Recomendaciones
Se puede mejorar el rendimiento del controlador utilizando un microprocesador
que posea una mayor frecuencia de reloj lo que permitirı́a que los cálculos se
ejecuten con mayor rapidez.
Existen otras plataformas que poseen mayor resolución en los convertidores
analógicos digitales, lo cual producirı́a mejor exactitud en la lectura y escritura
de valores. El Arduino Due cumple este requisito, además la frecuencia de reloj
es de 84 MHz, mucho mayor en comparación al Arduino Uno que trabaja a
16 MHz. Sin embargo la tensión a la que trabaja el sistema es de 3,3 V, por

51
52 6 Conclusiones y recomendaciones

lo tanto no era de utilidad para este caso.


Es importante limitar el envı́o de datos a través del puerto serial del Arduino
a la computadora, ya que esto produce un retardo entre los cálculos de cada
iteración, lo que produce un control más lento.
Es necesario que el valor de la señal de control no sobrepase los 5 V, en este
caso la señal no puede sobrepasar este valor porque el Arduino UNO no entrega
más de esa cantidad. Sin embargo, si se implementa con una plataforma que
entregue más de 5 V, el proceso puede sufrir una situación adversa si no se
monitorea este valor.
Para mejorar la señal de la salida del proceso se puede implementar un filtro
que atenúe el ruido presente en la misma.
Bibliografı́a
Alfaro, V. (2013). Identificación de los modelos del proceso controlado.

Blázquez, L. y de Miguel, L. (2004). Diagnóstico automático de fallos pa-


ra sistemas dinámicos no lineales. Universidad de León, Universidad de
Valladolid.

Chapra, S. y Canale, R. (2010). Métodos numéricos para ingenieros. Mc Graw


Hill.

Chekkouri, M. R. y Romeral, J. L. (2001). Clasificación de los reguladores


adaptativos. Universitat Politécnica de Catalunya.

Landau, I. D., Lizano, R., y M’Saad, M. (2011). Adaptive Control: Algorithms,


Analysis and Applications. Springer-Verlag London.

Rubio, F. R. y Sánchez, M. J. L. (1996). Control Adaptativo y Robusto. Uni-


versidad de Sevilla.

Åström, K. J. y Wittermark, B. (2008). Adaptive Control. Dover Publications,


INC.

www.arduino.cc (2014).

53

Anda mungkin juga menyukai