Implementación de Feedfoward desde un sistema de control de retroalimentación

En un sistema de control de retroalimentación estándar, tiene un punto de ajuste, un controlador, una planta y un sensor para habilitar la retroalimentación. El sensor mide la variable del proceso (o en otras palabras, el argumento que realmente está tratando de controlar).

Ahora, quiero agregar un componente feedforward. Con referencia a este ejemplo de MATLAB , al implementar el componente feedforward, necesita un modelo de perturbación adicional y un controlador feedforward.

Aquí es donde necesito una aclaración. Al agregar un componente feedforward, ¿tengo que medir la perturbación por separado de la variable del proceso? ¿O la perturbación es igual a mi variable de proceso? Si lo anterior, en mi sistema, solo tengo un sensor para medir la variable del proceso y no tengo forma de medir la perturbación. ¿Es posible implementar un componente feedforward en mi sistema de control?

Respuestas (2)

Sí, apoyo la respuesta de Marko Bursic; más que eso, no usaría el término "bucle feedforward" (porque, de hecho, no es ningún bucle). En mi opinión, es mejor decir "camino de avance".

Tal ruta existe a veces, dependiendo del sistema real. A veces contiene una señal de perturbación, pero también puede ser responsable de alimentar una parte de la señal de entrada.

Ejemplo simple: una resistencia Rb entre la base y el colector de una etapa de ganancia de emisor común. La resistencia Rb tiene la tarea de proporcionar retroalimentación negativa de CC o CA; sin embargo, al mismo tiempo permite una pequeña señal de paso desde la entrada directamente a la salida (nodo colector). En este nodo se suma (con un cambio de fase de 180 grados) al voltaje de salida "normal" (causado por las variaciones de corriente del colector).

Por lo tanto, hay dos preguntas abiertas: (a) ¿Por qué "quiere" agregar una ruta de avance y (b) por qué cree que en este caso "necesitaríamos un modelo de perturbación adicional"?

Correcto, no debería llamarse bucle, ya que escribí explícitamente que no puede estar cerrado, en bucle. Corregiré mi respuesta, gracias.
@LvW Hola, (a) Quiero agregar un componente FF porque mi rechazo de perturbaciones en mi sistema es deficiente. El bajo rendimiento se debe a grandes retrasos en el sensor con el que estoy atascado. Mi margen de ganancia ya es muy bajo y tengo poco espacio para trabajar usando PID de circuito cerrado de soporte. (b) Nunca he implementado FF en un sistema y estoy aprendiendo qué es/cómo usarlo usando el ejemplo de MATLAB que vinculé en el OP. Si tiene otras fuentes para el control de FF, me gustaría echarles un vistazo.
Danny G., creo que sería muy útil ver un diagrama de bloques con todos los bloques y entradas relevantes. En particular, porque ha mencionado el problema del retraso.

No entiendo lo que quieres decir con medir la perturbación. Por lo general, la perturbación es un ruido no deseado que, por supuesto, no se puede medir. El camino del bucle feedforward es un tipo de perturbación beneficiosa, pero sigue siendo una perturbación.
Es posible que no cierre el bucle con el feedforward, porque cambiará el comportamiento del sistema: una ruta de bucle feedforward es un control de bucle abierto, mientras que el controlador opera en un bucle cerrado. La inyección de señal a través de una ruta de bucle de avance significa una perturbación para el bucle cerrado, por lo que si el controlador está ajustado correctamente para que permanezca en un margen seguro de la oscilación, entonces podemos decir que la ruta de bucle de avance no tiene influencia en la estabilidad. La excitación HF inyectada desde FFla ruta de bucle es rechazada por bucle cerrado.
El FF es una función del parámetro del punto de referencia, DEBE ESTAR EN LAZO ABIERTO.

Una perturbación puede ser, por ejemplo, un cambio de las condiciones ambientales que sea medible.
@Chu En ese caso, como en el ejemplo de OP, puede estimar la función de transferencia de la perturbación e inyectar una perturbación de contramedida, pero aún en bucle abierto. y F F = F ( d ) . Por lo general, la ruta FF se usa para acelerar la respuesta de todo el control agregando un valor de salida conocido y F F = F ( X S PAG ) con respecto al valor de consigna.
La estructura clásica agrega la perturbación medida después del proceso para que esté dentro del lazo de control principal y, por lo tanto, sea rechazada por el controlador (PID).
@MarkoBuršič Hola Marco, sí, entiendo que FF es un bucle abierto. No mencioné que está en bucle, pido disculpas si mi pregunta original da ese sentido. Déjame tratar de reformular mi confusión. Estoy tratando de agregar un componente feedforward a mi sistema. La variable de proceso (el argumento que estoy tratando de controlar) es la fuerza proporcionada por un medidor de tensión. Esto es lo único que estoy midiendo. Un modelo de perturbación requerido describe la relación entre una perturbación (entrada) y la variable/fuerza del proceso (salida). ¿No necesitaré medir la perturbación?
@DannyGelman Sería más fácil si hace una descripción de todo el sistema, especialmente el actuador: ¿qué acciona el valor manipulado? Y, si hay una característica de estado estacionario conocida entre: valor manipulado VS. fuerza. Ahora olvide la entrada de perturbaciones, ya que no la tiene. Puede realizar un control con o sin FF, incluso sin la entrada de perturbación.
@MarkoBuršič Tengo un actuador lineal que tira/empuja un efector final impartido en una superficie móvil. Un sensor de fuerza en la punta del efector final proporciona una lectura de fuerza de contacto, que se utiliza como variable de proceso para el control PID. El sistema de control integrado se ejecuta en un Arduino Due. El sensor de fuerza tiene un retardo de tiempo: los métodos de ajuste estándar dan como resultado un rechazo de perturbaciones deficiente. Tengo un modelo de sistema basado en datos de entrada/salida. Usted menciona "Puede hacer un control con ... FF, incluso sin la entrada de perturbación". - Obviamente no tengo idea de cómo implementar FF, ¿puede proporcionar algún recurso?
@MarkoBuršič Todavía siento que el OP necesita una aclaración. Observe aquí que el bloque PERTURBACIÓN está separado de la lectura de Temperatura T. ¿El bloque PERTURBACIÓN es diferente de la Temperatura T? En mi aplicación, solo tengo una lectura de fuerza que captura la perturbación resultante de la fuerza debido al movimiento de la superficie, y no tengo una forma separada de detectar la perturbación. ¿ Puede forzar la lectura ser mi PERTURBACIÓN e implementar FF como tal?
@DannyGelman No soy hablante nativo de inglés, por lo que los libros sobre teoría de control que he leído no te ayudarán. Puede hacer una representación a mano de qué es exactamente este efector final y cómo se controla el actuador. Es difícil entender su configuración: es un control de velocidad, posición, fuerza, ... sensores que tiene, etc. No puedo ayudarlo sin conocer los detalles.
@DannyGelman No, la lectura de fuerza no es una molestia. No tienes un valor de perturbación en absoluto. La imagen muestra un caso en el que se utiliza una perturbación conocida para implementar FF, pero se puede implementar una FF con el fin de acelerar la reacción del sistema, lo que implica consultar tablas y modelos cuyo valor manipulado se conoce "a priori". ", aún antes de que el error comience a crecer.
@MarkoBuršič "pero se puede implementar un FF con el fin de acelerar la reacción del sistema, lo que implica buscar tablas y modelos cuyo valor manipulado se conoce "a priori"" Esto es exactamente lo que quiero implementar: yo No puedo encontrar ningún material para aprender sobre esto. Con respecto a la configuración de mi sistema, me encantaría conversar al respecto con usted, sin embargo, probablemente sería mejor pasar esta discusión al chat.