RoboRIO Kesintisi ve Mevcut Çekişi Anlama

Yüksek akım çekme olayları sırasında kendisini ve radyo gibi diğer kontrol sistemi bileşenlerini korumak için ve akü voltajının korunmasına yardımcı olmak için roboRIO, aşamalı bir kesinti koruma şeması içerir. Bu makale, bu şemayı açıklar, sistem akım çekmesi için proaktif olarak planlama hakkında bilgi sağlar ve robotunuzda meydana gelirse elektrik kesintisi olaylarını anlamak için PDP’nin yeni işlevselliğinin ve DS Günlük Dosyası Görüntüleyicisinin nasıl kullanılacağını açıklar.

roboRIO Kesinti Koruması

RoboRIO, batarya voltajını tehlikeli derecede düşük çeken büyük akım durumunda cihaz sıfırlamalarını önlemek ve giriş voltajını kendisine ve diğer kontrol sistemi bileşenlerine korumaya çalışmak için aşamalı bir kesinti koruma şeması kullanır.

Aşama 1 - 6V çıkış düşüşü

** Voltage Trigger - Gerilim Tetikleyici - 6,8 V **

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

Aşama 2 - Çıkışı Devre Dışı Bırakma

** Voltage Trigger - Gerilim Tetikleyici - 6,3V **

Voltaj 6,3V’un altına düştüğünde, kontrol cihazı voltaj düşürme koruma durumuna girecektir. Aşağıdaki göstergeler bu durumun ortaya çıktığını gösterecektir:

  • RoboRIO üzerindeki güç LED’i kehribar rengine dönecektir

  • Sürücü istasyonundaki voltaj göstergesinin arka planı kırmızıya dönecek

  • Sürücü İstasyonundaki mod ekranı ‘’Gerilim Kesintisi’’ olarak değişecektir

  • DS’nin CAN/Güç sekmesi 12V arıza sayacını 1 artıracaktır.

  • DS, DS günlüğüne bir kesinti olayı kaydeder.

Denetleyici, pil voltajını korumaya çalışmak için aşağıdaki adımları atacaktır:

  • PWM çıkışları devre dışı bırakılacaktır. Nötr değerini ayarlamış olan PWM çıkışları için (WPILib’deki tüm motor kontrolörleri), çıkış devre dışı bırakılmadan önce tek bir nötr puls gönderilecektir.

  • 6V, 5V, 3.3V User Rails devre dışı hale getirilir. (Bu, PWM pinlerindeki 6V çıkışları, DIO konektör bankasındaki 5V pinleri, Analog bankadaki 5V pinleri, SPI ve I2C bankasındaki 3.3V pinleri ve MXP bankasındaki 5V ve 3.3V pinlerini içerir)

  • Çıkışlar olarak yapılandırılan GPIO, High-Z’ye gider

  • Röle Çıkışları devre dışı bırakılır (düşük sürülür)

  • CAN tabanlı motor kontrolörlerine açık bir devre dışı bırakma komutu gönderilir

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

Kontrol cihazı, voltaj 7,5V’nin üzerine çıkana veya voltaj kesintisinin bir sonraki aşaması için tetiğin altına düşene kadar bu durumda kalır

Aşama 3 - Cihaz Karartması

Voltage Trigger - Gerilim Tetikleyici - 4.5V

4.5V’nin altında cihaz elektrik kesintisine uğrayabilir. Kesin voltaj bundan daha düşük olabilir ve cihazdaki yüke bağlıdır.

Cihaz normal önyükleme sırasına başlayacağı zaman, kontrol cihazı voltaj 4,65V’nin üzerine çıkana kadar bu durumda kalacaktır.

Kesintiyi Önleme - Proaktif Akım Çekiş Planlaması

Bir kesinti durumundan kaçınmanın anahtarı, robotunuzun mevcut çekimini proaktif olarak planlamaktır. Bunu yapmanın en iyi yolu, bir çeşit güç bütçesi yaratmaktır. Bu, güç kullanımını ve dolayısıyla bir maçın sonundaki pil durumunu en iyi şekilde anlamak için hem tahmini akım çekimini hem de süreyi ölçmeye çalışan karmaşık bir belge olabilir veya mevcut kullanımın basit bir envanteri olabilir. Bunu yapmak için:

  1. 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.

  2. Robotunuzun aktarma organı, manipülatör, ana oyun mekanizması vb. Gibi farklı işlevlerini listeleyin.

  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. Analizinizde karşılıklı olarak birbirini dışlayan işlevler belirlediyseniz, yazılımda dışlamayı zorunlu kılmayı düşünün. Ayrıca, çıktı limitleri veya istisnaları dinamik olarak sağlamak için (örneğin, aktarma organı akımı X’in üzerinde olduğunda bir mekanizma motorunu çalıştırmayın veya yalnızca motora izin vermeyin), robot programınızda PDP’nin akım izlemesini (aşağıda daha ayrıntılı olarak ele alınmıştır) kullanabilirsiniz. aktarma organı akımı Y’nin üzerinde olduğunda çıkışın yarısına kadar çalıştırın.

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).

Kesintileri Tanımlama

Bir voltaj düşmesini belirlemenin en kolay yolu, DS’nin CAN \ Güç sekmesine tıklamak ve 12V hata sayısını kontrol etmektir. Alternatif olarak, Driver Station Log Viewer’ı kullandıktan sonra Driver Station Log’u gözden geçirebilirsiniz. Günlük, yukarıdaki görüntüdeki gibi parlak turuncu bir çizgi ile kesintileri belirleyecektir (bu kesintilerin bir tezgah üstü beslemeyle indüklendiğini ve tipik bir FRC robotundaki kesintilerin süresini ve davranışını yansıtmayabileceğini unutmayın).