Problemas con el convertidor Boost

0

Estoy teniendo problemas con un convertidor boost que hice: genera 1.2V sin carga y 2.4 con uno. Espero dibujar 0.25 amperios MAX con aproximadamente 0.2 amperios continuos. Mi paquete de baterías es 2P2S NiMH con celdas con capacidad de 2.4AmH

Código:

byte val=127;

void setup()
{
  analogReference(INTERNAL1V1);
  pinMode(A3,INPUT);
  pinMode(4,OUTPUT);
  analogWrite(4,val);
}

void loop()
{
  if(analogRead(A3)>512)
  {
    val-=1;
    analogWrite(4,val);
  }
  else if(analogRead(A3)<512)
  {
    val+=1;
    analogWrite(4,val);
  }
//endif
  delay(1);
}

Esquema:

simular este circuito : esquema creado usando CircuitLab

No, no compraré algo del yo. Quiero aprender mis errores y corregirlos.

    
pregunta Alexander M

3 respuestas

2

"Quiero aprender mis errores y corregirlos".

Ok, comienza con el código. No he usado un AtTiny, pero hay algunas cosas que se destacan y deben ser consideradas.

  • ¿Qué inicia el bucle? ¿Se acaba de correr? Por lo general, es mejor iniciar el bucle desde una interrupción del temporizador PWM. De esa manera, se lee el ADC y el valor de PWM se actualiza una vez por ciclo de PWM. Si se ejecuta el bucle libre, no será sincrónico con el PWM, y puede que ni siquiera sea consistente si hay otros procesos en curso.

  • ¿Cuál es la frecuencia PWM? ¿Es 8MHz / 256, o ~ 32KHz? Digamos que es 32kHz. ¿Cuál es el tiempo de conversión del ADC? puede soportar 32kHz?

  • ¿Qué sucede con la salida de control PWM si la variable val es menor que 0 o mayor que 255? Los acumuladores integradores tienen que estar limitados.

  • ¿Qué sucede si AnalogRead () es igual a 512? ¿Eso es manejado implícitamente por la declaración IF como un noop? Si es así, ¿realmente quieres un punto muerto en el integrador?

  • El integrador puede cambiar el control PWM en cada punto de muestra, lo que significa que tendrá demasiada ganancia. Los integradores en bucles como este necesitan un factor de escala que efectivamente será menor que 1, o una división. Eso también significa que cada contribución de integrador por muestra terminará siendo una fracción. ¿Cómo manejas sumas de cantidades que son cada una menos de 1?

  • ¿AtTiny tiene un multiplicador de hardware? Si no es así, ¿va a multiplicar / dividir por el cambio a la izquierda / a la derecha o al algoritmo de software?

Los convertidores Boost pueden ser muy difíciles de controlar. Con un inductor de 470uH, la operación será en modo de conducción continua (CCM). En CCM hay 2 polos complejos y un plano medio cero. Cualquiera de estos hará que el control sea inestable si no se compensa adecuadamente. Como parece que no está familiarizado con la teoría del control, tal vez no debería usar un integrador, tal vez sería mejor el control histérico o de golpes. Estos tipos de control no controlan tan estrechamente como un PI, pero son simples y un AtTiny probablemente podría respaldarlos. Primero, establezca el PWM en un ciclo de trabajo fijo del 50% (tendrá que experimentar para obtener un ciclo de trabajo viable). Luego, cada ciclo verifica si Vo es mayor que un valor establecido. Si Vo es mayor que el punto de ajuste, no emita un impulso en el siguiente ciclo. Si Vo es menor o igual que el punto de ajuste, entonces apague el próximo ciclo. Además, para un control de impacto, se necesitará un valor menor para L1 para operar en modo de conducción discontinua (DCM). El control de impacto no funcionará con el CCM ya que el filtro Q estará alto y la salida sonará.

Boost

Dado que un impulso tiene una ruta directa desde la batería a través de L1 y D1 hasta la salida, incluso si Q1 nunca cambia, la salida no será menor que ~ 1.8V (es decir, Vin - 0.6v). Es difícil imaginar lo que podría causar una salida de 1.2 V sin carga. Pero, casi todas las partes que está utilizando tienen un problema.

  • ¿Cuál es la resistencia de L1, también la corriente de saturación y la frecuencia de resonancia propia? Con L1 de 470uH y C2 de 1 mF, a menos que la resistencia de L1 sea de al menos 0,5 ohmios, el filtro de salida Q será superior a 5, muy estridente. También a 0,5 ohmios, L1 disipará ~ 125 mW con Io de .25A. Para la operación de DCM de todos modos se necesitará un inductor más pequeño. El límite CCM / DCM se puede usar para encontrar un límite superior para L1 en la operación DCM.

    L1 < \ $ \ frac {V_o} {16 i _ {\ text {crit}} f_s} \ $ o \ $ \ frac {\ text {5V}} {\ text {(0.25A)} \ text {(16)} \ texto {(30kHz)}} \ $ = 38uH

  • Q1 solo se controla con ~ 2mA, pero solo tiene \ $ \ beta \ $ de ~ 20. Nunca cambiará la corriente necesaria con ese tipo de unidad. Sería mejor cambiar a un nivel lógico FET.

  • D1 necesita ser un diodo de conmutación y un schottky sería mejor. Algo así como un 1N5818 funcionaría.

  • Debe agregarse un zener de 5.6V en \ $ V_o \ $ para evitar que se produzca un exceso de voltaje.

Si va a diseñar un Boost, debe leer " Descripción de las etapas de potencia de Boost ".

    
respondido por el gsills
1

TL / DR: esto nunca funcionará

Así es como lo aprendería: 1. Ejecútelo en un ciclo abierto con un ciclo de trabajo inicial del 50% con una carga de ~ 1K en la frecuencia PWM más alta posible de su micro. El 50% de servicio lo acercará a la proporción necesaria sin mucho esfuerzo, solo necesita saber cómo se calcula el ciclo de trabajo. Ver esto - > enlace . Intente alcanzar su corriente de carga deseada sustituyendo resistencias. Si no tiene éxito, calcule la inductancia necesaria para su frecuencia, sustitúyala (desea una corriente de rizado del orden del 10-20%). Es posible que deba sustituir micro por uno con PWM más rápido: el código que está utilizando se ejecuta a 500Hz, lo que para su corriente requeriría un inductor mucho más grande. Cuando tenga éxito, vaya al siguiente paso.

  1. Lea la nota 1467 de Microchip. De ella, aprenda cómo codificar PID en micros pequeños, y también que este tipo de convertidor solo es lo suficientemente rápido para cargar baterías, lo que no parece ser su objetivo.
respondido por el Oleg Mazurov
0

Primero que nada, siempre ten una carga.

Si el voltaje de salida es el mismo que el voltaje de entrada, puede significar que su ciclo de trabajo está bajando a cero. ¿Intentaste comenzar con un ciclo de trabajo fijo del 50%? ¿Con qué ciclo de trabajo terminas? ¿Cuál es su frecuencia de conmutación? Realmente necesitas un ámbito para depurar esto, o al menos un depurador.

Los convertidores de conmutación no son triviales. Es posible que vea si puede encontrar una biblioteca de control existente. Probablemente sería más confiable que rodar los tuyos.

    
respondido por el Adam Haun

Lea otras preguntas en las etiquetas