2017-08-05 5 views
0

Pourquoi ajoutons-nous toutes les erreurs dans la ligne PID code suivant? je ne suis pas capable de comprendre la réponse correctement. FORMULE: total_error = entier (kp * proportionnel + ki * intégral + dérivé kd *)PID suivi de la ligne en utilisant arduino

Répondre

0

Le terme proportionnel donne une valeur proportionnelle à la valeur d'erreur actuelle. L'erreur intégrale ajoute une quantité d'erreur proportionnelle à la fois à l'amplitude et à la durée de l'erreur. Et l'erreur dérivée est la pente de l'erreur dans le temps à un moment donné. Ils interagissent tous pour fournir la valeur de sortie de l'algorithme PID. La raison pour laquelle toutes ces valeurs sont additionnées est telle que lorsque les différentes valeurs de gain (K) dans les termes sont optimisées, vous obtenez la réponse la mieux ajustée et la plus stable dans un système donné, si la stabilité est possible. Mais comme n'importe quelle source vous le dira, le réglage PID peut être un problème difficile car ces erreurs, qui se produisent hors phase et de manière dynamique avec le temps et le changement du système, interagissent dans le temps. Ils sont conçus pour être ajoutés ensemble afin de créer une équation de forme fermée qui peut être optimisée avec différentes valeurs de gain.

Il existe une mine d'informations sur la façon dont tous ces éléments interagissent. Vous pouvez obtenir une bonne introduction sur Wikipedia. Cette pseudo-code et la description d'accompagnement de Wikipedia dans l'indiquez où algorithme la sortie suivante est dérivé, d'ajouter les erreurs:

previous_error = 0 
integral = 0 
loop: 
    error = setpoint - measured_value 
    integral = integral + error*dt 
    derivative = (error - previous_error)/dt 
    output = Kp*error + Ki*integral + Kd*derivative 
    previous_error = error 
    wait(dt) 
    goto loop 
+0

merci !!!!! –

+0

@abhitpahwa Vous êtes les bienvenus. Si vous avez trouvé cela utile, n'hésitez pas à cliquer sur la coche, Accepter ma réponse comme utile pour vous. Cela aidera les autres à trouver ma réponse dans le futur. [Veuillez lire ce conseil utile] (https://stackoverflow.com/help/someone-answers). – TomServo

+0

@TomServo ... définitivement –