Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Pendulo PDF
Pendulo PDF
Sebastian Mallo
Virginia Mazzone
Resumen iii
Introduccion vii
0.1 Formulacion del Problema y Objetivos . . . . . . . . . . . . . . . . . . . . . . . vii
0.2 Contenido del Informe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
6 Conclusiones 47
Bibliografa 55
Introduccion
m, g
z
y I, l
r
x
a
Dado que nuestra Universidad no cuenta con un Pendulo Invertido Rotante, por su alto
costo, nos propusimos como objetivo del trabajo, la construccion del mismo. Mientras
que la especificacion de diseno de los controladores que nos propusimos, es mantener la
barra, de ahora en mas pendulo, en forma vertical mediante la aplicacion de una fuerza
en el brazo. Este proceso se ve intuitivamente a traves del ejemplo de tratar de mantener
una escoba en forma vertical con una mano. Una especificacion secundaria es controlar
el brazo en una posicion determinada. Estos objetivos fueron alcanzados implementando
los controladores por medio de una PC.
El proceso de diseno de un sistema de control requiere de los siguientes pasos, segun
[4]:
Sistema fisico
- Actuador Sensores
Controlador
1.1 Controlador
La implementacion del controlador la realizamos a traves de una PC, la cual cuenta con
una placa adquisidora de datos, que es nuestro nexo entre la PC y el sistema real. El
conjunto de programas que utilizamos para el manejo de la placa adquisidora y para la
simulacion e implementacion de los controladores en la PC son el Real Time Workshop,
Real Time Windows Target [9], M ATLAB y S IMULINK. En el diagrama en bloques de la
Figura 1.2 se sintetiza la implementacion del controlador.
Placa de - Actuador
Sensores -
Adquisicion de Datos
6
?
Driver
6
?
Programa de
Simulacion y
Control
CONTROLADOR
Real Time Windows Target. Es un programa que permite ejecutar programas, com-
pilados en lenguaje C a traves del Real Time Workshop, en una PC bajo sistema
operativo Windows en tiempo real.
de bajo costo, cuenta con los requisitos que demanda nuestro proyecto, veamos algunas
de sus principales caractersticas:
8 entradas digitales.
8 salidas digitales.
Driver La forma en la que interactua esta placa con los distintos programas es a traves de
registros o direcciones de memoria de la PC. Las distintas funciones de la placa se efectuan
por medio de operaciones de lectura y escritura en dichas direcciones. Las secuencias de
lectura y escritura sobre estas direcciones de memoria se realizan a traves de un programa
denominado driver.
1.2 Actuador
A continuacion citamos algunas de las caractersticas principales del motor de corriente
continua que, como mencionamos anteriormente, es quien proveera el movimiento del
brazo:
Sin escobillas.
Puente
H
Generador
-
PWM
-
On/Off M
Bloque
PC
- Dir
u(t)
umax
umax
si u(t) > umax , umin
u(t) = sat(u(t))) = u(t) si umin u(t) umax , umax u(t)
umin si u(t) > umin .
umin
La senal maxima de actuacion umax es 15V y la mnima umin es 15V, si bien la tension
nominal del motor es 24V. Elegimos este valor de tension ya que en las simulaciones
previas el valor de tension en el regimen permanente rondaba los 2V. Si utilizamos como
tension maxima los 24V, debido a la discretizacion de la placa de adquisicion de datos, la
24
mnima actuacion es de 255 = 0.0941. Es decir, en el rango 2V tendremos 42 niveles de
actuacion distintas, en cambio, si tomamos como actuacion maxima 15V aumenta a 68.
Con este razonamiento, una pregunta sera por que no bajar mas la tension. El problema
se presenta cuando, a menor tension, el motor se mueve con menos velocidad, no teniendo
la suficiente reaccion.
1.3 Sensores 5
1.3 Sensores
Como vimos anteriormente, las variables del sistema que debemos medir son el angulo del
brazo y el angulo del pendulo. En cada uno de los casos utilizamos metodos de medicion
diferentes, por lo tanto veamos a cada uno en forma separada.
La descripcion detallada de los sensores la encontramos en A.3.
Medicion del Angulo del Brazo En este caso utilizamos un encoder incremental. Una de
las ventajas de este tipo de sensor de angulo, es que el rango de medicion es ilimitado.
Mientras que la mayor desventaja es que los pulsos entregados por el encoder son de alta
frecuencia, por lo tanto es posible que al contarlos se pierdan pulsos. La logica encargada
de contar los pulsos fue implementada en la PC, utilizando dos entradas digitales de la
placa adquisidora para leer los pulsos del encoder.
Medicion del Angulo del Pendulo El sensor que utilizamos es un sensor magnetico, estos
sensores usan la propiedad por la cual un material magnetico cambia su resistencia en
presencia de un campo magnetico.
Angulo real
Angulo medido
El ruido por lo general es de alta frecuencia por lo que antes de realizar la medicion
filtramos la senal con un filtro pasabajos.
El problema de la cuantificacion lo podemos ver en el encoder. Como podemos ver en
A.3, cada pulso entregado por el encoder representa un movimiento de 0.0012 radianes,
lo que hace imposible medir una variacion de angulo menor a ese valor.
6 Descripcion del Sistema
El sensor del pendulo, nos entrega una tension de 0-5V correspondiente a una varia-
cion de angulo de 18o (ver A.3). Al ser el conversor de la placa adquisidora de 8 bits,
este sensa solamente 256 niveles de tension distintos. Por lo que la mnima variacion de
18o
angulo que sensara sera 256 , en radianes 0.0024.
Captulo 2
con
(t) (t)
q(t) = y q(t) = (2.2)
(t) (t)
Las ecuaciones de Euler-Lagrange en notacion vectorial estan definidas como
d L L
= f, (2.3)
dt q q
8 Modelizacion Matematica del Sistema
z m, g
: angulo entre el pendulo y la vertical
: angulo de giro del brazo
m: masa del pendulo
y l: longitud del pendulo
I: inercia del brazo
x l r: radio de giro del brazo
r,
I
g: gravedad
1 2
Ecin1 = I . (2.5)
2
Centro de masa del pendulo: Para calcular la energa cinetica total absoluta del
centro de masa del pendulo, debemos considerar ambos movimientos, en direccion
vertical y horizontal.
A la componente horizontal de la velocidad del centro de masa contribuye la rotacion
del brazo, es decir
vm,h = r + l cos ,
vm,v = l sin .
2.1 Ecuaciones de movimiento del pendulo invertido 9
1
L(q(t), q(t)) = [ I2 + ml 2 + r2 m2 + 2rlm cos ] mgl cos ,
2
que podemos escribir en forma matricial como
ml 2
1 mrl cos
L(q(t), q(t)) = mgl cos
2 mrl cos I + mr2
1
= qT M(q)q E pot ,
2
donde la matriz M(q) se llama matriz de masa generalizada y q y q vienen dadas por (2.2).
Si derivamos el Lagrangiano respecto de q, y luego respecto de q, tenemos que
L
= M(q)q (dado que la matriz M es simetrica) y
q
L 1 M(q) E pot
= qT q .
q 2 q q
Si ahora derivamos la derivada del Lagrangiano respecto de t, utilizando la regla del pro-
ducto, obtenemos
d L
d
= M(q)q + ( M(q) q.
dt q dt
Notemos que
M(q)
d
( M(q)) q qT q.
dt q
1 M(q) E pot
M(q)q + q T q + = f , (2.7)
| {z } 2 q q |{z}
1 | {z } | {z } 4
2 3
2. termino de coriolisis
3. termino gravitacional
1 T M(q) E pot
1
q = M (q) q q +f
2 q q
(2.8)
E pot
1 1 d
= M (q) M(q) q +f
2 dt q
Notemos que det M 6= 0, por lo que la matriz M es invertible.
Escribimos la ecuacion (2.8) reemplazando a M, a q y q por la matriz y los vectores
correspondientes, quedando as
1
ml 2
mrl cos 1 0 mrl sin mgl sin f
= +
mrl cos I + mr2 2 mrl sin 0 0 f
(2.9)
= K i (2.10)
e = Ke (2.11)
J + b = Ki (2.12)
Li + Ri = v K (2.13)
2.3 Representacion en Modelo de Estado 11
K K2
(t) = v(t) (t). (2.14)
R R
x = f ( x, u), (2.15)
0 0 0 0 0 f
y ahora el sistema del pendulo sobre un brazo giratorio esta escrito de la forma (2.15),
donde x R4 y u R.
Por lo que el modelo (2.18) se aproxima con una ecuacion de estado lineal de la forma
donde
f f
A(t) = ( x(t), u(t)), B(t) = ( x(t), u(t)). (2.19)
x u
Notemos que el sistema lineal (2.19) resulta inestacionario cuando se trata de una
trayectoria nominal, cuando se trata de un punto de operacion, el sistema lineal resulta
estacionario, es decir A(t) = A y B(t) = B .
La trayectoria de operacion que nos interesa en nuestro sistema es el punto de equi-
librio del mismo. Un punto x = xeq en el espacio de estado es un punto de equilibrio de
(2.15) con u(t) = 0, si tiene la propiedad de que cuando el estado inicial del sistema es xeq ,
el estado permanece en dicho punto en todo tiempo futuro [5].
Buscamos entonces xeq tal que xeq = f ( xeq , 0) = 0, as
0 = x3
0 = x4
2
( I + mr2 )( 21 mrlx3 x4 sin x1 + mgl sin x1 + bs x3 ) r cos x1 ( 12 mrlx23 sin x1 + KR u KR x4 )
0 =
ml 2 ( I + mr2 mr2 cos2 x1 ) l ( I + mr2 mr2 cos2 x1 )
2
1
mrlx23 sin x1 + KR u KR x4 r cos x1 ( 12 x3 x4 sin x1 + mgl sin x1 + bs x3 )
0 = 2
I + mr2 mr2 cos2 x1 l (( I + mr2 mr2 cos2 x1 )
y despejando, obtenemos que el punto de equilibrio resulta
xeq = 0 x2 0 0 x2 R
ueq = 0.
2.5 Representacion Entrada-Salida 13
0 0 1 0
0
f 0 0 0 1 f 0
A= = ( I +mr2 ) g B= =
( I +mr2 )b rK 2
x x=xeq Il u x=xeq rK
s
0
ml 2 I l IR l IR
2 K
rmg
I 0 rbl Is KIR IR
Dado que las salidas del sistema son y , definimos las matrices
1 0 0 0 0 0
C= y D= ,
0 1 0 0 0 0
x = Ax + Bu
(2.21)
y = Cx + Du
Si despejamos X (s) de la primer ecuacion y suponemos que las condiciones iniciales son
nulas, x(0) = 0, y la reemplazamos en la segunda, obtenemos la matriz transferencia
En nuestro sistema, dado que la matriz A es de cuarto orden, resulta complejo calcu-
lar (sI A)1 . Por eso utilizaremos una simplificacion del modelo lineal, bajo algunas
condiciones sobre nuestras variables que detallaremos.
14 Modelizacion Matematica del Sistema
( I + mr2 ) g ( M + m) g rmg mg
a31 = = y a41 = = . (2.23)
Il Ml I Mr
g mg
Si tenemos en cuenta que M m, entonces a31 = y a41 = 0, por lo que el modelo
l Mr
(2.20) se reduce a
0 0 1 0 0
0 0 0 1 + 0 u,
K2 K
= con = y= . (2.24)
g/l 0 0 r /l r/l 2
Mr R Mr2 R
0 0 0
| {z } | {z }
A B
Calculamos ahora la matriz transferencia (2.22) para el sistema (2.24). Para ello pri-
mero calculamos
1
s 0 1 0
0 s 0 1
(sI A)1 =
g/l 0 s r /l
0 0 0 s +
2
s (s + ) 0 s(s + ) sr /l
1 0 (s + )(s2 g/l ) 0 s2 g/l
=
2
2
s(s + )(s g/l ) s(s + ) g/l
0 s (s + ) s2 r /l
0 0 0 s(s2 g/l ).
De donde
s r/l
(s) (s + )(s2 g/l )
Y (s) = =
U (s). (2.25)
(s)
s(s + )
l = 0.3 [m]
r = 0.27 [m]
M = 0.5 [kg]
m = 0.05 [kg]
2.7 Ajuste de los Parametros en forma Aproximada 15
g = 9.8 [m/seg2 ]
Los parametros relacionados con el motor, R y K, no los conocemos. Motivo por el cual es-
timaremos es forma aproximada utilizando un metodo iterativo, previamente verificamos
su funcionamiento en simulacion. En esta seccion describiremos los pasos que seguimos
para ajustar los parametros del modelo.
Bajo las consideraciones detalladas en 2.6 para obtener el modelo simplificado, vemos
que el motor se comporta independientemente del pendulo. Por lo que estimaremos los
valores de y solo con el motor. Para ello procedimos de la siguiente manera:
(s)
= . (2.26)
U (s) s(s + )
3. Dimos valores a y a hasta lograr una salida que comparandola con las muestras
obtenidas tenga un error aceptable.
4. La Figura 2.3 muestra el resultado obtenido mediante simulacion del sistema (2.26),
con
= 11.8
= 9.8
1.4
Datos Simulados
1.2 Datos Reales
0.8
Radianes
0.6
0.4
0.2
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Tiempo
Por lo tanto queda as definido el sistema (2.24) por todos sus parametros como ecua-
cion de estado
0 0 1 0 0
0 0 0 1
+ 0 u
=
32.66 0 0 10.62 8.82
0 0 0 11.8 9.8
(2.27)
1 0 0 0
y=
0 1 0 0
8.82s
(s) s2 32.66)
= (s + 11.8)( U (s).
(s) 9.8
s(s + 11.8)
Captulo 3
R(s) + Y (s)
d - j- K1 (s) + j- K (s) -. G2 (s) . .
G1 (s) -d
- 2 -
6 6
Lazo secundario
Lazo primario
T2 (s)
Si pensamos nuestro problema como si fuera SISO, tomando como entrada U (s) y sa-
lida (s), donde ademas medimos el angulo del pendulo (s), podemos reescribir nuestro
sistema como muestra la Figura 3.2, teniendo en cuenta (2.25).
U (cs) - 2 (s)
r/l s - (s g2/l ) -c
(s2 g/l )(s+ ) r/l s
-(sc)
Figura 3.2: Diagrama de bloques del pendulo como si fuera un sistema SISO
2. Lazo primario. Una vez disenado K2 (s) para estabilizar el angulo del pendulo (s),
el controlador primario K1 (s) puede disenarse tomando como planta equivalente
T2 (s) G1 (s), donde
(s2 g/l )
G1 (s) = .
r/l s2
Las cuatro funciones de sensibilidad asociadas al lazo de la Figura 3.3 vienen dadas por
y donde el polinomio Alc (s) , A(s) L(s) + B(s) P(s) se llama polinomio caracterstico a lazo
cerrado.
Di ( s ) Do ( s )
R ( s )- j - U (s-) ?
j - G (s) - j Y(s)
?
K (s) -
6
j
6
Dm ( s )
Nuestro objetivo es ver bajo que condiciones dados B(s) yA(s), que definen nuestra
planta, se pueden disenar P(s) y L(s) tal que el polinomio caracterstico a lazo cerrado sea
Alc (s). El siguiente lema resume estas condiciones (demostracion ver [3]).
Notemos que si elegimos Alc (s) estable 3 , y si ademas no existen cancelaciones inesta-
bles entre el controlador K (s) y la planta G (s), el lazo de la Figura 3.3, resulta internamente
estable, es decir que las funciones de sensibilidad (3.2) a (3.5) son estables.
P2 (s)
Volvamos a nuestro problema, disenar K2 (s) = L2 ( S)
tal que estabilice el lazo tomando
que ppara que podamos realizar la cancelacion estable, debemos asegurar que P2 (s) =
(s + g/l )(s + ) P2 (s), por lo que P2 (s) = p0 , con p0 R, ya que P2 (s) tienen grado 2 . De
esta forma la ecuacion diofantina que nos queda es
q
Alc (s) = p0 (r/l s) + (s2 + l1 s + l0 )(s g/l ). (3.7)
|{z} | {z }
P2 (s) L2 (s)
Respuesta al escalon Definamos los parametros que describen las propiedades rele-
vantes de la dinamica de los sistemas 5 , considerando como respuesta al escalon la Figura
3.4
y + ysob
y +
y
kr y y
0
ysub
tc tp te
Tiempo
Sobrevalor, ysob : el maximo valor por el que la respuesta el escalon excede su valor
final. Generalmente se expresa como un porcentaje de y .
subvalor, ysub : el maximo (valor absoluto) por el que la respuesta al escalon pasa por
debajo del cero.
Veamos el siguiente resultado, que no vamos a demostrar, para mas detalles ver [8].
Corolario 1. [Polos inestables reales y sobrevalor]. Si la planta tiene un polo inestable real
en p > 0, su respuesta al escalon tiene forzosamente sobrevalor. Mas aun, si tc es el tiempo
de crecimiento del sistema a lazo cerrado, entonces se cumple que
( ptc 1)e p tc + 1 ptc
ysob .
ptc 2
Sigue del Corolario 1 que si la planta tiene un polo inestable:
necesariamente hay sobrevalor en la respuesta al escalon
el sobrevalor sera mayor cuanto mayor sea el tiempo de respuesta del lazo cerrado.
Es decir los polos inestables demandaran accion de control rapida para un mejor desem-
peno (menor sobrevalor). Cuanto mayores (mas rapidos) sean los polos inestables, mayor
sera esta demanda.
En conclusion podemos extraer la siguiente regla practica de diseno para evitar gran-
des sobrevalores.
22 Diseno de Controladores y Simulacion
El polo dominante a lazo cerrado debe ser mayor (en magnitud) que cualquier
polo inestable a lazo abierto del sistema.
p
Dado que nuestro sistema G2 (s) tiene un polo inestable en g/l = 5.7154, elegiremos
como frecuencia de corte del sistema a lazo cerrado algun valor un poco mayor para hacer
la accion de control rapida. Utilizamos los valores de los parametros descriptos en la
seccion 2.7, donde
8.82s
G2 (s) = .
(s + 11.8)(s2 32.66)
Propusimos tres polos rapidos para la eleccion del Alc (s) tal que la frecuencia del lazo
sea mayor que el polo inestable. Los polos propuestos son p=[-14 -13 -12], es decir,
Alc (s) = s3 + 39s2 + 506s + 2184, con el que resolvimos la ecuacion (3.7) dando como resul-
tado el controlador
129.67(s + 11.8)(s + 5.715) 1143.7s
K2 (s) = , y T2 (s) = .
(s + 52)(s 7.341) (s + 14)(s + 13)(s + 12)
1
ysub .
eqte
1
La interpretacion del Corolario 2, es que si la planta tiene un cero real de fase no
mnima
el pico del subvalor sera mayor cuanto menor sea el tiempo de establecimiento del
lazo cerrado.
Es decir, los ceros de fase no mnima demandaran accion de control lenta para un
mejor desempeno (menor subvalor). Cuanto menores (mas lentos) sean los ceros de fase
no mnima, mayor sera esta demanda.
En conclusion podemos extraer la siguiente regla practica de diseno para evitar gran-
des subvalores.
El polo dominante a lazo cerrado debe ser menor (en magnitud) que el menor cero
de fase no mnima del sistema.
En la Figura 3.6, vemos el lugar de races, obtenido con el comando rlocus de M ATLAB,
de G1 (s) T2 (s). Este grafico muestra donde se ubicaran los polos cuando realimentamos
solo con una ganancia proporcional. Como podemos apreciar, existen valores de ganancia
tal que los polos se ubiquen todos en el semiplano izquierdo.
Para encontrar un valor de ganancia tal que estabilice el lazo cerrado, utilizamos el
comando rlocfind(G2T2) que nos permite encontrar ganancias en un lugar de races en
forma interactiva. De esta forma vimos que tomando K1 (s) = 0.02, los polos a lazo cerrado
resultan las cruces, +, de la Figura 3.6. Por lo que la transferencia a el lazo cerrado
resulta
25.41(s2 32.66)
T1 (s) = .
(s + 20)(s + 0.35)(s2 + 17.7s + 95.05)
3.1.3 Simulacion
En esta seccion tomamos los controles K1 (s) y K2 (s) y los implementamos en S IMULINK
para analizar el desempeno obtenido. Simular dichos controladores con el sistema lineal
tal como los calculamos, 3.1, sabemos que se comporta de forma deseada. Pero ahora
mostramos los resultados que obtenemos si tomamos el sistema no lineal, descripto por
(2.17) y tomando en cuenta las limitaciones de los sensores y del actuador. En la Figura
3.8, mostramos el diagrama de bloques que implementamos para la simulacion, donde el
bloque Alinealidades representa, en forma aproximada las perturbaciones del motor: la
24 Diseno de Controladores y Simulacion
10
2
Imag Axis
10
15 10 5 0 5 10 15 20
Real Axis
friccion estatica (Figura 3.7) y el juego en el eje del motor ( 1o ). El bloque K1d es el control
K1 (s) discretizado con un tiempo de muestreo T = 0.02 y como condicion inicial tomamos
todos las variables de estado en cero salvo = 0.05 rad. Los valores de las alinealidades
las obtuvimos comparando el sistema real con el simulado, y as ajustamos el valor de la
friccion estatica.
(t)
0.15 (t)
La Figura 3.9 muestra los resultados obtenidos luego de simular el lazo cerrado duran-
te 20 segundos. En el grafico de la izquierda mostramos la comparacion entre la posicion
del brazo sin tener en cuenta el rozamiento estatico ni el juego del motor (las alinealidades)
con el que s las tiene en cuenta. A la derecha vemos que estas alinealidades no afectan
tanto a la posicion del angulo.
3.1 Control en Cascada 25
Discretizacio Tita
Discretizacion
de la Actuacion tita
.1 K2d u Tita
Step3 K1 K2 Saturacion psi In1 Out1
de la actuacion
Pendulo no lineal1 Discretizacin Psi Psi
Alinealidades
0.12 0.06
con alinealidades sin alinealidades
sin alinealidades con alinealidades
0.1 0.05
0.04
0.08
0.03
0.06
0.02
Posicin [rad]
Posicin [rad]
0.04
0.01
0.02
0
0
0.01
0.02
0.02
0.04 0.03
0.06 0.04
0 2 4 6 8 10 12 14 16 18 20 0 2 4 6 8 10 12 14 16 18 20
Tiempo [seg] Tiempo[seg]
r u
- i- B
x R S x
- i - S -C
y-
6 6
A
K
La substitucion de (3.11) en (3.10), da lugar al lazo cerrado del sistema, cuyo modelo
de estado viene dado por
x(t) = ( A BK ) x(t) + Br(t)
(3.12)
y(t) = Cx(t).
Para utilizar esta tecnica estamos suponiendo que todas las variables de estado estan
al alcance para medirlos. Pero en realidad no es as, en esta seccion detallaremos como
podemos calcular la matriz de realimentacion K para que la dinamica del sistema a lazo
cerrado se comporte de una determinada manera. Veremos tambien bajo que condiciones
esto ocurre y que hacer en aquellos casos donde no podemos medir todas las variables de
estado.
El siguiente Teorema afirma bajo que condiciones existe una matriz K tal que la reali-
mentacion de estado con dicha matriz ubique los autovalores del sistema a lazo cerrado
donde queramos (demostracion ver [2]).
3.2 Control por Realimentacion de Estado 27
C = B AB . . . An1 B
Ahora solo nos resta verificar si nuestro sistema es controlable para poder elegir K.
Para ello tomemos el sistema (2.27), y calculamos
rango C = rango B AB A2 B A3 B = 4,
donde Q y R son matrices constantes que ponderan las variables de estado y la actuacion
respectivamente. Como el criterio se basa en funcionales cuadraticos, recibe el nombre
de regulador lineal cuadratico (LQR). El funcional J puede interpretarse como el costo total
de la transicion de las variables de estado de un punto a otro.
Obtener la matriz K, minimizando el funcional (3.13) analticamente no es tarea facil,
ver [1], pero M ATLAB cuenta con la funcion K=lqr(A,B,Q,R). Para ello es necesario ajustar
Q y R hasta obtener el desempeno deseado.
Para nuestro diseno tomamos
100 0 0 0
0 1 0 0
Q= 0 0 1 0
y R = 10,
0 0 0 1
A y B de (2.27) y obtuvimos
K = 24 0.3 3.8 2.4 (3.14)
x a = r y = r Cx,
r - i- R Sx-
S
a
K - iu- B x R S x
- i - S -C
y-
a
6
6 6
A
K
Para saber si podemos disenar K Ka para que (3.15) sea estable veamos el siguiente
teorema:
En la seccion 3.2.1, vimos que nuestro sistema es controlable, es decir que rango C = 4
y si tomamos como salida , que es quien queremos que siga la referencia constante, G (s)
no tiene ceros en el origen, ver (2.25). Para calcular las ganancias K y Ka utilizamos el
comando [K,Ka]=lqr(Aa,Ba,Qa,R), donde
100 0 0 0 0
0 1 0 0 0
A 0 B
Aa = , Ba = , Qa =
0 0 1 0 0 y R = 10.
C 0 0 0
0 0 1 0
0 0 0 0 1
(k + 1) (k)
T (3.17)
(k + 1) (k)
T
donde T es el perodo con el cual la PC toma los datos y la diferencia corresponde a dos
mediciones consecutivas. Esta forma de estimar las variables de estado es muy sencilla
de implementar en S IMULINK, como vemos en la Figura 3.12, pero para que esta estima
sea buena, T tiene que tomar valores pequenos.
Tita
1 1/T 1
Tita P
1 Gain
z
Unit Delay
Quedando de esta forma un control que en lugar de ser estatico 7 es dinamico (o con
memoria).
donde y(t) es la salida que se obtiene de las variables de estado estimados. Si inyectamos
al sistema (3.18) una senal de correccion L( y(t) C x), donde L es una matriz de ganancia
7
que depende en forma instantanea de las variables de estado
30 Diseno de Controladores y Simulacion
constante, de forma tal que si no hay error no debemos corregir nada, pero si hay error,
una eleccion apropiada de L puede hacer que el error de estimacion tienda asintoticamente
a cero. La Figura 3.13 muestra el observador que explicamos, donde las ecuaciones vienen
dadas por
x (t) = A x(t) + Bu(t) + L( y(t) C x(t))
(3.19)
= ( A LC ) x(t) + Bu(t) + Ly(t).
Definamos x(t) = x(t) x(t) como el error de estimacion. Si calculamos x (t) y reem-
plazamos (3.10) y (3.19) vemos que x (t) = ( A LC ) x(t), donde los autovalores de ( A LC )
son los que gobiernan la dinamica del error de estimacion. Si pudieramos elegir L tal que
( A LC ) tenga autovalores negativos, estaramos afirmando que el error de estimacion
tiende asintoticamente a cero.
u - B
x R S x
- i - S -C
y-
6
A
B
x x
R i
?
L
S
S 6
- A LC
3.2.5 Simulacion
En esta seccion describiremos las simulaciones realizadas utilizando el programa S IMU -
LINK . Implementamos al sistema utilizando las ecuaciones no lineales (2.17) en diagrama
de bloques y agregamos las alinealidades y limitaciones descriptas en el Captulo 1 para
que se aproxime en mejor forma al sistema real.
En primer lugar simulamos el sistema suponiendo que las variables de estado estan
al alcance de ser medidos, utilizando el control por realimentacion de estado (3.14). Lue-
go comparamos el desempeno realimentando las variables de estado estimados con los
observados. Una vez que decidimos cual es el mejor metodo, realizamos pruebas de se-
guimiento a referencias y robustez.
El periodo de muestreo utilizado en todas las simulaciones es T = 0.01 y tomamos
como condiciones iniciales (0) = 0.05, (0) = 0, (0) = 0 y (0) = 0.
Realimentacion de Estado
En la Figura 3.14, mostramos la implementacion en diagrama de bloques de S IMULINK
utilizado, y la Figura 3.15 los resultados obtenidos de la simulacion, suponiendo que las
cuatro variables de estado son medidos.
24
KTita
Actuacin
.3
KPsi
tita
Pendulo no lineal
2.4
K TitaP
3.8
K Psip
0.16 0.06
0.14 0.05
0.12
0.04
0.1
0.03
0.08
Posicin [rad]
Posicin [rad]
0.06 0.02
0.04
0.01
0.02
0
0
0.01
0.02
0.04 0.02
0 2 4 6 8 10 12 14 16 18 20 0 2 4 6 8 10 12 14 16 18 20
Tiempo [seg]
Tiempo [seg]
24
KTita
Actuacin
.3
KPsi
tita
u
Dsicretizacion Tita Tita
K TitaP
Estmador velocidad base
K Psip
Estmador velocidad Pendulo
24
KTita
Actuacin
.3
KPsi
tita
K TitaP
Estmador velocidad base
K Psip
Estmador velocidad Pendulo
0.06
0.15
Posicin del pndulo con Observador
Posicin del Brazo con Observador Posicin del pndulo con Estimador
Posicin del Brazo con Estimador
0.04
0.1
0.02
0.05
Posicin [rad]
Posicin [rad]
0
0.02
0.05
0.04
0.1 0.06
0 2 4 6 8 10 12 14 16 18 20 0 2 4 6 8 10 12 14 16 18 20
Tiempo [seg]
Tiempo [seg]
mas informacion del sistema para estimar las variables de estado. Para terminar de
confirmar esto, veamos en la Figura 3.19, ambas acciones de control. Para tener una idea
de la potencia consumida por el motor calculamos la sumatoria del valor absoluto de la
actuacion en el intervalo simulado, dando 577 para el caso del observador y de 1678 para
el estimador.
15
Actuacin con observador
Actuacin con estimador
10
5
Tensin [Volts]
10
15
0 2 4 6 8 10 12 14 16 18 20
Tiempo [seg]
Seguimiento a Referencias
Uno de los objetivos basicos en el control es el de seguimiento de la salida a senales de re-
ferencias. En nuestro caso esta referencia es sobre la posicion del angulo del brazo. Para
la simulacion, utilizamos el sistema a lazo cerrado, estimando las velocidades angulares
con el observador calculado en 3.2.3. En la Figura 3.20 comparamos los resultados obte-
nidos cuando ponemos una referencia constante re f = 6 rad y tomamos la ganancia (3.16),
utilizando realimentacion de estado con ganancia de precompensacion 8 por un lado, y el
esquema de accion integral que mostramos en 3.2.2 por el otro.
Como dijeramos en 3.2.2, el esquema de accion integral es robusto frente a pertur-
baciones constantes. En la Figura 3.21 mostramos como se comporta un lazo con y sin
accion integral, donde perturbamos (corrimos el cero) al angulo del pendulo con 0.2 rad.
8
El sistema tiene una ganancia estatica no nula, lo que implica que en el regimen permanente tendera a
este valor. Si ubicamos una ganancia delante del lazo cerrado con la inversa de la ganancia estatica, en el
regimen permanente tendera al valor de referencia.
3.2 Control por Realimentacion de Estado 35
4
Posicin [rad]
Ganancia de precompensacin
3 Accion Integral
Referencia
1
0 5 10 15 20 25
Tiempo [seg]
10
0
Posicin [rad]
Ganancia de precompensacin
Accin Integral
5 Referencia
10
15
20
0 5 10 15 20 25
Tiempo [seg]
Una vez que en las simulaciones obtuvimos controladores que nos proveen el desempeno
deseado, implementamos dichos controladores en el sistema real, para comprobar que
los desempenos obtenidos en la simulacion concuerdan con los resultados reales. En
este captulo mostraremos la implementacion de dichos controladores en S IMULINK y los
resultados que obtuvimos al realizar los mismos ensayos con el sistema real.
Referencia
0
Posicin Base
Posicin Pendulo
La Figura 4.2 muestra los resultados obtenidos de la implementacion. Para ello cuando
comenzamos el ensayo, mantuvimos el pendulo en posicion vertical ya que este control no
puede levantarlo desde su reposo ( 0.2rad) y tomamos referencia nula.
En la Figura 4.3 mostramos los resultados que obtuvimos para (t), cuando tomamos
como referencia la senal que se muestra en la figura. Como podemos ver, el sobrevalor de
la salida es considerado, esto podra mejorarse redisenando el control K2 (s), haciendolo
mas lento (eligiendo polos para Alc2 mas pequenos). Por otro lado podramos tambien
modificar el tiempo de establecimiento, eligiendo K1 (s) mayor, ya que cuanto mayor sea
dicha ganancia, mas cerca del eje j estaran los polos a lazo cerrado, ver Figura 3.6.
38 Ensayos de Controladores sobre el Sistema Real
0.25 0.1
0.2 0.08
0.15 0.06
0.1 0.04
Poscicin [rad]
Posicin [rad]
0.05 0.02
0 0
0.05 0.02
0.1 0.04
0.15 0.06
0 5 10 15 20 25 30 35 40 0 5 10 15 20 25 30 35 40
Tiempo [seg] Tiempo [seg]
2
Posicin [rad]
2
0 20 40 60 80 100 120 140 160 180
Tiempo [seg]
Figura 4.3: Resultados obtenidos de la implementacion del control en cascada, para ana-
lizar seguimiento
4.2 Implementacion del Control en Realimentacion de Estados 39
Radianes 24
ZeroOrder K Tita
ngulo Pndulo
Hold1
In1 Out1 3.8
K TitaPunto
Posicin Base Estmador velocidad base1 Selector Manual
Actuacin
In1 Out1 2.4
Posicin Pendulo Product
K Psi Punto Motor
Estmador velocidad base
0
Radianes .3
Constante
ZeroOrder K Psi
ngulo Base Actuacin
Hold Step
Referencia N
Posicin Pendulo
Radianes 24
ZeroOrder K Tita
ngulo Pndulo
Hold1
Actuacion
U
Tita P 3.8
Actuacin
Psi P 2.4 Product
Psi
Posicin Base
K Psi Punto
Observador Motor
0
Radianes .3 Step
Constante
ZeroOrder K Psi
ngulo Base
Hold
Referencia N
1 0.06
Posicin del Brazo con Observador Posicin del Pndulo con Observador
Posicin del Brazo con Estimador Posicin del Pndulo con Estimador
0.8
0.04
0.6
0.4
0.02
0.2
Posicin [rad]
Posicin [rad]
0 0
0.2
0.02
0.4
0.6
0.04
0.8
1 0.06
20 22 24 26 28 30 32 34 36 38 40 20 22 24 26 28 30 32 34 36 38 40
Tiempo [seg] Tiempo [seg]
observador 1764 y para el estimador 3334. SI bien los valores no son los mismos que en
la simulacion, la relacion entre ambos es bastante parecida.
6
Actuacin con Observador
Actuacin con Estimador
2
Posicin [rad]
6
20 22 24 26 28 30 32 34 36 38 40
Tiempo [seg]
1.5
2.5
2
1
Posicin [rad]
Posicin [rad]
1.5
1
0.5
0.5
0
0
0.5
0.5 1
0 20 40 60 80 100 120 140 160 180 200 0 20 40 60 80 100 120 140 160 180 200
Tiempo [seg] Tiempo [seg]
Dado que los resultados obtenidos con la ganancia de precompensacion son bastante
malos, Figura derecha de 4.8, modificamos las ganancias para obtener un mejor desem-
peno. Tomando
K = 32.04 2.50 5.06 2.5
2
Posicin del Brazo
Referencia
1.5
1
Posicin [rad]
0.5
0.5
0 20 40 60 80 100 120 140 160 180 200
Tiempo [seg]
Figura 4.9: Seguimiento una senal de referencia onda cuadrada con ganancia de precom-
pensacion
42 Ensayos de Controladores sobre el Sistema Real
Captulo 5
Con el fin de realizar el proyecto con un bajo presupuesto, para la construccion del
pendulo utilizamos mayormente componentes que se encontraban en el stock del Labora-
torio de Electronica de la Universidad. Como vimos en el Capitulo 1 dichos componentes
imponen ciertas restricciones fsicas en el desempeno del lazo cerrado, que hicieron que
nuestros objetivos de control no sean muy estrictos en cuanto al desempeno. En este
Capitulo estudiaremos como afectan dichas restricciones al sistema y las posibles mejo-
ras. Para comprobar si dichas mejoras son justificables en cuanto al desempeno posterior
del sistema, analizamos el comportamiento del sistema a lazo cerrado a traves de si-
mulaciones, basandonos en el hecho de que el sistema simulado se comporta en forma
aproximada al real.
0.12 0.06
Con mejoras
0.1 0.05 Con mejoras
Sin mejoras
Sin mejoras
0.08 0.04
0.06 0.03
0.04 0.02
Posicin [rad]
Posicin [rad]
0.02 0.01
0 0
0.02 0.01
0.04 0.02
0.06 0.03
0.08 0.04
0 5 10 15 20 25 0 5 10 15 20 25
Tiempo [seg] Tiempo [seg]
Figura 5.1: Comparacion entre el sistema con y sin ampliacion en la resolucion del actua-
dor y de los sensores, derecha (t) y a la izquierda (t)
juego en el eje. Veamos que sucede si disminuimos el roce estatico en 20 veces, Figura
5.2. Esta disminucion se puede lograr, por ejemplo, utilizando un motor con rodamientos
a rulemanes.
0.12 0.06
0.06 0.03
0.04 0.02
Posicin [rad]
Posicin [rad]
0.02 0.01
0 0
0.02 0.01
0.04 0.02
0.06 0.03
0.08 0.04
0 5 10 15 20 25 0 5 10 15 20 25
Tiempo [seg] Tiempo [seg]
Figura 5.2: Comparacion entre el sistema con friccion estatica y reduciendola 20 veces,
derecha (t) y a la izquierda (t)
Veamos ahora que sucede si ademas disminuimos el juego del eje, Figura 5.3. Esta
disminucion se puede lograr, por ejemplo, utilizando una reduccion con correas dentadas
en lugar de engranajes.
Concluimos, a partir de los ensayos realizados, que para obtener un mejor desempeno
hay que centrarse en la disminucion las perturbaciones originadas por el motor.
5.2 Mejoras fsicas del motor 45
0.12 0.06
Con mejoras
0.1 0.05 Con mejoras
Sin mejoras
Sin mejoras
0.08 0.04
0.06 0.03
0.04 0.02
Posicin [rad]
Posicin [rad]
0.02 0.01
0 0
0.02 0.01
0.04 0.02
0.06 0.03
0.08 0.04
0 5 10 15 20 25 0 5 10 15 20 25
Tiempo [seg] Tiempo [seg]
Conclusiones
A.1 Controlador
A.1.1 Especificaciones de la PC
A.1.2 Placa de Adquisiscion de Datos
En la Tabla A.1, podemos ver las distintas direcciones de la placa. La direccion de memo-
ria base se elige a traves de tres jumpers ubicados en la placa. La direccion por defecto es
la 300h.
Driver
La forma de programar estos drivers en el S IMULINK es a traves de un bloque denominado
S-Function.
A.2 Actuador
Existen principalmente tres problemas a la hora de controlar un motor de corriente con-
tinua.
Los dos primeros problemas los solucionamos a traves de un Puente H, Figura A.1.
Este puente esta compuesto por cuatro transistores MosFet, dos de canal N y dos de
canal P que los haremos trabajar en corte o saturacion, es decir, conducen o no conducen.
Cuando queremos que el motor gire hacia un lado hacemos conducir a los transistores
MOS1 y MOS3, en este caso el potencial positivo se encuentra en el borne 1 del motor,
si queremos que gire en sentido contrario, hacemos conducir los transistores MOS2 y
MOS4, en este caso el potencial positivo se encuentra en el borne 2 del motor, es decir,
invertimos la tension aplicada. Para lograr que los transistores conduzcan o no en el
momento indicado, se le agrega una etapa de logica que evita que transistores del mismo
lado de la H conduzcan al mismo tiempo, ya que eso provocara que ambos se quemen
debido a que no tienen una resistencia que limite la corriente que circula a traves de ellos.
El metodo que utilizamos para solucionar el problema 3, es el de modulacion de ancho
de pulso (PWM), en el cual se alimenta al motor con una senal cuadrada de una frecuencia
determinada y amplitud igual a la tension nominal del motor, a la cual se le modifica el
tiempo activo, obteniendo una media de tension proporcional a ese tiempo. Al ser la
frecuencia de la onda mucho mayor al tiempo de respuesta del motor, este ve en sus
bornes la tension media resultante. La diferencia que existe con el primer metodo es que
en este caso, siempre se le aplica la tension nominal al motor.
El circuito PWM que implementamos, Figura A.2, tiene como entrada una senal analogica
de 0 - 5V, la variacion del tiempo activo de la senal PWM se realiza a traves de dicha en-
trada. La frecuencia de PWM que utilizamos es 250Hz.
A.2 Actuador 51
15V 15V
5V 15V 5V
10K 10K
820
820
820 820
5V 5V
Logica de Control
Direccion
On/Off
5V
50K
1M 1M
47K 8 4
7
5V 12V 12V
1K
6 ne555
8 1 + 50K
+ 47nF
2 2
820
12V 1
3 Vin
12V
74HC14 4
10K
12V
PWM
7
A.3 Sensores
A.3.1 Encoder Incremental
El encoder incremental consta de dos diodos emisores de luz cada uno enfrentado con un
fotodiodo, entre los cuales se ubica un disco con n ranuras que gira solidaria a un eje,
como podemos ver en la Figura A.3 ,
Placa ranurada
A s1
tiempo
Emisor Receptor
B s2
Cuando una ranura se encuentra entre el diodo emisor de luz y el fotodiodo, el fotodio-
do sensa la luz emitida, no as cuando entre ambos se encuentra la placa. A medida que
el disco gira, obtenemos en los fotodiodos dos senales como las que vemos en la Figura
A.4.
s1 s1
s2 s2
t t
Sentido de giro
En nuestro caso este sensor se encuentra solidario al eje del motor y la placa ranurada
o
cuenta con 20 ranuras, lo que representa una precision de 360 40 , ya que contamos los
pulsos de ambas senales. Debido a que el motor posee una reduccion 1:130, al dar el
1
motor una vuelta el eje exterior da 130 vueltas. Por lo tanto aumentamos la precision a
2
40130 = 0.0012 rad / pulso.
La logica para contar los pulsos fue realizada en el S IMULINK, en la Figura A.5 podemos
ver dicha implementacion.
1
S1
In1
Out1
In2 1
In1
2 SubSystem NOT 1
S2 Out1
Logical
2*pi/5150 1 Operator
Radianes 2
Conversion de In2
In1
pulsos a Radianes
Out1
Trigger
In2
SubSystem1
Vcc
R R
Vout
R R
Pendulo
60o
Iman
Eje
Brazo Sensor Magnetico
Ajuste de la Ganancia
Amplificador Diferencial
47nF
47nF
25K
220K
Ajuste del Offset 12V
12V
4, 7K
22K 12V
+
+
Vo Sensor Magnetico Vo : 0 5V
+
12V
22K 12V
12V
820K
1M
47nF
10K
12V 12V
[2] C-T Chen. Linear System Theory and Design. Oxford University Press, 1999.
[3] Graham C. Goodwin, Stefan F. Graebe, and Mario E. Salgado. Control System Design.
Prentice Hall International, 2001.
[4] Bruce A. Francis John C. Doyle and Allen R. Tannenbaun. Feedback Control Theory.
Maxwell Macmillan International Editions, 1992.
[6] Lennart Ljung. System Identification: Theoty for the User. Prentice-Hall, 1987.
[8] Mara M. Seron, Julio H. Braslavsky, and Graham C. Goodwin. Fundamental Limita-
tions in Filtering and Control. Springer, 1997.
[9] Real Time Windows Target. Users Guide Version 1. The Math Works Inc., 1998.