You are on page 1of 20

Maestría en Ciencias de la Ingeniería Eléctrica

 Especialidad: Mecatrónica y Control  Materia: Control Inteligente  Catedrático: Dr. Miguel Ángel Llama Leal  Tarea #3 Control Clásico y Difuso para el robot CICESE  Alumno: Ing. Eduardo Cruz Quintero  Número de control: M07130063

Torreón, Coahuila a 5 de octubre de 2012.

ÍNDICE
INTRODUCCIÓN ..................................................... ¡Error! Marcador no definido. DESARROLLO ......................................................... ¡Error! Marcador no definido. Control Clásico para robot CICESE ...................... ¡Error! Marcador no definido. Control Difuso para Robot CICESE ...................... ¡Error! Marcador no definido. CONCLUSIONES..................................................... ¡Error! Marcador no definido. BIBLIOGRAFÍA ........................................................ ¡Error! Marcador no definido.

ÍNDICE
Figura 1.1.- Robot CICESE. ........................................................................................................... 4 Figura 1.2.- Señal de entrada. ..................................................................................................... 6 Figura 1.3.- Controlador clásico para el robot CICESE................................................................. 9 Figura 1.4.- Posiciones actuales y posiciones deseadas de las articulaciones. ......................... 10 Figura 1.5.- Pares de las articulaciones del robot CICESE. ........................................................ 11 Figura 1.6.- Errores de posición del robot CICESE. .................................................................... 12 Figura 1.7.- Controlador difuso (Sugeno) para el eslabón 1. .................................................... 13 Figura 1.8.- Función de membresía para el error de posición 1. .............................................. 13 Figura 1.9.-Funciones de salida para las ganancias y del eslabón 1. .............................. 14

Figura 1.10.- Controlador difuso (Sugeno) para eslabón 2. ...................................................... 14 Figura 1.11.- Función de membresía para el error de posición 2. ............................................ 15 Figura1.12.-Funciones de salida para las ganancias y del eslabón 2. ............................. 15

Figura 1.13.- Cambio del control clásico al control difuso. ....................................................... 16 Figura 1.14.- Controlador difuso (Sugeno) para robot CICESE. ................................................. 17 Figura 1.15.- Posiciones actuales y posiciones deseadas de las articulaciones. ....................... 18 Figura 1.16.- Pares de las articulaciones del robot CICESE. ...................................................... 18 Figura 1.17.- Errores de posición del robot CICESE. .................................................................. 19

Miguel A. Todos los análisis y desarrollos son basados en el artículo "Stable Computed-torque Control of Robot Manipulators via Fuzzy Self-Tuning.INTRODUCCIÓN Este trabajo tiene como objetivo realizar la simulación del comportamiento que tiene el robot CICESE de dos grados de libertad. pares y errores de cada eslabón respecto a la función de entrada. esperando que lo obtenido sea similar. observaremos lo más conveniente para nuestro control de seguimiento. Llama. 1. AND CYBERNETICS—PART B: CYBERNETICS. and Victor Santibañez. Rafael Kelly. VOL. para seguimiento de una trayectoria descrita por una función. MAN. evaluando ambos resultados (control PD clásico y control difuso) determinaremos qué comportamiento nos ayuda más para nuestro sistema. NO. Una vez que tengamos los resultados. IEEE TRANSACTIONS ON SYSTEMS. 30." . que se encuentra en el laboratorio de mecatrónica y control. tanto para un control clásico como para un control difuso. Analizaremos las posiciones. FEBRUARY 2000.

tenemos la matriz de Coriolis o de fuerzas centrífugas multiplicada por las velocidades de las dos articulaciones del robot CICESE. pasando al espacio de estados tenemos las siguientes matrices: En el primer término. tenemos la matriz de inercias que se encuentra multiplicada por las aceleraciones que tienen las articulaciones. en el segundo término.1. por último. tenemos una .Robot CICESE.DESARROLLO Control Clásico para robot CICESE El robot CICESE tiene dos grados de libertad y una representación gráfica como se indica en la siguiente figura: Figura 1.. La siguiente ecuación define el modelo dinámico de cualquier robot de dos grados de libertad en serie: Ahora bien.

La planta de nuestro robot CICESE nos fue proporcionada por nuestro catedrático. por lo que nuestro modelo obtiene la siguiente forma: donde Los elementos de las matrices son calculados con las siguientes ecuaciones: . valiendo la redundancia. compensar la gravedad añadida en el modelo matemático de la planta. en la cual se maneja el modelo de fricción viscosa y la fricción de coulomb.compensación de gravedad que nos sirve para.

la cual muestra en el tiempo como se comporta la función: Figura 1.2.. . podemos transformarlas a velocidades y posiciones. La función de entrada se encuentra definido en el artículo en el cual hicimos referencia en la introducción. utilizando integradores. y dicha función es la siguiente: El seguimiento que se trata de hacer es el descrito en la siguiente figura. es decir. la aceleración de las articulaciones del robot CICESE. Las aceleraciones.Señal de entrada.Ahora despejaremos la variable de mayor orden para poder representar al sistema en variables de estado: La ecuación anterior es la salida de nuestra planta.

Luego agrupamos estos dos elementos en un vector. Otro de los errores que tenemos son los de velocidad. estamos buscando obtener los pares que requiere cada eslabón para poder trabajar la planta del robot CICESE. las dos ganancias las agrupamos en un vector de dos elementos. Las velocidades y aceleraciones deseadas son obtenidas derivando nuestra entrada deseada. siendo el primer elemento el del eslabón uno y el segundo elemento para el eslabón dos. Para el control clásico. los cuales nos servirán para obtener la matriz de inercias. las cuales sumaremos con la matriz de inercia. para ello. o posición deseada. para determinar la matriz de coriolis o de fuerzas centrífugas. Posteriormente. ahora sumamos estos tres componentes. las cuales son y . Ahora bien. la matriz de coriolis y la compensación de gravedad. donde el color morado se refiere a la trayectoria para el eslabón 2. siendo definidas en el artículo como y . y el vector de aceleración de los eslabones. Después.El color amarillo hace referencia a la trayectoria que debe de seguir el eslabón uno. tenemos que el error de posición es obtenido de la diferencia entre posición real de los eslabones y la posición deseada de las articulaciones. Este error. La planta del robot CICESE es mostrada a continuación: function acc=CICESE(x) . los cuales de igual manera que los errores de posición serán multiplicados por su ganancia respectiva. va a ser multiplicado por las ganancias proporcionales de cada eslabón. es necesario tener la compensación de gravedad y las compensaciones de fricción. es necesario realimentar las posiciones y las velocidades actuales de las articulaciones. Una vez que tenemos los errores de posición y velocidad multiplicados por sus ganancias. Este error es obtenido de la diferencia entre la velocidad deseada y la velocidad deseada de las articulaciones.

%m2= 3.186*gr*sin(q(1)+q(2))]. fc2]. 0. g y f. % Inercia eslabón 1 Kg-m2 %I2= 0. if qpto(2)<0. radianes/segundo. %lc2=0. end end % Coeficiente de fricción de Coulomb eslabón 2(Nm). radianes.175.102+0.093. x(4)].45. % Centro de masa eslabón 2(mts). g=[gr*(3.734. %x(3)=Par motor 1.102]. % qdpp=[x(7). % Gravedad (m/seg2) %m1= 23. radianes/segundo.902. % masa eslabón 2 (Kg). %Coeficiente de fricción de Coulomb eslabón 1 (Nm).266. % longitud eslabón 1 (mts). %x(1)=velocidad angular de la articulación 1.084*sin(q(2))*qpto(2).168*sin(q(2))*qpto(2) -0. %Calcular las Matrices y Vectores M.0 fc1= -8.048.45. tao= [x(3). else if qpto(1)>0. x(10)]. %x(5)=posicion angular de la articulación 2. % Inercia eslabón 2 Kg-m2 b1= 2. %lc1=0.049. radianes.168*cos(q(2)) 0. b2= 0. end end % Fricción de Coulomb fc=[fc1. M=[2. if qpto(1)<0.921*sin(q(1)) + 0.0 fc2= -1. x(9)]. % Centro de masa eslabón 1(mts). % qdp=[x(8). C. qpto=[x(1). x(6)]. q=[x(2).084*cos(q(2)) 0.734.091.81. else if qpto(2)>0.288. %l2= 0. % Coeficiente de fricción viscosa eslabón 2 (Nm-seg).084*sin(q(2))*qpto(1) 0]. %x(6)=velocidad angular de la articulación 2.%Programa para modelar un robot de 2 grados de libertad % ----ASIGNACIÓN DE VARIABLES---%x(2)=posición angular de la articulación 1. % longitud eslabón 1 (mts). %l1= 0.102+0. % Valores de los parámetros del Robot: gr= 9.186*sin(q(1)+q(2))).0. C=[-0. 0. . 0.17.0 fc1=7. % Coeficiente de fricción viscosa eslabón 1 (Nm-seg). % masa eslabón 1 (Kg). x(5)]. %x(4)=Par motor 2. % Coeficiente de fricción de Coulomb eslabón 2(Nm).084*cos(q(2)). %I1= 1. else fc1= 0.0. else fc2= 0.0 fc2=1.351+0.880.

la compensación de gravedad. tiene los cálculos de las funciones para la matriz de coriolis.Controlador clásico para el robot CICESE. El código anterior. qpp=M\tcgf. que es el que se encuentra en MATLAB.3.. la matriz de inercias. la compensación de fricción viscosa y la compensación de fricción de coulomb. . b2*qpto(2)]. Figura 1.% Fricción Viscosa fv=[b1*qpto(1). % Salida acc=qpp. % CÁLCULO DE LAS DERIVADAS tcgf=tao-C*qpto-g-fv-fc.

En la siguiente figura. De la misma forma. Los resultados obtenidos fueron los siguientes: Figura 1. analizaremos los pares que se obtienen para alcanzar la posición deseada. integraciones. En la figura anterior se puede apreciar que la posición a seguir del eslabón 1 está definida por el color azul. mientras que la posición actual del eslabón 2 está definida por el color rosa magenta.3. Con lo anterior. la posición a seguir del eslabón 1 es alcanzada en 0. se puede apreciar el diagrama del control clásico PD con las derivaciones. compensaciones y ganancias que se explicaron en párrafos anteriores.4..Posiciones actuales y posiciones deseadas de las articulaciones. la cual es alcanzada en un segundo. . mientras que la posición actual está definida por el color amarillo. la posición del eslabón 2 a seguir esta en color rojo.8 segundos.En la figura 1. teniendo en cuenta el artículo antes mencionado donde los pares no deben de pasar de para el eslabón 1 y de .

4 segundos. En ambos pares se puede apreciar que no sobrepasan del valor máximo que se nos especifica en el artículo.5).. El color rosa magenta muestra el error de posición para el eslabón 2.5°. el cual alcanza un cero en 1.5. se puede analizar el error de posición que cada eslabón tiene mientras transcurre el tiempo.Pares de las articulaciones del robot CICESE. El color amarillo grafica el error de posición que tiene el eslabón 1. pero en cuanto al seguimiento de la función el robot CICESE se comporta bien en términos generales. oscilando entre 8° y -8°. mientras que el color rosa magenta corresponde al par aplicado en el eslabón 2.3 segundos y se mantiene oscilando entre 0° y 1. . Esto hace que el error permanezca. el color amarillo corresponde al par aplicado en el eslabón 1. el cual se hace cero en 1.Figura 1. En la figura anterior. En la siguiente figura (figura 1.

. utilizaremos la misma planta del robot. Para este controlador difuso..6. Control Difuso para Robot CICESE Para este control. solo que haremos algunos cambios para eliminar el controlador clásico PD y colocar nuestro controlador difuso.3.Errores de posición del robot CICESE. solo que ahora tendremos que crear las funciones de membresía para la entrada y salida de los controladores difusos.Figura 1. Para ello. es el mismo diagrama que se muestra en la figura 1. empezaremos por definir nuestras funciones de membresías y reglas para nuestro eslabón 1. así como las mismas compensaciones de gravedad y compensaciones de fricción y las matrices de coriolis o fuerzas centrífugas y de inercias. Prácticamente. usaremos la lógica difusa para que nos arroje las ganancias de posición y de velocidad y así poder hacer las sumatorias necesarias para generar el par. Los pares siguen teniendo la misma restricción.

tenemos lo siguiente para el eslabón 1: Figura 1.Función de membresía para el error de posición 1. En la figura anterior..7. se puede apreciar que como entrada tenemos el error de posición y como salidas las ganancias y a las salidas "Ganancia " y "Ganancia y .Controlador difuso (Sugeno) para el eslabón 1.Según el artículo proporcionado y utilizando MATLAB.8. Las funciones de membresía para el error de posición 1 son las siguientes: Figura 1. en ese orden respectivo. A la entrada la nombramos "epos" ".. .

por lo que para las salidas de tienen las siguientes constantes: y Figura1. pero dado que los resultados no se aproximaban a la respuesta que buscábamos. También se buscaba cambiar las funciones a gaussianas y obtener resultados diferentes. . modificamos a funciones triangulares.Controlador difuso (Sugeno) para eslabón 2.9.. Las salidas se definieron como constantes. pero se obtuvieron los mejores resultados con las triangulares. las funciones de membresía deberían de ser trapezoidales. Ahora.-Funciones de salida para las ganancias y del eslabón 1. definiremos las funciones de membresía para las entradas y salidas del eslabón 2.10.Según el artículo. Para la entrada del error de posición es la siguiente: Figura 1.

por lo que para las salidas de tienen las siguientes constantes: y Figura1. . La parte seleccionada será la que modificaremos para obtener el diagrama del controlador difuso sugeno. en ese orden respectivo.3. A la entrada la nombramos "epos" ".-Funciones de salida para las ganancias y del eslabón 2. en la cual tenemos el controlador clásico.11.Función de membresía para el error de posición 2.12. En la siguiente imagen.. Las salidas se definieron como constantes. Las funciones de membresía para el error de posición 2 son las siguientes: Figura 1.En la figura anterior. vamos a hacer un acercamiento a la figura 1. se puede apreciar que como entrada tenemos el error de posición y como salidas las ganancias y a las salidas "Ganancia " y "Ganancia y .

en un vector sumaremos aceleración deseada de cada eslabón. Los cambios que haremos son los siguientes. habrá que poner un bloque para que sea absoluto en cada error. el cual entrará a la matriz de inercias. tendremos dos escalares como resultado de la suma de cada eslabón. se muestra el diagrama a bloques del control difuso del tipo sugeno con las modificaciones ya mencionadas en el párrafo anterior. En la siguiente figura. . tendremos dos bloques de control difuso a los cuales entrara el error de posición de cada eslabón. más más la respectivamente. primero. pero como la lógica difusa maneja grados habrá que transformar los errores de posición que se tienen en radianes a grados. Una vez obtenidos esos dos escalares..Cambio del control clásico al control difuso. multiplicaremos las ganancias obtenidas y por el error de posición y por el error de velocidad. Como también el error puede ser negativo. los acomodaremos en un vector.Figura 1. Teniendo esas salidas. y así poder continuar con el diagrama para obtener los pares que cada eslabón o articulación necesita. Posteriormente. A la salida de cada bloque de lógica difusa tendremos las ganancias y . de manera respectiva para cada eslabón.13. es decir.

podremos apreciar el tiempo en el que ambas posiciones son alcanzadas y. de la misma forma que el controlador clásico..8 segundos.Controlador difuso (Sugeno) para robot CICESE. la posición a seguir del eslabón 1 es alcanzada en 2. cuya posición es alcanzada en 2 segundos. tenemos que el eslabón 1 está definida por el color azul. mientras que la posición actual del eslabón 2 está definida por el color rosa magenta.Figura 1. En la figura siguiente. . Con lo anterior. 2 segundos más que el controlador clásico.14. Ahora la posición del eslabón 2 a seguir esta en color rojo. mientras que la posición actual está definida por el color amarillo.

Pares de las articulaciones del robot CICESE..Figura 1. A continuación.16. ..15. Figura 1.Posiciones actuales y posiciones deseadas de las articulaciones. mostraremos los pares alcanzados por los eslabones teniendo en cuenta el artículo antes mencionado donde los pares no deben de pasar de para el eslabón 1 y de .

pero el error.Errores de posición del robot CICESE.9 segundos y se mantiene oscilando entre 1° y -1°. podemos observar que nunca se rebasan los pares en las articulaciones. . El color amarillo es el par alcanzado por el eslabón 1 y el color rosa magenta es para el eslabón 2. El color rosa magenta muestra el error de posición para el eslabón 2. a comparación con el control clásico. La siguiente figura. sin oscilar después de esos dos segundos. Se puede analizar el error de posición que cada eslabón tiene mientras transcurre el tiempo.. El color amarillo grafica el error de posición que tiene el eslabón 1. el cual se hace cero en 2. Figura 1.17. disminuye casi a cero en los dos eslabones. el cual alcanza un cero en 2 segundos. es para mostrar los errores de posición en grados de los dos eslabones. No se sobrepasa en ninguno de los dos eslabones. La grafica del comportamiento para el seguimiento por medio del control difuso se tarda más en alcanzar a realizar el movimiento deseado.En la figura anterior.

CONCLUSIONES Con este trabajo pudimos comparar un nuevo sistema entre el control clásico y el control difuso. IEEE TRANSACTIONS ON SYSTEMS. VOL. 1. Con más tiempo. Esto no quiere decir que el control difuso no sea el mejor para este sistema u otros. probablemente se hubiera logrado un mejor comportamiento con el control difuso. pero no se logro. Se cambiaron las funciones de membresía y los valores de las ganancias para obtener un resultado mejor. and Victor Santibañez. El control clásico sigue siendo uno de los controladores más poderosos para obtener la respuesta del sistema. BIBLIOGRAFÍA  Stable Computed-torque Control of Robot Manipulators via Fuzzy SelfTuning. AND CYBERNETICS—PART B: CYBERNETICS. NO. 30. El mejor resultado obtenido fue el que se muestra en este documento. no así para el control difuso debido a que no se logro que el seguimiento lo alcanzara en menos tiempo que el clásico o al menos en un tiempo similar. MAN. Los resultados obtenidos fueron los esperados para el control clásico. Miguel A. simplemente no se obtuvieron mejores resultados que el clásico. . Llama.   Apuntes de la clase de "Control Inteligente" Librerías de MATLAB. solo que esta vez fue para el robot CICESE de dos grados de libertad. FEBRUARY 2000. Rafael Kelly.