1. Construcci´on y Dise˜no de Controladores
de un P´endulo Invertido Rotante
Sebasti´an Mallo
Virginia Mazzone
Director: Ing. Roberto Saco
P´endulo Invertido Rotante
Proyecto Fin de Carrera
Ing. Automatizaci´on y Control Industrial
Departamento de Ciencia y Tecnolog´ıa
Universidad Nacional de Quilmes
11 de febrero de 2003
2. Este informe describe el proyecto de fin de carrera Construcci´on y Dise˜no de Controladores
de un P´endulo Invertido Rotante, realizado por Sebasti´an Mallo y Virginia Mazzone, para la
carrera Ingenier´ıa en Automatizaci´on y Control Industrial dependiente del Departamento de
Ciencia y Tecnolog´ıa de la Universidad Nacional de Quilmes. Este proyecto fue realizado
bajo la supervisi´on del profesor Ing. Roberto Saco.
El informe fue tipeado en LATEX y pdfLATEX usando la clase book con los paquetes ba-
bel(spanish) y hyperref. La familia de fuentes utilizada es bookman para texto, y
mathpple para matem´atica.
Florencio Varela, 11 de febrero de 2003.
3. Resumen
Este informe sintetiza la construcci´on de un p´endulo invertido rotante y su posterior con-
trol a trav´es de una PC. Utilizamos como actuador un motor de corriente continua y
sensamos los ´angulos del brazo rotatorio y del p´endulo con un encoder incremental y un
sensor magn´etico respectivamente.
Construido el sistema lo modelizamos matem´aticamente, utilizamos como herramienta
las ecuaciones de Euler-Lagrange. Una vez obtenido el modelo, e identificado, procedimos
al dise˜no de diversos controladores: control en cascada y control por realimentaci´on de
estados. Para verificar el desempe˜no de los controladores dise˜nados, simulamos el modelo
no lineal obtenido en SIMULINK junto con los controles.
Para poder implementar el control por realimentaci´on de estado, fue necesario dise˜nar
un observador para estimar aquellas variables de estado que no podemos medir. Una
vez dise˜nado el observador, obtuvimos el desempe˜no deseado, salvo al pretender que el
brazo siga referencias constantes. Por otro lado, la implementaci´on del control en cas-
cada fue inmediata ya que solo necesitamos las mediciones que tenemos. Para concluir,
dise˜namos una variante robusta del control en realimentaci´on de estado, acci´on integral,
adem´as solucionamos el problema de seguimiento de referencias, la implementamos sa-
tisfactoriamente, obteniendo as´ı el mejor desempe˜no.
La implementaci´on la realizamos utilizando una placa de adquisici´on de datos junto
con el software MATLAB, SIMULINK, Real Time Workshop y Real Time Windows Target, que
nos permitieron el control en tiempo real.
7. Introducci´on
El objetivo de este trabajo es la aplicaci´on de los conocimientos adquiridos a lo largo
de la carrera, donde nos centramos en el dise˜no de controladores. Para ello elegimos
como sistema un p´endulo invertido rotante. Muchas Universidades del mundo poseen
un p´endulo invertido para demostrar resultados de control. La raz´on por la cual este
problema es interesante desde el punto de vista de control es por que ilustra muchas de
las dificultades asociadas con problemas de control del mundo real.
0.1 Formulaci´on del Problema y Objetivos
El p´endulo invertido rotante consiste en un brazo giratorio horizontal, el cual posee en su
extremo una barra vertical la cual gira libremente alrededor de un eje paralelo al brazo,
como podemos apreciar en la Figura 1.
m, g
I, l
r
z
x
a
θ
y
ψ
Figura 1: Diagrama del p´endulo invertido rotante
Dado que nuestra Universidad no cuenta con un P´endulo Invertido Rotante, por su alto
costo, nos propusimos como objetivo del trabajo, la construcci´on del mismo. Mientras
que la especificaci´on de dise˜no de los controladores que nos propusimos, es mantener la
barra, de ahora en m´as p´endulo, en forma vertical mediante la aplicaci´on de una fuerza
en el brazo. Este proceso se ve intuitivamente a trav´es del ejemplo de tratar de mantener
una escoba en forma vertical con una mano. Una especificaci´on secundaria es controlar
el brazo en una posici´on determinada. Estos objetivos fueron alcanzados implementando
los controladores por medio de una PC.
El proceso de dise˜no de un sistema de control requiere de los siguientes pasos, seg ´un
[4]:
1. Estudiar el sistema a controlar y decidir qu´e tipo de sensores y actuadores utilizar y
d´onde ubicarlos.
2. Modelar el sistema resultante a controlar.
8. viii Introducci´on
3. Simplificar el modelo si es necesario para hacerlo m´as f´acil.
4. Analizar el modelo resultante, determinar sus par´ametros.
5. Decidir las especificaciones de desempe˜no.
6. Decidir el tipo de control a utilizar.
7. Dise˜nar un controlador que alcance las especificaciones, si es posible, si no, modifi-
car las especificaciones.
8. Repetir desde 1 si es necesario.
9. Elegir hardware y software e implementar el controlador.
10. Ajustar el controlador on-line si es necesario.
0.2 Contenido del Informe
Este informe consta de cinco cap´ıtulos y un ap´endice. En el Cap´ıtulo 1 describimos
cada uno de los componentes del sistema a controlar, de los sensores y del controlador.
En el Cap´ıtulo 2 modelizamos matem´aticamente el sistema, utilizando las ecuaciones de
Euler-Lagrange, linealizamos alrededor del punto donde queremos controlar al sistema y
a partir de ciertas consideraciones, obtuvimos un modelo simplificado del mismo. En el
Cap´ıtulo 3 dise˜namos los controladores: control en cascada y realimentaci´on de estados a
partir del modelo lineal simplificado, realizando simulaciones para analizar su desempe˜no
teniendo en cuenta las alinealidades del sistema. En el Cap´ıtulo 4 implementamos dichos
controladores en el sistema real, verificando los resultados obtenidos por simulaci´on. En
el Cap´ıtulo 5 analizamos el efecto de las cuantizaciones y de las perturbaciones utilizando
simulaciones. En el Capitulo 6 mostramos las conclusiones generales del trabajo. En el
Ap´endice A detallamos los componentes descriptos en el Cap´ıtulo 1.
Por ´ultimo, queremos agregar que este proyecto es una contribuci´on al laboratorio de la
carrera para que otros alumnos puedan seguir profundizando conocimientos y aplicarlos
en un sistema real. En realidad este fue nuestro primer objetivo y estamos orgullos de
haber podido devolver de alguna manera todo lo que recibimos durante estos a˜nos.
9. Cap´ıtulo 1
Descripci´on del Sistema
En la introducci´on describimos el sistema sin entrar en detalle de la fuente de movimiento
ni que mediciones debemos realizar para lograr las especificaciones de control propues-
tas. El sistema de movimiento del brazo es b´asicamente un motor de corriente continua,
mientras que intuitivamente de las especificaciones planteadas podemos deducir que es
necesario medir el ´angulo del p´endulo y del brazo, en 3.2 demostraremos que esta condi-
ci´on es necesaria y suficiente.
En la etapa de dise˜no es de gran utilidad contar con programas que nos permita simu-
lar de forma sencilla sistemas din´amicos en una PC. Estos programas nos proporcionan
un ambiente flexible de trabajo a la hora del dise˜no y an´alisis del funcionamiento de dis-
tintos controladores o bien del comportamiento del sistema a lazo abierto. Lo interesante
de esto ser´ıa poder contar con ese ambiente pero no solo para ser utilizado en simulacio-
nes y luego programar el controlador en un microprocesador o un PLC que interactuar´an
con el sistema real. Cualquier modificaci´on que queramos realizar sobre el controlador
implica tener que grabar nuevamente el programa en la memoria del microprocesador o
PLC, y en una etapa de dise˜no en la cual se realizan muchas modificaciones esto resulta
engorroso. Por dicha raz´on, nuestra idea fue implementar el control a trav´es de una PC.
En la Figura 1.1 podemos ver un diagrama de los componentes del sistema y del flujo de
se˜nales, que sintetiza lo mencionado anteriormente.
Actuador Sensores-
Sistema fisico
Controlador
Figura 1.1: Diagrama del lazo de control
El bloque Sensores representa los sistemas de medici´on utilizados, el bloque Actuador
representa el sistema de movimiento del brazo y el bloque Controlador la implementaci´on
del controlador. En este capitulo detallaremos cada uno de los bloques que forman parte
del sistema.
10. 2 Descripci´on del Sistema
1.1 Controlador
La implementaci´on del controlador la realizamos a trav´es 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
simulaci´on e implementaci´on de los controladores en la PC son el Real Time Workshop,
Real Time Windows Target [9], MATLAB y SIMULINK. En el diagrama en bloques de la
Figura 1.2 se sintetiza la implementaci´on del controlador.
Placa de
Adquisicion de Datos
Sensores Actuador
Programa de
Simulacion y
Control
Driver
--
6
?
6
?
CONTROLADOR
Figura 1.2: Diagrama de bloques del Controlador
1.1.1 Programa de Simulaci´on y Control
El programa utilizado para las simulaciones y la implementaci´on del control es el SIMU-
LINK. SIMULINK es un paquete de programas para modelado, simulaci´on y an´alisis de
sistemas din´amicos. Soporta sistemas lineales y no lineales, modelados en tiempo con-
tinuo, discreto o un h´ıbrido de ambos. Las simulaciones son interactivas, es decir, se
pueden cambiar par´ametros on-line e inmediatamente ver qu´e est´a sucediendo. Para el
an´alisis de los sistemas se pueden utilizar las herramientas de an´alisis de MATLAB R . Pa-
ra la implementaci´on de los controladores se utilizaron tambi´en los programas Real Time
Workshop y Real Time Windows Target, los cuales nos permiten la ejecuci´on en tiempo
real.
• Real Time Workshop. Es un generador de c´odigo en lenguaje C a partir de diagramas
en bloques de SIMULINK. Adem´as construye programas capaces de ser ejecutados en
tiempo real en una gran variedad de entornos, incluyendo dispositivos como micro-
controladores, placas dedicadas o DSP.
• Real Time Windows Target. Es un programa que permite ejecutar programas, com-
pilados en lenguaje C a trav´es del Real Time Workshop, en una PC bajo sistema
operativo Windows en tiempo real.
1.1.2 Adquisici´on de datos
Placa de Adquisici´on de Datos La placa adquisidora que utilizamos es una Interfaz
M´ultiple para PC de Electroqu´ımica Delta S.R.L. para Slot ISA de PC. Si bien es una placa
11. 1.2 Actuador 3
de bajo costo, cuenta con los requisitos que demanda nuestro proyecto, veamos algunas
de sus principales caracter´ısticas:
• 8 entradas digitales.
• 8 salidas digitales.
• 8 entradas anal´ogicas de 0V a 5V ´o 0V a 5.12V con una resoluci´on de 8 bits.
• 2 salidas anal´ogicas de 0 a 5V ´o 0V a 5.12V con una resoluci´on de 8 bits.
Driver La forma en la que interact ´ua esta placa con los distintos programas es a trav´es de
registros o direcciones de memoria de la PC. Las distintas funciones de la placa se efect ´uan
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 trav´es de un programa
denominado driver.
1.2 Actuador
A continuaci´on citamos algunas de las caracter´ısticas principales del motor de corriente
continua que, como mencionamos anteriormente, es qui´en proveer´a el movimiento del
brazo:
• Sin escobillas.
• Tensi´on nominal de alimentaci´on: 24V.
• Consumo de corriente: 2A.
• Reducci´on: a engranajes, 1:130.
En la Figura 1.3, mostramos el diagrama de bloques del Actuador.
Bloque
PC
-
--
H
Puente
On/OffPWM
Generador
Dir
M
Figura 1.3: Diagrama de bloques del Bloque motor
El Generador de PWM, es el encargado de generar una se˜nal cuadrada, con tiempo
activo proporcional a una se˜nal de 0 a 5V proveniente de la placa de adquisici´on de datos.
Mientras la se˜nal de direcci´on proviene de una salida digital.
El Puente H es la etapa de potencia e inversor de marcha que alimenta al motor.
12. 4 Descripci´on del Sistema
1.2.1 Limitaciones debidas al Actuador (Motor)
Los actuadores son origen de limitaciones de desempe˜no en control. En particular, consi-
deraremos
• restricciones en actuaci´on m´ınima, y
• restricciones en actuaci´on m´axima.
Estas restricciones pueden ser tanto en amplitud, como en velocidad.
Restricciones de Actuaci´on M´ınima
Una limitaci´on frecuente es la imposibilidad de efectuar actuaciones arbitrariamente pe-
que˜nas. Un caso t´ıpico es el de un controlador que act ´ua mediante un dispositivo cuan-
tizado. En nuestro caso la actuaci´on la realizamos a trav´es de una salida anal´ogica de la
placa adquisidora que, como podemos ver en A.1, entrega una tensi´on de 0-5V a trav´es de
un conversor digital/anal´ogico de 8 bits. Por lo tanto tendremos solo 256 niveles distintos
de actuaci´on.
Cuando la actuaci´on est´a cuantizada, el m´ınimo error est´atico de seguimiento estar´a
limitado por el umbral de cuantizaci´on del actuador en general no podr´a conseguirse error
nulo en r´egimen permanente. Otro caso en que existen limitaciones de actuaci´on m´ınima
se origina en la existencia de elementos mec´anicos con fricci´on est´atica (el actuador ”se
pega”).
Restricciones de Actuaci´on M´axima
En la pr´actica, todos los actuadores tienen l´ımites m´aximos de actuaci´on, que pueden
alcanzarse si la se˜nal de control experimenta picos elevados o cambios bruscos en la
referencia, y as´ı, el actuador satura.
El limitador saturaci´on se define, Figura 1.4, por
u(t) = sat( ˆu(t))) =
umax si ˆu(t) umax,
ˆu(t) si umin ≤ ˆu(t) ≤ umax,
umin si ˆu(t) umin.
u(t)
ˆu(t)
umax
umax
umin
umin
Figura 1.4: Saturaci´on
La se˜nal m´axima de actuaci´on umax es 15V y la m´ınima umin es −15V, si bien la tensi´on
nominal del motor es 24V. Elegimos este valor de tensi´on ya que en las simulaciones
previas el valor de tensi´on en el r´egimen permanente rondaba los ±2V. Si utilizamos como
tensi´on m´axima los 24V, debido a la discretizaci´on de la placa de adquisici´on de datos, la
m´ınima actuaci´on es de 24
255 = 0.0941. Es decir, en el rango ±2V tendremos 42 niveles de
actuaci´on distintas, en cambio, si tomamos como actuaci´on m´axima 15V aumenta a 68.
Con este razonamiento, una pregunta ser´ıa por qu´e no bajar m´as la tensi´on. El problema
se presenta cuando, a menor tensi´on, el motor se mueve con menos velocidad, no teniendo
la suficiente reacci´on.
13. 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 p´endulo. En cada uno de los casos utilizamos m´etodos de medici´on
diferentes, por lo tanto veamos a cada uno en forma separada.
La descripci´on detallada de los sensores la encontramos en A.3.
Medici´on 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 medici´on 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 l´ogica encargada
de contar los pulsos fue implementada en la PC, utilizando dos entradas digitales de la
placa adquisidora para leer los pulsos del encoder.
Medici´on del ´Angulo del P´endulo El sensor que utilizamos es un sensor magn´etico, estos
sensores usan la propiedad por la cual un material magn´etico cambia su resistencia en
presencia de un campo magn´etico.
1.3.1 Limitaciones debidas a Sensores
Los sensores son una parte crucial de cualquier dise˜no en un sistema de control, dado
que proveen la informaci´on necesaria a partir de la cual se genera la acci´on de control.
Podemos pensar que son los ”ojos” del controlador, por lo que cualquier defecto signifi-
cativo, o error en la medici´on tendr´a un impacto significativo en el desempe˜no global del
sistema. Los principales dificultades asociadas a los sensores tienen origen en
• ruido, inherente a la medici´on, y
• cuantificaci´on, inherente a la discretizaci´on, Figura 1.5.
Angulo medido
Angulo real
Figura 1.5: Cuantificaci´on
El ruido por lo general es de alta frecuencia por lo que antes de realizar la medici´on
filtramos la se˜nal con un filtro pasabajos.
El problema de la cuantificaci´on 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 variaci´on de ´angulo menor a ese valor.
14. 6 Descripci´on del Sistema
El sensor del p´endulo, nos entrega una tensi´on de 0-5V correspondiente a una varia-
ci´on de ´angulo de ±18o (ver A.3). Al ser el conversor de la placa adquisidora de 8 bits,
este sensa solamente 256 niveles de tensi´on distintos. Por lo que la m´ınima variaci´on de
´angulo que sensar´a ser´a 18o
256 , en radianes 0.0024.
15. Cap´ıtulo 2
Modelizaci´on Matem´atica del Sistema
La modelizaci´on es el primer paso en el dise˜no de un lazo de control. Cuanto mayor es el
conocimiento del proceso, mejores son los resultados que obtendremos, ya que el dise˜no
del control ser´a basado en el modelo. Para conocer la din´amica del sistema, podemos
deducir su comportamiento a partir de las leyes f´ısicas que lo rigen, como el´ectricas,
mec´anicas, t´ermicas, etc. o podemos utilizar t´ecnicas de identificaci´on de sistemas, que
tiene que ver con el problema de construir el modelo matem´atico de sistemas din´amicos a
partir de la observaci´on de entradas y salidas del sistema [6].
En este cap´ıtulo detallaremos la obtenci´on del modelo matem´atico del p´endulo in-
vertido rotatorio a partir de las leyes f´ısicas que lo gobiernan. Para obtener el modelo
matem´atico utilizamos las ecuaciones de Euler-Lagrange, que proporcionan dos ecuacio-
nes diferenciales ordinarias de segundo orden no lineales, las que escribimos como cuatro
funciones diferenciales de primer orden no lineales (ecuaciones de estado). Dado que el
modelo obtenido es no lineal, linealizamos el sistema alrededor del puntos de operaci´on
(equilibrio del sistema) que propusimos como especificaciones en el Capitulo 0.1: estabili-
zar el p´endulo en forma vertical y controlar el ´angulo del brazo.
2.1 Ecuaciones de movimiento del p´endulo invertido
Una de las formas m´as eficientes de encontrar las ecuaciones de movimiento de un siste-
ma rob´otico es aplicando las ecuaciones de Euler-Lagrange. En primer lugar calculamos
el Lagrangiano, que es la energ´ıa cin´etica menos la energ´ıa potencial del sistema. Para
ello utilizaremos el diagrama simplificado de la Figura 2.1 . Las ecuaciones que des-
criben el movimiento las encontramos calculando algunas derivadas del Lagrangiano e
igual´andolas a la fuerza aplicada (fricci´on y torque del motor).
2.1.1 Ecuaciones de Euler-Lagrange
Para escribir las ecuaciones de Euler-Lagrange, necesitaremos calcular derivadas parcia-
les del Lagrangiano, donde definimos el Lagrangiano L como
L(q(t), ˙q(t)) = Ecin
Energ´ıa cin´etica
− Epot
Energia potencial
, (2.1)
con
q(t) =
θ(t)
ψ(t)
y ˙q(t) =
˙θ(t)
˙ψ(t)
(2.2)
Las ecuaciones de Euler-Lagrange en notaci´on vectorial est´an definidas como
d
dt
∂L
∂ ˙q
−
∂L
∂q
= f , (2.3)
16. 8 Modelizaci´on Matem´atica del Sistema
donde f es cualquier momento aplicado al sistema, por ejemplo el torque de un motor o
fricci´on. La ecuaci´on (2.3) es simplemente una forma diferente del Principio de D’Alambert
o de las ecuaciones de movimiento de Newton.
Calculamos ahora la energ´ıa cin´etica y potencial para calcular el Lagrangiano y luego
derivarlo En la Figura 2.1 podemos ver un esquema simple del p´endulo y las variables.
m, g
x
z
ψ
θ
y
l
r,I
θ: ´angulo entre el p´endulo y la vertical
ψ: ´angulo de giro del brazo
m: masa del p´endulo
l: longitud del p´endulo
I: inercia del brazo
r: radio de giro del brazo
g: gravedad
Figura 2.1: Esquema del p´endulo invertido rotatorio
Energ´ıa potencial del p´endulo invertido
La energ´ıa potencial es almacenada en el p´endulo invertido y depende de la elevaci´on del
centro de masa m, suponiendo que el brazo del p´endulo no tiene masa. Por lo que resulta
Epot = mgl cosθ. (2.4)
Energ´ıa cin´etica del p´endulo invertido
Para calcular la energ´ıa cin´etica consideramos los dos cuerpos como si estuvieran aisla-
dos. Calculamos la energ´ıa cin´etica de cada uno de ellos y tomamos como energ´ıa cin´etica
total la resultante entre ambas.
• Brazo giratorio: La energ´ıa cin´etica del brazo giratorio es
Ecin1 =
1
2
I ˙ψ2
. (2.5)
siendo ˙ψ la velocidad angular del brazo.
• Centro de masa del p´endulo: Para calcular la energ´ıa cin´etica total absoluta del
centro de masa del p´endulo, debemos considerar ambos movimientos, en direcci´on
vertical y horizontal.
A la componente horizontal de la velocidad del centro de masa contribuye la rotaci´on
del brazo, es decir
vm,h = r ˙ψ + l ˙θ cosθ,
con ˙θ la velocidad angular del p´endulo.
La componente vertical de la velocidad es
vm,v = l ˙θ sinθ.
17. 2.1 Ecuaciones de movimiento del p´endulo invertido 9
Resultando as´ı el valor absoluto de la velocidad la suma del cuadrado de ambos
componentes
v2
= v2
m,h + v2
m,v = l2 ˙θ2
+ r2 ˙ψ2
+ 2rl cosθ ˙θ ˙ψ,
de donde la energ´ıa cin´etica total del p´endulo resulta
Ecin2 =
1
2
mv2
=
1
2
ml2 ˙θ2
+
1
2
r2
m ˙ψ2
+ rlm ˙θ ˙ψ cosθ. (2.6)
Reemplazando en la ecuaci´on del Lagrangiano, ecuaci´on (2.1), la energ´ıa potencial (2.4)
y la energ´ıa cin´etica total (suma de (2.5) y (2.6)), obtenemos
L(q(t), ˙q(t)) =
1
2
[I ˙ψ2
+ ml ˙θ2
+ r2
m ˙ψ2
+ 2rlm ˙θ ˙ψ cosθ] − mgl cosθ,
que podemos escribir en forma matricial como
L(q(t), ˙q(t)) =
1
2
˙θ ˙ψ
ml2 mrl cosθ
mrl cosθ I + mr2
˙θ
˙ψ
− mgl cosθ
=
1
2
˙qT
M(q) ˙q − Epot,
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
∂ ˙q
= M(q) ˙q (dado que la matriz M es sim´etrica) y
∂L
∂q
=
1
2
˙qT ∂M(q)
∂q
˙q −
∂Epot
∂q
.
Si ahora derivamos la derivada del Lagrangiano respecto de t, utilizando la regla del pro-
ducto, obtenemos
d
dt
∂L
∂ ˙q
= M(q) ¨q +
d
dt
(M(q) ˙q.
Notemos que
d
dt
(M(q)) ˙q ≡ ˙qT ∂M(q)
∂q
˙q.
Escribamos la ecuaci´on de Euler-Lagrange (2.3) con los resultados obtenidos
M(q) ¨q
1
+
1
2
˙qT ∂M(q)
∂q
˙q
2
+
∂Epot
∂q
3
= f
4
, (2.7)
donde cada uno de los t´erminos de la ecuaci´on anterior representa
1. t´ermino referido a la inercia de la masa
2. t´ermino de cori´olisis
3. t´ermino gravitacional
4. fuerzas o momentos externos aplicados
18. 10 Modelizaci´on Matem´atica del Sistema
Despejando la derivada de mayor orden, en este caso ¨q, de (2.7) tenemos
¨q =M−1
(q) −
1
2
˙qT ∂M(q)
∂q
˙q −
∂Epot
∂q
+ f
=M−1
(q) −
1
2
d
dt
M(q) ˙q −
∂Epot
∂q
+ f
(2.8)
Notemos que det M = 0, por lo que la matriz M es invertible.
Escribimos la ecuaci´on (2.8) reemplazando a M, a q y ˙q por la matriz y los vectores
correspondientes, quedando as´ı
¨θ
˙ψ
=
ml2 mrl cosθ
−mrl cosθ I + mr2
−1
−
1
2
0 −mrl sinθ ˙θ
−mrl sinθ ˙θ 0
˙θ
˙ψ
−
−mgl sinθ
0
+
fθ
fψ
(2.9)
donde fθ es la fuerza de rozamiento del p´endulo y fψ = τ es el torque aportado por el
motor, la entrada del sistema. Dado que no vamos a controlar el p´endulo con el torque del
motor sino con la tensi´on, necesitamos una ecuaci´on que nos relacione el torque τ con la
tensi´on del motor, u. Para ello calculamos el modelo matem´atico del motor de corriente
continua.
2.2 Modelo Matem´atico de un Motor de CC
Para calcular el modelo matem´atico del motor de corriente continua, planteamos las ecua-
ciones f´ısicas del sistema. Para ello recurrimos a un diagrama del circuito el´ectrico del
armadura y al diagrama de cuerpo libre del rotor como mostramos en la Figura 2.2, donde
V
+
−
R L
−
+
ψ
b ˙ψ
e = K ˙ψ
τ
J: momento de inercia del rotor
b: factor de amortiguamiento
K: constante de la fuerza electromotriz
R: resistencia el´ectrica
L: inductancia el´ectrica
ψ: posici´on del eje del motor
Figura 2.2: Diagrama de bloques de un motor de CC
El torque del motor, τ, est´a relacionado linealmente con la corriente de armadura, i,
por un factor Kτ . La fuerza contra electromotriz (fcem), e, depende de la velocidad de giro
como muestran las ecuaciones (2.10) y (2.11).
τ = Kτ i (2.10)
e = Ke
˙ψ (2.11)
En el sistema internacional de medidas (SI), la constante de armadura, Kτ y la cons-
tante del motor Ke son iguales, por lo que Kτ = Ke = K.
De la Figura 2.2, podemos escribir las ecuaciones basadas en las leyes de Newton,
(2.12), y en las leyes de Kirchhoff, (2.13).
J ¨ψ + b ˙ψ = Ki (2.12)
L˙i + Ri = v − K ˙ψ (2.13)
19. 2.3 Representaci´on en Modelo de Estado 11
Dado que J, b y L toman valores muy peque˜nos, podemos despreciarlos y as´ı obtenemos
el modelo simple aproximado
τ(t) =
K
R
v(t) −
K2
R
˙ψ(t). (2.14)
2.3 Representaci´on en Modelo de Estado
Nos encontramos frente a un sistema que puede ser descripto por un n ´umero finito de
ecuaciones diferenciales ordinarias, (2.9) y (2.14). En esta secci´on representaremos las
ecuaciones en una forma compacta por la ecuaci´on diferencial vectorial de primer grado
(ecuaciones de estado), que en sistemas continuos es de la forma
˙x = f (x, u), (2.15)
donde x es el vector de variables de estado y u es el vector de entradas de control.
Para escribir nuestro sistema como (2.15), elegimos como variables de estado a x1 =
θ, x2 = ψ, x3 = ˙θ y x4 = ˙ψ, de donde (2.9) resulta
˙θ
˙ψ
¨θ
¨ψ
=
1 0 0 0
0 1 0 0
0 0 ml2 mrl cosθ
0 0 mrl cosθ I + mr2
−1
1
2
0 0 0 0
0 0 0 0
0 0 0 −mrl ˙θ sinθ
0 0 −mrl ˙θ sinθ 0
θ
ψ
˙θ
˙ψ
+
0 0 1 0
0 0 0 1
0 0 0 0
0 0 0 0
θ
ψ
˙θ
˙ψ
−
0
0
−mgl sinθ
0
+
0
0
fθ
fψ
(2.16)
y si reemplazamos el torque del motor fψ por (2.14), con u = v y el rozamiento din´amico
del p´endulo fθ = bs
˙θ, obtenemos el modelo de estado
˙x1 = x3
˙x2 = x4
˙x3 =
(I + mr2)(1
2 mrlx3x4 sin x1 + mgl sin x1 + bsx3)
ml2(I + mr2 − mr2 cos2 x1)
−
r cos x1(1
2 mrlx2
3 sin x1 + K
R u − K2
R x4)
l(I + mr2 − mr2 cos2 x1)
˙x4 =
1
2 mrlx2
3 sin x1 + K
R u − K2
R x4
I + mr2 − mr2 cos2 x1
−
r cos x1(1
2 x3x4 sin x1 + mgl sin x1 + bsx3)
l((I + mr2 − mr2 cos2 x1)
(2.17)
y ahora el sistema del p´endulo sobre un brazo giratorio est´a escrito de la forma (2.15),
donde x ∈ R4 y u ∈ R.
2.4 Linealizaci´on del Sistema
El modelo de estado que obtuvimos en (2.17) es no lineal, como la mayor´ıa de los sistemas
f´ısicos. Bajo ciertas condiciones podemos aproximar el modelo (2.17) con un modelo de
estado lineal incremental. La idea de utilizar un modelo lineal que es mucho m´as simple
el an´alisis del sistema y el dise˜no de controladores.
El proceso de obtenci´on de un modelo lineal a partir de uno no lineal se llama ”linea-
lizaci´on” [2]. La linealizaci´on se realiza alrededor de un punto o trayectoria de operaci´on,
definido por valores nominales, ˜x(t), ˜x0 y ˜u(t), que satisfacen la ecuaci´on (2.15), es decir
˙˜x(t) = f ( ˜x(t), ˜u(t)).
20. 12 Modelizaci´on Matem´atica del Sistema
Nos interesa el comportamiento de la ecuaci´on no lineal (2.15) para una entrada y
estado inicial apenas perturbados de los valores nominales, es decir para u(t) = ˜u(t) + uδ(t)
y x0 = ˜x0 + xδ0 con uδ(t) y xδ0 suficientemente peque˜nos para t ≥ t0. Si suponemos que la
soluci´on permanece cercana a la nominal, en t´erminos de la ecuaci´on de estado no lineal,
tenemos
˙˜x(t) + ˙xδ(t) = f ( ˜x(t) + xδ(t), ˜u(t) + uδ(t)) ˜x(t0) + xδ(t0) = ˜x0 + xδ0.
Supongamos que f (x, u) es diferenciable, entonces podemos usar la serie de Taylor
alrededor de ˜x y ˜u. Si nos quedamos solo con los t´erminos de primer orden para la
componente i de f, resulta
fi( ˜x + xδ, ˜u + uδ) ≈ fi( ˜x, ˜u) +
∂ fi
∂x1
( ˜x, ˜u)xδ1 + · · · +
∂ fi
∂x4
( ˜x, ˜u)xδ4 +
∂ fi
∂u
( ˜x, ˜u)uδ.
Repitiendo para cada i = 1, . . . , 4 y volviendo a la notaci´on vectorial, obtenemos
˙˜x(t) + ˙xδ(t) ≈ f ( ˜x(t), ˜u(t)) +
∂ f
∂x
( ˜x(t), ˜u(t))xδ +
∂ f
∂u
( ˜x(t), ˜u(t))uδ, (2.18)
donde la notaci´on
∂ f
∂x representa la Matriz Jacobiana, del campo vectorial f con respecto al
vector x,
∂ f
∂x
∂ f1
∂x1
· · · ∂ f1
∂x4
...
...
...
∂ f4
∂x1
· · · ∂ f4
∂x4
Por lo que el modelo (2.18) se aproxima con una ecuaci´on de estado lineal de la forma
˙xδ(t) = A(t)xδ(t) + B(t)u(t), xδ(t0) = xδ0,
donde
A(t) =
∂ f
∂x
( ˜x(t), ˜u(t)), B(t) =
∂ f
∂u
( ˜x(t), ˜u(t)). (2.19)
Notemos que el sistema lineal (2.19) resulta inestacionario cuando se trata de una
trayectoria nominal, cuando se trata de un punto de operaci´on, el sistema lineal resulta
estacionario, es decir A(t) = A y B(t) = B .
La trayectoria de operaci´on 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
0 =
(I + mr2)(1
2 mrlx3x4 sin x1 + mgl sin x1 + bsx3)
ml2(I + mr2 − mr2 cos2 x1)
−
r cos x1(1
2 mrlx2
3 sin x1 + K
R u − K2
R x4)
l(I + mr2 − mr2 cos2 x1)
0 =
1
2 mrlx2
3 sin x1 + K
R u − K2
R x4
I + mr2 − mr2 cos2 x1
−
r cos x1(1
2 x3x4 sin x1 + mgl sin x1 + bsx3)
l((I + mr2 − mr2 cos2 x1)
y despejando, obtenemos que el punto de equilibrio resulta
xeq = 0 x2 0 0 ∀ x2 ∈ R
ueq = 0.
21. 2.5 Representaci´on Entrada-Salida 13
Si ahora tomamos el punto de equilibrio xeq y linealizamos el sistema alrededor de
dicho punto utilizando (2.19), obtenemos
A =
∂ f
∂x x=xeq
=
0 0 1 0
0 0 0 1
(I+mr2)g
Il 0 (I+mr2)bs
ml2 I
rK2
lIR
−rmg
I 0 −rbs
lI −K2
IR
B =
∂ f
∂u x=xeq
=
0
0
− rK
lIR
K
IR
Dado que las salidas del sistema son θ y ψ, definimos las matrices
C =
1 0 0 0
0 1 0 0
y D =
0 0
0 0
,
quedando de esta forma el sistema lineal totalmente definido como
˙θ
˙ψ
¨θ
¨ψ
=
0 0 1 0
0 0 0 1
(I+mr2)g
Il 0 (I+mr2)bs
ml2 I
rK2
lIR
−rmg
I 0 −rbs
lI −K2
IR
θ
ψ
˙θ
˙ψ
+
0
0
− rK
lIR
K
IR
u
y =
1 0 0 0
0 1 0 0
θ
ψ
˙θ
˙ψ
.
(2.20)
2.5 Representaci´on Entrada-Salida
La representaci´on entrada-salida no es m´as ni menos que una forma de obtener la salida
de un sistema cualquiera en funci´on de su entrada. Para ello sabemos que la salida del
sistema puede calcularse como
y(t) =
t
0
g(t − τ)u(τ) dτ,
donde g(t) es la respuesta al impulso: la salida del sistema a un impulso unitario en el
instante τ. O, si ya tenemos el modelo en variables de estado,
˙x = Ax + Bu
y = Cx + Du
(2.21)
aplicamos la transformada de Laplace a (2.21) y obtenemos
sX(s) − x(0) = AX(s) + BU(s)
Y(s) = CX(s) + DU(s).
Si despejamos X(s) de la primer ecuaci´on y suponemos que las condiciones iniciales son
nulas, x(0) = 0, y la reemplazamos en la segunda, obtenemos la matriz transferencia
G(s) = C(sI − A)−1
B + D. (2.22)
En nuestro sistema, dado que la matriz A es de cuarto orden, resulta complejo calcu-
lar (sI − A)−1. Por eso utilizaremos una simplificaci´on del modelo lineal, bajo algunas
condiciones sobre nuestras variables que detallaremos.
22. 14 Modelizaci´on Matem´atica del Sistema
2.6 Simplificaci´on del Modelo
Para obtener el modelo de estado simplificado partiremos de suponer que el sistema tiene
rozamiento din´amico en el p´endulo despreciable, es decir bs ≈ 0. Adem´as, como sabemos
la inercia, I, del brazo giratorio del p´endulo se puede escribir en funci´on de su masa como
I = Mr2, donde r el radio de giro del brazo.
Si ahora escribimos el t´ermino de la fila 3 y 4 de la columna 1 de la matriz A de la
linealizaci´on (2.20) en funci´on de la masa del brazo, resulta
a31 =
(I + mr2)g
Il
=
(M + m)g
Ml
y a41 = −
rmg
I
= −
mg
Mr
. (2.23)
Si tenemos en cuenta que M m, entonces a31 =
g
l
y a41 =
mg
Mr
≈ 0, por lo que el modelo
(2.20) se reduce a
˙θ
˙ψ
¨θ
¨ψ
=
0 0 1 0
0 0 0 1
g/l 0 0 rα/l
0 0 0 −α
¯A
θ
ψ
˙θ
˙ψ
+
0
0
−rβ/l
β
¯B
u, con α =
K2
Mr2R
y β =
K
Mr2R
. (2.24)
Calculamos ahora la matriz transferencia (2.22) para el sistema (2.24). Para ello pri-
mero calculamos
(sI − ¯A)−1
=
s 0 −1 0
0 s 0 −1
−g/l 0 s −rα/l
0 0 0 s +α
−1
=
1
s(s +α)(s2 − g/l)
s2(s +α) 0 s(s +α) srα/l
0 (s +α)(s2 − g/l) 0 s2 − g/l
s(s +α)g/l 0 s2(s +α) s2rα/l
0 0 0 s(s2 − g/l).
De donde
Y(s) =
Θ(s)
Ψ(s)
=
−s rβ/l
(s +α)(s2 − g/l)
β
s(s +α)
U(s). (2.25)
2.7 Ajuste de los Par´ametros en forma Aproximada
Dado que el dise˜no de los controladres ser´a basado en el modelo matem´atico del siste-
ma, necesitamos conocer los valores num´ericos de los par´ametros. Mucho de ellos son
variables que podemos medir o que conocemos, como
• l = 0.3 [m]
• r = 0.27 [m]
• M = 0.5 [kg]
• m = 0.05 [kg]
23. 2.7 Ajuste de los Par´ametros en forma Aproximada 15
• g = 9.8 [m/seg2]
Los par´ametros relacionados con el motor, R y K, no los conocemos. Motivo por el cual es-
timaremos es forma aproximada utilizando un m´etodo iterativo, previamente verificamos
su funcionamiento en simulaci´on. En esta secci´on describiremos los pasos que seguimos
para ajustar los par´ametros del modelo.
Bajo las consideraciones detalladas en 2.6 para obtener el modelo simplificado, vemos
que el motor se comporta independientemente del p´endulo. Por lo que estimaremos los
valores de α y β solo con el motor. Para ello procedimos de la siguiente manera:
1. Excitamos al sistema con un escal´on de amplitud 1.5 V a lazo abierto durante un
segundo con un per´ıodo de muestreo de T = 1/1000 seg y guardamos los valores que
obtuvimos en la salida ψ.
2. Obtenemos la funci´on transferencia que relaciona la entrada u con la salida ψ, de
(2.24), en funci´on de α y β, dando como resultado
Ψ(s)
U(s)
=
β
s(s +α)
. (2.26)
3. Dimos valores a α y a β hasta lograr una salida que compar´andola con las muestras
obtenidas tenga un error aceptable.
4. La Figura 2.3 muestra el resultado obtenido mediante simulaci´on del sistema (2.26),
con
α = 11.8
β = 9.8
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0
0.2
0.4
0.6
0.8
1
1.2
1.4
Tiempo
Radianes
Datos Simulados
Datos Reales
Figura 2.3: Comparaci´on entre la salida real y la aproximada
24. 16 Modelizaci´on Matem´atica del Sistema
Por lo tanto queda as´ı definido el sistema (2.24) por todos sus par´ametros como ecua-
ci´on de estado
˙θ
˙ψ
¨θ
¨ψ
=
0 0 1 0
0 0 0 1
32.66 0 0 10.62
0 0 0 −11.8
θ
ψ
˙θ
˙ψ
+
0
0
−8.82
9.8
u
y =
1 0 0 0
0 1 0 0
θ
ψ
˙θ
˙ψ
(2.27)
y como funci´on transferencia
Θ(s)
Ψ(s)
=
−8.82s
(s + 11.8)(s2 − 32.66)
9.8
s(s + 11.8)
U(s).
25. Cap´ıtulo 3
Dise˜no de Controladores y Simulaci´on
En este cap´ıtulo desarrollaremos diversas t´ecnicas de dise˜no de control basadas en el
modelo matem´atico del sistema, para lo que debemos plantear cu´ales son nuestras es-
pecificaciones de dise˜no, es decir c´omo queremos que se comporte el sistema luego de
calculado el control . Comenzaremos con t´ecnicas de control simples, tomando al sistema
como dos sistemas de una entrada y una salida en cascada, llamada control en casca-
da. Luego desarrollamos t´ecnicas m´as complejas utilizando las ecuaciones en espacio de
estado como realimentaci´on de estado.
Para el control en cascada utilizamos la representaci´on entrada-salida del sistema
(2.25) y a trav´es de la asignaci´on de polos [3] dise˜naremos el control. Para la realimenta-
ci´on de estado utilizaremos un regulador lineal cuadr´atico (LQR) y dado que solo podemos
medir dos de las cuatro variables de estados, estimaremos las variables de estado no
medidos.
Para el c´alculo de los controladores utilizamos MATLAB. Para analizar el desempe˜no de
cada controlador en el lazo cerrado del sistema, utilizamos SIMULINK, donde armamos el
diagrama de bloques del modelo no lineal (2.17). Aplicamos cada controlador dise˜nado a
este sistema para que la simulaci´on se aproxime al sistema real.
A continuaci´on detallaremos cada una de las t´ecnicas utilizadas, desarrollando algu-
nas herramientas necesarias para cada t´ecnicas, y detallaremos tambi´en los resultados
obtenidos en la simulaci´on.
3.1 Control en Cascada
El control en cascada es una estructura alternativa de control, cuya idea b´asica es reali-
mentar variables intermedias en un sistema SISO1 [3]. Esta estructura, representada en
la Figura 3.1, tiene dos lazos:
• un lazo primario con un controlador primario K1(s), y
• un lazo secundario con un controlador secundario K2(s).
Los principales beneficios del control en cascada se obtienen
(i) cuando G2(s) tiene alinealidades significativas que limiten el desempe˜no del lazo, o
(ii) cuando G1(s) impone limitaciones al ancho de banda en una estructura de control
b´asica.
El caso (ii) se da, por ejemplo, cuando G1(s) tiene ceros de fase no m´ınima o retardos
temporales. Como veremos en esta secci´on, en nuestro problema G1(s) tiene un cero de
fase no m´ınima.
1
Siglas que significa una entrada una salida (single input single outpu)
26. 18 Dise˜no de Controladores y Simulaci´on
d j j d--
6
-..- - .... --
6
R(s)
K1(s) K2(s)
+
−
+
−
Lazo secundario
G1(s)
Y(s)
Lazo primario
G2(s)
T2(s)
Figura 3.1: Estructura de control en cascada
Si pensamos nuestro problema como si fuera SISO, tomando como entrada U(s) y sa-
lida Ψ(s), donde adem´as medimos el ´angulo del p´endulo Θ(s), podemos reescribir nuestro
sistema como muestra la Figura 3.2, teniendo en cuenta (2.25).
c
c
c-
-
- -−(s2−g/l)
r/l s2
−βr/l s
(s2−g/l)(s+α)
Ψ(s)
Θ(s)
U(s)
Figura 3.2: Diagrama de bloques del p´endulo como si fuera un sistema SISO
El dise˜no de la Figura 3.1, puede separarse en dos etapas:
1. Lazo secundario. Dise˜namos K2(s) para estabilizar el ´angulo del p´endulo Θ(s), as´ı
obtenemos la funci´on de sensibilidad complementaria (transferencia a lazo cerrado)
para el lazo secundario como
T2(s) =
G2(s)K2(s)
1 + G2(s)K2(s)
, donde G2(s) =
−βr/l s
(s2 − g/l)(s +α)
.
2. Lazo primario. Una vez dise˜nado K2(s) para estabilizar el ´angulo del p´endulo Θ(s),
el controlador primario K1(s) puede dise˜narse tomando como planta equivalente
T2(s)G1(s), donde
G1(s) =
−(s2 − g/l)
r/l s2
.
3.1.1 Dise˜no de K2(s) por Asignaci´on de Polos
En esta secci´on detallaremos la t´ecnica utilizada para dise˜nar el controlador K2(s), que
estabiliza el ´angulo del p´endulo. La t´ecnica utilizada es por asignaci´on de polos [3], pero
antes mencionaremos de qu´e se trata esta t´ecnica.
Asignaci´on de Polos La t´ecnica de asignaci´on de polos trata b´asicamente en ubicar los
polos del polinomio caracter´ıstico a lazo cerrado en forma arbitraria. Dado un lazo de
control de un grado de libertad como muestra la Figura 3.3, con
G(s) =
B(s)
A(s)
=
bn−1sn−1 + bn−1sn−1 + · · · + b0
ansn + an−1sn−1 + · · · + a0
y (3.1)
K(s) =
P(s)
L(s)
=
pnp snp + pnp−1snp−1
+ · · · + p0
lnl
snl + lnl−1snl−1 + · · · + l0
,
27. 3.1 Control en Cascada 19
Las cuatro funciones de sensibilidad asociadas al lazo de la Figura 3.3 vienen dadas por
T(s)
G(s)K(s)
1 + G(s)K(s)
=
B(s)P(s)
A(s)L(s) + B(s)P(s)
Sensibilidad complementaria (3.2)
S(s)
1
1 + G(s)K(s)
=
A(s)L(s)
A(s)L(s) + B(s)P(s)
Sensibilidad (3.3)
Si(s)
G(s)
1 + G(s)K(s)
=
B(s)L(s)
A(s)L(s) + B(s)P(s)
Sensibilidad de perturbaci´on de entrada
(3.4)
Su(s)
K(s)
1 + G(s)K(s)
=
A(s)P(s)
A(s)L(s) + B(s)P(s)
Sensibilidad de control (3.5)
y donde el polinomio Alc(s) A(s)L(s) + B(s)P(s) se llama polinomio caracter´ıstico a lazo
cerrado.
j jj
j
- -- - -
?
-
6
6
?
G(s)
Y(s)U(s)
−
Dm(s)
Di(s) Do(s)
R(s)
K(s)
Figura 3.3: Lazo de control de un grado de libertad
Nuestro objetivo es ver bajo qu´e condiciones dados B(s) yA(s), que definen nuestra
planta, se pueden dise˜nar P(s) y L(s) tal que el polinomio caracter´ıstico a lazo cerrado sea
Alc(s). El siguiente lema resume estas condiciones (demostraci´on ver [3]).
Lema 1 (Asignaci´on de Polos SISO). Consideremos un lazo de realimentaci´on de un
grado de libertad con un controlador K(s) y un modelo nominal G(s) dado por (3.1). Su-
poniendo que A(s) y B(s) son coprimos 2 y que sus grados son n y n − 1, respectivamente.
Sea Alc(s) un polinomio arbitrario de grado nlc = 2n − 1. Entonces existen polinomios P(s)
y L(s), con grados np = nl = n − 1 tal que
A(s)L(s) + B(s)P(s) = Alc(s) (3.6)
Notemos que si elegimos Alc(s) estable 3, y si adem´as 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.
Volvamos a nuestro problema, dise˜nar K2(s) = P2(s)
L2(S) tal que estabilice el lazo tomando
B(s) = −βr/l s y A(s) = (s2
− g/l)(s +α),
2
no tienen factores en com ´un
3
con todos sus ceros con parte real negativa
28. 20 Dise˜no de Controladores y Simulaci´on
donde el grado de la planta es n = 3. Seg ´un el Lema 1, tenemos que elegir nlc = 2n − 1 = 5
para que existan polinomios P2(s) y L2(s) de grado np = nl = n − 1 = 2 que satisfagan (3.6).
Para la elecci´on de Alc(s) vamos a recurrir a la cancelaci´on estable de los factores de A(s),
es decir vamos a elegir Alc(s) = (s + g/l)(s +α) ¯Alc(s), donde ahora ¯Alc(s) tiene orden 3.
De esta forma nuestro polinomio caracter´ıstico a lazo cerrado se reduce a
(s + g/l)(s +α) ¯Alc(s)
Alc(s)
= P2(s) (−βr/l s)
B(s)
+L2(s) (s2
− g/l)(s +α)
A(s)
,
que para que podamos realizar la cancelaci´on 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 ecuaci´on diofantina que nos queda es
¯Alc(s) = p0
¯P2(s)
(−βr/l s) + (s2
+ l1s + l0)
L2(s)
(s − g/l). (3.7)
Si tomamos ¯Alc(s) = s3 + c2s2 + c1s + c0, y expresamos (3.7) en forma de sistema de
ecuaciones matricial, obtenemos
1 0 0
0 1 −βr/l
0 0 − g/l
Me
l1
l2
p0
=
c2 + g/l
c1
c0
,
que admite soluci´on ya que Me es no singular, es decir det Me = 0.
Lo ´unico que nos queda ahora es elegir coeficientes de ¯Alc(s) tal que sea estable. La
elecci´on de este polinomio no es trivial ya que nuestra G2(s) es inestable, y existen limi-
taciones de dise˜no para la sensibilidad complementaria cuando existen polos inestables
en el sistema. En la siguiente secci´on detallaremos estas limitaciones y c´omo elegir el
polinomio caracter´ıstico en estos casos [8].
Limitaciones de Dise˜no Impuestas por G2(s) para la Elecci´on de ¯Alc(s)
En esta secci´on discutiremos los compromisos de dise˜no que existen en la respuesta
temporal debida a la entrada escal´on en un sistema SISO. Estos compromisos de dise˜no
se originan en limitaciones estructurales de la planta a controlar impuestas por polos
inestables y ceros de fase no m´ınima4 de su funci´on transferencia. Estas limitaciones son
inevitables para cualquier controlador que estabilice el lazo. Por ejemplo, como veremos
a continuaci´on, los polos inestables a lazo abierto implican la existencia de sobrevalor en
la respuesta, e inducen un compromiso de dise˜no entre la magnitud de este sobrevalor y
el tiempo de establecimiento de la respuesta.
Respuesta al escal´on Definamos los par´ametros que describen las propiedades rele-
vantes de la din´amica de los sistemas 5, considerando como respuesta al escal´on la Figura
3.4
• valor en el r´egimen estacionario, y∞: el valor final de la respuesta al escal´on (esto
no tiene sentido si el sistema tiene polos en el SPD 6).
4
ceros con parte real positiva
5
Existen distintas definiciones para estos par´ametros en la literatura, nosotros adoptamos las definiciones
propuestas por [7]
6
SPD: semiplano derecho
29. 3.1 Control en Cascada 21
Tiempo
y∞ + ysob
y∞ + δ
y∞ − δkr y∞
te
y∞
tc tp
−ysub
0
Figura 3.4: Indicadores de la respuesta escal´on
• Tiempo de crecimiento, tc: el tiempo que transcurre hasta el instante en el cual
la respuesta al escal´on alcanza, la primer vez, el valor kr y∞. La constante kr var´ıa
seg ´un el autor, com ´unmente se toma tanto 0.9 o 1.
• Sobrevalor, ysob: el m´aximo valor por el que la respuesta el escal´on excede su valor
final. Generalmente se expresa como un porcentaje de y∞.
• subvalor, ysub: el m´aximo (valor absoluto) por el que la respuesta al escal´on pasa por
debajo del cero.
• Tiempo de establecimiento, te: el tiempo transcurrido hasta que la respuesta al
escal´on ingresa (sin dejarlo en tiempo subsiguiente) a una banda ±δ, alrededor del
valor final. Esta banda δ, generalmente se define como un porcentaje de y∞, 2% a
5%
Veamos el siguiente resultado, que no vamos a demostrar, para m´as detalles ver [8].
Corolario 1. [Polos inestables reales y sobrevalor]. Si la planta tiene un polo inestable real
en p 0, su respuesta al escal´on tiene forzosamente sobrevalor. M´as a´un, si tc es el tiempo
de crecimiento del sistema a lazo cerrado, entonces se cumple que
ysob ≥
(ptc − 1)eptc + 1
ptc
≥
ptc
2
.
Sigue del Corolario 1 que si la planta tiene un polo inestable:
• necesariamente hay sobrevalor en la respuesta al escal´on
• el sobrevalor ser´a mayor cuanto mayor sea el tiempo de respuesta del lazo cerrado.
Es decir los polos inestables demandar´an acci´on de control r´apida para un mejor desem-
pe˜no (menor sobrevalor). Cuanto mayores (m´as r´apidos) sean los polos inestables, mayor
ser´a esta demanda.
En conclusi´on podemos extraer la siguiente regla pr´actica de dise˜no para evitar gran-
des sobrevalores.
30. 22 Dise˜no de Controladores y Simulaci´on
El polo dominante a lazo cerrado debe ser mayor (en magnitud) que cualquier
polo inestable a lazo abierto del sistema.
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 alg ´un valor un poco mayor para hacer
la acci´on de control r´apida. Utilizamos los valores de los par´ametros descriptos en la
secci´on 2.7, donde
G2(s) =
−8.82s
(s + 11.8)(s2 − 32.66)
.
Propusimos tres polos r´apidos para la elecci´on 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 ecuaci´on (3.7) dando como resul-
tado el controlador
K2(s) =
−129.67(s + 11.8)(s + 5.715)
(s + 52)(s − 7.341)
, y T2(s) =
1143.7s
(s + 14)(s + 13)(s + 12)
.
3.1.2 Dise˜no de K1(s)
Una vez estabilizado el lazo secundario, seleccionamos K1(s) tal que estabilice el lazo de la
Figura 3.5. Para ello debemos tomar como sistema a lazo abierto a
T2(s)G1(s) =
−p0βr/l s
¯Alc
−(s2 − g/l)
r/l s2
=
p0βr/l(s2 − g/l)
r/l s ¯Alc
, (3.8)
que tiene un polo en el origen y un cero de fase no m´ınima que impondr´an limitaciones
en el dise˜no.
clle - -
6
----
6
-
Ψ(s)Θ(s)
−
R(s)
−
−(s2−g/l)
r/l s2
−βr/l s
(s2−g/l)(s+α)
p0(s+
√
g/l)(s+α)
s2+l1s+l0
K1(s)
T2(s) = −p0βr/l s
¯Alc
Figura 3.5: Dise˜no del lazo primario
Limitaciones de Dise˜no Impuestas por G1(s)T2(s)
Como vi´eramos en 3.1.1, tanto los polos inestables como los ceros de fase no m´ınima,
imponen limitaciones en el dise˜no, por ejemplo, implican la existencia de subvalor, indu-
ciendo un compromiso entre la magnitud de ´este y el m´aximo tiempo de establecimiento de
la respuesta, como veremos a continuaci´on citando un resultado parecido al del Corolario
1, de [8].
31. 3.1 Control en Cascada 23
Corolario 2. [Ceros de fase no m´ınima y subvalor]. Si la planta tiene un cero de fase no
m´ınima real en q 0, su respuesta al escal´on tiene forzosamente subvalor. M´as a´un, si te
es el tiempo de establecimiento a un nivel δ del sistema a lazo cerrado, entonces se cumple
que
ysub ≥
1 − δ
eqte − 1
.
La interpretaci´on del Corolario 2, es que si la planta tiene un cero real de fase no
m´ınima
• necesariamente hay subvalor en la respuesta al escal´on
• el pico del subvalor ser´a mayor cuanto menor sea el tiempo de establecimiento del
lazo cerrado.
Es decir, los ceros de fase no m´ınima demandar´an acci´on de control lenta para un
mejor desempe˜no (menor subvalor). Cuanto menores (m´as lentos) sean los ceros de fase
no m´ınima, mayor ser´a esta demanda.
En conclusi´on podemos extraer la siguiente regla pr´actica de dise˜no para evitar gran-
des subvalores.
El polo dominante a lazo cerrado debe ser menor (en magnitud) que el menor cero
de fase no m´ınima del sistema.
Si retomamos nuestro sistema con los valores constantes, con
G1(s) =
−(s2 − 32.66)
0.9s2
⇒ G1(s)T2(s) =
−1270.7(s2 − 32.66)
s(s + 14)(s + 13)(s + 12)
. (3.9)
En la Figura 3.6, vemos el lugar de ra´ıces, obtenido con el comando rlocus de MATLAB,
de G1(s)T2(s). Este gr´afico muestra donde se ubicar´an 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 ra´ıces 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
T1(s) =
−25.41(s2 − 32.66)
(s + 20)(s + 0.35)(s2 + 17.7s + 95.05)
.
3.1.3 Simulaci´on
En esta secci´on tomamos los controles K1(s) y K2(s) y los implementamos en SIMULINK
para analizar el desempe˜no 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 simulaci´on, donde el
bloque Alinealidades representa, en forma aproximada las perturbaciones del motor: la
32. 24 Dise˜no de Controladores y Simulaci´on
−15 −10 −5 0 5 10 15 20
−10
−8
−6
−4
−2
0
2
4
6
8
10
Real Axis
ImagAxis
Figura 3.6: Lugar de ra´ıces de G1(s)T2(s)
fricci´on est´atica (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 condici´on 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
fricci´on est´atica.
ψ(t)
ˆψ(t)0.15
Figura 3.7: Fricci´on est´atica del motor
La Figura 3.9 muestra los resultados obtenidos luego de simular el lazo cerrado duran-
te 20 segundos. En el gr´afico de la izquierda mostramos la comparaci´on entre la posici´on
del brazo sin tener en cuenta el rozamiento est´atico 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 posici´on del ´angulo.
33. 3.1 Control en Cascada 25
Discretización Psi
Tita
Step3 Saturacion
de la actuacion
Psi
u
tita
psi
Pendulo no lineal1
K2d
K2
.1
K1
Discretizacióo Tita
Discretizacion
de la Actuacion
In1 Out1
Alinealidades
Figura 3.8: Diagrama de bloques de la simulaci´on
0 2 4 6 8 10 12 14 16 18 20
−0.06
−0.04
−0.02
0
0.02
0.04
0.06
0.08
0.1
0.12
Tiempo [seg]
Posición[rad]
con alinealidades
sin alinealidades
0 2 4 6 8 10 12 14 16 18 20
−0.04
−0.03
−0.02
−0.01
0
0.01
0.02
0.03
0.04
0.05
0.06
Tiempo[seg]
Posición[rad]
sin alinealidades
con alinealidades
Figura 3.9: Resultados obtenidos, a la derecha θ y a la izquierda ψ
34. 26 Dise˜no de Controladores y Simulaci´on
3.2 Control por Realimentaci´on de Estado
En esta secci´on vamos a introducir conceptos y t´ecnicas de control en sistemas descriptos
por ecuaciones de estado. Los resultados y definiciones de esta secci´on fueron obtenidos
de [2].
Tomemos el sistema a lazo abierto de dimensi´on n y de una sola entrada descripto por
˙x(t) = Ax(t) + Bu(t)
y(t) = Cx(t).
(3.10)
En realimentaci´on de estado, como muestra la Figura 3.10, la se˜nal de control se propone
lineal al estado
u(t) = r(t) − Kx(t). (3.11)
ii - -
66
- -- -
SS
−
r u ˙x x y
A
CB
K
Figura 3.10: Realimentaci´on de estado
La substituci´on 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)
y(t) = Cx(t).
(3.12)
Para utilizar esta t´ecnica estamos suponiendo que todas las variables de estado est´an
al alcance para medirlos. Pero en realidad no es as´ı, en esta secci´on detallaremos c´omo
podemos calcular la matriz de realimentaci´on K para que la din´amica del sistema a lazo
cerrado se comporte de una determinada manera. Veremos tambi´en bajo qu´e condiciones
esto ocurre y qu´e hacer en aquellos casos donde no podemos medir todas las variables de
estado.
3.2.1 Dise˜no de la Matriz K
Una propiedad de sistemas lineales esencial en la realimentaci´on de estado es la de con-
trolabilidad. La controlabilidad tiene que ver con la posibilidad de llevar al sistema de
cualquier estado inicial a cualquier estado final en tiempo finito, no importando qu´e tra-
yectoria se siga, o qu´e entrada se use.
La ecuaci´on de estado (3.10), o el par (A, B), se dice controlable si para cual-
quier estado inicial x(0) = x0 ∈ Rn y cualquier estado final x1 ∈ Rn , existe una
entrada que transfiere el estado x de x0 a x1 en tiempo finito. En caso contrario,
la ecuaci´on (3.10), o el par (A, B), se dice no controlable.
El siguiente Teorema afirma bajo qu´e condiciones existe una matriz K tal que la reali-
mentaci´on de estado con dicha matriz ubique los autovalores del sistema a lazo cerrado
donde queramos (demostraci´on ver [2]).
35. 3.2 Control por Realimentaci´on de Estado 27
Teorema 1 (Asignaci´on de autovalores). Si la ecuaci´on de estado (3.10) es controlable,
entonces mediante la realimentaci´on de estado u(t) = r(t) − Kx(t), donde K es un vector
real constante 1 × n, los autovalores de (A − BK) pueden ser asignados arbitrariamente,
siempre que los autovalores complejos conjugados se asignen en pares.
Un m´etodo para analizar controlabilidad de un sistema dado es que la matriz de con-
trolabilidad C tenga rango n (rango(C) = n), donde
C = B AB . . . An−1B
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 A2B A3B = 4,
por lo que podemos afirmar que el sistema (2.27) es controlable.
Convenientemente, MATLAB tiene la funci´on K=place(A,B,P), que calcula K para ubi-
car los autovalores en los valores dados en el vector P. Lo ´unico que resta hacer es elegir
los autovalores deseados para nuestro sistema, para lo que debemos tener en cuenta las
restricciones estructurales que posee el p´endulo invertido, ver secci´on 3.1.2.
Control LQR Otra forma de calcular la ganancia de realimentaci´on K es siguiendo alg ´un
criterio de optimizaci´on, por ejemplo minimizando el funcional cuadr´atico
J =
t∞
0
[xT
(t)Qx(t) + uT
(t)Ru(t)] dt, (3.13)
donde Q y R son matrices constantes que ponderan las variables de estado y la actuaci´on
respectivamente. Como el criterio se basa en funcionales cuadr´aticos, recibe el nombre
de regulador lineal cuadr´atico (LQR). El funcional J puede interpretarse como el costo total
de la transici´on de las variables de estado de un punto a otro.
Obtener la matriz K, minimizando el funcional (3.13) anal´ıticamente no es tarea f´acil,
ver [1], pero MATLAB cuenta con la funci´on K=lqr(A,B,Q,R). Para ello es necesario ajustar
Q y R hasta obtener el desempe˜no deseado.
Para nuestro dise˜no tomamos
Q =
100 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
y R = 10,
A y B de (2.27) y obtuvimos
K = −24 −0.3 −3.8 −2.4 (3.14)
3.2.2 Seguimiento Robusto: Acci´on Integral
En esta secci´on introducimos un esquema de seguimiento de referencias constantes. La
idea se basa en aumentar la cantidad de variables de estado de la planta, agregando una
nueva: xa que integra el error, es decir
˙xa = r − y = r − Cx,
como mostramos en la Figura 3.11.
36. 28 Dise˜no de Controladores y Simulaci´on
iii - -
66
- -- -
SS
SS -
6
- --
−
u ˙x x y
A
CB
K
−r
Ka
xa
Figura 3.11: Diagrama de bloques del esquema de seguimiento
Quedando as´ı las ecuaciones de estado del sistema aumentado
˙x
˙xa
=
A 0
−C 0
x
xa
+
B
0
u +
0
1
r
Si consideramos la realimentaci´on de estado u = − K Ka
x
xa
, el sistema a lazo ce-
rrado de la Figura 3.11 es
˙x
˙xa
=
A − BK −BKa
−C 0
x
xa
+
0
1
r (3.15)
La idea ahora es dise˜nar K Ka de forma tal que el sistema (3.15) sea asint´oticamente
estable. En particular, la estabilizaci´on de xa, implica que se produzca el seguimiento
deseado ya que
lim
t→∞
˙xa = 0 ⇒ lim
t→∞
y(t) = r.
Para saber si podemos dise˜nar K Ka para que (3.15) sea estable veamos el siguiente
teorema:
Teorema 2 (Controlabilidad de la planta aumentada). Si (A, B) es controlable y si G(s) =
C(sI − A)−1B no tiene ceros en s = 0, los autovalores de la matriz de evoluci´on aumentada
en (3.15) pueden asignarse arbitrariamente seleccionando la matriz de realimentaci´on
K Ka .
En la secci´on 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
Aa =
A 0
−C 0
, Ba =
B
0
, Qa =
100 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
y R = 10.
La ganancia que obtuvimos es
K = −27 −1.06 −4.29 −2.85 0.316 . (3.16)
37. 3.2 Control por Realimentaci´on de Estado 29
El control con realimentaci´on de estado asume la disponibilidad de las variables de
estado. Esto no es lo que pasa en la pr´actica, en particular nuestro sistema no cuen-
ta con sensores para medir las velocidades angulares (variables de estado del sistema)
por lo que debemos estimar estas variables no medidas. A continuaci´on describiremos
dos ideas para estimar dichas variables de estado y luego mostraremos las simulaciones
correspondientes.
3.2.3 Estimadores de las variables de Estado no Medidos
Esta primer idea es b´asica, aproximamos la derivada de una variable como cociente incre-
mentales. Esto lo podemos hacer ya que las variables de estado que queremos estimar no
son ni m´as ni menos que la derivada de las dos variables estado que medimos. Es decir
˙θ ≈
θ(k + 1) −θ(k)
T
˙ψ ≈
ψ(k + 1) − ψ(k)
T
(3.17)
donde T es el per´ıodo 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 SIMULINK, como vemos en la Figura 3.12, pero para que esta estima
sea buena, T tiene que tomar valores peque˜nos.
1
Tita P
z
1
Unit Delay
1/T
Gain
1
Tita
Figura 3.12: Estimador de la derivada
Quedando de esta forma un control que en lugar de ser est´atico 7 es din´amico (o con
memoria).
3.2.4 Observador de las variables de Estado
En esta secci´on introduciremos un dispositivo din´amico, llamado observador, cuya salida
es una estima del vector de estado. En particular vamos a detallar el observador de orden
completo, que tiene el mismo orden que la planta, y de esta forma estimamos todo el
vector de estado. Representemos con ˆx(t) a la estima de x(t) y tomemos el sistema (3.10),
donde suponemos A, B, y C conocidas, y la entrada u(t) y la salida y(t) son medibles,
aunque no el estado x(t). El problema es estimar x(t) a partir de esta informaci´on.
La idea es que dado que conocemos las matrices A, B y C, podemos duplicar el sistema,
˙ˆx(t) = A ˆx(t) + Bu(t)
ˆy(t) = C ˆx(t),
(3.18)
donde ˆy(t) es la salida que se obtiene de las variables de estado estimados. Si inyectamos
al sistema (3.18) una se˜nal de correcci´on L(y(t) − C ˆx), donde L es una matriz de ganancia
7
que depende en forma instant´anea de las variables de estado
38. 30 Dise˜no de Controladores y Simulaci´on
constante, de forma tal que si no hay error no debemos corregir nada, pero si hay error,
una elecci´on apropiada de L puede hacer que el error de estimaci´on tienda asint´oticamente
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))
= (A − LC) ˆx(t) + Bu(t) + Ly(t).
(3.19)
Definamos ˜x(t) = x(t) − ˆx(t) como el error de estimaci´on. 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 din´amica del error de estimaci´on. Si pudi´eramos elegir L tal que
(A − LC) tenga autovalores negativos, estar´ıamos afirmando que el error de estimaci´on
tiende asint´oticamente a cero.
i
i- -
-
6
SS
- -
6
-
SS
?
L
ˆx
˙x x
A
CB
B
u
˙ˆx
A − LC
y
Figura 3.13: Observador de estado completo
En la secci´on 3.2 vimos el concepto de controlabilidad, c´omo testear si un sistema es
controlable y para qu´e sirve. Ahora para ver qu´e condiciones debe cumplir el sistema para
que exista la matriz L, tal que el estado estimado ˆx(t) tienda asint´oticamente al estado real
x(t) , debemos definir el observabilidad. El concepto de observabilidad tiene que ver con
la posibilidad de estimar el vector de estado del sistema a partir del conocimiento de la
salida.
La ecuaci´on de estado (3.10) es observable si para cualquier estado inicial x(0)
(desconocido), existe un tiempo finito t1 tal que el conocimiento de la entrada u y
la salida y sobre el intervalo [0, t1] es suficiente para determinar en forma ´unica
el estado inicial x(0). En caso contrario el sistema se dice no observable.
El siguiente teorema define bajo qu´e condiciones existir´a L (demostraci´on ver [2]).
Teorema 3 (Asignaci´on de Autovalores en Observadores). Dado el par (A, C), todos los
autovalores de (A − LC) pueden asignarse arbitrariamente seleccionando una matriz L si
y solo si (A, C) es observable.
Para analizar la observabilidad de un sistema basta ver que la matriz de observabilidad
O
O =
C
CA
CA2
...
CAn−1
,
39. 3.2 Control por Realimentaci´on de Estado 31
es de rango n (es decir rango O = n).
Para analizar la observabilidad de nuestro sistema, calculamos
O =
C
CA
CA2
CA3
=, donde rango O = 4,
por lo que nuestro p´endulo invertido es un sistema observable.
Para elegir d´onde ponemos los autovalores de A − LC, tomamos los autovalores que
resultan del control LQR a lazo cerrado pero los ponemos 1.2 veces m´as r´apidos y luego
utilizamos el comando de MATLAB L=place(A’,C’,P).
El valor de L obtenido es
L =
0.5335 0.1312
0.0177 0.3533
7.6284 4.3791
0.2567 1.4825
(3.20)
3.2.5 Simulaci´on
En esta secci´on describiremos las simulaciones realizadas utilizando el programa SIMU-
LINK. Implementamos al sistema utilizando las ecuaciones no lineales (2.17) en diagrama
de bloques y agregamos las alinealidades y limitaciones descriptas en el Cap´ıtulo 1 para
que se aproxime en mejor forma al sistema real.
En primer lugar simulamos el sistema suponiendo que las variables de estado est´an
al alcance de ser medidos, utilizando el control por realimentaci´on de estado (3.14). Lue-
go comparamos el desempe˜no realimentando las variables de estado estimados con los
observados. Una vez que decidimos cual es el mejor m´etodo, 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.
Realimentaci´on de Estado
En la Figura 3.14, mostramos la implementaci´on en diagrama de bloques de SIMULINK
utilizado, y la Figura 3.15 los resultados obtenidos de la simulaci´on, suponiendo que las
cuatro variables de estado son medidos.
Comparaci´on de Desempe˜no Estimador-Observador
En la Figura 3.16, podemos ver la implementaci´on en diagrama de bloques del sistema, el
control en realimentaci´on de estado, los estimadores de las velocidades y las limitaciones
debidas al actuador y a los sensores. Y en la Figura 3.17 la misma idea pero implementan-
do el observador calculado en (3.20), para ello utilizamos un bloque variable de estado
representando la ecuaci´on (3.19).
En la Figura 3.18 mostramos los resultados que obtuvimos por simulaci´on de la Figura
3.16 y 3.17. Cada uno de los gr´aficos muestra una salida, ψ(t) a la derecha y θ(t) a la
izquierda, en su versi´on estimada y observada para comparar desempe˜no.
Para comparar los resultados obtenidos, y dado que en nuestra simulaci´on podemos
”medir” las velocidades angulares, calculamos la sumatoria de los errores absolutos de
˙θ y ˙ψ dando para el observador 21.71 y 4.1 respectivamente y para el estimador 79.48
y 57.34, respectivamente. Vemos as´ı, como era de esperar, que el observador obtiene
mejores resultados que el estimador y esto se debe a que el observador utiliza mucha
40. 32 Dise˜no de Controladores y Simulaci´on
psi
Tita
Saturacion
de la actuacion
u
tita
Fi
titap
Fip
Pendulo no lineal
24
KTita
.3
KPsi
2.4
K TitaP
3.8
K Psip
Dsicretizacion Tita
Discretizacion Psi
Discretizacion
de la Actuacion
In1 Out1
Alinealidades3
Actuación
Figura 3.14: Diagrama de bloques de la realimentaci´on de estado
0 2 4 6 8 10 12 14 16 18 20
−0.04
−0.02
0
0.02
0.04
0.06
0.08
0.1
0.12
0.14
0.16
Tiempo [seg]
Posición[rad]
0 2 4 6 8 10 12 14 16 18 20
−0.02
−0.01
0
0.01
0.02
0.03
0.04
0.05
0.06
Tiempo [seg]
Posición[rad]
Figura 3.15: Resultados obtenidos, a la derecha θ y a la izquierda ψ
psi
Tita
Saturacion
de la actuacion
u
tita
Fi
Pendulo no lineal
24
KTita
.3
KPsi
3.8
K TitaP
2.4
K Psip
In1Out1
Estmador velocidad base
In1Out1
Estmador velocidad Pendulo
Dsicretizacion Tita
Discretizacion Psi
Discretizacion
de la Actuacion
In1 Out1
Alinealidades
Actuación
Figura 3.16: Realimentaci´on de estado con estimador
41. 3.2 Control por Realimentaci´on de Estado 33
psi
Tita
Saturacion
de la actuacion
u
tita
Fi
Pendulo no lineal
24
KTita
.3
KPsi
3.8
K TitaP
2.4
K Psip
In1Out1
Estmador velocidad base
In1Out1
Estmador velocidad Pendulo
Dsicretizacion Tita
Discretizacion Psi
Discretizacion
de la Actuacion
In1 Out1
Alinealidades
Actuación
Figura 3.17: Realimentaci´on de estado con observador
0 2 4 6 8 10 12 14 16 18 20
−0.1
−0.05
0
0.05
0.1
0.15
Tiempo [seg]
Posición[rad]
Posición del Brazo con Observador
Posición del Brazo con Estimador
0 2 4 6 8 10 12 14 16 18 20
−0.06
−0.04
−0.02
0
0.02
0.04
0.06
Tiempo [seg]
Posición[rad]
Posición del péndulo con Observador
Posición del péndulo con Estimador
Figura 3.18: Comparaci´on de los resultados de la simulaci´on
42. 34 Dise˜no de Controladores y Simulaci´on
m´as informaci´on 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
actuaci´on en el intervalo simulado, dando 577 para el caso del observador y de 1678 para
el estimador.
0 2 4 6 8 10 12 14 16 18 20
−15
−10
−5
0
5
10
15
Tiempo [seg]
Tensión[Volts]
Actuación con observador
Actuación con estimador
Figura 3.19: Comparaci´on de la se˜nal de actuaci´on
Seguimiento a Referencias
Uno de los objetivos b´asicos en el control es el de seguimiento de la salida a se˜nales de re-
ferencias. En nuestro caso esta referencia es sobre la posici´on del ´angulo del brazo. Para
la simulaci´on, 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 realimentaci´on de estado con ganancia de precompensaci´on 8por un lado, y el
esquema de acci´on integral que mostramos en 3.2.2 por el otro.
Como dij´eramos en 3.2.2, el esquema de acci´on integral es robusto frente a pertur-
baciones constantes. En la Figura 3.21 mostramos c´omo se comporta un lazo con y sin
acci´on integral, donde perturbamos (corrimos el cero) al ´angulo del p´endulo θ con 0.2 rad.
8
El sistema tiene una ganancia est´atica no nula, lo que implica que en el r´egimen permanente tender´a a
este valor. Si ubicamos una ganancia delante del lazo cerrado con la inversa de la ganancia est´atica, en el
r´egimen permanente tender´a al valor de referencia.
43. 3.2 Control por Realimentaci´on de Estado 35
0 5 10 15 20 25
−1
0
1
2
3
4
5
6
7
Tiempo [seg]
Posición[rad]
Ganancia de precompensación
Accion Integral
Referencia
Figura 3.20: Comparaci´on entre ganancia de precompensaci´on y acci´on integral
0 5 10 15 20 25
−20
−15
−10
−5
0
5
10
Tiempo [seg]
Posición[rad]
Ganancia de precompensación
Acción Integral
Referencia
Figura 3.21: Comparaci´on entre ganancia de precompensaci´on y acci´on integral, pertur-
bando a θ
45. Cap´ıtulo 4
Ensayos de Controladores sobre el Sistema Real
Una vez que en las simulaciones obtuvimos controladores que nos proveen el desempe˜no
deseado, implementamos dichos controladores en el sistema real, para comprobar que
los desempe˜nos obtenidos en la simulaci´on concuerdan con los resultados reales. En
este cap´ıtulo mostraremos la implementaci´on de dichos controladores en SIMULINK y los
resultados que obtuvimos al realizar los mismos ensayos con el sistema real.
4.1 Implementaci´on del Control en Cascada
En esta secci´on mostraremos los resultados que obtuvimos al implementar el lazo de
control en cascada con los controles K1(S) y K2(s) calculados en la secci´on 3.1. La Figura
4.1 muestra la implementaci´on en diagrama de bloques de SIMULINK, en donde utilizamos
en lugar de una constante para K1(s) implementamos un control proporciona-integral, PI
[7], para que el sistema no tenga error en el r´egimen permanente.
Referencia
Actuacion
Radianes
Ángulo Péndulo
Radianes
Ángulo Base
Zero−Order
Hold1
Zero−Order
Hold
Selector Manual
Posición Pendulo
Posición Base
Actuación
Motor
numcas(z)
dencas(z)
K2
In1 Out1
K1
0
Constante
0
Figura 4.1: Diagrama de bloques de la implementaci´on del control en cascada
La Figura 4.2 muestra los resultados obtenidos de la implementaci´on. Para ello cuando
comenzamos el ensayo, mantuvimos el p´endulo en posici´on 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 se˜nal que se muestra en la figura. Como podemos ver, el sobrevalor de
la salida es considerado, esto podr´ıa mejorarse redise˜nando el control K2(s), haci´endolo
m´as lento (eligiendo polos para ¯Alc2 m´as peque˜nos). Por otro lado podr´ıamos tambi´en
modificar el tiempo de establecimiento, eligiendo K1(s) mayor, ya que cuanto mayor sea
dicha ganancia, m´as cerca del eje jω estar´an los polos a lazo cerrado, ver Figura 3.6.
46. 38 Ensayos de Controladores sobre el Sistema Real
0 5 10 15 20 25 30 35 40
−0.15
−0.1
−0.05
0
0.05
0.1
0.15
0.2
0.25
Tiempo [seg]
Posición[rad]
0 5 10 15 20 25 30 35 40
−0.06
−0.04
−0.02
0
0.02
0.04
0.06
0.08
0.1
Tiempo [seg]
Poscición[rad]
Figura 4.2: Resultados obtenidos de la implementaci´on del control en cascada, a la iz-
quierda ψ(t) y a la derecha θ(t)
0 20 40 60 80 100 120 140 160 180
−2
−1
0
1
2
3
4
Tiempo [seg]
Posición[rad]
Posición del brazo
Referencia
Figura 4.3: Resultados obtenidos de la implementaci´on del control en cascada, para ana-
lizar seguimiento
47. 4.2 Implementaci´on del Control en Realimentaci´on de Estados 39
4.2 Implementaci´on del Control en Realimentaci´on de Estados
En esta secci´on describiremos el desempe˜no obtenido de implementar el control por reali-
mentaci´on de estados en el sistema real utilizando el estimador de estados y el observados,
que calculamos en la secci´on 3.2. En las Figura 4.4 y 4.5 podemos ver el diagrama de
bloques SIMULINK de dicha implementaci´on.
Radianes
Ángulo Péndulo
Radianes
Ángulo Base
Zero−Order
Hold1
Zero−Order
Hold Step
Selector Manual
Referencia
ProductPosición Pendulo
Posición Base
0
N
Actuación
Motor
3.8
K TitaPunto
24
K Tita
2.4
K Psi Punto
.3
K Psi
In1 Out1
Estmador velocidad base1
In1 Out1
Estmador velocidad base
0
Constante
Actuación
Figura 4.4: Diagrama de bloques de la implementaci´on del control por realimentaci´on de
estados y el estimador
Radianes
Ángulo Péndulo
Radianes
Ángulo Base
Zero−Order
Hold1
Zero−Order
Hold
Step
Selector Manual
Referencia
Product
Posición Pendulo
Posición Base
U
Tita
Psi
Tita P
Psi P
Observador
0
N
Actuación
Motor
3.8
K TitaPunto
24
K Tita
2.4
K Psi Punto
.3
K Psi
0
Constante
Actuacion
Figura 4.5: Diagrama de bloques de la implementaci´on del control por realimentaci´on de
estados y el observador
La Figura 4.6, muestra la comparaci´on entre los resultados obtenidos de la imple-
mentaci´on del estimador de las velocidades angulares y el observador. Para obtener este
desempe˜no utilizamos las mismas ganancias, de K y L calculadas para la simulaci´on.
Como esper´abamos, el desempe˜no con el observador es mejor que el del estimador.
En la Figura 4.7 comparamos las actuaciones con uno y otro m´etodo de estimaci´on de
las variables de estado que no podemos medir. Dado que podemos guardar los valores,
calculamos nuevamente la suma absoluta de los valores muestreados de la actuaci´on,
para tener una idea de la potencia consumida por el motor, y obtuvimos para el caso del
48. 40 Ensayos de Controladores sobre el Sistema Real
20 22 24 26 28 30 32 34 36 38 40
−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
Tiempo [seg]
Posición[rad]
Posición del Brazo con Observador
Posición del Brazo con Estimador
20 22 24 26 28 30 32 34 36 38 40
−0.06
−0.04
−0.02
0
0.02
0.04
0.06
Tiempo [seg]
Posición[rad]
Posición del Péndulo con Observador
Posición del Péndulo con Estimador
Figura 4.6: ´Angulo medido en el sistema real, a la derecha θ y a la izquierda ψ
observador 1764 y para el estimador 3334. SI bien los valores no son los mismos que en
la simulaci´on, la relaci´on entre ambos es bastante parecida.
20 22 24 26 28 30 32 34 36 38 40
−6
−4
−2
0
2
4
6
Tiempo [seg]
Posición[rad]
Actuación con Observador
Actuación con Estimador
Figura 4.7: Comparaci´on de actuaciones
4.3 Implementaci´on de la Acci´on Integral
En esta secci´on analizaremos c´omo se comporta el sistema con realimentaci´on de estados,
calculada en (3.16), observador de las velocidades angulares, calculada en (3.20) y acci´on
integral. En la Figura 4.8, mostramos la respuesta del sistema cuando la referencia es
una onda cuadrada de amplitud π/2 rad y de frecuencia 60 seg. Los picos que realiza ψ en
los primero 15 seg es debido a que el brazo tuvo que levantar el p´endulo desde su reposo,
0.2 rad. El ´angulo θ no lo graficamos porque el objetivo es mostrar el seguimiento. El
49. 4.3 Implementaci´on de la Acci´on Integral 41
gr´afico de la izquierda representa a la implementaci´on del esquema de acci´on integral y el
de la izquierda es la salida obtenida del lazo cerrado con ganancia de precompensaci´on.
0 20 40 60 80 100 120 140 160 180 200
−0.5
0
0.5
1
1.5
2
Tiempo [seg]
Posición[rad]
Referencia
Posición del Brazo
0 20 40 60 80 100 120 140 160 180 200
−1
−0.5
0
0.5
1
1.5
2
2.5
3
3.5
Tiempo [seg]
Posición[rad]
Posición del Brazo
Referencia
Figura 4.8: Seguimiento a una se˜nal de referencia onda cuadrada
Dado que los resultados obtenidos con la ganancia de precompensaci´on son bastante
malos, Figura derecha de 4.8, modificamos las ganancias para obtener un mejor desem-
pe˜no. Tomando
K = −32.04 −2.50 5.06− −2.5
obtuvimos los resultados de la Figura 4.9
0 20 40 60 80 100 120 140 160 180 200
−0.5
0
0.5
1
1.5
2
Tiempo [seg]
Posición[rad]
Posición del Brazo
Referencia
Figura 4.9: Seguimiento una se˜nal de referencia onda cuadrada con ganancia de precom-
pensaci´on
51. Cap´ıtulo 5
An´alisis del efecto de las cuantizaciones y de
las perturbaciones del motor
Con el fin de realizar el proyecto con un bajo presupuesto, para la construcci´on del
p´endulo utilizamos mayormente componentes que se encontraban en el stock del Labora-
torio de Electr´onica de la Universidad. Como vimos en el Capitulo 1 dichos componentes
imponen ciertas restricciones f´ısicas en el desempe˜no del lazo cerrado, que hicieron que
nuestros objetivos de control no sean muy estrictos en cuanto al desempe˜no. 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 desempe˜no posterior
del sistema, analizamos el comportamiento del sistema a lazo cerrado a trav´es de si-
mulaciones, bas´andonos en el hecho de que el sistema simulado se comporta en forma
aproximada al real.
5.1 Disminuci´on en la cuantificaci´on del Actuador y de los Sensores
La primera mejora que se nos ocurre es aumentar la resoluci´on de los conversores digital-
anal´ogico (para la actuaci´on), y anal´ogico-digital (para el sensor del p´endulo). La reso-
luci´on actual del conversor-digital anal´ogico es de ocho bits obteniendo una variaci´on
m´ınima de tensi´on de 0.05859 V, aumentaremos dicha resoluci´on con un conversor de do-
ce bits (0.0036 V). El mismo aumento de resoluci´on utilizamos para el sensor de posici´on
del p´endulo, pasando de 0.0024 rad a 0.0012 rad. En cuanto al sensor de posici´on del bra-
zo, no podremos aumentar la la resoluci´on en forma categ´orica, debido a la velocidad del
contador de pulsos implementado en la PC comenzar´ıa a perder pulsos. Una soluci´on es
implementar dicho contador a trav´es de un circuito integrado dedicado y luego leer dicho
valor en la PC a trav´es de un conversor digital-anal´ogico. Para la simulaci´on supusimos
que podr´ıamos aumentar la resoluci´on del sensor a 0.0003rad.
En la Figura 5.1 podemos ver el resultado de la simulaci´on, donde comparamos el
sistema mismo bajo las mismas condiciones que en 3.2.5, con el sistema agregando las
mejoras mencionadas.
Como pudimos ver en la Figura 5.1, el aumento en la resoluci´on de los conversores
no representa una mejora en el desempe˜no del sistema. Pero como vimos en 1.2.1 s´ı
es mejor aumentar la resoluci´on del conversor digital-anal´ogico ya que podemos de esa
forma aumentar la tensi´on de alimentaci´on al motor, de esa forma aumentar su reacci´on.
5.2 Mejoras f´ısicas del motor
Otra de las cosas que se podr´ıan mejorar tienen que ver con el motor. Como vimos en
3.1.3 existen dos tipos de perturbaciones ocasionadas por el motor fricci´on est´atica y
52. 44 An´alisis del efecto de las cuantizaciones y de las perturbaciones del motor
0 5 10 15 20 25
−0.08
−0.06
−0.04
−0.02
0
0.02
0.04
0.06
0.08
0.1
0.12
Tiempo [seg]
Posición[rad]
Con mejoras
Sin mejoras
0 5 10 15 20 25
−0.04
−0.03
−0.02
−0.01
0
0.01
0.02
0.03
0.04
0.05
0.06
Tiempo [seg]
Posición[rad]
Con mejoras
Sin mejoras
Figura 5.1: Comparaci´on entre el sistema con y sin ampliaci´on en la resoluci´on 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 est´atico en 20 veces, Figura
5.2. Esta disminuci´on se puede lograr, por ejemplo, utilizando un motor con rodamientos
a rulemanes.
0 5 10 15 20 25
−0.08
−0.06
−0.04
−0.02
0
0.02
0.04
0.06
0.08
0.1
0.12
Tiempo [seg]
Posición[rad]
Con mejoras
Sin mejoras
0 5 10 15 20 25
−0.04
−0.03
−0.02
−0.01
0
0.01
0.02
0.03
0.04
0.05
0.06
Tiempo [seg]
Posición[rad]
Con mejoras
Sin mejoras
Figura 5.2: Comparaci´on entre el sistema con fricci´on est´atica y reduci´endola 20 veces,
derecha ψ(t) y a la izquierda θ(t)
Veamos ahora que sucede si adem´as disminuimos el juego del eje, Figura 5.3. Esta
disminuci´on se puede lograr, por ejemplo, utilizando una reducci´on con correas dentadas
en lugar de engranajes.
Concluimos, a partir de los ensayos realizados, que para obtener un mejor desempe˜no
hay que centrarse en la disminuci´on las perturbaciones originadas por el motor.
53. 5.2 Mejoras f´ısicas del motor 45
0 5 10 15 20 25
−0.08
−0.06
−0.04
−0.02
0
0.02
0.04
0.06
0.08
0.1
0.12
Tiempo [seg]
Posición[rad]
Con mejoras
Sin mejoras
0 5 10 15 20 25
−0.04
−0.03
−0.02
−0.01
0
0.01
0.02
0.03
0.04
0.05
0.06
Tiempo [seg]
Posición[rad]
Con mejoras
Sin mejoras
Figura 5.3: Comparaci´on entre el sistema , derecha ψ(t) y a la izquierda θ(t)
54. 46 An´alisis del efecto de las cuantizaciones y de las perturbaciones del motor
55. Cap´ıtulo 6
Conclusiones
En este informe describimos la construcci´on y el posterior control a trav´es de una PC del
p´endulo invertido rotatorio. La elecci´on de utilizar un software en tiempo real fue una
gran ventaja, dado que pudimos desarrollar controladores, observadores y estimadores
en forma sencilla. Adem´as nos permiti´o almacenar los datos obtenidos del sistema para
an´alisis y ajuste de los par´ametros del modelo matem´atico.
El modelo matem´atico que obtuvimos, y el m´etodo de ajuste de los par´ametros en forma
iterativa, mostr´o ser fiel al sistema real. Esto resulta una ventaja cuando los controladores
que dise˜namos est´an basados en dicho modelo.
Las t´ecnicas de control que desarrollamos son t´ecnicas lineales. Aunque utilizamos
un sistema no lineal, mostramos que es posible desarrollar t´ecnicas simples aunque el
modelo es complejo. Todas las t´ecnicas coinciden en la especificaci´on de dise˜no que
planteamos: estabilizaci´on asint´otica del ´angulo del p´endulo y seguimiento a referencias
constantes del ´angulo de giro del brazo.
El dise˜no del control en cascada fue sencillo ya que supone que el sistema es de una
entrada y una salida y de esta forma permite utilizar cualquier t´ecnica de control que
utilice la representaci´on entrada salida. La implementaci´on fue inmediata dado que solo
necesitamos medir las variables que tenemos disponibles. Si bien el desempe˜no obtenido
a lazo cerrado fue bueno, la estabilidad resulta muy sensible a perturbaciones.
El dise˜no de control por realimentaci´on de estado, siguiendo el criterio de optimizaci´on
LQR, no lo calculamos anal´ıticamente por su complejidad. Para ello utilizamos el software
de control MATLAB, donde la ventaja es que los ´unicos par´ametros que ajustamos fueron
las ponderaci´on de cada una de las variables de estado y de la se˜nal de control. Para im-
plementar el control por realimentaci´on de estados fue necesario desarrollar t´ecnicas que
aproximen las variables de estado que no podemos medir. En nuestro caso propusimos
dos: estimador de derivadas y observador lineal de estado. Si bien el primero es simple de
implementar, el desempe˜no alcanzado por el segundo mejor, dado que la amplitud de las
oscilaciones que produce es menor. El ´unico inconveniente de este control, es que para
que siga referencias constantes es necesario agregar una ganancia de precompensaci´on,
que para resulta sensible frente a perturbaciones.
Por ´ultimo, al sistema con realimentaci´on de estado, le agregamos acci´on integral para
lograr seguimiento de referencias constantes. Con este esquema, logramos no solo que
siga referencias constantes sino tambi´en hicimos m´as robusto el lazo cerrado del sistema.
Una pregunta que nos planteamos cuando finalizamos los ensayos, fue si era posible
mejorar los desempe˜nos obtenidos con los controladores dise˜nados modificando aquellos
componentes f´ısicos, sensores y actuador,que nos imponen limitaciones. La conclusi´on
que obtuvimos por simulaci´on es que para mejorar el desempe˜no, hay que centrarse en
disminuir el roce est´atico y el juego en el eje del motor.
57. Ap´endice A
Descripci´on detallada de los componentes del
Sistema
A.1 Controlador
A.1.1 Especificaciones de la PC
A.1.2 Placa de Adquisisci´on de Datos
En la Tabla A.1, podemos ver las distintas direcciones de la placa. La direcci´on de memo-
DIR h Lectura Escritura
xx0 Entrada Salida Digital
xx1 DAC1 Salidas
xx2 DAC2 Anal´ogicas
xx8 Datos Start 0
xx9 EOC Start 1
xxA Start 2
xxB Start 3 Entradas
xxC Start 4 Anal´ogica
xxD Start 5
xxE Start 6
xxF Start 7
Tabla A.1: Direcciones de memoria
ria base se elige a trav´es de tres jumpers ubicados en la placa. La direcci´on por defecto es
la 300h.
Driver
La forma de programar estos drivers en el SIMULINK es a trav´es de un bloque denominado
S-Function.
S-Function Permiten agregar algoritmos propios a bloques de SIMULINK. Se pueden es-
cribir en MATLAB o en C. Las S-function las incorporamos mediante un bloque llamado
S-function. En nuestro caso programamos cuatro S-functions distintas:
• lectura de entradas anal´ogicas,
• escritura de entradas anal´ogicas,
58. 50 Descripci´on detallada de los componentes del Sistema
• lectura de entradas digitales, y
• escritura de entradas digitales.
Las cuatro fueron programadas en C.
A.2 Actuador
Existen principalmente tres problemas a la hora de controlar un motor de corriente con-
tinua.
1. Se˜nal de actuaci´on de baja potencia. La se˜nal de actuaci´on entregada por la PC es de
5V y en el orden de los mA., mientras que la tensi´on nominal de trabajo del motor es
de 24V y la corriente que consume es de 2A.
2. Sentido de giro. Para cambiar el sentido de giro de un motor de corriente continua es
necesario invertir la tensi´on que lo alimenta.
3. Consumo de energ´ıa. Para variar la velocidad de un motor de corriente continua exis-
ten varios m´etodos. El m´as com ´un de ellos es variar la tensi´on de alimentaci´on del
mismo, obteniendo una variaci´on proporcional en el n ´umero de revoluciones. Uno
de los problemas es la disipaci´on de potencia de los amplificadores utilizados para
alimentar el motor, ya que si queremos alimentar al motor con la mitad de tensi´on
de alimentaci´on nominal, la mitad de la potencia entregada por la fuente de alimen-
taci´on se disipa en el amplificador. Este m´etodo es muy utilizado si necesitamos que
el motor se encuentre en las proximidades de su velocidad nominal.
Los dos primeros problemas los solucionamos a trav´es 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 saturaci´on, 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 tensi´on aplicada. Para lograr que los transistores conduzcan o no en el
momento indicado, se le agrega una etapa de l´ogica que evita que transistores del mismo
lado de la H conduzcan al mismo tiempo, ya que eso provocar´ıa que ambos se quemen
debido a que no tienen una resistencia que limite la corriente que circula a trav´es de ellos.
El m´etodo que utilizamos para solucionar el problema 3, es el de modulaci´on de ancho
de pulso (PWM), en el cual se alimenta al motor con una se˜nal cuadrada de una frecuencia
determinada y amplitud igual a la tensi´on nominal del motor, a la cual se le modifica el
tiempo activo, obteniendo una media de tensi´on 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 tensi´on media resultante. La diferencia que existe con el primer m´etodo es que
en este caso, siempre se le aplica la tensi´on nominal al motor.
El circuito PWM que implementamos, Figura A.2, tiene como entrada una se˜nal anal´ogica
de 0 - 5V, la variaci´on del tiempo activo de la se˜nal PWM se realiza a trav´es de dicha en-
trada. La frecuencia de PWM que utilizamos es 250Hz.
59. A.2 Actuador 51
5V 5V
5V
15V15V
15V 15V
15V
Motor
5V
On/Off
Direccion
Logica de Control
820Ω
820Ω
820Ω
820Ω
10KΩ
820Ω
10KΩ
820Ω
10KΩ
10KΩ
820Ω
1 2MOS1
MOS3 MOS4
MOS2
Figura A.1: Puente H
−12V
−12V
1
2
3
4
7
8
74HC14
5V
PWM
12V
47nF
ne555
5V
12V 12V
1
2
6
7
48
+
−
+
−
50KΩ
Vin
10KΩ
1MΩ 1MΩ
47KΩ
1KΩ
50KΩ
820Ω
Figura A.2: Circuito de implementaci´on del PWM
60. 52 Descripci´on detallada de los componentes del Sistema
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 ,
s1
s2
tiempo
Emisor
A
B
Receptor
Placa ranurada
Figura A.3: Diagrama de un encoder incremental
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 se˜nales como las que vemos en la Figura
A.4.
s1
s2 s2
s1
t t
Sentido de giro
Figura A.4: Se˜nales en los fotodiodos
El defasaje de 90 grados de las se˜nales es debido a la ubicaci´on de los sensores. Este
defasaje es ´util para detectar el sentido de giro del eje, si prestamos atenci´on a la Figura
A.4, podemos ver que dependiendo del sentido de giro una se˜nal adelanta a la otra. To-
mamos a una se˜nal s1 para contar los pulsos, en cada flanco ascendente de s1 contamos
un pulso, ahora tenemos que saber si lo sumamos o lo restamos, dependiendo el sentido
de giro. Esa informaci´on la obtenemos de la se˜nal s2. Si s2 esta en alto, la sumamos, si
esta en bajo la restamos.
Una de las ventajas de este tipo de sensor de ´angulo, es que el rango de medici´on 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.
61. A.3 Sensores 53
En nuestro caso este sensor se encuentra solidario al eje del motor y la placa ranurada
cuenta con 20 ranuras, lo que representa una precisi´on de 360o
40 , ya que contamos los
pulsos de ambas se˜nales. Debido a que el motor posee una reducci´on 1:130, al dar el
motor una vuelta el eje exterior da 1
130 vueltas. Por lo tanto aumentamos la precisi´on a
2π
40∗130 = 0.0012 rad/pulso.
La l´ogica para contar los pulsos fue realizada en el SIMULINK, en la Figura A.5 podemos
ver dicha implementaci´on.
1
Radianes
In1
In2
Out1
SubSystem1
In1
In2
Out1
SubSystem
2*pi/5150
Conversion de
pulsos a Radianes
2
S2
1
S1
1
Out1
NOT
Logical
Operator
Trigger
2
In2
1
In1
Figura A.5: Diagrama de bloques SIMULINK de la Implementaci´on del Contador de Pulsos
A.3.2 Sensor Magn´etico
El sensor magn´etico consta de un puente de Wheatstone como el de la figura A.6, el cual al
variar el valor de una de las resistencias se desbalancea provocando una ca´ıda de tensi´on
Vout.
Vcc
Vout
RR
R R
Figura A.6: Sensor Magneto-Resistivo
En nuestro caso, colocamos un im´an solidario al p´endulo, Figura A.7, al moverse el
p´endulo var´ıa el campo magn´etico sobre el sensor. La se˜nal entregada por el sensor
es del orden de los ±50 µV, por lo tanto fue necesario acondicionar la se˜nal para que
se encuentre en el rango de 0V a 5V requeridos por la placa de adquisici´on de datos.
Podemos ver el circuito de implementaci´on en la Figura A.8.
Debido al im´an que colocamos, este sensor solo trabaja en un rango de ´angulo de-
terminado, ±60o. Como solamente utilizaremos el rango ±18o, ajustamos la se˜nal para
que los 0-5V correspondan a una variaci´on de ±18o, as´ı obtenemos mayor precisi´on en la
conversi´on.
62. 54 Descripci´on detallada de los componentes del Sistema
Sensor Magnetico
Pendulo
±60o
Iman
Eje
Brazo
Figura A.7: Montaje del sensor magn´etico sobre el p´endulo
Amplificador Diferencial
Ajuste del Offset
12V 12V
12V
−12V
−12V
−12V
12V −12V
Ajuste de la Ganancia
+
−
+
−
+
−
47nF
22KΩ
22KΩ
220KΩ
Vo Sensor Magnetico
1MΩ
47nF
820KΩ
10KΩ
47nF
25KΩ
4, 7KΩ
Vo : 0 − 5V
Figura A.8: Acondicionador de se˜nal
63. Bibliograf´ıa
[1] John S. Bay. Linear Space Systems. McGraw-Hill, 1999.
[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.
[5] H. Khalil. Nonlinear Systems. Prentice Hall, 1996.
[6] Lennart Ljung. System Identification: Theoty for the User. Prentice-Hall, 1987.
[7] Katsiuko Ogata. Control Moderno. Pentice Hall, 1998.
[8] Mar´ıa M. Seron, Julio H. Braslavsky, and Graham C. Goodwin. Fundamental Limita-
tions in Filtering and Control. Springer, 1997.
[9] Real Time Windows Target. User’s Guide Version 1. The Math Works Inc., 1998.