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 :
Establish the max « sustained » current draw (with sustained being loosely defined here as not momentary). This is probably the most difficult part of creating the power budget. The exact current draw a battery can sustain while maintaining a voltage of 7+ volts is dependent on a variety of factors such as battery health (see this article for measuring battery health) and state of charge. As shown in the NP18-12 data sheet, the terminal voltage chart gets very steep as state of charge decreases, especially as current draw increases. This datasheet shows that at 3CA continuous load (54A) a brand new battery can be continuously run for over 6 minutes while maintaining a terminal voltage of over 7V. As shown in the image above (used with permission from Team 234s Drive System Testing document), even with a fresh battery, drawing 240A for more than a second or two is likely to cause an issue. This gives us some bounds on setting our sustained current draw. For the purposes of this exercise, we’ll set our limit at 180A.
Énumérez les différentes fonctions de votre robot telles que la transmission, le manipulateur, le mécanisme de jeu principal, etc.
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.
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).