Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Invertido
Fernando Casta
nos Luna
3 de febrero de 2003
Indice general
1. Introducci
on
1.1. Descripcion del pendulo invertido . . . . . . . . . . . . . . . .
1.2. Control propuesto . . . . . . . . . . . . . . . . . . . . . . . .
1.3. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
7
8
9
2. Modelo Matem
atico del P
endulo
11
2.1. Ecuaciones diferenciales . . . . . . . . . . . . . . . . . . . . . 11
2.2. Ecuacion de estado . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3. Modelo discreto . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3. Estabilizaci
on del P
endulo
3.1. Dise
no del control . . . . . . . . . . . . . .
3.1.1. Bases teoricas . . . . . . . . . . . . .
3.1.2. Retroalimentacion del estado . . . .
3.1.3. Observador de Luenberger Reducido
3.2. Implementacion del control . . . . . . . . .
3.3. Analisis de datos y resultados . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
23
23
23
24
26
31
34
4. Levantamiento del P
endulo
4.1. Dise
no del control . . . . . .
4.1.1. Bases teoricas . . . . .
4.1.2. Excitacion . . . . . . .
4.1.3. Control del carro . . .
4.2. Implementacion del control .
4.3. Analisis de datos y resultados
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
39
39
39
42
44
46
47
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5. Conclusiones
49
5.1. Sobre la implementacion . . . . . . . . . . . . . . . . . . . . . 49
5.2. Sobre los algoritmos de control . . . . . . . . . . . . . . . . . 49
5.3. Consideraciones finales . . . . . . . . . . . . . . . . . . . . . . 50
3
4
Bibliografa
INDICE GENERAL
51
Indice de figuras
1.1. Esquema del pendulo invertido . . . . . . . . . . . . . . . . .
1.2. Flujo de se
nales entre la PC y el pendulo . . . . . . . . . . .
1.3. Perspectiva del pendulo invertido . . . . . . . . . . . . . . . .
8
8
9
12
3.1. Dise
no en espacio de estados . . . . . . . . . . . . . . . . . .
3.2. Respuesta en frecuencia de las diferentes salidas del sistema
en lazo cerrado cuando se considera la referencia en la posicion
como la entrada del sistema . . . . . . . . . . . . . . . . . . .
3.3. Observador de Luenberger . . . . . . . . . . . . . . . . . . . .
3.4. Esquema del controlador para estabilizar el pendulo . . . . .
3.5. Simulacion de la se
nal de control, la posicion y la posicion
angular al aplicar un escalon en la referencia de la posicion .
3.6. Simulacion de la se
nales de velocidad angular, friccion y sus
respectivos estimados al aplicar un escalon en la referencia de
la posicion . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.7. Implementacion del controlador para estabilizar el pendulo .
3.8. Simulacion del algoritmo de control usando LQR estimando
la friccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.9. Resultados del algoritmo de control usando LQR estimando
la friccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.10. Simulacion del algoritmo de control usando LQR sin estimar
la friccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
13
15
21
27
27
31
32
33
33
34
35
36
INDICE DE FIGURAS
36
37
41
41
43
44
45
45
46
47
Captulo 1
Introducci
on
El pendulo invertido es un sistema mecanico clasico para probar nuevas
ideas en la disciplina del control. Tiene la ventaja de ser, por un lado, un
mecanismo relativamente sencillo, y por el otro, un sistema que contiene
puntos inestables. El pendulo invertido se ha usado ampliamente como patron para comparar tanto algoritmos de control, como el hardware para
implementarlos. Otra de las cualidades de este dispositivo es que su dinamica es similar a la de un transporte aereo y a la de un robot bpedo con la
capacidad de caminar. Los algoritmos utilizados para controlarlo pueden ser
adaptados al control de otros mecanismos mas complejos.
1.1.
Descripci
on del p
endulo invertido
CAPITULO 1. INTRODUCCION
Computadora
Memoria
Mdulo LP100
Pendulo Invertido
Convertidor
A/D
Contador
Acondicionador
de seal
Sensores
Convertidor
D/A
Actuador
Motor
CPU
Perifericos
Algoritmo de Control
1.2.
Control propuesto
1.3. OBJETIVOS
1.3.
Objetivos
10
y el que lo estabiliza.
CAPITULO 1. INTRODUCCION
Captulo 2
Modelo Matem
atico del
P
endulo
El proposito de este captulo es obtener un modelo matematico que describa al pendulo invertido. Primero se analiza la dinamica del sistema. Despues, por medio de una serie de Taylor se linealiza el modelo obtenido para
poder utilizar una ley de control de tipo LQR. Dado que el control propuesto es por medio de una computadora digital, se calcula al final el modelo
discreto.
2.1.
Ecuaciones diferenciales
Las variables que definen la condicion del sistema en todo momento son
la posicion r del carro y el angulo del pendulo con respecto a la vertical. El
objetivo de esta seccion, es encontrar la ecuacion o el conjunto de ecuaciones
diferenciales que describan el comportamiento de estas variables para una
fuerza F , aplicada en el carro a traves de la banda.
El pendulo invertido se puede concebir como un cuerpo rgido cuyo
movimiento se limita a dos dimensiones. Las ecuaciones fundamentales de
movimiento plano de un cuerpo rgido son (ver Beer y Russell [2], captulo
16)
X
Fi = mai
(2.1)
Fj
= maj
(2.2)
MG = Ig
(2.3)
11
12
M1 g
ls
M0 g
N
Fric
r
Las ecuaciones 2.1 y 2.2 son la segunda ley de Newton para las componentes horizontal i y vertical j de la fuerza F y la aceleracion a experimentada por el cuerpo rgido de masa m. La ecuacion 2.3, derivada tambien de la
segunda ley de Newton, establece que la suma de momentos M de las fuerzas
que act
uan sobre un cuerpo rgido alrededor de un punto G cualquiera, es
igual al momento de inercia I por la aceleracion angular (con direccion g)
alrededor del cuerpo rgido.
En la Figura 2.1 se encuentra el diagrama de cuerpo libre del pendulo
invertido. Sobre el pendulo invertido act
uan F , la fuerza de friccion F ric,
los pesos del pendulo y el carro, y la reaccion normal N que ejerce el riel
sobre el carro (tercera ley de Newton) M 0 es la masa del carro, M1 la del
pendulo, y g es la aceleracion ejercida por la tierra.
Para simplificar el analisis, se puede dividir el pendulo invertido en dos
cuerpos: el carro y el pendulo.
En el lado izquierdo de la Figura 2.2 se puede observar, ademas del peso
del pendulo, las fuerzas de reaccion H y V que act
uan sobre su articulacion.
Para obtener la aceleracion horizontal del pendulo, es necesario tomar en
cuenta que la posicion horizontal de su centro de gravedad depende de r y
de . Si se aplica 2.1 al pendulo, se tiene
H = M1
d2
r
l
sen
s
dt2
(2.4)
M1 g
13
V
H
ls
M0 g
Fric
r
Figura 2.2: Diagramas de cuerpo libre del pendulo (izquierda) y del carro
(derecha)
y la ecuacion 2.2 da
V = M1
"
d2
l
cos
+g
s
dt2
(2.5)
d2
d
= V ls sen + Hls cos C
dt2
dt
(2.6)
(2.8)
(2.10)
14
(2.11)
d2 r
dt
(2.12)
(2.14)
DE ESTADO
2.2. ECUACION
15
Equilibrio
Movimiento
Fc
Fm
Fk
2.2.
Ecuaci
on de estado
(2.15)
y = Cx + Du
(2.16)
Adem
as de que la representaci
on como ecuaci
on de estado es m
as compacta, es m
as
sencillo programar operaciones entre matrices que operaciones con funciones de transferencia o ecuaciones diferenciales.
16
x4
y = x2 ,
x3
1 0 0
C = 0 1 0
0 0 1
matrices C y D facilmente
0
D = 0.
0 ,
0
para x 1 y x 2 se tiene
x 1 = f1 (x, u) = x3
(2.18)
x 2 = f2 (x, u) = x4
(2.19)
2 g sen x2 cos x2
Fr
x3
M 2 cos2 x2 M 2 cos2 x2
sen x2
C cos x2
x4
x2 +
M 2 cos2 x2
M 2 cos2 x2 4
+
u
M 2 cos2 x2
(2.20)
(2.21)
x 3 = f3 (x, u) =
(2.22)
DE ESTADO
2.2. ECUACION
17
n
X
aij xj + bi u
j=1
xi
x=0,u=0
f3 (x, u)
+
u
(2.23)
x=0,u=0
a32 =
a33 =
a34 =
b3 =
f3 (x, u)
x1
x=0,u=0
f3 (x, u)
x2
x=0,u=0
f3 (x, u)
x3
x=0,u=0
f3 (x, u)
x1
x=0,u=0
f3 (x, u)
u
x=0,u=0
=0
(2.24)
2 g
(2.25)
Fr
(2.26)
(2.27)
(2.28)
x3
2
2
M cos x2 M 2 cos2 x2
MC
2 sen x2 cos x2 2
x +
4
M 2 cos2 x2
M 2 cos2 x2 4
cos x2
+
u
M 2 cos2 x2
x 4 = f4 (x, u) =
(2.29)
18
a42 =
a43 =
a44 =
b4 =
f4 (x, u)
x1
x=0,u=0
f4 (x, u)
x2
x=0,u=0
f4 (x, u)
x3
x=0,u=0
f4 (x, u)
x1
x=0,u=0
f4 (x, u)
u
=0
M g
(2.31)
Fr
(2.32)
MC
(2.33)
x=0,u=0
0
0
A=
0
0
(2.30)
(2.34)
0
1
0
0
0
0
0
1
B=
b3 .
a32 a33 a34
a42 a43 a44
b4
x = Ax + Bu,
(2.35)
donde x son las desviaciones del estado alrededor del punto de operacion.
Los parametros del pendulo invertido se pueden encontrar en [1] y se
muestran en la tabla 2.1.
Como ya se menciono, el pendulo invertido contiene tres sensores. Los
sensores de posicion y velocidad entregan un voltaje proporcional a la variable medida. El sensor de posicion angular consta de un encoder optico
conectado a un contador. El valor de dicho contador un entero de 12 bits
es proporcional al angulo del pendulo. Para simplificar el modelado de los
sensores se opto por multiplicar el valor del contador por una constante, de
tal suerte que se pudiera conceptualizar este sensor como un transductor
mas. El sistema tiene, ademas, un motor y un amplificador que transforman
un voltaje en un par mecanico. Se puede entender estos transductores como
una transformacion lineal al vector de estado y a la entrada
xn = Nx
u = K f us
(2.36)
(2.37)
DE ESTADO
2.2. ECUACION
Parametros Basicos
Parametros Compuestos
19
Par
ametro
M0
M1
ls
s
Fr
C
M
Valor
3.2
0.329
0.44
0.008
6.2
0.009
3.529
0.072
0.1448
0.23313
Unidad
Kg
Kg
m
Kgm2
Kg/s
Kgm2 /s
Kg
Kgm2
Kgm
Kgm
Valor
2.6
14.9
52.27
-7.64
52.27
Unidad
N/V
V/m
V/rad
Vs/m
Vs/rad
n11 0
0
0
0 n22 0
0
N=
0
0 n33 0
0
0
0 n44
(2.38)
Los elementos n11 a n33 son los factores que relacionan las cantidades
no se puede medir directamente, ha
electricas con las mecanicas. Como
de ser estimado mas tarde. El elemento n 44 , se puede, entonces, elegir arbitrariamente. Por simplicidad se eligio n 44 = n22 s.
Si se sustituyen las ecuaciones 2.36 y 2.37 en 2.35 se puede ver que
N1 x n = AN1 xn + BKf us
(2.39)
20
y al despejar x n
x n = NAN1 xn + NBKf us
(2.40)
(2.41)
(2.42)
Calculando
0
0
1
0
0
0
0
1
A =
0 0.883 1.916 0.0056
0 21.53 3.868 0.1369
0
0
B =
0.30896
0.62382
An
Bn
Finalmente,
0
0
1.95
0
0
0
0
1
=
0 0.129 1.916 0.00082
0 21.53 26.461 0.1369
0
0
=
6.137
84.778
(2.43)
(2.44)
(2.45)
(2.46)
x n = An xn + Bn u
yn = Cxn
2.3.
(2.47)
Modelo discreto
21
Planta
D/A
Algoritmo de control
D/A
A/D
Planta
A/D
Algoritmo de control
Controloador continuo
Controlador discreto
s
< 40
b
(2.48)
22
(2.49)
s1 = 0
s2 = 4.52
s3 = 4.84
s4 = 1.73
b 4.84 [rad/s]
(2.50)
(2.51)
(2.52)
Cabe mencionar que la ecuacion 2.48 ha de verificarse una vez que se haya
dise
nado el controlador.
Una vez calculado el periodo de muestreo se pueden utilizar diversas
transformaciones para determinar el modelo discreto del sistema. El mas
directo es el retenedor de orden cero, ya que eso es precisamente lo que
hay a la entrada de la planta. Utilizando las rutinas del paquete Matlab se
calculan las matrices
3
5.28 10
3.74 102
Bd =
(2.54)
1.79 101
2.47
Cd = C
(2.55)
Dd = D
(2.56)
y
xn (k + 1) = Ad xn (k) + Bd u(k)
(2.57)
(2.58)
Captulo 3
Estabilizaci
on del P
endulo
En este captulo se describe el dise
no del controlador que estabiliza la
posicion inherentemente inestable del pendulo. Se explica la forma en que
se implemento el sistema y al final se presentan los resultados obtenidos.
3.1.
Dise
no del control
En el dise
no propuesto se plantea retroalimentar el estado a traves de una
ganancia determinada con el metodo LQR (Linear Quadratic Regulator).
El estado que se mide no es completo, por lo que se propone utilizar un
observador predictor de orden reducido para estimar parte del estado.
3.1.1.
Bases te
oricas
23
DEL PENDULO
CAPITULO 3. ESTABILIZACION
24
Planta
Pndulo
Sensores
xn(k)
y(k)= C xn(k)
Controlador
x
Observador
Ley de
control
Referencia
3.1.2.
Retroalimentaci
on del estado
Para obtener la ganancia K hay varios criterios, uno es asignar arbitrariamente el patron de polos que se quiere que tenga el sistema en lazo
cerrado; otra posibilidad es utilizar un control optimo variable en el tiempo
(time-varying optimal control). La opcion elegida es un control optimo LQR
(Linear Quadratic Regulator ), un caso particular del variable en el tiempo.
Se trata de minimizar la funcion
J=
N h
X
k=0
i
xn T (k)Qxn (k) + uT (k)Ru(k) .
(3.1)
DEL CONTROL
3.1. DISENO
25
(3.2)
26
DEL PENDULO
CAPITULO 3. ESTABILIZACION
650 0
0 0
0 100 0 0
Q=
0
0 20 0
0
0
0 10
(3.4)
3.1.3.
(3.6)
DEL CONTROL
3.1. DISENO
27
Respuesta en frecuencia
Posicin [dB]
1
0
1
2
4
5
4
3
2
1
0
1
2
3
4
5
Velocidad [dB]
1
0
1
2
3
4
5
0.5
1.5
2.5
3.5
4
4.5
Frecuencia [rad/s]
5.5
6.5
7.5
x n (0)
u(k)
Planta
x n (k)
Ad, Bd
Modelo
Ad, Bd
yn (k)
C
x (k)
y(k)
C
x (0)
L
28
DEL PENDULO
CAPITULO 3. ESTABILIZACION
La dinamica del error (
x = xn x
) depende de L y esta dada por
det(zI Ad + LC) = 0
(3.7)
(3.9)
(3.10)
entrada conocida
Los dos u
ltimos elementos son conocidos y pueden considerarse como entradas a la dinamica de xb . Si se reordena la parte que describe la dinamica
de xa se tiene que
medici
on conocida
Las ecuaciones 3.9 y 3.10 tienen la misma forma que las ecuaciones 2.57
y 2.58 respectivamente, por que lo se puede utilizar la ecuacion 3.6 si se
hacen las siguientes sustituciones:
xn
Ad
Bd u(k)
yn (k)
Cd
xb
Abb
Aba xa (k) + Bb u(k)
xa (k + 1) Aaa xa (k) Ba u(k)
Aab
(3.11)
DEL CONTROL
3.1. DISENO
29
(3.13)
Ad11 Ad12
Aaa =
Ad21 Ad22
Ad31 Ad32
Aba =
y
Ad13
Ad14 Bd1
Ad13 Aab = Ad24 Bd2
Ad33
Ad34 Bd3
Bd1
Ba = Bd2
Bd3
Abb
Bd4
Bb =
0
Ad44 Bd4
0
0
(3.16)
(3.17)
k1 = k2 = 0.04979
(3.18)
DEL PENDULO
CAPITULO 3. ESTABILIZACION
30
(3.19)
(3.20)
(3.22)
y si se hace
z(k) = x
b (k) Lr xa (k)
AL = Abb Lr Aab =
FL = AL Lr + Aba Lr Aaa
BL = B b L r Ba
0.04979
0
0
0.04979
(3.23)
(3.24)
DEL CONTROL
3.2. IMPLEMENTACION
Referencia
u(k) +
31
Planta
us(k)
y(k) = xa(k)
Pndulo
x(k)
u so(k) = x5 (k)
y(k)
xB(k)
BL
+
+
z(k)
CL
z(k+1)
Z
+
+
FL
AL
VL
Observador de orden reducido
VL
CL
3.2.
1
0
0
0
1
0
0
0
1
=
=
Lr
0.21107 0.31814 7.1667
0.00821 0.00031 0.2781
0 0
0 0
0
0
=
1 0
0 1
Implementaci
on del control
Antes de implementar el esquema mostrado en la Figura 3.4 hay que simularlo para detectar posibles errores. En el captulo 2 se obtuvo un par de
ecuaciones simultaneas diferenciales (2.11 y 2.14) que pueden usarse directamente para modelar el pendulo invertido. Simulink, un modulo de Matlab,
permite realizar simulaciones de modelos a traves de una interfaz grafica.
Ademas de las ecuaciones diferenciales, podemos utilizar los parametros que
describen al actuador y a los sensores y agregarlos al modelo. Finalmente,
se puede incluir la friccion seca utilizando una curva como la mostrada en
la Figura 2.3.
En las Figuras 3.5 y 3.6 se pueden ver los resultados de la simulacion del
modelo descrito por 2.11, 2.14 y una friccion seca maxima de 1.3 N cuando
DEL PENDULO
CAPITULO 3. ESTABILIZACION
32
5
0
0.5
1.5
2.5
3.5
0.5
1.5
2.5
3.5
0.5
1.5
2
Tiempo [s]
2.5
3.5
Posicin [cm]
60
40
20
0
Posicin angular []
20
5
0
5
10
Si bien el control o
ptimo es bastante noble en el sentido de que es insensible a las variaciones de los par
ametros del sistema, requiere un tiempo de muestreo preciso, determinado
por hardware, no por software.
DEL CONTROL
3.2. IMPLEMENTACION
33
20
Velocidad angular estimada
10
0
10
Velocidad angular
20
30
0.5
1.5
2.5
3.5
3.5
Friccin [N]
3
2
Friccin estimada
1
0
Friccin
1
2
0.5
1.5
2
Tiempo [s]
2.5
Referencia
u(k) +
Pendulo
us(k)
A/D
y(k) = xa(k)
D/A
x(k)
u so(k) =x5 (k)
y(k)
xB(k)
BL
+
+
z(k)
CL
z(k+1)
Z
+
+
FL
AL
VL
Observador de orden reducido
DEL PENDULO
CAPITULO 3. ESTABILIZACION
34
Seal de control [v]
LQR simulado
10
10
10
15
20
25
10
15
20
25
10
15
20
25
Posicin [cm]
50
Posicin Angular []
50
10
5
0
5
10
Tiempo [s]
Cambio en la referencia
de posicin
Cambio en la referencia
de posicin
3.3.
An
alisis de datos y resultados
3.3. ANALISIS
DE DATOS Y RESULTADOS
35
LQR
10
0
10
Posicin [cm]
50
Posicin Angular []
50
10
5
0
5
10
5
10
15
20
25
30
Tiempo [s]
Perturbacin externa
Cambio en la referencia
de la posicin
10 0 0 0
0 10 0 0
(3.25)
Q1 =
0 0 10 0
0 0 0 10
60 0 0 0
0 10 0 0
(3.26)
Q2 =
0 0 20 0
0 0 0 10
DEL PENDULO
CAPITULO 3. ESTABILIZACION
36
10
15
20
25
30
10
15
20
25
30
10
15
Tiempo [s]
20
25
30
Posicin [cm]
60
40
20
0
Posicin Angular []
20
10
5
0
5
10
Cambio en la referencia
de posicin
Cambio en la referencia
de posicin
Figura 3.10: Simulacion del algoritmo de control usando LQR sin estimar la
friccion
Posicin [cm]
Posicion angular []
40
5
0
5
10
0
10
Perturbacin
externa
15
tiempo [s]
Cambio de posicin
20
30
Figura 3.11: Resultados del algoritmo de control usando LQR sin estimar la
friccion
3.3. ANALISIS
DE DATOS Y RESULTADOS
37
yn [v], Q1
2
1
0
1
yn [v], Q2
2
0
2
4
2
Posicin
Posicin Angular
Velocidad
Velocidad Angular
yn [v], Q3
0
2
4
6
8
0
Tiempo [s]
Escaln
650 0
0 0
0 100 0 0
(3.27)
Q3 =
0
0 20 0
0
0
0 10
la cual es, precisamente la usada en la ecuacion 3.4. La respuesta del sistema es todava mas rapida, como se puede ver en la parte inferior de la
Figura 3.12.
38
DEL PENDULO
CAPITULO 3. ESTABILIZACION
Captulo 4
Levantamiento del P
endulo
En este captulo se describe el dise
no de un algoritmo para levantar el
pendulo invertido. Se muestra el levantamiento en simulacion, as como los
resultados experimentales del proceso de levantamiento.
4.1.
Dise
no del control
4.1.1.
Bases te
oricas
d2 x(t)
= a0 x(t)
dt2
(4.1)
(4.2)
40
d2 x(t)
+ a0 x(t) = F (t)
dt2
(4.4)
Este tipo de sistema ha sido estudiado con mucho detalle debido a que
se presenta en diversos campos de la fsica: mecanica, ac
ustica, optica, etc.
Cuando la excitacion externa es una funcion cosenoidal de tipo
F (t) = F0 cos t,
la solucion a la ecuacion diferencial tiene la forma
"
#
F0 cos 0 t cos t
.
x(t) =
a1
( 2 02 )
(4.5)
(4.6)
d2 (t)
= M1 g sen (t)
dt2
d2 (t)
ls
= g sen (t)
dt2
(4.8)
(4.9)
DEL CONTROL
4.1. DISENO
2do cuadrante
41
1er cuadrante
3er cuadrante
ls
4to cuadrante
M1 g
M1 g cos
M1 g sen
Carro
Riel
Pendulo
CAPITULO 4. LEVANTAMIENTO DEL PENDULO
42
r
r
0
0
1 0
0
0
0 1
= 0
0
r
0 0.883 0 0 r + 0.309 F
0 21.53 0 0
0.624
r
y1
1 0 0 0
y2 = 0 1 0 0
(4.11)
r
y3
0 0 1 0
(4.12)
4.1.2.
Excitaci
on
En la seccion anterior se calculo la frecuencia de resonancia para el sistema linealizado. La frecuencia de resonancia real seguramente es distinta.
Una posibilidad es medir experimentalmente la frecuencia natural del pendulo y aplicar una fuerza que estuviera de acuerdo con la ecuacion 4.5. Este
enfoque plantea dos problemas principales: uno, que la frecuencia natural del
pendulo seguramente vara debido a la friccion seca, dos, aplicar un voltaje
al motor de DC en lazo abierto no permite controlar la posicion del carro
y este podra rebasar la longitud del riel, chocando contra alguno de los
extremos.
Es necesario encontrar la manera de medir dinamicamente la frecuencia
natural y mantener la posicion del carro dentro de los lmites del riel. Una
DEL CONTROL
4.1. DISENO
43
6
4
2
0
Posicin Angular []
2
40
20
0
20
40
10
5
0
5
10
5
Tiempo [s]
10
44
Velocidad angular
< umbral ?
No
Si
No
Angulo en cuadrantes
2o3?
Si
Fin
4.1.3.
F = F ric + M r
(4.13)
DEL CONTROL
4.1. DISENO
45
No
< 10 ?
Levantamiento del
Pndulo
Si
Algoritmo
de control
Fric
r
Figura 4.6: Diagrama de cuerpo libre del carro al despreciar el efecto del
movimiento del pendulo
donde M es la masa total del carro y el pendulo, r la direccion del movimiento y F ric es la fuerza de friccion dada por
F ric = Fr r
(4.14)
F = Fr r + M r
(4.15)
por lo que
Siguiendo un procedimiento similar al del captulo 2, se obtiene la siguiente ecuacion de estado
xnc (k + 1) = Adc xnc (k) + Bdc u(k)
(4.16)
(4.17)
donde xnc1 es la posicion del carro en volts, x nc2 es la velocidad del carro en
volts y
1 0.05699
0.0048543
Adc =
Bdc =
0 0.94866
0.1644908
Cdc =
1 0
0 1
Ddc = 0
CAPITULO 4. LEVANTAMIENTO DEL PENDULO
46
ngulo []
0.5
1.5
2.5
3.5
0.5
1.5
2.5
3.5
0.5
1.5
2.5
3.5
50
50
200
100
0
Conmutacin
Figura 4.7: Simulacion del conmutador y los controles para levantar y estabilizar el pendulo invertido
Para obtener la matriz Kc que retroalimenta el estado se puede usar
la formula de Ackermann. Para un par de polos z 1 = z2 = 0.5, escogidos
arbitrariamente, se tiene
25.9767
Kc =
(4.18)
5.0006
4.2.
Implementaci
on del control
4.3. ANALISIS
DE DATOS Y RESULTADOS
47
14
15
16
17
18
19
13
14
15
16
17
18
19
13
14
15
16
Tiempo [s]
17
18
19
40
20
0
20
40
ngulo []
300
200
100
0
Conmutacin
4.3.
An
alisis de datos y resultados
12.0060
Kc =
3.3444
(4.20)
48
Captulo 5
Conclusiones
5.1.
Sobre la implementaci
on
5.2.
Para dise
nar el control que estabiliza al pendulo se usaron metodos relativamente tradicionales (LQR y observador de Luenberger). Como se puede
ver en los resultados del captulo 3, el control dise
nado es bueno en el sentido
de que es capaz de compensar adecuadamente tanto perturbaciones como
variaciones en los parametros del sistema. La realizacion de este control
cumple un par de propositos; el primero, aplicar la teora expuesta tanto en
las materias de control como en sus antecedentes, y el segundo, motivar a
futuros estudiantes de dichas materias mostrando aplicaciones practicas.
El levantamiento del pendulo, a diferencia de la estabilizacion, no tiene
muchos antecedentes. Comparado con el de
Astrom y Furuta tiene la ventaja
de que podemos garantizar que el pendulo no se saldra de los extremos (ellos
usaron un pendulo rotacional). La desventaja es que con el algoritmo desarrollado en este trabajo no se puede garantizar analticamente que el pendulo
49
50
CAPITULO 5. CONCLUSIONES
5.3.
Consideraciones finales
Bibliografa
[1] Amira GmbH. Laboratory Setup Inverted Pendulum. Alemania 1992
[2] Ferdinand P. Beer y E. Russell Johnson, Jr. Mec
anica vectorial para
ingenieros. Mc. Graw Hill. Mexico 1989
[3] Gene F. Franklin, J. David Powell y Michael Workman. Digital control
of dynamic systems. Addison-Wesley. E.U.A. 1997
[4] Leon Couch. Sistemas de comunicaci
on digitales y anal
ogicos. Prentice
Hall. Mexico 1998
[5] Jerrold Marsden y Anthony Tromba. C
alculo vectorial. Addison-Wesley
Iberoamericana. Delaware, E.U.A. 1991
[6] B.C. Kuo. Discrete-Data Control Systems. Prentice Hall. New Jersey,
E.U.A. 1970
[7] Richard P. Feynman, Robert Leighton y Matthew Sands. The Feynman
lectures on physics. Addison-Wesley. E.U.A. 1969
strom y K. Furuta. Swing up a pendulum by energy con[8] K. J. A
trol. IFAC 13th World Congress, San Francisco, California, 1996.
www.control.lth.se/~kja/furutapaper.pdf
[9] sfunctions.pdf, Documento electronico que viene incluido con Matlab
(version 5.3)
51
52
BIBLIOGRAFIA
Ap
endice A
A.1.
Esta es la funcion-S usada para leer los voltajes y los datos provenientes
de los sensores. Matlab incluye una plantilla para escribir este tipo de funciones, solo es necesario establecer el n
umero de entradas, el n
umero de salidas y asignar valores a dichas salidas. Para obtener los valores de la salidas
de esta interfaz, se hacen llamadas a funciones definidas en la seccion A.3.
/*
* SamiraADC.c driver para leer datos desde la tarjeta amira utilzando una funcin S
*/
#define S_FUNCTION_NAME SamiraADC
#define S_FUNCTION_LEVEL 2
#include "simstruc.h"
#include "amiraADC.h"
/*=====================================*
* Configuration and execution methods *
*=====================================*/
53
APENDICE
A. INTERFACES MATLAB - DAC 6214
54
S,
S,
S,
S,
S,
//
//
//
//
//
number
number
number
number
number
of
of
of
of
of
ssSetOptions(S, SS_OPTION_EXCEPTION_FREE_CODE);
// general options (SS_OPTION_xx)
} //* end mdlInitializeSizes
55
} // end mdlOutputs
/*=============================*
* Required S-function trailer *
*=============================*/
#ifdef MATLAB_MEX_FILE
#include "simulink.c"
#else
#include "cg_sfun.h"
#endif
A.2.
/*=====================================*
* Configuration and execution methods *
*=====================================*/
static void mdlInitializeSizes(SimStruct *S)
{
ssSetNumSFcnParams(S, 0); // Number of expected parameters
if (ssGetNumSFcnParams(S) != ssGetSFcnParamsCount(S)) {
return;
}
ssSetNumContStates(S, 0);
ssSetNumDiscStates(S, 0);
S,
S,
S,
S,
S,
//
//
//
//
//
number
number
number
number
number
of
of
of
of
of
APENDICE
A. INTERFACES MATLAB - DAC 6214
56
ssSetOptions(S, SS_OPTION_EXCEPTION_FREE_CODE);
// general options (SS_OPTION_xx)
} //* end mdlInitializeSizes
} // end mdlOutputs
/*=============================*
* Required S-function trailer *
*=============================*/
#ifdef MATLAB_MEX_FILE
#include "simulink.c"
#else
#include "cg_sfun.h"
#endif
A.3.
57
funciones son las que se comunican directamente con la tarjeta DAC 6214.
Para mas informacion se recomienda ver la documentacion incluida con el
pendulo [1]
/************************************************************************
*
amiraADC.h
*
*
*
*
Rutinas de lectura y escritura de las tarjetas amira
*
para el pndulo invertido
*
*
*
*
*
************************************************************************/
#include <conio.h>
#define TIEMPO_LIMITE 100000 //Tiempo lmite para la conversin
#define HWADR 0x210
#define DATR 0x213
#define PI 3.141593
void
void
void
void
void
APENDICE
A. INTERFACES MATLAB - DAC 6214
58
}
//Implementacin del reset del encoder
void amiraRST()
{
int DIR1 = HWADR; //Direccin de la tarjeta
int DIR2 = DATR; //Direccin del registro de datos
int pato = 0;
unsigned char RESET_CONT = 0x80; //Comando de reset del contador
outp(DIR1,RESET_CONT); //Mandamos seal de reset.
pato = inp(DIR2);
}
//Implementacin de la conversin D/A
void amiraDAC(float *volts)
{
int DIR1 = HWADR; //Direccin de la tarjeta
int DIR2 = DATR; //Direccin del registro de datos
int LBLN_DATO = 0; //Nibble bajo del byte bajo a escribir
int LBHN_DATO = 0; //Nibble alto del byte bajo a escribir
int HBLN_DATO = 0; //Nibble bajo del byte alto a escribir
int DATO_BIN = 0; //Dato binario completo;
int escribe = 0;
unsigned
unsigned
unsigned
unsigned
char
char
char
char
LBLN_DIR
LBHN_DIR
HBLN_DIR
ESCR_DIR
=
=
=
=
0x40;
0x41;
0x42;
0x43;
//Direccin del
//Direccin del
//Direccin del
//Comando para
LBLN
LBHN
HBLN
iniciar conversin
59