La microcomputadora de un solo chip stm32 realiza el control PID del motor

     El control PID debe considerarse como un algoritmo de control muy antiguo y ampliamente utilizado, que va desde el control de la temperatura del hervidor hasta el control de la actitud de vuelo y la velocidad de vuelo del dron, etc. En el control de motores, el algoritmo PID se utiliza con especial frecuencia.

1. PID posicional

1. Fórmula de cálculo

En el control de motores, lo que enviamos al motor es un valor de ciclo de trabajo PWM.
No hay mucho que decir, directamente sobre la fórmula básica del PID posicional:

imagen

El diagrama de flujo de control es el siguiente:

imagen

La posición objetivo en la figura anterior generalmente se puede programar para cambiar el valor objetivo mediante botones o interruptores, y la posición de medición es para recopilar los datos del codificador a través de stm32.

La diferencia entre la posición objetivo y la posición medida es la desviación del sistema actual. Envíelo al controlador PID para su cálculo y salida, y luego controle la rotación del motor a través de la amplificación de potencia del variador del motor para reducir la desviación y finalmente alcanzar la posición objetivo.

2. Implementación del lenguaje C

Cómo escribir el diagrama esquemático de control y análisis teórico anterior en lenguaje C, este es un proceso interesante y práctico. El código específico del PID posicional realizado por lenguaje C es el siguiente:

int Position_PID (int Encoder,int Target){
   
     static float Bias,Pwm,Integral_bias,Last_Bias;  Bias=Target- Encoder; //计算偏差  Integral_bias+=Bias; //求出偏差的积分  //PID基本公式  Pwm=Position_KP*Bias+Position_KI*Integral_bias+Position_KD*(Bias-Last_Bias);  Last_Bias=Bias; //保存上一次偏差  return Pwm; //输出}

Los parámetros de entrada son el valor de medición de posición del codificador y el valor objetivo del control de posición, y el valor de retorno es el control del motor PWM (ahora es más fácil de entender si es más fácil ver el diagrama de bloques de control anterior).

La primera línea es la definición de la variable interna relevante.

La segunda línea es para encontrar la desviación de posición, restar el valor objetivo del valor medido.

La tercera línea calcula la integral de la desviación sumando.

La línea 4 encuentra el motor PWM usando un controlador PID posicional.

La quinta línea guarda la última desviación para la siguiente llamada.

La última línea es retorno.

2. PID incremental

1. Fórmula de cálculo

El control de bucle cerrado de velocidad consiste en medir la información de velocidad del motor de acuerdo con el número de pulsos obtenidos por unidad de tiempo (aquí se utiliza el método M para medir la velocidad) y compararlo con el valor objetivo para obtener la desviación de control. , y luego controlar la proporción, integral y diferencial de la desviación para realizar el proceso en el que la desviación tiende a cero.

imagen

En nuestro sistema de circuito cerrado de control de velocidad solo se utiliza control PI, por lo que el controlador PID se puede simplificar

es la siguiente fórmula:

imagen

El diagrama de bloques de control es el mismo que el posicional.

imagen

La velocidad objetivo en la figura anterior generalmente se puede programar para cambiar el valor objetivo a través de botones o interruptores. Como se menciona en el capítulo sobre el codificador, antes de medir la velocidad, es recopilar los datos del codificador regularmente a través de la microcomputadora de un solo chip y borrarlos. él.

La diferencia entre la velocidad objetivo y la velocidad medida es la desviación del sistema actual. Envíelo al controlador PID para su cálculo y salida, y luego controle la rotación del motor a través de la amplificación de potencia del variador del motor para reducir la desviación y finalmente alcanzar la velocidad objetivo.

2. Implementación del lenguaje C

Cómo escribir el diagrama esquemático de control y análisis teórico anterior en lenguaje C, este es un proceso interesante y práctico. El código específico del PID posicional realizado por lenguaje C es el siguiente:

int Incremental_PI (int Encoder,int Target){
   
     static float Bias,Pwm,Last_bias;  Bias=Encoder-Target; //计算偏差  //增量式 PI 控制器  Pwm+=Velocity_KP*(Bias-Last_bias)+Velocity_KI*Bias;  Last_bias=Bias; //保存上一次偏差  return Pwm; //增量输出}

Los parámetros de entrada son el valor de medición de velocidad del codificador y el valor objetivo del control de velocidad, y el valor de retorno es el control del motor PWM.

La primera línea es la definición de la variable interna relevante.

La segunda línea es para encontrar la desviación de velocidad, restar el valor objetivo del valor medido.

La tercera línea encuentra el motor PWM utilizando un controlador PI incremental.

La cuarta línea guarda la última desviación para la siguiente llamada.

La última línea es retorno.

3. El papel de cada parámetro de P, I, D

El índice de rendimiento del sistema de control automático tiene principalmente tres aspectos: estabilidad, rapidez y precisión.

Estabilidad: después de que el sistema está sujeto a efectos externos, si el sistema de control hace que la variable controlada crezca con el tiempo y finalmente concuerde con el valor esperado dado, se dice que el sistema es estable y generalmente lo llamamos convergencia del sistema.

Si la cantidad controlada se desvía cada vez más del valor dado con el paso del tiempo, se dice que el sistema es inestable, lo que generalmente llamamos divergencia del sistema. Sólo un sistema estable puede completar la tarea de control automático, por lo que la estabilidad del sistema es una condición necesaria para garantizar el funcionamiento normal del sistema de control.

En un sistema de control estable, la desviación inicial de la cantidad controlada respecto del valor dado debería disminuir gradualmente con el tiempo y tender a cero.

Rapidez: La rapidez se refiere al período de tiempo que tarda en desarrollarse el proceso dinámico del sistema. Cuanto más corto sea el tiempo de proceso, mejor será la velocidad del sistema y cuanto más largo sea el tiempo de proceso, significa que el sistema responde lentamente y es difícil realizar la señal de comando que cambia rápidamente.

La estabilidad y la rapidez reflejan el desempeño del sistema en el proceso de control. Durante el proceso de seguimiento del sistema, cuanto menos se desvía la cantidad controlada del valor dado, más corto es el tiempo de desviación, lo que indica que la precisión dinámica del sistema es relativamente alta.

Precisión: se refiere a la desviación de la variable controlada (o cantidad de retroalimentación) del valor dado después del final del proceso dinámico del sistema. Esta desviación es el error de estado estacionario. desempeño en las últimas etapas del proceso dinámico.

En la técnica de producción práctica, diferentes sistemas de control tienen diferentes requisitos para el efecto de control. Por ejemplo, los carros de equilibrio y los péndulos invertidos tienen altos requisitos en cuanto a la velocidad del sistema, y ​​si la respuesta es demasiado lenta, el sistema perderá el control.

El sistema de apertura y cierre automático de puertas y ventanas en una casa inteligente no tiene altos requisitos de velocidad, pero tiene altos requisitos de estabilidad y precisión, por lo que es necesario controlar estrictamente el exceso y el error estático del sistema.

Supongo que te gusta

Origin blog.csdn.net/weixin_41114301/article/details/132503096
Recomendado
Clasificación