¿Cuál es el método de medición de RPM adecuado?

1

Tengo un motor PMDC que se controla electrónicamente para la velocidad. Y es un sistema de circuito cerrado. Hay un sensor de proximidad para medir la velocidad del motor y hay 12 pernos unidos al eje del motor, de modo que cuando gira, el sensor de proximidad produce 12 pulsos por revolución. He escrito un código para medir las rpm en las que cuento los pulsos en un segundo y, por lo tanto, calculo la velocidad. Pero el problema es que podría obtener una resolución de 5 rpm solamente. ¿Hay alguna forma de obtener una resolución más alta como 1 rpm en este sistema sin cambiar la tecnología de retroalimentación?

    
pregunta raforanz

4 respuestas

5

A 500 rpm, el eje gira 8.3333 veces por segundo, por lo tanto, en 1 segundo cuenta: -

12 x 8.33333 pulsos = 100 pulsos

A 505 rpm, el eje gira 8.416667 veces por segundo, por lo tanto, en 1 segundo cuenta: -

12 x 8.41667 pulsos = 101 pulsos

Deseas una mayor resolución para que puedas agregar más pernos PERO para obtener una resolución de 1 rpm, necesitarás 5 x 12 pernos y eso suena poco práctico.

Puede realizar un conteo progresivo durante 5 segundos y cada segundo desechar el conteo más antiguo de 1 segundo e introducir el conteo más reciente, pero aún tendrá un mecanismo lento para medir las rpm: los cambios en la velocidad no se verán como dinámicamente como quieras.

Alternativamente, usted usa un reloj de alta frecuencia y mide el número de conteos entre pulsos. Puede promediar 12 resultados (una revolución completa) para reducir los errores de posición de los tornillos.

¿Qué tan rápido puedes marcar y contar?

Respuesta : tienes un reloj con un período de 256usegundos: esto significa que alterna 3906 veces en un segundo. Si cuenta estos conmutadores de reloj por cada 12 pulsos en el sensor de proximidad (también conocido como una revolución del eje), a 500 rpm contará para 0.12 segundos y acumulará un total de 469 ciclos de reloj. Si acumulas 468 ciclos de reloj, esto sería el equivalente a 501 rpm.

Usted, por supuesto, tiene la opción de contar dos o más revoluciones para brindar mayor resolución a velocidades más altas. A velocidades significativamente más bajas, es posible que desee volver a contar los pulsos de proximidad por segundo O los recuentos de reloj para una rotación fraccionaria del eje.

    
respondido por el Andy aka
2

El enfoque más preciso para las velocidades en el rango que está mirando es hacer que cada pulso entrante incremente un contador y bloquee el valor de un temporizador. Muestree periódicamente los valores del contador y del temporizador de bloqueo, asegurándose de que los valores muestreados "van juntos". Por ejemplo, si tiene el contador de captura de pulsos de hardware y los circuitos de captura de pulsos conectados a la misma entrada, puede leer el contador, luego el valor del temporizador capturado y luego leer el contador nuevamente. Si las dos lecturas de contador producen valores diferentes, repita el proceso. El tiempo para volver a intentar el proceso es menor que el tiempo mínimo entre los pulsos de entrada, luego, en el segundo intento, ambos valores del temporizador deben coincidir.

Una vez que haya hecho esto, luego, en el intervalo de actualización deseado, calcule su velocidad en pulsos por minuto como:

Speed = (NewCount-EarlierCount) * TimerCountsPerMinute / (NewTimer-EarlierTimer)

Excepto cuando NewCount es igual a EarlierCount, este enfoque producirá un valor cuya precisión es +/- una marca de temporizador. En otras palabras, si la velocidad de entrada es constante y el temporizador es preciso, la lectura correcta estará en algún lugar entre

Velocidad = (NewCount-EarlierCount) * TimerCountsPerMinute / (NewTimer-EarlierTimer-1)

y

Velocidad = (NewCount-EarlierCount) * TimerCountsPerMinute / (NewTimer-EarlierTimer + 1)

Usando este enfoque, si tiene una base de tiempo de 1MHz, siempre que sus pulsos de entrada lleguen a 10Hz o más, podrá actualizar su pantalla diez veces por segundo y mostrar un valor que sea preciso para la precisión de un cristal típico. Dependiendo de lo que estés haciendo, es posible que desees suprimir las actualizaciones, excepto cuando la diferencia total entre las lecturas visualizadas y reales alcance, por ejemplo, tres unidades en la pantalla (de modo que cuando los valores cambian rápidamente, los números de la pantalla cambian rápidamente, pero si un valor alterna entre 123.4 y 123.5, la pantalla pasaría suficiente tiempo mostrando cada valor que una persona podría ver).

    
respondido por el supercat
1

Mida el tiempo entre impulsos o caídas de los bordes. Obtienes un tiempo estimado de cuánto tiempo se tarda en ir 1/12 de revolución con cada pulso.

    
respondido por el Scott Seidman
1

Si la velocidad mínima es de 20 RPM, obtienes una revolución cada tres segundos y solo cuatro pulsos por segundo. No puede obtener una resolución (mucho menos precisión) de 1 RPM simplemente contando los pulsos por segundo. Para obtener la resolución que desea a una frecuencia de pulso muy baja, necesitará determinar el período entre los pulsos y luego calcular las RPM a partir de eso. Para determinar el período, use los pulsos para iniciar / detener un contador. El contador debe ser lo suficientemente rápido para que puedas obtener al menos 500 conteos cuando los pulsos llegan a 100 Hz (500 RPM), por lo que necesitas que el contador funcione a 50kHz o más.

    
respondido por el Joe Hass

Lea otras preguntas en las etiquetas