By Peter Nachtwey,
Delta Computer Systems
Hydraulics is frequently the power source of choice when a machine must lift, hold or place heavy loads. Fortunately for the designers of such machines, many hydraulic motion systems are linear, and the loads do not change except for the forces due to acceleration and deceleration. However, the gain of a hydraulic system changes as a function of the load force, and the load force can change during the execution of a point-to-point move. A good controller can compensate for required force changes due to acceleration, but sometimes this change can occur more rapidly than the reaction capability of the PID controller.
![]() |
Figure 1. The
charger arm
(green) swings in
an arc and holds
a log prior to
handing it off to
the lathe (behind
it) in a machine
that produces
wood veneer.
|
The load may also change rapidly in cases where a hydraulic cylinder does not directly push the load. Perhaps the cylinder is used to move a robotic arm and the load is on the end of the arm. For example, consider the “charger” arm that holds a log prior to feeding it to a veneer lathe (Figure 1), or a swing arm (Figure 2) that lifts drill pipes at an oil or gas drilling rig.
In cases such as these, load analyses must be conducted to determine the load force as a function of mass, acceleration, inclination, and friction. There are two parts to this type of application. The first part is how the hydraulic gain changes as the load changes; the second is calculating the load that the cylinder ‘sees’ and how the load changes throughout the stroke.
Gains change with load changes
The answer to the first problem is provided
by the operating envelope that is calculated
using Equation 1, the VCCM equation from
Basic Electronics for Hydraulic Motion Control
by Jack L. Johnson, P.E., . Rearranging this equation so that
velocity is calculated as function of Fl yields Equation
2 (also in box).
![]() |
Figure 2. The massive swing arm shown in the photo sequence is used to transfer sections of pipe on an oil drilling rig. A video of this
arm in action can be seen below: . |
Consider an example where the cylinder bore is 2 in. and the rod diameter is 1.375 in. The supply pressure is assumed to be 1500 psi; therefore, the dead head force is about 4700 lb. The graph in Figure 3 shows the velocity versus the load force at different percentages of valve commands. The gain of the system for any load force is the velocity at that load force per 100% control output. The gain for a load force of about 4700 lb is 0 in./sec per 100% control output.
At a load force of zero, the gain is about 54 in./ sec per 100% control output. Ideally we would like to know what the load is before making a move and adjust the control gains to compensate for the change in the system gain.
The graph of velocity versus force (Figure 3) clearly indicates that the gain of the system and its velocity drop as the load increases. At 2500 lb maximum and with the valve 100% open the velocity is about 35 in./sec, whereas the maximum velocity is about 50 in./sec at 500 lb. This is a big difference. It is best to tune the system under an average load so the gain doesn’t need to change much as the load varies. Tuning the system under no load would result in much bigger errors when the system is loaded.
Mechanics change the load
For applications such as those
shown in Figures 1 and 2, where a
hydraulic cylinder produces non-linear or rotary motion, the load force
changes as a function of position.
In some cases, drive linkage can
cause the mechanical advantage to
change significantly. The most common
way of dealing with this problem
is to take the simplest approach
and tune the system with one set of
closed-loop gains that provide the
best compromise for motion at the
end points. However, this is often
difficult to do because the mechanical
advantage may be very different
at each end of travel.
![]() |
A better solution is to tune the system at three or more evenly spaced positions along the stroke. The gains can then be stored in a table where the controller can retrieve them on the fly as a function of position. This method is relatively easy to do because no calculations are required. The tradeoff is time. It may take several hours to optimally tune the system for all of the sections along the stroke. Additionally, the problem with this method is that while transitioning from one section to another, the gains will change instantly, causing a slight bump in the control output.
An even better method is to interpolate between the positions where the system gains are known using the method noted above. Interpolating will yield a smooth transition of the gains between the positions where the system was tuned. This is preferable to using a table where the gains can change abruptly as the cylinder position transitions through each section.
Empirical solutions are the ideal
The ideal solution is to develop a
mathematical model of the forces that
must be applied as a function of the
cylinder stroke. The model’s equations
should be more accurate than empirically
calculating the load. Once the
model is developed, it is used to calculate
the force as a function of position.
The force then is used to calculate
the hydraulic gain using the equation
above. Finally, the hydraulic system
gain is used to calculate the controller
gain(s) as a function of position
throughout the stroke.
The formulas for gains can be calculated by mechanical or control engineers. These formulas will be complex and can take some time to develop. The load calculations should be conducted to optimize the mechanical and hydraulic design. An added benefit of calculating controller gains as a function of position is the ability for controls engineers to test their work using simulators before the machines are ready for factory testing. As we all know from field experience, there are always differences between the calculations and reality, so it will most likely still be necessary to calculate or tune the gains empirically. The difference between the empirical and calculated or tuned gains may provide some insight into modeling errors or assumptions.
![]() |
| Figure 3. Actual Operating Envelope showing Velocity as a function of Force for three different valve opening positions. |
A generic non-linear example
Consider the example system
shown in Figure 4, where a load on
a swing arm is moved in
an arc from one point to
another. This system exhibits
very non-linear motion
and highlights the
control problem discussed
above. Assume the swing
arm is 50 in. long and the
hydraulic cylinder is connected
to the swing arm
10 in. from its pivot point.
The hydraulic cylinder’s
mounting clevis is 30 in.
from the swing arm’s pivot
point. Also, the swing arm
weighs 100 lb and the load
weighs 1000 lb. The math
is complicated, but a graph
(Figure 5) shows how the
load force varies with the
cylinder stroke. When
the swing arm is pointed
straight down, there is no
force and the cylinder position
is 31.632 in; this is
calculated using the Pythagorean
theorem.
This is the neutral point. The swing arm opposes cylinder extension once the load is pushed past the neutral point. The apparent load increases as the angle increases because the cylinder must counter the torque due to the load and the fact that the mechanical advantage gets much worse as the angle varies from straight down. When the cylinder is retracted from the neutral point, the load will pull on the cylinder. This actually increases the system gain.
![]() |
Hints for multiple gain changes
First, the controller must be able
to change the gains on the fly. Secondly,
any approximation to how the
hydraulic gain changes will be better
than assuming no gain changes
occur. A basic straight-line approximation
relating the gain to position
over the whole length of the cylinder
often is good enough, and there is
no need to be more accurate. If the gains are tuned at multiple sections
along the length of travel, then more
precision is the result. As already
mentioned, looking up the gains
from a table that is indexed by the
cylinder position is an option. A better
way is to interpolate between
sections because this will avoid the
sudden change in gains as the cylinder
moves from one section to the
next. A linear interpolation requires
a simple calculation:
Gain = m position + b
Calculating the slope, m, and offset, b, can be difficult for some. An easier, but slower, way to interpolate between two gains is to use the equation:
where f represents the fraction of the distance from Position a to Position b. If the cylinder position is one quarter of the way from Position a to Position b, then f would be 0.25 in. The fraction, f, is always between 0 and 1.
Next, the gain at the cylinder position is calculated:
![]() |
Gain = Gaina f + Gainb (1 f) When the cylinder moves to the section between Position b and Position c, then Position b will be used where position a had been used, and Position c will be used where Position b had been used. The same goes for the gains.
Microsoft Excel can be used to obtain close estimates of controller gains so they can be changed as a function of cylinder position. Select the @LINEST function from among the options in Excel. This function can establish gains that minimize the least squared error between the estimating function and the empirical data, which are the known gains as a function of their respective positions.
![]() |
Figure 5. Graph
of load force
versus actuator
position for
system shown
in Figure 4.
|
Conclusions
The simple method of establishing
one controller gain set can produce
good results for the many linear applications
that exist. Where significant
nonlinearities exist, however, the only
practical way to manage changing
controller gains is to tune the system
at multiple points along the stroke of
the cylinder and use linear interpolation
or a more complex function to
establish changing gains as the system
moves. For this to be possible, the
controller must be capable of changing
the gains on-the-fly as the cylinder
moves through its stroke.
For more information, contact the author at peter@deltamotion.com or visit www.deltamotion.com.





























