Pregunta:
¿Qué hace Feed Forward y cómo funciona?
Klystrom
2020-04-18 16:13:18 UTC
view on stackexchange narkive permalink

El ajuste de PID implica ganancias P, I y D para ayudar al quad a seguir los comandos RC.

Siempre que hay un error, P "empuja" el quad para reducir el error. Entonces, ¿cómo entra en juego Feed Forward?

Tres respuestas:
#1
+12
FlashCactus
2020-04-18 18:07:08 UTC
view on stackexchange narkive permalink

La forma en que funciona el controlador PID es que cuando la velocidad real de rotación del quadcopter no es igual al punto de ajuste , o la velocidad de rotación deseada (que se establece moviendo las palancas), envía un señal a los motores para compensar y acercar la frecuencia al punto de ajuste.

Esta señal es una suma de cuatro términos : P, I, D y FF. Como es una suma, puede pensar en ellos como cada uno empujando el cuadrante en una determinada dirección de forma independiente, algunos términos se suman y otros se contrarrestan entre sí.

El término P es la diferencia entre el punto de ajuste y la tasa real , multiplicado por la ganancia P. Entonces, la cantidad de fuerza aplicada por el término P es directamente proporcional a esa diferencia. Puede pensar en él como un resorte que intenta mover el quad hacia atrás cada vez que se sale de su posición. Cuanto más se mueva (mayor diferencia entre el punto de ajuste y la velocidad real) y cuanto más rígido sea el resorte (mayor ganancia P), más fuerte tirará.

La razón por la que se necesita el término FF es porque la señal que las salidas del controlador PID influyen en la aceleración , no directamente en la velocidad. Esto significa que el quad no alcanzará la velocidad de inmediato, sino que llevará algún tiempo dependiendo de la fuerza con la que se empuje. Entonces, cuando desee comenzar bruscamente una maniobra, querrá que el quad aplique mucha fuerza en esa dirección para ponerse en marcha y luego mantenga la rotación con una fuerza menor.

El controlador PID, sin embargo, está diseñado para estabilizar. No distingue entre golpear el stick y que el quad se salga de su posición por un obstáculo o una ráfaga de viento. Entonces, cuando mueves la palanca, se "estabiliza" a la nueva velocidad como si no hubieras movido la palanca en absoluto y, en su lugar, hubiera sido golpeado por algo. Puede pensar en mover la palanca como mover el otro extremo del resorte al que está unido el quad. Al resorte no le importa qué extremo se movió, solo que su longitud cambió. Esto significa que el controlador PID no aplicará tanta fuerza para iniciar la rotación como podría potencialmente, lo que significa que es algo lento acelerar cuando mueves la palanca y, lo que es más importante, más lento para reducir la velocidad cuando mueves la palanca. volver al centro (e incluso puede sobrepasar).

Puede hacer que la reacción sea más rápida aumentando la ganancia de P, pero hasta cierto punto, ya que las ganancias de P más altas conducen a oscilaciones, cuando los movimientos del quad conducen a grandes Términos P que a su vez causan movimientos más grandes y así sucesivamente.

Entonces, en cambio, se agregó el término FF. El término FF no considera la tasa de rotación actual en absoluto, por lo que no contribuye a la acción estabilizadora del bucle PID y, por lo tanto, no puede causar oscilaciones. Lo único que mira son los palos. La fuerza aplicada por el término FF es proporcional a la velocidad a la que mueves la palanca (multiplicada por la ganancia de FF). Entonces, cuando usted, por ejemplo, inicia una tirada y golpea la palanca hacia la derecha, el término FF detectará el movimiento rápido de la palanca y dará una ráfaga de fuerza para que el quad funcione. Luego, cuando termine la tirada y devuelva el palo al centro, el término FF detectará el movimiento rápido opuesto del palo y aplicará la fuerza correspondiente, lo que ayudará al controlador PID a detener la rotación del quad más rápido y evitar que se sobrepase.

#2
+11
Kenn Sebesta
2020-04-18 19:58:17 UTC
view on stackexchange narkive permalink

Vista de 30.000 pies del feedforward como un concepto general

  • Feedforward : Te entrego una caja cerrada y anticipas que será pesada y vigorizante. usted mismo en preparación. Tu control de la caja es rápido y preciso.

  • Fallo del feedforward : te entrego una caja y es mucho más pesada de lo que esperabas. Su control de la caja es descuidado hasta que recalibra y averigua cuánto pesa.

  • Sin retroalimentación : cuando sus ojos están cerrados y todo Lo que sé es que te voy a dar algo. Podría ser un globo de helio, podría ser un lavavajillas. No sabes si tus brazos se levantarán o bajarán, por lo que tardas en reaccionar.

Feedforward en drones

En En el caso de un dron que está rodando, un término anticipado le permite anticipar que necesitará algo control de balanceo, incluso si todavía no sabe con precisión cuánto . Los controladores de vuelo tan populares le permiten agregar cierta cantidad de feedforward para tener una respuesta más rápida a las entradas.

Feedforward funciona muy bien en cantidades adecuadas. En un sistema como un dron, donde se mueve constantemente y no hay una estabilidad real a largo plazo y en estado estable, el feedforward realmente puede acelerar el tiempo de respuesta y mejorar la precisión. Sin embargo, el diablo está en los detalles, ya que cada combinación de fuselaje, motores, hélices y condiciones atmosféricas tendrá un avance óptimo diferente.

Como consecuencia, hay una gran cantidad de formas de implementar feedforward, por lo que no hay consejos genéricos sobre cómo ajustarlo correctamente. Otro cartel enlazado a https://github.com/betaflight/betaflight/wiki/Feed-Forward-2.0, y lo consideraría un buen recurso sobre patologías que se pueden experimentar con Beta Flight. Otros FC tendrán sus propias patologías, tendrás que experimentar.


Antecedentes

En el fondo, esta es una pregunta de control. En el mundo de los controles clásicos [*], el PID era el rey. Resulta que las cosas simples se niegan a morir, y para disgusto de los investigadores de controles de todo el mundo, el PID sigue siendo el rey. Anote que sea fácil de entender y fácil de ajustar para muchos sistemas, incluso si no es muy bueno.

Sin feedforward

Aquí hay un diagrama de un Rollo de PID sin Feedforward .

Feedback example

  1. Tiene algún punto de ajuste de balanceo (es decir, balanceo deseado)
  2. Usted comparar el punto de ajuste con el rollo medido, obteniendo el error
  3. Usted multiplica ese error ajustando los valores (K_p, K_i y K_d) para generar una respuesta de control
  4. Usted aplica esa respuesta de control al sistema y ver cómo reacciona el sistema
  5. GOTO (1)

Con feedforward

Feedforward tiene todas esas partes, excepto que agrega un nuevo elemento, que es el control previsto en función del rollo previsto. A continuación, se muestra un diagrama de Roll PID con Feedforward .

Feedforward example

Observe que hay una nueva ruta hacia el control, que es completamente independiente del error. Por eso se llama feedforward . Esta vía simplemente toma en cuenta el resultado deseado y aplica ciegamente una entrada de control basada en eso.


[*] La era de los controles modernos comenzó en 1958 con la publicación de la teoría revolucionaria de Pontryagin sobre la optimización seguida por el filtro de estimación ahora ubicuo de R. Kalman. Para obtener un historial completo, lea http://www.uta.edu/utari/acs/history.htm.

El término derivado en Betaflight no se calcula a partir de la señal de error en el diagrama anterior, sino del giroscopio o señal de retroalimentación. El diagrama anterior es incorrecto en ese sentido. La señal de error mostrada arriba ya incluye el cambio del punto de ajuste; en el diagrama anterior, y si Feed Forward se implementó realmente como arriba, el cambio de punto de ajuste se aplicaría dos veces. Así que no lo hacemos así. En las primeras versiones de Betaflight, la derivada se calculaba a partir del error, pero ahora se calcula puramente a partir de la señal de giro o retroalimentación.
El diagrama no está relacionado con Betaflight. Es simplemente una vista de alto nivel de lo que hace un FF genérico. Hay una gran cantidad de trabajo que aborda los problemas que surgen del uso de un término D, y por lo que dice, parece que las primeras versiones de Betaflight se encontraron con esos problemas clásicos. Felicitaciones a los desarrolladores por encontrar una solución más optimizada.
#3
+3
anonymous2
2020-04-18 17:22:29 UTC
view on stackexchange narkive permalink

Estoy lejos de ser un experto en este tema ... pero hay un buen artículo aquí en Github que encuentro que lo explica bien.

Básicamente, el feedforward es un factor lo que aumenta la capacidad de respuesta de la palanca, algo así como P, excepto que FF no hace que el dron se tambalee a niveles altos. Cito:

FeedForward (FF) es un factor de impulso que aumenta la capacidad de respuesta del stick. Es proporcional a la derivada instantánea o "tasa de cambio" del movimiento de la palanca. Cuanto más rápido se mueven los palos, más FeedForward obtenemos. FeedForward ayuda a P a girar el quad. A diferencia de P, FeedForward no puede causar oscilación, sin importar cuánto FF se agregue.

Con FeedForward, obtenemos una mejor capacidad de respuesta del stick sin presionar P tan alto como para causar oscilaciones. También reduce el tiempo de retardo entre la entrada y la respuesta. Menos retraso significa menos error y menos I windup / overhoot. Es ideal para carreras, LOS y vuelo radical de estilo libre. No es genial para películas en alta definición.


¡Espero que te ayude!



Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 4.0 bajo la que se distribuye.
Loading...