surbyte:
Lo que tienes en ese código no tiene nada que ver con un PID.
Un rele no sirve para esa tarea. Debe ser una salida MOSFET o TBJ y controlar una válvula proporcional.
Asi que eso no sirve!! Simple
Pero si se trabaja con un por ejemplo Output de 0-100 y se pasa ese valor a un duty cycle pero de un periodo muy grande por ejemplo si Output es 50% y el periodo es 1 minuto que el relay activo durante 30 segundos y off durante los siguientes 30, si Output es 100% que este encendido todo el periodo, y que el sistema evalúe cambiar los parametro de los pulsos solo una vez que haya transcurrido un periodo, creo que se lograría manejar una potencia variable en un determinado tiempo similar a lo que haria un PWM. En el fondo es PWM con frecuencia de 0,00X Hz (a lo que voy frecuencia muy baja).
Espero se entienda,
Saludos!