¿Cómo puedo ajustar automáticamente los parámetros PID sobre la marcha?

15

Tengo un servo sistema simple que utiliza un controlador PID implementado en una MCU para realizar la retroalimentación. Sin embargo, las propiedades del sistema cambian dinámicamente, por lo que los parámetros PID nunca pueden ajustarse para todas las circunstancias.

Mi robot es un brazo liviano con motores eléctricos que se pueden conducir hacia atrás, similar a este:

Brazo robot ligero

El brazo realiza varias tareas, como levantar pesas pesadas, empujar y tirar objetos sobre el escritorio. Cada una de estas tareas requiere diferentes parámetros de ajuste PID que no puedo predecir fácilmente.

Lo que realmente me gustaría es una función de nivel superior que pueda ajustar cuidadosamente los parámetros en respuesta al comportamiento del brazo. Por ejemplo, si nota que el brazo está oscilando, podría reducir P y aumentar D. O si nota que el brazo no está alcanzando su objetivo, puede aumentar I.

¿Existen tales algoritmos? Sería feliz incluso si el algoritmo no perfeccionara los parámetros de inmediato. Por ejemplo, el brazo podría oscilar varias veces antes de que los parámetros se ajustaran a sus nuevos valores.

Rocketmagnet
fuente

Respuestas:

10

Un compañero de trabajo y yo implementamos una vez un algoritmo simplex para el ajuste sobre la marcha de los parámetros PID de un circuito de control de corriente para un motor. Esencialmente, el algoritmo modificaría un parámetro a la vez y luego recolectaría datos sobre algún parámetro de retroalimentación que fuera nuestra medida de bondad. La nuestra fue una desviación porcentual del punto de referencia objetivo actual. Según si el parámetro de retroalimentación mejoraba o empeoraba, el siguiente parámetro se modificó en consecuencia.

O, en Wikipedia habla:

Deje que un programa lineal sea dado por un cuadro canónico. El algoritmo simplex se realiza realizando operaciones de pivote sucesivas, cada una de las cuales proporciona una solución factible básica mejorada; La elección del elemento pivote en cada paso está determinada en gran medida por el requisito de que este pivote mejora la solución.

Técnicamente utilizamos el método Nelder-Mead, que es un tipo de simplex. También podría describirse como un algoritmo de escalada si observa cómo modifica sus parámetros de entrada mientras busca un parámetro de salida óptimo.

Animación de Nelder-Mead

Nedler-Mead funcionó mejor en nuestro caso porque puede perseguir un punto de ajuste. Esto fue importante porque nuestro punto de referencia objetivo actual cambió a medida que aumentó la demanda de torque.

la técnica de Nelder-Mead es un método de búsqueda heurística que puede converger a puntos no estacionarios

Embedded.kyle
fuente
¿podría vincular su enfoque y resultados si están disponibles?
SPRajagopal
@SPRajagopal Lo siento pero no. Ya no trabajo para esa empresa y no tengo acceso a ninguno de los datos.
embedded.kyle
4

Un buen enfoque para tal problema se llama control adaptativo. En resumen, es una metodología de control que presume que el modelo es conocido pero los parámetros del modelo (masa, inercia, etc.) no lo son. Su trabajo es estimar los parámetros desconocidos. Se puede encontrar una breve introducción en wikipedia . El texto Robótica: modelado, planificación y control por Siciliano et al. cubra el tema más a fondo.

Edite en respuesta a la consulta @Rocketmagnets:

En resumen, debe tener un modelo matemático de su sistema, es decir, las ecuaciones que describen cómo evoluciona su sistema con el tiempo cuando es forzado o no, pero no necesita conocer parámetros dinámicos como la masa de los diversos componentes, su inercia, etc. .. Es el trabajo del controlador adaptativo estimar estos parámetros. Sin embargo, debe hacer una suposición inicial para cada uno de los parámetros desconocidos. Luego, a medida que el sistema se ejecuta, utiliza las señales de control, las señales de salida y un método como la regresión lineal o el descenso de gradiente para actualizar los valores de los parámetros desconocidos. Con el tiempo, los parámetros convergerán a valores que darán como resultado un estado estacionario, aunque pueden no coincidir con los parámetros reales, es decir, puede que la masa sea incorrecta, pero el valor seguirá funcionando.

Desde aquí, recomendaría referirse a un texto que discute el método. Acabo de notar, por ejemplo, que el Dr. Marc Bodson está ofreciendo una copia de su texto Control adaptativo: estabilidad, robustez y convergencia en formato PDF en su sitio web .

DaemonMaker
fuente
¿Puedes dar una explicación del método?
Rocketmagnet
1
Dudo que pueda hacerle justicia, dado que solo recientemente he aprendido el método. Además, no es un método único, sino una colección de técnicas que se han desarrollado durante los últimos 50 años más o menos. Sin embargo, editaré mi respuesta para elaborar un poco más.
DaemonMaker
2

El proceso que está describiendo se conoce como PID adaptativo.

Sin embargo, parece un poco exagerado. He descubierto que PID es bastante robusto cuando se trata de perturbaciones externas y las tareas que describe no parecen estar más allá de las capacidades de un solo conjunto de ganancias.

usuario65
fuente
Estos son más que solo perturbaciones externas. Estos son cambios en las características de la articulación. Duplicar la masa del robot, por ejemplo, conduce a un sobreimpulso.
Rocketmagnet