Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
FACULTAD DE INGENIERÍA
ESCUELA PROFESIONAL DE INGENIERÍA MECATRÒNICA
“Laboratorio 1I”
Autores: .
SAENZ RICRA RAUL ABILIO.
ARI AGUILAR ALEXANDER
Docente:
CARLOS PEREA FABIÁN.
Lima – Perú
2019
Introducción
La inteligencia artificial por concepto, trata de que una máquina realice las funciones propias de un ser
inteligente en cuanto a razonamiento y toma de decisiones. De la misma manera; Un Sistema Experto
es un sistema informático que procesa conocimientos e indica decisiones a tomar en la resolución de
determinados problemas, razonando sus propios procesos.
Hoy en día, los robots manipuladores están diseñados para realizar una amplia variedad de
aplicaciones industriales, científicas, domésticas y comerciales. Sin embargo, es un sector de la robótica
considerado joven y en constante crecimiento
El presente laboratorio involucra distintas programaciones enfocadas a dicho crecimiento industrial tales
como un brazo robótico 2GDL que e puede controlar según nuestras necesidades considerando la
posición inicial la trayectoria a recoger y la posición final según el diseño matemático o programa
aplicado. De otro lado se vera también un CNC
Laboratorio 2 de: Inteligencia Artificial y Sistemas Expertos
Problema 1 (6ptos)
Entregar a manera de informe la simulación de la máquina CNC, para lo cual utilizar el programa CNC
colgada en el Aula Virtual. Desarrollar la estrategia requerida para que cumpla la trayectoria lo más preciso
posible, mostrar las diferentes simulaciones en el informe cambiando pesos, velocidad, y el tiempo previo
para obtener la mejor respuesta admisible. La trayectoria a seguir se brindará a cada alumno por separado.
Con el programa determinada se puede realizar diferentes diseños para el cual elegiremos el diseño número 14,
para lo consiguiente modificaremos los códigos de programación para obtener dicho diseño de la misma manera
especificaremos las filas donde se modifican los códigos para obtener distintos diseños.
R = 1.8;
L = 0.000159; Ry = 1.92;
Kt = 0.05871; Ly = 0.0001801;
Kb = 0.05567; Kty = 0.08925;
I = 4.534e-5; Kby = 0.09156;
p = 0.0028; Iy = 9.8342e-5;
m = 0.218; py = 0.0042;
c = 95; my = 0.79;%masa total de (masax) +
r = 0.011; (tornillox) + (masay)
alfa = 60*pi/180; cy = 95;
voltmax = 40; ry = 0.02;
alfay = 60*pi/180;
voltmaxy = 50;
Peso masax q1 [1.2e5] : 5
Peso masax q2 [0] : 0
Peso masax q3 [0] : 0
Peso masax q4 [1e6] : 6
Peso masay q1 [1.2e5] : 5
Peso masay q2 [0] : 0
Peso masay q3 [0] : 0
Peso masay q4 [1e6] : 6
velocidad de la herramienta [0 - 0.025] m/s
:0.010
t12 =
60
%%%%%%%%% %%%%%%%%%
tt1 = ti:dt:t1;tt1 = tt1'; tt2 = tt1 = ti:dt:t1;tt1 = tt1'; tt2 =
(t1+dt):dt:t2; tt2 = tt2'; (t1+dt):dt:t2; tt2 = tt2';
tt3 = (t2+dt):dt:t3; tt3 = tt3'; tt4 = tt3 = (t2+dt):dt:t3; tt3 = tt3'; tt4 =
(t3+dt):dt:t4; tt4 = tt4'; (t3+dt):dt:t4; tt4 = tt4';
tt5 = (t4+dt):dt:t5; tt5 = tt5'; tt6 = tt5 = (t4+dt):dt:t5; tt5 = tt5'; tt6 =
(t5+dt):dt:t6; tt6 = tt6'; (t5+dt):dt:t6; tt6 = tt6';
tt7 = (t6+dt):dt:t7; tt7 = tt7'; tt8 = tt7 = (t6+dt):dt:t7; tt7 = tt7'; tt8 =
(t7+dt):dt:t8; tt8 = tt8'; (t7+dt):dt:t8; tt8 = tt8';
tt9 = (t8+dt):dt:t9; tt9 = tt9'; tt10 = tt9 = (t8+dt):dt:t9; tt9 = tt9'; tt10 =
(t9+dt):dt:t10; tt10 = tt10'; (t9+dt):dt:t10; tt10 = tt10';
tt11 = (t10+dt):dt:t11; tt11 = tt11'; tt11 = (t10+dt):dt:t11; tt11 = tt11';tt12 =
(t11+dt):dt:t12; tt12 = tt12';
tf = t11;
t=[tt1;tt2;tt3;tt4;tt5;tt6;tt7;tt8;tt9;tt10 tf = t12;
;tt11]; t=[tt1;tt2;tt3;tt4;tt5;tt6;tt7;tt8;tt9;tt10
;tt11;tt12];
r=[r1;r2;r3;r4;r5;r6;r7;r8;r9;r10;r11;r12];
r1y = v*0*tty; %matriz de posiciones r1y = v*0*tty; %matriz de posiciones
r2y = r2y =
v*0*tty+r1y(length(r1y),1)*ones(length(r1y v*0*tty+r1y(length(r1y),1)*ones(length(r1y)
),1); ,1);
r3y = r3y =
v*1*tty+r2y(length(r2y),1)*ones(length(r2y v*1*tty+r2y(length(r2y),1)*ones(length(r2y)
),1); ,1);
r4y = r4y =
v*0*tty+r3y(length(r3y),1)*ones(length(r3y v*1*tty+r3y(length(r3y),1)*ones(length(r3y)
),1); ,1);
r5y = r5y =
v*1*tty+r4y(length(r4y),1)*ones(length(r4y v*1*tty+r4y(length(r4y),1)*ones(length(r4y)
),1); ,1);
r6y = r6y =
v*1*tty+r5y(length(r5y),1)*ones(length(r5y v*0*tty+r5y(length(r5y),1)*ones(length(r5y)
),1); ,1);
r7y = r7y =
v*0*tty+r6y(length(r6y),1)*ones(length(r6y v*0*tty+r6y(length(r6y),1)*ones(length(r6y)
),1); ,1);
r8y = r8y = v*-
v*0*tty+r7y(length(r7y),1)*ones(length(r7y 1*tty+r7y(length(r7y),1)*ones(length(r7y),1
),1); );
r9y= v*- r9y=
1*tty+r8y(length(r8y),1)*ones(length(r8y), v*0*tty+r8y(length(r8y),1)*ones(length(r8y)
1); ,1);
r10y = v*- r10y =
1*tty+r9y(length(r9y),1)*ones(length(r9y), v*0*tty+r9y(length(r9y),1)*ones(length(r9y)
1); ,1);
r11y= v*- r11y = v*-
(1+error*(1.2))*tty+r10y(length(r10y),1)*o 1*tty+r10y(length(r10y),1)*ones(length(r10y
nes(length(r10y),1); ),1);
r12y= v*-
ry=[r1y;r2y;r3y;r4y;r5y;r6y;r7y;r8y;r9y;r1 (1+error*(1.2))*tty+r11y(length(r11y),1)*on
0y;r11y]; es(length(r11y),1);
ry=[r1y;r2y;r3y;r4y;r5y;r6y;r7y;r8y;r9y;r10
y;r11y;r12y];
Problema 2. (6 ptos)
Para el caso del Brazo Robot generar un programa que realice la siguiente trayectoria:
- Definir las coordenadas en forma grupal, asumir las consideraciones que considere
necesario.
SOLUCION:
Para el desarrollo del problema 2 se tuvieron que estudiar los programas desarrollados en clases los
que conforman el accionar de un brazo robótico 2GDL el cual sigue genera movientes el primer
programa genera un circulo y el segundo un triangulo
Esto dos programas serán esenciales para el desarrollo del problema que contiene medio circulo y un
triángulo invertido.
Diferencias entre
TRAYECTORIA EN FORMA DE TRIANGULO TRAYECTORIA EN FORMA DE CIRCULO REALIZADA
REALIZADA POR EL BRAZO ROBOT POR EL BRAZO ROBOT
Se detalla parte del código del programa Se detalla parte del código del programa
para hacer una diferencia entre el otro para hacer una diferencia entre el otro
código código
Donde las masas son iguales y los datos Donde las masas son iguales y los datos del
del brazo son el mismo porque el mismo brazo son el mismo porque el mismo programa
programa determinado al brazo ejecuta determinado al brazo ejecuta ambos diseños
ambos diseños El cual resaltara en la diferencia donde
El cual resaltara en la diferencia donde las ecuaciones para el moviente hacen la
las ecuaciones para el moviente hacen la diferencia.
diferencia.
m1 = 0.15;
m1 = 0.15; L1 = 0.35;
L1 = 0.35; l1 = 0.16; % Longitud
l1 = 0.16; % Longitud I1 = 4.1e-3; % Inercia
I1 = 4.1e-3; % Inercia m2 = 0.12;
m2 = 0.12; L2 = 0.30;
L2 = 0.30; l2 = 0.12; % Longitud
l2 = 0.12; % Longitud I2 = 3.2e-3; % Inercia
I2 = 3.2e-3; % Inercia M11 = I1 + m1*l1*l1 + m2*L1*L1 + m2*L1*l2;
M11 = I1 + m1*l1*l1 + m2*L1*L1 + M12 = m2*L1*l2;
m2*L1*l2; M21 = I2 + m2*l2*l2 + m2*L1*l2;
M12 = m2*L1*l2; M22 = I2 + m2*l2*l2;
M21 = I2 + m2*l2*l2 + m2*L1*l2;
M22 = I2 + m2*l2*l2; C = [ 1 0 0 0];
Ss = are(A',C'*C,Q);
% Trayectoria triangular. Inicio (0.65,0) L = Ss*C';
% Triangulo vertices: dt = 0.002;
(0.40,0.00)(0.525,0.10)(0.65,0) [Ak,Bk] = c2d(A,B,dt);
v = 0.5*0.01; % Velocidad de %[Ak,Wk] = c2d(A,Wf,dt);
desplazamiento en X [Aok,Bok] = c2d(A-L*C,B,dt);
ti = 0; dt = 0.001; [Aok,Lok] = c2d(A-L*C,L,dt);
t1 = 0.125/v;
t2 = 0.25625/v;
tt1 = ti:dt:t1; tt1 = tt1'; w = 10*0.01; % Velocidad de angular w
tt2 = (t1+dt):dt:t2; tt2 = tt2'; ti = 0; dt = 0.001;
tf = t2; ro=0.15;
x1 = -0.125/t1*tt1 + 0.65; % % t son tiempo
x2 = 0.13125/(t1-t2)*(tt2-t2) + 0.39375; t1 = 1*(pi)/w;
xr = [ x1; x2 ]; tt1 = ti:dt:t1; tt1 = tt1';
y1 = 0.10/t1*tt1+0.005; t2 = 2*(pi)/w;
y2 = 0.105/(t1-t2)*(tt2-t2); tt2 = (t1+dt):dt:t2; tt2 = tt2';
yr = [ y1; y2]; tf = t2;
x2y2 = xr.*xr + yr.*yr;
j=sqrt(x2y2);
figure(1); plot(t,ang1*180/pi,t,r1*180/pi);
grid on;
figure(1); figure(2); plot(t,ang2*180/pi,t,r2*180/pi);
plot(t,ang1*180/pi,t,r1*180/pi); grid on;
grid on; figure(3);
figure(2); plot(xra,yra,xx,yy);
plot(t,ang2*180/pi,t,r2*180/pi); grid on;
grid on; disp('Pause');
figure(3); pause;
plot(xra,yra,xx,yy); figure(4);
grid on; grid;
disp('Pause'); axis([ 0 0.8 -0.4 0.4]);
pause; hold on;
figure(4); nk = length(ang1);
grid;
axis([ -0.4 0.8 -0.4 0.4]); dk = 15; % Saltos para la animación
hold on; xra = [ xra
nk = length(ang1); xra(nr12,1)*ones(dk,1) ];
dk = 15; % Saltos para la animación yra = [ yra
xra = [ xra yra(nr12,1)*ones(dk,1) ];
xra(nr12,1)*ones(dk,1) ]; % xra(nr12+1:nr12+dk-1,1) =
yra = [ yra xra(nr12,1)*ones(dk,1);
yra(nr12,1)*ones(dk,1) ]; % yra(nr12+1:nr12+dk-1,1) =
% xra(nr12+1:nr12+dk-1,1) = yra(nr12,1)*ones(dk,1);
xra(nr12,1)*ones(dk,1);
% yra(nr12+1:nr12+dk-1,1) =
yra(nr12,1)*ones(dk,1);
Para el desarrollo del problema se configuro el código para obtener el resultado para el
diseño.
El código usado es similar al del circulo Las figuras muestran el recorrido que
y triangulo la diferencia es que ahora realiza el brazo robótico 2GDL para diseñar
esos códigos serán empleados en uno mismo el diseño determinado.
para realizar un medio circulo y un
triángulo invertido. Los distintos diseños primero serán
determinados por ecuaciones y en el matlab
m1 = 0.15; nos ayuda el comando ARE de la ecuación de
L1 = 0.35; riccati lo cual implica tener un software
l1 = 0.16; % Longitud actualizado para este propósito se dio el
I1 = 4.1e-3; % Inercia uso de Matlab 2015.
m2 = 0.12;
L2 = 0.30;
l2 = 0.12; % Longitud
I2 = 3.2e-3; % Inercia
M11 = I1 + m1*l1*l1 + m2*L1*L1 + m2*L1*l2;
M12 = m2*L1*l2;
M21 = I2 + m2*l2*l2 + m2*L1*l2;
M22 = I2 + m2*l2*l2;
x1 = -0.15/t1t*tt1 + 0.65;
x2 = 0.15/(t1t-t2t)*(tt2-t2t) + 0.35;
xr = [ x1; x2 ];
y1 = -0.2/t1t*tt1-0.0005;
y2 = -0.2/(t1t-t2t)*(tt2-t2t);
yr = [ y1; y2];
fi1t = 0; fi2t = 0;
fi1pt = 0; fi2pt = 0;
angt = [ fi1t fi2t ]';
velt = [ fi1pt fi2pt ]';
kt = 1;
Problema 3 (8 Ptos)
SOLUCION:
Para el desarrollo del problema se usó el programa Neuro-uzzy empleado en clase el cual
será necesario estudiarlo y para posteriormente configurarlo par a obtener la solución al
ejercicio.
Este trabajo resuelve el problema del desplazamiento de un móvil (CARRITO) desde una
ubicación inicial hasta una ubicación final de estacionamiento.
Dodne:
Referencias
M., s. (2012). NEURO FUZZY. Obtenido de https://arxiv.org/ftp/arxiv/papers/1212/1212.0318.pdf
MATHWORKS. (2019). MATLAB APR AINTELIGENCIA ARTIFICIAL. Obtenido de
https://es.mathworks.com/help/matlab/learn_matlab/help.html
NAVARRA, M. A. (2000). Obtenido de file:///C:/Users/Dell/Downloads/Dialnet-
IntroduccionALosSistemasExpertos-257148.pdf
VEGA, H. (2004). Obtenido de
http://sisbib.unmsm.edu.pe/bibvirtualdata/publicaciones/risi/N1_2004/a11.pdf