Sistema de control - ¿Cambio de amortiguación sobre la marcha?

Estoy tratando de implementar un algoritmo PID en un microcontrolador que controla un actuador con un límite físico estricto. En MATLAB, los grandes sobreimpulsos o la saturación de impactos a alta velocidad no tienen consecuencias: el gráfico simplemente se aplana. Sin embargo, en la aplicación, alcanzar la saturación muy rápido eventualmente romperá el actuador. Me gustaría desacelerar antes de que esto suceda para que el actuador no alcance su máxima fuerza. Ir críticamente o sobreamortiguado evitará este problema, pero para valores de referencia que son inferiores a la saturación, puedo aceptar un sobreimpulso (máx. 10%) por el bien de la velocidad, siempre que los picos nunca crucen este límite estricto. En otras palabras, si mi valor de referencia cambia al 50 %, una respuesta subamortiguada está bien, pero si mi valor de referencia llega a cualquiera de los extremos, debe amortiguarse críticamente para que no

Implementar esto parece bastante sencillo: cree funciones de ganancia como una función del valor de referencia e interpole linealmente entre los conjuntos de valores precalculados según sea necesario. Pero tengo que preguntar, ¿es una locura cambiar dinámicamente la amortiguación o algo que realmente se usa en los sistemas de control? ¿Es este un enfoque ingenuo?

Lo que está buscando se llama control adaptativo , que es un método de control bien documentado. Probablemente puedas encontrar fácilmente libros dedicados al tema. Aquí hay un ejemplo de un libro sobre el tema.

Respuestas (3)

¿Alguna razón en particular por la que esté considerando implementar un término D? La razón por la que pregunto es que, si bien son excelentes en teoría, brindan un componente más alto para pasos de error alto y un componente más pequeño para pasos de error más pequeños, son muy propensos al ruido.

Son al fin y al cabo, diferenciadores. Como resultado, generalmente no se consideran para implementaciones prácticas de lazos de control. Si lo son, es un componente pequeño o en forma de un compensador de adelanto-atraso.

Para su ejemplo específico con un actuador que golpea un tope final, el problema no es tanto golpear el tope final, sino golpearlo con "alta velocidad". Una opción a considerar es en la salida de su bucle de posición PI (quizás D), la salida que es una demanda de velocidad en el siguiente bucle, es incluir un bloque de saturación dinámica.

Los límites de saturación dependen entonces de la posición absoluta del actuador. Tasa del 100% para decir... 90% del golpe. luego, a medida que el actuador se acerca más y más al tope final, los límites de saturación disminuyen de manera que al... 98 % SI hay alguna demanda de alta velocidad fuera del lazo de posición por cualquier motivo (inestabilidad, ruido, comando MAL... ) el límite de velocidad real es el 10% del máximo

Nada ingenuo. Seamos realistas, muchos sistemas de control tienen que hacer frente a una gran variabilidad en los sistemas mecánicos y uno de ellos bien podría ser la amortiguación natural de la mecánica.

Siempre que tenga una idea decente sobre la posición del actuador, puede elegir acelerar o desacelerar según lo considere apropiado.

Parte de la idea detrás de PID es que usa la combinación de dónde se encuentra y qué tan rápido se está moviendo para determinar qué tan lejos se desplazará el sistema, para garantizar que se le pueda ordenar al sistema que reduzca la velocidad antes de alcanzar su punto de ajuste. Si se supone una tasa máxima de cambio "deseable" en el estímulo de salida, uno puede averiguar, para una combinación dada de posición y velocidad, cuál sería el estímulo de salida máximo que evitaría una colisión si uno comenzara a disminuir la salida al máximo permitido. velocidad. Sujetar el estímulo de salida a ese nivel debería permitirle evitar una colisión.

Tenga en cuenta que parte de la filosofía de diseño detrás de PID es que la posición y todos sus derivados (incluida la velocidad, la aceleración, el ímpetu) deben variar "suavemente" a medida que el sistema se acerca a su objetivo. El comportamiento de sujeción de un "límite de seguridad" puede no ser tan terriblemente suave, aunque si comienza a sujetar en el nivel donde estima que la salida tendría que cambiar más rápido de lo deseado para evitar una colisión (en lugar de simplemente sujetar en el nivel donde la salida tendría que conducir rápidamente al máximo negativo) no debería ser tan malo. Si se estima con precisión lo que se necesitaría para evitar una colisión, suponiendo que la salida aumenta a la velocidad máxima deseable, la salida aumentará suavemente a esa velocidad. Si se sobreestima la capacidad del equipo para evitar una colisión con la velocidad de rampa deseable, la salida tendrá que aumentar más rápido de lo deseable. Si se subestima la capacidad del sistema para evitar una colisión, la salida comenzará a disminuir antes de lo necesario. En cualquier caso, si la velocidad de rampa "deseable" supuesta está muy por debajo de lo que el sistema realmente puede lograr, eso debería proporcionar algún margen de seguridad con respecto a la estimación propia.