By Donald Roach
In the middle 1990’s I worked on a control system to automate the dump mechanism for a front loading refuse truck. The refuse container in front of the vehicle had to remain level while moving from the ground, over the cab and dumping into the rear holding chamber. Keeping the container level was necessary to avoid spilling garbage on the truck and making a big mess.
This motion involved controlling two hydraulic mechanisms at the same time and this had to be done as fast as possible. The forks mechanism controlled the container position, while the arms mechanism moved the container over the cab and into the refuse holding chamber. The control software used a PID algorithm for the arm mechanism to move at maximum speed while getting commands for the fork mechanism from a look-up table based on the arms position.
Another PID algorithm controlled the fork position. However, there were many variables in the system that made PID tuning difficult to compensate for all situations. Further tuning complications resulted because all commands had to be ramped to provide smooth hydraulic motion. The solution to this problem was to force the arms mechanism to slow down if the following error of the forks mechanism became greater than an acceptable amount.