¿El controlador PID cae rápidamente la señal de comando y la eleva rápidamente cuando se le da inicialmente el control?

0

He intentado escribir un controlador PID para controlar la potencia de salida de un láser en respuesta a la temperatura medida de algo. La medición de la temperatura puede ser muy ruidosa en ciertos rangos de temperatura, aunque la fotografía de abajo se tomó en un rango menos ruidoso.

Aquí hay una vista actual del PID en acción

Miproblemaactualnoeslaoscilaciónenlaseñaldecomandoalláser,yaqueheencontradoalgunosparámetrosdedescensoquelosuavizanmuybien.Miverdaderoproblemaeslacaídainicialenellímiteinferiordelrangodelaseñaldecomandoyluegoelascensoalosnivelesapropiados.

Unpocomásdefondo.ElPIDensímismofuncionaalusarprimerounatabladebúsquedaparaordenaralaseñaldelláserunvalor"cerrado" de lo que debería ser para que la temperatura inicial se cierre para el PID, lo hace durante X cantidad de segundos (20-30 ha funcionado) Bueno para conseguirlo a una temperatura estable).

La idea detrás de esto fue, con suerte, solucionar el problema que teníamos (estamos) teniendo en el PID inicialmente de una gran oscilación entre la señal de salida mínima y máxima. Esto es altamente indeseable y puede dañar la cosa que se está calentando.

Entonces, una vez que el tiempo del comando del valor de la tabla de búsqueda ha expirado, se le da el control al PID, en la imagen de arriba puede ver claramente cuando esto es (la caída inicial). Entonces, relativamente rápido vuelve a subir a una señal apropiada.

Lo que creo que está sucediendo es que el error anterior y los términos integrales anteriores aún no han acumulado valores adecuados (comienzan en 0) para que el PID produzca la señal de comando adecuada en el punto de ajuste deseado.

¿Es la forma de solucionar esto para inicializar el error anterior y la integral anterior a los valores cercanos a lo que son cuando el PID es estable cerca del final del gráfico?

    
pregunta KDecker

2 respuestas

1

La caída brusca se debe a que el error es alto. El término proporcional irá hacia abajo, y como no tiene una integral integrada, por supuesto, la salida disminuirá.

No estoy exactamente interesado en el enfoque de "tabla de búsqueda", prefiero ver el bucle mejor sintonizado, pero si estás de acuerdo con la tabla de búsqueda, solo fuerza ese valor al término integral, suprimiendo P y D hasta que el tiempo expire, luego habilite el PID completo con el preajuste integral.

Con respecto al comentario sobre el aumento de la ganancia proporcional, desaconsejaría que el aumento de la ganancia proporcional probablemente conduzca ese sistema a la oscilación; e incrementarlo también causaría una caída mucho más aguda cuando se cambia del modo "Inicio" al modo "Ejecutar".

En última instancia, es probable que desee cargar previamente el término integral con su valor de salida precalculado y simplemente dejar que se ejecute. Ajustar los PID simplemente jugando con las ganancias (o ganancia / reinicio / tasa, dependiendo de dónde provenga) por lo general no termina con un sistema estable.

Hay muchos métodos para ajustar los bucles PID, pero si debe "Ajustarlos", por lo general, reduzca los términos I y D a cero, ejecute P hasta que el sistema oscile y retroceda P en aproximadamente la mitad. Eso debería darte un error de estado estable. A continuación, aumente lentamente, hasta que se elimine el error y el sistema no cace. Normalmente, D solo debe usarse ligeramente en la mayoría de los bucles, pero puede ser necesario en controles muy dinámicos.

    
respondido por el R Drast
1

Esencialmente correcto, el controlador PID reduce la salida porque los términos P e I comienzan cerca de cero. P es pequeño porque el error es pequeño y I es pequeño porque se inicializa en cero. La solución es como usted dice: establezca el término I en el valor que daría lugar a la salida deseada cuando los términos P y D sean cero, luego pase el control al bucle PID. Esto se conoce como "transferencia sin perturbaciones".

Además, no creo que su sistema PID esté bien afinado (aunque usted dice que ha mejorado desde que tomó esas huellas). Hay muchas maneras de ajustar un controlador PID, pero la más rápida y sencilla es la Ziegler – Nichols método. Deberías poder tener un mejor control que en tus imágenes. Es posible que necesite diferentes valores PID para diferentes puntos de ajuste. En cuyo caso necesita una tabla de búsqueda, y si desea realizar transferencias sin problemas entre zonas en la tabla de búsqueda, también puede usar la transferencia sin errores allí.

Creo que también se beneficiaría con la aceleración del bucle PID o la medición de temperatura. En este momento, solo tiene un par de puntos de datos por oscilación, el bucle PID funcionará mejor si puede obtener alrededor de 10.

    
respondido por el Jack B

Lea otras preguntas en las etiquetas