Caída de voltaje en roboRIO y Comprender el Consumo de Corriente

Para ayudar a mantener el voltaje de la batería y preservarse a sí misma y a otros componentes de control como el radio durante eventos de alto consumo de corriente, el roboRIO contiene un esquema de protección de caída de tensión. Este artículo describe dicho esquema, provee información acerca de una planeación proactiva de protecciones para el consumo de corriente actual del sistema, y describe como usar la nueva función de la PDP así como del DS LogFile Viewer para comprender los eventos de caída de tensión si es que ocurren en su robot.

Protección de Caída de Tensión del roboRIO

El roboRIO utiliza un esquema de protección contra de caída de tensión para mantener su voltaje de alimentación y de otros componentes del sistema de control con el fin de evitar reinicios de dispositivos en eventos de alto consumo de tensión que lleven el voltaje de la batería a un nivel peligrosamente bajo.

Etapa 1 – Salida de voltaje 6V

Disparo de voltaje – 6.8V

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

Etapa 2 - Salida Deshabilitada

Disparo de voltaje – 6.3V

Cuando el voltaje cae por debajo de 6.3 V, el controlador iniciará el estado de protecciones para caídas de tensión. Los siguientes indicadores mostraran que dicha condición ha ocurrido:

  • Led de encendido en el roboRIO encenderá amarillo.

  • El fondo del monitor de voltaje en la Driver Station se tornará rojo.

  • En la Driver Station el modo de visualización se volverá a caída de tensión.

  • La etiqueta de CAN/Power del DS incrementará la falla de 12V en 1.

  • La DS registrará una caída de tensión en el DS Log.

El controlador hará los siguientes pasos para tratar de preservar el voltaje de la batería:

  • Las salidas PWM se desactivarán. Para las salidas PWM que han fijado su valor de neutro (todos los controladores de motor en WPILib) se enviará un único pulso de neutro antes de que se desactive la salida.

  • Vías de 6V, 5V, 3.3V deshabilitados (Esto incluye las salidas de 6V en los pines de PWM, los pines de 5V de los conectores del grupo DIO, los pines de 5V de los conectores del grupo Analógicos, los pines de 3.3V en los grupos de SPI e I2C y los 5V y 3V pines en el grupo MXP)

  • GPIO configurado como salidas go to High-Z

  • Relevadores de salida son deshabilitados (driven low)

  • Los controladores de motor basado en CAN se les envía un comando de deshabilitados.

  • Pneumatic Devices such as the CTRE Pneumatics Control Module and REV Pneumatic Hub are disabled

El controlador se mantendrá en este estado hasta que el voltaje sea mayor a 7.5 o baje al siguiente disparo de voltaje para la siguiente etapa de las protecciones de caída de voltaje.

Etapa 3 – Apagón de dispositivo

Disparo de voltaje – 4.5V

Debajo de 4.5V el dispositivo puede apagarse. El voltaje exacto pude ser menor que esto y depende de la carga en el dispositivo.

El controlador se mantendrá en este estado hasta que el voltaje sea mayor a 4.65V, cuando esto suceda el dispositivo comenzará se secuencia normal de arranque.

Prevención de caída de tensión – Planeación proactiva para el consumo de corriente

La clave para prevenir una condición de caída de tensión es una planeación proactiva para el consumo de la corriente actual del robot. La mejor manera para hacer esto es crear un tipo de presupuesto de corriente. Esto puede ser un documento complejo que intente cuantificar ambas, el consumo de corriente estimado y tiempo de esfuerzo, para una mayor comprensión del uso de corriente y con esto el estado de la batería al finalizar el partido, o simplemente puede ser un inventario de la corriente usada. Para hacer esto:

  1. Establezca el consumo máximo de corriente «sostenida» (entendiendo por sostenida lo que no es momentáneo). Esta es probablemente la parte más difícil de crear el presupuesto de energía. El consumo de corriente exacto que una batería puede sostener mientras mantiene un voltaje de 7+ voltios depende de una variedad de factores tales como la salud de la batería (ver este artículo para medir la salud de la batería) y el estado de carga. Como se muestra en la hoja de datos de la NP18-12 <https://www.farnell.com/datasheets/575631.pdf>, el gráfico de voltaje de los terminales se vuelve muy empinado a medida que el estado de carga disminuye, especialmente cuando el consumo de corriente aumenta. Esta hoja de datos muestra que a una carga continua de 3CA (54A) una batería nueva puede funcionar de forma continua durante más de 6 minutos manteniendo una tensión en bornes de más de 7V. Como se muestra en la imagen anterior (utilizada con permiso del documento Team 234s Drive System Testing), incluso con una batería nueva, el consumo de 240A durante más de un segundo o dos es probable que cause un problema. Esto nos da algunos límites en el establecimiento de nuestro consumo de corriente sostenida. Para los propósitos de este ejercicio, vamos a establecer nuestro límite en 180A.

  2. Enlistar las diferentes funciones de su robot tales como el chasis, algún manipulador, mecanismo principal del juego, 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 usted ha determinado funciones mutuamente exclusivas en su análisis, considere la posibilidad de forzar la exclusión en el programa. Usted también puede usar el monitor actual de la corriente del PDP (explicado más detalle a continuación) en su programa del robot para proveer límites de salida o exclusiones dinámicas (por ejemplo, no encender un motor de un mecanismo cuando la corriente del chasis este por encima de X o solamente permita a un motor trabajar a la mitad de su capacidad cuando la corriente el chasis este por encima de Y).

Settable Brownout

The NI roboRIO 1.0 does not support custom brownout voltages. It is fixed at 6.3V as mentioned in Stage 2 above.

The NI roboRIO 2.0 adds the option for a software settable brownout level. The default brownout level (Stage 2) of the roboRIO 2.0 is 6.75V.

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

Measuring Current Draw using the PDP/PDH

The FRC® Driver Station works in conjunction with the roboRIO and PDP/PDH to extract logged data from the PDP/PDH and log it on your DS PC. A viewer for this data is still under development.

In the meantime, teams can use their robot code and manual logging, a LabVIEW front panel or the SmartDashboard to visualize current draw on their robot as mechanisms are developed. In LabVIEW, you can read the current on a PDP/PDH channel using the Get PD Currents VI found on the Power pallet. For C++ and Java teams, use the PowerDistribution class as described in the Power Distribution article. Plotting this information over time (easiest with a LV Front Panel or with the SmartDashboard by using a Graph indicator can provide information to compare against and update your power budget or can locate mechanisms which do not seem to be performing as expected (due to incorrect load calculation, incorrect efficiency assumptions, or mechanism issues such as binding).

Identificar caídas de tensión

La manera más sencilla de identificar una caída de tensión es dando clic en la pestaña de CANPower de la DS y revisar el contador de la falla de 12V. Al mismo tiempo, puede revisar el registro de la Driver Station después de usar el Driver Station Log Viewer. Este registro identificará caídas de tensión con una línea naranja brillante, tal como de la imagen a continuación (nota, estas caídas de tensión fueron introducidas con un osciloscopio y no reflejan la duración ni el comportamiento típico de caídas de tensión en un robot de FRC).