SIMULATION :
D’après le datasheet on a Les paramètres réels (JGB37-520 12V
200RPM) :
1. Les données réelles :
Tension (U): 12 V
Vitesse à vide (RPM): 200 RPM
Courant à vide (I_0): 60 mA = 0.06 A
Stall Torque (T_s): 1.8 [Link] = 0.176 N.m
Stall Current (I_s): 1.2 A
On prend L=1.5 mH
L'inductance L n'étant pas spécifiée explicitement dans la datasheet du constructeur, nous
avons adopté une valeur de 1.5 mH, ce qui est représentatif des moteurs à courant continu de
cette taille et de cette puissance nominale. Cette valeur permet de modéliser l'effet électrique
(retard du courant) sans fausser la dynamique mécanique globale.
2. La Formule Mathématique
L*J=0.0015 *0.0016 = 2.4 *10^-6
R *J = 10 *0.0016 = 0.016
K_t * K_e = 0.544 * 0.544 = 0.296
f=0
Numerator: [0.544]
Denominator: [2.4e-6, 0.016, 0.296]
Chaîne de retour :
La vitesse linéaire du robot est calculée en multipliant la vitesse angulaire du moteur (
ω ) par un gain de 0,0325, ce qui correspond au rayon de la roue Cette conversion, basée sur la
relation cinématique V = R ω , permet de fermer la boucle d'asservissement en comparant
directement la vitesse réelle à la consigne de 0,5 m/s.
Modélisation et Asservissement du Système
1. Description du Schéma Simulink
Le système d'asservissement en vitesse a été modélisé sous Simulink en intégrant les
composants réels du robot pour garantir une simulation fidèle au comportement physique. Le
schéma se compose des éléments suivants :
Générateur de consigne : Un bloc Step paramétré à 0,5 m/s, suivi d'un Rate Limiter.
Ce dernier limite l'accélération pour éviter des pics de courant brutaux et simuler une
mise en mouvement fluide.
Correcteur PID : Un régulateur de type PID discret (avec une période
d'échantillonnage T_e = 0,01 s) a été implémenté pour minimiser l'erreur statique et
assurer la rapidité du système.
« J'ai choisi un PID Discret avec T_e = 0,01 s car c'est la période d'échantillonnage
standard pour un asservissement de robot mobile via microcontrôleur. Cela garantit
une fréquence de calcul de 100 Hz , ce qui est largement suffisant pour la dynamique
du moteur tout en restant compatible avec les ressources de calcul de la carte
Arduino. »
Saturation : Un bloc de saturation est placé en sortie du PID pour limiter la tension de
commande à 12 V , correspondant à la tension maximale de la batterie.
Modèle du Moteur : La fonction de transfert du moteur à courant continu transforme la
tension en vitesse angulaire (ω ).
Gain de conversion : Un gain de 0,0325 (correspondant au rayon de la roue R)
convertit la vitesse angulaire en vitesse linéaire (V) pour fermer la boucle
d'asservissement.
Gestion des perturbations : Un bloc Sum permet d'injecter une perturbation (couple de
charge) à t = 4 s pour tester la robustesse du correcteur face à une pente ou un
obstacle.
3. Analyse des Résultats (Interprétation du Scope)
La simulation (Figure [X]) valide les performances du système :
1. Poursuite de consigne : La vitesse réelle du robot suit précisément la rampe
d'accélération et se stabilise à la valeur de consigne (0,5 m/s) sans dépassement
notable (Overshoot).
2. Robustesse : Lors de l'application de la perturbation à t = 4 s, on observe une légère
chute de vitesse immédiatement compensée par le PID, ce qui démontre la capacité du
système à rejeter les perturbations extérieures.
après avoir validé les paramètres du correcteur PID par simulation sous Simulink, nous avons
procédé à son implémentation sur microcontrôleur Arduino. Bien que MATLAB permette un
déploiement direct via le Support Package, nous avons opté pour une transcription manuelle
en langage C++ pour une meilleure optimisation des ressources et une plus grande autonomie
du système embarqué.