Sunteți pe pagina 1din 37

Anlisis de un brazo robtico con tres grados de libertad

Autor: Eduardo Antonio Reyes Quispe

RESUMEN: Termino robot en 1921 por el novelista checo Karel Capek y proviene de robota que significa fuerza de trabajo o servidumbre. Tanto los servosistemas como los reguladores se basan en la realimentacin empleando seales de consigna o referencia que son comparadas con medidas de variables del proceso u objeto a controlar. El error o diferencia se usa para generar acciones de control sobre el proceso u objeto. Tradicionalmente en la realizacin de sistemas automticos se usan tecnologas como la neumtica, hidrulica, elctrica y control electrnico o software. Para nuestra aplicacin se desea simular un brazo usando Matlab como Herramienta de clculo matemtico de su modelacin esttica o dinmica. Palabras clave: servosistemas, servidumbre, neumtica, hidrulica,

Introduccin: OBJETIVO: En el presente artculo se analiza el diseo de un brazo robtico con 3 grados de libertad buscando optimizar sus movimientos mediante la cinemtica y el uso del Matlab para realizar la optimizacin sin restriccin de la funcin de cinemtica y de la funcin dinmica, la dinmica. Para realizar soldadura de arco ms eficiente, as impulsando su implementacin en las industrias peruanas en el ao 2013.

Marco terico: Morfologa de los robots Los robots manipuladores son brazos articulados, es decir, una cadena cinemtica abierta con eslabones o elementos interrelacionados mediante articulaciones o pares cinemticas. Articulaciones Rotacin: Alrededor del eje de la articulacin, suministra un grado de libertad y es la ms empleada. Prismtica: Consiste en una traslacin a lo largo del eje de la articulacin (1 grado de libertad). Cilndrica: Existe una rotacin y una traslacin (2 grados de libertad). Planar: Se caracteriza por el movimiento de desplazamiento en un plano (2 grados de libertad). Esfrica (rotula): Combina 3 giros en direcciones perpendiculares en el espacio (3 grados de libertad.

Figura 4. Configuracin del Brazo Robtico angular.

Cinemtica del robot La cinemtica del robot estudia el movimiento del mismo con respecto a un sistema de referencia sin considerar las fuerzas que intervienen. As la cinemtica se interesa por la descripcin del movimiento espacial del robot como una funcin del tiempo, y en particular por las relaciones entre la posicin y la orientacin del extremo final del robot con los valores que toman sus coordenadas articulares. Existen 2 problemas fundamentales a resolver en la cinemtica del robot (Figura4.1); El primer 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, conocido los valores de las articulaciones y los parmetros geomtricos delos 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, reduciendo el problema cinemtico directo a encontrar una matriz de transformacin homognea de 4x4 que relaciona 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 jacobina.

El problema cinemtico directo La resolucin del problema cinemtico directo permite conocer cul es la posicin y orientacin que adoptara el extremo del robot cuando cada una de las variables que fijan la posicin u orientacin de sus articulaciones toma valores determinados. As, si se han escogido coordenadas cartesianas y ngulos de Euler para representar la pocin al problema cinemtico directo vendr dada por las relaciones: ( )

( ( ( ( (

) ) ) ) )

La obtencin delos modelo cinemtico directo puede4s ser abordado mediante dos enfoques diferentes denominados mtodos geomtricos y mtodos basados en cambios de sistema de referencia. Los primeros son adecuados para casos simples, peo al no ser sistemticos su

aplicacin queda limitada con pocos grados de libertad. Los modelos basados en cambios de sistemas de referencia, permite de una manera sistemtica abordar la obtencin del modelo cinemtico directo para robot de n grados de libertad, siendo estos, por tanto, los ms frecuentes utilizados. En particular las que usan las matrices de transformacin Homognea. Resolucin de los problemas cinemtico directo mediante mtodos geomtricos La resolucin del problema cinemtico directo consiste en encontrar las relaciones que permiten conocer la localizacin especial del extremo del robot a partir de los valores de sus coordenadas articulares. La obtencin de estas relaciones puede en, cierto casos (Robot de pocos grados de libertad GDL), ser fcil de encontrar mediante simples consideraciones geomtrica. Por ejemplo, para los robots de 2GLP de la figura 4.2 se pueden obtener con facilidad

SOLUCION DEL PROBLEMA


Caso 1

As para el robot polar se tiene:

( )

Figura 4.2 Robot planares de 2 grados de libertad

Caso2

As para el robot polar se tiene:


( ( ) )

)
Figura 4.22 Robot planares de 2 grados de libertad

Caso3 Para un robot de 3 grados de libertad, como el de la Figura 4.3 en el que todos sus elementos quedan contenidos en un plano, puede trabajarse sobre este, puede trabajarse sobre este, resultando un Robot similar al de la (Figura4.3) obteniendo

As para el robot polar se tiene

( (

)1) ) ..(2)

.(3) .() [ ] ( ) ( ) (

Figura 4.3 Robot de 3 grados de libertad

MODELO DINMICO DEL BRAZO ROBOT Para resolver el modelo dinmico del robot mediante la ecuacin de movimiento de La grange debemos construir un diagrama de cuerpo libre del robot: Descomponemos cada elemento que conforma el robot calculando su energa cintica (traslacional y rotacional) y energa potencial gravitacional: BASE Energa cintica: Se calcula considerando la masa del cuerpo en cuestin (base), el radio de giro que se mide desde el eje de rotacin (lnea punteada en la figura) hasta la superficie exterior del cuerpo y la velocidad angular del eslabn base.

La energa cintica traslacional no existe en la base ya que esta solo rota y no se traslada.

PRIMER ESLABN BRAZO Energa cintica:

Energa potencial

SEGUNDO ESLABN BRAZO Energa cintica

Donde V es la velocidad que el primer eslabn transmite al segundo cuando el primero se mueve, esta velocidad tiene 2 componentes una en X otra en Y. A continuacin se define V:

( ( ) )

Donde b: Es la longitud del segundo eslabn SOLUCION DEL PROBLEMA APLICANDO MADLAP Optimizado la funcin de la cinemtica con respecto a q2 y q3 obtenida de la Figura 4. a) Datos: b) L1= primera longitud 60cm c) L2= segunda longitud 40cm d) L3= tercera longitud 20cm e) q1= primer Angulo 60 f) q2= segundo Angulo x g) q3= tercer Angulo y h) r= radio 22,5 ( ) ( )

Remplazando datos y sumando la funcin 1,2,3


60*cos(x)+20*cos(x+y)+60+40*sin(x)+20*sin(x + y)+22.5*cos (60)+22.5*sin (60);

OPTIMIZACION DE LA DINAMICA OPTIMIZACION DE LA ENERGA CINEMTICA DE LA BASE DEL BRAZO respecto a y L a) Mb= masa de la base 10kg b) L = radio de giro x c) = velocidad Angular y OPTIMIZACION DE LA ENERGA CINEMTICA DEL PRIMER ESLABON Con respecto y con

a) a= longitud primer eslabn 2m b) = velocidad angular x c) = velocidad angular y d) M1= masa del primer eslabn 5kg e) OPTIMIZACION DE LA ENERGA POTENCIAL DEL SEGUNDO ESLABON a) M2 = masa del segundo eslabn 2,5kg b) = velocidad angular 12,5rpm c) G = gravedad terrestre 9.8 d) A= longitud del primer eslabn 2m OPTIMIZACION DE LA ENERGA CINEMTICA DEL SEGUNDO ESLABON a) M2= masa del segundo eslabn 2,5kg b) A= longitud del primer eslabn 2m c) B= longitud del segundo eslabn 1m d) e) f) = velocidad angular inicial 0rpm = segunda velocidad angular 12,5rpm =tercera velocidad angular x

g) L2= segundo radio de giro y OPTIMIZACION DE LA ENERGA POTENCIAL DEL SEGUNDO ESLABON 1) M2 = masa del segundo eslabn 2,5kg 2) = = velocidad angular 12,5rpm

3) G = gravedad terrestre 9.8 4) A= longitud del primer eslabn 2m 5) B= longitud del segundo eslabn x 6) = velocidad angular y Nota: Todas las funciones fueron
conclusiones. aplicas al madlap lo que se discutir en las

CONCLUSIONES Optimizado la funcin de la cinemtica con respecto a q2 y q3 .Se obtuvo mediante la aplicacin del programa lagrange
clear clf; clear %Trabajamos en lo que sigue con la funcin en %forma simblica. syms x y f=input('Da la funcin con x e y como variables independientes: '); disp('***************************************************************') disp(' PASO 1') disp('-----------') disp('La derivada parcial de f respecto a x es:') fx=diff(f,x); pretty(fx) disp(' ') disp('La derivada parcial de f respecto a y es:') fy=diff(f,y); pretty(fy) disp(' ') %Resolvemos el sistema fx=0, fy=0. disp('***************************************************************') disp(' PASO 2: Resolvemos el sistema fx=0, fy=0. La solucin es:') disp('-----------') [coordx,coordy]=solve(fx,fy) numPuntos=length(coordx) %Calculamos las derivadas parciales segundas. fxx=diff(fx,x); fxy=diff(fx,y); fyx=diff(fy,x); fyy=diff(fy,y); %Construimos la matriz hessiana y el hessiano. hessiana=[fxx fxy;fyx fyy]; disp(' ') disp('**************************************************************') disp(' PASO 3: Construimos la matriz hessiana:') disp('-----------') pretty(hessiana) hessiano=det(hessiana); disp(' ') disp('****************************************************************') disp('PASO 4: Estudiamos si es definida positiva o definida negativa:') disp('-----------') disp(' ') Da la funcin con x e y como variables independientes: 60*cos(x)+20*cos(x+y)+60+40*sin(x)+20*sin(x+y)+22.5*cos(60)+22.5*sin(60); *************************************************************** PASO 1 ----------La derivada parcial de f respecto a x es:

20 cos(x + y) - 20 sin(x + y) + 40 cos(x) - 60 sin(x) La derivada parcial de f respecto a y es: 20 cos(x + y) - 20 sin(x + y) *************************************************************** PASO 2: Resolvemos el sistema fx=0, fy=0. La solucin es: ----------coordx = -2*atan(13^(1/2)/2 + 3/2) -2*atan(3/2 - 13^(1/2)/2) -2*atan(13^(1/2)/2 + 3/2) -2*atan(3/2 - 13^(1/2)/2)

coordy = -2*atan(26^(1/2) + 5) -2*atan(26^(1/2) + 5) -2*atan(5 - 26^(1/2)) -2*atan(5 - 26^(1/2))

numPuntos = 4

************************************************************** PASO 3: Construimos la matriz hessiana: ----------+-+ | - 20 cos(x + y) - 20 sin(x + y) - 60 cos(x) - 40 sin(x), - 20 cos(x + y) - 20 sin(x + y) | | | | - 20 cos(x + y) - 20 sin(x + y), - 20 cos(x + y) - 20 sin(x + y) | +-+ **************************************************************** PASO 4: Estudiamos si es definida positiva o definida negativa: ----------for k=1:numPuntos px=coordx(k); py=coordy(k); if and(imag(px)==0,imag(py)==0) disp(' ') disp('El valor de la matriz hessiana en ese punto es:') pretty(subs(hessiana,{x,y},{px,py})) %Estudiamos el hessiano en el punto hes=double(subs(hessiano,{x,y},{px,py}))

disp('El valor de la segunda derivada respecto x en el punto es:') %Evaluamos fxx en el punto. val=double(subs(hessiana(1,1),{x,y},{px,py})) if and(hes>0,val>0) disp(' Por tanto es un mnimo relativo.') else if and(hes>0,val<0) disp(' Por tanto es un mximo relativo.') else if hes<0 disp(' Por tanto es un punto de silla.') else disp(' Hay que estudiar el signo de la diferencial segunda.') end end end disp('----------------------------------') end end disp( ' ') disp(' ') disp('PASO 5: Estudiamos el grafico de la superficie:') disp('-----------') disp(' ') xMin=input('Da el valor mnimo para x: '); xMax=input('Da el valor mximo para x: '); yMin=input('Da el valor mnimo para y: '); yMax=input('Da el valor mximo para y: '); disp(' ') disp('-----------------------------------------------------------') disp('En la figura 1 se muestra el grfico de superficie ') disp('En la figura 2 el grfico de contorno ') disp('En la figura 3 las curvas de nivel y el campo gradiente') disp(' ') disp('-----------------------------------------------------------') disp(' ') %Representamos la grfica de la funcin [X, Y]=meshgrid(xMin:.1:xMax,yMin:0.1:yMax); Z=double(subs(f,{x,y},{X,Y})); figure(1) colormap('default') surfc(X,Y,Z) shading interp title('Grfico de la superficie') %Las lneas de contorno figure(2) %colormap gray contour3(X,Y,Z,20) title('Lineas de contorno') %Las lneas de contorno figure(3) cs=contour(X,Y,Z,20);clabel(cs); [X1, Y1]=meshgrid(xMin:0.5:xMax,yMin:0.5:yMax); Z1=double(subs(f,{x,y},{X1,Y1})); [px,py]=gradient(Z1,0.5,0.5);

hold on quiver(X1,Y1,px,py) hold off title('Curvas de nivel y gradiente') disp(' ') disp('============================================================') El valor de la matriz hessiana en ese punto es: +| 1/2 | 20 sin(2 atan(26 sin(#2), #1 | | | +where 1/2 #1 == 20 sin(2 atan(26 / 1/2 \ | 13 | #2 == 2 atan| ----- + 3/2 | \ 2 / hes = -2.0396e+03 El valor de la segunda derivada respecto x en el punto es: val = 43.8268 Por tanto es un punto de silla. ---------------------------------El valor de la matriz hessiana en ese punto es: +| 1/2 | 20 sin(2 atan(26 sin(#2), #1 | | | +where 1/2 #1 == 20 sin(2 atan(26 1/2 + 5) + #2) - 20 cos(2 atan(26 -+ 1/2 + 5) + #2) - 20 cos(2 atan(26 | + 5) + #2) - 60 cos(#2) + 40 | #1 | -+ 1/2 + 5) + #2) - 20 cos(2 atan(26 -+ 1/2 + 5) + #2) - 20 cos(2 atan(26 | + 5) + #2) - 60 cos(#2) + 40 | #1 | -+

#1,

+ 5) + #2)

#1,

+ 5) + #2)

/ 1/2 \ | 13 | #2 == 2 atan| 3/2 - ----- | \ 2 / hes = -2.0396e+03 El valor de la segunda derivada respecto x en el punto es: val = -43.8268 Por tanto es un punto de silla. ---------------------------------El valor de la matriz hessiana en ese punto es: +-+ | 1/2 1/2 | | 40 sin(#2) - 60 cos(#2) - 20 cos(#2 + 2 atan(5 - 26 )) + 20 sin(#2 + 2 atan(5 - 26 )), #1 | | | | #1, #1 | +-+ where 1/2 1/2 #1 == 20 sin(#2 + 2 atan(5 - 26 )) - 20 cos(#2 + 2 atan(5 - 26 )) / 1/2 \ | 13 | #2 == 2 atan| ----- + 3/2 | \ 2 / hes = 2.0396e+03 El valor de la segunda derivada respecto x en el punto es: val = 100.3953 Por tanto es un mnimo relativo. ---------------------------------El valor de la matriz hessiana en ese punto es: +| -+ 1/2 1/2 |

| 40 sin(#2) - 60 cos(#2) - 20 cos(#2 + 2 atan(5 - 26 )) + 20 sin(#2 + 2 atan(5 - 26 )), #1 | | | | #1, #1 | +-+ where 1/2 1/2 #1 == 20 sin(#2 + 2 atan(5 - 26 )) - 20 cos(#2 + 2 atan(5 - 26 )) / 1/2 \ | 13 | #2 == 2 atan| 3/2 - ----- | \ 2 / hes = 2.0396e+03 El valor de la segunda derivada respecto x en el punto es: val = -100.3953 Por tanto es un mximo relativo. ----------------------------------

PASO 5: Estudiamos el grafico de la superficie: ----------Da el valor mnimo para x: 10 Da el valor mximo para x: 20 Da el valor mnimo para y: 10 Da el valor mximo para y: 20 ----------------------------------------------------------En la figura 1 se muestra el grfico de superficie En la figura 2 el grfico de contorno En la figura 3 las curvas de nivel y el campo gradiente -----------------------------------------------------------

============================================================

cinematica directa de brazo 1.fig

cinematica directa de brazo 2.fig

cinematica directa de brazo 3.fig

cinematica directa de brazo.m

OPTIMIZACION DE LA DINAMICA OPTIMIZACION DE LA ENERGA CINEMTICA DE LA BASE DEL BRAZO respecto a y L Mb= masa de la base 10kg L = radio de giro x = velocidad Angular y clear clf; clear %Trabajamos en lo que sigue con la funcin en %forma simblica. syms x y f=input('Da la funcin con x e y como variables independientes: '); disp('***************************************************************') disp(' PASO 1') disp('-----------') disp('La derivada parcial de f respecto a x es:') fx=diff(f,x); pretty(fx) disp(' ') disp('La derivada parcial de f respecto a y es:') fy=diff(f,y); pretty(fy) disp(' ') %Resolvemos el sistema fx=0, fy=0. disp('***************************************************************') disp(' PASO 2: Resolvemos el sistema fx=0, fy=0. La solucin es:') disp('-----------') [coordx,coordy]=solve(fx,fy) numPuntos=length(coordx) %Calculamos las derivadas parciales segundas. fxx=diff(fx,x); fxy=diff(fx,y); fyx=diff(fy,x); fyy=diff(fy,y); %Construimos la matriz hessiana y el hessiano. hessiana=[fxx fxy;fyx fyy]; disp(' ') disp('**************************************************************') disp(' PASO 3: Construimos la matriz hessiana:') con

disp('-----------') pretty(hessiana) hessiano=det(hessiana); disp(' ') disp('****************************************************************') disp('PASO 4: Estudiamos si es definida positiva o definida negativa:') Da la funcin con x e y como variables independientes: 1/2*15*x.^2*y.^2; *************************************************************** PASO 1 ----------La derivada parcial de f respecto a x es: 2 15 x y La derivada parcial de f respecto a y es: 2 15 x y *************************************************************** PASO 2: Resolvemos el sistema fx=0, fy=0. La solucin es: ----------coordx = 0 z 0

coordy = 0 0 z

numPuntos = 3

************************************************************** PASO 3: Construimos la matriz hessiana: ----------+-+ | 2 | | 15 y , 30 x y | | | | 2 | | 30 x y, 15 x | +-+ ****************************************************************

PASO 4: Estudiamos si es definida positiva o definida negativa: for k=1:numPuntos px=coordx(k); py=coordy(k); if and(imag(px)==0,imag(py)==0) disp(' ') disp('El valor de la matriz hessiana en ese punto es:') pretty(subs(hessiana,{x,y},{px,py})) %Estudiamos el hessiano en el punto hes=double(subs(hessiano,{x,y},{px,py})) disp('El valor de la segunda derivada respecto x en el punto es:') %Evaluamos fxx en el punto. val=double(subs(hessiana(1,1),{x,y},{px,py})) if and(hes>0,val>0) disp(' Por tanto es un mnimo relativo.') else if and(hes>0,val<0) disp(' Por tanto es un mximo relativo.') else if hes<0 disp(' Por tanto es un punto de silla.') else disp(' Hay que estudiar el signo de la diferencial segunda.') end end end disp('----------------------------------') end end disp( ' ') disp(' ') disp('PASO 5: Estudiamos el grafico de la superficie:') disp('-----------') disp(' ') xMin=input('Da el valor mnimo para x: '); xMax=input('Da el valor mximo para x: '); yMin=input('Da el valor mnimo para y: '); yMax=input('Da el valor mximo para y: '); disp(' ') disp('-----------------------------------------------------------') disp('En la figura 1 se muestra el grfico de superficie ') disp('En la figura 2 el grfico de contorno ') disp('En la figura 3 las curvas de nivel y el campo gradiente') disp(' ') disp('-----------------------------------------------------------') disp(' ') %Representamos la grfica de la funcin [X, Y]=meshgrid(xMin:.1:xMax,yMin:0.1:yMax); Z=double(subs(f,{x,y},{X,Y})); figure(1) colormap('default') surfc(X,Y,Z) shading interp title('Grfico de la superficie') %Las lneas de contorno

figure(2) %colormap gray contour3(X,Y,Z,20) title('Lineas de contorno') %Las lneas de contorno figure(3) cs=contour(X,Y,Z,20);clabel(cs); [X1, Y1]=meshgrid(xMin:0.5:xMax,yMin:0.5:yMax); Z1=double(subs(f,{x,y},{X1,Y1})); [px,py]=gradient(Z1,0.5,0.5); hold on quiver(X1,Y1,px,py) hold off title('Curvas de nivel y gradiente') disp(' ') disp('============================================================') El valor de la matriz hessiana en ese punto es: +-+ | 0, 0 | | | | 0, 0 | +-+ hes = 0 El valor de la segunda derivada respecto x en el punto es: val = 0 Hay que estudiar el signo de la diferencial segunda. ----------------------------------

PASO 5: Estudiamos el grafico de la superficie: ----------Da el valor mnimo para x: 10 Da el valor mximo para x: 20 Da el valor mnimo para y: 10 Da el valor mximo para y: 20 ----------------------------------------------------------En la figura 1 se muestra el grfico de superficie En la figura 2 el grfico de contorno En la figura 3 las curvas de nivel y el campo gradiente -----------------------------------------------------------

============================================================

base del brazo 2.fig

base del brazo 3.fig

optimizacion de la energia cinetica de la base del brazo.m

base del brazo 1.fig

OPTIMIZACION DE LA ENERGA CINEMTICA DEL PRIMER ESLABON Con respecto 1 y 2 a= longitud primer eslabn 2m 1= velocidad angular x 2= velocidad angular y M1= masa del primer eslabn 5kg

clear clf; clear %Trabajamos en lo que sigue con la funcin en %forma simblica. syms x y f=input('Da la funcin con x e y como variables independientes: '); disp('***************************************************************') disp(' PASO 1') disp('-----------') disp('La derivada parcial de f respecto a x es:') fx=diff(f,x); pretty(fx) disp(' ') disp('La derivada parcial de f respecto a y es:') fy=diff(f,y); pretty(fy) disp(' ') %Resolvemos el sistema fx=0, fy=0. disp('***************************************************************') disp(' PASO 2: Resolvemos el sistema fx=0, fy=0. La solucin es:') disp('-----------') [coordx,coordy]=solve(fx,fy) numPuntos=length(coordx) %Calculamos las derivadas parciales segundas.

fxx=diff(fx,x); fxy=diff(fx,y); fyx=diff(fy,x); fyy=diff(fy,y); %Construimos la matriz hessiana y el hessiano. hessiana=[fxx fxy;fyx fyy]; disp(' ') disp('**************************************************************') disp(' PASO 3: Construimos la matriz hessiana:') disp('-----------') pretty(hessiana) hessiano=det(hessiana); disp(' ') disp('****************************************************************') disp('PASO 4: Estudiamos si es definida positiva o definida negativa:') disp('-----------') disp(' ') Da la funcin con x e y como variables independientes: 1/8*(5)*2.^2*y.^2+1/16*(5)*2.^2*x.^2+1/16*(5)*2.^2*cos(2*y*x.^2); *************************************************************** PASO 1 ----------La derivada parcial de f respecto a x es: 5x 2 --- - 5 x y sin(2 x y) 2 La derivada parcial de f respecto a y es: 2 2 5 x sin(2 x y) 5 y - ---------------2 *************************************************************** PASO 2: Resolvemos el sistema fx=0, fy=0. La solucin es: ----------coordx = 0

coordy = 0

numPuntos = 1

**************************************************************

PASO 3: Construimos la matriz hessiana: ----------+-+ | 2 2 2 2 | | 5/2 - 20 x y cos(2 x y) - 5 y sin(2 x y), #1 | | | 4 2 | | #1, 5 - 5 x cos(2 x y) | +-+ where 2 3 2 #1 == - 5 x sin(2 x y) - 10 x y cos(2 x y) **************************************************************** PASO 4: Estudiamos si es definida positiva o definida negativa: ----------for k=1:numPuntos px=coordx(k); py=coordy(k); if and(imag(px)==0,imag(py)==0) disp(' ') disp('El valor de la matriz hessiana en ese punto es:') pretty(subs(hessiana,{x,y},{px,py})) %Estudiamos el hessiano en el punto hes=double(subs(hessiano,{x,y},{px,py})) disp('El valor de la segunda derivada respecto x en el punto es:') %Evaluamos fxx en el punto. val=double(subs(hessiana(1,1),{x,y},{px,py})) if and(hes>0,val>0) disp(' Por tanto es un mnimo relativo.') else if and(hes>0,val<0) disp(' Por tanto es un mximo relativo.') else if hes<0 disp(' Por tanto es un punto de silla.') else disp(' Hay que estudiar el signo de la diferencial segunda.') end end end disp('----------------------------------') end end disp( ' ') disp(' ') disp('PASO 5: Estudiamos el grafico de la superficie:') disp('-----------') disp(' ') xMin=input('Da el valor mnimo para x: '); xMax=input('Da el valor mximo para x: ');

yMin=input('Da el valor mnimo para y: '); yMax=input('Da el valor mximo para y: '); disp(' ') disp('-----------------------------------------------------------') disp('En la figura 1 se muestra el grfico de superficie ') disp('En la figura 2 el grfico de contorno ') disp('En la figura 3 las curvas de nivel y el campo gradiente') disp(' ') disp('-----------------------------------------------------------') disp(' ') %Representamos la grfica de la funcin [X, Y]=meshgrid(xMin:.1:xMax,yMin:0.1:yMax); Z=double(subs(f,{x,y},{X,Y})); figure(1) colormap('default') surfc(X,Y,Z) shading interp title('Grfico de la superficie') %Las lneas de contorno figure(2) %colormap gray contour3(X,Y,Z,20) title('Lineas de contorno') %Las lneas de contorno figure(3) cs=contour(X,Y,Z,20);clabel(cs); [X1, Y1]=meshgrid(xMin:0.5:xMax,yMin:0.5:yMax); Z1=double(subs(f,{x,y},{X1,Y1})); [px,py]=gradient(Z1,0.5,0.5); hold on quiver(X1,Y1,px,py) hold off title('Curvas de nivel y gradiente') disp(' ') disp('============================================================') El valor de la matriz hessiana en ese punto es: +-+ | 5/2, 0 | | | | 0, 5 | +-+ hes = 12.5000 El valor de la segunda derivada respecto x en el punto es: val = 2.5000 Por tanto es un mnimo relativo.

----------------------------------

PASO 5: Estudiamos el grafico de la superficie: ----------Da el valor mnimo para x: 10 Da el valor mximo para x: 20 Da el valor mnimo para y: 10 Da el valor mximo para y: 20 ----------------------------------------------------------En la figura 1 se muestra el grfico de superficie En la figura 2 el grfico de contorno En la figura 3 las curvas de nivel y el campo gradiente -----------------------------------------------------------

============================================================

primer brazo energia cinetica 3.fig

primer eslabon brazo energia cinetica.m

primer brazo energia cinetica 2.fig

OPTIMIZACION DE LA ENERGA POTENCIAL DEL PRIMER ESLABON respecto a la longitud a y 2 M1 = masa del primer eslabn 5kg G = gravedad terrestre 9.8 2= velocidad angular y A= longitud x clear clf; clear %Trabajamos en lo que sigue con la funcin en %forma simblica. syms x y f=input('Da la funcin con x e y como variables independientes: '); disp('***************************************************************') disp(' PASO 1') disp('-----------') disp('La derivada parcial de f respecto a x es:') fx=diff(f,x); pretty(fx) disp(' ')

disp('La derivada parcial de f respecto a y es:') fy=diff(f,y); pretty(fy) disp(' ') %Resolvemos el sistema fx=0, fy=0. disp('***************************************************************') disp(' PASO 2: Resolvemos el sistema fx=0, fy=0. La solucin es:') disp('-----------') [coordx,coordy]=solve(fx,fy) numPuntos=length(coordx) %Calculamos las derivadas parciales segundas. fxx=diff(fx,x); fxy=diff(fx,y); fyx=diff(fy,x); fyy=diff(fy,y); %Construimos la matriz hessiana y el hessiano. hessiana=[fxx fxy;fyx fyy]; disp(' ') disp('**************************************************************') disp(' PASO 3: Construimos la matriz hessiana:') disp('-----------') pretty(hessiana) hessiano=det(hessiana); disp(' ') disp('****************************************************************') disp('PASO 4: Estudiamos si es definida positiva o definida negativa:') Da la funcin con x e y como variables independientes: 5*9.81*x/2*sin(y); *************************************************************** PASO 1 ----------La derivada parcial de f respecto a x es: 981 sin(y) ---------40 La derivada parcial de f respecto a y es: 981 x cos(y) -----------40 *************************************************************** PASO 2: Resolvemos el sistema fx=0, fy=0. La solucin es: ----------coordx = 0

coordy = 0

numPuntos = 1

************************************************************** PASO 3: Construimos la matriz hessiana: ----------+-+ | 981 cos(y) | | 0, ---------- | | 40 | | | | 981 cos(y) 981 x sin(y) | | ----------, - ------------ | | 40 40 | +-+ **************************************************************** PASO 4: Estudiamos si es definida positiva o definida negativa: for k=1:numPuntos px=coordx(k); py=coordy(k); if and(imag(px)==0,imag(py)==0) disp(' ') disp('El valor de la matriz hessiana en ese punto es:') pretty(subs(hessiana,{x,y},{px,py})) %Estudiamos el hessiano en el punto hes=double(subs(hessiano,{x,y},{px,py})) disp('El valor de la segunda derivada respecto x en el punto es:') %Evaluamos fxx en el punto. val=double(subs(hessiana(1,1),{x,y},{px,py})) if and(hes>0,val>0) disp(' Por tanto es un mnimo relativo.') else if and(hes>0,val<0) disp(' Por tanto es un mximo relativo.') else if hes<0 disp(' Por tanto es un punto de silla.') else disp(' Hay que estudiar el signo de la diferencial segunda.') end end end disp('----------------------------------') end end disp( ' ') disp(' ') disp('PASO 5: Estudiamos el grafico de la superficie:') disp('-----------') disp(' ')

xMin=input('Da el valor mnimo para x: '); xMax=input('Da el valor mximo para x: '); yMin=input('Da el valor mnimo para y: '); yMax=input('Da el valor mximo para y: '); disp(' ') disp('-----------------------------------------------------------') disp('En la figura 1 se muestra el grfico de superficie ') disp('En la figura 2 el grfico de contorno ') disp('En la figura 3 las curvas de nivel y el campo gradiente') disp(' ') disp('-----------------------------------------------------------') disp(' ') %Representamos la grfica de la funcin [X, Y]=meshgrid(xMin:.1:xMax,yMin:0.1:yMax); Z=double(subs(f,{x,y},{X,Y})); figure(1) colormap('default') surfc(X,Y,Z) shading interp title('Grfico de la superficie') %Las lneas de contorno figure(2) %colormap gray contour3(X,Y,Z,20) title('Lineas de contorno') %Las lneas de contorno figure(3) cs=contour(X,Y,Z,20);clabel(cs); [X1, Y1]=meshgrid(xMin:0.5:xMax,yMin:0.5:yMax); Z1=double(subs(f,{x,y},{X1,Y1})); [px,py]=gradient(Z1,0.5,0.5); hold on quiver(X1,Y1,px,py) hold off title('Curvas de nivel y gradiente') disp(' ') disp('============================================================') El valor de la matriz hessiana en ese punto es: +-+ | 0, 981/40 | | | | 981/40, 0 | +-+ hes = -601.4756 El valor de la segunda derivada respecto x en el punto es: val = 0

Por tanto es un punto de silla. ----------------------------------

PASO 5: Estudiamos el grafico de la superficie: ----------Da el valor mnimo para x: 10 Da el valor mximo para x: 20 Da el valor mnimo para y: 10 Da el valor mximo para y: 20 ----------------------------------------------------------En la figura 1 se muestra el grfico de superficie En la figura 2 el grfico de contorno En la figura 3 las curvas de nivel y el campo gradiente -----------------------------------------------------------

============================================================

energia potencial primer eslabon 3.fig

optimizacion de la energia potencial del primer eslabon.m

energia potencial primer eslabon 1.fig

energia potencial primer eslabon 2.fig

OPTIMIZACION DE LA ENERGA CINEMTICA DEL SEGUNDO ESLABON M2= masa del segundo eslabn 2,5kg A= longitud del primer eslabn 2m B= longitud del segundo eslabn 1m = velocidad angular inicial 0rpm 2 = segunda velocidad angular 12,5rpm 3=tercera velocidad angular x L2= segundo radio de giro y

clear clf; clear %Trabajamos en lo que sigue con la funcin en %forma simblica. syms x y f=input('Da la funcin con x e y como variables independientes: '); disp('***************************************************************') disp(' PASO 1') disp('-----------') disp('La derivada parcial de f respecto a x es:') fx=diff(f,x); pretty(fx) disp(' ') disp('La derivada parcial de f respecto a y es:') fy=diff(f,y); pretty(fy) disp(' ') %Resolvemos el sistema fx=0, fy=0. disp('***************************************************************') disp(' PASO 2: Resolvemos el sistema fx=0, fy=0. La solucin es:') disp('-----------') [coordx,coordy]=solve(fx,fy) numPuntos=length(coordx) %Calculamos las derivadas parciales segundas. fxx=diff(fx,x); fxy=diff(fx,y); fyx=diff(fy,x); fyy=diff(fy,y); %Construimos la matriz hessiana y el hessiano. hessiana=[fxx fxy;fyx fyy]; disp(' ') disp('**************************************************************') disp(' PASO 3: Construimos la matriz hessiana:') disp('-----------') pretty(hessiana) hessiano=det(hessiana); disp(' ') disp('****************************************************************') disp('PASO 4: Estudiamos si es definida positiva o definida negativa:') disp('-----------') disp(' ') Da la funcin con x e y como variables independientes: 1/2*2.5*2*(12.5).^2+2*1*(12.5+12.5*x*cos(x))+1/2*1.^2*(12.5+x).^2+1/2*y*0; *************************************************************** PASO 1 ----------La derivada parcial de f respecto a x es: x + 25 cos(x) - 25 x sin(x) + 25/2 La derivada parcial de f respecto a y es: 0

*************************************************************** PASO 2: Resolvemos el sistema fx=0, fy=0. La solucin es: coordx = [ empty sym ]

coordy = []

numPuntos = 0

************************************************************** PASO 3: Construimos la matriz hessiana: ----------+-+ | 1 - 25 x cos(x) - 50 sin(x), 0 | | | | 0, 0 | +-+ **************************************************************** PASO 4: Estudiamos si es definida positiva o definida negativa: ----------for k=1:numPuntos px=coordx(k); py=coordy(k); if and(imag(px)==0,imag(py)==0) disp(' ') disp('El valor de la matriz hessiana en ese punto es:') pretty(subs(hessiana,{x,y},{px,py})) %Estudiamos el hessiano en el punto hes=double(subs(hessiano,{x,y},{px,py})) disp('El valor de la segunda derivada respecto x en el punto es:') %Evaluamos fxx en el punto. val=double(subs(hessiana(1,1),{x,y},{px,py})) if and(hes>0,val>0) disp(' Por tanto es un mnimo relativo.') else if and(hes>0,val<0) disp(' Por tanto es un mximo relativo.') else if hes<0 disp(' Por tanto es un punto de silla.') else disp(' Hay que estudiar el signo de la diferencial segunda.') end end

end disp('----------------------------------') end end disp( ' ') disp(' ') disp('PASO 5: Estudiamos el grafico de la superficie:') disp('-----------') disp(' ') xMin=input('Da el valor mnimo para x: '); xMax=input('Da el valor mximo para x: '); yMin=input('Da el valor mnimo para y: '); yMax=input('Da el valor mximo para y: '); disp(' ') disp('-----------------------------------------------------------') disp('En la figura 1 se muestra el grfico de superficie ') disp('En la figura 2 el grfico de contorno ') disp('En la figura 3 las curvas de nivel y el campo gradiente') disp(' ') disp('-----------------------------------------------------------') disp(' ') %Representamos la grfica de la funcin [X, Y]=meshgrid(xMin:.1:xMax,yMin:0.1:yMax); Z=double(subs(f,{x,y},{X,Y})); figure(1) colormap('default') surfc(X,Y,Z) shading interp title('Grfico de la superficie') %Las lneas de contorno figure(2) %colormap gray contour3(X,Y,Z,20) title('Lineas de contorno') %Las lneas de contorno figure(3) cs=contour(X,Y,Z,20);clabel(cs); [X1, Y1]=meshgrid(xMin:0.5:xMax,yMin:0.5:yMax); Z1=double(subs(f,{x,y},{X1,Y1})); [px,py]=gradient(Z1,0.5,0.5); hold on quiver(X1,Y1,px,py) hold off title('Curvas de nivel y gradiente') disp(' ') disp('============================================================')

PASO 5: Estudiamos el grafico de la superficie: ----------Da el valor mnimo para x: 10 Da el valor mximo para x: 20 Da el valor mnimo para y: 10 Da el valor mximo para y: 20

----------------------------------------------------------En la figura 1 se muestra el grfico de superficie En la figura 2 el grfico de contorno En la figura 3 las curvas de nivel y el campo gradiente -----------------------------------------------------------

============================================================

energia cinetica del segundo eslabon del brazo1.fig

energia cinetica del segundo eslabon del brazo2.fig

energia cinetica del segundo eslabon del brazo3.fig

optimizacion de la energia cinetica del segundo eslabon del brazo.m

OPTIMIZACION DE LA ENERGA POTENCIAL DEL SEGUNDO ESLABON M2 = masa del segundo eslabn 2,5kg 2= velocidad angular 12,5rpm G = gravedad terrestre 9.8 A= longitud del primer eslabn 2m B= longitud del segundo eslabn x = velocidad angular y clear clf; clear %Trabajamos en lo que sigue con la funcin en %forma simblica. syms x y f=input('Da la funcin con x e y como variables independientes: '); disp('***************************************************************') disp(' PASO 1') disp('-----------') disp('La derivada parcial de f respecto a x es:') fx=diff(f,x); pretty(fx) disp(' ') disp('La derivada parcial de f respecto a y es:')

fy=diff(f,y); pretty(fy) disp(' ') %Resolvemos el sistema fx=0, fy=0. disp('***************************************************************') disp(' PASO 2: Resolvemos el sistema fx=0, fy=0. La solucin es:') disp('-----------') [coordx,coordy]=solve(fx,fy) numPuntos=length(coordx) %Calculamos las derivadas parciales segundas. fxx=diff(fx,x); fxy=diff(fx,y); fyx=diff(fy,x); fyy=diff(fy,y); %Construimos la matriz hessiana y el hessiano. hessiana=[fxx fxy;fyx fyy]; disp(' ') disp('**************************************************************') disp(' PASO 3: Construimos la matriz hessiana:') disp('-----------') pretty(hessiana) hessiano=det(hessiana); disp(' ') disp('****************************************************************') disp('PASO 4: Estudiamos si es definida positiva o definida negativa:') disp('-----------') disp(' ') Da la funcin con x e y como variables independientes: 2.5*9.8*2*sin(12.5)+1/2*2.5*9.8*x*sin(12.5+y); *************************************************************** PASO 1 ----------La derivada parcial de f respecto a x es: 49 sin(y + 25/2) ---------------4 La derivada parcial de f respecto a y es: 49 x cos(y + 25/2) -----------------4 *************************************************************** PASO 2: Resolvemos el sistema fx=0, fy=0. La solucin es: ----------coordx = 0

coordy =

-25/2

numPuntos = 1

************************************************************** PASO 3: Construimos la matriz hessiana: ----------+-+ | 49 cos(y + 25/2) | | 0, ---------------- | | 4 | | | | 49 cos(y + 25/2) 49 x sin(y + 25/2) | | ----------------, - ------------------ | | 4 4 | +-+ **************************************************************** PASO 4: Estudiamos si es definida positiva o definida negativa: ----------for k=1:numPuntos px=coordx(k); py=coordy(k); if and(imag(px)==0,imag(py)==0) disp(' ') disp('El valor de la matriz hessiana en ese punto es:') pretty(subs(hessiana,{x,y},{px,py})) %Estudiamos el hessiano en el punto hes=double(subs(hessiano,{x,y},{px,py})) disp('El valor de la segunda derivada respecto x en el punto es:') %Evaluamos fxx en el punto. val=double(subs(hessiana(1,1),{x,y},{px,py})) if and(hes>0,val>0) disp(' Por tanto es un mnimo relativo.') else if and(hes>0,val<0) disp(' Por tanto es un mximo relativo.') else if hes<0 disp(' Por tanto es un punto de silla.') else disp(' Hay que estudiar el signo de la diferencial segunda.') end end end disp('----------------------------------') end end disp( ' ')

disp(' ') disp('PASO 5: Estudiamos el grafico de la superficie:') disp('-----------') disp(' ') xMin=input('Da el valor mnimo para x: '); xMax=input('Da el valor mximo para x: '); yMin=input('Da el valor mnimo para y: '); yMax=input('Da el valor mximo para y: '); disp(' ') disp('-----------------------------------------------------------') disp('En la figura 1 se muestra el grfico de superficie ') disp('En la figura 2 el grfico de contorno ') disp('En la figura 3 las curvas de nivel y el campo gradiente') disp(' ') disp('-----------------------------------------------------------') disp(' ') %Representamos la grfica de la funcin [X, Y]=meshgrid(xMin:.1:xMax,yMin:0.1:yMax); Z=double(subs(f,{x,y},{X,Y})); figure(1) colormap('default') surfc(X,Y,Z) shading interp title('Grfico de la superficie') %Las lneas de contorno figure(2) %colormap gray contour3(X,Y,Z,20) title('Lineas de contorno') %Las lneas de contorno figure(3) cs=contour(X,Y,Z,20);clabel(cs); [X1, Y1]=meshgrid(xMin:0.5:xMax,yMin:0.5:yMax); Z1=double(subs(f,{x,y},{X1,Y1})); [px,py]=gradient(Z1,0.5,0.5); hold on quiver(X1,Y1,px,py) hold off title('Curvas de nivel y gradiente') disp(' ') disp('============================================================') El valor de la matriz hessiana en ese punto es: +-+ | 0, 49/4 | | | | 49/4, 0 | +-+ hes = -150.0625

El valor de la segunda derivada respecto x en el punto es: val = 0 Por tanto es un punto de silla. ----------------------------------

PASO 5: Estudiamos el grafico de la superficie: ----------Da el valor mnimo para x: 10 Da el valor mximo para x: 20 Da el valor mnimo para y: 10 Da el valor mximo para y: 20 ----------------------------------------------------------En la figura 1 se muestra el grfico de superficie En la figura 2 el grfico de contorno En la figura 3 las curvas de nivel y el campo gradiente -----------------------------------------------------------

DISCUSIN: Como se aprecia, la aplicacin de herramientas computacionales en el clculo, Las ecuaciones que gobiernan el movimiento de los robots pueden obtenerse tanto por ecuaciones vectoriales como por ecuaciones escalares; sin embargo, el usar ecuaciones vectoriales como las ecuaciones de Newton complica la programacin de una rutina para poder simular el movimiento del robot. Esto no ocurre cuando se usan mtodos como las ecuaciones de Lagrange, en donde trabajar con ecuaciones escalares facilita la aplicacin de herramientas computacionales. El mtodo o solo es aplicable a brazos con tres grados de libertad BIBLIOGRAFA

http://libroweb.alfaomega.com.mx/catalogo/matlabaplicadoaroboticaymecatronica

http://www.todoebook.com/FUNDAMENTOS-DE-ROBOTICA_-2_-ED_-ANTONIOBARRIENTOS-CRUZ-MCGRAW-HILL-ESPANA--LibroEbook-ES-SPB0141720.html

FICHA DE REGISTRO BIBLIOGRFICO Tema de investigacin: MATLAB APLICADO A ROBTICA Y MECATRNICA Referencia bibliogrfica: Reyes, F. (2010). Anlisis de un brazo robtico con tres grados de libertad:

Recuperadode:https://www.google.com.pe/#q=analisis+Diagnosticos+y+conserva cion+de+construcciones+historicas

FICHA DE REGISTRO BIBLIOGRFICO Tema de investigacin: MATLAB APLICADO A ROBTICA Y MECATRNICA Referencia bibliogrfica:

Barrientos,A. (2007). Cinemtica del robot:


Recuperadode: http://www.todoebook.com/FUNDAMENTOS-DE-ROBOTICA_-2_-ED_ANTONIO-BARRIENTOS-CRUZ-MCGRAW-HILL-ESPANA--LibroEbook-ES-SPB0141720.html

S-ar putea să vă placă și