Étape 3: PID logique
Le PID est le cœur du présent code. La théorie de base est que vous considérer trois facteurs pour déterminer la quantité de chaleur à appliquer au système :
1] nous sommes comment loin de l’établissement d’objectifs ?
2] quelle vitesse nous y arrivons ?
3] Combien avons-nous été constamment hors ?
OK, donc tout d’abord, puisqu’il s’agit d’une micro 8-bit capable de gérer quelques registres de 16 bits, nous représentons les températures comme le temp multiplié par 64. Cela s’appelle math point fixe, étant donné que nous sommes juste changer la virgule décimale. Un multiplicateur de 64 x me permet d’obtenir une température jusqu'à 1024 degrés avec 5 morceaux de décimales (1/64ème par division). Étant donné que le capteur de température nous donne 2 bits de decimal, c’est beaucoup de précision pour ce que nous sommes jusqu'à.
Lorsque nous calculons combien pour chauffer l’espace (la demande d’électricité), nous commençons par le gain proportionnel. Pour ce faire, nous soustraire à la température de la cible de la température actuelle et multipliez par le réglage de gain. Comme nous nous approchons, nous ajoutons moins chauffer. Cela exécute par lui-même, cependant, nous laissera avec une erreur. Si le gain est trop faible, l’erreur sera presque constante. Trop élevé, et il oscille. Il est important de s’assurer que quand vous faites ce calcul que vous être à l’affût de débordements sur les registres. Si votre gain est 1024 et votre lecture est 16C, le calcul donne bien plus les 65 535 que vous êtes autorisé à aller. Donc n’oubliez pas de limiter toutes les valeurs à celles sain d’esprit.
Pour empêcher l’oscillation, nous ajoutons la portion dérivée. La dérivée de la température est une mesure de combien elle évolue. Donc, pour ce faire nous sauver la dernière lecture et soustraire de l’actuel. Maintenant, nous qui se multiplient par le gain dérivé et obtenir une mesure de combien du gain proportionnel il faut se débarrasser de pour empêcher le dépassement de la température de la cible.
Enfin, que peu d’erreur qui sera toujours présent lorsque vous utilisez uniquement les parties de P et D peut être enlevée en ajoutant un facteur qui vient vous avez été comment loin. Bien que très pratique pour la tenue de la consigne, il ne peut pas souligner assez que parce qu’il s’accumule, le gain intégral a le potentiel de causer des problèmes plus rapidement que toute autre chose. Pensez-y : vous démarrez le système et il est 82F, mais vous l’avez défini pour 225F. Pour les 45 minutes qu’il faut pour venir à temp c’est entasser sur plus de gain.
Nous évitons la plupart de ces deux méthodes simples :
1] limite la je part à quelque chose de petit... pas plus que d’environ 10 % total gain disponible
2] ne s’accumulent pas je gagne si la température évolue dans le bon sens.
Le deuxième bit il n’est pas standard, mais il a semblé fonctionner mieux dans cette application.
Une fois que vous avez tous les composants de gain additionnés, convertir en une valeur de sortie.