Академический Документы
Профессиональный Документы
Культура Документы
]
Matriz Homognea.- La representacin mediante coordenadas
homogneas de la localizacin de slidos en un espacio n-dimensional se
realiza a travs de coordenadas de un espacio (n+1)-dimensional.
Utilizando las coordenadas homogneas llegamos a la definicin de la
Matriz de transformacin homognea que representa la transformacin
de un vector de coordenadas homogneas de un sistema de coordenadas a
otro.
[
] [
]
2.3. Cinemtica y Dinmica de un Robot
Cinemtica de un robot.- La cinemtica de un robot estudia el
movimiento del mismo con respecto a un sistema de referencia. As la
cinemtica se interesa por la descripcin analtica del movimiento
espacial del robot como una funcin del tiempo, y en particular por las
relaciones entre posicin y la orientacin del extremo final del robot con
los valores que toman sus coordenadas articulares.
Existen dos problemas fundamentales a resolver en la cinemtica del
robot (Figura 4.1); el primero de ellos se conoce como el problema
cinemtico directo, y consiste en determinar cul es la posicin y
orientacin del extremo final del robot, con respecto a un sistema de
coordenadas que se toma como referencia, conocidos los valores de la
articulaciones y los parmetros geomtricos de los elementos del robot;
el segundo denominado problema cinemtico inverso, resuelve la
configuracin que debe adoptar el robot para una posicin y orientacin
del extremo conocidas.
Denavit y Hartenberg propusieron un mtodo sistemtico para describir y
representar la geometra espacial de los elementos de una cadena
cinemtica, y en particular de un robot, con respecto a un sistema de
referencia fijo. Este mtodo utiliza una matriz de transformacin
homognea para describir la relacin espacial entre dos elementos rgidos
adyacentes, reducindose el problema cinemtico directo a encontrar una
matriz de transformacin homognea 4x4 que relacione la localizacin
espacial del extremo del robot con respecto al sistema de coordenadas de
su base.
Por otra parte, la cinemtica del robot trata tambin de encontrar las
relaciones entre las velocidades del movimiento de las articulaciones y
las del extremo. Esta relacin viene dada por el modelo diferencial
expresado mediante la matriz Jacobiana.
Valor de las
Figura 2.3: Diagrama de relacin entre cinemtica directa e inversa.
El problema cinemtico directo:
Para representar y describir la localizacin de un objeto en el espacio
tridimensional con respecto a un sistema de referencia fijo se utiliza
fundamentalmente el algebra vectorial y matricial. Dado que un robot se
puede considerar como una cadena cinemtica formada por objetos
rgidos o eslabones unidos entre s mediante articulaciones, se puede
establecer un sistema de referencia fijo situado en la base del robot y
describir la localizacin de cada uno de los eslabones con respecto a
dicho sistema de referencia. De esta forma el problema cinemtico
directo se reduce a encontrar una matriz homognea de transformacin T
que relacione la posicin y orientacin del extremo del robot respecto del
sistema de referencia fijo situado en la base del mismo. Esta matriz T
ser funcin de las coordenadas articulares.
2.4. Dinmica de un Robot
La dinmica se ocupa de la relacin entre fuerzas que actan sobre un
cuerpo y el movimiento que en l se origina. Por lo tanto, el modelo
dinmico de un robot tiene por objetivo conocer la relacin entre el
movimiento del robot y las fuerzas implicadas en el mismo.
Esta relacin se obtiene mediante el denominado modelo dinmico, que
relaciona matemticamente:
1. La localizacin del robot definida por sus variables articulares o por
las coordenadas de localizacin de su extremo y sus derivadas: velocidad
y aceleracin.
2. Las fuerzas y pares aplicados en las articulaciones (o en el extremo del
robot).
3. Los parmetros dimensionales del robot, como longitud, masas e
inercias de sus elementos.
La obtencin de este modelo para mecanismos de uno o dos grados de
libertad no es excesivamente compleja, pero a medida que el nmero de
grados de libertad aumenta, el planteamiento y obtencin del modelo
dinmico se complica enormemente. Por este motivo no siempre es
posible obtener un modelo dinmico expresado de una forma cerrada,
esto es, mediante una serie de ecuaciones, normalmente de tipo
diferencial de 2 orden, cuya integracin permita conocer que
movimiento surge al aplicar unas fuerzas o que fuerzas hay que aplicar
para obtener un movimiento determinado. El modelo dinmico debe ser
resuelto entonces de manera iterativa mediante la utilizacin de un
procedimiento numrico.
El problema de la obtencin del modelo dinmico de un robot es, por lo
tanto, uno de los aspectos ms complejos de la robtica, lo que ha llevado
a ser obviado en numerosas ocasiones. Sin embargo, el modelo dinmico
es imprescindible para conseguir los siguientes fines:
1. Simulacin del movimiento del robot.
2. Diseo y evaluacin de la estructura mecnica del robot.
3. Dimensionamiento de los actuadores.
4. Diseo y evaluacin del control dinmico del robot.
Este ltimo fin es evidentemente de gran importancia, pues de la calidad
del control dinmico del robot depende la precisin y velocidad de sus
movimientos. La gran complejidad ya comentada existente en la
obtencin del modelo dinmico del robot, ha motivado que se realicen
ciertas simplificaciones, de manera que as pueda ser utilizado en el
diseo del controlador.
Es importante hacer notar que el modelo dinmico completo de robot
debe incluir no slo la dinmica de sus elementos (barras o eslabones)
sino tambin la propia de sus sistemas de transmisin, de los actuadores y
sus equipos electrnicos de mando. Estos elementos incorporan al
modelo dinmico nuevas inercias, rozamientos, saturaciones de los
circuitos electrnicos, etc. Aumentando an ms su complejidad.
Por ltimo, es preciso sealar que si bien en la mayor parte de las
aplicaciones reales de la robtica, las cargas e inercias manejadas no son
suficientes como para originar deformaciones en los eslabones del robot,
en determinadas ocasiones no ocurre as, siendo preciso considerar al
robot como un conjunto de eslabones no rgidos, Aplicaciones de este
tipo pueden encontrarse en la robtica espacial o en robots de grandes
dimensiones, entre otras.
2.4.1. Modelo Dinmico
Para determinar la ecuacin dinmica del manipulador existen
varios mtodos tales como el mtodo de Newton-Euler, el mtodo
de Lagrange-Euler, entre otros. Para el manipulador en estudio
usaremos el mtodo de Lagrange-Euler que emplea la formula
Lagraniana conjuntamente con la representacin de Denavit-
Hartenberg (D-H). Un completo estudio de dicho procedimiento
puede ser encontrado en [1], [2], [4], [7]. En la figura 2.5 se
muestra los sistemas de referencias usados para la representacin
D-H.
Figura 2.4: Esquema con las medidas del Manipulador
2.4.2. El procedimiento de Denavit-hartenberg
Un manipulador robtico est compuesto de una secuencia de
cuerpos rgidos (los eslabones) articulados por junturas
rotacionales o prismticas. Cada par de articulacin-eslabn
representa un grado de libertad (DOF). Un sistema de
coordenadas ortonormales (x
si
,y
si
,z
si
) puede ser establecido
usndola regla de la mano derecha para cada articulacin i, donde
i = 1,,n. As un manipulador con n DOF posee n pares de
articulaciones. El ltimo sistema de coordenadas (x
sn
,y
sn
, z
sn
)
constituye el sistema de coordenadas del efector final, el cuales
usualmente articulado al ltimo eslabn. El manipulador es unido
a una base de referencia 0. El sistema de coordenada base es
definido como (x
so
, y
so
, z
so
).las coordenadas de la base son
tambin las coordenadas inerciales del manipulador. El sistema de
coordenadas base aumentado es definido como (x
so
, y
so
, z
so, 0
).
Figura 2.5: Sistemas de referencia del Manipulador
El procedimiento D-H origina una matriz de transformacin
homognea que representa el sistema inercial del manipulador.
Para describir tal matriz, requerimos establecer el sistema de
coordenadas (x
si
, y
si
, z
si
) del manipulador en s
i
= 0, ,n, para
determinar los parmetros de las articulaciones y eslabones con el
fin de desarrollar la matriz de transferencia homognea.
Estableciendo el Sistema de Coordenadas D-H
Para establecer el sistema de coordenadas D-H (x
si
, y
si
, z
si
), s
i
= 0,
,n, se usa las siguientes reglas:
1. El sistema de coordenadas base (x
so
, y
so
, z
so
) se determina
usando la regla de la mano derecha. El eje z
so
se escoge
libremente y est localizado a lo largo del eje del movimiento del
primer eslabn.
2. El eje z
si-1
es alineado con el eje del movimiento (giratorio
o prismtico) de la i-sima articulacin.
3. El origen del sistema se coordenadas s
i
-sima est en la
interseccin del eje z
si
y z
si-1
o en la interseccin de la normal
comn entre los ejes de dos articulaciones consecutivas z
si
y z
si-1
y
el eje z
si
.
4. El eje x
si
es perpendicular l eje z
si-1
.
5. Aplicar la regla de la mano derecha en la articulacin i-
sima para determinar y
si
.
6. Generalmente, la articulacin n-sima es una articulacin
giratoria. El sistema de coordenadas (x
sn
, y
sn
, z
sn
), puede estar en
cualquier parte del efector final con tal que el eje z
sn
est a lo largo
de la direccin del eje z
si-1
y apuntado hacia fuera del
manipulador. El eje x
sn
es perpendicular a ambos ejes: z
sn
y
z
si-1
.
Parmetros D-H
Los cuatro parmetros geomtricos del manipulador (
i
, d
DHi
, a
DHi
,
y
i
), se asocian con cada par articulacin-eslabn y son
requeridos para la descripcin de una articulacin giratoria o
prismtica. Despus de establecer es sistema de coordenadas del
manipulador tales parmetros pueden ser determinados de la
siguiente manera:
1.
i
, es el ngulo de rotacin del eje x
si-1
con el eje x
si
en el
plano del eje z
si-1
. Este es variable si la articulacin es giratoria.
2. d
DHi
, es la distancia del origen del sistema de coordenadas
s
(i-1)
-sima a lo largo del eje z
si-1
, hasta la interseccin del eje z
si-1
con el eje x
si
. Esta distancia d
DHi
es variable si la articulacin i es
prismtica.
3. a
DHi
, es la distancia a lo largo del eje x
si
, que va desde la
interseccin del eje z
si-1
con el eje x
si
hasta el origen del sistema de
coordenadas s
i
-sima en el caso de articulaciones giratorias.
4.
i
, es el ngulo de separacin entre los ejes z
si-1
y z
si
medido en un plano perpendicular al eje x
si
, utilizando la regla de
la mano derecha.
Matriz de Transformacin Homognea D-H
La matriz de transformacin homognea D-H caracteriza cada
sistema de coordenadas del par de articulacin-eslabn con
respecto al sistema de coordenadas previo. Por consiguiente un
punto r
si
del sistema de coordenadas s
i
-simo se puede expresar
como (r
si-1
) en el sistema de coordenadas s
(i-1)
-simo ejecutando
sucesivamente las siguientes operaciones:
1. T(z
s
,
i
): rotacin de un ngulo
i
alrededor del eje z
si-1
,
para alinear el eje x
si-1
,
con el eje
2. T(z
s
, d
DHi
): traslacin a lo largo del eje z
si-1
de una distancia
d
DHi
, hasta hacer coincidir al eje z
si-1
con el eje z
si.
3. T(x
s
, a
DHi
): traslacin a lo largo del eje x
si
de una distancia
a
DHi
, que desde la interseccin del eje z
si-1
y el eje x
si
al origen del
sistema de coordenadas s
i
-simo.
4. T(x
s
,
i
):rotacin de un ngulo
i
, del eje z
si-1
con el eje z
si
alrededor del eje x
si
.
El producto de estas cuatro operaciones bsicas produce la matriz
de transformacin homognea A
i
i-1
, del eslabn i con respecto al
eslabn i-1 o articulacin i con respecto a la articulacin i-1. Por
lo tanto:
] [
]
[
]
[
]
Donde c y s, son las funciones cos y sen respectivamente. La
siguiente matriz de transformacin homognea:
Determina la localizacin del sistema de coordenada (s
i
)-sima
con respecto al sistema de coordenada base.
2.4.3. Algoritmo de Lagrange-Euler
El procedimiento de lagrange-Euler requiere ejecutar los
siguientes pasos:
1. Asignar a cada para articulacin-eslabn del manipulador un
sistema de coordenadas D-H.
2. Obtener las matrices de transformacin homognea
para i =
1,,n.
3. Obtener las matrices U
ij
que es el efecto del movimiento de la
articulacin j en todos los puntos del eslabn i:
Donde
] Si la articulacin es giratoria
] Si la articulacin es prismtica
4. Los efectos de interaccin entre las articulaciones son expresadas
por las siguientes matrices U
ijk
:
){
5. Obtener el tensor de inercia Ji del eslabn i-simo mediante:
Donde: (
son los momentos inercia con respecto al sistema de coordenadas
(
),
son las
distancias de CG del cuerpo i al sistema de coordenadas
(
), e
Donde, es la traza y es el nmero de grados de libertad.
7. Obtener los trminos h
ikm
definidos por:
8. Obtener el vector no lineal fuerza centrifuga y Coriolis de orden n
x 1 cuyos elementos C
i
son dados por:
9. Obtener el vector no lineal de fuerza de gravedad d de orden
cuyos elementos son:
Donde, *
(el
elemento 1 es un factor de escala) es el vector centro de masa del
eslabn j y expresado en el sistema de coordenadas
-simo.
Finalmente la ecuacin dinmica del manipulador, con el mtodo
L-E toma la forma:
Donde,
.
2.5. Realimentacin No Lineal
Luego de formulado el problema de control a resolver, el siguiente paso es encontrar un
modelo que sea capaz de capturar la dinmica del proceso en el rango de operacin. En
realidad todos los procesos son no lineales y muchas veces resulta ms conveniente
trabajar directamente con el modelo no lineal. As podemos disear sistemas de control
no lineal empleando diversas tcnicas tales como: El mtodo directo de Liapunov,
control deslizante, control adaptivo y linealizacin de la realimentacin.
La idea fundamental del control de procesos no lineales empleando la tcnica de
linealizacin por realimentacin, es linealizar (hallar un modelo lineal equivalente) el
proceso (parcial o totalmente, si fuera posible) mediante un cambio adecuado de
coordenadas y una realimentacin del vector de estado de dicho proceso, de modo tal
que el proceso resultante nos permita aplicar tcnicas de control lineal, o bien, atacar los
problemas de control con un grado de dificultad menor.
2.5.1. Herramientas Matemticas
Las herramientas matemticas a discutir corresponden a la geometra diferencial y a la
topologa. Solo se tratan los puntos directamente involucrados con la tcnica de
linealizacin por realimentacin.
La notacin:
Indica que a cada funcin vectorial f le corresponde un campo vectorial en el espacio n-
dimensional
]
El Jacobiano de f(x) tiene la forma:
2.5.1.1.Derivadas y Corchete de Lie
Derivada de Lie
Definicin: Dada una funcin escalar suave
denominada la derivada de Lie, o simplemente la derivada direccional de a lo largo
de la direccin del vector f.
Sucesivas derivadas de Lie pueden ser definidas recursivamente
) (
)
Del mismo modo, si g es otro campo vectorial, la funcin escalar
es:
Corchete de Lie
Definicin: Sean f y g dos campos vectoriales en
. El corchete de Lie de f y g se
define como un tercer campo vectorial de la forma:
[ ]
Observar que al corchete de Lie se le denota tambin como
, donde significa
adjunta. Sucesivos corchetes de Lie se pueden definir recursivamente:
]
Los corchetes de Lie satisfacen las siguientes propiedades:
1) Bilinealidad
[
]
[
]
2) Anticonmutatividad
[ ] [ ]
3) Identidad de Jacobi
Donde
, entonces (x) es un
difeomorfismo global. Si (x) se define como una regin finita y para un punto dado,
entonces el difeomorfismo es local.
El siguiente Lema permite determinar difeomorfismos locales.
Lema: Sea (x) un funcin suave definida en una regin en
. Si el jacobiano
es no singular en un punto
de , entonces
()
Donde [
, [
y
[
]
Donde la funcin de transformacin es invertible y tanto como su inversa
son
infinitamente diferenciables. Notar que la transformacin dada en la ecuacin (2.17) Es
un difeomorfismo. Mientras que la propiedad de inversin de permite un retorno a los
estados originales, la propiedad de diferenciacin garantiza que la descripcin del
proceso con las nuevas coordenadas sea tambin infinitamente diferenciable, tal como
lo es el proceso original.
Empleando la transformacin en la ecuacin (2.16) Obtenemos:
[
]
[
]
() [
()
Donde es un punto de equilibrio para el cual la matriz jacobiana es no singular, lo que
significa que su inversa existe. Luego, podemos obtener la siguiente representacin no
lineal para el vector de estado z, como sigue:
()
()
()
Observar que (2.19) Constituye un nuevo sistema no lineal con un vector de estado z.
2.5.1.4. El teorema de Frobenius
El teorema de Frobenius es una herramienta importante para el tratamiento formal de la
linealizacin por realimentacin de procesos de orden n. Este teorema proporciona las
condiciones necesarias y suficientes para resolver una clase especial de ecuaciones con
derivadas parciales. Antes de presentar el teorema en cuestin se requiere de las
siguientes definiciones:
Definicin: Se dice que un conjunto linealmente independiente de campos vectoriales
[
] en
Donde . En adicin, los gradientes h
i
son tambin
linealmente independientes.
La definicin anterior implica la existencia de n(m-n) ecuaciones diferenciales parciales
de la forma
.
Definicin: Se dice que un conjunto linealmente independiente de campos vectoriales
[
] en
tales que:
[ ] [ ]
Ya vimos que la notacin [f, g] es conocida como el corchete de Lie. Partiendo de la
definicin anterior se puede deducir que:
1) Los campos Vectoriales constantes, es decir, si f
k
y g
k
son constantes para
cualquier , son siempre involutivos puesto que:
[ ]
2) Un conjunto compuesto por un solo campo vectorial f es involutivo porque
[ ] .
3) Si un conjunto de campos vectoriales [
] *
]+
Ahora si podemos formular el teorema de Frobenius:
TEOREMA (Frobenius): Sea [
Si
como se muestra a
continuacin:
Nuevamente, si
Definicin: El grado relativo del proceso univariable no lineal dado en la ecuacin
2.20, es el nmero de veces r que hay que derivar la salida hasta obtener:
Para todo x que pertenezca a una regin de
.
2.5.3. Forma Normal de Procesos No lineales
La tcnica de linealizacin por realimentacin requiere de una representacin no lineal
bastante til del proceso a controlar; la forma normal. La transformacin no lineal de
coordenadas que permite llevar un proceso no lineal de una entrada y una salida a su
forma normal, involucra los trminos
] [
]
Con x [
[ ]
[ ]
Notar que en la ecuacin anterior, por definicin, ya que en este caso .
Cuando el proceso no lineal posee rango , entonces el cambio de coordenadas
desarrollado anteriormente conduce a una transformacin parcial, en vista de que slo
se pueden definir r funciones de la forma
linealmente independientes.
Sin embargo, es posible agregar funciones de la forma
Donde
Si se define una seal de realimentacin u (la ley de control no lineal) de la forma:
[ ]
Donde es una nueva entrada, entonces el nuevo conjunto de ecuaciones viene a ser:
Que en forma compacta resulta en la siguiente representacin lineal en el espacio de
estado:
Donde:
[
[
]
Observar que la nueva entrada del proceso lineal es v. La figura 1 Muestra el proceso de
linealizacin descrito hasta ahora. El proceso lineal de la ecuacin (2.29) Es
completamente controlable y completamente observable, ya que sus matrices de
controlabilidad [
] y de observabilidad [
] poseen
rango n (rango completo). Por otra parte, el proceso resultante es un integrador de orden
n debido a que su funcin de transferencia resulta:
[ ]
Figura 1: Linealizacin por realimentacin
Respecto al proceso de linealizacin desarrollado, debemos remarcar lo siguiente:
El sistema de lazo cerrado resultante es lineal, completamente controlable y
completamente observable. Por consiguiente, el problema de controla resolver,
ya sea regulacin o de seguimiento de trayectorias, queda resuelto diseando v
con cualquier tcnica de control lineal conocida.
En general, la realimentacin no lineal requiere de todo el vector de estado z, por
lo que es necesario que todos sus elementos sean medibles. De lo contrario,
estamos obligados a estimarlos empleando un observador no lineal.
Condiciones para Linealizacin Exacta
La linealizacin desarrollada anteriormente fue posible debido a la existencia de una
funcin de salida h(x) respecto a la cual el proceso no lineal original tiene grado relativo
. Resaltemos que un proceso no lineal univariable como el de la ecuacin 2.20
Posee grado cuando la funcin h(x), para un entorno alrededor del punto de
operacin , satisface:
Las condiciones para linealizacin exacta pueden ahora ser rigurosamente formalizadas.
TEOREMA: El proceso univarible no lineal de la ecuacin (2.20):
Donde f(x) y g(x) son campos vectoriales suaves, es linealizable si y slo si existe una
regin en donde se cumplen las condiciones siguientes:
Los campos vectoriales:
[
]
Son linealmente independientes en , lo que equivale a decir, que el rango de la matriz
resultante [.] debe ser igual al orden n del proceso.
El conjunto:
[
]
Es involutivo en .
La primera condicin puede ser interpretada como una condicin de controlabilidad
dado que los campos vectoriales [
]. El rango de esta
matriz debe ser n para que el proceso lineal sea completamente controlable. Sin
embargo, puede ocurrir que un sistema no lineal sea controlable, mientras que su
modelo linealizado no lo es. Por ello, la primera condicin puede considerarse como
una generalizacin de la condicin de controlabilidad.
La condicin involutiva es menos intuitiva. Para sistemas lineales, tal condicin se
satisface trivialmente ya que los campos vectoriales son constantes. Pero, en general, no
se puede decir lo mismo cuando se trata con procesos no lineales.
2.5.5. Observadores No lineales
El estudio de la observabilidad en sistemas lineales tiene su base en la matriz de
observabilidad, que para sistemas univariables no forzados de la forma:
Se define como:
[
]
El caso no lineal y no forzado que nos ocupa posee la descripcin:
Cuya correspondiente matriz de observabilidad generalizada es:
Es fcil demostrar que si y , las matrices de observabilidad de la
ecuaciones (2.33) Y (2.35) se igualan. Supongamos que la matriz O(x) posea inversa
para todo x. En tal caso, la transformacin definida por:
Representa un cambio de coordenadas. Empleando los resultados anteriores y en
analoga con la ecuacin (2.26); la descripcin en el espacio de estado para las nuevas
coordenadas (notar que g=0) es:
[
Que posee la forma matricial siguiente:
Donde:
[
[
]
Se puede demostrar que la matriz de observabilidad del proceso descrito en la ecuacin
(2.38) es la matriz identidad. Por consiguiente, tal proceso es completamente
controlable. Conforme a las relaciones (2.34), (2.35) y (2.36) se tiene que:
El observador a disear debe estimar el vector de estado z; es decir, debe determinar su
estimado empleando las mediciones a la entrada y a la salida del proceso. Haciendo
una extensin de los bien conocidos observadores lineales, para el observador no lineal
podemos considerar la dinmica siguiente:
[ ]
Donde observamos que el trmino [ ] es proporcional al error entre la salida del
proceso y la salida del observador . Para obtener la expresin del observador para los
estados del proceso no lineal, empleamos la versin estimada de la ecuacin (2.40)
Que nos permite despejar el vector de estado estimado como sigue:
Y usando la relacin (2.41) Obtenemos:
[ ]}
{ [ ]}
[ ]
Que es la ecuacin del observador no lineal para el sistema no forzado
con condicin inicial , siempre que
Para el caso de procesos no lineales forzados con grado relativo , y teniendo en
cuenta la transformacin acostumbrada , entonces el sistema con las nuevas
coordenadas resulta:
[
)]
Luego, por extensin, la dinmica del observador para el sistema forzado:
Tiene la forma:
) [ ]
Que debe cumplir con los requerimientos siguientes: que el proceso posea grado
relativo , que su matriz de observabilidad sea invertible y que la entrada u sea
uniformemente acotada. La ecuacin del observador para el sistema original toma la
forma siguiente:
[ ]
Para una condicin inicial .
Calculo de la matriz de Ganancia L del Observador
Dado que el par [ ] dado en (2.39) es completamente observable, una forma de
obtener L es aplicar la conocida frmula del observador lineal:
]
Donde n es el orden del proceso, y:
[
]
[
Los parmetros
, se obtienen de la ecuacin:
| |
Mientras que los parmetros
Y deben tener parte real negativa para garantizar la estabilidad del observador no lineal.
2.5.6. Procedimiento de Diseo
El procedimiento para disear el sistema de control no lineal basado en la tcnica de
linealizacin por realimentacin es como sigue:
1) Formular el problema (definir especificaciones de diseo).
2) Determinar el modelo no lineal continuo del proceso.
3) Determinar el grado relativo del modelo no lineal continuo del proceso.
4) Comprobar que se cumplen las condiciones de linealizacin exacta del modelo
no lineal continuo del proceso.
5) Determinar la forma normal del proceso no lineal.
6) Implementar la linealizacin por realimentacin de estado y la ley de control no
lineal.
7) Disear el observador no lineal de estados (si fuera necesario).
8) Simular el sistema de control no lineal con el propsito de predecir un
rendimiento satisfactorio.
9) Implementar el hardware.
10) Implementar el software de control.
11) Realizar pruebas de funcionamiento.
2.5.7. Herramienta de la Geometra Diferencial
Los mtodos de geometra diferencial son principalmente
aplicados a procesos no lineales para determinar si tales procesos
son lineales por realimentacin de estado; esto es si la descripcin
dinmica de un proceso en particular puede ser linealizada
despus de una transformacin adecuada de coordenadas y la
realimentacin del vector de estado al proceso no lineal. De
acuerdo a la terminologa usada en la geometra diferencial,
llamaremos a una funcin vectorial dimensional:
[
] [
]
Un campo vectorial, si para cada uncin vectorial f le corresponde
un campo de vectores de un espacio n dimensional R
n
.
Posteriormente , solo trataremos con campo vectoriales suaves de
la forma f(x), lo que significa que tales vectores poseen derivadas
parciales continuas de cualquier orden. Suavidad tambin se
aplica a funciones.
El gradiente de una funcin escalar suave h(x) es definida como:
+
Los elementos deh, son:
Similarmente, el Jacobiano de f(x), de elementos:
, es definido como:
2.5.7.1. Derivada de Lie y Corchete de Lie
La derivada de Lie es una funcin escalar h(x) con
respecto a un campo vectorial f(x) es una nueva
funcin escalar L
f
h definida como:
Obsrvese que la derivada de Lie es el producto
interno entre y f(x). Las derivadas de Lie
repetidas pueden ser formuladas en forma
recursiva:
) (
)
Si f y g son campos vectoriales, luego:
Corchete Lie
El corchete de lie de dos campos vectoriales f y g
es otro campo vectorial [f, g], definido como:
[ ]
La notacin ad
f
g es frecuentemente usado en vez
de [f,g]. Los corchetes de Lie repetidos pueden ser
formulados de forma recursiva:
]
Si f,f
1
,f
2
,g,g
1
,g
2
, son campo vectoriales suaves,
1
y
2
son constantes escalares y h(x) es una funcin
escalar suave de x, podemos enunciar las siguiente
propiedades del corchete de Lie:
1) Bilinealidad:
[
]
[
]
2) Anticonmutatividad:
[ ] [ ]
3) Identidad de Jacobi:
2.5.7.2. Difeomorfismo y Transformacin de
Coordenadas
Una funcin definida en una regin es
conocida como un difeomorfismo si ambos, y su
inversa
-1
son funciones suaves. Si la regin es
igual a R
n
(el espacio total), entonces (x) es un
difeomorfismo global. Por otro lado un
difeomorfismo local es definido solo en un campo
finito de un punto dado x
o
.
Una funcin suave (x) definida en una regin
en R
n
es un difeomorfismo local si la matriz
Jacobiana x es no singular en un punto
de la regin .
Empleando un difeomorfismo, podemos
transformar los estados de un proceso no lineal
dentro de un nuevo conjunto de estados
correspondientes a la transformacin de un proceso
no lineal. Consideremos un proceso no lineal SISO
(single-input-single-output) descrito por:
Donde la entrada simple es u y la salida simple es
. Definiremos ahora un nuevo conjunto de estados
(x). Ejecutando la diferenciacin en z:
Donde:
2.5.7.3. Teorema de Frobenius
Sea f
1,
f
2
,,f
m
un conjunto de campos vectoriales
linealmente independiente en R
n
. El Teorema de
Frobenius establece que tal conjunto es
completamente integrable s u solo s es involutivo,
segn se explica posteriormente.
El conjunto de campos vectoriales definidos
anteriormente completamente integrable s y slo s
existen (n - m) funciones escalares h
1
(x),
h
2
(x),,h
n-m
(x), que satisfacen el siguiente sistema
de ecuaciones diferenciales parciales:
Donde los gradientes h
1,
h2hn-m, son
tambin linealmente independientes.
El conjunto de campos vectoriales considerado es
llamado a ser involutivo s y slo s hay funciones
escalares
ijk
en R (el espacio unidimensional)
satisfaciendo:
[
La ultima ecuacin indica que el campo vectorial
resultante [
] *
]+
Donde la notacin [ ] representa ell rango de la matriz
formada por la columna de los campos vectoriales
2.5.8. Linealizacin por Realimentacin para Procesos SISO
Esta seccin presenta la metodologa para disear controladores
estables basados en la linealizacin entrada-salida de procesos
SISO no lineales, [5], [10], [11], [12], los cuales pueden ser
descritos por:
[
] [
] [
]
Donde x es el vector de estado de orden , u es la seal de
control o entrada, y es la salida del proceso, f y g son campos
vectoriales suaves de orden y h es una funcin suave que
describe la salida.
2.5.8.1. Condiciones de Linealizacin
El proceso no lineal descrito en la ecuacin (3.6) es
linealizable s y slo s las siguientes condiciones
son verdaderas para una regin :
1) Los campos vectoriales g, ad
f
g, ,
, son
linealmente independientes en .
2) El conjunto g, ad
f
g,,
es involutivo en
Para procesos lineales SISO:
Donde A de orden y B de orden son
las matrices de estado y control (o distribucin)
respectivamente. La primera condicin arriba
mencionada, puede ser interpretada como la
condicin e controlabilidad de un proceso lineal de
la forma:
El sistema (3.7) es controlable si su matriz de
controlabilidad posee rango total; es decir:
[
]
Por consiguiente la primera condicin descrita
arriba puede ser interpretada como la Condicin de
Controlabilidad Generalizada para procesos no
lineales
2.5.8.2. Grado Relativo del Proceso
Diferenciando la salida de (3.6):
Si
para algn
, entonces la
siguiente transformacin de entrada:
Genera una relacin diferencial lineal entre la salida y
la nueva entrada v de la forma:
Caso contrario si
para todo x, la
diferenciacin de resulta:
Si
como sigue:
Hasta que para algn entero y para algn
En esta situacin, sustituyendo la ley de control:
En:
Genera una relacin diferencial lineal entre la
salida y la nueva entrada v de la forma:
Por lo tanto, un proceso SISO posee un grado
relativo r en un punto x
0
de una regin , si para
todo x :
Obsrvese que r es el nmero de diferenciaciones
ejecutadas en la salida . En general (donde
n es el orden del proceso). Si , la
linealizacin entrada-salida se denomina exacta.
2.5.8.3. Forma Normal SISO para Linealizacin Exacta
El proceso no lineal (3.2) puede ser transformado a
una forma normal usando los resultados
establecidos en la seccin anterior. La lienalizacin
exacta de un proceso no lineal descrito por (3.2)
ocurre cuando el grado relativo r es igual al orden
n del proceso. Para linealizacin exacta, la
transformacin de estado:
[
] [
] [
] [
]
Origina la siguiente ecuacin de estado:
[
Donde:
)
2.5.8.4. Ley de Control SISO para Linealizacin Exacta
Consideremos la siguiente ley de control
linealizada:
[ ]
Donde v es una nueva entrada a ser determinada,
y son dadas por (3.23), y z es el estado
linealizado. Sustituyendo (3.14) en (3.12),
llegamos a la representacin cannica no lineal
invariante en el tiempo:
Donde:
[
[
]
La funcin de transferencia del proceso linealizado
es:
[ ]
Donde s es el operador de Laplace. La entrada v
puede ser diseada empleando la tcnica por
ubicacin de polos en el sistema lineal equivalente
dado en (3.15).
Luego, la entrada real u se calcula usando (3.14).
empleando (3.16), el sistema lineal equivalente se
puede describir como:
Donde es la trayectoria deseada e
es la seal de error de seguimiento. La
ecuacin caracterstica del sistema lineal
equivalente es hallada de:
Para un comportamiento asintticamente estable,
con para , ninguno de las
races de (3.18) debe ser localizado en el lado
derecho del plano s, incluyendo el eje imaginario.
Los parmetros del controlador
son
seleccionados para encontrar tales requerimientos.
La entrada v toma la forma (tener presente que
):
Donde:
[
] [
]
[
2.5.9. Linealizacin Por Realimentacin para Procesos MIMO
2.5.9.1. Modelando Procesos Cuadrados No Lineales
Un proceso no lineal MIMO [11], es llamado
cuadrado cuando el nmero de entradas del
proceso es igual al nmero de salidas del proceso.
El proceso cuadrado a ser considerado se describe
como:
Donde:
|
| |
| |
|
|
| |
| |
|
Donde x es el vector de estado de orden n 1, u es
el vector de control de entrada (de componentes u
i
)
de orden m1, y es la salida del vector (de
componentes y
i
) de orden m1, f es un campo
vectorial suave de orden n1, h es un campo
vectorial suave de orden m 1, y G es una matriz n
m cuyas columnas son los campos vectoriales g
j
de orden n 1. Los componentes de g y h son
funciones suaves.
2.5.9.2. Grado Relativo Total
El proceso cuadrado descrito por (3.20) posee un
grado relativo total
Si:
1) Para todo x alrededor de x
o
:
2) La siguiente matriz m m es no singular en
x = x
o
:
|
|
|
|
(2.41)
Observando las filas de A, podemos decir que cada
entero
es el mnimo
nmero de diferenciaciones ejecutadas en la salida
La linealizacin exacta de un proceso no lineal
MIMO descrito por (3.20), ocurre cuando el grado
relativo total :
, es igual al orden n
del proceso; es decir, la dimensin del vector de
estado. Para linealizacin exacta, se tiene la
siguiente transformacin de estado z:
|
|
|
|
|
|
|
|
|
|
|
|
(2.42)
Donde:
Da lugar a las siguientes ecuaciones de estado:
2.5.9.4. Ley Control de Desacoplamiento MIMO
Es importante sealar que el grado relativo r
i
, i = 1,
...,m, es el entero ms pequeo requerido para que
por lo menos una de las entradas aparezca en (ver
(3.23)):
Consideremos ahora la siguiente ley de control
desacoplada:
[ ]
Donde: [
)
Respectivamente. Sustituyendo los elementos de
, (ecuacion (3.24)) en (3.23), se
obtiene la representacin cannica lineal invariante
en el tiempo del proceso MIMO; es decir, la
ecuacin (3.23) con:
Por otro lado, de la relacin se
puede demostrar que la transferencia del
proceso linealizado MIMO [11]:
[
Lo cual significa que
donde cada entrada vi es diseada por
ubicacin de polos aplicado al correspondiente
subsistema lineal equivalente. Tal subsistema
puede ser seleccionada como:
Donde
Para comportamiento asintticamente estable, es
decir con
para ,
ninguno de las races de (3.27) debe ser localizado
en el lado derecho del plano s, incluyendo el eje
imaginario. Los parmetros del controlador
, son
seleccionados para encontrar tales requerimientos,
y la entrada
tomar la forma:
Donde:
]
2.6. Hiptesis y Variables
2.6.1. Hiptesis General
Es posible disear el controlador no lineal multivariable por
realimentacin de estado aplicado al robot manipular esfrico.
2.6.2. Hiptesis Especfica
Es posible analizar el modelo dinmico del robot manipulador
esfrico de 3 grados de libertad empleando el algoritmo de
Lagrange Euler.
Es posible aplicar la tcnica de control no lineal por
realimentacin de estado para sistemas de mltiples entradas y
mltiples salidas.
Es posible realizar la simulacin el sistema aplicando la tcnica
de control de linealizacin exacta por realimentacin de estado
aplicado al robot manipulador esfrico.
2.7. Variables
2.7.1. Variables Independientes
Control no lineal multivariable por realimentacin de Estado.
2.7.2. Variables Dependientes
Robot Manipulador
2.8. Metodologa
2.8.1. Tipo y Nivel de Investigacin
CAPTULO III
3. MODELADO DE LA PLANTA
3.1. Introduccin
El modelado de la planta consiste en determinar la descripcin
matemtica (usualmente un conjunto de ecuaciones diferenciales) del
proceso a ser controlado, que en nuestro caso es el robot manipulador
esfrico. Tal modelado describe la dinmica del proceso y tiene por
objeto conocer la relacin entre el movimiento del robot y las fuerzas
implicadas en el mismo. Para determinar las ecuaciones del modelo
usaremos el algoritmo de Lagrange-Euler [1], [2], [4], [7].
3.2. Descripcin del Sistema
El Sistema Robot Manipulador Esfrico de 3 Grados de Libertad que en
adelante lo llamaremos SRM (Spherical Robot Manipulator) de 3DOF es
mostrado en la figura 3.1. A continuacin se describe los tres grados de
libertad usados en el proceso:
1. Primer Grado de Libertad:
Est compuesto por un servomotor DC1 de 24 VDC con encoder ptico
incorporado, y una base conformado por un disco y un prisma de
aluminio; de tal manera que en la parte inferior del disco de radio R
d
y
altura h
d
, ir acoplado con una bocina de bronce dicho servomotor en
posicin vertical y sobre la parte superior del disco ira un prisma de
seccin cuadrada a
p
, y de altura h
p
, a su vez en la parte superior de dicho
prisma ir el otro servomotor en posicin horizontal que corresponde al
segundo grado de libertad. En la figura 3.2 se muestra una vista del
esquema con las medidas del SRM de 3DOF.
2. Segundo Grado de Libertad:
Compuesto por un servomotor por un servomotor DC2 de 24VDC con
encoder ptico incorporado, y una varilla rgida de aluminio, de tal
manera que en el eje de dicho servomotor, en posicin horizontal, ira
acoplado con una bocina de bronce dicha varilla de longitud L
2
, en el
extremo de dicha varilla ir el otro servomotor en posicin horizontal que
corresponde al tercer grado de libertad.
Figura 3.1: Esquema del Robot Manipulador Esfrico de 3DOF
3. Tercer Grado de Libertad:
Compuesto por otro servomotor DC3 de 24 VDC con encoder ptico
incorporado, y una varilla rgida de aluminio, de tal manera que en el eje
de dicho servomotor, en posicin horizontal, ir acoplado con una bocina
de bronce dicha varilla de longitud L
3
, en el extremo de dicha varilla
podr ir un efector final.
3.3. Lista de Variables
Todas las variables que intervienen en el sistema se describen en la Tabla
1.1. Los valores que se presentan han sido tomados de los servomotores
DC con encoder ptico MATSUSHITA modelo GMX-7MCO19B y
modelo GMX-6MPO13A. Donde: C.F.I.: Coeficiente de Friccin
Viscosa y M.I.: Momento de Inercia.
Tabla 3.1: Valores de las Variables.
Smbolo Descripcin Valor
u
1
,u
2
,u
3
Seal de control servo DC1,DC2,DC3 (En simulacin) V
Aceleracin de la gravedad 9.81 m/seg
2
r
m2
Distancia extremo superior del prisma al DC2 0.05 m
C
c1
Coeficiente friccin de Coulomb 1 y 2 DOF 0.001488 kgm
2
/seg
C
c3
Coeficiente friccin de Coulomb 3DOF 0.00015 kgm
2
/seg
m
d
Masa del disco 0.55 kg
m
p
Masa del prisma 1.0 kg
m
2
, m
3
Masa de la 1ra. Y 2da. varilla 0.20 kg
h
d
Altura del disco 0.01 m
R
d
Radio del disco 0.07 m
h
p
Altura del prisma 0.20 m
a
p
Ancho y Largo de la seccin del prisma 0.044 m
L
2
, L
3
Longitud de la 1ra. y 2da. varilla 0.2 m
L
xs2
Long. Del eje de ref. S
1
al CG 1ra. varilla 0.14 m
L
xs3
Long. Del eje de ref. S
2
al CG 2da. varilla 0.14 m
L
cs2
Long. Del eje de ref. S
2
al CG 1ra. varilla (L
2
L
xs2
) m
L
cs3
Long. Del eje de ref. S
3
al CG 2da. varilla (L
3
L
xs3
) m
I
1
M.I. del slido (disco ms prisma) 0.0013 kgm
2
I
2
M.I.de la 1ra. varilla 0.0273 kgm
2
I
3
M.I.de la 2da. varilla 0.0273 kgm
2
J
m1
, J
m2
M.I. servomotor DC1, DC2 0.00059 kgm
2
J
m3
M.I. servomotor DC3 0.000238 kgm
2
J
eq1
M.I. equivalente servomotor DC1 0.2177 kgm
2
B
eq1
C.F.V. equivalente servomotor DC1 0.054 Nms/rad
J
eq2
M.I. equivalente servomotor DC2 0.3954 kgm
2
B
eq2
C.F.V. equivalente servomotor DC2 0.0589 Nms/rad
J
eq3
M.I. equivalente servomotor DC3 0.000305 kgm
2
B
eq3
C.F.V. equivalente servomotor DC3 0.000538 Nms/rad
n
1
, n
2
Reduccin servomotor DC1, DC2 18.5
n
3
Reduccin servomotor DC3 12.5
R
a1
, R
a2
Resist. Armadura servomotor DC1, DC2 3.50 Ohmios
R
a3
Resist. Armadura servomotor DC3 5.30 Ohmios
L
a1
, L
a2
Inductancia armadura servomotor DC1, DC2 Despreciable
L
a3
Inductancia armadura servomotor DC3 Despreciable
V
a1
, V
a2
Voltage armadura servomotor DC1, DC2 24 V
V
a3
Voltage armadura servomotor DC3 24 V
K
A1
,K
A2
,K
A3
Constante ganancia driver 1,2,3 2.17
K
m1
,K
m2
Cte. Torque servomotor DC1, DC2 0.04364 N-m/A
K
m3
Cte. Torque servomotor DC3 0.04217 N-m/A
Kb1, Kb2 Cte. fem servomotor DC1,DC2 0.04364 V/rad/s
Kb3 Cte. fem servomotor DC3 0.4217 d/s
3.4. Aplicacin y Programacin del Modelo
3.4.1. Clculo
La aplicacin del trabajo es el robot manipulador esfrico de tres
grados de libertad. Para determinar la ecuacin dinmica de dicho
manipulador se aplica el algoritmo de Lagrange-Euler. A
continuacin se presenta los siguientes clculos que usaremos
para la programacin con matemtica simblica de Toolbox de
MATLAB [9].
Clculo de los Parmetros D-H
Primeramente se fijan los sistemas de referencia en las
articulaciones como se muestra en la figura 2.5, posteriormente se
determina los parmetros D-H, [1], [2], [4], [7], que se muestran
en la tabla 3.2:
Clculo de las Matrices de Transformacin Homognea
Reemplazando los valores de la Tabla 3.2 en la ecuacin (2.1),
obtenemos las matrices de transformacin homognea
:
Tabla 3.2: valores de los parmetros DH
Juntura
1 q
0 90
2 q 0 L
2
0
3 q 0 L
3
0
Y los productos de los momentos de inercia son:
Figura 3.2: Momento de inercia del disco respecto al sistema de referencia
1(S
1
).
Clculo del momento de inercia del prisma
El momento de inercia del prisma respecto al sistema de
referencia 1 (S
1
)
Clculo del momento de inercia de la base (disco ms prisma)
El momento de inercia de la base es la suma de momentos de
inercia del disco ms el prisma, y est dado por:
Clculo de la matriz de la base J
1
De la ecuacin (2.5) se obtiene la matriz de pseudoinercia de la
base J
1
:
Donde,
es igual a
y la
inercia viene dada por:
.
Clculo de la matriz de la matriz de la primera varilla J
2
El momento de la inercia de la primera varilla I
2
, se obtiene de
[3], [6]:
. Reemplazando estos
valores en la ecuacin (3.5), obtenemos la matriz de
pseudoinercia J
2
.
Donde,
es igual a
.
Clculo de la matriz de Pseudoinercia de la segunda varilla J
3
El momento de inercia de la segunda varilla I
3
, se obtiene de [3],
[6]:
. Reemplazando estos
valores en la ecuacin (2.5), obtenemos la matriz de
pseudoinercia J
3
:
Donde,
es igual a
.
3.4.2. Programacin del Algoritmo de lagrange-Euler
El programa de clculo de la ecuacin dinmica del robot
manipulador esfrico de tres grados de libertad (3DOF) se
determina aplicando el Toolbox de Matemtica Simblica de
MATLAB [9] y se presenta en el apndice A. la ecuacin
dinmica obtenida para los tres grados de libertad son:
Primer grado de libertad:
Segundo grado de libertad:
Tercer grado de libertad
Que son los elementos del torque T
i
, dado en la ecuacin (2.10).
3.4.3. El Modelo de los Actuadores
1. Modelado del Actuador 1 de la Base del Manipulador
En la Figura 3.4, se muestra el servomotor DC1, correspondiente
a la base. El voltaje de entrada
La fuerza electromotriz del servomotor DC es:
En el cual
del
servomotor est dado por:
Por lo tanto la ecuacin del torque
Donde
es el torque de la carga y
es el torque de friccin de
Coulomb. Reemplazando (3.10) en (3.9) resulta:
Donde:
Figura 3.4: Servomotor DC1 de la base del Manipulador
Despreciando la inductancia de armadura o sea
,
obtenemos de (3.7) y (3.8)
Despejando
Donde:
2. Modelado del Actuador 2 de la primera varilla del
Manipulador
En la Figura 3.5, se muestra el servomotor DC2 correspondiente a
la primera varilla. En la misma Figura se muestra el circuito
elctrico del servomotor DC2, controlado tambin por la
armadura. Dicho servomotor se encuentra ubicado en la parte
superior del prisma. Para obtener la ley de control para la segunda
entrada se procede de la misma manera que para el primer
servomotor, obteniendo de esta manera:
Figura 3.5: Servomotor DC2 de la primera varilla del Manipulador
3. Modelado del Actuador 3 de la segunda varilla del
Manipulador
En la Figura 3.6, se muestra el servomotor DC3 correspondiente a
la segunda varilla. En la misma Figura se muestra el circuito
elctrico del servomotor DC3, controlado tambin por la
armadura. Dicho servomotor se encuentra ubicado en extremo de
la primera varilla. Para obtener la ley de control para la tercera
entrada se procede de la misma manera que para el primer
servomotor, obteniendo de esta manera:
Donde:
3.4.4. Modelo de Espacio de Estado
La ecuacin dinmica del manipulador obtenida en las ecuaciones
(3.4), (3.5) y (3.6), se representa en el espacio de estados
mediante la siguiente asignacin de variables:
Figura 3.6: Servomotor DC3 de la segunda varilla del Manipulador
Donde:
]
Reemplazando las ecuaciones (3.16) y (3.19) en la ecuacin
(3.13) se obtiene
en variables de estado:
As mismo, reemplazando las ecuaciones (3.17) y (3.20) en la
ecuacin (3.14) se obtiene
en variables de estado:
De la misma manera, reemplazando las ecuaciones (3.18) y (3.21)
en la ecuacin (3.25) se obtiene
en variables de estado:
La ecuacin dinmica del manipulador obtenida en las ecuaciones
(3.4), (3.5) y (3.6), tambin se representa en variables de estado:
Posteriormente, se reemplaza la ecuacin (3.27) en (3.24) y se
obtiene la primera entrada
Posteriormente, se reemplaza la ecuacin (3.28) en (3.25) y se
obtiene la segunda entrada
Finalmente, se reemplaza la ecuacin (3.29) en (3.26) y se obtiene
la tercera entrada
As mismo de (3.30) se obtiene:
)
De (3.31) y (3.32) se obtiene
Donde:
)(
Finalmente reemplazando las ecuaciones (3.19), (3.20), (3.21), (3.33),
(3.34) y (3.35), en la ecuacin (3.23) se obtiene:
Como la planta tiene tres salidas se tiene:
[
]
[
CAPTULO IV
SIMULACIN DEL SISTEMA
4. Simulacin del Sistema
En esta seccin se muestran las simulaciones del sistema de control no lineal
multivariable de tres entradas y tres entradas y tres salidas, por realimentacin de
estado para el SRM de 3DOF.
Para obtener las simulaciones respectivas se ha tenido en cuenta:
1. El modelo en el espacio-estado, visto en la subseccin 3.4.4.
2. El diseo del controlador no lineal multrivariable basado en la tcnica de
control de linealizacin exacta or realimentacin de estado, visto en la subseccin
4.3.4.
3. El diagrama de bloques del controlador no lineal ilustrado en la Figura
4.1.
Figura 4.1: Diagrama de bloques del controlador no lineal
El diagrama de bloques de la Figura 5.1 es explicado de la siguiente manera: las
variables de estado x del proceso no lineal (robot manipulador esfrico de 3DOF)
genera un cambio de coordenadas en una nueva ecuacin de estado z. con dichas
variables realimentadas y las tres referencias
Trayectorias deseadas:
Polos usados:
Para la base: -8 y -8
Para la primera varilla: -6 y -6
Para la segunda varilla: -40 y -40
tem Tiempo de muestreo: T
4.1.1. Linealizacin por Realimentacin
Un sistema no lineal multivariable de orden n de m entradas y m
salidas es completamente linealizable y desacoplado si su grado
relativo total es:
Si el grado relativo total r, es igual al nmero de orden del sistema
o sea , entonces se aplica el mtodo de linealizacin
exacta. Aplicando los ocnceptos de geometra diferencial
[5],[11],[12],[13], determinamos el grado relativo total.
4.1.2. Determinacin del Grado Relativo Total: r
Aplicando los conceptos de las subsecciones 4.2.2 y 4.3.2, se
obtiene:
Primera salida:
. La segunda derivada de
, es
diferente de cero, por lo tanto el grado relativo de
.
Segunda salida:
. La segunda derivada de
, es
diferente de cero, por lo tanto el grado relativo de
.
Tercera salida:
. La segunda derivada de
, es
diferente de cero, por lo tanto el grado relativo de
.
Grado Relativo Total:
, que es igual al
orden del sistema,por lo tanto se puede aplicar el mtodo de
linealizacin exacta.
4.1.3. Forma Normal para Linealizacin
Aplicndolos conceptos de las subsecciones 4.2.3 y 4.3.3, se
obtiene la transformacin de coordenadas , en la
siguiente forma matricial:
[
Por lo tanto la nueva ecuacin de estado es:
[
(4.1)
4.1.4. Diseo del Controlador No Lineal MIMO
Para la nueva ecuacin de estado (5.1) y aplicando la ecuacin
(4.36), se obtiene las nuevas entradas lineales equivalentes
Donde:
Asimismo se tiene las siguientes equivalencias:
Reemplazando (5.5) en (5.2), se obtiene:
De la misma manera, reemplazando (5.6) en (5.3), se obtiene:
Finalmente, reemplazando (5.7) en (5.4), se obtiene:
Se sabe que para trayectoria constante se tiene:
Reemplazando estos datos en (5.8), (5.9) y (5.10) se obtiene:
Donde,
para la primera
entrada:
Con (4.12) y (3.31) se obtiene la ley de control
para la segunda
entrada:
Finalmente con (4.13) y (3.32) se obtiene la ley de control
para
la tercera entrada:
Donde:
-+
4.1.5. Programacin del Algoritmo de Control No Lineal
Multivariable
Para la programacin del algoritmo de control se ah usado
MATLAB [9], teniendo como dato las condiciones iniciales
indicadas anteriormente y las ecuaciones (4.1), (4.11), (4.12),
(4.13), (4.14), (4.15) y (4.16). Dicho programa se muestra en el
Anexo 2.
4.1.6. Simulaciones
Las simulaciones respectivas son mostradas desde la Figura 4.2
hasta la 4.4. En la Figura 4.2 se muestra las salidas controladas
para la posicin angular de la base a una referencia de 90,
posicin angular de la segunda varilla a una referencia de 180; el
tiempo de establecimiento para la base es de 1.2 seg para la
primera varilla el tiempo de establecimiento es de 1.5 seg y para
la segunda varilla el tiempo de establecimiento es de 0.5 seg
presentando un mnimo sobreimpulso.
Figura 4.2: Trayectoria constante: salidas controladas para la base, primera y segunda
Varilla
En la Figura 4.3 se muestran las seales de control para el
servomotor de la base y los servomotores de las 2 varillas. La
seal del servomotor de la base vara de +10 voltios a -5 voltios
por 0.5 seg, para luego aproximarse a cero a los 1.2 seg, mientras
que la seal del servomotor de la primera varilla vara de +10
voltios a -5 voltios por 0.7 seg., para luego aproximarse a -1
voltio a los 1.7 seg, y finalmente la seal del servomotor de la
segunda varilla vara +10 voltios a -10 voltios por 0.3 seg, para
luego aproximarse a +0.55 voltios a los 1.2 seg; de lo anterior se
concluye que cuando las seales de control se hacen convergentes
el proceso ha sido controlado.
En la Figura 4.4 se muestra la respuesta del sistema para la
velocidad angular del servomotor de la base y de las 2 varillas, se
aprecia que en el arranque la velocidad para los 3 casos se
incrementa para luego aproximarse a cero a los 1.2 seg, para el
servomotor de la base, a los 1.8 seg, para el servomotor de la
primera varilla, a los 0.5 seg, para el servomotor de la segunda
varilla. Esto significa que cuando dichas velocidades convergen a
cero, el proceso ha sido controlado.
Figura 4.3: Trayectoria constante: seales de control para los servomotores de la base,
primera y segunda varilla
Figura 4.4: Trayectoria constante: velocidad para los servomotores de la base, primera
y segunda varilla
4.2. Caso 2: Control de Trayectoria Senoidal
Para esta simulacin se ha asumido una trayectoria senoidal con los
siguientes datos:
Condiciones Iniciales:
Trayectorias deseadas:
)
Polos usados:
Para la base: -8 y -8
Para la primera varilla: -6 y -6
Para la segunda varilla: -40 y -40
Tiempo de muestreo
T=0.01 seg.
4.2.1. Diseo del Controlador No Lineal MIMO
Para el diseo del controlador no lineal MIMO, se usan las
ecuaciones (5.8) y (5.14) para la primera entrada, las ecuaciones
(5.9) y (5.15) para la segunda entrada y las ecuaciones (5.10) y
(5.16) para la tercera entrada.
4.2.2. Programacin del Algoritmo de Control No Lineal
Multivariable
Para la programacin del algoritmo de control se ha usado Matlab
[9], teniendo como dato las condiciones iniciales indicadas
anteriormente y las ecuaciones (5.1), (5.9), (5.10), (5.14), (5.15),
(5.16), dicho programa se muestra en el apndice B.
4.2.3. Simulaciones
Las simulaciones respectivas son mostradas desde la figura 4.5
hasta la figura 4.7. En la Figura 4.5 se muestra las salidas
controladas para la posicin angular de la base, posicin de la
primera varilla y posicin angular de la segunda varilla,
realizando un seguimiento a la seal deseada. Las seales se han
fijado para un periodo de 11 seg. Las amplitudes de las seales
senoidales indican el movimiento de la base y las 2 varillas. El
tiempo de establecimiento es de 1.3 seg. Para la base, 2 seg. Para
la primera varilla y 0.8 seg. Para la segunda varilla; para despus
seguir a la trayectoria deseada.
Figura 4.5: Trayectoria senoidal: salidas controladas para la base, primera y
segunda varilla.
En la Figura 4.6 se muestran las seales de control para el
servomotor de la base, el servomotor de la primera varilla y el
servomotor de la segunda varilla. Las seales de los servomotores
de la base y las 2 varillas llegan hasta 10 voltios en forma
abrupta por un lapso de tiempo de 1.5, 2 y 0.8 seg. Posteriormente
la seal de control de la base disminuye en amplitud hasta hacerse
bien pequea 1.2 voltios, pero siguiendo una aproximacin a una
trayectoria senoidal abrupta. Seguidamente la seal de control de
la primera varilla disminuye en amplitud hasta hacerse pequea
4 voltios, pero siguiendo una trayectoria oscilatoria abrupta.
Finalmente la seal de control de la segunda varilla disminuye en
amplitud hasta hacerse bien pequea 1.5 voltios, pero siguiendo
tambin una trayectoria oscilatoria abrupta.
En la figura 4.7 se muestra la respuesta del sistema para la
velocidad angular del servomotor de la base, velocidad angular de
la primera varilla y velocidad angular de la segunda varilla. Se
aprecia que en el arranque la trayectoria de la velocidad se
incrementa para los 3 casos por un lapso de tiempo de 1.5, 2 y 0.8
seg. Posteriormente la velocidad del servomotor de la base
disminuye en amplitud hasta hacerse pequea 2rad/seg,
siguiendo una trayectoria senoidal. Seguidamente la seal de
control de la primera varilla disminuye en amplitud hasta hacerse
pequea 2.7 rad/seg, se observa que sigue tambin una
trayectoria senoidal. Finalmente la velocidad del servomotor de la
segunda varilla disminuye en amplitud hasta hacerse pequea 4
rad/seg; siguiendo tambin una trayectoria senoidal.
Figura 4.6: Trayectoria senoidal: seales de control para los servomotores de
la base, primera y segunda varilla.
Figura 4.7: Trayectoria senoidal: Velocidad de los servomotores de la base,
primera y segunda varilla.
CAPTULO V
ESPECIFICACIONES TESCNICAS
5. Especificaciones Tcnicas
5.1. Introduccin
En este captulo se tratar sobre las especificaciones tcnicas del sistema
para una futura implementacin del sistema del Robot Manipulador
Esfrico de 3 grados de libertad en tiempo real, el cual se compondr en
el hardware que son los componentes fsicos a usarse en el sistema de
control y en el software que es el lenguaje de programacin a usarse para
el algoritmo de control del sistema. El diagrama de bloques para la
implementacin del sistema de muestra en la figura 5.1.
5.2. El Hardware del Sistema
Los componentes fsicos a usarse en el sistema de control se componen
de las siguientes partes:
- La planta
- El actuador
- El sensor
- La interface de Adquisicin de Datos
5.2.1. La Planta
La descripcin de la planta que viene dado por:
- Tres servomotores DC con encoder ptico incorporado.
- Una base giratoria que vendr a ser el primer grado de
libertad estar formada por un disco metlico que ir acoplada
con una bocina de bronce al eje del primer servomotor en
posicin vertical y una barra metlica de seccin cuadrada que ir
acoplada al disco. Sobre el extremo superior de la barra ir sujeto
el segundo servomotor del segundo grado de libertad.
- El primer eslabn que vendr a ser el segundo grado de
libertad estar formada por una varilla rgida metlica que ir
acoplada de su extremo inferior con una bocina de bronce al eje
del segundo servomotor en posicin horizontal.
- El segundo eslabn que vendr a ser el tercer grado de
libertad estar formada por otra varilla rgida metlica que ir
acoplada de su extremo inferior con una bocina de bronce al
extremo superior de la primera varilla y al eje del segundo
servomotor.
Figura 5.1: Diagrama de Bloques de la implementacin del sistema.
5.2.2. El Actuador
El actuador estar formado por tres servomotores DC de campo
magntico permanente y escobillas conmutadas con encoder
ptico incremental incorporado. Los servomotores DC del primer
y segundo grado de libertad tendrn las siguientes caractersticas.
- Servomotores de los dos primeros grados de libertad.
Marca MATSUSHITA, modelo GMX 7MCO19B
Voltaje nominal: 24 VDC
Corriente en vaco: 0.7 A
Velocidad en vaco: 255 RPM
Relacin de engranajes (n1 y n2): 18.5:1
Torque del servomotor a plena carga: 5.65 Nm
Corriente de Armadura a plena carga: 7 A
Voltaje de Entrada del Encoder: 5 VDC
Salida del Encoder: 1850 Pulsos/Rev. De Salida de eje de 2
canales en cuadratura.
- Servomotor DC del tercer grado de libertad
Marca MATSUSHITA, modelo GMX 6MPO13A
Voltaje nominal: 24 VDC
Corriente en vaco: 0.2 A
Velocidad en vaco: 310 RPM
Relacin de engranajes (n3): 12.5:1
Torque del servomotor a plena carga: 2.37 in-lbs
Corriente de Armadura a plena carga: 4 A
Voltaje de Entrada del Encoder: 5 VDC
Salida del Encoder: 1250 con 2 canales en cuadratura.
- Tres Amplificadores de potencia, una para cada servomotor DC,
en la figura 5.2 se muestra el circuito del amplificador que estar
conformado por el transistor amplificador PN2222 y el transistor
preamplificador PN2907 que estn acoplados por un emisor
comn y que trabajan en la zona de corte y saturacin.
Figura 5.2: Circuito Amplificador de Potencia.
As mismo en dicho circuito se muestra dos pares de
conmutadores A
1,4
y A
2,3
conformado por los MOSFETs
IRFZ34 cuyo esquema simplificado se muestra en la figura 5.3. El
funcionamiento de este amplificador se basa en la lgica de
control para activar al circuito de disparo, es decir, cuando el
sistema de disparo cierra al conmutador A
1,4
y se abre A
2,3
, el
sentido de la corriente es la lnea con puntos induciendo de esta
forma una tensin +V
cc
en el servomotor. Luego si el sistema de
disparo abre al conmutador A
1,4
y se cierra A
2,3
, el sentido de la
corriente es la lnea continua induciendo as una tensin V
cc
en
el servomotor. Por lo tanto el servomotor ve en sus bornes una
onda de voltaje cuadrada, variando entre V
cc
y la corriente que
puede absorber depender de los conmutadores.
Figura 5.3: Esquema del circuito de disparo y conmutacin.
En resumen de lo anterior podemos decir que el objetivo del
sistema de disparo es realizar la conmutacin de cada par A
1,4
y
A
2,3
, de tal forma que se eviten cortocircuitos durante el tiempo de
conmutacin de A
1,4
y A
2,3
. El circuito amplificador de potencia
de la figura 6.3 tiene un circuito construido en base en compuertas
lgicas de tecnologa TTL (Transistor Transistor Logic) que
conformarn los circuitos integrados 7404, 7486 y 7408 y dos
resistencias de 500 . Este circuito gobernar los disparos de los
MOSFETs de manera que las seales PWM que ingresan al
circuito amplificador de potencia que tengan igual amplitud
estarn siempre en nivel bajo (OFF) tal como se muestra en la
tabla 5.1.
Tabla 5.1: Conmutacin de los MOSFETs.
PWM
1
PWM
2
A
1
A
2
A
3
A
4
0 0 OFF OFF OFF OFF
0 1 ON OFF OFF ON
1 0 OFF ON ON OFF
1 1 OFF OFF OFF OFF
- Tres generadores PWM, una para cada servomotor DC, en
la figura 5.4 se muestra el circuito del generador PWM que estar
conformado por el integrado LM3524 que genera una modulacin
por ancho de pulso a una frecuencia de 15.4 KHz , posteriormente
esta seal ser amplificada por el amplificador de potencia que
alimentar al servomotor DC. Los circuitos osciladores 74LS123
realizarn la funcin de sincronizacin para la generacin del tren
de pulsos en cuadratura, cuyas salidas sern las seales PWM1 y
PWM2 que sern las entradas al circuito amplificador.
Figura 5.4: Circuito Generador PWM
5.2.3. El Sensor
El sensor de posicin es el codificador ptico rotatorio, est
incorporado en el servomotor DC, se ilustra en la figura 5.5 y est
conformado por:
Una fuente de luz que puede ser un LED infrarrojo o lser.
Es el que genera un haz de luz perpendicular al disco.
Un disco ranurado acoplado al eje del servomotor y
ubicado entre la fuente de luz y el detector.
Un detector de luz, usualmente es un transistor ptico. Es
el que genera un pulso de corriente que ser la entrada a un
contador de pulsos.
Un conformador de pulsos que convierte la seal
senosoidal proveniente de la salida del detector en seal de onda
cuadrada.
Figura 5.5: Estructura del Codificador ptico rotatorio
El codificador que se usar, incluir dos pistas de marcas o
ranuras en cuadratura (Canales Ay B), cada una asociada a una
fuente de luz y un transistor ptico independientes. Los canales
Ay B producen dos ondas cuadradas desfasadas +90 entre s que
se utilizan para determinar la direccin del movimiento. Por
ejemplo si el canal B adelanta al canal A, el eje est girando en el
sentido anti horario y viceversa. El codificador a usarse tiene una
resolucin de 100 ppr (pulsos por revolucin).
5.2.4. La Interfaz de Adquisicin de Datos
La interface de Adquisicin de Datos ser la encargada de
manejar los datos de entrada y salida del sistema. En la figura 5.1
se muestra el esquema de la interface de adquisicin de Datos con
los componentes que se podran usar cuando se realice la
implementacin del sistema. Las caractersticas tcnicas de la
interface son:
- Marca: National Instruments
- Modelo: NI 6713, insertable en la PC con Bus PCI
- Salida Analgicas: 8
- Resolucin de Salidas Analgicas: 12 bits
- Voltaje de entrada: 10
- Frecuencia: 1 Msamples/s
- Contador/temporizador: 02 de 24 bits
- Entrada/Salida Digital: 8
- Cable modelo: CB 68LP
- Driver Software: NI DAQ para Windows 2000/NT
- Aplicacin de Software: Labview, Visual Basic, Lenguaje
C++
As mismo la interface que se muestra en la figura 6.7, estar
compuesto por:
Tres salida analgicas (DAC0, DAC1 y DAC2), estas
salidas sern seales de control que se enviarn por los terminales
del generador PWM (LM3524) con una resolucin de 12 bits.
Tres puertos digitales de entrada (PA, PB y PC) de 8 bits
cada uno. Estos puertos recibirn los datos provenientes del
decodificador de cuadratura respectivo, que a su vez recibir los
datos de los decodificadores pticos de los servomotores.
El terminal OUTB0 que se usar como salida de una seal
de reloj para el funcionamiento del sistema de control.
El terminal PD0 (bit 0 del puerto D) que se usar como
entrada de la seal de reloj proveniente del OUTB0.
CAPTULO VI
CONCLUSIONES Y RECOMENDACIONES
6. Conclusiones y Recomendaciones
Finalmente se presenta las conclusiones derivadas de este trabajo, as como
tambin algunas recomendaciones para investigaciones futuras.
CONCLUSIONES:
- Para el diseo del sistema de control fue necesario determinar y calcular
el modelo dinmico de la planta, ya que la tcnica de control no lineal
empleada lo requiere.
- La ecuacin dinmica del manipulador robtico se ha determinado
empleando el algoritmo de Lagrange-Euler, el cual tambin puede ser
aplicado a otros procesos fsicos de dos o ms grados de Libertad.
- El planteamiento del problema fue el que las posiciones de la base y de
los dos eslabones sigan trayectorias arbitrarias usando la tcnica de
control por realimentacin de estado. Esta estrategia de control, requiere
del modelo del proceso controlado. Las simulaciones realizadas en el
captulo 5 han demostrado que el modelo obtenido en el captulo 3 es
vlido y cumple con las exigencias de un modelo no lineal multivariable
con propsitos de control. De la misma manera, tales simulaciones
tambin han demostrado que el sistema de control no lineal
multivariable, cumple con las condiciones de diseo impuestas
previamente: seguimiento de las salidas controladas con respecto a
seales arbitrarias de referencia con mnimo sobreimpulso, mnimo de
tiempo de estabilizacin y error en estado estable nulo.
RECOMENDACIONES:
Algunas de las reas que necesitan investigarse, asumiendo que el proceso del
manipulador robtico esfrico ha sido construido, se listan a continuacin:
- El proceso diseado e implementarlo en tiempo real en hardware y
software, puede utilizarse para el estudio de otro tipo de sistemas de
control para el rea de control e instrumentacin, as por ejemplo en el
control avanzado y/o inteligencia artificial, donde se puede demostrar el
uso de estas tcnicas de control.
- Diseo de un controlador que trabaje expuesto a cambios dinmicos
desconocidos (disturbios) y que exijan al controlador afronta con xito el
problema de seguimiento de trayectorias ante la presencia de dichos
disturbios.
- Para un diseo ms general, es necesario agregar una mano al sistema.
En esta forma, Los diseos de los sistemas de control correspondientes
pueden ser orientados a aplicados industriales.
- Tambin se requiere investigar el caso cuando el manipulador robtico
esfrico presenta en su construccin eslabones y junturas flexibles.
BIBLIORAFIA
[1] A. Barrientos, L. Pen, C. Balaguer R. Aracil. Fundamentos de
Robtica. Mc- Graw Hill, 1997.
[2] F. Torres, J. Pomares, P. Gil S. Puente R. Aracil. Robot y Sistemas
Sensoriales. Prentice Hall, 2002.
[3] Ferdinand P. Berr, E. Russell Johnston. Dinmica. McGraw Hill, 1996.
[4] K. S. Fu, R. C. Gonzles, C.S.G. Lee. Robtica, Control, Deteccin,
Visin, Inteligencia. McGraw Hill, 1990.
[5] Khalil, Hassan K. NonLinear Systems. Prentice Hall, 1996.
[6] M. J. Daz. Mecnica Racional Esttica. Editorial Universo, 1993.
[7] Moshen, Shahinpoor. A Robot Engineering Textbook. Harper-Row
Publisher, 1987.
[8] Nakamura, Shoichiro. Anlisis Numrico y Visualizacin Grfica.
Prentice Hall, 1997.
[9] Part Enander, Eva and Anders Sjoberg. The Matlab 5 Handbook.
Addison Wesley, 1999.
[10] Rojas, Arturo. Control Avanzado. Publicacin Independiente, 2001.
[11] Rojas, Arturo. Applied MIMO NonLinear Control Real Time
Implementations.En construccin, 2002.
[12] Slotine, Jean-Jacques E. Applied NonLinear Control. Prentice Hall, 1991.
[13] Jos Angulo. Robtica Prctica (Cuarta Edicin). Editorial Paraninfo,
2000.
ANEXOS
ANEXO 1
Coeficiente de Friccin Viscosa
La obtencin del coeficiente de friccin viscosa del segundo eslabn, tiene que
ver con el modelamiento y compensacin de la friccin de Coulomb. La friccin
de Coulomb es el torque requerido para mantener el servomotor en movimiento
y es una friccin que se opone al movimiento. Se ha comprobado
experimentalmente que la friccin de Coulomb puede ser considerada una
constante. El efecto de la friccin de Coulomb es modelado como un torque
constante proporcional al signo de la velocidad, es decir:
}
Donde
Reemplazamos (A.3) en (A.4), luego igualamos con (A.2)
Las seales en tiempo discreto surgen si el sistema involucra la operacin de
muestreo de seales continuas. Sea
+
donde
es la mitad del
ancho de la zona muerta que ser determinada ms adelante). Si la velocidad es
distinta de cero, el torque tomar dos valores constantes dependiendo el sentido
de giro del servomotor.
La ecuacin (A.6) se puede expresar como:
+
El diagrama de bloques de la Figura A.1 muestra al modelo del servomotor
discreto.
El diagrama involucra la compensacin de la friccin de Coulomb determinada
por el parmetro G3, que ser objeto de anlisis para determinar el coeficiente de
friccin viscosa C
c
.
A.1: Modelo del servomotor DC
Los parmetros para el sistema sin compensar se describen en la Tabla A.1,
donde G
i
, i=1, 2, 3, 4.
Tabla A.1: Parmetros del Sistema a simular
Las simulaciones han sido realizadas en Simulink, cuya entrada V es una entrada
senoidal de amplitud 1.5 V y frecuencia de 2.5 rad/seg. El resultado de la
simulacin para la velocidad angular es mostrada en la Figura A.2, donde se
muestra la friccin de Coulomb sin compensar.
Figura A.2: Simulacin para obtener la Friccin de Coulomb.
La grfica de la velocidad angular en estado estacionario del servomotor DC vs.
El voltaje aplicado al amplificador de potencia, se muestra en la figura A.3,
donde nos permite apreciar una zona muerta a la velocidad cero. Esta zona
muerta es debido a la friccin esttica del servomotor. Note el efecto no lineal en
las cercanas de la zona muerta.
Figura A.3: Respuesta tensin de entrada versus velocidad.
Para Linealizar la ecuacin (A.5) se debe de adicionar una tensin de entrada a
la entrada del amplificador tal que compense la friccin de Coulomb cuando la
velocidad del servomotor
M
th
(
th
velocidad de umbral). Un esquema
general es el que presenta la compensacin de las fricciones esttica y de
Coulomb.
u = u
p
+ V
c
(A.8)
Siendo u la ley de control, u
p
el voltaje de compensacin de la friccin esttica y
V
c
el voltaje de compensacin de Coulomb. El objetivo del primer trmino
(dependiente de la direccin del voltaje de armadura) es sacar al servomotor de
la zona donde la friccin esttica tiene efecto. El objetivo del segundo trmino es
compensar el torque de friccin de Coulomb presente cuando el servomotor est
en movimiento a velocidades mayores al umbral
th
.
El voltaje de compensacin de Coulomb es dado por la relacin:
El coeficiente de friccin viscosa C
c
es pequeo para servomotores DC, siendo
difcil su identificacin en presencia de ruido. Usamos el mtodo de prueba y
error para el clculo de V
c
, segn la Figura A.3, el valor inicial de V
zm
es 0.025
este valor fue disminuido hasta encontrar el valor apropiado de V
zm
es 0.00868.
Despejamos el coeficiente de friccin C
c
de la ecuacin A.9 para reemplazar los
parmetros previamente identificados, como son:
Luego:
El valor V
zm
es 0.00868 permite compensar la friccin de Coulomb resultando el
coeficiente de friccin de valor C
c
= 1.5 e
-4
. Los efectos de compensacin son
mostrados en la figura A.4:
Figura A.4: Experimento de la compensacin de la friccin no lineal.
ANEXO 2
Programas en MATLAB
Listado de Programas en MATLAB
Los programas estn escritos en MATLAB [8], [9], y son los siguientes:
1. robot3dof_p1: este programa es usado en la seccin 3.4, para determinar la
ecuacin dinmica del manipulador de 3DOF, mediante el algoritmo
Lagrange Euler.
2. robot3dof_p2: este programa es usado en la seccin 5.1, para realizar las
simulaciones con trayectoria constante.
3. robot3dof_p3: este programa es usado nen la seccin 5.2, para realizar las
simulaciones con trayectoria senoidal.
Clculo de la Dinmica del Manipulador
robot3dof_p1.m
clear all; close all; clc
% Calculo de la ecuacion dinamica del Robot
% Manipulador Esferico de 3DOF aplicando el Algoritmo
% Lagrange-Euler con Matematica Simbolica de MATLAB.
syms q1 q2 q3 m1 hp hd rm2 hd Lys1 m2 L2 Lcs2 Lxs2 m3 L3 Lcs3 Lxs3
syms g g1 I1 I2 I3 Dq1 Dq2 Dq3 X Y S1 C1 S2 C2 TT1
% A. Datos de los parametros D-H
teta1=q1; teta2=q2; teta3=q3;
dDH1=hp+hd+rm2; dDH2=0; dDH3=0;
aDH1=0; aDH2=L2; aDH3=L3;
alfa1=90; alfa2=0; alfa3=0;
% B. Calculo de las matrices de transformacion: Aij
A01=[cos(q1) 0 sin(q1) 0
sin(q1) 0 -cos(q1) 0
0 1 0 hp+hd+rm2
0 0 0 1];
A12=[cos(q2) -sin(q2) 0 L2*cos(q2)
sin(q2) cos(q2) 0 L2*sin(q2)
0 0 1 0
0 0 0 1];
A02=A01*A12;
A23=[cos(q3) -sin(q3) 0 L3*cos(q3)
sin(q3) cos(q3) 0 L3*sin(q3)
0 0 1 0
0 0 0 1];
A03=A02*A23;
% X=cos(q2)*cos(q3)-sin(q2)*sin(q3)=cos(q2+q3);
% Y=sin(q2)*cos(q3)+sin(q3)*cos(q2)=sin(q2+q3);
% C.- Calculo de las matrices de transformacion homogenea: Uij}
U11=diff(A01,'q1'); U12=diff(A01,'q2'); U13=diff(A01,'q3');
U21=diff(A02,'q1'); U22=diff(A02,'q2'); U23=diff(A02,'q3');
U31=diff(A03,'q1'); U32=diff(A03,'q2'); U33=diff(A03,'q3');
A = -sin(q1)*L3*X-sin(q1)*L2*cos(q2);
B = cos(q1)*L3*X+cos(q1)*L2*cos(q2);
U31=[-sin(q1)*X sin(q1)*Y cos(q1) A
cos(q1)*X -cos(q1)*Y sin(q1) B
0 0 0 0
0 0 0 0];
U32=[-cos(q1)*Y -cos(q1)*X 0 -L3*cos(q1)*Y-L2*cos(q1)*sin(q2)
-sin(q1)*Y -sin(q1)*X 0 -L3*sin(q1)*Y-L2*sin(q1)*sin(q2)
X -Y 0 L3*X+L2*cos(q2)
0 0 0 0];
U33=[-cos(q1)*Y -cos(q1)*X 0 -L3*cos(q1)*Y
-sin(q1)*Y -sin(q1)*X 0 -L3*sin(q1)*Y
X -Y 0 L3*X
0 0 0 0];
X = cos(q2)*cos(q3)-sin(q2)*sin(q3);
Y = sin(q2)*cos(q3)+sin(q3)*cos(q2);
UU31=[-sin(q1)*X sin(q1)*Y cos(q1) A
cos(q1)*X -cos(q1)*Y sin(q1) B
0 0 0 0
0 0 0 0];
UU32=[-cos(q1)*Y -cos(q1)*X 0 -L3*cos(q1)*Y-L2*cos(q1)*sin(q2)
-sin(q1)*Y -sin(q1)*X 0 -L3*sin(q1)*Y-L2*sin(q1)*sin(q2)
X -Y 0 L3*X+L2*cos(q2)
0 0 0 0];
UU33=[-cos(q1)*Y -cos(q1)*X 0 -L3*cos(q1)*Y
-sin(q1)*Y -sin(q1)*X 0 -L3*sin(q1)*Y
X -Y 0 L3*X
0 0 0 0];
% D.- Matrices de seudoinercias: JJi}
% Para la base (disco m\s prisma): JJ1}
JJ1=[I1 0 0 0
0 -I1 0 -m1*Lys1
0 0 I1 0
0 -m1*Lys1 0 m1];
% Para la primera varilla: JJ2}
Lxs2=L2-Lcs2;
JJ2=[ I2 0 0 -m2*Lxs2
0 0 0 0
0 0 0 0
-m2*Lxs2 0 0 m2];
% Para la segunda varilla: JJ3}
Lxs3=L3-Lcs3;
JJ3=[ I3 0 0 -m3*Lxs3
0 0 0 0
0 0 0 0
-m3*Lxs3 0 0 m3];
% E. Calculo de la matriz de inercia simetrica: Hik(q)}
% Matriz H11
H11=simplify(trace(U11*JJ1*U11)) + ...
simple(simplify(trace(U21*JJ2*U21)))+ ...
simplify(trace(UU31*JJ3*UU31));
% Matriz H12
H12=simplify(trace(U22*JJ2*U21)+trace(UU32*JJ3*UU31));
% Matriz H13
H13=simplify(trace(UU33*JJ3*UU31));
% Matriz H21
H21=simplify(trace(U21*JJ2*U22)+trace(UU31*JJ3*UU32));
% Matriz H22
H22=simplify(trace(U22*JJ2*U22))+ simplify(trace(UU32*JJ3*UU32));
% Matriz H23
H23=simplify(trace(UU33*JJ3*UU32));
% Matriz H31}
H31=simplify(trace(UU31*JJ3*UU33));
% Matriz H32
H32=simplify(trace(UU32*JJ3*UU33));
% Matriz H33
H33=simplify(trace(UU33*JJ3*UU33));
% F. Calculo de las matrices: Uijk}
U111=diff(U11,'q1'); U112=diff(U11,'q2'); U113=diff(U11,'q3');
U121=diff(U12,'q1'); U122=diff(U12,'q2'); U123=diff(U12,'q3');
U131=diff(U13,'q1'); U132=diff(U13,'q2'); U133=diff(U13,'q3');
U211=diff(U21,'q1'); U212=diff(U21,'q2'); U213=diff(U21,'q3');
U221=diff(U22,'q1'); U222=diff(U22,'q2'); U223=diff(U22,'q3');
U231=diff(U23,'q1'); U232=diff(U23,'q2'); U233=diff(U23,'q3');
U311=diff(U31,'q1'); U312=diff(U31,'q2'); U313=diff(U31,'q3');
U321=diff(U32,'q1'); U322=diff(U32,'q2'); U323=diff(U32,'q3');
U331=diff(U33,'q1'); U332=diff(U33,'q2'); U333=diff(U33,'q3');
% G. Calculo del vector: hikm}
h111=simplify(trace(U111*JJ1*U11))+...
simple(simplify(trace(U211*JJ2*U21)));
h112=simple(simplify(trace(U212*JJ2*U21)));
hh113=simple(trace(U313*JJ3*UU31));
h121=simple(simplify(trace(U221*JJ2*U21)));
h122=simple(simplify(trace(U222*JJ2*U21)));
h123=simple(simplify(trace(U323*JJ3*U31)));
h131=simple(simplify(trace(U331*JJ3*UU31)));
h132=simple(simplify(trace(U332*JJ3*UU31)));
h133=simple(simplify(trace(U333*JJ3*UU31)));
h211=simple(simplify(trace(U211*JJ2*U22)));
h212=simple(simplify(trace(U212*JJ2*U22)));
h213=simple(simplify(trace(U313*JJ3*U32)));
h221=simple(simplify(trace(U221*JJ2*U22)));
h222=simple(simplify(trace(U222*JJ2*U22)));
hh223=simple(simplify(trace(U323*JJ3*UU32)));
h231=simple(simplify(trace(U331*JJ3*U32)));
hh232=simple(simplify(trace(U332*JJ3*UU32)));
hh233=simple(simplify(trace(U333*JJ3*UU32)));
hh311=simple(simplify(trace(U331*JJ3*UU33)));
h312=simple(simplify(trace(U312*JJ3*UU33)));
h313=simple(simplify(trace(U313*JJ3*UU33)));
h321=simple(simplify(trace(U321*JJ3*UU33)));
hh322=simple(simplify(trace(U322*JJ3*UU33)));
h323=simple(simplify(trace(U323*JJ3*UU33)));
h331=simple(simplify(trace(U331*JJ3*UU33)));
h332=simple(simplify(trace(U332*JJ3*UU33)));
h333=simple(simplify(trace(U332*JJ3*UU33)));
X = cos(q2)*cos(q3)-sin(q2)*sin(q3);
Y = sin(q2)*cos(q3)+sin(q3)*cos(q2); h113=simple(hh113);
h223=simple(simplify(hh223)); h232=h223; h233=h232;
h311=simple(simplify(hh311)); h322=simple(simplify(hh322));
% H. Calculo del vector de fuerza Centrifuga y de
% Coriolis: Ci(q,dq)}
C1=simple(h111*Dq1*Dq1 + h112*Dq1*Dq2 + h113*Dq1*Dq3 + ...
h121*Dq1*Dq2 + h122*Dq2*Dq2 + h123*Dq2*Dq3 + ...
h131*Dq1*Dq3 + h132*Dq2*Dq3 + h133*Dq3*Dq3);
C2=simple(h211*Dq1*Dq1 + h212*Dq1*Dq2 + h213*Dq1*Dq3 + ...
h221*Dq1*Dq2 + h222*Dq2*Dq2 + h223*Dq2*Dq3 + ...
h231*Dq1*Dq3 + h232*Dq2*Dq3 + h233*Dq3*Dq3);
C3=simple(h311*Dq1*Dq1 + h312*Dq1*Dq2 + h313*Dq1*Dq3 + ...
h321*Dq1*Dq2 + h322*Dq2*Dq2 + h323*Dq2*Dq3 + ...
h331*Dq1*Dq3 + h332*Dq2*Dq3 + h333*Dq3*Dq3);
% I. Calculo del vector de fuerza gravitacional: di(q)}
r11=[0; -Lys1; 0; 1];
r22=[-Lxs2; 0; 0;1];
r33=[-Lxs3; 0; 0;1];
g1=[0 0 -g 0];
d1=-m1*g1*U11*r11 - m2*g1*U21*r22 - m3*g1*UU31*r33;
d2=simplify(-m2*g1*U22*r22 - m3*g1*UU32*r33);
d3=simplify(-m3*g1*UU33*r33);
% J. Parametros del sistema
a1=2*I1;
a2=I2 + 2*m2*L2*Lcs2 - m2*L2*L2;
a3=I3 + 2*m3*L3*Lcs3 - m3*L3*L3;
a4=m3*L2*Lcs3;
a5=m3*L2*L2;
a6=m2*g*Lcs2 + m3*g*L2;
a7=m3*g*Lcs3;
% K. Resultados: Matriz de inercia simetrica
% H11=a1+a2*cos(q2)*cos(q2)+a3*cos(q2+q3)*cos(q2+q3)+ ...
% 2*a4*cos(q2)*cos(q2+q3)+
% a5*cos(q2)*cos(q2);
% H12=0;
% H13=0;
% H21=0;
% H22=a2+a3+2*a4*cos(q3)+a5;
% H23=a3+a4*cos(q3);
% H31=0;
% H32=H23;
% H33=a3;
% Vector de fuerza centrifufa y Ciorolis
C1=-2*a2*sin(2*q2)*Dq1*Dq2-2*(a3*sin(q2+q3)*cos(q2+q3))+ ...
a4*sin(2*q2+2*q3)*cos(q2)*Dq1*Dq3;
C2=a2*sin(q2)*cos(q2)*Dq1*Dq1-2*a4*sin(q3)*Dq2*Dq2*Dq3*Dq3 - ...
a4*sin(q3)*Dq3*Dq3;
C3=(a3*sin(q2+q3)*cos(q2+q3)+a4*sin(2*q2+2*q3)*cos(q2))*Dq1*Dq1 + ...
a4*sin(q3)*Dq2*Dq2;
% Vector de fuerza gravitacional
d1=0;
d2=a6*cos(q2)+a7*cos(q2+q3);
d3=a7*cos(q2+q3);
Simulacin con Referencia Constante
robot3dof_p2.m
clear all; close all; clc
% Datos del sub-sistema mecanico base + disco
hd = 0.01;
Rd = 0.07; % altura y radio
% M_disco_total = M_disco + M_bocina_Motor1 = 0.3 + 0.25
m_dt = 0.55; % prisma
hp = 0.21; % altura
ap = 0.044; % ancho y largo de la seccion prisma
% M_prisma_total = M_prisma + M_Motor2 + M_accesorios
% M_prisma_total = 1+1.235+0.1+0.065+0.075
m_pt = 2.475-0.072;
m_hueco = 0.072;
R_hueco = 0.063;
% Inercia de la base mas servomotor DC 2
I1=0.5*(m_pt*(ap^2)/6 + m_dt*(Rd^2)/2-m_hueco*(R_hueco^2)/2)+0.00059;
% Primera varilla
m2=0.25+0.5+0.05; % masa varilla + masa M2 + masa accesorios
mo=0.025; % Masa del objeto
L2=0.20; % Longitud total
Lcs2=0.10; % Longitud del punto de ref. 2 al centro de
gravedad
I2=m2*(L2*L2)/3; % momento de inercia
% Segunda varilla
m3=0.25; % masa del brazo
mo=0.025; % masa del objeto
L3=0.20; % longitud total
Lcs3=0.10; % longitud del punto de ref. 3 al centro de
gravedad
Io=mo*(ap*ap/6); % momento de Inercia del objeto
Iv=m3*(L3*L3)/3; % momento de Inercia segunda varilla
I3=Iv+Io; % inercia total
g =9.81; % aceleracin de la gravedad
% Datos del sub-sistema elctrico
Km1=0.04364; Kb1=0.04364; Ra1=3.5; Jm1=0.00059; n1=18.5; KA1=2.17;
Km2=0.04364; Kb2=0.04364; Ra2=3.5; Jm2=0.00059; n2=18.5; KA2=2.17;
Km3=0.04217; Kb3=0.04217; Ra3=5.3; Jm3=0.000238; n3=12.5; KA3=2.17;
Cc1=0.001488; Cc3=0.00015;
% Carga
Jeq1 = 0.2177; Beq1 = 0.054;
Jeq2 = 0.3954; Beq2 = 0.0589;
Jeq3 = 0.000305; Beq3 = 0.000538;
% Equivalencia de resistencias
RT1 = Ra1/(n1*Km1*KA1);
RT2 = Ra2/(n2*Km2*KA2);
RT3 = Ra3/(n3*Km3*KA3);
% Equivalencia de N
NT1 = n1*Kb1/KA1;
NT2 = n2*Kb2/KA2;
NT3 = n3*Kb3/KA3;
% Parmetros del Robot
a1=2*I1;
a2=I2 + 2*m2*Lcs2*L2 - m2*L2*L2;
a3=I3 + 2*m3*Lcs3*L3 - m3*L3*L3;
a4=m3*Lcs3*L2;
a5=m3*L2*L2;
a6=m2*g*Lcs2+m3*g*L2;
a7=m3*g*Lcs3;
% Modelo lineal equivalente del proceso de 6to orden (Continuo)}
% M=[0 1 0 0 0 0
% 0 0 0 0 0 0
% 0 0 0 1 0 0
% 0 0 0 0 0 0
% 0 0 0 0 0 1
% 0 0 0 0 0 0];
% N=[0 0 0;1 0 0;0 0 0;0 1 0;0 0 0;0 0 1];
% C=[1 0 0 0 0 0;0 0 0 1 0 0;0 0 0 0 1 0];
% % Calculo del rango
% rangoNN=rank(N); % rango = 6
% Calculo de ganancias del sistema realimentado: K1, K2, K3, K4, K5,
K6
polo1 = -8; polo2 = -8;
aa=[1 -polo1]; bb=[1 -polo2];
pol1=conv(aa,bb);
K1=pol1(2); K2=pol1(3);
polo3 = -6; polo4 = -6;
aaa = [1 -polo3]; bbb = [1 -polo4];
pol22=conv(aaa,bbb);
K3=pol22(2); K4=pol22(3);
polo5 = -40; polo6 = -40;
aaaa = [1 -polo5]; bbbb = [1 -polo6];
pol33=conv(aaaa,bbbb);
K5 = pol33(2); K6 = pol33(3);
% Condiciones y parmetros iniciales
p1(1)=0; p1(2)=0; p1(3)=0; p1(4)=0;
p2(1)=0; p2(2)=0; p2(3)=0; p2(4)=0;
p3(1)=0; p3(2)=0; p3(3)=0; p3(4)=0;
x1(1)=0; x1(2)=0; x1(3)=0; x1(4)=0;
x2(1)=0; x2(2)=0; x2(3)=0; x2(4)=0;
x3(1)=0; x3(2)=0; x3(3)=0; x3(4)=0;
x4(1)=0; x4(2)=0; x4(3)=0; x4(4)=0;
x5(1)=0; x5(2)=0; x5(3)=0; x5(4)=0;
x6(1)=0; x6(2)=0; x6(3)=0; x6(4)=0;
% Tiempo de muestreo
Nm=2000; T =0.010;
% Lazo de control
for k=4:Nm;
% Trayectorias constantes deseadas: p1, p2, p3
p1(k)=pi/2;
p2(k)=pi;
p3(k)=pi;
% Transformacion de coordenadas
z1(k)=x1(k);
z2(k)=x4(k);
z3(k)=x2(k);
z4(k)=x5(k);
z5(k)=x3(k);
z6(k)=x6(k);
% Matriz de Inercias Hij:
H11(k)=a1+a2*cos(z3(k))*cos(z3(k))+...
a3*cos(z3(k)+z5(k))*cos(z3(k)+z5(k))+...
2*a4*cos(z3(k))*cos(z3(k)+z5(k))+a5*cos(z3(k))*cos(z3(k));
H22(k)=a2+a3+2*a4*cos(z5(k))+a5;
H23(k)=a3+a4*cos(z5(k));
H32(k)=H23(k);
H33(k)=a3;
% Vector de fuerzas centrifuga y de Coriolis Ci:
C1(k)=-a2*z2(k)*z4(k)*sin(2*z3(k))-...
2*a3*z2(k)*z6(k)*sin(z3(k)+z5(k))*cos(z3(k)+z5(k))...
-2*a4*z2(k)*z6(k)*sin(z3(k)+z5(k))*cos(z3(k));
C2(k)=a2*z2(k)*z2(k)*sin(z3(k))*cos(z3(k))-...
a4*z6(k)*z6(k)*sin(z5(k))-2*a4*z4(k)*z6(k)*sin(z5(k));
C3(k)=a3*z2(k)*z2(k)*sin(z3(k)+z5(k))*cos(z3(k)+z5(k))+...
a4*z2(k)*z2(k)*cos(z3(k))*sin(z3(k)+z5(k))+...
a4*z4(k)*z4(k)*sin(z5(k));
% Vector de fuerza gravitacional di:
d1(k)=0;
d2(k)=a6*cos(z3(k))+a7*cos(z3(k)+z5(k));
d3(k)=a7*cos(z3(k)+z5(k));
% Nuevas entradas equivalentes: v1, v2 y v3
v1(k)=K2*p1(k)-K1*z2(k)-K2*z1(k);
v2(k)=K4*p2(k)-K3*z4(k)-K4*z3(k);
v3(k)=K6*p3(k)-K5*z6(k)-K6*z5(k);
% Ley de Control u1, u2 y u3
% Valores de P1, P2, P3
P1(k)=(RT1*Beq1+NT1)*z2(k)+RT1*C1(k);
P2(k)=(RT2*Beq2+NT2)*z4(k)+RT2*(C2(k)+d2(k));
P3(k)=(RT3*Beq3+NT3)*z6(k)+RT3*(C3(k)+d3(k));
% Primer actuador: base
u1(k) = P1(k) + v1(k)*RT1*(H11(k)+Jeq1);
% Compensando friccin de Coulomb
u1(k) = u1(k) + Cc1*n1*RT1*x4(k);
if(u1(k) > z2(k))
u1(k) = u1(k) + Cc1*n1*RT1*z2(k);
elseif(u1(k) < -z2(k))
u1(k) = u1(k) - Cc1*n1*RT1*z2(k);
end
% Limitando fuerza de control
if(u1(k) > 10)
u1(k)=10;
elseif(u1(k) < -10)
u1(k)=-10;
end
% Segundo actuador: primera varilla
u2(k) = P2(k) + v2(k)*RT2*(H22(k)+Jeq2) + v3(k)*RT2*H23(k);
% Compensando friccin de Coulomb
u2(k) = u2(k) + Cc1*n2*RT2*x5(k);
if(u2(k) > z4(k))
u2(k) = u2(k) + Cc1*n2*RT2*z4(k);
elseif(u2(k) < -z4(k))
u2(k) = u2(k) - Cc1*n2*RT2*z4(k);
end
% Limitando fuerza de control
if(u2(k) > 10)
u2(k) = 10;
elseif(u2(k) < -10)
u2(k) = -10;
end
% Tercer actuador: segunda varilla
u3(k) = P3(k) + v2(k)*RT3*H32(k) + v3(k)*RT3*(H33(k)+Jeq3);
% Compensando friccin de Coulomb
u3(k) = u3(k) + Cc3*n3*RT3*x6(k);
if(u3(k) > z6(k))
u3(k) = u3(k) + Cc3*n3*RT3*z6(k);
elseif(u3(k) < -z6(k))
u3(k) = u3(k) - Cc3*n3*RT3*z6(k);
end
% Limitando fuerza de control
if(u3(k) > 10)
u3(k) = 10;
elseif(u3(k) < -10)
u3(k) = -10;
end
% Proceso de discretizacion
Tc1=Cc1*sign(x4(k));
Tc2=Cc1*sign(x5(k));
Tc3=Cc3*sign(x6(k));
x1(k+1)=x1(k)+T*x4(k);
x4(k+1)=x4(k)+(T*(-n1*RT1*Tc1-P1(k)+u1(k)))/(RT1*(H11(k)+Jeq1));
Det(k)=RT2*RT3*((H22(k)+Jeq2)*(H33(k)+Jeq3)-H23(k)*H23(k));
x2(k+1)=x2(k)+T*x5(k);
x5(k+1)=x5(k)+(T/Det(k))*(RT3*(H33(k)+Jeq3)*u2(k)-
RT2*H23(k)*u3(k)-...
RT3*(H33(k)+Jeq3)*P2(k)+RT2*H23(k)*P3(k)-...
RT3*(H33(k)+Jeq3)*n2*RT2*Tc2+RT2*H23(k)*n3*RT3*Tc3);
x3(k+1)=x3(k)+T*x6(k);
x6(k+1)=x6(k)+(T/Det(k))*(RT2*(H22(k)+Jeq2)*u3(k)-
RT3*H32(k)*u2(k)-...
RT2*(H22(k)+Jeq2)*P3(k)+RT3*H32(k)*P2(k)-...
RT2*(H22(k)+Jeq2)*n3*RT3*Tc3+RT3*H32(k)*n2*RT2*Tc2);
end
% Simulaciones:
% A: Posicion
ejex = linspace(0,Nm*T,Nm-3);
figure
subplot(311)
plot(ejex,p1(4:Nm)*180/pi,ejex,x1(4:Nm)*180/pi), grid
title('R-3DOF: Posicion de la base')
ylabel('q_1')
subplot(312)
plot(ejex,p2(4:Nm)*180/pi,ejex,x2(4:Nm)*180/pi), grid
title('R-3DOF: Posicion de la varilla 1')
ylabel('q_2')
subplot(313)
plot(ejex,p3(4:Nm)*180/pi,ejex,x3(4:Nm)*180/pi), grid
title('R-3DOF: Posicion de la varilla 2')
ylabel('q_3')
xlabel('t [seg]')
% B: Velocidad
figure
subplot(311)
plot(ejex,x4(4:Nm)), grid
title('R-3DOF: Velocidad de la base')
ylabel('dq_1 rad/seg')
subplot(312)
plot(ejex,x5(4:Nm)), grid
title('R-3DOF: Velocidad de la varilla 1')
ylabel('dq_2 rad/seg')
subplot(313)
plot(ejex,x6(4:Nm)), grid
title('R-3DOF: Velocidad de la varilla 2')
ylabel('dq_3 rad/seg'), xlabel('t [seg]')
% C: Seal de control
figure
subplot(311)
plot(ejex,u1(4:Nm)), grid
title('R-3DOF: Seal de control de la base')
ylabel('Voltios')
subplot(312)
plot(ejex,u2(4:Nm)), grid
title('R-3DOF: Seal de control de la varilla 1')
ylabel('Voltios')
subplot(313)
plot(ejex,u3(4:Nm)), grid
title('R-3DOF: Seal de control de la varilla 2')
ylabel('Voltios'), xlabel('t [seg]')
Simulacin con Trayectoria Senoidal
robot3dof_p3.m
clear all ; close all; clc
hd = 0.01;
Rd = 0.07; % altura y radio
% M_disco_total = M_disco + M_bocina_Motor1 = 0.3 + 0.25
m_dt = 0.55; % prisma
hp = 0.21; % altura
ap = 0.044; % ancho y largo de la seccion prisma
m_pt = 2.475-0.072;
m_hueco = 0.072;
R_hueco = 0.063;
% Inercia de la base mas servomotor DC 2
I1=0.5*(m_pt*(ap^2)/6 + m_dt*(Rd^2)/2-m_hueco*(R_hueco^2)/2)+0.00059;
% Primera varilla
m2=0.25+0.5+0.05; % masa varilla + masa M2 + masa accesorios
mo=0.025; % Masa del objeto
L2=0.20; % Longitud total
Lcs2=0.10; % Longitud del punto de ref. 2 al centro de
gravedad
I2=m2*(L2*L2)/3; % momento de inercia
% Segunda varilla
m3=0.25; % masa del brazo
mo=0.025; % masa del objeto
L3=0.20; % longitud total
Lcs3=0.10; % longitud del punto de ref. 3 al centro de
gravedad
Io=mo*(ap*ap/6); % momento de Inercia del objeto
Iv=m3*(L3*L3)/3; % momento de Inercia segunda varilla
I3=Iv+Io; % inercia total
g =9.81; % aceleracin de la gravedad
% Datos del sub-sistema elctrico
Km1=0.04364; Kb1=0.04364; Ra1=3.5; Jm1=0.00059; n1=18.5; KA1=2.17;
Km2=0.04364; Kb2=0.04364; Ra2=3.5; Jm2=0.00059; n2=18.5; KA2=2.17;
Km3=0.04217; Kb3=0.04217; Ra3=5.3; Jm3=0.000238; n3=12.5; KA3=2.17;
Cc1=0.001488; Cc3=0.00015;
% Carga
Jeq1 = 0.2177; Beq1 = 0.054;
Jeq2 = 0.3954; Beq2 = 0.0589;
Jeq3 = 0.000305; Beq3 = 0.000538;
% Equivalencia de resistencias
RT1 = Ra1/(n1*Km1*KA1);
RT2 = Ra2/(n2*Km2*KA2);
RT3 = Ra3/(n3*Km3*KA3);
% Equivalencia de N
NT1 = n1*Kb1/KA1;
NT2 = n2*Kb2/KA2;
NT3 = n3*Kb3/KA3;
% Parmetros del Robot
a1=2*I1;
a2=I2 + 2*m2*Lcs2*L2 - m2*L2*L2;
a3=I3 + 2*m3*Lcs3*L3 - m3*L3*L3;
a4=m3*Lcs3*L2;
a5=m3*L2*L2;
a6=m2*g*Lcs2+m3*g*L2;
a7=m3*g*Lcs3;
% Calculo de ganancias del Sistema realimentado: K1, K2, K3, K4, K5,
K6
polo1 = -8; polo2 = -8;
aa=[1 -polo1]; bb=[1 -polo2];
pol1=conv(aa,bb);
K1=pol1(2); K2=pol1(3);
polo3 = -6; polo4 = -6;
aaa = [1 -polo3]; bbb = [1 -polo4];
pol22=conv(aaa,bbb);
K3=pol22(2); K4=pol22(3);
polo5 = -40; polo6 = -40;
aaaa = [1 -polo5]; bbbb = [1 -polo6];
pol33=conv(aaaa,bbbb);
K5 = pol33(2); K6 = pol33(3);
% Condiciones y prametros iniciales
p1(1)=0; p1(2)=0; p1(3)=0; p1(4)=0;
dp1(1)=0; dp1(2)=0; dp1(3)=0; dp1(4)=0;
ddp1(1)=0; ddp1(2)=0; ddp1(3)=0; ddp1(4)=0;
p2(1)=0; p2(2)=0; p2(3)=0; p2(4)=0;
dp2(1)=0; dp2(2)=0; dp2(3)=0; dp2(4)=0;
ddp2(1)=0; ddp2(2)=0; ddp2(3)=0; ddp2(4)=0;
p3(1)=0; p3(2)=0; p3(3)=0; p3(4)=0;
dp3(1)=0; dp3(2)=0; dp3(3)=0; dp3(4)=0;
ddp3(1)=0; ddp3(2)=0; ddp3(3)=0; ddp3(4)=0;
x1(1)=0;x1(2)=0;x1(3)=0;x1(4)=0;
x2(1)=0;x2(2)=0;x2(3)=0;x2(4)=0;
x3(1)=0;x3(2)=0;x3(3)=0;x3(4)=0;
x4(1) =0;x4(2)=0;x4(3)=0;x4(4)=0;
x5(1)=0; x5(2)=0; x5(3)=0; x5(4)=0;
x6(1)=0; x6(2)=0; x6(3)=0; x6(4)=0;
% Tiempo de muestreo
Nm=2000; T =0.010;
% lazo de Control
for k=4:Nm;
% Trayectorias senoidales deseadas: p1, p2 y p3
p1(k)=pi*cos(2*pi*k*T/11);
p2(k)=3*pi/2*cos(2*pi*k*T/11);
p3(k)=2*pi*cos(2*pi*k*T/11);
% Transformacion de coordenadas
z1(k)=x1(k);
z2(k)=x4(k);
z3(k)=x2(k);
z4(k)=x5(k);
z5(k)=x3(k);
z6(k)=x6(k);
% Aproximacion de derivadas para discretizacion
dp1(k)=(p1(k)+3*p1(k-1)-3*p1(k-2)-p1(k-3))/(6*T);
ddp1(k)=(dp1(k)+ 3*dp1(k-1)-3*dp1(k-2)-dp1(k-3))/(6*T);
dp2(k)=(p2(k)+ 3*p2(k-1)-3*p2(k-2)-p2(k-3))/(6*T);
ddp2(k)=(dp2(k)+ 3*dp2(k-1)-3*dp2(k-2)-dp2(k-3))/(6*T);
dp3(k)=(p3(k)+3*p3(k-1)-3*p3(k-2)-p3(k-3))/(6*T);
ddp3(k)=(dp3(k)+3*dp3(k-1)-3*dp3(k-2)-dp3(k-3))/(6*T);
% Matriz de inercias Hij:
H11(k)=a1+a2*cos(z3(k))*cos(z3(k))+...
a3*cos(z3(k)+z5(k))*cos(z3(k)+z5(k))+...
2*a4*cos(z3(k))*cos(z3(k)+z5(k))+a5*cos(z3(k))*cos(z3(k));
H22(k)=a2+a3+2*a4*cos(z5(k))+a5;
H23(k)=a3+a4*cos(z5(k));
H32(k)=H23(k);
H33(k)=a3;
% Vector de fuerzas centrifuga y de Coriolis Ci:
C1(k)=-a2*z2(k)*z4(k)*sin(2*z3(k))-...
2*a3*z2(k)*z6(k)*sin(z3(k)+z5(k))*cos(z3(k)+z5(k))...
-2*a4*z2(k)*z6(k)*sin(z3(k)+z5(k))*cos(z3(k));
C2(k)=a2*z2(k)*z2(k)*sin(z3(k))*cos(z3(k))-...
a4*z6(k)*z6(k)*sin(z5(k))-2*a4*z4(k)*z6(k)*sin(z5(k));
C3(k)=a3*z2(k)*z2(k)*sin(z3(k)+z5(k))*cos(z3(k)+z5(k))+...
a4*z2(k)*z2(k)*cos(z3(k))*sin(z3(k)+z5(k))+...
a4*z4(k)*z4(k)*sin(z5(k));
% Vector de fuerza gravitacional di:
d1(k)=0;
d2(k)=a6*cos(z3(k))+a7*cos(z3(k)+z5(k));
d3(k)=a7*cos(z3(k)+z5(k));
% Nuevas entradas equivalentes: v1, v2 y v3
v1(k)=K2*p1(k)-K1*z2(k)-K2*z1(k);
v2(k)=K4*p2(k)-K3*z4(k)-K4*z3(k);
v3(k)=K6*p3(k)-K5*z6(k)-K6*z5(k);
% Ley de Control u1, u2 y u3
% Valores de P1, P2, P3
P1(k)=(RT1*Beq1+NT1)*z2(k)+RT1*C1(k);
P2(k)=(RT2*Beq2+NT2)*z4(k)+RT2*(C2(k)+d2(k));
P3(k)=(RT3*Beq3+NT3)*z6(k)+RT3*(C3(k)+d3(k));
% Primer actuador: base
u1(k) = P1(k) + v1(k)*RT1*(H11(k)+Jeq1);
% Compensando friccion de Coulomb
u1(k) = u1(k) + Cc1*n1*RT1*x4(k);
if(u1(k) > z2(k))
u1(k) = u1(k) + Cc1*n1*RT1*z2(k);
elseif(u1(k) < -z2(k))
u1(k) = u1(k) - Cc1*n1*RT1*z2(k);
end
% Limitando fuerza de control
if(u1(k) > 10)
u1(k)=10;
elseif(u1(k) < -10)
u1(k)=-10;
end
% Segundo actuador: primera varilla
u2(k) = P2(k) + v2(k)*RT2*(H22(k)+Jeq2) + v3(k)*RT2*H23(k);
% Compensando friccin de Coulomb
u2(k) = u2(k) + Cc1*n2*RT2*x5(k);
if(u2(k) > z4(k))
u2(k) = u2(k) + Cc1*n2*RT2*z4(k);
elseif(u2(k) < -z4(k))
u2(k) = u2(k) - Cc1*n2*RT2*z4(k);
end
% Limitando fuerza de control
if(u2(k) > 10)
u2(k) = 10;
elseif(u2(k) < -10)
u2(k) = -10;
end
% Tercer actuador: segunda varilla
u3(k) = P3(k) + v2(k)*RT3*H32(k) + v3(k)*RT3*(H33(k)+Jeq3);
% Compensando friccion de Coulomb
u3(k) = u3(k) + Cc3*n3*RT3*x6(k);
if(u3(k) > z6(k))
u3(k) = u3(k) + Cc3*n3*RT3*z6(k);
elseif(u3(k) < -z6(k))
u3(k) = u3(k) - Cc3*n3*RT3*z6(k);
end
% Limitando fuerza de control
if(u3(k) > 10)
u3(k) = 10;
elseif(u3(k) < -10)
u3(k) = -10;
end
% Proceso de discretizacion
Tc1=Cc1*sign(x4(k));
Tc2=Cc1*sign(x5(k));
Tc3=Cc3*sign(x6(k));
x1(k+1)=x1(k)+T*x4(k);
x4(k+1)=x4(k)+(T*(-n1*RT1*Tc1-P1(k)+u1(k)))/(RT1*(H11(k)+Jeq1));
Det(k)=RT2*RT3*((H22(k)+Jeq2)*(H33(k)+Jeq3)-H23(k)*H23(k));
x2(k+1)=x2(k)+T*x5(k);
x5(k+1)=x5(k)+(T/Det(k))*(RT3*(H33(k)+Jeq3)*u2(k)-
RT2*H23(k)*u3(k)-...
RT3*(H33(k)+Jeq3)*P2(k)+RT2*H23(k)*P3(k)-...
RT3*(H33(k)+Jeq3)*n2*RT2*Tc2+RT2*H23(k)*n3*RT3*Tc3);
x3(k+1)=x3(k)+T*x6(k);
x6(k+1)=x6(k)+(T/Det(k))*(RT2*(H22(k)+Jeq2)*u3(k)-
RT3*H32(k)*u2(k)-...
RT2*(H22(k)+Jeq2)*P3(k)+RT3*H32(k)*P2(k)-...
RT2*(H22(k)+Jeq2)*n3*RT3*Tc3+RT3*H32(k)*n2*RT2*Tc2);
end
% Simulaciones
ejex = linspace(0,Nm*T,Nm-3);
figure
subplot(311)
plot(ejex,p1(4:Nm)*180/pi,ejex,x1(4:Nm)*180/pi,'k:'), grid
ylabel('q_1')
legend('q_{d1}','q_1',-1)
subplot(312)
plot(ejex,p2(4:Nm)*180/pi,ejex,x2(4:Nm)*180/pi,'k:'), grid
ylabel('q_2')
legend('q_{d2}','q_2',-1)
subplot(313)
plot(ejex,p3(4:Nm)*180/pi,ejex,x3(4:Nm)*180/pi,'k:'), grid
ylabel('q_3')
xlabel('t [seg]')
legend('q_{d3}','q_3',-1)
figure
subplot(311)
plot(ejex,x4(4:Nm)), grid
ylabel('[Rad/Seg.]')
subplot(312)
plot(ejex,x5(4:Nm)), grid
ylabel('[Rad/Seg.]')
subplot(313)
plot(ejex,x6(4:Nm)), grid
ylabel('[Rad/Seg.]'), xlabel('t [seg]')
figure
subplot(311)
plot(ejex,u1(4:Nm)), grid
ylabel('[Voltios]')
subplot(312)
plot(ejex,u2(4:Nm)), grid
ylabel('[Voltios]')
subplot(313)
plot(ejex,u3(4:Nm)), grid
ylabel('[Voltios]'), xlabel('t [seg]')