Velocity/Force Limit control of a rotary axis

I have an axle testing system (detailed in another topic on the forum) that is driven and loaded with hydraulic motors through gearboxes, one on each corner of the axle being tested (3 total). The test stand will run testing cycles of various speed/torque points at each gearbox, switching between speed (velocity) and torque (force) limiting control modes as the cycle executes. Each gearbox has an encoder for speed feedback and torque feedback at the gearbox output.

All of the position/force examples I have seen have been of linear axes so I am not sure how to implement the force limit with my system. Being that this system can spin indefinitely, position is not relevant for us, except for calculating velocity.

The intended mode of operation was to send a velocity command, along with a force limit per corner, and allow the system to switch in and out of velocity or force limit control as the speeds and loads on each corner change throughout the cycle. Corners trying to stop rotation would be issued a 0 velocity command with a force limit matching the desired load. Then if load was removed, the velocity would be controlled to zero, versus running away as with force control.

How would I go about programming the switching in and out of force limit mode?

You will need to use the Velocity PID (or I-PD). Then, once you enable force limit with the Set Pressure/Force Limit Mode command, it should work as you described. This will work well for rotary axes.

So I would only have to command the axes to enter force limit control when the stand starts up, and just change the target force(s) from then on?

Would I be able to gear the force limit values to command values coming in from a PLC, or is that command only for pressure/force control?

A very simple way to get started is to use open loop with force/torque limit.
If you give a control signal of 1 volt or 10% the hydraulic motor should rotate at 10% of maximum speed until load slows the motor down. The motor will stop when the torque reaches the set point. The good thing about both velocity/torque limit and openloop/torque_limit is that if the load goes away the motor will not turn faster than the open loop voltage or velocity control will permit.

I think we will want to run velocity control vs open loop, since the system will be rotating under load the vast majority of the time, most often with an open differential. My zero speed example was just to explain how I would like the force limiting control to behave if driving force from the rest of the system drops away.

In open differential conditions we will run velocity/velocity/force limit by adjusting the force limits high on the two corners we want to run in velocity control, and low on the third / force limited corner. In locked differential conditions we will switch to velocity/force/force control by adjusting speed and torque setpoints. Switching between open and locked differential modes will occur during the test cycle and possibly while spinning as well.

If I understand it correctly, the velocity and force limit loops will both be running at the same time, and the RMC will select the smaller of the 2 control outputs each scan?

Yes, the algorithm is commonly know as a low select.


I just want to add a little clarification that these are not simple unidirectional hydraulic motors but secondary units capable of 4 quadrant operation.

That is correct, they are Rexroth A4VSO-500 DS1 control motors.