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 motor. Si cambio la velocidad del potenciómetro, aumente y disminuya en función del voltaje procedente del potenciómetro. Estoy detectando el voltaje analógico del ADC de mi ATMEL mcu. Mi MCU está trabajando en 5V.
Digamos que la entrada analógica del POT es de 2V. Y asumo que la señal de comando es un motor fpr de 200 RPM. Mi motor tiene un sensor hall o/p desde el cual puedo leer la velocidad actual del motor, que es decir 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 se usa para controlar la velocidad del motor. Ahora, cómo usar esta salida del controlador para cambiar el deber PWM de mi MCU
¿Cómo se relaciona PWM con la señal o/p del controlador para ajustar la velocidad?
Al configurar un regulador PID, necesitará parámetros de escala, que traducen los números PID abstractos a las características del mundo real. De manera similar, también debe tener límites máximos y mínimos en P, I y D respectivamente, que también deben escalarse a las características de salida.
Tendrá un voltaje específico que es la velocidad máxima del motor. Este voltaje especificado debe traducirse a un ciclo de trabajo máximo del PWM. Tal vez sea 5V y luego el máximo es un 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án los tics del temporizador que utiliza para generar el PWM.
También asegúrese de tener algún medio para sincronizar la lectura del sensor Hall 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 deben escalarse, probablemente también sea más fácil escalarlas al ciclo de trabajo, de modo que tenga la misma unidad en todas partes.
En cuanto a la programación, es mucho más fácil trabajar con este valor de tic del temporizador sin procesar de 16 bits que, por ejemplo, con voltios, porcentaje de trabajo, RPM, etc.
El período de ciclo de trabajo 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 la 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 al ciclo de trabajo. Por ejemplo, si la salida de PID es de 1 V (en el rango de 0 a 5 V), su ciclo de trabajo debería ser de 0,2. Espero que esto ayude.
haris778
usuario6363
usuario6363
Lundin
Lundin
haris778
usuario6363
usuario6363