Medición PID y control de diferentes escalas

0

Estoy tratando de aplicar la teoría PID a un caso del mundo real. Entiendo que lo siguiente representa un método PID típico:

error = target_value - actual_value

integral + = error

derivado = error - last_error

salida = KP error + KI integral + KD * derivado

last_error = error

Mi pregunta es cómo manejar los datos de medición (real_value) versus el control (target_value). Por ejemplo, digamos que mis comentarios se miden con un ADC de 10 bits. Mi control es un PWM con un rango de ciclo de trabajo válido para mi aplicación de 55-172.

¿Escalo linealmente entre los dos rangos? Digamos que mi objetivo es 756 ADC. ¿Establecería mi PWM a 86 inicialmente?

¿Debería tener lugar el cálculo del error en el rango ADC o el rango PWM?

¿Qué pasaría si el control PWM no fuera lineal?

    
pregunta snapthensmoke

1 respuesta

0

Suponga que su valor de ADC mide un voltaje. Este voltaje está relacionado con una caída exponencial debida a la descarga de un capacitor y usted está utilizando la tasa de caída para medir una capacitancia. La capacitancia está relacionada con la compresión de alguna sustancia, que es lo que desea controlar. Esa compresión es su "variable de proceso".

Para pasar de los valores de ADC a la variable de proceso, debe escribir un código que reúna un conjunto de medidas de ADC y luego tome el logaritmo de esos valores de ADC (para evitar un algoritmo de ajuste exponencial más complicado y, en cambio, utilice los mínimos cuadrados). ajuste lineal, que es fácil de encontrar y usar, aunque es MUCHO mejor si tiene las habilidades matemáticas para lidiar con los diferenciales parciales necesarios para desarrollarlo por su cuenta cada vez que lo necesite.) Pero antes de hacerlo, lo encuentra. Necesito quitar el offset ADC primero. Así que haces eso (usando algunos medios razonables). También es posible que tengas que lidiar con la ganancia del sistema, pero digamos que solo estás interesado en la pendiente para evitar esa parte.

Así que ahora toma el registro de la curva, aplica un algoritmo de ajuste de mínimos cuadrados y calcula la pendiente de la curva como \ $ \ tau \ $. Ahora, tiene algo que puede usar para calcular la capacitancia, más algún otro valor que quizás represente una incertidumbre (si quiere hacerlo).

Ahora busca el \ $ \ tau \ $ en una tabla que omite la preocupación por la capacitancia en sí y va directamente a la figura de compresión, que es su variable de proceso.

Esta variable de proceso puede formatearse internamente de la forma que desee. Mucha gente lo convierte inmediatamente en un valor de punto flotante para PID. Casi nunca hago eso. Pero esa es una historia separada relacionada con la aplicación de técnicas de métodos numéricos correctas y las voy a evitar aquí.

¡Guau! Tienes la variable de proceso ahora. Finalmente, puede calcular el término de error y hacer un paso del PID.

Por supuesto, una vez que lo haga, tendrá un nuevo valor de salida PID. Dependiendo de las unidades (el análisis dimensional es algo que deberías saber frío aquí), habrá otro mapeo de este valor de salida PID a lo que estás controlando. Y el proceso para hacer eso podría ser tan complejo como lo que acabo de escribir. O peor. O más fácil.

No hay una respuesta simple a tu pregunta. Lo anterior ilustra algunas de las dificultades. Hay un proceso para condicionar su (s) entrada (s) con el fin de llegar a una medición de variable de proceso único. Luego puede aplicar el PID y obtener una salida única del PID. Luego hay otro proceso que toma esta salida y, una vez más, la acondiciona para generar salidas a partir de eso para controlar algo.

Si lo hace bien, habrá un retardo de tiempo exacto e invariable entre las mediciones necesarias para generar un valor de variable de proceso y las salidas de control necesarias para responder. Lo que hace que un PID sea muy frustrante de aplicar por parte de un operador (y, como resultado, casi sin valor) son dos cosas: (1) retrasos prolongados; y, (2) retrasos variables. No tolerar ninguno de estos, más allá de lo absolutamente requerido por la física y los sistemas electrónicos.

    
respondido por el jonk

Lea otras preguntas en las etiquetas