Controlando un electroimán usando un microcontrolador

2

Mi pregunta se deriva de esta aquí: Controlando un electroimán con arduino

Background

Estoy trabajando en el problema clásico de los sistemas de control de levitación magnética. Tengo un electroimán 10N (150 mH, 40 ohmios) que se utilizará para levitar una bola de acero. Usaré un sensor óptico de tiempo de vuelo para determinar la posición de las bolas. Planeo ir más allá del típico problema de levitación magnética de la licenciatura permitiendo que el punto de ajuste (altura de la bola) se modifique sobre la marcha, similar a este video .

Tomé un curso de sistemas de control no lineal en la escuela de posgrado, así que estoy consciente de que este es un problema difícil. Sin embargo, nunca fuimos más allá de la teoría, así que pensé que este sería un problema divertido para ampliar mi aprendizaje.

El problema

El sistema de control que obtuve espera que la variable de entrada (la tensión aplicada al electroimán) sea una tensión continua que varía continuamente. He estado buscando usar un DAC, pero son relativamente caros y no parecen estar diseñados para aplicaciones de energía. PWM parece ser el camino a seguir, pero estoy luchando por encontrar una manera de modelar el sistema PWM; una onda cuadrada no es matemáticamente amigable.

La pregunta

¿Cuál es la mejor solución para el problema: usar algo como un DAC o PWM? Necesito crear una señal de control precisa y de acción rápida (< 1ms delay).

Si PWM es la mejor solución, ¿cómo lo modelaría en un sistema de control?

    
pregunta dgreenheck

3 respuestas

2

En lugar de tener que modelar los efectos de PWM en la levitación, puede ejecutar el PWM a una tasa mucho más alta que la crítica, ya sea

  • Filtrar a DC.
    Esto puede conducir un controlador FET por ejemplo. O

  • Envíe PWM sin filtrar a FET y accione el inductor con diodo de recirculación cuando FET esté apagado.
    Esto ahora se convierte en un convertidor de dólar. El cambio de PWM% cambia la corriente del inductor.
    Puedes agregar una resistencia sensorial y medir la corriente.
    Con el diseño adecuado, la resistencia sensorial puede tener un extremo conectado a tierra, lo que permite una fácil medición con el ADC del microcontrolador.

por ejemplo, M1 es un MOSFET de canal alto P canal. Si el suministro del inductor es el mismo que el suministro del microcontrolador (que no suele ser el caso, la compuerta se puede accionar a los niveles de voltaje del microcontrolador. Si, por ejemplo, mc tiene un suministro de 5 V y el inductor dice que el suministro de 12 V, se necesita un controlador de cambio de nivel. se puede lograr se puede discutir si esta es la ruta tomada. D1 permite la "recirculación" actual cuando el MOSFET está desactivado.
R1 permite la detección de corriente.
Dependiendo de la resistencia del inductor, puede ser deseable proporcionar una pérdida adicional en la trayectoria de recirculación para permitir una caída más rápida del campo para mejorar los tiempos de respuesta de control. O no.

simular este circuito : esquema creado usando CircuitLab

respondido por el Russell McMahon
1

Un punto de PWM es que los pulsos individuales son tan cortos que la cosa que se está controlando solo ve el valor promedio. Esto ciertamente se aplica en su caso también. Los pulsos de PWM individuales son irrelevantes, solo importa el ciclo de trabajo (fracción de tiempo en el período de pulso total).

Este concepto se usa mucho en electrónica, por lo que casi todos los microcontroladores vienen con algún hardware que puede generar PWM. No dices qué tan rápido será tu bucle de control, así que tomaré una imagen de 1 kHz, lo que significa un período de control de 1 ms. Es un tiempo "largo" para un micro moderno.

Digamos que ejecutas el PWM a 25 kHz. Eso le da 25 pulsos por iteración de control, por lo que debería poder ver que los pulsos individuales son invisibles. El sistema reaccionará al ciclo de trabajo promedio en al menos 10s de pulsos. Digamos que desea al menos una resolución de nivel de unidad de 10 bits. Eso significa que necesita un poco más de 25 MHz de reloj en el generador PWM. Eso está disponible en muchos micros. Hay algunos dsPIC, por ejemplo, que tienen un PLL incorporado para sincronizar efectivamente un generador PWM especial a casi 1 GHz. La resolución PWM de 12 bits o más está disponible con una pequeña excavación.

El circuito es muy simple:

L1eselelectroimán,queseveenelcircuitocomoungraninductordegrasa.Silatensióndealimentaciónylacorrientemáximadelimánsonlosuficientementebajas,entoncespuedeusarunFETquesepuedecontrolardirectamentedesdeunasalidadigital.Delocontrario,useuncontroladorFET(nomostrado)entrelasalidadigitalylacompuertaFET.Estorequeriráunsuministroseparadode12Vomás.

Eldiodoesimportanteynoopcional.Paraobtenerlamejoreficienciaylarecuperacióndereversarápidamásrápidayactual,debeserunSchottky.NosolomantienelacorrientequecirculaatravésdelimándurantelafasededesactivacióndePWM,sinoquetambiénledaalacorrientederetrocesoinductivounlugaralqueiryevitaqueelQ1sefrenecuandoseapaga.

OtropuntoaconsiderareslarespuestanolinealdelciclodetrabajodePWMalaposicióndelaboladeacero.Elciclodetrabajoalacorrientedelimánserárazonablementelineal,perolacorrientedelimánalaposiciónnoloserá.Estohacequeseaimposiblesintonizarelbucledecontrolenlarespuestacorrectaenunrangodeposiciones,yaquelamismavariaciónenelciclodetrabajodePWMenunextremodelrangoproduceunarespuestamuchomáspequeñaqueenelotroextremo.

Unabuenasoluciónqueheusadoparaproblemassimilaresesusarunatabladebúsquedaparalinealizaraproximadamentela"planta" como se ve en el circuito de control. Mida un montón de puntos para que pueda relacionar el ciclo de trabajo PWM de bucle abierto con la posición de la bola. El bucle de control luego ajusta la posición deseada de la bola, que se busca en la tabla para encontrar el ciclo de trabajo de PWM que se escribirá en la iteración del hardware. Interpolar linealmente por tramos la tabla entre puntos. Esta es una operación trivial en comparación con los cálculos de control de punto flotante, que aún deberían ser posibles en menos de 1 ms.

    
respondido por el Olin Lathrop
1

Debería suponer que un controlador PWM agrega un retraso de tiempo a su ciclo de control. La mayoría de los PWM son un tipo de ciclo de trabajo variable de frecuencia fija. En este caso, el ancho del pulso se ve afectado solo después de el ciclo en curso. Por ejemplo, un período de PWM de 100 microsegundos introducirá un retraso de 100 uS en su bucle de control. Dado que los retrasos son a menudo mortales para la dinámica del bucle de control, es deseable una alta frecuencia de PWM. Un método PWM de frecuencia variable y ancho de pulso fijo puede eliminar este retraso, pero este método PWM es menos común.

Con PWM, se utiliza un suministro de voltaje fijo, en lugar del voltaje analógico aplicado variable en su solución propuesta. Una fuente de alimentación PWM de voltaje fijo pone un límite superior a la velocidad de cambio del electroimán debido a su inductancia (Vsupply = L di / dt) . Una mayor tensión de alimentación al conmutador PWM le permite cambiar la corriente del electroimán más rápidamente. Este límite se aplica a cualquier método PWM.

    
respondido por el glen_geek

Lea otras preguntas en las etiquetas