Control de velocidad de circuito cerrado de un motor de CC
En el control de circuito cerrado, un controlador esencialmente compara los valores deseados y reales de las variables de interés y ajusta el esfuerzo de control de modo que el valor real coincida con el valor deseado.
En este ejemplo, un controlador de velocidad se implementa en un tablero de microcontrolador Arduino Uno. La velocidad actual del motor se mide usando un codificador. La velocidad deseada se establece usando un potenciómetro. El motor es potenciado usando un protector de motor. Finalmente, las velocidades de referencia y reales se transmiten a través de un bus serie RS-232 que se leerá utilizando el marco del dispositivo.
El modelo del motor DC.
Diseñe un controlador PID con un período de muestreo de 0.25 segundos.
El codificador proporciona 12 conteos por revolución y la caja de cambios del motor tiene una relación de transmisión de 9.86. Cree un modelo que obtenga las lecturas del codificador en rpm.
La referencia se establece mediante un potenciómetro con rango de 0-5V. Vuelva a escalar para leer de 0 a 500 rpm.
El comparador para comparar la velocidad de referencia y la velocidad real del codificador.
La salida del microcontrolador al motor se basa en el ciclo de trabajo de la señal PWM. El voltaje real a través del motor proviene del blindaje del motor. La siguiente es la relación entre el voltaje y el ciclo de trabajo basado en un ajuste por partes de los datos medidos.
El modelo inverso del escudo que asigna el voltaje al ciclo de trabajo.
El diagrama de bloques del Arduino, el escudo, el motor y las entradas y salidas.
El controlador que se implementará en el Arduino tiene 2 entradas y 3 salidas.
La primera entrada es la velocidad de referencia establecida por el valor del potenciómetro. La segunda entrada es la velocidad real que mide el codificador.
La primera salida es el ciclo de trabajo de la señal PWM que acciona el motor. Los otros dos son la referencia y la velocidad real transmitida a través de una conexión serial RS-232.
Impelmente el código.
Abra una conexión en serie al objetivo.
Configure una tarea programada para leer los valores cada 0.25 segundos
Trace los resultados que muestran la respuesta para establecer valores de referencia y perturbaciones.
Elimine la tarea y cierre la conexión del dispositivo.