¿Por qué mi sistema de retroalimentación controlado por PID se vuelve inestable con el tiempo?

Yuan Gao tiene una respuesta bastante completa. Me gustaría agregar un poco. Si puede, intente configurar un comando de avance para compensar la gravedad. Esto puede ser arriesgado y peligroso si se implementa mal.

Si conoce la masa del cuadrotor y la orientación, puede agregar un comando de empuje de avance que cancele la fuerza debida a la gravedad. Recomendaría enviarlo sin problemas a cero cuando las orientaciones son demasiado grandes, ya que la saturación del motor significará que no puede reorientar el quad para desplazarse Y proporcionar el mayor empuje necesario para contrarrestar el vector de gravedad (que ya no está alineado con el empuje dirección).

Una vez que haga esto, necesitará ganancias de P más pequeñas para obtener el mismo error de altitud en estado estacionario. Esto ayuda, como sugirió Yuan Gao. Tenga en cuenta que si tiene un error en la masa, no cancelará la gravedad perfectamente. Por lo tanto, sugeriría dejar que un término integrador se encargue del error de estado estable no nulo resultante inducido por el error en el parámetro de masa. Creo que no desea que el valor estimado de la masa sea (mucho) mayor que la masa verdadera, ya que su quad tiende a acelerar hacia el cielo, en modo de avance de bucle abierto.

Editar: los errores de orientación también causarán problemas en la cancelación de la gravedad. ¡Proceda con precaución!

El problema más común que las personas tienen al ajustar los bucles de altitud es que sus datos de medición de altitud son realmente lentos (y si provienen del GPS, pueden tener un retraso significativo), por lo que existe la tendencia de intentar sobretonarlos. Intente relajar todas las ganancias, e intente comenzar solo con P e I.

Además, si está utilizando algún tipo de sensor ultrasónico, tenga en cuenta la pérdida de señal y la transición de dentro de rango a fuera de rango; así como los efectos del suelo (es posible que tenga que relajar la ganancia de P cuando está cerca del suelo, de lo contrario encontrará el extraño comportamiento del quadcopter que se niega a aterrizar debido a la interacción entre el efecto del suelo y el D- ganancia).

Finalmente, puede estar interesado en ajustar su actitud PID ganancias durante el descenso para contrarrestar la inestabilidad debido a descender a través del lavado de apoyo. Tuvimos excelentes resultados al vincular un pequeño ajuste PID al acelerador.

Editar: con un barómetro, necesitas filtrarlo y estás atascado con ganancias realmente bajas. Algunos barómetros son realmente malos y son extremadamente ruidosos, lo que te obliga a ponerle un gran filtro. Luego, el filtro introduce un retardo de fase a la señal, lo que significa que su PID está trabajando efectivamente en tiempos del orden de unos segundos, limitando severamente el rendimiento dinámico posible.

También tenga cuidado con el flujo de aire alrededor del barómetro; y luz (algunos barómetros tienen lecturas afectadas por la luz)

Hice un video sobre cómo se comporta el controlador PID por sus valores individuales de P, I & D.

Puede hacerse una idea de por qué el sistema se vuelve inestable, crea sobreimpulso, ondulación, tiempo de estabilización, etc.

P baje a .2
Lo subo rpm repite por minuto
D eliminarlo

La sonda de temperatura (la respuesta disminuye la respuesta) ingresa manualmente la temperatura en el cálculo.

Haga que el tiempo de exploración del cálculo sea más lento que el tiempo de respuesta del elemento de control final. (Si el cálculo continúa operando antes de que los elementos de control primario o final respondan al control, puede ser inestable) intente una velocidad de exploración de 600 m / seg.

Necesitamos más información ¿Estás usando un giroscopio para estimar las tasas de rotación? ¿Tiene lógica anti-windup en sus cálculos integrales? ¿Cuánto tiempo tarda la inestabilidad en manifestarse y cuándo sucede qué sucede?

Pueden suceder varias cosas. El barómetro que use debe darle un valor que no sea propenso a la deriva. Entonces esta es una buena elección. Sin embargo, si produce datos de baja resolución, puede rebotar de 1m a 1.5m (si su resolución es 0.5m), lo que no le gustará al controlador. Intente filtrar primero la señal del barómetro, antes de alimentarla a su controlador PID. Un filtro de paso bajo es un buen intento. Si puede, haga un filtro complementario con el acelerómetro. Esto lo ayudará a evitar cualquier retraso en los datos.

Intente con bajas ganancias primero. Se necesita algo de D, de lo contrario el sistema oscilará.