Cómo diseñar el control de velocidad del motor de CC, utilizando PID

0

Estoy buscando controlar la velocidad de un motor de CC con PID, es el control de velocidad. Entiendo cómo funciona el PID, pero tengo algunas preguntas. Al igual que, ¿cómo encontraría mis ganancias para cada uno de los PID, qué valores de resistencias y tapas utilizaría? Además, ¿sería suficiente un simple motor de 5V DC? Si alguien ha hecho algo como esto, un esquema de circuito sería genial. Gracias

    
pregunta McCarthy02

2 respuestas

5

En general, se encuentran los valores de ganancia PID mediante experimentación estructurada, algo como esto:

  1. Comience con solo una ganancia de P (I y D = 0), y hágala tan alta como sea posible con poco o ningún exceso.

  2. Añadir un poco que gano. Hazlo lo más alto posible sin producir más que solo un pequeño sonido.

  3. Sube la P gana un poco. Esto usualmente agregará un poco de estabilidad ahora que el término I está ahí.

  4. Iterate con los términos P e I para obtener el tiempo de ajuste más rápido con cualquier sobrepasamiento que puedas tolerar.

  5. Puedes detenerte aquí o intentar agregar un término D pequeño. La polaridad del término D depende de cómo exactamente implementaste las ecuaciones. Un poco de D puede agregar algo de estabilidad, lo que le permite hacer que los términos P e I sean un poco más agresivos. El punto del término D es básicamente decir si ya estoy yendo en la dirección correcta, disminuya la unidad . Sin embargo, D es susceptible al ruido. Hacerlo demasiado alto hará que la salida se parezca a "vibrar", que básicamente está amplificando el ruido del sensor en la salida. Un poco de D puede ser útil si necesita el último bit de rendimiento, pero muchas implementaciones lo omiten.

Observo que planeas hacer todo esto en electrónica analógica. Esto no tiene sentido, especialmente para algo lento como un motor. Por eficiencia, querrá conducir el motor con PWM. La forma natural de hacer esto es que el sensor de velocidad del motor alimenta un microcontrolador A / D. El micro realiza los cálculos PID y lo utiliza para ajustar el ciclo de trabajo de PWM. También puede cambiar de dirección con el puente H, garantizar el descanso antes de la fabricación, etc. Hay muchos micros pequeños y baratos con hardware A / D y PWM incorporado. Algunos incluso tienen salidas PWM con unidad H del puente. Este es un problema tan común que hay subfamilias completas de micros optimizadas para esto.

El poder de cómputo que necesitas es modesto. A fines de la década de 1990, utilicé un PIC 16F877 para ejecutar dos bucles de control PID en capas que impulsaban un motor de CC. El circuito interno controlaba la posición del motor y daba salida PWM al puente H. El circuito externo controlaba la velocidad de un motor de gasolina y generaba un valor de posición en el circuito interno. Los cálculos PID se realizaron en punto flotante de 24 bits. Usamos 8 ms por iteración, lo que nos dejó un poco de tiempo para realizar todas las demás tareas de baja prioridad. Ese micro estaba funcionando a su velocidad máxima de 5 MIPS. Eso es bastante lento para los estándares de hoy. Muchos micros son muy capaces de hacer lo que necesitas.

Hacer esto en forma analógica tomará más espacio en la placa, más componentes, será mucho más difícil de ajustar y no proporciona una interfaz conveniente para la etapa de potencia del controlador del motor. Simplemente no tiene sentido.

    
respondido por el Olin Lathrop
0

Un bucle PID es esencialmente un filtro IIR de segundo orden en el que la constante de tiempo para la primera etapa es muy pequeña, mientras que la constante de tiempo para la segunda etapa es muy grande. La salida es el término P multiplicado por la etapa media, más el término D multiplicado por las dos primeras etapas, normalizado para la constante de tiempo, y el término I multiplicado por la diferencia entre la segunda y tercera etapas, normalizado para la constante de tiempo. Aunque el hecho de que la constante de tiempo entre las dos primeras etapas no sea del todo nulo significa que el término D no refleja el diferencial, y el hecho de que la constante de tiempo entre las dos primeras etapas no sea del todo infinita significa que hay una Limite hasta qué punto la integral puede "terminar", en términos prácticos, estas son ventajas en lugar de desventajas.

Un término "verdadero" derivado amplificará los componentes de alta frecuencia en la señal de retroalimentación, duplicando su fuerza con cada duplicación de frecuencia. Sin embargo, hay un límite para las frecuencias en las que uno está realmente interesado. Si uno tiene un bucle de control de 10 KHz, pero la frecuencia de oscilación de un sistema no amortiguado sería de 10Hz, el uso de un derivado "directo" podría amplificar el ruido por órdenes de magnitud más que La señal de interés. Si la primera etapa del filtro tiene una constante de tiempo, p. 1 ms, el bucle de control no tendrá problemas para amortiguar una oscilación de 10 Hz, pero el ruido solo se amplificará 1/10 tanto como si la constante de tiempo fuera una muestra de bucle.

Del mismo modo, una "verdadera" integral ofrecerá infinito final, pero eso no es algo bueno. Si algo impide que el dispositivo controlado alcance su posición prevista durante una hora (por ejemplo, algo está obstruyendo el actuador), una integral "verdadera" terminaría hasta el punto de que una vez que se eliminó la obstrucción, podría tomar muchos minutos (o incluso horas). ) para que la integral se afloje y permita que el sistema funcione. El uso de una constante de tiempo razonablemente larga en el término integral asegurará que incluso si el sistema está fuera de los límites por un tiempo prolongado, el tiempo requerido para la recuperación será finito.

    
respondido por el supercat

Lea otras preguntas en las etiquetas