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

4

Estoy intentando implementar un algoritmo PID en un microcontrolador que controla un actuador con un límite físico duro. En MATLAB, no hay ninguna consecuencia de los grandes rebasamientos / golpes de saturación a alta velocidad: el gráfico se aplana. Sin embargo, en la aplicación, golpear 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 el máximo con toda su fuerza. Ir críticamente o sobrecargado evitará este problema, pero para valores de referencia que son menos que la saturación, puedo aceptar el sobrepasamiento (máximo 10%) por motivos de velocidad siempre que los picos nunca crucen este límite. En otras palabras, si mi valor de referencia cambia al 50%, una respuesta no es adecuada, pero si mi valor de referencia llega a uno de los dos extremos, debe ser amortiguado de manera crítica para que no me choque con nada mecánicamente.

La implementación de esto parece bastante simple: crear funciones de ganancia como una función del valor de referencia e interpolar linealmente entre los conjuntos de valores precomputados según sea necesario. Pero tengo que preguntar, ¿está cambiando dinámicamente la amortiguación o es algo que realmente se usa en los sistemas de control? ¿Es este un enfoque ingenuo?

    
pregunta BB ON

3 respuestas

2

¿Alguna razón particular por la que esté considerando implementar un término D? La razón por la que pregunto es que, si bien en teoría son excelentes, proporcionan 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. ELLOS son muy propensos al ruido.

Son al final del día, diferenciadores. Como resultado, por lo general no se consideran para implementaciones prácticas de los bucles de control. Si lo son, es un componente pequeño o en la forma de un compensador de demora.

Para su ejemplo específico con un actuador golpeando 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 de la posición absoluta del actuador. Tasa de 100% para decir ... 90% de la carrera. luego, a medida que el actuador se acerca y se acerca al final de la parada, los límites de saturación disminuyen, por lo que al ... 98% SI hay una demanda de alta velocidad fuera del bucle de posición por cualquier motivo (inestabilidad, ruido, comando BAD ...) el límite de velocidad real es del 10% del máximo

    
respondido por el JonRB
1

No es ingenuo en absoluto. Seamos realistas, muchos sistemas de control tienen que hacer frente a la variabilidad de los sistemas mecánicos, y uno de ellos podría ser el amortiguamiento natural de los mecanismos.

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

    
respondido por el Andy aka
1

Parte de la idea detrás de PID es que usas la combinación de dónde estás y qué tan rápido te mueves para averiguar qué tan lejos va el sistema a "costa", para garantizar que se pueda ordenar que el sistema disminuya la velocidad. Abajo antes de alcanzar su punto de ajuste. Si asume una tasa de cambio "deseable" máxima en el estímulo de salida, se puede calcular 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. Fijar el estímulo de salida a ese nivel debería permitirte 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 todas sus derivadas (incluida la velocidad, la aceleración, el impulso) deben variar "sin problemas" a medida que el sistema se aproxima a su objetivo. El comportamiento de sujeción de un "límite de seguridad" puede no ser tan terriblemente suave, aunque si comienza a fijarse 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 limitarse simplemente a un nivel donde la salida tendría que conducir rápidamente el máximo negativo) no debería ser tan malo. Si uno estima con precisión lo que se necesitaría para evitar una colisión suponiendo que la salida está en rampa a la velocidad máxima deseada, la salida se incrementará 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 más rápido de lo que hubiera sido necesario. En cualquier caso, si la velocidad de rampa "deseable" supuesta está muy por debajo de lo que realmente puede lograr el sistema, eso debería proporcionar cierto margen de seguridad con respecto a la estimación de uno.

    
respondido por el supercat

Lea otras preguntas en las etiquetas