Conversión de la salida PID en Arduino para la señal del variador

Buenas tardes,
Necesito implementar un controlador PID en Arduino (placa Arduino Mega 2560) para controlar la presión dentro de una cámara mediante un ventilador regulado por un variador de frecuencia. Estoy teniendo problemas al convertir la salida del PID a un valor adecuado para la señal del variador de frecuencia (rango 0-255). El error es la diferencia entre la presión deseada (que puede variar) y la existente, que leo por medio de un sensor y se va actualizando en el tiempo. ¿Debe hacerse un mapeo para convertir la salida del PID (no sé entre que valores oscilará) a un valor entre 0 y 255 o hay alguna manera más profesional?
Gracias.

Depende...
Si la señal tiene una variación lineal (o casi) puedes usar la función map().
Pero si no es lineal vas a tener que hacer tu propia ecuación de conversión.
En ese caso podría ser que encuentres algo útil en la hoja de datos del sensor y eso te facilite la vida.

The Arduino PID Library implements a PID controller, and the Kp,Ki,Kd parameters convert between units of error to units of output. You don't need to do a map() of error_pressure into a PID input, since the PID parameters do a conversion themselves. If you want 100Pascal o0f error to result in 255 units of VFD output, the parameter kP=255/1000=0.255 would produce that behavior, and taper off as the error approaches zero. The Ki parameter converts the InputError*sec accumulation into output units to correct the error towards zero.

En la hoja de datos del sensor de presión he utilizado la FdT para calcular la presión medida. Y en cuanto a la señal, sí que tiene una variación lineal, ya que quiero que la presión medida vaya subiendo o bajando hasta la presión deseada establecida, pero al no saber los valores máximos y mínimos entre los que oscilará la salida del PID, no sé si la función map() es lo más adecuado. ¡Gracias por tu respuesta!

I need the map() to convert the PID output to a PWM value between 0 and 255 (for the variable frequency drive signal). Thanks for your answer!

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.