Supongo que te refieres a programar un controlador PID, el proceso es el siguiente:
Haces una interrupción que se ejecute cada t ms:
- Lees el valor del elemento a controlar: rk (temperatura, nivel...)
- Valor de salida:
e(t) = r(t) - sp
Etotal = Etotal + e(t)
y(t) = Kc * e(t) + ki * Etotal + kd * ( e(t) - e (t-1) )
e(t-1) = e(t)
FIN.
Esto sería un bucle de control de un PID, el controlador más famoso de la industria.
Los parámetros son los siguientes:
- e(t) es el error que hay en cada ciclo, el valor del elemento a controlar menos el valor real del elemento.
- r(t) es el valor medido del elemento, el valor que tiene realmente.
- sp es el set-point, el valor al que queremos llegar.
- Etotal es el sumatorio de los errores, es un termino que valdrá 0 al principio y se irá incrementando con cada ciclo, debes tener en cuenta posibles desbordamientos del mismo, pues al principio este valor es grande y aunque con cada ciclo el error decae es cierto que se sigue sumando. A este mecanismo se le denomina anti-windup, por eso es mejor usar la parte integral sólo cuando el valor logrado es muy cercano al valor que se busca.
- y(t) es el valor de salida de tu controlador, la acción a realizar sobre el sistema.
- kc es la ganancia proporcional del controlador.
- ki es la gananacia integral del controlador.
- kd es la ganancia derivativa.
Estas tres constantes las deberás seleccionar con cuidado para que el sistema no se inestabilice y sea lo suficientemente rápido... a esto se denomina sintonización del PID.
Un ejemplo sería el control de la temperatura de un recinto, contamos con un calentador (una resistencia) y un sensor de temperatura. r(t) será el valor que nos da el sensor e y(t) será la intensidad eléctrica que aplicaremos a la resistencia. Conociendo la temperatura que proporcionamos dependiendo de la intensidad que circula por esa resistencia, ya tendriamos hecho el PID, sólo nos quedaría hacer una simple regla de tres para pasar y(t) que estará expresada en unidades de temperatura (ºC, K, F...) a amperios necesarios para conseguir esa temperatura con esa resistencia.
Una vez hecho basta sintonizar el PID para conseguir un comportamiento óptimo.
Espero que te sirva de ayuda.
Un saludo.