J'implémente un contrôleur PID pour le contrôle de la vitesse du moteur. J'ai terminé la mise en œuvre du contrôle PI et cela fonctionne parfaitement bien pour moi. Dans la spécification, on m'a dit d'implémenter une technique de filtrage en utilisant l'équation suivante pour la partie D:
Maintenant, ce que je comprends jusqu'à présent, c'est que s
représente "dx/dt"
généralement ce qui correspond au taux de changement d'erreur, mais ici je peux le relier au taux de changement de rétroaction. Td/N
est pour limiter le gain global de sortie (j'espère que j'ai bien compris). Maintenant, pour représenter cela en termes de code C, j'ai essayé la méthode suivante:
s = (CurrentFeedback()-Old_Feedback)*100/(MaxFeedback()); //to calculate the % change in feedback
s = s*1000/sampleTime; //1000 is multiplied because sampleTime is in milliseconds
D = (Td*s)/(1+(s*Td/N));
D = D*KP; //Kp is multiplied as per the standard pid equation.
Old_Feedback = CurrentFeedback();
PID = P+I-D;
Eh bien, les résultats en ajoutant D ne sont pas ce que j'ai prévu. Je veux juste savoir si j'ai implémenté correctement l'équation de la portion D? Suis-je en train de faire des erreurs dans ma compréhension des mathématiques de base de la différenciation?
REMARQUE: je ne suis pas en mesure de modifier le recalculer le kp, ti, td car il provient directement du VFD.
la source
Réponses:
J'ai 3 points à partager:
1-Je vais vous dire pourquoi les gens jouent avec les termes de signe D, PID = P + I + D mais, D = kd * (erreur -serreur), et en contrôle de position si vous approchez du point de consigne, toujours plus ancienne est <erreur donc le terme D sera négatif, et donc il diminue la sortie et empêche le dépassement.
2-En ce qui concerne le temps, ne divisez pas et n'utilisez pas le temps. puisque vous utilisez un microcontrôleur intégré, utilisez simplement une constante de temps et annulez-la de toutes les équations: par exemple, utilisez une interruption de minuterie pour générer une constante de temps de 1 ms et appelez votre fonction à l'intérieur.
3-Pourquoi vous utilisez PID pour le contrôle de la vitesse, 90% du temps PI est suffisant dans le contrôle de la vitesse, car D ici ressemble plus à un contrôle d'accélération.
J'espère que cela pourra aider
la source