Paso 3: Lógica de PID
El PID es el corazón de este código. La teoría básica es que usted considera tres factores para calcular cuánto calor se aplican al sistema de:
1] ¿a qué distancia estamos de la configuración de destino?
2] ¿qué tan rápido estamos recibiendo allí?
¿3] cuánto hemos sido constantemente apagado?
OK, así que primero, ya que es un micro de 8 bits que puede manejar unos registros de 16 bits, representamos a las temperaturas como la temperatura multiplicada por 64. Esto se llama matemáticas de punto fijo, puesto que sólo estamos cambiando el punto decimal. Un multiplicador de 64 x me permite obtener una temperatura de hasta 1024 grados con 5 pedacitos de decimales (1/64 por división). Puesto que el sensor de temperatura nos da 2 bits del decimal, es un montón de precisión para lo que estamos.
Cuando calculamos cuánto para calentar el espacio (la demanda de potencia), empezamos con la ganancia proporcional. Para conseguirlo, reste a la temperatura objetivo de la temp actual y multiplicar por el valor de la ganancia. Medida que nos acercamos, añadimos menos calor. Esto funciona por sí mismo, sin embargo, nos dejará con un error. Si la ganancia es muy baja, el error será casi constante. Demasiado alto, y oscilará. Es importante para asegurarse de que cuando haces este matemáticas que está en la búsqueda de desbordamientos en los registros. Si la ganancia es de 1024 y su lectura es de 16C, la matemática funciona a más de 65.535 que le permiten ir. Así que asegúrese de limitar todos los valores a que se sane.
Para evitar la oscilación añadimos la parte derivativa. La derivada de la temperatura es una medida de cuánto está cambiando. Así que para ello salvar la última lectura y resta de la actual. Ahora, se multiplican por la ganancia derivada y obtener una medida de la cantidad de la ganancia proporcional es necesario eliminar para evitar pasarse a la temperatura objetivo.
Por último, un poco de error siempre estará presente cuando se utilizan solamente porciones P y D puede eliminarse mediante la adición de un factor que viene de lo lejos que has estado. Mientras que es útil para mantener el punto de ajuste, no puede destacarse suficiente que porque se acumula la ganancia integral tiene el potencial para causar problemas más rápido que cualquier otra cosa. Piense en esto: se inicia el sistema y es 82F, pero se ha establecido para 225F. Para los 45 minutos que se tarda para llegar a la lo temperatura es viruta de más ganancia.
Evitamos la mayoría de esto dos métodos simples:
1] límite de porción a algo pequeño... no más de 10% del total de ganancia disponible
2] no se acumulan ganar si la temperatura se está moviendo en la dirección correcta.
El segundo bit allí no es estándar, pero parecía funcionar mejor en esta aplicación.
Una vez que todos los componentes de la ganancia que sumadas, convertir a un valor de salida.