Control predictivo basado en modelos para el ball&beam
Transcript of Control predictivo basado en modelos para el ball&beam
CONTROL PREDICTIVO BASADO EN MODELOS PARA EL BALL&BEAM
Daniel José Martínez Barragán
PONTIFICIA UNIVERSIDAD JAVERIANA
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE ELECTRÓNICA
BOGOTÁ D. C
2011
2
CONTROL PREDICTIVO BASADO EN MODELOS PARA EL BALL&BEAM
Daniel José Martínez Barragán
Trabajo de grado para optar por el título de
Ingeniero Electrónico
DIRECTOR
Fredy Ruiz
Ingeniero Electrónico
ASESOR
Diego Patiño
Ingeniero Electrónico
PONTIFICIA UNIVERSIDAD JAVERIANA
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE ELECTRÓNICA
BOGOTÁ D. C
2011
3
FACULTAD DE INGENIERÍA
CARRERA DE INGENIERÍA ELECTRÓNICA
RECTOR MAGNIFICO: P. JOAQUÍN EMILIO SÁNCHEZ GARCÍA, S.J.
DECANO ACADÉMICO: Ing. FRANCISCO JAVIER REBOLLEDO MUÑOZ.
DECANO DEL MEDIO UNIVERSITARIO: P. SERGIO BERNAL RESTREPO, S.J.
DIRECTOR DE CARRERA: Ing. JUAN MANUEL CRUZ BOHÓRQUEZ, M. Ed.
DIRECTOR DEL PROYECTO: Ing. FREDY RUIZ. Ph.D
ASESOR DEL PROYECTO: Ing. DIEGO PATIÑO. Ph.D
4
NOTA DE ADVERTENCIA
"La universidad no se hace responsable de los conceptos emitidos por sus alumnos en sus proyectos
de grado sólo velará porque no se publique nada contrario al dogma y la moral católica y porque los
trabajos no contengan ataques o polémicas puramente personales. Antes bien, que se vea en ellos el
anhelo de buscar la verdad y la justicia".
Artículo 23 de la Resolución No. 13, del 6
De julio de 1946, por la cual se
Reglamenta lo concerniente a Tesis y
Exámenes de Grado en la Pontificia
Universidad Javeriana.
5
TABLA DE CONTENIDO
TABLA DE CONTENIDO .................................................................................................................. 5
1. INTRODUCCIÓN ................................................................................................................... 6
1.1 OBJETIVOS ............................................................................................................................. 7
1.1.1 OBJETIVO GENERAL ................................................................................................. 7
1.1.2 OBJETIVOS ESPECÍFICOS ......................................................................................... 7
2. DESARROLLO TEÓRICO ..................................................................................................... 8
2.1 MPC ....................................................................................................................................... 8
2.1.1 PLANTEAMINETO GENERAL DE UN PROBLEMA DE OPTIMIZACIÓN .......... 8
2.1.2 PLANTEAMIENTO GENERAL DEL MPC ................................................................ 9
2.2 BALL&BEAM .................................................................................................................... 10
2.2.1 MODELO NO LINEAL DEL BALL&BEAM ............................................................ 10
2.2.2 MODELO LINEALIZADO ......................................................................................... 12
2.2.3 VALIDACIÓN DEL SISTEMA LINEAL CON EL NO LINEAL ............................. 13
2.3 CONTROL MPC PARA EL BALL&BEAM ..................................................................... 15
2.3.1 PLANTEAMIENTO DEL PROBLEMA DE OPTIMIZACIÓN ................................ 15
2.3.2 CONTROL MPC.......................................................................................................... 17
3. PRUEBAS DE CALIDAD Y DESEMPEÑO ........................................................................ 20
4. INTERCONECCIÓN DEL CONTROLADOR CON LA PLANTA REAL ......................... 27
4.1 INTERCONECCIÓN ON LINE POR MEDIO DE MATLAB O DESDE C++. ............... 27
4.2 MÉTODOS DE IMPLEMENTACION OFF LINE ............................................................ 27
4.2.1 DESARROLLO E IMPLEMENTACION DE UNA LOOK UP TABLE ................... 28
4.2.2 DESARROLLO DE UNA RED NEURONAL ARTIFICIAL RNA ........................... 28
5 VALIDACIÓN DE LA RED NEURONAL .............................................................................. 30
6. ANÁLISIS DE RESULTADOS ............................................................................................ 33
6.1 RAZONES DE POSIBLES DIFERENCIAS ENTRE LA TEORÍA Y LA PRÁCTICA .. 43
7. CONCLUSIONES ................................................................................................................. 46
8. BIBLIOGRAFÍA .................................................................................................................... 48
6
1. INTRODUCCIÓN
Hoy en día la teoría clásica de control ofrece varias alternativas para controlar diferentes tipos de
sistemas, de los cuales, dependiendo de su complejidad y características, es posible escoger y
desarrollar un controlador que permita una mejor respuesta del sistema. Actualmente existen varias
alternativas de control clásicas entre las que se encuentra el PID (Proporcional, Integral y
Derivativo) siendo este el controlador por defecto utilizado en la industria; también están el
controlador por realimentación de estados, controladores por ubicación de polos o algunos
controladores modernos que usualmente se basan en fundamentos de optimización paran generar
respuestas más eficientes teniendo un menor consumo de energía, siendo estos los controladores con
mayor expectativa en cuanto al desarrollo industrial. Entre estos controladores modernos se
encuentran el control LQR o regulador cuadrático lineal y el control predictivo o MPC (Control
Predictivo Basado en Modelos), siendo este último el más utilizado en la industria debido a su
eficiencia en cuanto al control de sistemas repetitivos garantizando un trabajo más exacto con un
costo energético razonable.
Para este trabajo de grado se busca controlar de manera eficiente un sistema llamado Ball&Beam, el
cual es un sistema que consta de un riel que sostiene a una bola o pelota en su interior. Uno de los
extremos del riel está sujeto a un sistema mecánico que se encarga de subir o bajar el riel por medio
de un motor DC [9]. El objetivo del sistema en general es controlar la posición de la bola en el riel
por medio del ángulo de inclinación del mismo. La razón por lo cual se está estudiando la planta con
este tipo de controlador es porque las características mecánicas del Ball&Beam están sujetas a
restricciones como el ángulo máximo de deflexión del riel, la longitud máxima del riel, el voltaje
máximo que se le puede aplicar al motor, etc. Esta planta es un requisito casi obligatorio en la parte
de investigación y/o docencia por ser un prototipo de una planta inestable a malla abierta, lo que la
hace objeto de estudio debido a que generalmente todos los sistemas industriales o sistemas
complejos de control son inestables a malla abierta.
Por otra parte el control MPC es uno de los pocos controladores desarrollados que tiene la
singularidad de que dentro de su propio lazo de realimentación se le pueden agregar directamente las
restricciones de la planta garantizando su cumplimiento sin necesidad de saturadores o sensores,
esto garantiza un ahorro para la compañía no solo por obtener una respuesta más eficiente con un
consumo menor, sino que también le garantiza un ahorro al no tener que remplazar constantemente
sensores deteriorados por el uso constante.
En este documento se mostrará paso a paso como fue el desarrollo del sistema de control y su
implementación en la planta real, para poder analizar el desempeño y compararlo con otro tipo de
controladores diseñados previamente, pudiendo así dar una hipótesis de que el controlador se
comporta mejor para esta planta en específico.
7
1.1 OBJETIVOS
1.1.1 OBJETIVO GENERAL
Diseñar e implementar un controlador predictivo basado en modelos para el Ball&Beam.
1.1.2 OBJETIVOS ESPECÍFICOS
Diseñar un controlador MPC para un modelo lineal del Ball&Beam que maneje las
restricciones de ángulo y voltaje de entrada.
Evaluar el comportamiento del controlador MPC en simulación con el modelo no lineal del
Ball&Beam.
Implementar el controlador MPC en tiempo real usando el sistema Matlab-Quanser y
validarlo sobre la planta real.
8
2. DESARROLLO TEÓRICO
2.1 MPC
En esta parte del capítulo se mostrará el desarrollo teórico necesario para entender los principios
fundamentales de un MPC.
2.1.1 PLANTEAMINETO GENERAL DE UN PROBLEMA DE OPTIMIZACIÓN
Considerando el sistema lineal discreto
( ) ( ) ( ) (1)
( ) (2)
Un problema típico de MPC es un problema de optimización en donde se busca encontrar una
secuencia de control ( ) ( ) ( ) de tal manera que el índice de desempeño del
sistema sea minimizado en un horizonte , sujeto a un número determinado de restricciones que
se imponen debido a las limitaciones mecánicas o eléctricas del problema. Este problema de
optimización típicamente está representado por siguiente expresión:
( ( ) ( ))
( ) ( ) ( )
( ) ( )
La función objetivo o de costo es una función que depende de sus estados ( ) y entradas
( ) en un instante de tiempo t.
Donde
( ( ) ( )) ∫ (‖ ( ( ) ( )) ‖
‖ ( ) ‖
) ‖ ( ) ( )‖
(3)
Como se muestra en la expresión, el lado derecho de la igualdad está compuesto por tres
términos, el primer término corresponde a una función que tiene como finalidad la convergencia
del sistema al valor deseado , Q se encarga de penalizar las variables de estado al darle un
9
peso mayor o menor para que estas respondan de una manera más lenta o más rápida según el
peso que se le haya especificado.
El segundo término así como el primero se encarga de que el sistema converja a un valor
deseado, en este caso se busca que converja a las entradas . Para este término R es el
encargado de penalizar las acciones de la señal de control. Por último el tercer término es el que
se encarga de garantizar una estabilidad en el sistema; P nuevamente es una matriz que penaliza
los estados. El conjunto de toda la expresión en definitiva es el que se encarga de garantizar
una estabilidad y robustez en el sistema encontrando una serie de parámetros encargados
de encontrar el conjunto de valores para la señal de entrada que permitan obtener la respuesta
optima del sistema según el criterio especificado [6].
2.1.2 PLANTEAMIENTO GENERAL DEL MPC
Para poder plantear el problema que se desea optimizar, es muy importante tener conocimiento
de lo que se va a trabajar es por eso que a continuación se muestra una breve introducción de lo
que es MPC (ver Ilustración 1 e Ilustración 2).
Haciendo uso del modelo matemático del sistema, en cada instante t, se predicen las salidas
futuras para un horizonte de predicción N (límite de la ventana de predicción). Las salidas
predichas ( ) para k = 1…N se generan partiendo de los valores pasados, o dicho de otra
manera, los valores del estado en el que se encuentra el proceso (sistema a controlar) y de las
señales de control futuras ( ) para k = 1…N [2].
La señal de control futura, se calcula al resolver el problema de optimización que consiste en
minimizar una función objetivo deseada sujeta a una serie de restricciones de igualdad y/o
desigualdad. Generalmente estas restricciones corresponden a las barreras físicas, eléctricas que
impone el proceso y a la dinámica de este.
Lo que se busca resolviendo este problema de optimización es que el comportamiento del
proceso siga lo más próximo posible a una referencia determinada. Generalmente este problema
se puede tomar como una función cuadrática de los errores de las salidas y/o entradas respecto a
una referencia [1].
Por último la señal de control ( ), siendo esta la primera señal de control predicha, se envía al
proceso y las demás señales predichas son desechadas. El ciclo comienza nuevamente [2].
10
Ilustración 1. Diagrama básico de un MPC Ilustración 2. Estrategia del control predictivo
NOTA: Cabe resaltar que el desarrollo del MPC se realizará por medio del software ACADO el
cual se introducirá posteriormente.
2.2 BALL&BEAM
2.2.1 MODELO NO LINEAL DEL BALL&BEAM
Partiendo de la tesis desarrollada en el año 2008 [4] se encontró que el modelo no lineal del
Ball&Beam (ver Ilustración 3) con el que se va a trabajar es:
(
⁄ )
(4)
(5)
Remplazado (5) en (4) y por los valores correspondientes se tiene
( )
(6)
Donde y corresponden a las variables de estado junto a su correspondientes derivadas y ;
Los parámetros están especificados en la siguiente tabla [3] (ver Tabla 1 e Ilustración 3).
11
Radio de la bola 0.017
Longitud de la barra 0.4255
Gravedad 9.8
Momento de inercia de la bola 0.073
Masa de a bola 0.064
Distancia entre el eje del motor y el soporte de la barra 0.0254 Tabla 1. Parámetros del Ball&Beam
Ilustración 3. Modelo esquemático del Ball&Beam
Como se menciono anteriormente el sistema consta de cuatro variables que determinan el estado
del sistema siendo estas . Donde consta cada una de un sensor que permite estimar
el valor aproximado en el que se encuentra esa variable. Se puede estimar por medio de un
encoder (Ver Ilustración 5) que posee el motor en donde cada paso del encoder es proporcional al
ángulo de inclinación de la barra. Se puede estimar por medio de un potenciómetro lineal (Ver
Ilustración 4) situado en uno de los costados del riel que sostiene la bola que esta al hacer contacto
entre el potenciómetro y el costado metálico del riel, genera un voltaje que varia dependiendo
de la posición de la bola. Este voltaje es directamente proporcional a la posición en la que se
encuentra la bola [3].
Ilustración 5. Potenciómetro
12
Ilustración 6. Motor con encoder
2.2.2 MODELO LINEALIZADO
Para obtener el modelo lineal del Ball&Beam se toma la aproximación de Esto se
cumple para valores de pequeños [5], luego la representación del sistema lineal en variables
de estado corresponde a las siguientes expresiones:
[
] [
] [
] [
]
[ ] [
] (7)
Puntos de equilibrio
Al igualar las derivadas de un sistema a cero se pueden encontrar los puntos de equilibrio, de
acuerdo a esto se tiene que para el sistema lineal y no lineal el punto de equilibrio es:
( ) (8)
Despejando de esta expresión se tiene que el punto de equilibrio se encuentra en para
el sistema lineal como para el no lineal [4].
13
2.2.3 VALIDACIÓN DEL SISTEMA LINEAL CON EL NO LINEAL
Por medio de la herramienta simulink del programa Matlab, se implementó el diagrama de
bloques de ambos sistemas, el lineal y el no lineal, esto se hizo para verificar que la linealización
correspondiera o se aproximara al comportamiento del sistema no lineal.
Para corroborar la similitud de ambos sistemas se hicieron pruebas en diferentes estados del
modelo y a diferentes entradas de voltaje para el motor (ver Ilustración 6.).
Ilustración 7. Diagrama de bloques señal lineal y no lineal
Los bloques y las señales que están en azul, representan el sistema no lineal, los bloques y
señales verdes corresponden al sistema lineal, el bloque rojo con sus respectivas señales es la
entrada de los sistemas, en este caso es el voltaje del motor para el sistema lineal y no lineal.
Por último los bloques y señales negras son los encargados de enviar la información a Matlab y
graficar (se envían las señales a Matlab para facilitar el análisis y observación de las gráficas).
Para una entrada de voltaje aplicada al sistema lineal y no lineal con las siguientes
características:
w' Theta
v'
v x
x
w
v
Signal 1
Voltaje del motor
x4
To Workspace5
x3
To Workspace4
x2
To Workspace3
x1
To Workspace2
x
To Workspace1
Theta
x ' = Ax+Bu
y = Cx+Du
State-Space
t
Sine Wave
Function
1
s
Integrator3
1
s
Integrator2
1
s
Integrator1
1
s
Integrator
7
Gain3
0.0597
Gain2
-36.42
Gain1
64.12
Gain
w
14
Ilustración 8. Señal de referencia
Se tienen las siguientes respuestas lineales y no lineales.
Ilustración 9. Posición de la bola modelo lineal y no lineal Ilustración 10. Ángulo de la barra modelo lineal y no lineal
0 1 2 3 4 5 6 7 8 9 10-2.5
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
TIEMPO
VO
LT
AJE
DE
L M
OT
OR
Vm
VOLTAJE DEL MOTOR
SISTEMA LINEAL
0 1 2 3 4 5 6 7 8 9 10-12
-10
-8
-6
-4
-2
0
2
TIEMPO
PO
SIC
ION
DE
LA
BO
LA
X
POSICION DE LA BOLA MODELO LINEAL Y NO LINEAL
SISTEMA LINEAL
SISTEMA NOLINEAL
0 1 2 3 4 5 6 7 8 9 10-3.5
-3
-2.5
-2
-1.5
-1
-0.5
0
TIEMPO
AN
GU
LO
DE
LA
BA
RR
A T
HE
TA
ANGULO DE LA BARRA MODELO LINEAL Y NO LINAL
SISTEMA LINEAL
SISTEMA NOLINEAL
15
Ilustración 11. Velocidad de la bola modelo lineal y no lineal Ilustración 12. Velocidad angular modelo lineal y no lineal
De las anteriores gráficas se puede concluir que para estas condiciones el sistema linealizado
concuerda y es casi exacto al sistema no lineal con un error despreciable, por lo tanto se puede
confirmar que la validación del sistema linealizado con el no lineal se ha desarrollado
correctamente.
2.3 CONTROL MPC PARA EL BALL&BEAM
2.3.1 PLANTEAMIENTO DEL PROBLEMA DE OPTIMIZACIÓN
Partiendo de la teoría vista en la sección 2.1, se planteará un problema de control óptimo para el
Ball&Beam. Definiendo la función objetivo a minimizar, se tiene que:
( ( ) ( )) ∫ [( ( ( ) ( )) ) ( ( ( ) ( )) ) ( ( ) ( ) )
]
( ( ( ) ( )) ) ( ( ( ) ( )) ) ( )
Donde las matrices Q, P y R son matrices que dependen del número de entradas y salidas. Para
el caso que se va a trabajar estas matrices tienen las siguientes dimensiones:
0 1 2 3 4 5 6 7 8 9 10-1.6
-1.4
-1.2
-1
-0.8
-0.6
-0.4
-0.2
0
TIEMPO
Velo
cid
ad d
e la b
ola
v
VELOCIDAD DE LA BOLA MODELO LINEAL Y NO LINEAL
SISTEMA LINEAL
SISTEMA NOLINEAL
0 1 2 3 4 5 6 7 8 9 10-4
-3
-2
-1
0
1
2
3
4
TIEMPO
VE
LO
CID
AD
AN
GU
LA
R w
VELOCIDAD ANGULAR MODELO LINEAL Y NO LINEAL
SISTEMA LINEAL
SISTEMA NOLINEAL
16
[
]
(10)
[
]
Los valores de las matrices y son valores que se pueden escoger según el criterio del
diseñador y su conocimiento sobre la planta, un buen punto de partida para escoger esos valores
puede ser por medio del criterio de Bryson [1], que dice que:
Partiendo de este criterio se tiene que los valores máximos aceptables de las variables de estado
y la entrada del sistema son:
Valor arbitrario .
Valor arbitrario Longitud máxima de la Barra 42.55 .
Ángulo máximo de inclinación de la barra permitido por el sistema mecánico .
Voltaje máximo que se le puede aplicar al motor .
NOTA: Para este trabajo solo se encontraran los valores de la matriz Q debido a que el
desarrollo del controlador se realizará con un software (Ver Sección 2.3.2) donde la matriz Q es
el único parámetro de entrada de las tres funciones P,Q y R.
[
] (11)
Las restricciones de desigualdad del sistema debido a las condiciones mecánicas y eléctricas
son:
17
en V
en Rad (12)
en m
Las restricciones de igualdad del sistema corresponden a la dinámica del sistema.
(13)
2.3.2 CONTROL MPC
El controlador MPC se desarrollará por medio de las funciones del software ACADO el cual es
un programa desarrollado por la Universidad de Leuven en Bélgica (Ver anexos 1), este software
es una herramienta para el desarrollo de problemas de control óptimo elaborado en lenguaje C y
con interface en Matlab. El desarrollo del controlador se presenta en el siguiente código
implementado en Matlab [8].
clear; Borra toda la información previa. BEGIN_ACADO; Siempre se emplea antes de comenzar. acadoSet('problemname','Ball_Beam')
; acadoSet('problemname', false);
Escribe la información en el workspace.
DifferentialState tEM xB wEM vB; Define las variables de estado. Control Vm; Define la variable de control. k1 = 36.42; k2 = 64.12; k3 = 0.4179;
Defina las constantes que caracterizan el
modelo del sistema.
f = acado.DifferentialEquation(); Establece que se escribirá la ecuación
diferencial. f.add(dot (tEM)==wEM);
f.add(dot (xB)==vB); f.add(dot (wEM)==(-k1*wEM + k2*Vm)); f.add(dot (vB)==( k3*tEM));
Definición de las cuatro variables de
estado del Ball&Beam.
ocp = acado.OCP(0.0, 2.0, 20);
Establece el problema de control óptimo.
Los dos primeros términos corresponden
a la ventana de tiempo (Comienzo, final)
y el último al número de intervalos de
esta ventana. Q (1,1) = 1/5; Q (2,2) = 10000000000; Q (3,3) = 1; Q (4,4) = 1/10;
Matriz de peso Q que penaliza a las
variables de estado deseadas.
(No corresponde al valor final de Q)
18
r = zeros(1,4); La referencia
ocp.minimizeLSQ( Q, h, r ); Minimiza las variables establecidas en
paréntesis.
ocp.subjectTo( f );
ocp.subjectTo(-15 <= Vm <= 15);
ocp.subjectTo(-pi/4 <= tEM <= pi/4); ocp.subjectTo(-0.21 <= xB <= 0.21);
Restricciones del sistema, para este caso
estas son las restricciones del
Ball&Beam
identity = acado.OutputFcn(); dynamicSystem =
acado.DynamicSystem(f, identity);
Permite manipular y evaluar las
funciones de salida basado en
expresiones simbólicas.
Establece un sistema dinámico
generado por la función de salida y por
las ecuaciones diferenciales. process =
acado.Process(dynamicSystem,
'INT_RK45');
Simula el proceso de control basándose
en un modelo dinámico.
outputFunction = acado.OutputFcn();
algo = acado.RealTimeAlgorithm(ocp,
0.05); Define algunos parámetros para el
algoritmo. zeroReference =
acado.StaticReferenceTrajectory(); La referencia que se quiere seguir.
controller = acado.Controller( algo,
zeroReference ); Control en línea que obtiene la señal de
control.
sim = acado.SimulationEnvironment(
0.0,10,process,controller ); Define el lazo cerrado del sistema.
Xo = [0 0.02 0 0]; sim.init( Xo );
Define las condiciones iniciales del
sistema.
END_ACADO; Termina el problema desarrollado en
ACADO.
out = Ball_Beam_RUN (); Llamándolo de esta forma, el problema
compilara un archive en C++.
draw; Archivo adicional que grafica las
variables deseadas.
hold on; Mantiene las gráficas obtenidas
posteriormente.
19
En la Ilustración 13 se muestra el digrama que representa la interconeccion entre la planta
(Ball&Beam) y el softwar con el que se trabajara (Matlab). Esta interconeccion se realiza por
medio de un quit de quancer encargado de comunicar o hacer la interface entre la planta y el pc,
este quit consta de una tarjeta de adquisición con un numero de etradas analogas-salidas
analogas, entradas digitales-salidas digitales y una upc encargada de recibir la informacion del
estado de la planta, transferir esta informacion a la tarjeta de adquisicion y esta se encarga de
transmitir esa informacion directamente al pc.
Ilustración 14 . Modelo de interconexión software y matlab
20
3. PRUEBAS DE CALIDAD Y DESEMPEÑO
Al implementar el problema de optimización desarrollado en el capítulo 2.3, en el software de
ACADO, se desarrollaron varias pruebas de desempeño para evaluar el comportamiento del sistema
variando los parámetros de las matrices y para encontrar la respuesta óptima. Estos parámetros
se variaron partiendo de los valores encontrados anteriormente.
NOTA: las siguientes simulaciones se realizaron con las siguientes condiciones iniciales.
[
] [
]
Luego se tiene que para los valores de las matrices (valores encontrados según la ley de Bryson's)
[
] [
]
Ilustración 15. Prueba 1
0 20 40 60 80-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3Posicion del eje vs Tiempo
Tiempo [s]
Posic
ion d
el eje
[R
ad]
0 20 40 60 80-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3Posicion de la bola vs Tiempo
Tiempo [s]
Posic
ion d
e la b
ola
[m
]
0 20 40 60 80-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3Velocidaddel eje vs tiempo
Tiempo [s]
Velo
cid
ad d
el eje
[R
ad/s
]
0 20 40 60 80-0.2
-0.15
-0.1
-0.05
0
0.05
0.1
0.15
0.2Velocidad de la bola vs Tiempo
Tiempo [s]
Velo
cid
ad d
e la b
ola
[m
/s]
0 20 40 60 80-0.2
-0.15
-0.1
-0.05
0
0.05
0.1
0.15Señal de control vs Tiempo
Tiempo [s]
señal de c
ontr
ol [V
]
21
Como se puede ver en la anterior gráfica la respuesta es oscilatoria, por lo tanto este criterio no
generó una respuesta deseada (sub amortiguada). Es por eso que se recurrió a ajustar los valores de
según el criterio del diseñador. Como la variable de interés es la posición, se le asignará a esta un
valor de más grande penalizando así a esta variable de estado y a las demás variables se les
penalizará aun mas haciendo más pequeña. Partiendo de los valores obtenidos del criterio de
Bryson se le agregará una década al valor de para la posición y a las demás se les quitará una
década. La matriz y la respuesta del sistema se muestran a continuación:
[
]
Ilustración 16. Prueba 2
En la gráfica anterior se puede observar como mejoró considerablemente la respuesta del sistema
sujeto a los criterios especificados anteriormente. La respuesta de la siguiente gráfica muestra el
valor óptimo de para que la respuesta se estabilice lo más rápido posible y con un consumo de
energía adecuado:
0 5 10 15-0.03
-0.02
-0.01
0
0.01
0.02
0.03Posicion del eje vs Tiempo
Tiempo [s]
Pos
icio
n de
l eje
[R
ad]
0 5 10 15-5
0
5
10
15
20x 10
-3 Posicion de la bola vs Tiempo
Tiempo [s]
Pos
icio
n de
la b
ola
[m]
0 5 10 15-0.08
-0.06
-0.04
-0.02
0
0.02
0.04Velocidaddel eje vs tiempo
Tiempo [s]
Vel
ocid
ad d
el e
je [
Rad
/s]
0 5 10 15-12
-10
-8
-6
-4
-2
0
2
4x 10
-3 Velocidad de la bola vs Tiempo
Tiempo [s]
Vel
ocid
ad d
e la
bol
a [m
/s]
0 5 10 15-0.06
-0.05
-0.04
-0.03
-0.02
-0.01
0
0.01
0.02Señal de control vs Tiempo
Tiempo [s]
seña
l de
cont
rol [
V]
22
Ilustración 17. Prueba 3
Si se aumenta algunas décadas más el valor de , la mejoría del tiempo de estabilización no es
considerable, mientras que por otra parte el consumo de energía (Área bajo la de cada uno de los
estados del sistema en un rango de tiempo) en el sobre pico superior si aumentaba
considerablemente (alrededor de 2.5 V).
La variación de altera el comportamiento del sistema por encima de tres décadas arriba de
es decir: para se podrá trabajar con valores contenidos en el intervalo (Valor especificado
en el punto anterior); [0,1620]. El comportamiento del sistema es muy sensible a variaciones por
encima del especificado anteriormente, siendo así que la respuesta del sistema en el valor límite y
una década por arriba del valor límite serían:
0 0.5 1 1.5 2-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6Posicion del eje vs Tiempo
Tiempo [s]
Pos
icio
n de
l eje
[R
ad]
0 0.5 1 1.5 2-5
0
5
10
15
20x 10
-3 Posicion de la bola vs Tiempo
Tiempo [s]
Pos
icio
n de
la b
ola
[m]
0 0.5 1 1.5 2-10
-8
-6
-4
-2
0
2
4
6Velocidaddel eje vs tiempo
Tiempo [s]
Vel
ocid
ad d
el e
je [
Rad
/s]
0 0.5 1 1.5 2-0.06
-0.05
-0.04
-0.03
-0.02
-0.01
0
0.01Velocidad de la bola vs Tiempo
Tiempo [s]
Vel
ocid
ad d
e la
bol
a [m
/s]
0 0.5 1 1.5 2-8
-6
-4
-2
0
2
4Señal de control vs Tiempo
Tiempo [s]
seña
l de
cont
rol [
V]
23
Ilustración 18. Prueba 4.1
Ilustración 19.Prueba 4.2
0 0.5 1 1.5 2-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3Posicion del eje vs Tiempo
Tiempo [s]
Posic
ion d
el eje
[R
ad]
0 0.5 1 1.5 2-5
0
5
10
15
20x 10
-3 Posicion de la bola vs Tiempo
Tiempo [s]
Posic
ion d
e la b
ola
[m
]
0 0.5 1 1.5 2-6
-5
-4
-3
-2
-1
0
1
2Velocidaddel eje vs tiempo
Tiempo [s]
Velo
cid
ad d
el eje
[R
ad/s
]
0 0.5 1 1.5 2-0.04
-0.03
-0.02
-0.01
0
0.01Velocidad de la bola vs Tiempo
Tiempo [s]
Velo
cid
ad d
e la b
ola
[m
/s]
0 0.5 1 1.5 2-4
-3
-2
-1
0
1
2Señal de control vs Tiempo
Tiempo [s]
señal de c
ontr
ol [V
]
0 1 2 3 4 5-0.2
-0.15
-0.1
-0.05
0
0.05Posicion del eje vs Tiempo
Tiempo [s]
Posic
ion d
el eje
[R
ad]
0 1 2 3 4 5-5
0
5
10
15
20x 10
-3 Posicion de la bola vs Tiempo
Tiempo [s]
Posic
ion d
e la b
ola
[m
]
0 1 2 3 4 5-2.5
-2
-1.5
-1
-0.5
0
0.5Velocidaddel eje vs tiempo
Tiempo [s]
Velo
cid
ad d
el eje
[R
ad/s
]
0 1 2 3 4 5-0.025
-0.02
-0.015
-0.01
-0.005
0
0.005Velocidad de la bola vs Tiempo
Tiempo [s]
Velo
cid
ad d
e la b
ola
[m
/s]
0 1 2 3 4 5-2
-1.5
-1
-0.5
0
0.5Señal de control vs Tiempo
Tiempo [s]
señal de c
ontr
ol [V
]
24
En la Ilustración 17 se observa que el tiempo de estabilización es aproximadamente de tres
segundos, por lo tanto, se escogerá un valor para menor al valor máximo especificado
anteriormente, debido a que para este rango de valores la respuesta del sistema muestra un mejor
desempeño respecto a la respuesta obtenida por valores de que no estén dentro de este rango.
Para valores de se puede ver que al aumentar la magnitud de este parámetro disminuye
considerablemente la señal de control y aumenta en muy baja proporción el tiempo de
establecimiento. De lo anterior se encontró un valor adecuado para tener una respuesta deseada. Para
un valor de se tiene un comportamiento de la siguiente forma:
Ilustración 20.Prueba 5
Al igual que para el caso de , la magnitud de tiene un rango de valores que están en el
intervalo de [0,1000] donde la respuesta no varía.
Por lo tanto al tomar un valor de una década por encima del valor máximo, se tiene la siguiente
respuesta:
0 0.5 1 1.5 2 2.5 3-0.5
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3Posicion del eje vs Tiempo
Tiempo [s]
Pos
icio
n de
l eje
[R
ad]
0 0.5 1 1.5 2 2.5 3-5
0
5
10
15
20x 10
-3 Posicion de la bola vs Tiempo
Tiempo [s]
Pos
icio
n de
la b
ola
[m]
0 0.5 1 1.5 2 2.5 3-5
-4
-3
-2
-1
0
1
2
3Velocidaddel eje vs tiempo
Tiempo [s]
Vel
ocid
ad d
el e
je [
Rad
/s]
0 0.5 1 1.5 2 2.5 3-0.05
-0.04
-0.03
-0.02
-0.01
0
0.01Velocidad de la bola vs Tiempo
Tiempo [s]
Vel
ocid
ad d
e la
bol
a [m
/s]
0 0.5 1 1.5 2 2.5 3-4
-3
-2
-1
0
1
2Señal de control vs Tiempo
Tiempo [s]
seña
l de
cont
rol [
V]
25
Ilustración 21. Prueba 6
Como se puede ver en la Ilustración 19, la respuesta de la bola respecto al tiempo, muestra un
comportamiento con un sobre tan pequeño que se podría despreciar al igual que las oscilaciones
antes de estabilizarse.
Luego de haber realizado las pruebas respectivas para encontrar los valores óptimos de se
encontró que estos corresponden a:
[
]
El comportamiento del sistema a condiciones iniciales extremas del sistema [0 0 0.19 0.610] se
muestra a continuación:
0 0.5 1 1.5 2 2.5 3-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3Posicion del eje vs Tiempo
Tiempo [s]
Pos
icio
n de
l eje
[R
ad]
0 0.5 1 1.5 2 2.5 3-5
0
5
10
15
20x 10
-3 Posicion de la bola vs Tiempo
Tiempo [s]
Pos
icio
n de
la b
ola
[m]
0 0.5 1 1.5 2 2.5 3-5
-4
-3
-2
-1
0
1
2Velocidaddel eje vs tiempo
Tiempo [s]
Vel
ocid
ad d
el e
je [
Rad
/s]
0 0.5 1 1.5 2 2.5 3-0.04
-0.03
-0.02
-0.01
0
0.01Velocidad de la bola vs Tiempo
Tiempo [s]
Vel
ocid
ad d
e la
bol
a [m
/s]
0 0.5 1 1.5 2 2.5 3-3
-2
-1
0
1
2Señal de control vs Tiempo
Tiempo [s]
seña
l de
cont
rol [
V]
26
Ilustración 22. Prueba 7
En esta gráfica se puede ver que para condiciones iniciales extremas el sistema tiene un sobre pico
muy pequeño y estabiliza en un tiempo de aproximadamente 2.5 s. Además es importante resaltar el
cumplimiento de las restricciones de (posición del eje) y (Señal de control); en la
Ilustración 21 se puede apreciar mucho mejor.
Ilustración 23. Prueba 7
En esta gráfica se puede apreciar claramente como la señal se satura en equivalente a
. Esto indica que el sistema está teniendo en cuenta todas las restricciones impuestas
anteriormente.
0 1 2 3 4-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8Posicion del eje vs Tiempo
Tiempo [s]
Posic
ion d
el eje
[R
ad]
0 1 2 3 4-0.05
0
0.05
0.1
0.15
0.2Posicion de la bola vs Tiempo
Tiempo [s]
Posic
ion d
e la b
ola
[m
]
0 1 2 3 4-20
-15
-10
-5
0
5
10Velocidaddel eje vs tiempo
Tiempo [s]
Velo
cid
ad d
el eje
[R
ad/s
]
0 1 2 3 4-0.25
-0.2
-0.15
-0.1
-0.05
0
0.05
0.1Velocidad de la bola vs Tiempo
Tiempo [s]
Velo
cid
ad d
e la b
ola
[m
/s]
0 1 2 3 4-15
-10
-5
0
5Señal de control vs Tiempo
Tiempo [s]
señal de c
ontr
ol [V
]
0 0.5 1 1.5 2 2.5 3 3.5 4-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
X: 0.4455
Y: -0.7853
Posicion del eje vs Tiempo
Tiempo [s]
Posi
cion
del
eje
[Rad
]
X: 1.305
Y: 0.7853
27
4. INTERCONECCIÓN DEL CONTROLADOR CON LA PLANTA REAL
Se buscó interconectar el controlador diseñado, con la planta real de diferentes maneras, entre las
que se encuentra:
4.1 INTERCONECCIÓN ON LINE POR MEDIO DE MATLAB O DESDE C++.
Se contemplaron las dos posibilidades de interconexión, bien fuera desde Matlab o desde Visual
C++ 2008. La primera opción se rechazó de inmediato al ver que el software ACADO no tenía
interface directamente con simulink lo cual es un problema debido a que las tarjetas de
adquisición de QUANSER solo tienen interface directa con simulink o con C++ por lo cual se
procedió a intentar la conexión directamente desde C++. Para esta conexión se necesitaba una
plataforma virtual de Linux llamada Sigwin desde donde se realizaría el puente entre el
programa desarrollado en C++ y la planta real. Esta opción no fue viable al tener un alto grado
de complejidad en la parte de informática, por lo tanto se tuvo que recurrir a otras opciones que
serán nombradas a continuación.
4.2 MÉTODOS DE IMPLEMENTACION OFF LINE
Para los dos siguientes métodos se partió de la obtención de una tabla de datos mediante
simulaciones (Ver Anexos2). Esto lo que quiere decir es que se realizó una amplia variedad de
simulaciones para diferentes condiciones iniciales y diferentes valores de la referencia
obteniendo así la respuesta de la señal de control, para este caso el voltaje del motor (Ver
Ilustración 22).
Ilustración 24. Respuesta a diferentes condiciones iniciales
0 0.5 1 1.5 2 2.5 3-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8Posicion del eje
Tiempo [s]
Posic
ion d
el eje
[R
ad]
0 0.5 1 1.5 2 2.5 3-0.2
-0.15
-0.1
-0.05
0
0.05
0.1
0.15
0.2Posicion de la bola
Tiempo [s]
Posic
ion d
e la b
ola
[m
]
0 0.5 1 1.5 2 2.5 3-10
-5
0
5
10Velocidaddel eje
Tiempo [s]
Velo
cid
ad d
el eje
[R
ad/s
]
0 0.5 1 1.5 2 2.5 3-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3Velocidad de la bola
Tiempo [s]
Velo
cid
ad d
e la b
ola
[m
/s]
0 0.5 1 1.5 2 2.5 3-8
-6
-4
-2
0
2
4
6
8Señal de control
Tiempo [s]
señal de c
ontr
ol [V
]
28
En la Ilustración 22 se muestra un ejemplo en donde se realizaron simulaciones a diferentes
condiciones iniciales y diferentes referencias.
4.2.1 DESARROLLO E IMPLEMENTACION DE UNA LOOK UP TABLE
Este método consiste en generar una tabla de valores provenientes de una simulación y
almacenarlos en una tabla, la finalidad es que en el momento de interconectar el Ball&Beam con
el software que contiene esta tabla, lo que hace el sistema es monitorear el estado actual de la
planta y busca en la tabla los valores de las condiciones más aproximadas a las que se encuentra
y envía la señal de control correspondiente al estado en el que se encuentra.
Para este caso, como se mencionó anteriormente, estos valores se tomaron de simular el
Ball&Beam a diferentes valores de sus condiciones iniciales y de la referencia. Para generar una
Look Up Table, los valores de esta tabla deben ser valores crecientes (Condiciones Iniciales y
Referencia) y en lo posible equi-espaciados, por ejemplo.
X Y Control
1 1 3,00E+00
2 2 1,00E+00
3 3 4,00E+00
4 4 2,00E+00
Para el caso del Ball&Beam no tenemos solo dos variables como X y Y si no que tenemos 5
variables [ ] y una señal de control V, lo que hace complicado generar una tabla
donde sus condiciones iniciales son crecientes y equi-espaciadas. Otro inconveniente que se
descubrió posteriormente es que inicialmente se tenían alrededor de 400.000 datos para cada
variable tomados de alrededor de 1215 experimentos donde generar la tabla de Look Up tardaría
alrededor tres días con varios computadores simulando a la vez, además de este problema, la
respuesta del sistema en tiempo real no era una garantía, es por eso que se procedió a realizar un
método alternativo descrito a continuación.
4.2.2 DESARROLLO DE UNA RED NEURONAL ARTIFICIAL RNA
La filosofía de una red neuronal consiste en desarrollar un mecanismo que genere un
comportamiento similar al de un sistema. En otras palabras lo que hace una RNA es que por
medio de la respuesta de un sistema, se genera otro sistema que sea capaz de comportarse de una
manera similar al sistema original. Para el caso del Ball&Beam, partiendo de una tabla de datos
tomados (ver sección 4.2), se desarrolló un sistema capaz responder de una forma similar al
comportamiento del sistema original.
29
Para el desarrollo de la RNA se utilizó el toolbox de Matlab llamado NNTOOL (Ver Anexos3),
que permite generar una red neuronal partiendo de unas entradas y unas salidas del sistema
original. Los parámetros requeridos para generar la red neuronal por medio de este tool box son:
Input data: Valores de entrada con los que se quiere entrenar (Network Type) la red
neuronal (Estados del sistema con su respectiva referencia).
Target data: Valores objetivo o valores esperados (Salida del sistema, para este caso, el
voltaje del motor).
Number of layers: Número de capas, para este caso solo se tiene la capa de entrada y la capa
de salida.
Network Type: Consiste en el método de entrenamiento que requiere para entrenar a la red,
estos son métodos desarrollados que dependiendo de la red que se desea, cada método puede
diferir en el resultado uno respecto a otro. Para este caso se utilizó uno de los métodos más
comunes de entrenamiento llamado Feed-Forward Backpropagation.
Number of neurons: Cada neurona se compone por unos parámetros los cuales son una
función de aproximación que para este caso es tansig (tansig(n) = 2/(1+exp(-2*n))-1) y
unos parámetros generados por el entrenamiento, el conjunto de estos parámetros son los
que se encargaron de aproximar el comportamiento de la red, con la función original. El
número de neuronas permite que la aproximación de la red neuronal sea más exacta o no.
Ilustración 25. Red neuronal obtenida por NNTOOL
Para obtener la red neuronal final, se tuvo que realizar alrededor de 5 experimentos variando
el número de neuronas, el número de layers y el network tipe, donde cada experimento
tomaba alrededor de 1 hora.
Nota: Cabe resaltar que los experimentos se realizaron con el matlab 2011 ya que con
versiones anteriores los resultados de las redes no eran tan optimos como los adquiridos con
la última versión de matlab.
Red neuronal con implementación en tiempo real
El tool box nntool genera una red la cual se puede exportar a simulink pero no se puede trabajar
con este bloque en tiempo real, es por eso que se extrapolaron los términos de la red generada y
se desarrolló una red con bloques capaces de trabajar en tiempo real (Ver Anexos4).
30
5. VALIDACIÓN DE LA RED NEURONAL
Se comparará la respuesta del sistema generado en simulink con el control desarrollado en ACADO.
Las simulaciones de los dos software implementadas en Acado y en simulink se muestran en las
siguientes gráficas:
Condiciones iniciales:
[
] [
]
Referencia.
Respuesta ACADO Respuesta Simulink
Ilustración 26. Validación 1
0 0.5 1 1.5 2 2.5 3-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8Posicion del eje vs Tiempo
Tiempo [s]
Posic
ion del eje
[R
ad]
0 0.5 1 1.5 2 2.5 3-0.2
-0.15
-0.1
-0.05
0
0.05
0.1
0.15Posicion de la bola vs Tiempo
Tiempo [s]
Posic
ion de la
bola
[m
]
0 0.5 1 1.5 2 2.5 3-10
-5
0
5
10Velocidaddel eje vs tiempo
Tiempo [s]
Velo
cid
ad del eje
[R
ad/s]
0 0.5 1 1.5 2 2.5 3-0.3
-0.25
-0.2
-0.15
-0.1
-0.05
0
0.05Velocidad de la bola vs Tiempo
Tiempo [s]
Velo
cid
ad de la
bola
[m
/s]
0 0.5 1 1.5 2 2.5 3-8
-6
-4
-2
0
2
4
6Señal de control vs Tiempo
Tiempo [s]
señal de control [V
]
0 0.5 1 1.5 2 2.5 3-1
-0.5
0
0.5
1
TIEMPO
AN
GU
LO
D
E LA
B
AR
RA
T
HE
TA
ANGULO DE LA BARRA MODELONO LINAL
0 0.5 1 1.5 2 2.5 3-0.2
-0.15
-0.1
-0.05
0
0.05
0.1
0.15
TIEMPO
PO
SIC
IO
N D
E LA
B
OLA
X
POSICION DE LA BOLA MODELO NO LINEAL
0 0.5 1 1.5 2 2.5 3-5
0
5
10
TIEMPOV
ELO
CID
AD
A
NG
ULA
R w
VELOCIDAD ANGULAR MODELO NO LINEAL
0 0.5 1 1.5 2 2.5 3-0.35
-0.3
-0.25
-0.2
-0.15
-0.1
-0.05
0
0.05
TIEMPO
Velo
cid
ad de la
bola
v
VELOCIDAD DE LA BOLA MODELO NO LINEAL
0 0.5 1 1.5 2 2.5 3-4
-2
0
2
4
6
TIEMPO
VO
LT
AJE
D
EL M
OT
OR
V
m
VOLTAJE DEL MOTOR
SISTEMA NOLINEAL
SISTEMA NOLINEAL
SISTEMA NOLINEAL
SISTEMA NOLINEAL
SISTEMA No LINEAL
31
Condiciones iniciales:
[
] [
]
Referencia.
Respuesta ACADO Respuesta Simulink
Ilustración 27. Validación 3
Condiciones iniciales:
[
] [
]
Referencia.
0 0.5 1 1.5 2 2.5 3-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8Posicion del eje vs Tiempo
Tiempo [s]
Posic
ion del eje
[R
ad]
0 0.5 1 1.5 2 2.5 3-0.2
-0.15
-0.1
-0.05
0
0.05
0.1
0.15Posicion de la bola vs Tiempo
Tiempo [s]
Posic
ion de la
bola
[m
]
0 0.5 1 1.5 2 2.5 3-15
-10
-5
0
5
10Velocidaddel eje vs tiempo
Tiempo [s]
Velo
cid
ad del eje
[R
ad/s]
0 0.5 1 1.5 2 2.5 3-0.3
-0.25
-0.2
-0.15
-0.1
-0.05
0
0.05Velocidad de la bola vs Tiempo
Tiempo [s]
Velo
cid
ad de la
bola
[m
/s]
0 0.5 1 1.5 2 2.5 3-10
-5
0
5Señal de control vs Tiempo
Tiempo [s]
señal de control [V
]
0 0.5 1 1.5 2 2.5 3-0.15
-0.1
-0.05
0
0.05
0.1
0.15
0.2
TIEMPO
PO
SIC
IO
N D
E LA
B
OLA
X
POSICION DE LA BOLA MODELO NO LINEAL
SISTEMA NOLINEAL
0 0.5 1 1.5 2 2.5 3-1
-0.5
0
0.5
1
TIEMPO
AN
GU
LO
D
E LA
B
AR
RA
T
HE
TA
ANGULO DE LA BARRA MODELONO LINAL
SISTEMA NOLINEAL
0 0.5 1 1.5 2 2.5 3-0.3
-0.25
-0.2
-0.15
-0.1
-0.05
0
0.05
TIEMPO
Velo
cid
ad de la
bola
v
VELOCIDAD DE LA BOLA MODELO NO LINEAL
SISTEMA NOLINEAL
0 0.5 1 1.5 2 2.5 3-8
-6
-4
-2
0
2
4
6
8
TIEMPO
VE
LO
CID
AD
A
NG
ULA
R w
VELOCIDAD ANGULAR MODELO NO LINEAL
SISTEMA NOLINEAL
0 0.5 1 1.5 2 2.5 3-6
-4
-2
0
2
4
6
TIEMPO
VO
LT
AJE
D
EL M
OT
OR
V
mVOLTAJE DEL MOTOR
SISTEMA No LINEAL
32
Respuesta ACADO Respuesta Simulink
Ilustración 28. Validación 4
Como se puede ver en la comparación entre las simulaciones usando ACADO y las simulaciones
con la red neuronal, existen algunas variaciones en cuanto a los valores que toma la señal de control
generada y al tiempo de establecimiento, por otro lado el sistema sigue cumpliendo con las
restricciones.
0 0.5 1 1.5 2 2.5 3-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8Posicion del eje vs Tiempo
Tiempo [s]
Posic
ion del eje
[R
ad]
0 0.5 1 1.5 2 2.5 3-0.2
-0.15
-0.1
-0.05
0
0.05
0.1
0.15Posicion de la bola vs Tiempo
Tiempo [s]
Posic
ion de la
bola
[m
]
0 0.5 1 1.5 2 2.5 3-8
-6
-4
-2
0
2
4
6Velocidaddel eje vs tiempo
Tiempo [s]
Velo
cid
ad del eje
[R
ad/s]
0 0.5 1 1.5 2 2.5 3-0.05
0
0.05
0.1
0.15
0.2
0.25
0.3Velocidad de la bola vs Tiempo
Tiempo [s]
Velo
cid
ad de la
bola
[m
/s]
0 0.5 1 1.5 2 2.5 3-6
-4
-2
0
2
4Señal de control vs Tiempo
Tiempo [s]
señal de control [V
]
0 0.5 1 1.5 2 2.5 3-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
TIEMPO
AN
GU
LO
D
E LA
B
AR
RA
T
HE
TA
ANGULO DE LA BARRA MODELONO LINAL
0 0.5 1 1.5 2 2.5 3-0.15
-0.14
-0.13
-0.12
-0.11
-0.1
-0.09
TIEMPO
PO
SIC
IO
N D
E LA
B
OLA
X
POSICION DE LA BOLA MODELO NO LINEAL
0 0.5 1 1.5 2 2.5 3-5
-4
-3
-2
-1
0
1
2
3
TIEMPO
VE
LO
CID
AD
A
NG
ULA
R w
VELOCIDAD ANGULAR MODELO NO LINEAL
0 0.5 1 1.5 2 2.5 30
0.02
0.04
0.06
0.08
0.1
TIEMPO
Velo
cid
ad de la
bola
v
VELOCIDAD DE LA BOLA MODELO NO LINEAL
0 0.5 1 1.5 2 2.5 3-3
-2
-1
0
1
2
TIEMPO
VO
LT
AJE
D
EL M
OT
OR
V
m
VOLTAJE DEL MOTOR
SISTEMA NOLINEALSISTEMA NOLINEAL
SISTEMA NOLINEAL
SISTEMA NOLINEAL
SISTEMA No LINEAL
33
6. ANÁLISIS DE RESULTADOS
Se realizó una serie de pruebas (Ver Anexos5) para poder analizar y comparar la respuesta del
Ball&Beam respecto a las respuestas obtenidas por ACADO y por la red neuronal, obteniendo los
siguientes resultados.
Ilustración 29. Sistema de control MPC para el Ball&Beam
Para las siguientes condiciones iniciales
[
] [
]
Vel_Bola1
Vel_Bola
Vel_Angular
20s
s+20
Transfer Fcn1
10s
s+10
Transfer Fcn
Voltaje
To Workspace7
simout4
To Workspace5
PosicionP
To Workspace4
ThetaP
To Workspace3
Theta
To Workspace2
Posicion
To Workspace1
In1
In2
In3
In4
In5
Out1
Subsystem1
Saturation1 Saturation
Pulse
Generator4
Pulse
Generator3
Pulse
Generator2
Pulse
Generator1
Posicion_Bola
Manual Switch
Bad Link
HIL Write Analog
(???)
Bad Link
HIL Read Encoder
(???)
Bad Link
HIL Read Analog
(???)
Bad Link
HIL Initialize
??? (???-???)
-1
Gain4
-1
Gain2
-K-
Gain1
-K-
Gain
0.54
Constant1
Angulo2
Angulo
34
Y una referencia de
El comportamiento de las señales para el sistema simulado y la planta real son:
Ilustración 30. Comparación prueba 1
Para las siguientes condiciones iniciales
[
] [
]
1 2 3
0
0.05
0.1
0.15
Posicion de la bola
Tiempo [s]
Posic
ion d
e la b
ola
[m
]
0.5 1 1.5 2 2.5
-0.5
0
0.5
Posicion del eje
Tiempo [s]
Posic
ion d
el eje
[R
ad]
0.5 1 1.5 2 2.5
0
0.1
0.2
Velocidad de la bola
Tiempo [s]
Velo
cid
ad d
e la b
ola
[m
/s]
1 2 3
-5
0
5
Velocidaddel eje
Tiempo [s]
Velo
cid
ad d
el eje
[R
ad/s
]
0 1 2 3
-4
-2
0
2
4
6
Señal de control
Tiempo [s]
señal de c
ontr
ol [V
]
2 4 6 8
0
0.05
0.1
0.15
TIEMPO
PO
SIC
ION
DE
LA
BO
LA
POSICION DE LA BOLA
2 4 6 8
-0.5
0
0.5
TIEMPO
AN
GU
LO
DE
LA
BA
RR
A
ANGULO DE LA BARRA
2 4 6 8
-0.1
0
0.1
TIEMPO
VE
LO
CID
AD
DE
LA
BO
LA
VELOCIDAD DE LA BOLA
2 4 6 8-4
-2
0
2
4
TIEMPO
VE
LO
CID
AD
AN
GU
LA
R
VELOCIDAD ANGULAR
2 4 6
-2
0
2
4
TIEMPO
VO
LT
AJE
DE
L M
OT
OR
VOLTAJE DEL MOTOR
0 1 2 3 4 5 6 7 8 9-0.02
0
0.02
0.04
0.06
0.08
0.1
0.12
0.14
0.16
0.18
TIEMPO
PO
SIC
ION
BO
LA
SEGUIMIENTO REFERENCIA
X: 4.222
Y: 0.173 X: 7.016
Y: 0.1395
35
Y una referencia de
El comportamiento de la las señales para el sistema simulado y la planta real son:
Ilustración 31. Comparación prueba 2
Para las siguientes condiciones iniciales
[
] [
]
1 2 3
-0.5
0
0.5
Posicion del eje
Tiempo [s]
Posic
ion d
el eje
[R
ad]
0 1 2 3
-0.2
-0.1
0
Posicion de la bola
Tiempo [s]
Posic
ion d
e la b
ola
[m
]
0.5 1 1.5 2 2.5-10
-5
0
5
Velocidaddel eje
Tiempo [s]
Velo
cid
ad d
el eje
[R
ad/s
]
1 2 3
-0.2
-0.1
0
Velocidad de la bola
Tiempo [s]
Velo
cid
ad d
e la b
ola
[m
/s]
1 2 3-8
-6
-4
-2
0
2
4
Señal de control
Tiempo [s]
señal de c
ontr
ol [V
]
2 4 6
-0.2
-0.1
0
TIEMPO
PO
SIC
ION
DE
LA
BO
LA
POSICION DE LA BOLA
2 4 6
-0.5
0
0.5
TIEMPO
AN
GU
LO
DE
LA
BA
RR
A
ANGULO DE LA BARRA
2 4 6
-0.15
-0.1
-0.05
0
0.05
TIEMPO
VE
LO
CID
AD
DE
LA
BO
LA
VELOCIDAD DE LA BOLA
2 4 6
-2
0
2
4
TIEMPO
VE
LO
CID
AD
AN
GU
LA
R
VELOCIDAD ANGULAR
2 4 6 8
-2
0
2
TIEMPO
VO
LT
AJE
DE
L M
OT
OR
VOLTAJE DEL MOTOR
2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7
-0.2
-0.15
-0.1
-0.05
0
X: 6.414
Y: -0.1968
TIEMPO
PO
SIC
ION
BO
LA
SEGUIMIENTO REFERENCIA
36
Y una referencia de
El comportamiento de la las señales para el sistema simulado y la planta real son:
Ilustración 32. Comparación prueba 5
De la Ilustración 27-31 se puede ver claramente como la señal de control para la planta física es
muy similar a la señal de control generada en la simulación con la look up table, de estos resultados
se puede corroborar que esta señal se está generando conforme a lo esperado, también cabe resaltar
que el error en estado estable es bajo, siendo este:
1 2 3
-0.5
0
0.5
Posicion del eje
Tiempo [s]
Posic
ion d
el eje
[R
ad]
1 2 3-0.1
0
0.1
Posicion de la bola
Tiempo [s]
Posic
ion d
e la b
ola
[m
]
1 2 3
-5
0
5
Velocidaddel eje
Tiempo [s]
Velo
cid
ad d
el eje
[R
ad/s
]
1 2 3
0
0.1
0.2
Velocidad de la bola
Tiempo [s]
Velo
cid
ad d
e la b
ola
[m
/s]
0 1 2 3
-5
0
5
Señal de control
Tiempo [s]
señal de c
ontr
ol [V
]
6 8 10-0.1
0
0.1
0.2
TIEMPO
PO
SIC
ION
DE
LA
BO
LA
POSICION DE LA BOLA
6 8 10-1
-0.5
0
0.5
TIEMPO
AN
GU
LO
DE
LA
BA
RR
A
ANGULO DE LA BARRA
6 8 10
-0.05
0
0.05
0.1
0.15
TIEMPO
VE
LO
CID
AD
DE
LA
BO
LA
VELOCIDAD DE LA BOLA
6 8 10
-4
-2
0
2
4
TIEMPO
VE
LO
CID
AD
AN
GU
LA
R
VELOCIDAD ANGULAR
6 8 10
-2
0
2
4
TIEMPO
VO
LT
AJE
DE
L M
OT
OR
VOLTAJE DEL MOTOR
6 7 8 9 10 11
-0.1
-0.05
0
0.05
0.1
0.15
X: 7.764
Y: 0.1893
TIEMPO
PO
SIC
ION
BO
LA
SEGUIMIENTO REFERENCIA
X: 10.19
Y: 0.1502
37
| ( ) |
( ) (14)
Y un error total de:
∑
(15)
Como se puede observar en la ecuación número 15, el error es tan mínimo que para este estudio
resulta despreciable. También cabe resaltar, partiendo de las gráficas del ángulo de la bola
observadas en todas las ilustraciones, que el sistema intenta cumplir la restricción del máximo
ángulo aunque está sobrepasando el límite superior llegando este a un valor de aproximadamente de
0.9345 rad que equivalen a 53 .
Con perturbaciones
Para las siguientes condiciones iniciales
[
] [
]
Y una referencia de
38
Ilustración 33 Verificación de las restricciones
Ilustración 34. Verificación de la estabilidad del sistema ante perturbaciones
Esta prueba se realizó básicamente con dos finalidades:
o Verificar la estabilidad del sistema ante perturbaciones como se puede observar en la
Ilustración 32, en donde por más que se perturbe, el sistema se mantiene estable.
o Resaltar el cumplimiento de las restricciones (ver Ilustración 33) donde se observa que no
sobrepasa los límites superior e inferior de los ángulos y que el voltaje no sobrepasa un
máximo de 15 v; cabe resaltar que no se utilizó un saturador.
105 110 115 120
-0.1
0
0.1
TIEMPO
PO
SIC
ION
DE
LA
BO
LA
POSICION DE LA BOLA
105110 115120
-0.5
0
0.5
TIEMPO
AN
GU
LO
DE
LA
BA
RR
A
ANGULO DE LA BARRA
105 110 115 120
-0.1
0
0.1
TIEMPO
Velo
cid
ad d
e la b
ola
VELOCIDAD DE LA BOLA
110 120
-4
-2
0
2
4
TIEMPO
VE
LO
CID
AD
AN
GU
LA
R
VELOCIDAD ANGULAR
105110 115120
-2
0
2
TIEMPO
VO
LT
AJE
DE
L M
OT
OR
VOLTAJE DEL MOTOR
104 106 108 110 112 114 116 118 120 122 124-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
X: 112
Y: 0.9342
TIEMPO
VE
LO
CID
AD
AN
GU
LA
R
VELOCIDAD ANGULAR
X: 119.3
Y: -0.7424
X: 114.4
Y: -0.7118
X: 106.1
Y: 0.9235
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000-0.2
-0.15
-0.1
-0.05
0
0.05
0.1
0.15
X: 2961
Y: 0.005655
TIEMPO
POSI
CIO
N BO
LA
SSEGUIMIENTO REFERENCIA
X: 9595
Y: 0.007056
39
Seguimiento de una señal periódica.
La señal periódica tiene las siguientes características:
Amplitud =
Periodo = 16 seg
Ciclo útil = 50%
Ilustración 35 Seguimiento de referencia
Como se puede observar en la Ilustración 33, el sistema está siguiendo a la señal deseada con un
tiempo de establecimiento de aproximadamente 4 seg y un sobrepico de 0.6 m, esto indica que la
velocidad de establecimiento no es la esperada (Ver sección 7).
Comparación con los resultados obtenidos con los resultados obtenidos en la tesis de
2008 [4]
En este apartado se realizará una comparación entre los resultados obtenidos en la tesis
desarrollada por Pablo Eduardo Ternera en donde utiliza varios métodos de control para el
Ball&Beam y los resultados obtenidos en esta tesis [4], en la cual se utilizó el controlador
MPC.
NOTA: Las graficas 39 a la 41 fueron tomadas de la referencia [4]
0 5 10 15-0.2
-0.1
0
0.1
TIEMPO
PO
SIC
ION
DE
LA
BO
LA
POSICION DE LA BOLA
0 5 10 15
-0.5
0
0.5
1
1.5
TIEMPO
AN
GU
LO
DE
LA
BA
RR
A
ANGULO DE LA BARRA
0 5 10 15-0.4
-0.2
0
0.2
TIEMPO
Velo
cid
ad d
e la b
ola
VELOCIDAD DE LA BOLA
0 5 10 15
-4
-2
0
2
4
TIEMPO
VE
LO
CID
AD
AN
GU
LA
R
VELOCIDAD ANGULAR
0 5 10 15
-2
0
2
4
TIEMPO
VO
LT
AJE
DE
L M
OT
OR
VOLTAJE DEL MOTOR
0 1000 2000 3000 4000 5000 6000 7000 8000 9000-0.2
-0.15
-0.1
-0.05
0
0.05
0.1
0.15
0.2
X: 3577
Y: 0.1075
TIEMPO
PO
SIC
ION
BO
LA
SSEGUIMIENTO REFERENCIA
X: 7231
Y: -0.1253
X: 1407
Y: 0.1732
X: 5514
Y: -0.1831
40
Ilustración 36. Controlador PD por realimentación de velocidad Ilustración 37. Señal real de voltaje aplicado al motor
Ilustración 38. Controlador por el método del lugar de las raíces Ilustración 39. Respuesta real del sistema por lugar raíces
41
Ilustración 40. Controlador por ubicación de polos en el Ilustración 41. Señal de control real ubicación de polos
espacio de estados
Ilustración 42. Controlador cuadrático lineal (LQR) Ilustración 43. Señal de control real del sistema óptimo
Cuadrático
42
Ilustración 44. Control Predictivo Basado en Modelos (MPC) Ilustración 45. Señal de control real para el MPC
Para esta comparación se tocarán cuatro puntos importantes:
El primero es el sobrepico, siendo este una de las debilidades de este controlador (MPC)
respecto a los demás, ya que para todas las respuestas, este controlador genera un gran
sobrepico, aunque es menor en los controladores PD por realimentación de velocidad y los
controladores por el método del lugar de las raíces, sin embargo, estos tienen como defecto
que el error a estado estable es mucho mayor.
El segundo punto es el error a estado estable, donde el controlador por ubicación de polos
tiene mejor comportamiento respecto a los demás controladores, sin embargo, el controlador
MPC presenta un error casi despreciable.
El tercer punto corresponde al tiempo de establecimiento en donde el MPC notablemente es
el más óptimo con un tiempo de estabilización de alrededor de 3 segundos, mientras que los
otros controladores se estabilizan en mayor tiempo: 4 segundos para el controlador PD por
realimentación de velocidad y 5 segundos para los controladores por el método del lugar de
las raíces, por el de ubicación de polos en espacio de estados y para el controlador
cuadrático lineal LQR.
Por último, el cuarto punto se refiere al análisis del consumo de energía, en donde
nuevamente el MPC es el más óptimo teniendo una señal de control mejor definida y con
sobrepico bastante pequeños respecto a los demás controladores utilizados en la tesis del
2008.
43
6.1 RAZONES DE POSIBLES DIFERENCIAS ENTRE LA TEORÍA Y LA PRÁCTICA
En esta sección se tratarán las posibles razones del por qué la práctica difiere con los resultados
teóricos obtenidos en este proyecto.
Los autores que desarrollaron el modelo matemático del Ball&Beam [4] no tuvieron ciertas
consideraciones como el torque que ejerce el brazo de palanca que está conectada al motor y
a la barra.
Ilustración 46. Brazo de palanca del Ball&Beam
Esto tiene como consecuencia que independientemente del ángulo de inclinación de la barra,
esta se mantendrá en equilibrio cuando no debería ser así. Debido a lo anterior, se tiene que
el punto de equilibrio estaría cuando la barra es paralela a la superficie a un voltaje aplicado
igual a 0, siendo que para que esto sea válido, se le debe aplicar aproximadamente 0.5 v al
motor.
Una de las razones de las posibles diferencias entre la teoría y la práctica es que el
coeficiente de fricción no es el indicado por el manual de Quanser o no se está teniendo en
cuenta la fricción que ejercen todo el sistema como tal. Esto se puede verificar con las
siguientes ilustraciones:
44
Ilustración 47. Respuesta del sistema a malla abierta
En las anteriores gráficas se muestran las respuestas del sistema a malla abierta con las
siguientes condiciones iniciales:
[
] [
]
Donde la gráfica azul corresponde a la simulación del sistema y la verde corresponde a la
planta real. Estas ilustraciones muestran el tiempo que tarda la bola en llegar de un extremo
de la barra al otro (de 0.2 m a -0.2 m) con un ángulo de inclinación de 45 . En la figura de la
simulación se aprecia que el tiempo que tarda la bola en llegar al otro extremo es de
aproximadamente 1.5 seg, mientras que el tiempo que demora la bola en llegar de un
extremo a otro en la planta real, es de aproximadamente 3 seg. De estos resultados se puede
demostrar cómo el coeficiente de fricción del sistema debe ser mucho más grande que el
coeficiente especificado en el manual de Quancer; de ser verdad este postulado, esta sería la
razón más importante por la cual el tiempo de establecimiento de la planta real difiere tanto
con el tiempo de establecimiento encontrado en las simulaciones.
Existieron algunos inconvenientes con el desarrollo de la tabla que se utilizó para entrenar la
red neuronal, estos pudieron ser causantes de las diferencias entre los resultados prácticos
con los resultados teóricos:
o Las simulaciones que se desarrollaron para obtener la tabla se hicieron trabajando al
límite de las restricciones sin darle un poco de tolerancia como debió haberse hecho, por
lo tanto generar una tabla trabajando con estos parámetros pudo tener como
consecuencia en las pruebas que no se cumplieran las restricciones de forma completa
como era el objetivo.
45
en V
en Rad (16)
en m
o Otra posible razón por lo cual la planta real no cumple por completo las restricciones es
debido a un error de Matlab, en donde al crear la tabla de datos, genera un pequeño
sobrepico para algunas simulaciones. Estos sobrepico se muestran en la siguiente
ilustración:
Ilustración 48. Simulaciones de ángulo de la barra para generar la tabla
Por ultimo cabe mencionar una de las razones más importantes y es la red neuronal. Como se
mencionó anteriormente, una red neuronal genera una aproximación del comportamiento de
un sistema a partir de ciertos valores, luego esa aproximación posiblemente no fue lo
suficientemente exacta como para generar los resultados esperados o en su defecto, no se
entrenó a la red con la suficiente cantidad de valores.
46
7. CONCLUSIONES
Al utilizar el modelo no lineal de la planta se garantizó que el sistema real trabajara alrededor de
todos los puntos de operación y no en un pequeño rango como lo hubiera sido al emplear la
planta linealizada. Además, trabajando de esta manera, se garantizó una mayor similitud entre el
modelo matemático con la planta real, lo que implica una mayor aproximación entre los valores
obtenidos teóricamente y los valores adquiridos de forma práctica. Como se puede ver, alrededor
de todo el desarrollo de este proyecto no se tuvieron en cuenta algunas consideraciones como las
fricciones de la barra y el torque que ejercía el brazo de palanca sobre el motor, y se hicieron
algunas aproximaciones como la implementación de una red neuronal para que se comportara
como el controlador diseñado en ACADO y la cantidad de datos limitada con la que se entrenó
esta red.
A pesar de estas aproximaciones, en el momento de realizar las pruebas se pudo observar
satisfactoriamente que las restricciones se estaban cumpliendo con un pequeño margen de error;
esto fue uno de los logros más importantes ya que una de las razones por las cuales se escogió
diseñar un control óptimo era garantizar que se cumplieran los parámetros que se imponen, bien
sea como restricciones del usuario o como restricciones intrínsecas debido a la naturaleza del
sistema. Esto se puede validar con la ilustración 31, en donde el ángulo de deflexión del riel se
saturaba alrededor de los 45 pero para el caso positivo (45 ), el riel se está saturando
alrededor de los 53 lo que equivale a tener un margen de error de aproximadamente el 7%. Este
error se pudo dar por dos razones: la primera es que la red neuronal no quedo bien entrenada
para esos valores superiores, en segundo lugar, se cree que pudo ser simplemente que el encoder
del motor no se encontraba bien referenciado.
El buen desempeño del sistema se puede observar en la comparación del controlador
implementado en este proyecto con los controladores utilizados en la tesis del 2008 [4], ya que
se obtuvo una mejor respuesta para la mayoría de los casos. El consumo de energía fue menor
que el de todos los controladores con los que fue comparado. A pesar de que se tuvo un pequeño
error a estado estable que, debido a su magnitud tan pequeña fue casi despreciable, se cumplió
así con un mínimo error en un tiempo final. Con estos resultados se pudo validar el buen
desempeño que tiene el controlador con esta planta, ratificando por qué el control MPC está
siendo implementado cada día más.
Para posibles trabajos relacionados con este tema es importante tener en cuenta las razones por
las cuales el resultado teórico difiere del resultado práctico para que se pueda tomar una acción
correctiva. Una de las razones y en mi opinión, una de las más importantes a tener en cuenta, es
desarrollar nuevamente el modelo matemático de las plantas de Quancer sin despreciar los
parámetros que no parecen tan relevantes como la fricción y el torque que ejercía el brazo de la
palanca sobre el motor, por que como se pudo observar, al despreciar estos parámetros, la
diferencia de tiempos en que el sistema simulado y planta real se estabilizaban es de 1 o más
segundos dependiendo de las condiciones iniciales. Además del sobrepico tan alto que se genera
debido a la acción correctiva que tiene que tomar el sistema. Otra razón igual o más importante
que la anterior, es generar un controlador ON-LINE, ya que como se pudo observar, debido a
las complicaciones de implementarlo, se tuvo que realizar uno OFF-LINE (red neuronal) lo que
47
conllevó nuevamente a tener que realizar una serie de aproximaciones amplificando las
diferencias entre el controlador teórico y el controlador práctico. Este problema se puede
solucionar realizando una interface entre el software ACADO y simulink con funciones o
bloques compatibles a los que tiene Matlab para poder trabajar en tiempo real, o por otro lado
usar otro software diseñado específicamente para tratar con este tipo de requerimientos.
48
8. BIBLIOGRAFÍA
[1] J. A. Rossiter, Model-based predictive control: a practical approach. CRC Press, 2003.
[2] E. F. Camacho and C. Bordons, Model predictive control, Segunda ed. Springer, 2004, p. 405
[3] Quanser, “BB01 User Manual - SRV02 Ball&Beam,” p. 20.
[4] P. E. Ternera, “Diseño de sistemas de control para un modelo de control Ball & Beam,” Control,
2008.
[5] J.S. Bay, Fundamentals of Linear State Space Systems, New York: WCB/McGraw-Hill, 1999.
[6] C.-T. Chen, Linear Systems Theory and Design, Oxford University Press, 1999.
[8] Katholieke Universiteit Leuven, “OPTEC - Katholieke Universiteit Leuven,” 2005. [Online].
Available: http://www.kuleuven.be/optec/software/. [Accessed: 19-Aug-2011].
[9] Z. Xi and T. Hesketh, “Ball and Beam System - Nonlinear MPC Using Hammerstein Model,”
2007 2nd IEEE Conference on Industrial Electronics and Applications, p. 5, May. 2007.