Baisse de tension du roboRIO et compréhension de la consommation de courant

Afin d’aider à maintenir la tension de la batterie pour la préserver ainsi que d’autres composants du système de contrôle comme la radio dans des situations d’appel élevé de courant, le roboRIO est pourvu d’un système organisé de protection contre la baisse de tension. Cet article décrit ce système, fournit des informations sur la planification proactive de l’appel de courant du système et décrit comment utiliser la nouvelle fonctionnalité du PDP ainsi que le Visionneur de fichiers journaux DS pour comprendre les manifestations de baisses de tensions si elles se produisent sur votre robot.

Protection contre la baisse de tension du roboRIO

Le roboRIO utilise un système organisé de protection contre la baisse de tension pour tenter de préserver la tension d’entrée, pour lui-même et d’autres composants du système de contrôle afin d’éviter la réinitialisation des dispositifs en cas d’appels de courant élevés tirant la tension de la batterie dangereusement vers le bas.

Étape 1 - baisse de sortie de 6v

Déclencheur à tension - 6.8V

When the voltage drops below 6.8V, the 6V output on the PWM pins will start to drop.

Étape 2 - Désactiver la sortie

Déclencheur à tension - 6.3V

Lorsque la tension descend en dessous de 6,3 V, le contrôleur entrera dans l’état de protection contre la baisse de tension. Les indicateurs suivants montrent que cette condition s’est produite :

  • Le voyant Power LED du roboRIO deviendra ambré

  • L’arrière-plan de l’affichage de tension sur la Driver Station deviendra rouge

  • Le mode d’affichage sur la Driver Station changera à Voltage Brownout

  • L’onglet CAN/Power du DS incrémente le compteur 12V fault 1.

  • La DS enregistrera un événement de baisse de tension dans le journal DS.

Le contrôleur prendra les mesures suivantes pour tenter de préserver la tension de la batterie :

  • Les sorties PWM seront désactivées. Pour les sorties PWM dont la valeur neutre est configurée (tous les contrôleurs de moteurs de WPILib), une impulsion neutre unique sera envoyée avant que la sortie ne soit désactivée.

  • Les rails d’utilisateur 6V, 5V, 3.3V sont désactivés (Cela inclut les sorties 6V sur les broches PWM, les broches 5V dans la reglette de raccordement DIO, les broches 5V dans le module analogique, les broches 3.3V dans le module SPI et I2C et les broches 5V et 3.3V dans le module MXP)

  • Les ports GPIO configurés en sorties passent à un état haute-impédence (High-Z)

  • Les sorties de relais sont désactivées (mises au niveau bas)

  • Les contrôleurs moteurs de type CAN reçoivent une commande explicite de désactivation

  • Les dispositifs pneumatiques tels que le module de contrôle pneumatique CTRE et le concentrateur pneumatique REV sont désactivés

Le contrôleur restera dans cet état jusqu’à ce que la tension monte à plus de 7,5 V ou tombe en dessous du seuil de déclanchement pour l’étape suivante de la chute de tension

Étape 3 - Arrêt de l’appareil

Déclencheur à tension - 4.5V

En dessous de 4.5V l’appareil peut s’éteindre. La tension exacte peut être inférieure à cette valeur et dépend de la charge sur l’appareil.

Le contrôleur restera dans cet état jusqu’à ce que la tension s’élève au-dessus de 4,65 V lorsque l’appareil commencera la séquence de démarrage normale.

Éviter la baisse de tension - Planification proactive de la consommation de courant

La façon pour éviter une situation de baisse de tension est de planifier de manière proactive l’appel de courant de votre robot. La meilleure façon de le faire est de créer une certaine forme de budget de puissance. Il peut s’agir d’un document complexe qui tente de quantifier à la fois le courant consommé estimé et le temps dans un effort de mieux comprendre l’utilisation de la puissance et donc l’état de la batterie à la fin d’un match, ou il peut être un simple inventaire de l’utilisation du courant. Pour ce faire :

  1. Établissez le courant maximum « soutenu » (soutenu étant défini ici comme non momentané). C’est probablement la partie la plus difficile de la création du budget de puissance. La consommation de courant exacte qu’une batterie peut supporter tout en maintenant une tension de plus de 7 volts dépend de divers facteurs tels que la santé de la batterie (voir ceci, un article de mesure de la santé de la batterie) et de l’état de charge. Comme le montre la fiche technique NP18-12, le graphique de tension aux bornes devient très raide à mesure que l’état de charge diminue, en particulier lorsque la consommation de courant augmente. Cette fiche technique montre qu’à une charge continue de 3CA (54A), une batterie neuve peut fonctionner en continu pendant plus de 6 minutes tout en maintenant une tension aux bornes supérieure à 7V. Comme indiqué dans l’image ci-dessus (utilisé avec l’autorisation du document Team 234s Drive System Testing <https://www.chiefdelphi.com/t/paper-new-control-functions-drive-system-testing/139165> __) , même avec une batterie neuve, consommer 240A pendant plus d’une seconde ou deux est susceptible de causer un problème. Cela nous donne quelques limites sur l’établissement de notre consommation de courant soutenu. Pour les besoins de cet exercice, nous fixerons notre limite à 180 A.

  2. Énumérez les différentes fonctions de votre robot telles que la transmission, le manipulateur, le mécanisme de jeu principal, etc.

  3. Start assigning your available current to these functions. You will likely find that you run out pretty quickly. Many teams gear their drivetrain to have enough torque to slip their wheels at 40-50A of current draw per motor. If we have 4 motors on the drivetrain, that eats up most, or even exceeds, our power budget! This means that we may need to put together a few scenarios and understand what functions can (and need to be) be used at the same time. In many cases, this will mean that you really need to limit the current draw of the other functions if/while your robot is maxing out the drivetrain (such as trying to push something). Benchmarking the « driving » current requirements of a drivetrain for some of these alternative scenarios is a little more complex, as it depends on many factors such as number of motors, robot weight, gearing, and efficiency. Current numbers for other functions can be done by calculating the power required to complete the function and estimating efficiency (if the mechanism has not been designed) or by determining the torque load on the motor and using the torque-current curve to determine the current draw of the motors.

  4. Si vous avez déterminé des fonctions mutuellement exclusives dans votre analyse, envisagez d’appliquer l’exclusion dans le logiciel. Vous pouvez également utiliser la surveillance du courant du PDP (couvert plus en détail ci-dessous) dans votre programme robot pour obtenir des limites de sortie ou des exclusions dynamiquement (comme ne pas actionner un moteur de mécanisme lorsque le courant de transmission est supérieur à X ou seulement laisser le moteur fonctionner jusqu’à la moitié de sortie maximale lorsque le courant de transmission est au-dessus de Y).

Brownout réglable

Le NI roboRIO 1.0 ne prend pas en charge les tensions de brownout personnalisées. Il est fixé à 6.3 V comme mentionné à l’étape 2 ci-dessus.

Le NI roboRIO 2.0 ajoute l’option pour un niveau de brownout réglable par logiciel. Le niveau de brownout par défaut (étape 2) du roboRIO 2.0 est de 6.75 V.

RobotController.setBrownoutVoltage(7.0);
frc::RobotController::SetBrownoutVoltage(7_V);

Mesure de la consommation de courant à l’aide du PDP/PDH

L’application Driver Station FRC® travaille en conjonction avec le roboRIO et le PDP/PDH pour extraire les données enregistrées du PDP/PDH et les enregistrer sur votre PC DS. Un visionneur pour ces données est encore en développement.

En attendant, les équipes peuvent utiliser leur code robot et l’enrégistrement manuel, un panneau avant LabVIEW ou le SmartDashboard pour visualiser la consommation actuelle de courant de leur robot au fur et à mesure que les mécanismes entrent en action. Sous LabVIEW, vous pouvez lire le courant sur un canal PDP/PDH à l’aide l’instrument virtuel Get PD Currents qui se trouve dans la palette Power. Pour les équipes C++ et Java, utilisez la classe PowerDistribution comme décrit dans l’article Power Distribution. Tracer ces informations au fil du temps (plus facile avec un panneau avant LV ou avec le SmartDashboard à l’aide d’un indicateur graphique) peut fournir des informations pour comparer et mettre à jour votre budget de puissance ou peut localiser des mécanismes qui ne semblent pas fonctionner comme prévu (en raison d’un calcul de charge incorrect, d’hypothèses d’efficacité incorrectes ou de problèmes de mécanisme tels que la liaison).

Identification des baisses de tension

La façon la plus simple d’identifier une baisse de tension est de cliquer sur l’onglet CANPower de la Driver Station et de vérifier le nombre de défauts 12V. Alternativement, vous pouvez consulter le journal de la Driver Station après coup à l’aide du visionneur de journal. Le journal indiquera les baisses de tension avec une ligne orange vif, comme dans l’image ci-dessus (notez que ces baisses de tension ont été induites avec une alimentation sur un banc d’essai et peuvent ne pas refléter la durée et le comportement des baisses de tension sur un robot FRC typique).