Compartir tecnología

[Implementación del FOC del motor sin escobillas stm32 desde cero] [Teoría] [3/6 posiciones, velocidad, control de corriente]

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Sección previa , mediante la derivación de SVPWM, hemos obtenido la capacidad de controlar cualquier fuerza sobre el rotor del motor. En esta sección, elegimos la forma SVPWM de desacoplamiento del eje dq del rotor obtenida en la sección anterior para controlar razonablemente la fuerza del rotor y lograr el objetivo final del control del motor FOC: control de posición, velocidad y corriente.

Control PID

Las personas que lean esta sección probablemente comprendan el control PID (proporción proporcional, integral, diferencial derivada), que también está limitado por mi capacidad. No daré una explicación completa aquí ni involucraré métodos de control avanzados.
Ya sea la posición, la velocidad o la corriente del motor, todos ellos pueden considerarse parámetros controlados.
Desde una perspectiva intuitiva, cuando el valor en tiempo real de un parámetro controlado es menor que el valor objetivo, es necesario aplicar una fuerza externa para aumentar el parámetro controlado. Si la fuerza externa aplicada es demasiado grande, el parámetro controlado se sobrepasará, lo que provocará que la amplitud de oscilación del parámetro controlado cerca del valor objetivo sea cada vez mayor; si la fuerza externa aplicada es demasiado pequeña, el parámetro alcanzará el valor objetivo; Demasiado lento. Por tanto, es necesario obtener una fuerza externa adecuada para que los parámetros controlados no oscilen cada vez más violentamente y la velocidad de ajuste no sea demasiado lenta. De esta idea de control intuitivo surge la P en PID. Cuando simplemente se usa el control P, establezca el tamaño de la fuerza externa = la diferencia entre el parámetro controlado y el valor objetivo * coeficiente P. Es muy intuitivo que cuanto mayor sea la diferencia, mayor será la fuerza externa ejercida. Si el coeficiente P se establece relativamente pequeño, aunque el parámetro controlado no oscilará todo el tiempo y puede estabilizarse lentamente hasta el valor objetivo, la velocidad de ajuste es demasiado lenta. En este momento, se puede agregar el control D de PID para hacer el ajuste. El parámetro controlado oscila originalmente. Se reduce rápidamente al valor objetivo.
Pensemos en el control D desde una perspectiva intuitiva Cuando el parámetro controlado se acerca o pasa el valor objetivo bajo control P puro, una fuerza de corrección en la dirección opuesta a la velocidad ayuda al parámetro controlado a frenar cerca del valor objetivo, permitiendo que el parámetro controlado. freno. Reducir al valor objetivo más rápido. Esta fuerza de corrección en dirección opuesta a la velocidad es el control D. Después de agregar el control D, el tamaño de la fuerza externa de control = la diferencia entre el parámetro controlado y el valor objetivo * coeficiente P velocidad del parámetro controlado * coeficiente D. Cuando se utiliza el control D puro, dado que la velocidad del parámetro controlado es 0 en el estado inicial, el parámetro controlado no recibirá fuerza externa. También se puede ver que el control P proporciona fuerza externa y el control D limita la fuerza externa. Si el coeficiente D se elige demasiado grande, una ligera velocidad puede causar una fuerza externa enorme; si el coeficiente D se elige demasiado pequeño, no es suficiente para limitar la fuerza externa de la producción de control de P y los parámetros controlados tardarán en estabilizarse; .
Pensemos en el control I desde una perspectiva intuitiva. Cuando hay una carga en el parámetro controlado, la fuerza externa proporcionada por el control P simple puede no ser suficiente para soportar la carga. Por lo tanto, se puede agregar dicho mecanismo para reducir la diferencia entre. El parámetro controlado y el valor objetivo a lo largo del tiempo acumulado, se puede obtener la potencia necesaria para que el parámetro controlado alcance el valor objetivo cuando hay una carga. Este mecanismo lo controlo yo. Después de agregar I control, el tamaño de la fuerza externa de control = la diferencia entre el parámetro controlado y el valor objetivo * coeficiente P, la velocidad del parámetro controlado * coeficiente D, la diferencia entre el parámetro controlado y el valor objetivo se acumula con el tiempo * I coeficiente.
Al controlar el motor, sin circunstancias especiales, dado que el eje d no contribuye a la rotación del motor, el control pid solo puede controlar la fuerza del eje q, y el eje d se puede controlar o la salida puede establecerse directamente en 0.

filtrar

En el control de velocidad y el control de corriente, limitados por la precisión y la frecuencia del muestreo, la velocidad y la corriente son inestables y cambian rápidamente. Por ejemplo, la siguiente figura es un valor calculado directamente de la velocidad del motor. Hay muchos dientes de sierra y fluctúan alrededor del valor real. Si dicho valor se usa directamente, hará que la salida PID fluctúe mucho.
Insertar descripción de la imagen aquí
La siguiente imagen muestra que después del filtrado, está más cerca del valor real:Insertar descripción de la imagen aquí Existen muchos métodos de filtrado, como el filtrado de paso bajo y el filtrado de Kalman. La esencia es estimar un valor cercano al valor real en datos mezclados con ruido. Dado que el filtrado es un tema muy amplio, el principio no se explicará en esta sección. Puede ver el código directamente en la parte práctica posterior. Solo le recordamos que los cálculos de filtrado deben realizarse antes de ingresar el controlador PID.

control de posición individual

La posición se refiere al ángulo. Cabe señalar que hay dos ángulos físicos, uno es el ángulo del motor y el otro es el ángulo del rotor. Los dos son diferentes. El codificador del motor está instalado en la carcasa del rotor, por lo que el codificador obtiene el ángulo de la carcasa del rotor y el rotor está ubicado en el interior. Dado que la carcasa del rotor y el rotor están fijados entre sí, existe un desplazamiento fijo entre los dos ángulos. Al instalar, el codificador El grado cero del dispositivo no puede estar exactamente orientado hacia el imán permanente del rotor. El ángulo del codificador lo proporciona el codificador y también se puede conocer el ángulo del rotor. Cómo obtener este offset fijo se explicará en la parte práctica posterior. En este apartado sólo será necesario completar la parte de cálculo teórico. El vector magnético resultante actúa sobre el imán permanente del rotor, por lo que el cálculo teórico se basa en el ángulo del rotor.
Insertar descripción de la imagen aquí
Hay dos métodos para lograr el control de la posición del rotor:

método pid:
La idea intuitiva es utilizar el eje q del rotor para tirar continuamente del rotor hacia la izquierda y hacia la derecha. Una vez que el rotor se desvía de la posición objetivo, aplique una fuerza inversa en el eje q para tirar. Cuanto mayor sea la desviación, mayor. la fuerza de tracción y el rotor regresa a la posición objetivo.
Ventajas: el eje q puede proporcionar una fuerza mayor y el control de posición es más rápido y potente.
Desventajas: dado que el eje q tiene una diferencia de 90 grados con respecto al vector magnético del imán permanente del rotor, es necesario conocer la posición (ángulo) en tiempo real del rotor.
Dado que la posición en tiempo real del rotor es fácil de obtener con un codificador, en la mayoría de los casos se utiliza pid para controlar la posición.
Insertar descripción de la imagen aquí
El diagrama de bloques de control FOC de una ubicación separada se muestra a continuación. Lo que significa la imagen es ingresar una posición objetivo, calcular la diferencia con el ángulo calculado por el codificador y luego ingresar el controlador pid para controlar solo la fuerza del eje q del rotor, establecer la fuerza del eje d directamente en 0, y finalmente establecer la fuerza del eje dq (0 ~1) se ingresa en la función SVPWM derivada anteriormente, y la salida es el ciclo de trabajo pwm del brazo del puente uvw.Lo que se debe tener en cuenta aquí es la posición de destino de entrada. θ en theta_{in}θenPuede ser el ángulo del rotor o el ángulo del codificador o el ángulo de múltiples vueltas, siempre que esté relacionado con la retroalimentación. θ-thetaθSimplemente mantén el mismo ángulo.
Insertar descripción de la imagen aquí

Arrastre forzado del eje D:
La idea central es controlar artificialmente la bobina para generar un vector magnético de bobina objetivo, y el eje d del imán permanente será atraído hacia la posición objetivo. Tenga en cuenta que este método atrae el eje d a la posición objetivo.
Ventajas: dado que se genera la posición objetivo, no es necesario conocer el ángulo del rotor, el rotor se sentirá naturalmente atraído hacia él.
Desventajas: el componente de fuerza tangencial es pequeño y una ligera fuerza externa tangencial puede hacer que el rotor se mueva obviamente fuera de posición.
Insertar descripción de la imagen aquí

Control de velocidad individual

No es apropiado utilizar el método de arrastre del eje D para el control de velocidad, porque el propósito del arrastre del eje D no es utilizar un codificador. Sin los datos del codificador, es difícil calcular la velocidad. El control de velocidad puede utilizar el método de control pid, pero debido a que el valor de velocidad cambia de forma relativamente inestable durante la rotación del motor y el control D es proporcional al cambio del parámetro controlado, generalmente solo se utiliza el control PI.
El método de cálculo de la velocidad es muy simple, es decir Ángulo actual − Último ángulo registrado Δ t frac{Ángulo actual - Último ángulo registrado}{Delta{t}}Δaángulo actualÚltimo ángulo grabado
El control de velocidad se puede lograr ingresando la diferencia entre la velocidad objetivo y la velocidad en tiempo real en el control PI.
El diagrama de bloques de control FOC de velocidad individual se muestra a continuación.
Insertar descripción de la imagen aquí

Control de corriente individual

La corriente del motor representa el par. Una vez que la fuerza del rotor se desacopla del eje dq, se puede encontrar que solo el eje q contribuye a la rotación del motor y solo el eje q genera torque. Por lo tanto, solo es necesario controlar la corriente del eje q. controlar el par del motor. Si también se controla la corriente del eje d, se puede mejorar la tasa de utilización de la corriente del motor, se puede reducir la generación de calor y se puede aumentar la salida de par máximo del motor.
Insertar descripción de la imagen aquí
Obtenga la corriente del motor:
El eje dq del rotor es un concepto abstracto que se utiliza para facilitar el desacoplamiento de la fuerza del rotor. La corriente del eje dq no se puede detectar directamente. La corriente que se puede detectar directamente es la corriente en el circuito de línea de fase del motor. La corriente se puede calcular en función de la corriente de línea de fase obtenida.
Hay muchas formas de detectar la corriente de línea de fase. Los dos métodos más comunes son: 1. La detección de corriente se coloca entre los tubos de alimentación del brazo del puente superior e inferior, lo que se denomina detección en línea. 2. La detección de corriente se coloca entre el brazo inferior y GND, lo que se denomina detección del lado bajo.
Insertar descripción de la imagen aquí
debido a un nodo流出电流 流入电流=0 , por lo que sólo se necesitan dos unidades de detección de corriente para líneas trifásicas. Sin embargo, es mejor usar tres unidades de detección de corriente para la detección del lado bajo, porque cuando el ciclo de trabajo pwm de un determinado brazo del puente es 1 o cerca de 1, no pasará corriente a través del brazo del puente inferior o la corriente ser inestable y las líneas trifásicas solo La unidad de detección de corriente restante puede recolectar corriente normalmente. Después de que haya tres unidades de detección de corriente, se pueden leer las tres unidades de detección de corriente. Se seleccionan dos de los valores actuales de acuerdo con el servicio. ciclo, y el otro se calcula asumiendo que la suma de las corrientes es 0. La detección en línea no tiene este problema, porque no importa si el brazo del puente inferior está cerrado o no, siempre fluye corriente a través de la línea de fase. Dado que el voltaje en la posición de detección en línea es relativamente grande, la unidad de detección de corriente para la detección en línea debe poder soportar un voltaje grande y es relativamente costosa.

Después de obtener las corrientes de línea trifásicas, busque una manera de convertirlas en corrientes del eje dq.La corriente de la línea de fase se puede proyectar sobre el eje dq, de modo que la corriente del eje dq se puede obtener directamente. Sin embargo, el método principal actual es proyectar primero el eje dq. alfaαEje y β-betaβeje (este paso se llama transformación de Clark), y luego alfaαEje y β-betaβLa corriente del eje se proyecta sobre el eje dq (este paso se llama transformación de estacionamiento), porque se utilizará en posiciones más avanzadas FOC sin sensores. alfaαEje y β-betaβcorriente del eje.

transformación de clark:
La corriente trifásica Yo u, yo v, yo w Yo_u,Yo_v,Yo_wI,Ien,IelProyecto para Yo α, yo β Yo_alfa, yo_betaIα,IβComo se puede ver en la relación geométrica en la figura siguiente, la expresión de proyección es:
{ Yo α = Yo u − Yo v ∗ cos ⁡ 6 0 ° − Yo w ∗ cos ⁡ 6 0 ° Yo β = Yo v ∗ cos ⁡ 3 0 ° − Yo w ∗ cos ⁡ 3 0 °{Iα=IIenporque60gradoIelporque60gradoIβ=Ienporque30gradoIelporque30grado {Iα=IIenporque60°Ielporque60°Iβ=Ienporque30°Ielporque30°
Insertar descripción de la imagen aquí

transformación del parque:
Voluntad Yo α, yo β Yo_alfa, yo_betaIα,IβEl eje se proyecta al eje dq (en realidad multiplicado por una matriz de rotación). Como se puede ver en la relación geométrica en la figura siguiente, la expresión de proyección es:
{ I d = I α ∗ cos ⁡ θ I β ∗ sen ⁡ θ I q = − I α ∗ sen ⁡ θ I β ∗ cos ⁡ θ{Id=Iαporqueθ IβpecadoθIq=Iαpecadoθ Iβporqueθ {Id=Iαporqueθ IβpecadoθIq=Iαpecadoθ Iβporqueθ
Insertar descripción de la imagen aquí

El gráfico de control FOC de una sola corriente se muestra a continuación. Dado que el cambio de corriente es relativamente inestable, el control D relacionado con la velocidad de cambio del parámetro controlado generalmente no se usa aquí, solo se usa el control PI.
Insertar descripción de la imagen aquí

Control en cascada posición-velocidad-corriente

Si existe tal requisito: al controlar la posición, especifique la velocidad máxima y la corriente máxima cuando el motor regrese a la posición o al controlar la velocidad, especifique la corriente máxima cuando el motor alcance la velocidad objetivo, entonces debe usar; el control de nivel de cadena de posición-velocidad-corriente. El control en cascada aquí no controla el motor para alcanzar un cierto valor de corriente o valor de velocidad, pero requiere que el motor alcance el valor de corriente máximo o el valor de velocidad máximo durante el proceso de control, porque es imposible mantener el motor en una posición. Hay velocidad o hay corriente.
El control en cascada significa que la entrada del bucle de control actual es la salida del bucle de control anterior. Tomando como ejemplo el control de posición en cascada, el diagrama de bloques de control es:
Insertar descripción de la imagen aquí


La parte teórica ya ha terminado. Hemos obtenido el método de cálculo de SVPWM y el proceso de control de posición, velocidad y corriente. Sin embargo, encontraremos varios problemas en la práctica, como la secuencia de líneas de fase y. En comparación con la forma de implementación, el tiempo de muestreo actual, la configuración periférica, etc., la siguiente parte práctica utiliza el rey rentable de un solo chip ultracomún: las herramientas smt32f103c8t6 y stm32cube, sin usar la biblioteca de motores, para lograr un rendimiento completo. Control FOC desde cero.