Ligne 276 : |
Ligne 276 : |
| // KD est la constance dérivée (vous pouvez peut-être | | // KD est la constance dérivée (vous pouvez peut-être |
| // commencer avec un valeur autour de 5) | | // commencer avec un valeur autour de 5) |
− | // note that when doing PID, it's very important you get your signs right, or else the | + | // Note: lors d'un asservissement PID, il est très |
− | // control loop will be unstable | + | // important d'avoir le bon signe pour les valeurs |
| + | // sinon, la boucle de contrôle sera totalement |
| + | // instable. |
| + | // motorSpeed peut avoir une valeur positive ou |
| + | // négative en fonction du sens de la direction |
| + | // prise. |
| int motorSpeed = KP * error + KD * (error - lastError); | | int motorSpeed = KP * error + KD * (error - lastError); |
| lastError = error; | | lastError = error; |
| | | |
− | // M1 and M2 are base motor speeds. That is to say, they are the speeds the motors should | + | // M1 et M2 sont les vitesses par défaut des moteurs. |
− | // spin at if you are perfectly on the line with no error. If your motors are well matched, | + | // Ce sont les vitesses adéquate des deux moteurs |
− | // M1 and M2 will be equal. When you start testing your PID loop, it might help to start with | + | // pour suivre -SANS ERREUR- une ligne parfaitement |
− | // small values for M1 and M2. You can then increase the speed as you fine-tune your | + | // droite. |
− | // PID constants KP and KD. | + | // Si vos moteurs sont identiques alors M1 et M2 devraient |
| + | // être égale (ou presque, chaque moteur étant un peu |
| + | // différent de l'autre). |
| + | // Il est préférable de commencer avec une petite valeur |
| + | // pour M1 et M2 lorsque vous commencez à tester votre |
| + | // boucle de contrôle. En effet, l'erreur (écart par |
| + | // rapport à la ligne) devient rapidement plus grande |
| + | // si la vitesse est plus élevée. |
| + | // Après avoir atteint un résultat satisfaisant à |
| + | // faible vitesse, vous pouvez augmenter les valeurs |
| + | // de M1 et M2 et poursuivre l'affinement des valeurs |
| + | // des constantes KP et KD de votre PID. |
| int m1Speed = M1 + motorSpeed; | | int m1Speed = M1 + motorSpeed; |
| int m2Speed = M2 - motorSpeed; | | int m2Speed = M2 - motorSpeed; |
| | | |
− | // it might help to keep the speeds positive (this is optional) | + | // Cela peut aider de maintenir une vitesse positive |
− | // note that you might want to add a similiar line to keep the speeds from exceeding | + | // pour les moteurs (ce point est optionnel). |
− | // any maximum allowed value | + | // Un test similaire pourrait être ajouté pour garder |
| + | // la vitesse des moteurs en dessous du maximum |
| + | // autorisé. |
| if (m1Speed < 0) | | if (m1Speed < 0) |
| m1Speed = 0; | | m1Speed = 0; |
Ligne 297 : |
Ligne 315 : |
| m2Speed = 0; | | m2Speed = 0; |
| | | |
− | // set motor speeds using the two motor speed variables above | + | // Fixer la vitesse des mmoteur en utilisant les |
| + | // variables m1Speed et m2Speed |
| }</syntaxhighlight> | | }</syntaxhighlight> |
| | | |
| {{Pololu-Senseur-QTR-TRAILER}} | | {{Pololu-Senseur-QTR-TRAILER}} |