Multiple control outputs per axis (via summation gearbox)


I am new the hydraulic motion world, (13 years PLC controls background) and am working on a control upgrade project where we are considering using a Delta RMC200 in concert with a Controllogix PLC. The system is for testing vehicle drive axles and has 3 summation gearboxes (one on each corner of the axle) with 3 hydraulic motors on each gearbox for a total of 9 hydraulic motors. Each motor has swashplate angle feedback, and the ability to either motor or absorb depending on the swash plate angle command, so the system can either load or drive at every corner. One hydraulic motor on each gearbox has an quadrature encoder for speed feedback, and we measure shaft torque at the output of the gearbox. Depending on the torque capacity of the axle being tested, anywhere from 1 to all 3 hydraulic motors per gearbox (in any combination) are used. The system is fed by an 750HP HPU, and the outputs of the hydraulic motors feed back into the supply header.

My initial intention was to run each corner of the axle in Velocity/Force control to command speeds/loads on the axle, using a position axis then mirror the control output to the slave motors if they are being used. In an offline sample project, I attempted to create a control only output and push the master control output directly into the slave output using an expression, but the controller displayed an error stating the location could not be written to.

What would the best approach be with a system like this? Would there be benefit to running an inner control loop on swashplate angle for each hydraulic motor and have that tied into the outer loop running Velocity/Force?



I think your approach is good. To copy the Control Output from one axis to other axes, you will need to make a user program that sends a Direct Output or Open Loop command with the desired value to the other axes. This step will need to repeat continuously. With this minor tweak, I think your whole approach is entirely valid.

And yes, I would expect that running an inner loop on the swash plate will be of great benefit. Otherwise, the swashplate will likely swing wildly.


I agree with Jacob that there is a good chance that the system will not be controllable if you don’t have closed loop control of the swashplates.

If you use inner loops for swashplate control then you only need one axis to control each gearbox because you can link three inner loops to each of your three outer loops.

If you don’t use inner loops for the swashplates then you may still be able to get away with only three control axes by switching the output from the axes to the appropriate motors using relays (assuming voltage input to motors).


Thanks for the suggestion, I have been doing a lot of reading in the manual and am still wrapping my head around all the different modes and commands available. The manual lists that the open loop rate move ramp rate has to be above 0, but does not list a maximum limit, is there some way to disable the ramping entirely, or do I just need a very large value to keep it out of the way?

If I ran the inner loop, then I would need to change the control axis to Virtual, correct? Then set the outer loop command to the setpoint for the inner swashplate angle control loop? The manual mentions that the inner loop should be ~4x as fast as the outer loop, is that a fairly hard rule or just a rough guideline? I haven’t looked at data yet to see what the relationship is but I might be able to get my hands on some old data.

Each motor has an on-board servo valve for control so I will need to have a separate output for each one. The motors/pumps will all spin with the gearbox whenever there is rotation, so when they are not in use they need to be kept at zero swash plate angle. I do not think they have on board electronics since the test stand was built in the late 90’s.



Set the open loop ramp to a large value to get it out of the way. 10000 should do it.

If you use cascaded loops, the inner loop will be a normal position control axis, and it’s output will go to the swashplate control. The outer loop will be an Outer Loop axis, which is just like a normal axis, except that it does not have a physical Control Output, just a software one. Like David said, you only need one outer loop per gearbox. The inner loops will gear to the output of the outer loop, so you can select which ones are gearing to the outer loop.

The 4x rule is just a rough guideline of the system response for certain type of applications. Some applications need cascaded loop regardless of the relative system response times.