¿Cómo inferir coeficientes de controlador PID equivalentes de un controlador de caja negra existente?

2

Tengo un sistema de 2 entradas y 2 salidas que he grabado en respuesta a 1. pasos (en realidad cuasi pasos, con 50 ms de tiempo de subida + un poco de sobreimpulso), y 2. ondas sinusoidales de 0,5 a 50 Hz, en Bucle abierto y cerrado. En la configuración de bucle abierto , puedo inferir los parámetros internos basados en el conocimiento de la estructura del sistema. En la configuración de bucle cerrado , un controlador con un retraso de ~ 60 ms acerca la salida a un objetivo determinado (que está separado de la señal de entrada), pero no puedo averiguar cuáles son los parámetros del controlador . He intentado modelarlo como un controlador PID usando simulaciones numéricas (euler), pero parece que se vuelve rápidamente inestable cuando aumentan los componentes I o D. En contraste, puedo crear el modelo en forma de función de transferencia y predecir la respuesta de frecuencia, pero no sé cómo predecir la respuesta a entradas arbitrarias (como los cuasi pasos, o las ondas sinusoidales en las que la señal de control puede diferir de la entrada).

El sistema (u2 es el "objetivo / punto de ajuste", F es la retroalimentación del controlador con un retardo de 60 ms, y2 es solo una segunda salida que uso para comparar con los datos para inferir H):

Porejemplo,aquíestálasalidadelafuncióndetransferencia(sólido)v.simulaciónnumérica(discontinua)detodoelmodeloenbuclecerrado,paraunaentradade0.5Hz:

Mipreguntaes:1.¿HayunamejormaneradeinferirlosparámetrosPIDdeFqueutilizandounenfoquedesimulaciónnumérica+fminsearch(matlab)?

  • (Tal vez esta es una pregunta separada, lo siento). Si no, ¿cómo pensar acerca de la discrepancia entre la respuesta de TF implícitamente estable y la respuesta numérica oscilante? ¿Cómo puedo evitar las oscilaciones en la respuesta numérica?
  • pregunta myrtle42

    2 respuestas

    2

    Si la respuesta de cualquier sistema invariante de tiempo lineal a una entrada es la convolución de la entrada con la respuesta de impulso del sistema.

    Entonces, si ha medido la respuesta de impulso, entonces puede encontrar la salida usando la convolución.

    Si no puede crear las condiciones para medir con precisión una respuesta de impulso, puede medir la respuesta al escalón. La respuesta al impulso es, entonces, la derivada de la respuesta al escalón.

    enlace

    Obviamente, a medida que el tiempo avanza, una convolución de fuerza bruta requiere demasiado cálculo, ya que se integraría numéricamente cada vez más.

    La solución generalmente es limitar el alcance de la convolución en el tiempo modelando el sistema como un sistema de respuesta de impulso finito (FIR).

    La otra forma es usar algún tipo de método abreviado matemático (como la recursión) para determinar la siguiente salida según la señal de entrada y la salida anterior. Esta es la Respuesta de Impulso Infinito (IIR).

        
    respondido por el user4574
    0

    Sí, hay una manera de averiguar cuáles son los parámetros:

    1) Debe registrar todas las entradas y salidas

    2) Use identificación del sistema para averiguar cuáles son los parámetros de su planta. Aquí hay otro enlace que tiene una mejor descripción

    Si no proviene de un fondo de controles, los conceptos serán difíciles de entender, aquí hay otro buen recurso para entender el fondo

    La idea básica es que tienes un sistema \ $ y (t) = h (t) * x (t) \ $ si tomas la transformada laplace, obtienes \ $ y (s) = h (s) * x (s) \ $ o lo que realmente busca es \ $ y (s) / x (s) = h (s) \ $.

    Esto se complica mucho más si su muestreo, ruido o si tiene un sistema MIMO como el suyo. Otra cosa, es realmente útil tener datos que capturen toda la dinámica del sistema. Si desea modelar todo el ancho de banda de los sistemas, una onda cuadrada, la función de paso o dirac delta (Golpearlo con un martillo) es mejor. Estos tienen contenido de frecuencia en todas las frecuencias donde una onda sinusoidal solo tiene contenido de frecuencia en unas pocas frecuencias.

        
    respondido por el laptop2d

    Lea otras preguntas en las etiquetas