Frenado de un motor comandado por un IC H-bridge

0

En primer lugar, algunas premisas del diseño están relacionadas con la alta velocidad necesaria (el máximo posible) y el punto de parada preciso. El motor se alimenta a un máximo de 40 V y consume a un funcionamiento normal de 1,5 A. Debido a esto, confié en el L6203 , que al principio parece una buena opción.

La máquina funciona en un ciclo que avanza y luego retrocede. Debe hacerse en el menor tiempo posible a menos que el usuario seleccione una velocidad más baja. También tiene que detenerse cada vez en aproximadamente el mismo punto (elegido por el usuario). Algunas pruebas nos mostraron la gran variación a la velocidad en diferentes condiciones, como la temperatura, el nivel de voltaje en la red o las diferencias mecánicas. Debido a los requisitos de velocidad y porque no hay un excedente aceptable (la máquina no puede retroceder mientras se ejecuta un comando de avance), he descartado un implemento de un PID u otro control simple. La máquina conoce el punto de parada por un codificador óptico y se está comportando bien (el problema es realmente las variaciones en la velocidad).

Incluso si no se detiene como se desea, se valida la robustez. La máquina se está probando en varias semanas, a veces las 24 horas del día y no mostró ningún problema preocupante, incluso sin ningún ventilador conectado al L6203. Ha funcionado en una rutina continua desde el viernes hasta casi ahora.

Creo que la forma más fácil de detenerlo es con un freno electrónico. Pero el L6203 aparentemente no permite esta función (ya busqué Appnotes, releí DS y busqué en un montón de sitios). Más allá de esto, creo que el L6203 tiene algunos problemas con respecto a dI / dT, porque al inicio del proyecto se rompieron algunos puentes, resueltos por un mayor retraso entre la inversión de dirección.

Entonces, para frenarlo, he creado un PCB auxiliar y he hecho modificaciones menores en el código de la unidad de usuario. La PCB consiste en un TRIAC que se dispara cuando A y B son 0 (NOR transistorizado) cerrando un bucle y frenando el motor. Para evitar daños en el L6203, he programado enviar 0 a su puerto de habilitación justo antes de enviar 0 a ambas direcciones (así que estoy seguro de que el L6203 está apagado cuando el motor está frenando). Además, para evitar volver a encenderlo mientras el motor está en cortocircuito, tiene un retraso entre el disparo en alguna dirección y habilita el L6203 (así que estoy seguro de que el freno se corta antes de que el L6203 se vuelva a habilitar).

El amortiguador, aunque retrasa un poco el freno, se agregó para limitar el dI / dT (una especificación crítica en triacs).

Mi último L6203 se ha quemado por un error durante la prueba con el tablero de frenos. Creo que debido a un error al conectar el comando (A y B). Así que no puedo probarlo antes del jueves.

Las preguntas son:

  1. ¿El TRIAC (precisamente el BT139-800E) proporciona una operación confiable en este diseño?

  2. ¿Existe alguna forma más sencilla (y más económica) de frenar el motor mientras se usa el L6203?

  3. ¿Hay algún otro problema con todo lo que he descrito anteriormente?

Si es necesario, también puedo cargar el esquema completo o el código.

    
pregunta Pedro Quadros

2 respuestas

0

Aunque el L6203 presenta la función de freno, no fue adecuado para esta aplicación. Tuvo dificultades para frenar porque estaba subestimado para este proyecto. Incluso la manera TRIAC funciona, no estaba bien adaptada también. Los TRIAC tienen un problema importante al cambiar las cargas inductivas o capitivas debido a sus limitaciones de dI / dt y dV / dt, que apenas pueden reducir su vida útil. Otro problema fue el costo. La construcción de este circuito adicional hace que todo el diseño sea costoso que el rediseño del puente en H. El puente H, debido a la disponibilidad limitada en mi ciudad, ahora está sobrevalorado y también usa CMOS. Como era de esperar, solo funcionó bien el frenado, sin ningún tipo de control más allá del encendido / apagado. El sistema de posicionamiento tiene una precisión realmente buena, con un error que no varía más allá de + - 5 mm que el punto de ajuste definido.

El diseño resultante está muy cerca del esquema a continuación. Los mosfets, por ejemplo, no eran esos, sino algunos con especificaciones un poco más altas. Debido a que los Rds bajos están trabajando muy fríos, incluso en la operación de cambio de velocidad más alta (baja velocidad). Además, aunque no se mostró en el esquema, hay dos diodos de velocidad ultra alta que conectan los terminales del motor a tierra.

Lo siento por la publicación probablemente estúpida, pero fue mi primer proyecto controlando un motor y mi segundo diseño desde que me gradué. Pero ciertamente me enseñó mucho.

    
respondido por el Pedro Quadros
1

Su circuito TRIAC parece que debería funcionar bien, sin embargo, no debería ser necesario porque el L6203 frena automáticamente el motor cuando ambas entradas son altas o bajas (y ENABLE está activo). Si aplica PWM a través de IN1 o IN2, entonces funciona en modo de Rectificación Sincrónica (llamado 'corte de una fase' en la hoja de datos) y el motor frenará dinámicamente cada vez que esté funcionando más rápido que la velocidad establecida. Simplemente al reducir el PWM al 0% se aplicará el frenado máximo.

La resistencia del freno está limitada por la resistencia del circuito de frenado. En el L6203, dos FET están en serie, por lo que la resistencia total de frenado es de aproximadamente 0.6 & ohm; (0,3 & ohm; por FET). Para ser efectivo, tiene que ser mucho más bajo que la resistencia interna del motor (que supongo que es de aproximadamente 10 & ohm; para un motor que normalmente consume 1.5A a 40 V). Si la resistencia del motor es demasiado baja, la corriente de frenado podría exceder la capacidad del conductor y se requeriría un circuito de freno externo. sin embargo, la corriente de frenado normalmente no irá más alta que la corriente de arranque, por lo que si el L6203 puede arrancar su motor sin estar sobrecargado, también debería poder detenerlo.

Si no usa PID y simplemente detiene el motor cuando el codificador óptico alcanza una posición particular, pasará por el punto de parada (no puede evitar que esto suceda porque el par de frenado del motor es limitado, por lo que no puede detener al instante). Para detenerse en un punto preciso, debe comenzar a frenar antes para que llegue allí.

Exactamente cuando necesita comenzar a frenar depende de la velocidad del motor y la carga mecánica en él. El sensor óptico le indica qué tan rápido está y el consumo de corriente o PWM requerido para obtener esa velocidad le da una idea de qué carga se aplica. Con esta información, puede ajustar el punto de frenado para que coincida con los tiempos de parada conocidos en esas condiciones, ya sea calculando en tiempo real o utilizando una tabla de búsqueda de valores predeterminados.

    
respondido por el Bruce Abbott

Lea otras preguntas en las etiquetas