Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
fr:informatics:asservir_les_moteurs_en_vitesse [29/01/2025 20:33] Keuronde [Pourquoi asservir ?] |
fr:informatics:asservir_les_moteurs_en_vitesse [30/01/2025 12:52] (Version actuelle) Keuronde [Partie centrale] |
||
|---|---|---|---|
| Ligne 68: | Ligne 68: | ||
| Temps_init() | Temps_init() | ||
| Dans la boucle principale, utilisez les fonctions de temps pour n’exécuter votre code qu’à intervalles réguliers. | Dans la boucle principale, utilisez les fonctions de temps pour n’exécuter votre code qu’à intervalles réguliers. | ||
| - | | + | |
| while(1){ | while(1){ | ||
| - | if(Temps_get_ms()!= temps_ms){ | + | if(Temps_get_temps_ms()!= temps_ms){ |
| - | if(Temps_get_ms() % pas_de_temps == 0){ | + | if(Temps_get_temps_ms() % pas_de_temps == 0){ |
| // Votre futur code ici | // Votre futur code ici | ||
| } | } | ||
| Ligne 97: | Ligne 97: | ||
| float consigne_vitesse = 200; // Consigne en mm/s. | float consigne_vitesse = 200; // Consigne en mm/s. | ||
| int demi_periode = 2000; // Temps haut ou bas du créneau (en ms) | int demi_periode = 2000; // Temps haut ou bas du créneau (en ms) | ||
| - | A l’intérieur de votre « if(Temps_get_ms()!= temps_ms){ … } » : | + | A l’intérieur de votre « if(Temps_get_temps_ms()!= m_temps_ms){ … } » : |
| - | if(Temps_get_ms() % demi_periode | + | if(Temps_get_temps_ms() % demi_periode |
| consigne_vitesse = - consigne_vitesse; | consigne_vitesse = - consigne_vitesse; | ||
| AsserMoteur_setConsigne_mm_s(consigne_vitesse, | AsserMoteur_setConsigne_mm_s(consigne_vitesse, | ||
| Ligne 104: | Ligne 104: | ||
| } | } | ||
| - | #IMG signal carré | + | {{ : |
| Envoyez une consigne à 200 mm/s qui s’inverse toutes les deux secondes. Vous adapterez si nécessaire par la suite. | Envoyez une consigne à 200 mm/s qui s’inverse toutes les deux secondes. Vous adapterez si nécessaire par la suite. | ||
| Ligne 121: | Ligne 121: | ||
| Avec un tel réglage, vous devriez obtenir une réponse molle. | Avec un tel réglage, vous devriez obtenir une réponse molle. | ||
| - | #IMG :Ajouter image du graphique | + | {{ :fr: |
| Multiplier successivement votre gain par 2 jusqu’à avoir une réponse plus dynamique | Multiplier successivement votre gain par 2 jusqu’à avoir une réponse plus dynamique | ||
| - | #IMG : gain_P dynamique. | + | {{ :fr: |
| - | Réglez ensuite votre gain I, en prenant comme première valeur gain_I = gain_P/10. Ajustez-le de la même manière que le gain_P | + | Réglez ensuite votre gain I, en prenant comme première valeur gain_I = gain_P/10. Ajustez-le de la même manière que le gain_P. |
| - | #IMG : gain_I réglé | + | Pour voir l’effet du gain I, nous augmentons la valeur de la consigne de vitesse à 400 mm/s et la fréquence de la consigne. |
| + | |||
| + | {{ :fr: | ||
| + | |||
| + | Nous observons que, sans gain I, la consigne n’est pas atteinte (ci-dessus). | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Lorsque nous réglons notre gain I, nous observons que la consigne est atteinte. Ceci au prix d’un petit dépassement. | ||
| Pour le gain_D, débrouillez-vous ! Nous, nous ne nous en servons pas… | Pour le gain_D, débrouillez-vous ! Nous, nous ne nous en servons pas… | ||