44 lines
1.3 KiB
Markdown
44 lines
1.3 KiB
Markdown
# Pendule inversé et contrôleur PID
|
|
|
|
## Présentation
|
|
|
|
Ce dossier contient un exemple classique de système physique qu'on peut chercher
|
|
à contrôler, le pendule inversé.
|
|
|
|
## Dépendances
|
|
|
|
Le projet utilise du code Python 3, et le générateur d'interfaces SWIG pour
|
|
exposer le code C généré par Heptagon à Python. Pour le lancer, vous devez :
|
|
|
|
- avoir Heptagon, à installer via OPAM,
|
|
|
|
- avoir SWIG, à installer via le gestionnaire de paquet de votre système
|
|
d'exploitation (`apt-get` sous GNU/Linux Debian ou Ubuntu, `pacman` sous Arch
|
|
Linux, `brew` sous macOS, etc.),
|
|
|
|
- avoir la bibliothèque Python `matplotlib`, à installer `pip install --user
|
|
matplotlib`.
|
|
|
|
## Utilisation
|
|
|
|
Vous pouvez lancer le programme en exécutant `make run`.
|
|
|
|
Pour lancer le programme avec l'affichage des courbes, exécutez `make runplot`.
|
|
Attention : afficher les courbes engendre un ralentissement assez conséquent.
|
|
|
|
L'interface utilisateur fonctione de la façon suivante :
|
|
|
|
- **Q** permet de quitter,
|
|
|
|
- **P** permet de mettre en pause,
|
|
|
|
- **R** permet de réinitialiser la simulation,
|
|
|
|
- **M** permet de changer de mode (manuel, contrôleur PID, contrôleur BangBang),
|
|
|
|
- **←** et **→** permettent de déplacer le mobile,
|
|
|
|
- **clic gauche** permet de déplacer le mobile à la souris.
|
|
|
|
Les deux dernières commandes ne fonctionnent qu'en mode manuel.
|