¿Cómo puedo reducir el ruido PWM de un motor de ventilador?

Construí una caja de ventilación que utiliza un motor soplador de un viejo Subaru Impreza 1996, que me regaló un mecánico amigable.

El volumen de flujo es asombroso, pero es demasiado ruidoso y demasiado potente. El motor consume un pico de aproximadamente 20 A al arrancar y luego funciona a 7 A a 12 V.

Pero cuando se usa PWM, el motor básicamente suena como un extraterrestre que grita, sin importar si el ciclo de trabajo es del 90 % o del 10 %. Estoy usando Arduino para enviar una señal pwm y un MOSFET IRF3205.

Probé una frecuencia baja (usando retraso y microsegundos de retraso, 10-1000 Hz) y alta frecuencia (usando un preescalador de 32 bits y 8 bits de Atmega328). Solo cambió el tono del sonido, pero aún era muy audible. El menos ruidoso estaba en la baja frecuencia, pero luego el motor era inestable.

¿Debo usar un capacitor o un inductor? (o ambos). No he trabajado con inductores antes. Y me imagino que el capacitor no servirá de mucho...

Vídeo: https://youtu.be/kHZ0b0wFjaw

esquemático

simular este circuito : esquema creado con CircuitLab

Código fuente:

digitalWrite(pin11, LOW);
delayMicroseconds(50);
digitalWrite(pin11, HIGH);
delayMicroseconds(100);
probaste con 20kHz?
No estoy seguro. Probé con delayMicroseconds con un ciclo de encendido/apagado por un total de 30-500 microsegundos, lo que debería dar 2-33 kHz. Cualquier cosa con un ciclo de encendido de menos de 50 microsegundos no encendía el motor en absoluto. Y todo lo anterior haría ruidos de gritos (ruidos agudos que cambiarían de frecuencia, tal vez debido a un pwm inestable)
Aquí hay un video, donde estoy probando las diferentes frecuencias, cambiando entre 100% mientras carga el programa y las diferentes configuraciones de prueba (30khz, 20khz, 10khz, etc.) youtu.be/kHZ0b0wFjaw
¿Código fuente, esquema?
Ahora he agregado el código y el esquema.
Bueno, estás agregando ráfagas de impulso a una parte mecánica, en el rango de audio. Es posible que tenga la base de un nuevo instrumento musical aquí,
D1 parece muy subdimensionado. Si el motor tarda 20 A en arrancar y aplica PWM incluso en la fase de arranque, el diodo debe poder transportar una corriente máxima de 20 A y una corriente directa promedio de 20 A multiplicada por el ciclo de trabajo del período de apagado, por lo que 2 A para 90 % a tiempo o 4A para 80% a tiempo. El efecto del diodo débil no será ruido, pero es probable que también falle con un cortocircuito y, con suerte, se activará una protección contra sobrecorriente (podría ser un fusible) antes de que se funda el FET.
El código fuente está incompleto. ¿Es este el único código en un ciclo sin fin y todas las interrupciones están deshabilitadas? De lo contrario, la señal PWM se distorsionará debido a las fluctuaciones de tiempo. Luego escuchará la frecuencia de la distorsión. ¿Y cómo conseguiste 30 kHz si el motor no funciona con un tiempo de funcionamiento inferior a 50 us?
Sobre el diodo, era todo lo que tenía, y la especificación decía 30A pico adelante. Pero lo reemplazaré por uno más poderoso. Sobre el código fuente: Sí, se repite. La señal PWM probablemente esté distorsionada debido a las fluctuaciones de tiempo. Sin embargo, según tengo entendido, esto simplemente significa que el ruido cambiará de frecuencia, como se ve en el video, pero no que mantener un PWM constante haría que el ruido desapareciera. A 30kHz, el motor hace un ruido muy agudo, casi inaudible, pero no se mueve.
@MichaelKarcher si está utilizando PWM para controlar la velocidad de giro del motor, por lo que no consumirá la corriente de arranque en los períodos de encendido. La corriente que consume se mediría mejor ya que hay demasiados factores para calcular fácilmente.

Respuestas (4)

Como la mayoría de los MOSFET de potencia, el IRF3205 tiene una gran capacitancia de puerta que debe cargarse y descargarse, lo que requiere alrededor de 50 nC de carga para encenderse correctamente. En su circuito, esta carga se filtra a través de R1, distorsionando su agradable onda cuadrada de 12V en un diente de sierra que se vuelve más pequeño a medida que aumenta la frecuencia PWM. Para obtener una buena forma de onda de la unidad Gate a 20 KHz, debe reducir R1 a aproximadamente 500 Ω (para cargar la puerta más rápido) y R2 y R3 a aproximadamente 1k (para garantizar que Q1 se encienda por completo).

El 1N4001 es un diodo rectificador de frecuencia de red con acción de conmutación lenta, no apto para PWM de alta frecuencia. Debe usar un diodo Schottky clasificado para al menos 3A continuos.

El software PWM creado con DelayMicroseconds()no es muy preciso ya que no tiene en cuenta la sobrecarga del bucle, por lo que la frecuencia de PWM será más baja de lo esperado. Además, no debe tener ningún código de interrupción en ejecución (por ejemplo, temporizador, serie) o la forma de onda PWM sufrirá fallas que podrían ser audibles. Si aún puedes escucharlo, ¡no son 20 KHz!

Con una buena unidad de puerta, un diodo de retorno rápido y PWM de 20 KHz verdadero, debería obtener un funcionamiento silencioso del motor.

Mucha gente puede escuchar 20kHz y no solo los niños. De todos modos, los armónicos mecánicos podrían funcionar fácilmente en una fracción entera de la frecuencia de la unidad y volver al rango de audición normal.
defina un "buen diodo" considerando que el mínimo de sobretensión de 8x no es solo un diodo rápido.
@Tony Stewart ejemplo 1N5821 3A promedio, 80A pico. Usado en mi 20A ESC bhabbott.net.nz/esc.html
Sí, ya veo, Bruce, pero tienes un interruptor de medio puente complementario con un diodo de abrazadera adicional que no transporta gran parte de la corriente del lado alto. Desafortunadamente, el Pch FET y el diodo 100m~150m freirían usando un ventilador PWM de velocidad variable con una tasa de 7A y 50~70A con un ciclo de trabajo del 10 % que comienza lento. con 50 2 150 metro Ω = 38 W El Nch es bueno.

Probé el mismo proyecto, pero en otra escala: traté de administrar la velocidad de rotación del culler de la computadora. Entonces, el secreto es que Arduino por defecto tiene baja frecuencia en su salida PWM. Eso provoca ruido, que se puede oír. Entonces, la decisión es establecer la frecuencia correcta directamente a través de los registros AVR. Entonces, eche un vistazo aquí: https://www.arduino.cc/en/Tutorial/SecretsOfArduinoPWM bajo el título "Uso de los registros ATmega PWM directamente".

De hecho, resultó que el ruido desapareció usando PWM de alta frecuencia.

En conclusión, señalo lo siguiente:

  • Utilizando el trabajo de Nick Gammon sobre temporizadores , pude obtener una frecuencia PWM que, según sus escritos, debería rondar los 25 kHz; esto hizo que el ruido desapareciera por completo

  • El voltaje de puerta del MOSFET debe poder cargarse/descargarse rápidamente; el MOSFET se calentaría mucho; usando resistencias más pequeñas (100 ohmios), el problema se redujo pero no se resolvió en algunos ciclos de trabajo (gracias @Bruce Abbott)

  • A frecuencias más altas, el motor no arrancaba, presumiblemente porque el MOSFET no se cargaba lo suficientemente rápido (me pregunto si sería posible usar dos transistores (NPN+PNP), para permitir una alternancia rápida y eficiente entre resistencia cero a tierra y resistencia cero a 12 V, lo que reduce la pérdida de calor y mejora la función del motor y permite una frecuencia PWM más alta)
  • Con el siguiente código fuente, logré un funcionamiento muy silencioso, con un pequeño flujo de aire, con una corriente de 1,3 A (que era lo que buscaba: un funcionamiento bajo y constante con un funcionamiento ocasional de alta potencia)

Código fuente:

#include <TimerHelpers.h>

const byte timer0OutputB = 5;

void setup() {
  pinMode (timer0OutputB, OUTPUT); 
  TIMSK0 = 0;  // no interrupts
  Timer0::setMode (7, Timer0::PRESCALE_64, Timer0::CLEAR_B_ON_COMPARE);
  OCR0A = 10;   // count to 4, zero-relative
  OCR0B = 5;   // duty cycle
}

Espero que no hayas usado el diodo 1N4001 de 1 Amp para sujetar un motor de 7 A. La corriente de sobretensión está más cerca de 8~10x o 70A máx. a partir de PWM.

Aunque puede manejar corrientes de pulsos cortos mucho más altas que 1A, generalmente es mejor igualar la clasificación de corriente del motor o más.

Los valores nominales del diodo de abrazadera y del interruptor PWM deben exceder AMBOS valores nominales de corriente de sobretensión del motor para evitar el sobrecalentamiento y un funcionamiento estable y eficiente para el control de velocidad.

Esto se debe a que el diodo conduce la corriente inductiva del motor mientras el transistor está APAGADO. Debe elegir un diodo >10 veces la corriente nominal del motor, ya que cada pulso a bajas velocidades estará a la altura de esta corriente de sobretensión. De lo contrario, se calentará mucho.

Sugeriría algo como este diodo de potencia automotriz. $4.19(1) ingrese la descripción de la imagen aquí- Pero es mejor observar la respuesta en un osciloscopio y luego determinar si el ruido es electromagnético-acústico o mecánico-acústico.

  • En el video, el ruido de las palas es excesivo y la resonancia del gabinete es evidente como un diseño de altavoz.
  • un mejor diseño coloca el ventilador en un conducto del horno en una ubicación remota para que no haya ruido de fricción en la interfaz ni corrientes de Foucault con la rejilla de ventilación

  • PFM con tiempos de retardo de 30-500 us, es una forma deficiente de controlar la velocidad del ventilador, aunque esto es útil para un regulador Boost SMPS, no para un controlador de velocidad de ventilador buck.

  • deberías estar usando PWM por encima de 20kHz. ig 21 ~ 22 Khz y verifique los efectos de aliasing con el ruido del ventilador, pero debe ser muy silencioso en una cámara plena.
¿Sería correcto suponer que sería posible colocar varios diodos en paralelo para aumentar la capacidad de corriente máxima?
sí, pero teniendo en cuenta la rentabilidad, no. considere la ESR del FET de qué 6mohm? y el ESR del 1N4001 es superior a 100-200 mOhms y compárelo eligiendo un medio puente complementario.
¿Cuáles son las temperaturas de su caja a media velocidad?