Djinious
Commande et apprentissage par renforcementMéthodes d’ingénierie

Commande et RL du pendule inversé sur chariot

Le benchmark canonique de la commande sous-actionnée, traité de bout en bout — dynamique non linéaire, un LQR qui stabilise le pendule inversé, une mise en mouvement par énergie, une politique d’apprentissage par renforcement sans modèle, et un jalon de robustesse par Monte-Carlo.

DjiniousLab
Un graphique de notebook DjiniousLab du pendule sur chariot se redressant de la position pendante à la verticale et étant rattrapé par le contrôleur à t = 7,2 s, avec le tracé de la force de commande
x, ẋ, θ, θ̇
4 étatsx, ẋ, θ, θ̇
temps de stabilisation LQR
3,68 stemps de stabilisation LQR
récompense RL apprise
299.6 / 300récompense RL apprise
notebooks de conception
9notebooks de conception
composition .djl
1composition .djl
des 300 tirages de robustesse rattrapés
100%des 300 tirages de robustesse rattrapés

Le pendule sur chariot, du manuel scolaire à l’apprentissage par renforcement.

Un pendule articulé sur un chariot, le chariot poussé par une force horizontale — le benchmark par lequel commence chaque cours de commande, et celui vers lequel revient chaque article de RL. Ici, c’est un seul programme : la dynamique non linéaire exacte, un LQR à retour d’état complet qui rattrape le pendule inversé, une mise en mouvement par façonnage d’énergie, une politique apprise sans modèle, et une validation de robustesse par Monte-Carlo — le système et son stabilisateur également composés en un seul .djl exécutable sur le canevas.

Cinq façons d’équilibrer un pendule.

D’un modèle dérivé à la main à une politique qui apprend sans aucun modèle — chaque méthode est son propre notebook exécutable, toutes sur le même système.

Dynamique non linéaire

Les équations du mouvement exactes du pendule sur chariot, dérivées et intégrées. L’équilibre vertical est véritablement instable — ∂θ̈/∂θ > 0 — si bien que toute exécution non commandée bascule, la référence de base à battre.

Stabilisation LQR

Une loi de retour d’état complet issue de lqr(A, B, Q, R) ramène chaque valeur propre en boucle fermée dans le demi-plan gauche et stabilise une inclinaison de 11° jusqu’à la verticale en 3,68 s.

Mise en mouvement par énergie

Une loi de façonnage d’énergie pompe le pendule depuis la position pendante jusqu’à faire le tour complet, puis passe le relais au LQR, qui le rattrape à la verticale à t ≈ 7,2 s.

Apprentissage par renforcement

Une politique par méthode d’entropie croisée apprend à équilibrer depuis des conditions initiales aléatoires sans aucun modèle — convergeant vers une récompense de 299,6/300 depuis une référence aléatoire de −220.

Robustesse

Un balayage Monte-Carlo de 300 essais perturbe la masse du chariot, la masse et la longueur du pendule de ±30 % et donne des impulsions au pendule — les 300 sont rattrapés.

Optimisation des gains

Une recherche de Nelder-Mead bornée réajuste les gains du LQR par rapport à un coût en boucle fermée, le réduisant de 34,5 % tout en gardant des gains physiquement réalistes.

DjiniousLab
Un graphique de notebook de l’angle du pendule se redressant depuis π et étant rattrapé à la verticale, avec le tracé de la force de commande pointant au moment du rattrapage
Mise en mouvement par énergie et rattrapage : le pendule est pompé depuis la position pendante à travers une séquence d’oscillations croissantes, puis le contrôleur prend le relais et le conduit à la verticale à t = 7,21 s — la force de commande (pointillés) pointe exactement au moment du relais.

Le système et son contrôleur, composés sur un canevas.

La boucle fermée entière — le pendule sur chariot non linéaire et sa loi LQR à retour d’état complet — est un seul composant .djl acausal. Ses équations sont écrites implicitement dans les accélérations ẍ et θ̈, un petit système algébrique que le noyau résout à chaque pas, ce qui en fait un véritable modèle différentiel-algébrique nécessitant un solveur raide Rodas5P, pas un pas de temps codé à la main. Il s’abaisse et s’exécute via le même moteur de production que celui utilisé par le canevas : relâché depuis une inclinaison de 0,20 rad, le contrôleur conduit le pendule à 0,005 rad. Les gains sont les mêmes valeurs lqr() que celles calculées par les notebooks.

DjiniousLab
Un graphique de notebook des états du pendule sur chariot stabilisé par LQR se stabilisant à zéro en 3,68 secondes
Stabilisation LQR : depuis une inclinaison initiale, la position du chariot et l’angle du pendule se stabilisent tous deux à zéro en 3,68 s. Le système en boucle ouverte a une valeur propre à +3,97 dans le demi-plan droit ; la loi de rétroaction ramène chaque pôle en boucle fermée dans le demi-plan gauche.
DjiniousLab
Un graphique de notebook de la récompense d’apprentissage par renforcement grimpant depuis une référence négative jusqu’à près du maximum au fil des itérations d’entraînement
Apprentissage sans modèle : une politique par méthode d’entropie croisée, sans aucun modèle de dynamique, apprend à équilibrer le pendule depuis des départs aléatoires — sa récompense grimpe d’une référence aléatoire de −220 à une valeur convergée de 299,6/300.

Chaque résultat est un chiffre que vous pouvez réexécuter.

Chaque notebook est subordonné à son propre résultat vérifié sur worker, et le stabilisateur .djl est confirmé en résolution via le moteur de production du canevas.

Résultat

  • Temps de stabilisation LQR : 3,68 s
  • Rattrapage après mise en mouvement : t ≈ 7,2 s
  • Récompense RL apprise : 299,6/300
  • Optimisation Q/R : coût −34,5 %
  • Robustesse rattrapée : 300/300

Détail

  • Temps de stabilisation LQR : tous les pôles dans le demi-plan gauche
  • Rattrapage après mise en mouvement : θ → 0,0018 rad
  • Récompense RL apprise : référence −220
  • Optimisation Q/R : recherche bornée
  • Robustesse rattrapée : paramètres ±30 %

Un benchmark, traité honnêtement.

Le pendule est un pendule à masse ponctuelle sur un chariot sans frottement — le pendule sur chariot standard de manuel, pas un bras flexible ou multicorps. La politique d’apprentissage par renforcement est une méthode d’entropie croisée linéaire choisie pour sa rapidité et sa reproductibilité, pas un réseau profond ; l’optimiseur est une recherche locale bornée. Ce que le programme montre est l’arc complet — dériver, stabiliser, mettre en mouvement, apprendre et vérifier — sur un seul système, avec le contrôleur vivant aussi comme source acausale composable que vous pouvez câbler dans un système plus vaste.