Desarrollo del software de control.Una vez que la zona de control de la placa de pruebas ya funciona, y los micro-controladores reaccionan correctamente, pasamos a implementar el software de control.
Aprovecharé parte del código fuente del tacómetro que desarrollamos en otro hilo, para gestionar esta funcionalidad.
Además, existen otros puntos críticos en este software, que me llevará tiempo poner a punto:
PWM a elevada frecuencia.Los micro-controladores usados en este proyecto son chips ATMega328. En su configuración por defecto para el Arduino Uno, prevé una frecuencia de PWM de 490Hz, es decir, baja.
Como recordamos, la placa rectifica la señal de la red eléctrica (230v), para luego filtrarla y obtener una continua pura (de más de 300v), con la que alimentar al IGBT. Este dispositivo trocea la continua para obtener una continua de valor variable (en función del troceo que se haga). La velocidad a la que trocea es la de la salida PWM del micro-controlador, ya que es esta salida la que controla el IGBT, encendiendo y apagando este dispositivo.
Nosotros queremos trocear la continua a elevada frecuencia, tanto como permita el IGBT, y el circuito de control. Por ello, necesitamos una señal PWM de frecuencia elevada.
He buceado por diferente documentación y ejemplos en Internet, etc. para ver la forma de cambiar la configuración por defecto del chip ATMega328, y hacer que su frecuencia PWM sea más elevada. Por fin, parece que ya tengo en código fuente que necesito, aunque todavía no lo he probado. Es posible subir la frecuencia a varios KHz.
¿Que ventaja tiene esta forma de trabajar?En los rectificadores convencionales, de puentes controlados de tiristores, etc. se trabaja con una señal de 50 Hz, que se rectifica y trocea, obteniéndose una señal de 100Hz pulsante. En sistemas trifásicos esto no tiene tanta importancia, debido al solape de las semiondas, pero en monofásica, hay grandes pulsos de tensión que es necesario filtrar, o de otra forma, el motor se verá sometido a fuertes impulsos.
En el sistema presentado, el filtrado previo al troceado facilita obtener una continua muy pura. A continuación se trocea a
elevada frecuencia, digamos que 10000 veces por segundo (10KHz) en vez de trabajar con señales del orden de 50--100 Hz de los rectificadores convencionales.
Esta frecuencia tan alta hace que la corriente por el motor permanezca casi constante. Efectivamente, durante la conducción del IGBT la corriente se cierra por este componente, y al conmutar al corte, la corriente se cerrará por el diodo de libre circulación. Como la inductancia del motor es de algún mili Henrio, es suficiente para mantener la corriente constante, durante el cortísimo tiempo en el que el IGBT no conduce.
La consecuencia de esta corriente constante es que el campo aplicado a las chapas del motor es constante, por lo que no vibrarán. Por tanto,
el motor tendrá una marcha muy silenciosa y suave.
Bus SPI.Necesitamos que los dos microcontroladores se comuniquen entre sí. Principalmente, para que el micro de mando le envíe órdenes al micro de potencia, que genera la señal pwm que dispara al IGBT. La principal orden que ha de pasarle el de mando al de potencia, es la velocidad a la que ha de llevar al motor de la máquina. Pero la comunicación ha de ser, en realidad, bidireccional, para que el micro de potencia le pueda pasar al de control información sobre errores de funcionamiento sobre los que hay que informar en la pantalla de usuario, o información en tiempo real sobre la corriente consumida.
Para ello, empleamos una comunicación a través de un bus SPI.
Ya lo tengo en funcionamiento, aunque de manera muy rudimentaria. Pero ya he comprobado que funciona en ambos sentidos, que es lo que más me preocupaba, ya que no hay demasiada información detallada sobre su programación en chips ATMega328.
Esta es una descripción interesante del bus:
http://es.wikipedia.org/wiki/Serial_Peripheral_InterfaceBucle de regulación PI.Será la última fase, cuando el resto del código funcione.
Esta parte del código fuente se encarga de llevar y mantener la velocidad del motor a la velocidad solicitada, ya sea por el potenciómetro de mando manual, como por la entrada de control CNC.
Efectivamente, cuando el motor esté girando a cierta velocidad, y el torno o la fresadora comience a cortar material, la velocidad de la máquina tenderá a disminuir, por el esfuerzo. El lazo de realimentación PI se encargará de realizar las tareas necesarias para compensar esta pérdida de velocidad, y devolverla a su valor correcto.