paper: New Control Functions - Drive System Testing

Thread created automatically to discuss a document in CD-Media.

New Control Functions - Drive System Testing
by: Chris Fultz

As part of our beta testing, we used the roboRIO for some drive system evaluation testing, capturing data not available through the 2014 control. We identified an operational effect of one of the control features that we felt would be good to share.

As part of our beta testing, we used the roboRIO for some drive system evaluation testing, capturing data not available through the 2014 control.

Through this testing, we identified an operational effect of one of the control features that we felt would be good to share.

The control disables output to the PWMs when the system voltage drops below 7V. This is a good feature as it helps keep the control and radio on-line. Operationally, this can cause the PWMs to cycle off and on as voltage recovers and then reduces if no change is made by the operator.

DRIVE SYSTEM TEST – NEW CONTROL FUNCTION V2.pdf (163 KB)

2 Likes

As part of our beta testing, we used the roboRIO for some drive system evaluation testing, capturing data not available through the 2014 control. We were testing 2, 4 and 6 CIM and 4 CIM+2mini-CIM drives and capturing data, including amperage and voltage.

Through this testing, we identified an operational effect of one of the control features that we felt would be good to share.

The new control disables output to the PWMs when the system voltage drops below 7V. This is a good feature as it helps keep the control and radio on-line.

However, operationally, this can cause the PWMs to cycle off and on as voltage recovers and then reduces if no change is made by the operator. Depending on the situation - pushing, lifting, etc. - the effect on the robot may be a non-event or may create a response that needs to be managed with software or by operator actions.

The attached paper describes the specific testing we were doing, and the results. It includes 2 charts that show graphically what was occurring.

As teams prepare to use the new control for 2015, we thought this was an interesting and different control response that would be worth sharing.

Good information to know. Thanks.

Thank you for sharing this. I noticed that the paper only refers to the two CIM configuration. What were your results when testing the various other combinations you mentioned above?

Thanks a lot for sharing this. This is pretty interesting, and could potentially cause a lot of headaches for teams that run 6-cim drivetrains in high gear. I only have theoretical calculations, but it appears that if you have a fully loaded robot (weight-wise), and run in high (fast) gear, you could potentially not even start. I’m using my drivetrain calculator (available as a white paper), and looking at a gear ratio of 4.63:1, 4 inch wheels, and a battery voltage of 12.8V (typical of a mid-match voltage) (Note: this is the default setting for my drivetrain simulator). From a stop, it looks like the battery voltage could drop down to 6.67V if the robot were commanded to go full forward. Again, this is all just a simulation that has absolutely no guarantee of correctness, but if possible, I’d love to see if this causes problems in reality.

We only did this specific test with the 4 CIM configuration because with 6 CIMs or 4+2 we just spun the wheels.

The full paper has data on 2, 4, 6 and 4+2 configurations for basic acceleration and for pushing another robot (130 pounds). We are still a few days away from publishing that.

Out of curiosity, does this affect CAN controlled controllers? Or just PWM?

My understanding from last night’s GameSense is that the load shedding that occurs at 7v impacts all speed controllers, no matter how interfaced.

It would also be interesting to see if SPI cut out as well.

This worries me. I know during hard acceleration at IRI with our 6 CIM Drive we got below 7 volts. I’ll have to look at our logs and see how often we actually dropped blow.

SPI should function until the battery voltage drops too low for the roboRIO’s 5v supply to be maintained. The brownout “load shedding” is a software function that explicitly turns off pneumatic solenoid valves and motor speed controllers when the battery voltage falls below a certain threshhold. It is done in order to try to prevent the voltage from dropping further and causing a complete loss of the control system.

How would that be implemented with a CAN connection without affecting other non-motor CAN devices?

(I could guess, but if anyone knows where this is documented would you please post a link)

Consider this an opportunity to do dynamic power management. You can monitor battery voltage and motor currents, and you should be able to come up with a way to keep the voltage from sagging low enough to trigger the automatic brownout.

Yeah were probably going to look into doing something like this. I’m glad they added current monitoring this year.

Here’s the graphic from last night’s Behind The Lines showing the key battery voltage points and what happens when they’re reached.

NOTE: This is different from what was shown during the episode, and is more accurate.

http://i.imgur.com/rJcp9fg.png](http://i.imgur.com/rJcp9fg.png)

The BTL episode can be viewed here: https://www.youtube.com/watch?v=uUYlS2Vkyuo

Toward the end of our match, we get the battery voltage down to 6.5V easily during normal driving. This will affect us.

Perhaps there could be an option to disable this “feature”. I understand that it’s there for a reason, but I’m comfortable cutting it a little closer.

As a related question (I was never electrically closely involved) - could you regulate the 12V power being fed to the roborio?

CAN Speed Controllers need an enable ‘flag’ to be sent out over CAN before they output anything. That enable ‘flag’ (or lack thereof) presumably wouldn’t affect devices that it doesn’t need to.

The VRM does have enough capacity to run the RoboRIO, but that configuration will most likely not be legal for competition.

Is there a way to calculate how much current it would take in total to drop battery voltage to a certain level? It seems like there should be, but I don’t know where to start.

You’d have to know the batteries current nominal voltage (no load), the batteries resistance (which will change some over the match), and the current current draw.

I imagine you could BS this enough to get a decent cutoff that is somewhat conservative.