ssi_elec_regulation_asservissement
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| ssi_elec_regulation_asservissement [2025/11/29 14:33] – mistert2 | ssi_elec_regulation_asservissement [2025/12/09 13:54] (Version actuelle) – mistert2 | ||
|---|---|---|---|
| Ligne 4: | Ligne 4: | ||
| {{https:// | {{https:// | ||
| + | |||
| + | ==== MODELES MATLAB | ||
| + | |||
| + | {{https:// | ||
| + | |||
| + | {{https:// | ||
| + | |||
| ---- | ---- | ||
| Ligne 74: | Ligne 81: | ||
| Manipulations : | Manipulations : | ||
| - | * Ajouter le terme intégral : <mt>u = K_p e ;+; K_I \int e(t)\, | + | * Ajouter le terme intégral : <mt>u = K_p e + K_I \int e(t)\, |
| - | * Débuter avec K_I = 0.05, puis 0.1 max | + | * Débuter avec <mt>K_I</ |
| * Freiner l’axe puis relâcher | * Freiner l’axe puis relâcher | ||
| Ligne 82: | Ligne 89: | ||
| * L’erreur statique disparaît | * L’erreur statique disparaît | ||
| * La vitesse atteint précisément la consigne | * La vitesse atteint précisément la consigne | ||
| - | * Si K_I trop fort : dépassement, | + | * Si <mt>K_I</ |
| Conclusion : Le correcteur I supprime l’erreur statique, mais ne doit jamais être trop fort | Conclusion : Le correcteur I supprime l’erreur statique, mais ne doit jamais être trop fort | ||
| Ligne 92: | Ligne 99: | ||
| Manipulations : | Manipulations : | ||
| - | * Ajouter le terme dérivé : <mt>u = K_p e ;+; K_I \int e\,dt ;+; K_D \frac{de}{dt}</ | + | * Ajouter le terme dérivé : <mt>u = K_p e + K_I \int e\,dt + K_D \frac{de}{dt}</ |
| - | * Tester avec K_D = 0.01, puis 0.05 | + | * Tester avec <mt>K_D</ |
| * Freiner l’axe pour observer la réaction | * Freiner l’axe pour observer la réaction | ||
| Ligne 102: | Ligne 109: | ||
| * La stabilité augmente | * La stabilité augmente | ||
| - | Attention : Si K_D trop élevé → bruit, vibrations, instabilité | + | Attention : Si <mt>K_D</ |
| Conclusion : Le terme D stabilise le système, mais n’améliore pas la précision | Conclusion : Le terme D stabilise le système, mais n’améliore pas la précision | ||
| Ligne 119: | Ligne 126: | ||
| ==== Code Arduino du TP (consigne en tr/min, PID en ticks/s) ==== | ==== Code Arduino du TP (consigne en tr/min, PID en ticks/s) ==== | ||
| - | < | + | < |
| /* | /* | ||
| | | ||
| Ligne 136: | Ligne 143: | ||
| */ | */ | ||
| - | const int TICKS_PAR_TOUR = 20; // à ajuster selon le codeur | + | const int TICKS_PAR_TOUR = 90; // à ajuster selon le codeur |
| // --- Pont en H --- | // --- Pont en H --- | ||
| Ligne 180: | Ligne 187: | ||
| int rpmToPWM(float rpm) { | int rpmToPWM(float rpm) { | ||
| // Ajuste selon ton moteur | // Ajuste selon ton moteur | ||
| - | // Ex : 0–3000 tr/min -> 0–255 PWM | + | // Ex : 0–150 tr/min -> 0–255 PWM |
| if (rpm < 0) rpm = 0; | if (rpm < 0) rpm = 0; | ||
| - | if (rpm > 3000) rpm = 3000; | + | if (rpm > 150) rpm = 150; |
| - | return map(rpm, 0, 3000, 0, 255); | + | return map(rpm, 0, 150, 0, 255); |
| } | } | ||
| Ligne 220: | Ligne 227: | ||
| Serial.println(" | Serial.println(" | ||
| Serial.println(" | Serial.println(" | ||
| - | Serial.println(" | + | Serial.println(" |
| } | } | ||
ssi_elec_regulation_asservissement.1764426798.txt.gz · Dernière modification : de mistert2
