Levitación magnética utilizando sensores de efecto Hall lineal [cerrado]

-2

Estoy haciendo un proyecto de levitación magnética como este.

Tengo dos sensores de sala lineales que me darán la posición del imán de levitación. He establecido una posición específica del objeto magnético al leer la salida diferencial de los sensores en esa posición. Después de eso, calculo el error y ejecuto el algoritmo de control PID para producir una señal que irá al puente h que amplificará la señal y proporcionará suministro al electroimán según la señal de control. La señal de control será más grande si el imán flotante será demasiado lejos y más pequeño si es demasiado neer. Pero no puedo levitar un objeto.  Alguien hizo esto? Por favor ven y ayúdame. Proporcionaré más detalles si es necesario.

enlace

    
pregunta Waseem Usman

1 respuesta

4

Lo he hecho con éxito, pero con un solo sensor de efecto de hall lineal. Utilicé un esquema de detección de posición en el que la intensidad de campo del imán que estaba siendo levitado se muestreaba sincrónicamente con el electroimán PWM, de tal manera que las mediciones se tomaron solo cuando la corriente del electroimán había descendido a cero.

Esto puede ser difícil de programar con el entorno arduino, pero usar el compilador AVR-GCC simple es trivial para activar una interrupción para el muestreo de ADC un poco antes del final de cada ciclo de PWM.

El sensor se montó directamente en la parte inferior del electroimán. La alimentación de las muestras de intensidad de campo directamente a un controlador PID no es óptima, ya que las lecturas no se correlacionan linealmente con la distancia. Así calculé una estimación de distancia con una curva de linealización de 10 puntos.

Actualización:

  

1-¿Cómo podemos detectar el flanco descendente de PWM utilizando una interrupción interna?

Utiliza el temporizador / contador 1 en el modo PWM rápido, configure la unidad de comparación de salida A para generar la forma de onda de PWM y establezca la unidad de comparación de salida B para generar una interrupción unos pocos ciclos antes de que el temporizador se desborde (y comienza el siguiente pulso de PWM ). Usted escribe un controlador de interrupción que responde a esa interrupción al iniciar una conversión de ADC.

  

2-Qué tipo de estrategia de control usaste, es decir, PID u otra cosa.

Un solo bucle de control PID.

  

3-¿Cómo podemos estimar la distancia con la curva de linealización?

3) Mueve el imán a una distancia conocida, escribe la salida del ADC, acerca el imán 1 mm más cerca, escribe la salida y repite hasta que hayas cubierto todo el rango de levitación. Luego, en su programa, encontrará los dos valores conocidos más cercanos a la lectura de ADC, e interpola linealmente entre los dos para estimar la distancia en ese rango.

    
respondido por el jms

Lea otras preguntas en las etiquetas