Analyse en boucle de rétroaction

Important

Ces gains sont, en effet, « des estimations éclairées »: leur exactitude n’est pas garantie et ils devraient donc être considérés comme un « point de départ » nécessitant plus de réglage.

Pour afficher les constantes de feedback (rétroaction), cliquez sur la flèche déroulante de la section Feedback.

Volet Analyse de la rétroaction

This view can be used to calculate optimal feedback gains for a PD or P controller for your mechanism (via LQR).

Entrer les paramètres du contrôleur

Note

Le préréglage fourni avec le « Spark Max » suppose que l’utilisateur a configuré le contrôleur pour fonctionner dans les unités d’analyse avec la fonction de facteur de mise à l’échelle de position/vitesse de l’API SPARK MAX.

Les gains de prédiction calculés sont des quantités dimensionnées. Malheureusement, on accorde souvent peu d’attention aux unités de gains PID en contrôles FRC®, et donc les différentes options typiques pour les implémentations de contrôleur PID diffèrent dans leurs conventions d’unités (qui ne sont souvent pas clairement indiquées à l’utilisateur).

Pour spécifier les bons réglages de votre contrôleur PID, utilisez les options suivantes.

Image des paramètres du contrôleur
  • Gain Settings Preset Ce menu déroulant remplira automatiquement les champs restants avec les paramètres probables pour l’une des nombreuses configurations courantes du contrôleur FRC. Notez que certains paramètres, tels que le rapport d’engrenage post-encodeur, le PPR et la présence d’un moteur suiveur doivent toujours être spécifiés manuellement (car l’analyseur n’a aucun moyen de les connaître sans intervention de l’utilisateur), et que d’autres peuvent varier en fonction de la configuration de l’utilisateur relativement aux valeurs par défaut données

  • Controller Period Il s’agit de la période d’exécution de la boucle de contrôle, en secondes. La fréquence par défaut de la boucle du RIO est de 50 Hz, ce qui correspond à une période de 0.02 s. Les contrôleurs embarqués de la plupart des « contrôleurs intelligents » fonctionnent à 1 Khz, soit une période de 0.001 s.

  • Max Controller Output Il s’agit de la valeur maximale de la sortie du contrôleur, par rapport aux calculs PID. La plupart des contrôleurs calculent les sorties avec une valeur maximale de 1, mais les contrôleurs de moteur Talon ont une sortie maximale de 1023.

  • Time-Normalized Controller Ce paramètre spécifie si le calcul PID est normalisé à la période d’exécution, ce qui affecte la mise à l’échelle du gain D.

  • Controller Type Ce paramètre spécifie si le contrôleur est une boucle intégrée au RIO ou s’il fonctionne sur un contrôleur de moteur intelligent tel qu’un Talon ou un SPARK MAX.

  • Post-Encoder Gearing Ce paramètre spécifie le rapport d’engrenage entre l’encodeur et le mécanisme lui-même. Ceci est nécessaire pour les boucles de contrôle qui ne permettent pas la mise à l’échelle d’unité spécifiée par l’utilisateur dans leurs calculs PID (par exemple, ceux qui s’exécutent sur Talons). Ce paramètre sera désactivé s’il n’est pas pertinent.

  • Encoder EPR Ce paramètre spécifie le nombre de fronts par rotation (et non les cycles par rotation) de l’encodeur utilisé, ce qui est nécessaire dans les mêmes cas que le rapport d’engrenage post-encodeur.

  • Has Follower S’il y a un contrôleur de moteur qui suit le contrôleur exécutant la boucle de contrôle, si la boucle de contrôle est exécutée sur un périphérique. Ce paramètre modifie la période de boucle effective.

  • Follower Update Period Ce paramètre est le taux auquel le moteur suiveur (s’il est présent) est mis à jour. Par défaut, il s’agit de 100 Hz (tous les 0.01 s) pour le Talon SRX, le Talon FX et le SPARK MAX, mais peut être modifié.

Note

Si vous sélectionnez un contrôleur de moteur intelligent tel que prédéfini (p. ex. TalonSRX, SPARK MAX, etc.), la case Convert Gains sera automatiquement cochée. Cela signifie que l’outil convertira vos gains afin qu’ils puissent être utilisés par les méthodes PID du contrôleur de moteur intelligent. Par conséquent, si vous souhaitez utiliser les boucles PID de WPILib, vous devez décocher cette case.

Délais de mesure

Note

Si vous utilisez les paramètres par défaut d’un contrôleur de moteur intelligent ou la boucle de contrôl PID fournie par WPILib sans filtrage supplémentaire, SysId le gère pour vous.

De nombreux « contrôleurs de moteur intelligents » (tels que le Talon SRX, Venom, Talon FX, et SPARK MAX) appliquent un filtrage passe-bas substantiel low-pass filtering à leurs mesures de vitesse d’encodeur, ce qui peut introduire une quantité importante de décalage de phase. Ce qui peut entraîner l’instabilité des gains calculés pour les boucles de vitesse. Cela peut être pris en compte à l’aide de la case Measurement Delay

Cependant, les délais de mesure ont déjà été calculés pour les paramètres par défaut des contrôleurs de moteur mentionnés précédemment, donc pour la plupart des utilisateurs, cela est géré en sélectionnant le bon préréglage dans Gain Settings Preset.

Ce qui suit ne s’applique que si l’utilisateur décide d’implémenter ses propres paramètres de filtrage personnalisés (par exemple, l’ajout d’un filtre à moyenne mobile à une boucle PID WPILib ou la modification de la période de mesure du contrôleur d’un moteur intelligent et/ou de la taille de la fenêtre de mesure), car le délai de mesure doit être recalculé. Voici la formule générale qui peut être utilisée pour les filtres avec des fenêtres mobiles (par exemple, filtre médian + filtre de moyenne mobile):

\[d = \frac{T(n - 1)}{2}\]

T est la période à laquelle les mesures sont échantillonnées (pour le roboRIO cette période est de 20 ms par défaut) et n est la taille de la fenêtre mobile utilisée.

Spécifier les critères d’optimalité

Finalement, l’utilisateur doit préciser ce qui sera considéré comme un contrôleur « optimal ». Ce qui se fait en spécifiant les tolérances souhaitées pour l’erreur du système et l’effort de contrôle - notez qu’il n’est pas garanti que le système obéira à ces tolérances en tout temps.

Saisie de critères d’optimalité pour le contrôleur de rétroaction

En règle générale, des valeurs plus petites pour le paramètre Max Acceptable Error et des valeurs plus grandes pour le paramètre Max Acceptable Control Effort se traduiront par des gains plus importants - cela se traduira par des efforts de contrôle plus importants, ce qui peut aider à avoir un meilleur suivi des points de consigne, mais peut causer un comportement plus violent et une plus grande usure sur les composants.

La valeur du paramètre Max Acceptable Control Effort ne doit jamais dépasser 12V, car cela correspond à la tension maximale de la batterie, et idéalement cette valeur devrait être un peu plus basse que la tension maximale.

Sélectionner le type de boucle

Il est typique de contrôler les mécanismes avec des PID de position et de vitesse, selon l’application. L’un ou l’autre peut être sélectionné à l’aide du menu déroulant Loop Type.

Spécification du type de boucle