Diseño General de la solución

Elección del Condensador para el Filtrado del Bus de Continua.

Un punto muy importante en el diseño de esta placa, es determinar correctamente la capacidad que necesita tener el condensador de filtro de continua. (La placa recibe alterna, la rectifica, la filtra, y a continuación un IGBT la trocea para obtener una continua de valor variable).

En cargas que consuman mucho, como motores grandes, el C ha de ser mayor, pero si nos pasamos de tamaño, no podrá ser colocado en la placa, y deberá instalarse fuera, conectándolo a la placa mediante unas bornas. El problema es que esto añade inductancia al circuito de potencia. Y todo ello a su vez, limitado por la densidad de corriente máxima que admiten pistas de esa anchura, etc.




Varios C electrolíticos, de entre 680uF y 1500uF, de una tensión máxima de 400-450v.

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. 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_Interface

Bucle 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.

Arquitectura del software de control.

Lo primero que necesitamos definir es la Máquina de Estados que representa a nuestro torno o fresadora.

Básicamente, hay cinco Estados posibles:

  • Máquina parada.
  • Arranque Suave.
  • Régimen Nominal.
  • Maquina Trabada.(en general, sobrecargada)
  • Máquina Desconectada.(motor desconectado, pero placa alimentada)

Es muy importante, en aras de la calidad del software que vamos a desarrollar, hacer un esfuerzo en reducir el número de estados posibles, al mínimo.

Con estos cinco estados tenemos que definir todos los posibles flujos que nos lleven de un estado a otro, y las condiciones que han de cumplirse para que se pase de un estado al siguiente.

Primer ejemplo:

La máquina está en Régimen Nominal. Desde ahí puede pasar al estado de Máquina Trabada. La condición que habrá de cumplirse para pasar a ese nuevo estado es que la corriente medida por el sensor Hall sea mayor que un determinado valor.

Por ello, mientras estamos funcionando en régimen nominal, estaremos continuamente monitorizando la corriente por la carga. En cuanto pase de un valor, consideraré la máquina como trabada (en general, sobrecargada).

Segundo ejemplo:

Un razonamiento paralelo sirve para definir lo que ocurre al conectar la máquina a la red: Al aplicarse tensión estamos en el estado de Máquina Parada. Entonces se intenta leer el potenciómetro de velocidad. Si se obtiene una lectura correcta, entonces se pasa al estado siguiente, de Arranque Suave. Si se consigue llegar a la velocidad indicada por el potenciómetro, entonces pasamos al estado de Régimen Nominal.

y así con todas las posibles opciones. Es un poco pesado, pero no es difícil de hacer. Eso sí, hay que ser muy cuidadoso para no dejarse ninguna posibilidad sin tener en cuenta. En ese caso la máquina podría quedar en un estado no definido, y "fuera de control". Por ello, la propia arquitectura del software ha de ser robusta en si misma, y no permitir la permanencia en estados no definidos, si llegaran a darse.

Gráfico de una primera Maquina de Estados (Máquina de Moore).

Como se ve, la máquina no arranca hasta que el condensador del filtro está cargado. En ese momento se cierra un relé que cortocircuita la R por la que se carga el Condensador electrolítico, y ya se puede comenzar a funcionar.

(Esto es lo mismo que ocurre en los amplificadores de los equipos de música de cierta potencia: al dar al pulsador de conexión, al cabo de uno o dos segundos se oye un 'click' que indica que se ha activado un relé. Los condensadores del filtro de la fuente de alimentación se han cargado, y ya se puede empezar a funcionar).

A continuación se lee la velocidad deseada, ya sea por el potenciómetro de mando manual, o por la entrada prevista para el control CNC. Hay un interruptor que selecciona un modo u otro.

Leída la velocidad que hay que alcanzar, se realiza un bucle de incremento progresivo de la velocidad de giro, hasta lograr la velocidad de consigna (velocidad deseada).

Ahí se pasa a régimen permanente, vigilando constantemente el estado de la máquina.

Si en un momento dado, la máquina se traba, o se produce una gran sobrecarga, se espera X segundos a que el operario des-trabe la máquina. En caso de que transcurrido este tiempo, no se haya solucionado el problema, se pasa a velocidad cero y se intenta un arranque suave. (otra opción sería pasar a exigir un reinicio de la máquina... ya veremos cual dejo).








Nuestra primera Máquina de Estados.

Todo esto está muy bien, pero es una Máquina de Estados básica. Falta incluir el control PI para regular la velocidad cuando la máquina comienza a mecanizar, así como incluir el uso del sensor de corriente para monitorizar con mayor profundidad la máquina.

El sensor de corriente es el que más me preocupa en este momento. Todavía no he tenido tiempo de verificar si la corriente por la carga permanece suficientemente constante durante el régimen nominal, como para que la lectura del sensor sea fiable. Esto es así porque la U en la carga no es una tensión continua pura, sino que es el resultado de aplicar una tensión conmutada entre cero y 50v, a alta frecuencia (8KHz), y ciclo de trabajo ajustable por nosotros, que es lo que hace que varíe su valor medio.

Cuando la carga es resistiva, la corriente es un tren de pulsos igual al de la tensión, pero si es muy inductiva (como un motor), entonces -en teoría- la propia inductancia del motor ha de mantener la corriente bastante estable. Y este efecto funciona mejor cuando conmutamos a alta frecuencia, como nosotros, ya que el bobinado del motor, en cada conmutación, no llega a descargar toda su energía almacenada en forma de campo magnético.


Siguiente página ->

<-Página anterior