Simulación del control de posición y velocidad de un motor de corriente continua
Fecha
2013-06-12Autor
Imfeld, Santiago Gastón
Bravo, Gerardo Andrés
Cirera, Eduardo Alberto
Metadatos
Mostrar el registro completo del ítemResumen
El objetivo de este trabajo es presentar los avances obtenidos de la simulación del control de posición y velocidad de un motor de corriente continua utilizando un puente H como salida de potencia y un microcontrolador PIC 16F876A programado en lenguaje C.
Para poder controlar un motor de corriente continua, el microcontrolador utilizado es capaz de realizar tres tareas en simultáneo: La primera tarea es la de leer los pulsos que genera un encoder incremental, que en nuestro caso será una decodificación por software, y que esto se utilice para obtener la posición actual del motor; la segunda tarea consiste en asignar la posición a la que se quiere llegar mediante la lectura analógica de un potenciómetro y la tercera tarea es la de realizar un control proporcional del error entre la lectura de la posición del motor y la lectura del potenciómetro, actuando sobre el motor y deteniéndolo cuando el error sea pequeño y que cuando esto ocurra se apague un led advirtiendo que el motor se ha detenido.
Para la realización de la lectura del encoder por software se utiliza una interrupción externa, que en este caso fue la del puerto RB0/INT. Cuando ocurre una interrupción por flanco de subida se programa una interrupción activada por flanco de bajada y se incrementa un contador C en una unidad si el puerto RB1 tiene un 1 lógico. Si ocurre una interrupción por flanco de bajada se programa una interrupción por flanco de subida y se decrementa el contador C en una unidad si RB1 nos da un 1 lógico. Es decir que cuando ocurra la interrupción RB0/INT previamente programada (sea de subida o de bajada) se debe cumplir que en el puerto RB1 haya un 1 lógico. De esta forma se cuentan los pulsos de una forma sencilla y muy eficiente.
Una vez simulado el encoder, en la programación del microcontrolador se lee el valor de la entrada analógica del potenciómetro y se lo carga en una variable P, la cual representa el valor de la posición en la que se desea que el motor se detenga, y posteriormente se compara con el valor del contador de pulsos definido como C, que es el que brinda la posición actual del motor. Si el valor del contador C, es decir la posición actual del motor, es menor que la posición final dado por el valor de P, el motor debe girar en un sentido para intentar llegar a esa posición. Si por el contrario el valor del contador C es mayor al valor de P el motor debe girar en sentido inverso al anterior permitiendo que el motor alcance la ubicación final. Si el valor de C y el valor de P son iguales entonces el motor debe detenerse.
Se coloca un led en el circuito el cual permanece encendido cuando el motor gira, y se apaga si el motor se halla en la posición deseada. Se usa este led para verificar si el motor ha llegado a la ubicación dada.
Lo detallado fue simulado en el entorno de depuración y programación MPLAB IDE integrando al programa Proteus en el mismo, obteniendo como resultado el control básico de la posición de un motor de corriente continua. También se tuvo en cuenta la inercia que adquiere el motor al girar, la cual provoca que al llegar a la posición requerida el motor no se detenga exactamente donde se quiere, y se resolvió utilizando el módulo PWM que posee el PIC 16F876A seleccionado, haciendo que este se active cuando los valores de P y C se igualan, es decir cuando el motor ha llegado a la posición final. Al activarse el PWM se reduce la tensión de alimentación suministrada al motor en forma pulsante y esto origina una parada suave. Debido a que el proyecto aún sigue en curso se está trabajando en la implementación de un control PID y la intención es que esto se materialice para después utilizarlo como recurso didáctico.
Como es un trabajo de avance, los resultados obtenidos al momento son simulaciones del comportamiento del sistema, sin embargo, se concluye que a partir de estos resultados es factible la construcción de un prototipo didáctico para los ensayos de las distintas técnicas de control a implementar.









