Outils pour utilisateurs

Outils du site


ssi_elec_asservissement_mbot

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
ssi_elec_asservissement_mbot [2025/11/29 14:47] – créée mistert2ssi_elec_asservissement_mbot [2025/12/08 11:22] (Version actuelle) – [Étape 2 : Action PI] mistert2
Ligne 1: Ligne 1:
 +===== TP – Asservissement en distance du mBot : Correcteur PID =====
 +
 +==== Objectifs ====
 +  * Comprendre la logique d’un asservissement en boucle fermée
 +  * Utiliser le capteur ultrason pour mesurer une distance réelle
 +  * Étudier séparément les rôles des termes P, I et D
 +  * Analyser la stabilité, le dépassement, le bruit et l’erreur statique
 +  * Interpréter les données fournies dans le moniteur série
 +
 +==== Prérequis ====
 +
 +Lirairie mBot: [[bibliotheque_arduino_mbot]]
 +
 +==== Activité=====
 +
 +{{ https://www.lextronic.fr/41997-large_default/robot-mbot-explorer-bluetooth-p1050015.jpg }}
 +
 +Forcer le mBot à suivre une cible à 20 cm de distance. 
 +==== 1) Principe général de l’asservissement ====
 +
 +Le robot doit se stabiliser à **20 cm** de l’obstacle.
 +
 +L’erreur est définie par :
 +<mt>
 +e = D_{mes} - D_{cons}
 +</mt>
 +
 +  * si e > 0 → le robot est trop loin → avancer  
 +  * si e < 0 → le robot est trop près → reculer  
 +
 +La commande est donnée par un correcteur PID :
 +<mt>
 +v = K_p e + K_i \int e\, dt + K_d \frac{de}{dt}
 +</mt>
 +
 +===== Rôle des trois termes =====
 +  * **P** : corrige proportionnellement à l’erreur  
 +  * **I** : supprime l’erreur statique mais peut provoquer des oscillations  
 +  * **D** : réduit le dépassement, amortit le mouvement  
 +
 +===== Filtrage du dérivé =====
 +Le capteur ultrason étant bruyant, on utilise un dérivé filtré :
 +
 +<mt>
 +d_{filt} = \alpha\, d_{filt} + (1 - \alpha)\, \frac{e - e_{prev}}{dt}
 +</mt>
 +
 +===== Anti-windup (limitation de l’intégrale) =====
 +
 +<mt>
 +I = \mathrm{clip}(I + e\,dt,\; -I_{max},\; I_{max})
 +</mt>
 +
 +Reset si inversion du signe de l’erreur :
 +
 +<mt>
 +e \cdot e_{prev} < 0 \Rightarrow I = 0
 +</mt>
 +
 +===== Saturation moteurs =====
 +
 +<mt>
 +v =
 +\begin{cases}
 +V_{max} & \text{si } v > V_{max} \\
 +-V_{max} & \text{si } v < -V_{max} \\
 +v & \text{sinon}
 +\end{cases}
 +</mt>
 +
 +===== Zone de vitesse minimale =====
 +
 +<mt>
 +|v| < V_{min} \Rightarrow v =
 +\begin{cases}
 +V_{min} & \text{si } v > 0 \\
 +-V_{min} & \text{si } v < 0
 +\end{cases}
 +</mt>
 +
 +----
 +
 +==== 2) Travail demandé ====
 +
 +===== Partie A — Analyse conceptuelle =====
 +  * Expliquer la signification physique de l’erreur e.
 +  * Pourquoi un système en boucle fermée est-il nécessaire ?
 +  * Donner le rôle séparé des termes P, I, D.
 +  * Pourquoi la dérivée doit-elle être filtrée ?
 +  * Quel est l’intérêt du mécanisme anti-windup ?
 +
 +----
 +
 +===== Partie B — Expérimentations =====
 +
 +==== Étape 1 : Action P seule ====
 +  * Mettre Ki = 0 et Kd = 0
 +  * Faire varier Kp (2, 4, 6, 8…)
 +
 +**Questions :**
 +  * Une erreur statique persiste-t-elle ?
 +  * Y a-t-il un dépassement ?
 +  * Le robot oscille-t-il si Kp est trop grand ?
 +
 +----
 +
 +==== Étape 2 : Action PI ====
 +  * Garder un Kp raisonnable (ex : 4 ou 6)
 +  * Ajouter Ki (0.1 → 0.2)
 +
 +**Questions :**
 +  * L’erreur statique disparaît-elle ?
 +  * Le robot devient-il plus oscillant ?
 +  * Que provoque un Ki trop élevé ?
 +
 +
 +----
 +
 +==== Étape 3 : Action PID ====
 +  * Ajouter un terme dérivé Kd (0.5 ou 1.0)
 +
 +**Questions :**
 +  * Le dépassement diminue-t-il ?
 +  * La stabilité augmente-t-elle ?
 +  * Le dérivé amplifie-t-il le bruit ?
 +  * Le filtre (α) améliore-t-il les tremblements du robot ?
 +
 +----
 +
 +===== Partie C — Analyse des données série =====
 +
 +Les données typiques affichées :
 +
 +<code>
 +D = distance mesurée
 +e = erreur
 +v = commande moteur
 +I = intégrale
 +d = dérivée filtrée
 +</code>
 +
 +**Questions :**
 +  * La commande v se rapproche-t-elle de 0 une fois stabilisé ?
 +  * L’intégrale atteint-elle les limites Imax ?
 +  * Le dérivé filtré est-il stable ou bruité ?
 +  * Observe-t-on un dépassement (overshoot) dans la distance D ?
 +
 +----
 +
 +==== 3) Synthèse finale ====
 +
 +Rédiger un paragraphe répondant aux questions suivantes :
 +
 +  * Pourquoi P seul ne suffit-il pas ?
 +  * En quoi I améliore la précision mais peut dégrader la stabilité ?
 +  * Quel est le rôle du dérivé dans l’amortissement ?
 +  * Quel triplet (Kp, Ki, Kd) est optimal pour VOTRE robot ? (justifier)
 +  * Pourquoi d’un robot à l’autre les réglages diffèrent-ils ?
 +
 +----
 +
 +==== 4) Bonus facultatif ====
 +
 +  * Ajouter une consigne variable via le port série  
 +  * Tracer les courbes D, e, v, I dans un tableur  
 +  * Tester 10 cm, 20 cm et 30 cm pour analyser la robustesse  
 +
  
  
ssi_elec_asservissement_mbot.1764427640.txt.gz · Dernière modification : de mistert2