J'ai lu quelques articles pour contrôler des systèmes non linéaires (par exemple un pendule non linéaire). Il existe plusieurs approches pour cibler les systèmes non linéaires. Les contrôleurs les plus courants sont la linéarisation par rétroaction , le backstepping et les contrôleurs en mode coulissant .
Dans mon cas, j'ai fait les parties théoriques et pratiques du contrôle du modèle non linéaire d'un pendule simple ainsi que d'autres problèmes de manipulateurs en C ++. Pour le pendule, j'ai utilisé un contrôleur de backstepping pour résoudre la tâche de suivi du déplacement angulaire et de la vitesse. Les résultats sont
où et .
Les résultats sont bons. Cependant, le réglage du contrôleur prend du temps. La majorité des articles utilisent des algorithmes génétiques pour régler leurs contrôleurs tels que les contrôleurs PD, PID et backstepping. Je ne sais rien dans ce domaine et j'espère que quelqu'un fera la lumière sur ce concept, préférable s'il existe un échantillon MATLAB pour au moins contrôler un pendule simple.
Jusqu'à présent, j'ai conçu une interface graphique simple en C ++ / Qt afin de régler manuellement le contrôleur. Dans l'image ci-dessous, la réponse du contrôleur pour la fonction de pas.
Les algorithmes génétiques sont une technique d'apprentissage automatique qui supprime la nécessité pour un utilisateur de `` peaufiner '' un système et permet à la place à un ordinateur de comprendre comment régler le système. Les avantages de cette approche sont qu'elle libère du temps pour les chercheurs / utilisateurs et peut souvent conduire à un système mieux réglé que ce que le chercheur / utilisateur aurait pu réaliser lui-même.
L'idée générale d'utiliser un algorithme génétique suivrait un flux de contrôle de base comme suit:
Le meilleur exemple que je peux facilement montrer de ce principe dans la pratique est ce «jeu» qui utilise l'évolution génétique pour concevoir des véhicules capables de conduire sur un parcours. La même idée s'applique à tout système que vous souhaitez affiner sans avoir à effectuer de réglage vous-même. Exemple: http://rednuht.org/genetic_cars_2/
la source
Je suis confus par ce que vous appelez un algorithme génétique. Les contrôleurs PD, PID, etc. ne sont pas des méthodes heuristiques ni stochastiques, et ils ne sont pas basés sur des algorithmes évolutionnaires. Ce sont plutôt des algorithmes déterministes destinés à permettre le placement des pôles et des zéros d'une réponse système pour fournir les performances souhaitées (minimisation des erreurs, vitesse de réponse, temps de stabilisation, stabilité et rejet des perturbations). Une bonne référence d'apprentissage, à mon avis, est le livre de Kuo's Automatic Control Systems . Vous pouvez trouver un traitement moins rigoureux dans le livre de Raven Automatic Control Engineering .
la source