PID y control del motor por PWM

0

Tengo un potenciómetro que da un voltaje analógico en el rango de 0-5V. Estoy considerando este POT como entrada de acelerador para el motor. Si cambio el aumento de la velocidad del bote y decrece en base al voltaje proveniente del bote. Estoy detectando la tensión analógica del ADC de mi ATMEL mcu. Mi MCU está trabajando en 5V.

Digamos que la entrada analógica del POT es 2V. Y estoy asumiendo que la señal de comando es de 200 RPM fpr motor. Mi motor tiene un sensor de hall o / p desde el cual puedo leer la velocidad actual del motor, que es de 120 RPM.

error = set_speed - current_speed  = 200 -120 = 80 RPM

Ahora aplico el PID a esta señal de error (80 RPM) obtendré algún controlador o / p.

La velocidad del motor se controla cambiando el ciclo de trabajo PWM (registro de 16 bits). Pero la gran pregunta es que PWM utiliza para controlar la velocidad del motor. Ahora, cómo usar esta salida del controlador para cambiar la función de PWM de mi MCU

¿Cómo se relaciona PWM con la señal o / p del controlador para ajustar la velocidad?

    
pregunta user6363

2 respuestas

2

Al configurar un regulador PID, necesitará parámetros de escala, que traducen los números PID abstractos a las características del mundo real. Del mismo modo, también debe tener límites máximos y mínimos en P, I y D respectivamente, que también deben ajustarse a las características de salida.

Tendrá un voltaje especificado que es la velocidad máxima del motor. Esta tensión especificada debe traducirse a un ciclo de trabajo máximo del PWM. Tal vez sea 5V y luego el máximo sea el ciclo de trabajo del 100%.

El valor de escala que debe usar para el regulador PID será este ciclo de trabajo máximo. La unidad será el tictac del temporizador que usará para generar el PWM.

También asegúrese de tener algunos medios para sincronizar la lectura del sensor de pasillo con las actualizaciones de su regulador PID. No puede regular el sistema más rápido de lo que puede leer el sensor. Las lecturas también tienen que escalarse, es probable que también sea más fácil escalarlas al ciclo de trabajo, por lo que tiene la misma unidad en todas partes.

En cuanto a la programación, es mucho más fácil trabajar con este valor de torsión del temporizador sin procesar de 16 bits que con, por ejemplo, voltios, porcentaje de trabajo, RPM, etc.

    
respondido por el Lundin
1

El período de ciclo de servicio completo le dará la máxima velocidad y el ciclo de trabajo cero no le dará ninguna rotación. Su error también puede ser 0 y el valor máximo cuando desea una velocidad máxima y el motor no gira. El ciclo de trabajo completo es igual al rango completo de CC a 5 V, el ciclo de trabajo de medio período es igual a 2,5 V y así sucesivamente. Debe realizar la conversión del voltaje que obtiene como salida en su cálculo de PID para el ciclo de trabajo. Por ejemplo, si la salida de PID es 1V (en el rango de 0-5V), su ciclo de trabajo debe ser 0.2. Espero que esto ayude.

    
respondido por el Haris778

Lea otras preguntas en las etiquetas