Professional Documents
Culture Documents
I. NOMENCLATURA
u: Voltaje en el circuito del motor (volts)
ke: Constante de voltaje(V s/rad)
km: Constante de torque (Nm/A).
R: Resistencia (Ohm)
L: Inductancia (H)
B: Friccin viscosa (Nm s/rad)
J: Inercia del rotor (kg m2)
I: Corriente (A)
II. INTRODUCTION
A. Ecuaciones de motor
El motor de magneto permanente se puede modelar utilizando
las ecuaciones que describen su parte mecnica (2) y su parte
elctrica (3). Debido a que se desea controlar la posicin
agregamos la ecuacin (3) que relaciona la velocidad angular
A. Aguilar es alumno de Instituto Tecnolgico de estudios superiores de
Monterrey, campus Guadalajara. Estudiante de 8 semestre de Mecatrnica.
(E-mail: alejandroaguilarv@gmail.com).
LI& = RI k e + u
J& = B + k m I
& =
(1)
(2)
(3)
B. Funcin de transferencia
Con las ecuaciones del sistema se puede obtener la funcin de
transferencia del sistema (4), la cual se utilizar para las el
diseo del control y las simulaciones.
(s)
V ( s)
k
(4)
JLs + ( JR + BL ) s 2 + ( BR + K 2 ) s
3
Parmetro
K=ke=km
L
R
B
J
Valor
0.0494V s/rad - Nm/A
11.7 mH
18.5
1.8e-6Nm s/rad
1.9e-6kgm2
( s)
0.0494
(5)
=
V ( s) 2.223 10 8 s 3 + 3.517 10 5 s 2 + 2.473 10 3 s
2
C. Comprobacin por medio de simulacin
Se introduce la funcin de transferencias al simulador
simulink, para comprobar la validez del modelo. La figura 2
muestra el diagrama a bloques.
Fig. 4. Plano complejo que muestra el crculo unitario, los polos y ceros del
sistema.
D( z ) = 5
D( z ) = k p + k d (1 z )
(6)
zD( z ) = zk p + k d ( z 1)
(7)
D( z ) = (k p + k d )
(z
kd
k p + kd
)
(8)
( z 0.7)
z
Y (k ) = 5E (k )
E (k 1)
3
(9)
(10)
Fig. 9. Plano complejo que muestra el crculo unitario, los polos y ceros del
sistema en lazo cerrado con un controlador PID.
u=5*e0+e1/3;
El lenguaje utilizado es C y la variable e0 representa el error
actual y e1 representa el error anterior. El resultado
experimental de este controlador se muestra en la figura 8
V. CONTROLADOR PID
De la misma forma que el controlador PD, se disea un PID
con sisotool. La funcin de transferencia del PID queda como
(10), la re expresamos de la forma (11), para facilitar la
ubicacin de ceros en sisotool.
D( z ) = K p +
KI
+ K D (1 z 1 )
1
(1 z )
(10)
(K p + 2K D )
2
KD
z+
z +
(
K
+
K
+
K
)
(
K
+
K
+
K
)
p
D
I
p
D
I
D( z ) = ( K p + K D + K I )
z ( z 1)
(11)
4
La funcin de transferencia obtenida es la ecuacin (12).
Utilizando (11) podemos obtener las ganancias del
controlador. K p = 1.185 K I = 0.5 K D = 13.4
z 2 1.93 z + 0.927
Y ( z)
= 14.5
(12)
E ( z)
( z 1) z
Fig. 13. Plano complejo que muestra el crculo unitario, los polos y ceros del
sistema en lazo cerrado con un controlador de adelanto.
u=u+e0-e1/2+e2/5;
D( z ) = K
(z + )
z+
(13)
Y ( z ) z + 0.5
=
E ( z ) z + 0.5
(14)
e1=e0;
//error anterior
e0=posd-pos;
//error actual
caclpos();
//Funcin que obtiene la posicin
printf("%ld,",pos); //Manda la informacin
u=-u/2+e0+e1/2; //Controlador
sendcont();
//Indica el voltaje del motor
}
La duracin de este ciclo se puede desglosar de la siguiente
manera: 200us para calcular el controlador, 300us preparar el
PWM y 350us para leer la posicin. Esto es un retardo
acumulado de 850us, que es un poco menos del milisegundo
establecido, lo cual no gener problemas. Para obtener estas
aproximaciones del tiempo de muestreo se contaron las
instrucciones de ensamblador generadas por el compilador. Es
importante notar que estos tiempos cambian en cierto rango ya
que para calcular nmeros grandes se requieren ms ciclos.
B. Encoder de cuadratura
El encoder de cuadratura utilizado en el experimento fue
rescatado de un Mouse de computadora que ya no funcionaba.
El disco tiene 60 divisiones y el sensor ptico proporciona dos
seales desfasadas 90. El procesamiento requerido para
detectar una cambio de direccin en la seal puede complicar
muchos los algoritmos de programacin y saturar los recursos
del microcontrolador [2]. Por esto se opta por un
decodificador externo. Tambin fue necesario aadir 2
inversores Schmitt Trigger para mejorar las seales obtenidas
del encoder. El esquemtico de este arreglo se muestra en la
figura 18. Las seales con las cuales se hace la deteccin del
cambio de direccin se muestran en la figura 19.
VII. IMPLEMENTACIN
A. Respecto al microcontrolador
Se seleccion un microcontrolador econmico, de
capacidad media, para representar una situacin de diseo
donde los recursos son limitados. El PIC16F628A es un
microcontrolador RISC de 8bit, con 2K de memoria de
programa, 224 bytes de RAM y 18pines.
Se utiliz un oscilador que proporciona una velocidad de 2
millones de instrucciones por segundo, para obtener un
periodo de muestreo de 1mseg o menos. El microcontrolador
cuenta con tres timers internos. Dos de ellos fueron utilizados
para contar los pulsos del encoder y generar una variable que
almacena la posicin. El timer restante es utilizado por el
microcontrolador para generar una seal PWM.
6
puente H basta con colocar en bajo el pin correspondiente. El
puente H es un arreglo tradicional que utiliza transistores
Darlinton de la familia TIP. La funcin sendcont() es la
encargada de calcular el valor en el PWM, se muestra a
continuacin.
void sendcont(){
if(u==0){
//apaga motor si u=0
output_high(PIN_A0);
output_high(PIN_A1);
} else {
if(u>0){
output_high(PIN_A0);
output_low(PIN_A1);
} else {
output_low(PIN_A0);
output_high(PIN_A1);
}}
v=abs(u);
if(v<200) v=200; //limita la u por seguridad.
if(v>1020) v=1020; //limita la u por seguridad.
set_pwm1_duty(v); //200-->1020 rango funcional
}
Esta funcin revisa el valor calculado por el controlador y lo
limita en el rango funcional del PWM. En caso que el control
sea cero se apaga el motor dejndolo en esa posicin. Segn
el signo del control se activa el canal de direccin
correspondiente del puente H. Se retira el signo al control y se
revisa que este dentro del rango funcional. Si es menor que
200 se deja en este valor, debido a la zona muerta del motor.
Si el control es mayor de 1020, se limita a este valor ya que no
hay ms voltaje disponible.
D. Interfaz serial
Para monitorear y analizar el comportamiento del sistema se
utilizo la interfase serial de microcontrolador. Se acoplo el
puerto serial de una computadora personal al microcontrolador
por medio del MAX232. Este circuito integrado permite
convertir los niveles de voltaje del protocolo RS-232 a TTL.
La informacin generada por el microcontrolador se manda
por el puerto serial a un programa de Matlab. El programa de
Matlab grafica la posicin en pantalla, del tiempo
especificado.
VIII. CONCLUSIONES
Para pasar de las ecuaciones a la implementacin de un
controlador, existen diversas consideraciones importantes. Es
necesario tener esto en mente, de lo contrario el controlador no
funcionara de manera adecuada. En caso de utilizar un
microcontrolador con recursos limitados, es de suma
importancia simplificar lo ms posible los algoritmos para no
saturar la memoria. Si se hubiese deseado utilizar nmeros con
punto flotante, se hubiera saturado la memoria del
microcontrolador solamente con la librera necesaria. Tambin
7
la decodificacin externa de las seales del encoder de
cuadratura, simplifican la programacin y liberan de carga al
microcontrolador. Considerar la zona muerta del motor para
que el programa no quede en espera de algo que nunca ser
posible.
Adems de estas consideraciones relacionadas con el
hardware y software; es muy importante contar con un buen
diseo en el control. Ya que por lo general al implementar los
factores de ruido se vern incrementados. Es necesario ubicar
los polos, de forma que se pueda garantizar una buena
estabilidad del sistema. Se deben realizar las simulaciones
necesarias con un modelo aproximado, as como la validacin
de este modelo. Para esto las herramientas de software como
Matlab muestran su gran utilidad.
AGRADECIMIENTOS
Un agradecimiento especial al profesor Esteban Chvez por
su apoyo y paciencia.
REFERENCIAS
[1]
[2]