Вы находитесь на странице: 1из 20

Sistemas Digitales

Control de motor CC

Ariel Kruger Matas Cerrudo Mauricio Chaparro Prof. Guillermo Casas Ao 2004

UNIVERSIDAD NACIONAL DE QUILMES

PROYECTO FINAL: Control de motor CC

DEPARTAMENTO DE CIENCIA Y TECNOLOGIA Ingeniera en Automatizacin y Control Industrial OBJETIVOS. Familiarizarse con el ambiente IDEA. Asentar conocimientos acerca del microcontrolador MC68HC11F1 y su programacin en lenguaje C. Controlar un motor de CC en lazo abierto y lazo cerrado. Lograr una interfaz entre el microcontrolador y la PC. Investigar circuitos electrnicos para adaptar una seal. Poner en prctica lo aprendido acerca de electrnica. Obtener una herramienta que permita observar y registrar la respuesta real de un motor de CC a un escaln de entrada.

1. DESCRIPCIN El Proyecto consiste en controlar la velocidad de un Motor CC por medio de un algoritmo PI y establecer una comunicacin con la PC. Para ello se utiliza el microcontrolador HC11F1 de Motorola, un encoder, electrnica adicional y una PC como interfaz de usuario. Para controlar el motor a lazo abierto, desde un programa hecho en Visual Basic (que corre en la PC) se enva por el puerto serie un nmero que representa un porcentaje de ciclo de trabajo. Este nmero es utilizado por el microcontrolador para generar el PWM (modulacin por ancho de pulso) que comandar el motor. Para controlar el motor a lazo cerrado, desde la PC se enva un nmero que representa la velocidad de referencia deseada. Este nmero, junto con otro obtenido a partir del encoder que representa la velocidad real, son analizados por el microcontrolador y usados para obtener lo que en teora de control se llama error. Luego, un algoritmo de control PI (proporcional-integral) hace uso del error para calcular la actuacin, es decir, el ciclo de trabajo del PWM que comandar el motor. Es importante aclarar, que en este caso, la actuacin es modificada por el algoritmo hasta que la velocidad real iguale a la velocidad de referencia o velocidad deseada.
SISTEMAS DIGITALES

PROYECTO FINAL: Control de motor CC

En ambos casos, el microcontrolador transmitir peridicamente a la PC un nmero que representa la velocidad real del motor. Luego de realizar la conversin a RPM, la velocidad es mostrada por el programa hecho en Visual Basic. Otra caracterstica del proyecto es la posibilidad de observar y registrar la respuesta del motor a un escaln. Esto se logra enviando desde el programa hecho en Visual Basic una seal que le indica al microcontrolador que debe detener el motor. Luego se enva desde la interfaz (el programa de Visual Basic) el ciclo de trabajo deseado en el PWM que comanda el motor, es decir, se enva una actuacin. A continuacin, la interfaz comienza a escribir en un archivo de texto y a graficar la evolucin de la velocidad del motor a partir de los datos enviados por el microcontrolador.

2. ESPECIFICACIONES Frecuencia de reloj del Micro: 500 Khz (2 microsegundos) Frecuencia del PWM: 50Hz (Ton entre 10-90 % del periodo-20 mseg.-) Velocidad de transmisin (PC_Micro): 9600 Baudios. 1Byte por transmisin. Rango de Velocidades : Min. 1500 RPM Mx. 4500 RPM Tiempo de estabilizacion 0.7 seg. Frecuencia del encoder Min. 525 pulsos/seg. - Max. 1575 pulsos/seg. Resolucin del encoder: 21 pulsos /vuelta Error Mximo:
SISTEMAS DIGITALES

PROYECTO FINAL: Control de motor CC

1.58 % (+- 70 RPM) 3. DIAGRAMA DE BLOQUES

PC: Se usa como interfaz Proceso-Usuario. La comunicacin con el micro se lleva cabo por medio del Puerto Serie (COM). Teclado: Permite al usuario ingresar las RPM deseadas para el funcionamiento del motor. Monitor: En l se visualiza la grafica de la respuesta a lazo cerrado del Motor, las RPM, la interfaz de usuario con posibilidad de eleccin de COM y eleccin del control del motor: lazo cerrado o lazo abierto, y desconexin con el micro. Adems permite obtener valores de las RPM en el momento de arranque del motor y durante la respuesta transitoria. Microcontrolador: El microcontrolador es el encargado de realizar el algoritmo de control. A travs de la interfaz RS-232 transmite el periodo de los pulsos del encoder , y recibe el periodo referencia que se usa para determinar el PWM. Dentro de los recursos del HC11F1 se utilizan: - Un comparador (TOC2) junto con su salida hardware e interrupcin: su funcin es brindar una base fija de tiempo (20 miliSISTEMAS DIGITALES

PROYECTO FINAL: Control de motor CC

segundos) para generar el PWM, transmitir peridicamente la velocidad del motor y ejecutar el algoritmo de control. - Un capturador de entrada (TIC3) y su interrupcin: tiene como tarea almacenar el tiempo en el que ocurren los flancos positivos de los pulsos provenientes del encoder. - El puerto serie y su interrupcin por recepcin de byte.

Llave: El corazn de este bloque es un transistor que, dependiendo del valor del PWM, transmite la energa de la fuente al Motor. El PWM generado por el micro sale por el pin 6 del Port A, de ah se conecta a la base del transistor . La funcionalidad del mismo es la de abrir o cerrar el circuito, inyectando de esta manera corriente al motor. Motor: Este es la Planta a ser controlada. La tensin nominal es de 5V y la corriente nominal es de 60mA con picos de 150mA en el arranque y a rotor bloqueado. Encoder: La funcin de este bloque es la de transformar la velocidad del motor en pulsos manejables por el Micro. Para ello se monta sobre el eje del motor una rueda dentada, al girar corta una haz de luz generado por un LED emisor de luz infrarroja, la luz que logra pasar llega a un fototransistor, este se excita y se obtiene una tensin de 1 Volt. El encoder transmite una seal senoidal de 1 Volt de amplitud, por esto es necesario acondicionar la seal para que el micro pueda detectarla. La seal es amplificada por un amplificador operacional logrando as una tensin de 3 Volt de amplitud mxima, pero sigue siendo senoidal, por esto se utiliza un disparador que funciona con un umbral de 1.5 Volt, de esta manera se logra obtener una seal cuadrada de 5 Volt reconocida por el micro.

4. HARDWARE La actuacin y deteccin de seales se realiza en tres circuitos: 1)- Accionamiento del motor. 2)- Sensor. 3)- Acondicionador de seal. Vista general:

SISTEMAS DIGITALES

PROYECTO FINAL: Control de motor CC

1)- Circuito de Accionamiento (Llave): Este circuito esta formado por un transistor funcionando como interruptor, una resistencia de 0.82K para la polarizacin del transistor, y un capacitor de 0.1 F Para evitar sobrepicos de tensin.

2)-Circuito del sensor: El circuito esta formado por un fototransistor, un led emisor de luz infrarrojo y una rueda dentada de 35 dientes.

3)- Circuito acondicionador de seal: Esta formado por un Amplificador Operacional LM386 en configuracin No Inversor (con resistencias de 1 K y 0.55 K) el cual eleva la seal proveniente del encoder a 3 Volt de pico, esta seal es conectada a un disparador
SISTEMAS DIGITALES

PROYECTO FINAL: Control de motor CC

DM74LS14 que para tensiones mayores a 1.4 Volt se tiene el la salida una tensin CC de 5 Volt y para menores a 1.4 Volt la salida es 0 Volt.

Descripcin del Puerto A PIN 0/IC3: Este pin representa la entrada del capturador IC3 que incorpora el 68HC11. Capturando los instantes en que se producen dos flancos de subida consecutivos y realizando la resta se obtiene el perodo de la seal del encoder, que luego es utilizado para calcular las RPM del motor. PIN 6/OC1: Este pin representa la salida del comparador OC1. Cuando el valor del temporizador es igual al del comparador, se produce una interrupcin (si estn habilitadas) y se modifica opcionalmente el estado lgico del pin del microcontrolador; produciendo, de esta manera, la seal del PWM que actuara sobre el transistor.

SISTEMAS DIGITALES

PROYECTO FINAL: Control de motor CC

Descripcin del Puerto Serie TxD y RxD: Son los pines de transmisin y recepcin de datos serie asncronos. El 68HC11 trabaja con niveles TTL, por lo que ser necesario un circuito de adaptacin si se quiere comunicar con un dispositivo que utilice otro tipo de norma como por ejemplo un PC (norma RS-232C). Un integrado que realiza esta adaptacin es el MAX232. En la figura se representa el funcionamiento (derecha) y la configuracin de conexin (izquierda) del MAX232.

Especificaciones Electricas: Alimentacin del motor 5Vcc. Corriente Nominal 55mA ( 5V) Corriebte Maxima 70mA ( 5V)
SISTEMAS DIGITALES

PROYECTO FINAL: Control de motor CC

Alimentacin de circuitos 5Vcc.(Funcionamiento Normal). Transistor BC549 NPN Max. tensin de entrada 5Volt. Resistencia de polarizacin del transistor BC549 820 Ohms. Capacitor de 0.1 F Amplificador de potencia LM386. (configuracin No Inversor) Alimentacin Max.12Volt. Resistencias de amplificacin 550 y 1000 Ohms. Disparador de Smith (Trigger) DM74LS14 . Alimentacin max. del trigger 7Volt Rango de Temperatura 0C a 70C Umbral de entrada Min. 1.4Volt / Normal 1.5 / Max. 1.9Volt .

Mouse usado como sensor. Alimentacin 5Vcc Salida senoidal 0-1Volt. 5. SOFTWARE El software de este proyecto est conformado por dos programas: uno que ser ejecutado en la PC y otro que correr en el microcontrolador. Como ya se dijo, el programa de la PC se utiliza como interfaz para el control del motor CC y el programa del microcontrolador para, propiamente, controlar el motor. La comunicacin entre estos dos procesos se realiza por el puerto serie bajo la norma RS-232C, mediante intercambio de bytes. Desde la PC se envan bytes de control y bytes que indican al microcontrolador qu es lo que debe hacer con la velocidad del motor: controlarla a lazo abierto o controlarla a lazo cerrado. Desde el microcontrolador se envan bytes que representan la velocidad real del motor y bytes de control. Para iniciar y reiniciar el programa del HC11F1, desde la PC se enva el caracter 250 y se espera como respuesta del micro el caracter 202. Cuando se quiere controlar a lazo abierto, desde la PC se enva un byte que representa el ciclo de trabajo deseado en el PWM. Este byte ser un nmero comprendido entre 155 y 245 . Luego el programa del microcontrolador le resta a dicho byte 150; de esta forma queda un nmero comprendido entre 5 y 95 que es el ciclo de trabajo deseado (ver ms abajo).
SISTEMAS DIGITALES

PROYECTO FINAL: Control de motor CC

En este punto, es necesario introducir ciertas correspondencias que existen entre las diferentes formas de representar la velocidad del motor. Estas formas son: mediante la unidad RPM (cantidad de vueltas por minuto); a travs de la frecuencia o el perodo de los pulsos del encoder; y por medio de la cantidad de incrementos del freerunning que ocurren entre flancos positivos sucesivos de los pulsos procedentes del encoder. Es importante mencionar aqu que se dividi la seal de reloj que incrementa el freerunning para que ste se incremente cada 2 microsegundos (seal de reloj a 500 KHz). Tambin es importante aclarar que, si bien la rueda dentada del encoder tiene 35 dientes, existe una relacin entre las vueltas del motor y las vueltas de la rueda distinta de 1:1 que afecta significativamente los clculos y el desempeo del microcontrolador. Ms especficamente, se utiliza una reduccin de velocidad para evitar que a altas RPM del motor las interrupciones por el capturador de entrada (TIC3) sean tan frecuentes que ocupen todo el tiempo de CPU disponible, causando retardos indeseables en el PWM y no admitidos en el control. La relacin es:

21 pulsosENCODER VMOTOR

Las correspondencias son:

Velocidad = f pulsos *

60seg 1V * = {RPM } 1 min 21 pulsos


500000 Hz *1 pulso f pulsos

C Increm = T pulsos * 500000 Hz =

Velocidad =

30000000 1V * C Increm * 21 1min

Donde, Velocidad es la velocidad angular del motor medida en RPM (V/min); fpulsos es la frecuencia de los pulsos del encoder medida en Hz (1/seg); Tpulsos es el perodo de los pulsos del encoder medido en segundos; CIncrem es la cantidad de incrementos del freerunning entre flancos positivos de los pulsos del encoder; seg es segundo; V es vuelta y min es minuto.
SISTEMAS DIGITALES

10

PROYECTO FINAL: Control de motor CC

Por ejemplo, a una velocidad de 500 RPM el freerunning se incrementa 2857 veces y la frecuencia de los pulsos del encoder es 175 Hz. Cuando se quiere controlar a lazo cerrado, desde la PC se envan dos bytes que corresponden a la parte alta y parte baja de un nmero entero (2 bytes). Este nmero entero es la cantidad de incrementos del freerunning del microcontrolador, a una frecuencia de 500 KHz, que debe haber entre cada flanco positivo de los pulsos provenientes del encoder. Luego, un algoritmo de control PI en el microcontrolador se encarga de que la cantidad de incrementos real del freeruning sea igual a la cantidad de incrementos deseada o de referencia. Debido al tamao del buffer de entrada y salida del puerto serie del microcontrolador, fue necesario realizar algoritmos para que los procesos pudieran comunicarse correctamente. Ms especficamente, el tamao del buffer es de 1 byte y el perodo de los pulsos del encoder (medido en incrementos del freeruning) es un dato de tipo entero de dos bytes. 5.1. Programa del microcontrolador. El programa del microcontrolador consiste bsicamente en un bucle infinito con un switch case. La variable opcion que verifica el switch case se modifica en la rutina de interrupcin del puerto serie mediante datos enviados desde la PC; de esta manera, se pueden acceder a las funcionalidades del programa que son: opcion=1 reiniciar programa; opcion=2 controlar a lazo abierto y opcion=3 controlar a lazo cerrado.
for(;;) { switch (opcion) { case 1: //Cdigo opcion=0; break; case 2: //Cdigo opcion=0; break; case 3: //Cdigo opcion=0; break; default: break; } }

5.1.1. Rutina de interrupcin del puerto serie.


SISTEMAS DIGITALES

11

PROYECTO FINAL: Control de motor CC

La rutina de interrupcin del puerto serie es la siguiente:


@interrupt void recepcion(void) { if(SCSR & 0x20) { byteRecibido=SCDR; if(recibiendoReferencia==0) { if(byteRecibido==250) { opcion=1; return; } if(byteRecibido>154 && byteRecibido<246) { opcion=2; return; } if(byteRecibido>=0 && byteRecibido<128) { _asm("ldaa _byteRecibido"); _asm("staa _periodoReferencia"); //Parte alta recibiendoReferencia=1; return; } } else { _asm("ldaa _byteRecibido"); _asm("staa _periodoReferencia+1"); //Parte baja recibiendoReferencia=0; opcion=3; return; } } }

En esta rutina, lo que se hace fundamentalmente es establecer un protocolo para la comunicacin. Se acord lo siguiente: Si el primer byte recibido es igual a 250 (considerando cero a la variable de control de tipo char recibiendoReferencia), desde la PC se envi una orden de reiniciar el programa; entonces a opcion se le escribe 1. Si el byte est entre 155 y 245, se lo considera un ciclo de trabajo, en opcion se escribe 2, y se entiende que desde la PC se quiere controlar a lazo abierto (est mandando directamente una actuacin). Si el byte recibido est entre 0 y 127, se determina que la PC est enviando un perodo de referencia y el control debe hacerse a lazo cerrado; se escribe el byte recibido en la parte alta de periodoReferencia; y se indica que se est recibiendo un perodo de referencia (escribiendo un 1 en recibiendoReferencia). De esta forma, el prximo byte que se reciba se escribe directamente en la parte baja de periodoReferencia, y a opcion se le pone 3. 5.1.2. Rutina de interrupcin del comparador.
SISTEMAS DIGITALES

12

PROYECTO FINAL: Control de motor CC

La transmisin de la velocidad (expresada en incrementos del freerunning), la generacin del PWM y la ejecucin del algoritmo de control son realizadas en la rutina de interrupcin del comparador TOC2.
@interrupt void ControlPWM(void) { //Se genera el PWM indicador++; if(indicador==2) { //Se habilita la interrupcin por TIC3 //Se actualiza el control //Se transmite la velocidad indicador=0; } TFLG1=0x40; }

La velocidad real del motor se transmite cada 20mseg enviando primero la parte alta de la variable de tipo entero periodoPulso (que contiene el ltimo perodo medido de los pulsos del encoder) y a continuacin su parte baja:
while((SCSR & 0x40)==0) {} _asm("ldaa _periodoPulso"); //Parte alta _asm("staa $102F"); while((SCSR & 0x40)==0) {} _asm("ldaa _periodoPulso+1"); //Parte baja _asm("staa $102F");

El PWM se genera con interrupciones del TOC2 y su salida hardware en el pin 6 del PORT A de la siguiente forma:
if(activo==0) { TOC2=TOC2+Tact; activo=1; } else { TOC2=TOC2+Tinact; activo=0; }

Las variables Tact y Tinact indican el tiempo en que deben permanecer un 1 (5 volt) y un 0 (0 volt) en el pin 6 del PORT A, respectivamente. Calculando el cociente Tact/(Tact+Tinact) se obtiene el ciclo de trabajo. La variable activo, de tipo char, se emplea para garantizar que el pin 6 del PORT A estar en el estado 1 durante el tiempo Tact y en el estado 0 durante Tinact. Tact y Tinact son seteadas de tal forma que el PWM siempre tenga una frecuencia de 50Hz, por ejemplo:
SISTEMAS DIGITALES

13

PROYECTO FINAL: Control de motor CC

Tact=(byteRecibido- 150)*100; Tinact=10000- Tact;

//154 < byteRecibido < 246

El control a lazo cerrado se realiza utilizando un algoritmo de control proporcional-integral del tipo:
u (k ) = Kp * {e(k ) + Ki * e( j )}
j =0 k

Para facilitar la tarea del microcontrolador, se elimin la sumatoria de la siguiente manera:


u (k 1) = Kp * {e(k 1) + Ki * e( j )}
j =0 k 1

u (k ) u (k 1) = Kp * {e(k ) + Ki * e( j )} Kp * {e(k 1) + Ki * e( j )}
j =0 j =0

k 1

u ( k ) =u ( k ) +K * { 1 +K } * e( k ) e( k )} 1 p { i 1

Donde, u(k) es la actuacin (ciclo de trabajo del PWM); u(k-1) es la actuacin en el instante anterior; e(k)=r(k)-y(k) es el error en el instante actual; r(k) es la referencia (velocidad deseada); y(k) es la salida (velocidad real); y e(k-1) es el error en el instante anterior. La implementacin de este control es la siguiente:
error=periodoPulso- periodoReferencia; Tact=Tact_anterior+Kp*((1+Ki)*error- error_anterior); if(Tact>9000) Tact=9000; if(Tact<1500) Tact=1500; Tinact=10000- Tact; Tact_anterior=Tact; error_anterior=error;

Donde Tact representa u(k); Tact_anterior, u(k-1); error, e(k); error_anterior, e(k-1); periodoPulso, y(k) y periodoReferencia representa r(k). Es importante entender que la velocidad del motor se mide indirectamente por medio del perodo de los pulsos provenientes del encoder. Por esta razn, el error se define como periodoPulso-periodoReferencia (y(k)-r(k)) y no como periodoReferencia-periodoPulso, ya que si el motor est girando a una velocidad menor que la deseada, el error debe ser positivo (periodoPulso mayor a periodoReferencia) y la actuacin debe aumentarse.
SISTEMAS DIGITALES

14

PROYECTO FINAL: Control de motor CC

5.1.3. Rutina de interrupcin del capturador de entrada. La rutina de interrupcin del capturador de entrada (TIC3) es la encargada de calcular la velocidad del motor por medio del perodo de los pulsos del encoder.
@interrupt Velocidad(void) { if(tiempoInicial!=0) { periodoPulso=TIC3- tiempoInicial; tiempoInicial=0; TMSK1=TMSK1 & 0xFE; } else { tiempoInicial=TIC3; } TFLG1=0x01; }

Como muestra el cdigo, una vez que se ha calculado un perodo, se deshabilita la interrupcin por TIC3 para que los pulsos que continan llegando al capturador no interrumpan innecesariamente. Esta interrupcin ser habilitada luego en la rutina de interrupcin del TOC2. 5.2. Programa de la PC. Como se mencion, el programa que se ejecutar en la PC est hecho en lenguaje Visual Basic (versin 6.0) y constituye lo que denominamos la interfaz. Dicho programa utiliza funciones de Win32 para el manejo del puerto serie y para realizar mtodos grficos. Por esta razn, solo puede correr en Windows 98, 2000 o XP. Como se ha comentado, la interfaz permite establecer una comunicacin entre el usuario y el control del motor contenido en el microcontrolador. Bsicamente, desde la interfaz se envan actuaciones (ciclo de trabajo) o referencias (velocidad) y se recibe la velocidad real del motor medida por el HC11F1. Su aspecto es el siguiente:

SISTEMAS DIGITALES

15

PROYECTO FINAL: Control de motor CC

Uno de los aspectos importantes de este programa es la manera en que se lleva a cabo la comunicacin. Para ello, se utiliza un control MSComm que es el encargado de escribir en el puerto serie lo que la interfaz desee y es el que transfiere a la interfaz los bytes que se reciben. Sus propiedades son las siguientes: Como se puede ver en la figura, se setea la veloci-dad de transmisin a 9600 baudios, caracteres de 8 bit y sin paridad. Las propiedades que resaltan son: DTREnable (=True): cuando se reciben cierta cantidad de bytes, hace que se transfiera automticamente el control del programa a una subrutina de recepcin. InBufferSize: establece el tamao del buffer de entrada, y como en esta comunicacin siempre se reciben dos bytes se setea con 2. OutBufferSize: establece el tamao del buffer de salida, y se debe setear con 1 ya que el HC11F1 tiene un buffer de entrada de 1 byte. Rthreshold: establece el nmero de bytes necesario en el buffer de entrada para que se ejecute la rutina de recepcin de bytes. Se setea con 2 para que slo se lea el buffer de entrada si hay dos bytes recibidos.
SISTEMAS DIGITALES

16

PROYECTO FINAL: Control de motor CC

InputMode: se le asigna 0 para tratar el buffer de entrada como una cadena. Otro aspecto significativo de este programa es el uso del control timer. Particularmente, se lo utiliza para establecer un tiempo de espera a la respuesta del microcontrolador cuando se enva un caracter de inicio (250) desde la interfaz. Tambin se hace uso del timer cuando se observa la respuesta al escaln: prime-ro, se programan entre dos y tres segundos de espera mientras el motor se detie-ne; luego se programan 3 segundos para establecer un tiempo de observacin y registro (en archivo) de la evolucin de la velocidad del motor ante una entrada escaln. El registro de la respuesta al escaln se almacena en un archivo de texto llamado respuesta al escalon.txt, ubicado en la misma carpeta donde se encuentra el cdigo de la interfaz. En este archivo se guardan cada una de las velocidades (en RPM) enviadas por el microcontrolador cada 20ms durante los 3 segndos que dura el ensayo. Para la transmisin de nmeros enteros (dos bytes) se emplea el siguiente algoritmo:
byteEnviado = Int(numeroEntero/256) Se extrae el byte ms significativo MSComm1.Output = Chr(byteEnviado) Se enva el byte ms significativo Do: retardo = retardo + 1: Loop While retardo < 10000 byteEnviado = numeroEntero 256 * byteEnviado Se extrae el byte menos MSComm1.Output = Chr(byteEnviado) Se enva el byte menos significativo

Donde la funcin Chr, toma el caracter asignado en el cdigo ascii para el valor de byteEnviado y lo inserta en una cadena. Por ejemplo, si se desea enviar el nmero 9510, primero se enva el byte ms significativo, 37 (9500/256, caracter %), y luego el byte menos significativo, 38 (9500-256*37, caracter &). Para la recepcin de enteros se ejecuta el siguiente algoritmo:
cadenaRecibida = MSComm1.Input Se reciben 2 bytes longAuxiliar = Asc(Left(cadenaRecibida,1)) numeroEntero = 256 * longAuxiliar + Asc(Right(cadenaRecibida,1))

Donde Asc devuelve el cdigo ascii del primer caracter de una cadena y Left y Right devuelven una cadena que contiene N caracteres consecutivos comenzando por el principio y final, respectivamente, de una cadena dada. Por ejemplo, si se recibe la cadena 7}, primero se extrae el byte ms significativo, 55 (Asc(Left(7},1)), ascii 55=7), luego se extrae el menos significativo, 125 (Asc(Right(7},1)), ascii 125=}) y por ltimo se obtiene el nmero entero recibido haciendo el clculo 55*256+125=14205.

5.3 ARCHIVOS QUE CONSTITUYEN EL SOFTWARE.

SISTEMAS DIGITALES

17

PROYECTO FINAL: Control de motor CC

A continuacin se detallarn todos los archivos que forman parte del software de este proyecto.

Programa de la PC

Programa del micro

Ubicados dentro de

Ubicados dentro de

6. RELEVANCIA DE CARACTERSTICAS. Uno de los problemas encontrados al estudiar el motor CC es su rpida reaccin. Su velocidad se estabilizaba en tiempos muy breves, alrededor de 250 milisegundos, ante escalones de entrada, lo que demandaba un especial cuidado. Como primera medida, se utiliz el acumulador de pulsos para medir la velocidad del motor, o sea, se contaban la cantidad de pulsos que ocurran cada 132milisegundos y as se tena una idea de la velocidad; pero el hecho de que el motor alcanzara una velocidad estable en menos de 250 milisegundos haca que la cantidad de muestras (2 o 3) de su respuesta fuera inadmisible para la identificacin de la planta, relevancia de caractersticas, desarrollo del control y observacin grfica de dicha respuesta. Luego, se redujo a 20 milisegundos el tiempo en el que se contaban los pulsos para obtener ms muestras durante la reaccin del motor ante entradas del tipo escaln. Se logr un mejor detalle de la respuesta (alrededor de 10 muestras) pero con prdida de resolucin o exactitud en la me-dicin de la velocidad, ya que en 20
SISTEMAS DIGITALES

18

PROYECTO FINAL: Control de motor CC

milisegundos se contaban como mximo 12 pulsos. Finalmente, se opt por la medicin del tiempo entre flancos positivos de los pulsos del encoder. Con este mtodo se tenan resoluciones muy altas a bajas velocidades y ms que aceptables a altas velocidades. Restringiendo la veloci-dad de funcionamiento del motor entre 1500 y 4500 RPM, se obtenan periodos comprendidos entre 1000 y 300 incrementos del freerunning, respectivamente. Otro aspecto a tener en cuenta fue la presencia de un coeficiente de roce esttico elevado debido a la friccin interna del motor y a la friccin del eje del motor con el eje del encoder. Para que los efectos de estos roces no perturben considerablemente los ensayos y el funcionamiento, se fij una velocidad mnima (1500 RPM) y un ciclo de trabajo mnimo (20%). Por debajo de estos valores, el motor presenta oscilaciones e incertidumbre en su velocidad. Teniendo en cuenta lo anterior, se realiz el siguiente ensayo a lazo abierto: primero, se envi un ciclo de trabajo de 20% (1 volt de tensin) para que el motor venciera el roce esttico comentado y alcanzara una velocidad estable; alrededor de 2 segundos despus, se envi un ciclo de trabajo de 85% (4.25 volts de tensin) y se comenzaron a registrar las velocidades enviadas por el micro hasta los 3 segundos posteriores. Luego, y con la ayuda de MatLab, se utilizaron las muestras obtenidas (guardadas en el archivo respuesta al escalon.txt) del ensayo para construir el siguiente grfico:

SISTEMAS DIGITALES

19

PROYECTO FINAL: Control de motor CC

7. CONCLUSIONES. La utilizacin del ambiente IDEA y el lenguaje C facilita en gran medi-da la programacin del microcontrolador HC11F1. La experiencia de aplicar un control sobre una planta real ofrece el cono-cimiento de muchas cosas que difcilmente se pueden advertir durante el modelado de la planta y el posterior desarrollo terico de su control. La medicin de la velocidad de un motor con un encoder puede traer mu-chas complicaciones. El microcontrolador HC11F1 no es apto para aquellas aplicaciones que u-tilicen interrupciones externas muy frecuentes (cada 500microsegundos).

SISTEMAS DIGITALES

20

Вам также может понравиться