Documente Academic
Documente Profesional
Documente Cultură
UNIVERSIDAD NACIONAL DE
INGENIERÍA
FACULTAD DE INGENIERÍA MECÁNICA
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA MECÁNICA
INFORME Nº3
PROFESOR DE PRÁCTICA:
ING. CALLE FLORES IVÁN ARTURO
SECCIÓN:
A
INTEGRANTES: CÓDIGO:
MOSQUERA VILLANUEVA, ADRIANA AURORA 20154068I
SOTELO ASTIYAURE, JOSÉ VALERIO 20144057D
Lima - Perú
2019
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
ÍNDICE
1. OBJETIVOS.............................................................................................................. 5
1.1. OBJETIVO GENERAL........................................................................................ 5
1.2. OBJETIVOS ESPECIFICOS .............................................................................. 5
2. CINEMATICA DIRECTA ........................................................................................... 5
3. MODELO DINÁMICO ............................................................................................... 6
3.1. JACOBIANOS DE LINKS ................................................................................... 7
3.2. JACOBIANOS DE MOTORES ........................................................................... 7
3.3. MODELO DINÁMICO SEGÚN SPONG .............................................................. 7
3.4. MODELO DINÁMICO SEGÚN SICILIANO ......................................................... 8
4. PARÁMETROS DE LOS MOTORES ........................................................................ 9
4.1. OBTENCIÓN DE PARÁMETROS ...................................................................... 9
4.1.1. ANÁLISIS ELÉCTRICO ............................................................................. 10
4.1.2. ANÁLISIS MECÁNICO............................................................................... 11
4.1.3. ANÁLISIS DE LA RESPUESTA DEL SISTEMA ......................................... 11
4.2. Realización del experimento............................................................................. 11
4.2.1. Cálculo de la resistencia de armadura (𝑹𝒂) ............................................... 11
4.2.2. Cálculo de la constante electromotriz y de torque (𝑲𝒃, 𝑲𝒕) ........................ 12
4.2.3. Cálculo del coeficiente de la fricción viscosa (𝑩) ....................................... 12
4.2.4. Cálculo del momento de inercia rotacional (𝑱) ........................................... 12
4.3. Identificación de los parámetros de los motores ............................................... 12
4.3.1. POLOLU METAL GEARMOTOR 131:1 37DX73L MM WITH 64 CPR
ENCODER........................................................................................................... 12
4.4. OBTENCION DE PARAMETRO POR ARX ...................................................... 16
4.5. OBTENCION DE LA INDUCTANCIA DEL MOTOR POR ITERACIÓN ............. 20
5. SIMULACIONES A LAZO ABIERTO BASADO EN LOS VOLTAJES ...................... 26
5.1. SIMULACIÓN SEGÚN SPONG ........................................................................ 27
5.2. SIMULACIÓN SEGÚN SICILIANO ................................................................... 30
5.3. SIMULACIÓN SEGÚN SPONG ........................................................................ 31
6. ESTRUCUTRA MECANICA .................................................................................... 33
7. ELECTRONICA ...................................................................................................... 34
8. LECTURA DE VELOCIDAD DE LOS MOTORES ................................................... 34
9. CONTROL PD DE LOS MOTORES ....................................................................... 37
10. ANÁLISIS DEL DRIVER ....................................................................................... 43
10.1. FRECUENCIA DEL PWM............................................................................... 60
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
10.2. RESOLUCIÓN................................................................................................ 61
10.3. LINEALIDAD .................................................................................................. 61
11. BIBLIOGRAFÍA ..................................................................................................... 65
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
1. OBJETIVOS
1.1. OBJETIVO GENERAL
Diseño de un manipulador robótico de 2GDL
2. CINEMATICA DIRECTA
LINK 𝜽𝒊 𝒅𝒊 𝒂𝒊 𝜶𝒊
𝜋
1 𝑞1∗ 𝑑1 0
2
2 𝑞2∗ 0 𝑎2 0
5
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
3. MODELO DINÁMICO
Parámetros utilizados:
% 1.1. MASA
% -> ESLABON "1"
m_1 = 438.65*1e-3; % kg
% -> ESLABON "2"
m_2 = 183.04*1e-3; % kg
% -> MOTOR "1"
m_m1 = 235*1e-3; % kg
% -> MOTOR "2"
m_m2 = 235*1e-3; % kg
kr1=131;
kr2=131;
6
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
𝐴 𝐵
𝐶 𝐷
𝐽𝑣𝐶𝑀2 = [ 1999 ∗ 𝑐𝑜𝑠(𝑞2)]
0
50000
0 0 0 0
𝐽𝑤𝑀1 =[ 0 0] 𝐽𝑣𝑀1 = [ 0 0]
131 0 0 0
Matriz D:
𝐷11 𝐷12
𝐷=[ ]
𝐷21 𝐷22
7
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
63464502642421107383165711 ∗ 𝑠𝑖𝑛(𝑞2)
𝐷12 = 𝐷21 = −
4503599627370496000000000000000
𝐷22 = 0.00066562923921600004781069873338595
Matriz C:
𝐶11 𝐶12
𝐶=[ ]
𝐶21 𝐶22
𝐶22 = 0
Vector G:
0
𝑔 = [4041360494676173471 ∗ 𝑐𝑜𝑠(𝑞2)]
56294995342131200000
Matriz D:
𝐷11 𝐷12
𝐷=[ ]
𝐷21 𝐷22
63464502642421107383165711 ∗ 𝑠𝑖𝑛(𝑞2)
𝐷12 = 𝐷21 = −
4503599627370496000000000000000
𝐷22 = 0.63509973356921601888241557612691
Matriz C:
8
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
𝐶11 𝐶12
𝐶=[ ]
𝐶21 𝐶22
𝐶22 = 0
Vector G:
0
𝑔=[ 4041360494676173471 ∗ 𝑐𝑜𝑠(𝑞2)]
56294995342131200000
𝑅𝑎 Resistencia de armadura Ω
𝐿𝑎 Inductancia de armadura 𝐻
𝑁∙𝑚∙𝑠
𝐵 Coeficiente de fricción viscosa
𝑟𝑎𝑑
𝑁∙𝑚
𝐾𝑡 Constante de torque
𝐴
𝑉∙𝑠
𝐾𝑏 Constante electromotriz
𝑟𝑎𝑑
9
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
Sabemos que:
𝐸𝑔 = 𝑤𝑟𝑜𝑡𝑜𝑟 ∙ 𝐾𝑏 ⋯ (1)
También:
𝑉 − 𝑉𝑅 − 𝑉𝐿 − 𝐸𝑔 = 0
𝑑𝑖 ⋯ (2)
𝑉 − 𝑅𝑎 ∙ 𝑖 − 𝐿𝑎 ∙ − 𝑤𝑟𝑜𝑡𝑜𝑟 ∙ 𝐾𝑏 = 0
𝑑𝑡
Si despreciamos 𝐿 (por ser casi siempre pequeño comparado con los demás valores):
𝑉 − 𝑅𝑎 ∙ 𝑖 − 𝑤𝑟𝑜𝑡𝑜𝑟 ∙ 𝐾𝑏 = 0
Si bloqueamos el roto (𝑤𝑟𝑜𝑡𝑜𝑟 = 0):
𝑉 − 𝑅𝑎 ∙ 𝑖 = 0
𝑉 ⋯ (3)
𝑅𝑎 =
𝑖
También:
𝑤𝑟𝑜𝑡𝑜𝑟 ∙ 𝐾𝑏 = 𝑉 − 𝑅𝑎 ∙ 𝑖
𝑉 − 𝑅𝑎 ∙ 𝑖 ⋯ (4)
𝐾𝑏 =
𝑤𝑟𝑜𝑡𝑜𝑟
10
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
Analizaremos en un primer momento la potencia del motor DC, que debería ser la misma
en la entrada como en la salida.
𝐸𝑔 = 𝐾𝑏 ∙ 𝑤𝑟𝑜𝑡𝑜𝑟
𝑇𝑚 = 𝐾𝑡 ∙ 𝑖
𝑃𝑜𝑡𝑒𝑛𝑡𝑟𝑎𝑑𝑎,𝑓𝑒𝑚 = 𝐸𝑔 ∙ 𝑖 = 𝑇𝑚 ∙ 𝑤𝑟𝑜𝑡𝑜𝑟 = 𝑃𝑜𝑡𝑠𝑎𝑙𝑖𝑑𝑎
Luego:
𝐾𝑡 = 𝐾𝑏 ⋯ (5)
Cuando se analiza el motor sin carga tendremos:
𝑑𝑤𝑟𝑜𝑡𝑜𝑟
𝑇𝑚 = 𝐽 ∙ + 𝐵 ∙ 𝑤𝑟𝑜𝑡𝑜𝑟
𝑑𝑡
𝑑𝑤𝑟𝑜𝑡𝑜𝑟
𝐾𝑡 ∙ 𝑖 = 𝐽 ∙ + 𝐵 ∙ 𝑤𝑟𝑜𝑡𝑜𝑟
𝑑𝑡
Ahora, si consideramos que el sistema se encuentra en un punto estacionario (𝑤̇ = 0):
𝐾𝑡 ∙ 𝑖 − 𝐵 ∙ 𝑤𝑟𝑜𝑡𝑜𝑟 = 0
𝐾𝑡 ∙ 𝑖 ⋯ (6)
𝐵=
𝑤𝑟𝑜𝑡𝑜𝑟
11
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
Figura 2. Motor DC de 6V
12
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
V I R
(V) (A) (Ω)
0.25 0.09 2.778
0.92 0.32 2.875
1.23 0.43 2.860
1.54 0.55 2.800
1.7 0.6 2.833
2.08 0.75 2.773
2.23 0.79 2.823
2.43 0.85 2.859
2.75 0.96 2.865
Promedio: 2.830
Cabe resaltar que para mejor precisión medimos la resistencia del multímetro, el cual
resultó con un valor de 𝑅𝑚𝑢𝑙𝑡í𝑚𝑒𝑡𝑟𝑜 = 2.83 Ω.
Motor Pololu
3
y = 2.8348x
2.5 R² = 0.9992
2
Voltaje (V)
1.5
0.5
0
0 0.2 0.4 0.6 0.8 1 1.2
Corriente (A)
V I w R
(V) (A) (rad/s) (Ω) kb = kt
1.23 0.13 0.7 2.8295668 0.00938401
2.34 0.15 1.59 2.8295668 0.00917911
3.62 0.17 2.62 2.8295668 0.00912824
4.81 0.17 3.6 2.8295668 0.00916185
13
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
V I w
kb = kt kt*I B
(V) (A) (rad/s)
1.2199E-
1.23 0.13 0.70 0.00938401 1.32781E-08
06
1.3769E-
2.34 0.15 1.59 0.00917911 6.59774E-09
06
1.5518E-
3.62 0.17 2.62 0.00912824 4.51269E-09
06
1.5575E-
4.81 0.17 3.60 0.00916185 3.29633E-09
06
1.6556E-
5.99 0.18 4.54 0.0091977 2.77841E-09
06
1.6602E-
7.24 0.18 5.56 0.00922327 2.27501E-09
06
8.43 0.19 6.54 0.00919456 1.747E-06 2.0352E-09
9.63 0.19 7.53 0.00919991 1.748E-06 1.76865E-09
1.8344E-
10.75 0.20 8.46 0.00917175 1.65201E-09
06
1.8422E-
11.7 0.20 9.21 0.00921076 1.52394E-09
06
Promedio: 3.9718E-09
14
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
Figura 4. Curva de reacción del motor DC a una tensión de entrada de 12V (rojo)
y velocidad como respuesta (azul, rad/s)
15
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
16
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
17
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
void loop() {
if(Serial.available()){
char buffer[10];
Serial.readBytesUntil('\n', buffer, 10);
pwm01Val = atoi(buffer);
if(pwm01Val>0){
digitalWrite(M1_INB,LOW); // Alimentacion del encoder (Blue)
digitalWrite(M1_INA,HIGH); // Tierra del encoder (Green)
}
else{
digitalWrite(M1_INA,LOW); // Alimentacion del encoder (Blue)
digitalWrite(M1_INB,HIGH); // Tierra del encoder (Green)
}
analogWrite(M1_PWM,abs(pwm01Val));
}
t = millis();
if((t - t_ant) >= T){
t_ant = t;
tt=t;
pos1 = myEncMo1.read();
//vel1_rad = (pos1 - posAnt1)/ 8400.0 * 2 * pi *1000.0 / T; // rad/s
//vel1_RPM = (pos1 - posAnt1)/ 8400.0 * 1000.0 / T * 60; // RPM
Serial.print(tt);
Serial.print("\t");
Serial.print(pwm01Val);
Serial.print("\t");
// Serial.print(pos1);
// Serial.print("\t");
// Serial.print(vel1_rad);
// Serial.print("\t");
// Serial.print(vel1_RPM);
// Serial.print("\t");
Serial.println(pos1-posAnt1);
//Serial.println(vel1);
posAnt1 = pos1;
18
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
T = 10; % [ms]
t1 = t1-t1(1,1); % [ms]
t1 = t1/1000.0; % [s]
u1 = 12/1023*u1; % [V]
y1 = y1 / 8400.0 * 2 * pi *1000.0 / T; % [rad/s]
% y1 = y1*131.25;
figure
plot(t1,u1,'r',t1,y1,'b');
% axis([min(tt) max(tt) 0 max(y1)+max(y1)/10]);
legend('u1 (V)','y1 (rad/s)');
xlabel('tiempo (seg)');
ylabel('Tension (voltios)');
title('DATOS EXPERIMENTALES')
grid on
% -------------------------------------------------------------------------
% Identificación ARX
% -------------------------------------------------------------------------
fs=20;
T=1/fs;
%--------------------------------------------------------------------------
figure
% tt=0:T:(length(y1)-1)*T;
plot(t1,y1);
% axis([min(tt) max(tt) 0 max(y1)+max(y1)/10]);
legend('y1 (V)');
xlabel('tiempo (seg)');
ylabel('Tension (voltios)');
title('DATOS EXPERIMENTALES')
grid on
%--------------------------------------------------------------------------
data=iddata(y1,u1,T);
th=arx(data,[1 1 1]);
% th=armax(data,[2 1 1 1]);
thd=tf(th.b,th.a,T);
thc=d2c(thd);
[num,den]=tfdata(thc);
Gp=tf(num,den);
[nc,dc]=tfdata(Gp,'v');
[Pp,Zp]=pzmap(Gp);
disp('Planta Identificada')
printsys(nc,dc)
Gp
figure
step(Gp)
title('RESPUESTA DE LA PLANTA IDENTIFICADA POR ARX');
19
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
𝑤(𝑠) 𝟏. 𝟕𝟎𝟎𝟗
=
𝑉(𝑠) 𝒔 + 𝟐. 𝟑𝟗𝟎𝟔
4.5. OBTENCION DE LA INDUCTANCIA DEL MOTOR POR ITERACIÓN
El siguiente método se encuentra descrito por video en la página de Matlab [2].
Se hace uso de la curva de reacción contenida en el archivo xxxx.lvm y se parten con
parámetros con los valores identificados por las pruebas de laboratorio.
T = 10; % [ms]
t1 = t1-t1(1,1); % [ms]
t1 = t1/1000.0; % [s]
u1 = 12/1023*u1; % [V]
y1 = y1 / 8400.0 * 2 * pi *1000.0 / T; % [rad/s]
% y1 = y1*131.25;
figure
plot(t1,u1,'r',t1,y1,'b');
% axis([min(tt) max(tt) 0 max(y1)+max(y1)/10]);
legend('u1 (V)','y1 (rad/s)');
xlabel('tiempo (seg)');
ylabel('Tension (voltios)');
title('DATOS EXPERIMENTALES')
grid on
20
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
% -------------------------------------------------------------------------
% DATOS EXPERIMENTALES MEDIDOS POR PRUEBAS DE LABORATORIO
% -------------------------------------------------------------------------
B = 3.9718*1e-9;
J = 3.97126*1e-6;
K = 0.009205116;
L = 0.044168273501892;
R = 2.830;
21
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
Figura 10. Variables con sus calores iniciales que intervienen en la estimación
de la respuesta de la planta.
Figura 11. Limitación de los rangos de estimación de las variables, las variables
deben de ser mayores a cero.
22
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
23
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
B = 3.6921e-09
J = 3.5671e-06
K = 0.01075
L = 0.034898
R = 2.5344
Tomando la planta como primer orden nos da:
𝑤(𝑠) 𝟗. 𝟎𝟔
=
𝑉(𝑠) 𝒔 + 𝟏𝟐. 𝟕𝟖
Y como Segundo orden:
𝑤(𝑠) 𝟔𝟓𝟖
= 𝟐
𝑉(𝑠) 𝒔 + 𝟕𝟐. 𝟔𝟐 𝒔 + 𝟗𝟐𝟖. 𝟒
24
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
25
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
26
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
Figura 16. Simulink para el cálculo de ángulos (q1 y q2) a partir de Voltajes.
27
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
En Matlab:
28
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
29
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
Figura 19. Simulink para el cálculo de ángulos (q1 y q2) a partir de Voltajes.
30
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
31
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
En Matlab:
32
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
6. ESTRUCUTRA MECANICA
33
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
7. ELECTRONICA
#include <Encoder.h>
#define pi acos(-1)
#define LED_STATUS 13
#define myEncMo1A 5
#define myEncMo1B 6
#define M1_INA 7
#define M1_INB 8
#define M1_PWM 9
void setup() {
pinMode(LED_STATUS,OUTPUT);
Serial.begin(9600);
pinMode(M1_INA,OUTPUT);
pinMode(M1_INB,OUTPUT);
pinMode(M1_PWM,OUTPUT);
digitalWrite(M1_INA,HIGH); // Alimentacion del encoder (Blue)
digitalWrite(M1_INB,LOW); // Tierra del encoder (Green)
analogWrite(M1_PWM,pwm01Val);
// FRECUENCIA Y RESOLUCION DEL PWM
analogWriteFrequency(M1_PWM, 10000); // 488.28 Hz por defecto
analogWriteResolution(10); // 8 bits por defecto
delay(1000);
digitalWrite(LED_STATUS,HIGH);
}
34
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
void loop() {
if(Serial.available()){
char buffer[10];
Serial.readBytesUntil('\n', buffer, 10);
pwm01Val = atoi(buffer);
if(pwm01Val>0){
digitalWrite(M1_INB,LOW); // Alimentacion del encoder (Blue)
digitalWrite(M1_INA,HIGH); // Tierra del encoder (Green)
}
else{
digitalWrite(M1_INA,LOW); // Alimentacion del encoder (Blue)
digitalWrite(M1_INB,HIGH); // Tierra del encoder (Green)
}
analogWrite(M1_PWM,abs(pwm01Val));
}
t = millis();
if((t - t_ant) >= T){
t_ant = t;
tt=t;
pos1 = myEncMo1.read();
pos1_rad = pos1/ 8400.0 * 2 * pi;
vel1_rad = (pos1 - posAnt1)/ 8400.0 * 2 * pi *1000.0 / T; // rad/s
vel1_RPM = (pos1 - posAnt1)/ 8400.0 * 1000.0 / T * 60; // RPM
Serial.print(tt);
Serial.print("\t");
Serial.print(pwm01Val*12/1023);
Serial.print("\t");
Serial.print(pos1);
Serial.print("\t");
Serial.print(pos1_rad);
Serial.print("\t");
Serial.print(pos1-posAnt1);
Serial.print("\t");
Serial.print(vel1_rad);
Serial.print("\t");
Serial.println(vel1_RPM);
//Serial.println(vel1);
posAnt1 = pos1;
}
35
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
36
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
37
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
Error:
38
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
Voltaje:
Torque:
39
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
Velocidad y aceleración:
40
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
41
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
Error:
Voltaje:
42
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
Velocidad y aceleración:
Ideal Ideal
Ideal Ideal
Frequency Frequency
Resolution PWM Frequency Frequency
Board CPU Speed: CPU Speed:
(# of bits) Value CPU Speed: CPU Speed:
180 or 120 48 or 96
72 MHz 24 MHz
MHz MHz
Teensy 3.6 0-
16 915.527 Hz 732.4218 Hz 549.3164 Hz 366.2109 Hz
except pins 65535
16-17 0-
15 1831.055 Hz 1464.843 Hz 1098.632 Hz 732.421 Hz
32767
43
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
Teensy 3.5 0-
14 3662.109 Hz 2929.687 Hz 2197.265 Hz 1464.843 Hz
16383
Teensy 3.2
13 0 - 8191 7324.219 Hz 5859.375 Hz 4394.531 Hz 2929.687 Hz
Teensy 3.1 14648.437
12 0 - 4095 11718.75 Hz 8789.062 Hz 5859.375 Hz
Hz
Teensy 3.0 29296.875
11 0 - 2047 23437.5 Hz 17578.12 Hz 11718.75 Hz
Hz
10 0 - 1023 58593.75 Hz 46875 Hz 35156.25 Hz 23437.5 Hz
9 0 - 511 117187.5 Hz 93750 Hz 70312.5 Hz 46875 Hz
8 0 - 255 234375 Hz 187500 Hz 140625 Hz 93750 Hz
7 0 - 127 468750 Hz 375000 Hz 281250 Hz 187500 Hz
6 0 - 63 937500 Hz 750000 Hz 562500 Hz 375000 Hz
5 0 - 31 1875000 Hz 1500000 Hz 1125000 Hz 750000 Hz
4 0 - 15 3750000 Hz 3000000 Hz 2250000 Hz 1500000 Hz
3 0-7 7500000 Hz 6000000 Hz 4500000 Hz 3000000 Hz
2 0-3 15000000 Hz 12000000 Hz 9000000 Hz 6000000 Hz
0-
16 - 732.4218 Hz - 732.4218 Hz
65535
0-
15 - 1464.843 Hz - 1464.843 Hz
32767
0-
14 - 2929.687 Hz - 2929.687 Hz
16383
13 0 - 8191 - 5859.375 Hz - 5859.375 Hz
12 0 - 4095 - 11718.75 Hz - 11718.75 Hz
11 0 - 2047 - 23437.5 Hz - 23437.5 Hz
Teensy LC 10 0 - 1023 - 46875 Hz - 46875 Hz
9 0 - 511 - 93750 Hz - 93750 Hz
8 0 - 255 - 187500 Hz - 187500 Hz
7 0 - 127 - 375000 Hz - 375000 Hz
6 0 - 63 - 750000 Hz - 750000 Hz
5 0 - 31 - 1500000 Hz - 1500000 Hz
4 0 - 15 - 3000000 Hz - 3000000 Hz
3 0-7 - 6000000 Hz - 6000000 Hz
2 0-3 - 12000000 Hz - 12000000 Hz
Se comparan los drivers L298 [3] el Pololu Dual VNH5019 Motor Driver Shield for
Arduino [4] según las conexiones:
44
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
45
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
El teensy será programado usando la plataforma IDE Arduino según sea el caso para
manipular el driver L298.
46
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
void setup()
{
pinMode(LED_STATUS,OUTPUT);
digitalWrite(LED_STATUS,HIGH);
Serial.begin(9600);
Serial.setTimeout(10);
// Direccion de giro del motor
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
// Frecuencia del PWM
analogWriteFrequency(PWM_02, 1000); // 488.28 Hz por defecto
// Resolución del PWM
analogWriteResolution(8); // 8 bits por defecto
delay(1000);
digitalWrite(LED_STATUS,LOW);
void loop()
{
if (Serial.available())
{
char buffer[7];
Serial.readBytesUntil('\n', buffer, 7);
int data = atoi(buffer);
DEBUG("PWM SELECCIONADO");
DEBUG(data);
analogWrite(PWM_02,data);
}
digitalWrite(LED_STATUS, !digitalRead(LED_STATUS));
delay(100);
}
47
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
void setup()
{
pinMode(LED_STATUS,OUTPUT);
digitalWrite(LED_STATUS,HIGH);
Serial.begin(9600);
// DIRECCION DE GIRO DEL MOTOR
pinMode(M1_INA,OUTPUT);
pinMode(M1_INB,OUTPUT);
digitalWrite(M1_INA,LOW);
digitalWrite(M1_INB,HIGH);
// FRECUENCIA Y RESOLUCION DEL PWM
analogWriteFrequency(M1_PWM, 1000); // 488.28 Hz por defecto
// RESOLUCION DEL PWM
analogWriteResolution(8); // 8 bits por defecto
delay(1000);
digitalWrite(LED_STATUS,LOW);
void loop()
{
if (Serial.available())
{
char buffer[7];
Serial.readBytesUntil('\n', buffer, 7);
int data = atoi(buffer);
if(data>255){
data=255;
}
DEBUG("PWM SELECCIONADO");
DEBUG(data);
analogWrite(M1_PWM,data);
}
digitalWrite(LED_STATUS, !digitalRead(LED_STATUS));
delay(100);
}
48
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
6.00
5.00
4.00
3.00
2.00
1.00
0.00
0 50 100 150 200 250 300
Valor de PWM
Vdriver Vteensy
49
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
50
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
9.00
8.00
7.00
6.00
Tensión (V)
5.00
4.00
3.00
2.00
1.00
0.00
0 50 100 150 200 250 300
Valor de PWM
Vdriver Vteensy
51
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
5.00
4.00
3.00
2.00
1.00
0.00
0 50 100 150 200 250 300
Valor de PWM
Vdriver Vteensy
52
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
9.00
8.00
7.00
6.00
Tensión (V)
5.00
4.00
3.00
2.00
1.00
0.00
0 50 100 150 200 250 300
Valor de PWM
Vdriver Vteensy
53
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
50 0.65 1.55
75 0.97 2.42
100 1.29 3.29 8.87
125 1.62 4.16
150 1.94 5.02
175 2.27 5.88 8.87
200 2.59 6.76
225 2.91 7.63
255 3.30 8.86 8.85
225 2.91 7.63
200 2.59 6.74
175 2.27 5.90 8.87
150 1.94 5.03
125 1.62 4.16
100 1.30 3.30 8.89
75 0.97 2.43
50 0.65 1.56
25 0.33 0.49 8.89
0 0.00 0.00 8.94
9.00
8.00
7.00
6.00
Tensión (V)
5.00
4.00
3.00
2.00
1.00
0.00
0 50 100 150 200 250 300
Valor de PWM
Vdriver Vteensy
54
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
55
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
9.00
8.00
7.00
6.00
Tensión (V)
5.00
4.00
3.00
2.00
1.00
0.00
0 500 1000 1500 2000 2500
Valor de PWM
Vdriver Vteensy
56
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
Tabla 15.Respusta del L298 a 200 Hz y 8 bits de resolución con fuente lineal
57
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
9.00
8.00
7.00
6.00
Tensión (V)
5.00
4.00
3.00
2.00
1.00
0.00
0 50 100 150 200 250 300
Valor de PWM
Figura 33. Respuesta del L298 a 200 Hz y 8 bits de resolución con fuente lineal.
Tabla 16. Respusta del L298 a 20 kHz y 8 bits de resolución con fuente lineal
58
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
9.00
8.00
7.00
6.00
Tensión (V)
5.00
4.00
3.00
2.00
1.00
0.00
0 50 100 150 200 250 300
Valor de PWM
Figura 34. Respuesta del L298 a 20 kKHz y 8 bits de resolución con fuente lineal.
Tabla 17. Respusta del L298 a 200 Hz y 8 bits de resolución con fuente lineal
59
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
9.00
8.00
7.00
6.00
Tensión (V)
5.00
4.00
3.00
2.00
1.00
0.00
0 50 100 150 200 250 300
Valor de PWM
Vdriver Vteensy
Figura 35. Respuesta del L298 a 50 kHz y 8 bits de resolución con fuente lineal.
60
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
10.2. RESOLUCIÓN
Para este caso se compararon los casos de resolución de 8 bits y 11bits (Tabla 13 y
Tabla 14 respectivamente) a 20 kHz para ambos casos.
Al aumentar la resolución de 8 bits a 11 bits se aprecia tener una menor cantidad de
discretización del VDC del PWM permitiendo apreciar el efecto de no linealidad para
valores inferiores de 0.32 VDC de PWM.
También se permite apreciar la menor caída de tensión en la fuente de alimentación y
llegar a valores de tensión mas alto a la salida del driver (8.86 VDC a 9.03 VDC).
10.3. LINEALIDAD
Siguiendo lo explicado en las partes: Tabla 15.Respusta del L298 a 200 Hz y 8
bits de resolución con fuente lineal
61
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
9.00
8.00
7.00
6.00
Tensión (V)
5.00
4.00
3.00
2.00
1.00
0.00
0 50 100 150 200 250 300
Valor de PWM
Figura 33. Respuesta del L298 a 200 Hz y 8 bits de resolución con fuente lineal.
Tabla 16. Respusta del L298 a 20 kHz y 8 bits de resolución con fuente lineal
62
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
9.00
8.00
7.00
6.00
Tensión (V)
5.00
4.00
3.00
2.00
1.00
0.00
0 50 100 150 200 250 300
Valor de PWM
Figura 34. Respuesta del L298 a 20 kKHz y 8 bits de resolución con fuente lineal.
Tabla 17. Respusta del L298 a 200 Hz y 8 bits de resolución con fuente lineal
63
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
9.00
8.00
7.00
6.00
Tensión (V)
5.00
4.00
3.00
2.00
1.00
0.00
0 50 100 150 200 250 300
Valor de PWM
Vdriver Vteensy
Figura 35. Respuesta del L298 a 50 kHz y 8 bits de resolución con fuente lineal.
64
UNIVERSIDAD NACIONAL DE INGENIERÍA – FACULTAD DE INGENIERÍA MECÁNICA
ANÁLISIS Y CONTROL DE ROBOTS
MANIPULADOR DE 2GDL – INFORME Nº2
11. BIBLIOGRAFÍA
65