Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tarea 5 servomotores
Fundamento de máquinas eléctricas y
servosistemas
Nolbert Cuevas Alarcón
11/07/2013
El punto inicial que tendrá la herramienta de corte en este sistema será el indicado por el punto H,
el cual es el origen del sistema coordenado (0,0). Luego la herramienta de corte se moverá hacia
los puntos C, D, E, F, G, B. Con esto se podrá obtener la pieza solicitada que es un hexágono
regular de lado L=20 cms.
ii) A partir de las coordenadas (x,y) de la pieza hexagonal, determinar las señales de referencia de
posición , ( ) y , ( ) para los servosistemas de cada eje. Estas referencias deben ser tales
que idealmente uno de los ejes se encuentre trabajando a la máxima velocidad de operación
permitida o acelerando a la máxima tasa permitida hasta alcanzar la velocidad máxima. Esta
velocidad se considera igual al 90% de la velocidad nominal del servomotor y para ella el avance
lineal de cada eje es de 0.02 [m/s]. Hacer gráficos de , ( ), , ( ), , ( ) y , ( ).
Para llevar a cabo este análisis se analizarán los ejes coordenados por separado, primeramente se
analizará lo que pasa con el servomotor conectado al eje X.
Para obtener la figura 1.2 se hizo un análisis de cada tramo que recorría el servomotor ubicado en
el eje X. Para ello se tomo como referencia es sistema de ejes coordenados mostrado en la figura
1.1, donde se fueron tomando los movimientos que realizaba el servomotor a través del eje X en
función de la distancia que recorría a una velocidad de 0.02 [m/s]
Figura 1.3 Señal de referencia de posición correspondiente al servomotor en el eje y.
Para la referencia de velocidad se utilizó una trayectoria triangular, ya que esta elección causará
menos error al llegar al punto final, también se considero el hecho de que la velocidad máxima
permitida es el 90% de la velocidad nominal.
Siguiendo el método de ajuste por zonas, determinar los valores de las ganancias Kvp y Kvi del
controlador PI de velocidad. En particular
i) Ajuste de ganancia Kvp. Desarrollar simulación para el ajuste de la ganancia Kvp en modo de
control de velocidad, con la componente integrativa del controlador nula (Kvi=0). Aplicar onda
cuadrada de 10% de y obtener respuesta del lazo para las distintas ganancias Kvp.
25
20
Velocidad [rad/s]
15
10
0
0 1 2 3 4 5 6
t[s]
10
Ia
Imax
5
Ia[A]
-5
-10
0 1 2 3 4 5 6
t [s]
Figura 2.2 Respuesta ante escalón del 10% de para Kvp=0.06 (bajo).
Control Lazo Velocidad con Kvp Correcto
30 Wref
Wm
25
20
W[rad/s]
15
10
0
0 1 2 3 4 5 6
t[s]
10
Ia
Imax
5
Ia[A]
-5
-10
0 1 2 3 4 5 6
t[s]
Figura 2.3 Respuesta ante escalón del 10% de para Kvp=0.35 (correcto).
Control Lazo Velocidad con Kvp Alto
30 Wref
Wm
25
20
Wm[rad/s]
15
10
0
0 1 2 3 4 5 6
t[s]
60 Ia
Imax
40
20
Ia[A]
-20
-40
-60
0 1 2 3 4 5 6
t [s]
Figura 2.4 Respuesta ante escalón del 10% de para Kvp=2.1 (alto).
Se puede inferir a través de las simulaciones realizadas que:
-Para un Kvp bajo, según figura 2.2, la corriente queda en niveles bajísimos, quedando fuera de
cualquier peligro el motor, pero se observa que el sistema no sigue la referencia de la mejor
forma. Por lo tanto este valor de Kvp bajo queda descartado para ser catalogado como correcto.
-Para un Kvp alto, según figura 2.4, se observa que el sistema sigue a la referencia entregada casi
perfectamente, pero a un costo elevado, la corriente del motor supera por mucho a la corriente
máxima permitida
-Finalmente en la figura 2.3 se puede apreciar que el Kvp escogido es el correcto, ya que el peak de
corriente no supera el máximo permitido por el motor, y el seguimiento de la señal de referencia
es aceptable.
-Por lo tanto el Kvp con el cual se procederá a sintonizar el lazo de corriente tendrá el valor de
Kvp=0.35.
ii) Ajuste de ganancia Kvi. Desarrollar simulación para el ajuste de Kvi en modo de control de
velocidad, con la componente proporcional del controlador Kvp ajustada al valor correcto
encontrado en i). Aplicar onda cuadrada de 10% de y obtener la respuesta del lazo para
distintos Kvi. Bajo, correcto y alto.
15
Wm[rad/s]
10
-5
0 1 2 3 4 5 6
t[s]
10
Ia
Imax
5
Ia[A]
-5
-10
0 1 2 3 4 5 6
t[s]
Figura 2.5 Respuesta ante escalón del 10% de para Kvi=0.4 (bajo), con Kvp=0.35.
Lazo Velocidad para Kvi Correcto
25 Wref
Wm
Sobrepaso max
20
15
Wm[rad/s]
10
-5
0 1 2 3 4 5 6
t[s]
8
Ia
6 Imax
2
Ia[A]
-2
-4
-6
-8
0 1 2 3 4 5 6
t[s]
Figura 2.6 Respuesta ante escalón del 10% de para Kvi=1.3 (correcto), con Kvp=0.35.
Lazo Velocidad para Kvi Alto
30 Wref
Wm
25 Sobrepaso max
20
Wm[rad/s]
15
10
-5
0 1 2 3 4 5 6
t[s]
10
Ia
Imax
5
Ia[A]
-5
-10
0 1 2 3 4 5 6
t[s]
Figura 2.7 Respuesta ante escalón del 10% de para Kvi=8 (alto), con Kvp=0.35.
Se puede inferir a través de las simulaciones realizadas que:
-Para Kvi bajos el sistema no posee tanto sobrepaso en el seguimiento de posición, pero con esto
se sacrifica la rapidez, siendo la respuesta lenta.
-Para Kvi altos la respuesta se hace más rápida, pero se ve claramente en la figura 2.7 que el
sobrepaso es mayor que el deseado, aparte de presentar oscilaciones considerables.
-Finalmente para el Kvi correcto, se trata obtener una respuesta lo más rápida posible, pero
cuidando que no tenga un sobrepaso mayor al 15%, ya que esto ocasionaría imperfecciones en
aplicaciones de precisión.
2.2 Síntesis controlador de posición
i) Ajuste de ganancia Kpp. Desarrollar simulación para el ajuste de la ganancia Kpp en modo de
control anteriores. Generar referencia de posición sinusoidal de amplitud máxima de 30*pi [rad]
de modo que la máxima velocidad durante el ciclo no exceda del 90% de la velocidad nominal del
servomotor. Aplicar referencia desarrollada y obtener respuesta del servosistemas para distintas
ganancias Kpp. Bajo, correcto y alto.
Para la simulación se utilizó el siguiente esquema simulink en conjunto con código Matlab anexo.
600
theta [rad]
400
200
0
0 1 2 3 4 5 6 7 8 9 10
t [s]
Velocidad para Kpp Bajo
100
Wref
80 Wm
Wm [rad/s]
60
40
20
0
0 1 2 3 4 5 6 7 8 9 10
t [s]
Corriente Ia para Kpp Bajo
2
Ia
1
Ia [A]
-1
-2
0 1 2 3 4 5 6 7 8 9 10
t[s]
Figura 2.8 Respuesta ante referencia sinusoidal para Kpp=2 bajo, con Kvp=0.35 y Kvi=1.3
Posicion para Kpp Correcto
800
Pref
600 Pm
theta[rad]
400
200
0
0 1 2 3 4 5 6 7 8 9 10
t[s]
Velocidad para Kpp Correcto
100
Wref
80 Wm
Wm[rad/s]
60
40
20
0
0 1 2 3 4 5 6 7 8 9 10
t[s]
Corriente para Kpp Correcto
4
Ia
2
Ia[A]
-2
-4
0 1 2 3 4 5 6 7 8 9 10
t[s]
Figura 2.9 Respuesta ante referencia sinusoidal para Kpp=30 correcto, con Kvp=0.35 y Kvi=1.3
Posicion para Kpp Alto
800
Pref
600 Pm
theta[rad]
400
200
0
0 1 2 3 4 5 6 7 8 9 10
t[s]
Velocidad para Kpp Alto
100
Wref
80 Wm
Wm[rad/s]
60
40
20
0
0 1 2 3 4 5 6 7 8 9 10
t[s]
Corriente para Kpp Alto
4
Ia
2
Ia[A]
-2
-4
0 1 2 3 4 5 6 7 8 9 10
t[s]
Figura 2.10 Respuesta ante referencia sinusoidal para Kpp=100 correcto, con Kvp=0.35 y Kvi=1.3
Usando los valores obtenidos de las sintonizaciones de lazo de velocidad y posición, se procedió a
determinar la sintonización del lazo de posición.
-Para Kpp bajos se ve que la respuesta del sistema no sigue de la mejor forma a la referencia
sinusoidal impuesta, con un error considerable. Respecto a la corriente, esta se mantiene en
rangos normales.
-Para Kpp alto se puede observar que la referencia sigue perfectamente a la referencia, pero la
corriente presenta muchas oscilaciones, por tanto sería se puede concluir que sería provechoso
desde el punto de vista del error, pero se paga un precio respecto a las oscilaciones de la
corriente.
III) Evaluación sistema
i) Evaluar la operación del servomotor en el eje X durante la realización del ciclo de corte
hexagonal usando la referencia obtenida en la sección I y los valores de los controladores
ajustados en la sección II. Para ello, desarrollar simulación en Matlab o simulink que permita
evaluar la respuesta del sistema para la referencia sinusoidal obtenida en I.
20
0
0 5 10 15 20 25 30 35 40
t[s]
thetam
40
theta [vtas]
20
0
0 5 10 15 20 25 30 35 40
t[s]
Error de posición
0.1 Error
0.05
-0.05
0 5 10 15 20 25 30 35 40
Wm
velocidad motor W ref
2000
Wm[rpm]
1000
-1000
0 5 10 15 20 25 30 35 40
t[s]
10
Ia[A]
-10
-20
0 5 10 15 20 25 30 35 40
tiempo [s]
potencia
4
3
Pot[W]
0
0 5 10 15 20 25 30 35 40
t[s]
pérdidas
2
1.5
Per[J]
0.5
0
0 5 10 15 20 25 30 35 40
tiempo [s]
-De la grafica de la corriente de operación observamos que para invertir la velocidad de operación,
es decir, pasar de acelerar el sistema a desacelerarlo, necesitamos invertir la corriente de
operación, esto se ve dado que en el momento de cambio de velocidad, la corriente torna hacia
valores negativos.
Código Utilizado
clear all
close all
clc
%Datos Motor:
Mnom=25;Inom=3.1;Vnom=179;Nnom=2000;K_T=0.820;Ra=0.193;
La=3.5e-3;J_m=0.0280;J_l=0.0280;
J_total=J_m+J_l; %Inercia total
Wnom=2000*pi/30; %velocidad nominal
Iamax=2.5*Inom; %corriente maxima
t1=linspace(0,10,1000);
%Ajuste Ganancias
K_vi=0; %componente integrativa 0
K_vp=0.06;
sim('Lazo_Velocidad') %referencia a Diagrama en simulink
clear all
close all
clc
%Datos Motor:
Mnom=25;Inom=3.1;Vnom=179;Nnom=2000;K_T=0.820;Ra=0.193;
La=3.5e-3;J_m=0.0280;J_l=0.0280;
J_total=J_m+J_l; %Inercia total
Wnom=2000*pi/30; %velocidad nominal
Iamax=2.5*Inom; %corriente maxima
t1=linspace(0,10,1000);
%Ajuste Ganancias
K_vp = 0.35; %Kvp correcto que se obtuvo
clear all
close all
clc
%Datos Motor:
Mnom=25;Inom=3.1;Vnom=179;Nnom=2000;K_T=0.820;Ra=0.193;
La=3.5e-3;J_m=0.0280;J_l=0.0280;
J_total=J_m+J_l; %Inercia total
Wnom=2000*pi/30; %velocidad nominal
%Ajuste ganancias
K_vp = 0.35; %Kvp correcto que se obtuvo
K_vi = 1.3; %Kvi correcto que se obtuvo
figure(1)
subplot(4,1,1);
plot(t,pos,t,posref,'linewidth',2), legend('posiscion', 'posicion
referencia')
ylabel('x[cm]'), xlabel('tiempo [s]'), grid on
title('Posicion Evaluación')
subplot(4,1,2);
plot(t,pos,'linewidth',2), grid on, ylabel('x[cm]'), xlabel('tiempo [s]')
title('posicion carro')
subplot(4,1,3);
plot(t,err,'linewidth',2),title('error posición Kpp Alto')
ylabel('x[cm]'), xlabel('tiempo [s]'), grid on
subplot(4,1,4)
plot(t,wm,t,wmref,'linewidth',2),legend('velocidad', 'velocidad
referencia')
ylabel('vel[cm/s]'), xlabel('tiempo [s]'), grid on
title('Velocidad carro')
figure(2)
subplot(3,1,1)
plot(t,Ia,'linewidth',2), title('Corriente'), grid on
xlabel('tiempo [s]'), ylabel('Corriente [A]')
subplot(3,1,2)
plot(t,pot,'linewidth',2), title('Potencia')
grid on, xlabel('tiempo [s]'), ylabel('[W]')
subplot(3,1,3)
plot(t, per,'linewidth',2), title('perdida energia')
grid on, xlabel('tiempo [s]'), ylabel('[J]')