## 1. Introduction

Presently, most hydraulic lifting and handling machines are manually operated. With an increasing demand for automation and higher efficiency, path control can be an important tool to achieve this. In this paper, a hydraulically actuated knuckle boom crane has been considered for path control. A typical offshore knuckle boom crane is shown in

Figure 1.

The knuckle boom crane is used in a variety of industries, both onshore and offshore. This makes it a good platform for testing and development of new automation technologies. Also, it contains some of the major challenges associated with automation and path control of hydraulically actuated manipulators.

First, the relation between the controlled actuators, namely the hydraulic cylinders, and the state variables will depend on the joint angles in a nonlinear way. Secondly, the hydraulic control valves have some nonlinearity in the form of deadband, in addition to having limited bandwidth. Furthermore, the hydraulic cylinders are subjected to stiction, which may result in jerky motion when operating around zero velocity. This, in combination with the substantial structural flexibility of a weight optimized crane, may result in reduced performance and unnecessary fatigue of the crane.

Different approaches for motion control of hydraulic cranes have previously been investigated, including vector control, feed forward control, pressure control, and force control, see [

1,

2,

3,

4,

5,

6]. Modeling of hydraulic cranes has been investigated in [

7,

8,

9,

10]. Point-to-point control of robots has been studied in [

11,

12,

13].

For non-redundant manipulators, tool-point control is typically done using inverse kinematics, [

14,

15,

16]. By supplying a desired tool-point position, the joint angles for the manipulator can be calculated. This has been done on a hydraulic telescopic handler in [

17], for a hydraulic crane in [

18], and for flexible loader cranes in [

19,

20,

21,

22,

23].

Tool-point control for a redundant loader crane was done in [

24], and for a hydraulic manipulator in [

25,

26], where the redundancy was solved using the pseudo-inverse Jacobian method.

Trajectory planning was developed and implemented on a redundant forestry crane in [

27]. The crane was controlled in 6-DOF joint space, while the task was described in 3D Cartesian space. This imposes highly nonlinear velocity constraints for the joints.

In [

28], a tool-point control scheme was developed for a loader crane using interactive real-time simulation. This included velocity control in the joint space, configuration control, flow sharing, and an operator-in-the-loop.

In this paper, the idea of using the actuator space in manipulator control is introduced. It revolves around using the actuators length coordinates as the state variables. This will typically be the stroke of a hydraulic cylinder, and the rotational angle of a hydraulic motor. In

Figure 2, the joint space joint angles

${\theta}_{1}$ and

${\theta}_{2}$, and the actuator space cylinder strokes

${x}_{1}$ and

${x}_{2}$ for a typical knuckle boom crane are shown.

For a typical hydraulic crane, the control signals are the openings of the pressure-compensated hydraulic valves. A constant valve opening will give a constant flow, and constant cylinder velocity $\dot{x}$. However, the angular velocity of the joint $\dot{\theta}$ will not be constant. By using the cylinder stroke x as the state variable, we ensure a linear relation between the control signals and the state variables.

By using the actuator space with point-to-point path control, the motion of each actuator is inherently minimized. This will reduce fatigue and energy consumption. In addition, by ensuring that all the actuators finish their motion profile at the same time, the peak hydraulic flow of the system is minimized, which equates to indirect flow sharing. Furthermore, by avoiding change in the sign of the actuator velocity it is possible to avoid one of the main non-linearities associated with hydraulic cylinder drives, namely the jump in friction forces around zero velocity caused by stiction between piston and cylinder.

One thing to note is that when using point-to-point in actuator space, the tool-point will not follow a straight line in Cartesian space, due to the nonlinear relation between the two spaces. The tool-point will rather tend to move in an arc between two points in Cartesian space.

In this paper, model-based design has been used in combination with laboratory experiments. A simulation of the system has been made using a hydraulic-mechanical model and the developed control algorithms. The simulation results have been verified with laboratory experiments.

## 2. Considered System

In this paper, an HMF 2020K4 loader crane has been used for experiments. This crane has a total of 5 actuators: slew cylinder, main cylinder, knuckle cylinder, telescopic cylinder, and a winch. In this case, the winch and telescopic cylinder have been omitted, leaving the system with three degrees of freedom and no redundancy which, basically, corresponds to a knuckle boom crane. An illustration of the crane is shown in

Figure 3.

The slew cylinder is rotating the crane with a rack and pinion. The main cylinder and the knuckle cylinder are connected to their respective booms through a linkage system.

Each actuator is controlled via a pressure-compensated proportional directional valve which ensure load independent flow control of the actuators. Counterbalance valves are also used for load holding, assisting in lowering of the booms, and pressure relief of pressure surges. An illustration of the hydraulic system for the knuckle cylinder is shown in

Figure 4.

The slew cylinder and knuckle cylinder have double counterbalance valves, while the main cylinder only has one.

The HMF 2020K4 is connected to a National Instruments CompactRIO, which has I/O modules for connecting the sensors and for sending control signals to the valves. There are position sensors on the main cylinder and knuckle cylinder, and an angle sensor between the base and the slew column. The CompactRIO contains the path generator algorithm and the control algorithm.

#### Difference from Robotic Systems

As motion control of robots is an extensively studied subject, inspiration can be taken from it when developing motion control of hydraulic manipulators and more specifically, cranes. However, there are clear differences which affect the development of controllers and algorithms. First, the actuators for robots are typically motors connected to each joint of the robot’s arms. For the HMF 2020K4 crane, the actuators are cylinders connected to the booms via linkages. For robots, the equation of motion is generally written as shown in Equation (

1).

where,

$M\left(q\right)$ = Inertia matrix;

$C(q,\dot{q})$ = Coriolis and centripetal force matrix;

$G\left(q\right)$ = Gravitational force vector;

$\tau $ = Applied torque in each joint;

$q,\dot{q},\ddot{q}$ = Joint angle, angular velocity and angular acceleration;

Since cranes typically move with accelerations several orders of magnitude smaller than gravity and with relatively low velocities, the effect of the terms

$M\left(q\right)\xb7\ddot{q}$ and

$C(q,\dot{q})\xb7\dot{q}$ are, typically, less important than the gravitational loads

$G\left(q\right)$. As for actuation, for a robot the motor torque

$\tau $ is applied in each joint. For a crane with cylinders, the applied torque of each joint is the product of the effective torque arm

$r\left(q\right)$, which is a nonlinear function of

q, and the cylinder force

${F}_{c}$, which depends on the cylinder pressures and flows. The governing equations associated with the hydraulics are shown in Equations (

2)–(6).

where,

$r\left(q\right)$ = Effective torque arm;

${F}_{c}$ = Cylinder force;

${p}_{a}$ = Pressure in chamber a;

${p}_{b}$ = Pressure in chamber b;

${A}_{a}$ = Cylinder area a-side;

${A}_{b}$ = Cylinder area b-side;

${Q}_{a}$ = Flow into chamber a;

${Q}_{b}$ = Flow into chamber b;

${V}_{a}$ = Volume of chamber a;

${V}_{b}$ = Volume of chamber b;

$\beta $ = Oil bulk modulus;

${\dot{x}}_{c}$ = Cylinder velocity.

With a pressure-compensated directional valve, the control signal controls the flows ${Q}_{a}$ and ${Q}_{b}$. Since the pressure compensator senses the load pressure to ensure the desired flow, the joint torques are automatically adjusted to give the desired motion. The nonlinear dynamics does not disappear, but it is compensated for in the hydraulic circuit, instead of in the controller.

## 3. System Modeling

For the purpose of verifying the developed control strategies, a time domain simulation model of the crane has been developed in the commercial simulation tool SimulationX. This model contains the mechanical system with booms and linkages, and the hydraulic system with pressure-compensated proportional directional valves and counterbalance valves. The structural flexibility of the mechanical system has not been considered.

The model of the crane is a dynamic hydraulic-mechanical model. The mechanical model is a 3D multibody system, while the hydraulic model is a 1D system. The cylinders have been replaced with force elements which connect the mechanical and hydraulic model, similar to Equations (

2)–(6). A 3D view of the crane from SimulationX is shown in

Figure 5.

The mass of the booms has been estimated based on available CAD drawings. As an example, the main boom has a mass of $m=700$ kg, a length of $L=2.4$ m, and a mass moment of inertia around the axis of the main hinge of $I=1350$ kg·m^{2}.

An illustration of the pressure-compensated proportional directional valve is shown in

Figure 6.

To mimic the behavior of the pressure compensator, a pressure source has been used for

${p}_{p2}$. Equation (

7) describes how the pressure is calculated.

where,

${p}_{p2}$ = compensated pressure;

${p}_{a}$ = pressure at port a;

${p}_{b}$ = pressure at port b;

${p}_{t}$ = tank pressure;

${p}_{set}$ = spring pressure setting, set to 10 bar;

u = position of the spool, $-1\le u\le 1$.

The sensing of the load pressures

${p}_{a}$ and

${p}_{b}$ ensure that the pressure drop over the valve always equals

${p}_{set}$, and the flow is load independent. This is shown in Equation (

8).

where,

${C}_{d}$ = discharge coefficient;

${A}_{d}$ = maximum discharge area;

$\rho $ = mass density;

${Q}_{max}$ = maximum valve flow.

To ensure that the valve will always be able to give the desired flow, a safety factor of

${u}_{threshold}=\phantom{\rule{3.33333pt}{0ex}}0.8$ has been used for the path generator. This will help the setpoint to stay below

${Q}_{max}$, even when the system is falling behind the reference and the controller needs to catch up, shown in Equation (

9).

where,

${Q}_{ref,max}$ = maximum valve flow reference;

${u}_{threshold}$ = safety factor, 0.8.

An illustration of the counterbalance valves is shown in

Figure 7.

The unitless openings of the counterbalance valves are calculated in Equations (

10)–(13).

where,

${\tilde{u}}_{a}$ = unconstrained opening of valve a;

${\tilde{u}}_{b}$ = unconstrained opening of valve b;

${u}_{a}$ = opening of valve a;

${u}_{b}$ = opening of valve b;

${p}_{a1}$ = pressure at valve a input sid;

${p}_{a2}$ = pressure at valve a actuator side;

${p}_{b1}$ = pressure at valve b input side;

${p}_{b2}$ = pressure at valve b actuator side;

${p}_{crack,a}$ = crack pressure of valve a;

${p}_{crack,b}$ = crack pressure of valve b;

$\rho $ = pilot area ratio;

$\Delta p$ = pressure difference between fully closed and fully open, 10 bar.

When ${u}_{a}$ and ${u}_{b}$ are 0, the valves are closed. When they are 1, the valves are fully open. During operation, the valves tend to be somewhere between 0 and 1, meaning that they are throttling the flow. The valves are modeled as first order transfer functions in the simulation model to induce some time delay and dynamics, since the valves have a finite bandwidth.

The model from SimulationX has been exported as C-code to MATLAB/Simulink for testing and prototyping of the path generator algorithm and control algorithm.

## 4. Control Architecture

The control architecture consists of two parts: the control system which measures the cylinder positions and sends control signals to the valves, and the path generator algorithm which generates the setpoints for position and velocity for each actuator.

#### 4.1. Path Generator

The point-to-point path generator operates in actuator space, which uses the cylinder length coordinates as state variables. The main and knuckle cylinder length coordinates are used directly, but since the slew cylinder is connected to the slew column via a rack and pinion, the slew angle is used instead of the slew cylinder length coordinate. Please note that the slew angle is proportional to the slew cylinder length coordinate. This means that the state variables are:

where,

${\theta}_{s}$= angle of slew column;

${x}_{m}$ = length of main cylinder;

${x}_{k}$ = length of knuckle cylinder.

By operating in actuator space, the relationship between the input and the velocity of each actuator becomes linear, since the pressure-compensated directional control valves ensure a load independent hydraulic flow for a given valve input. The valves have some deadband, but this is counteracted with a deadband compensator in the controller.

In addition, when operating in actuator space, the velocity constraints become constant, defined by the maximum flow of the control valves and the cylinder area. This is not the case in joint space or Cartesian space, in which the velocity constraints will be nonlinear. This greatly simplifies both the path generation and control of the system.

In addition to the position and velocity constraints, artificial acceleration constraints have been imposed on the system to reduce fatigue and oscillations. The acceleration constraints correspond to the slopes of the trapezoidal velocity profiles. For the acceleration constraint, the following rule of thumb from [

29] has been used, which minimizes overshoot for trapezoidal velocity profiles.

where,

${T}_{r}$ = ramp time for velocity profile;

${\omega}_{n}$ = natural frequency of the system.

A substitution can be made with the following assumptions.

where,

${a}_{max}$ = maximum allowable acceleration;

${v}_{max}$ = maximum velocity of actuator.

By using this substitution, all the constraints of the actuators are defined in terms of the state variables and their derivatives, and parameters from hydraulic components. Please note that the estimate of the natural frequency should be low to account for any estimation errors. This will ensure that the system will always be able to follow the trapezoidal velocity profile with minimal overshoot.

The input to the path generator is a list of the desired actuator positions, and the current actuator positions. A block diagram of the point-to-point path controller is shown in

Figure 8.

From the list of points in actuator space, the path generator calculates trapezoidal velocity profiles for each actuator, based on their maximum velocity and maximum allowable acceleration. The safety factor

${u}_{threshold}$ is used for the velocity, as introduced in

Section 3.

Equations (

18)–(

28) are used to calculate the trapezoidal velocity profiles for the three actuators. This also includes a correctional step if the ramp time is larger than half the total time. In addition, it is ensured that the actuators reach the desired point at the same time. Since the actuators reach the desired point at the same time, the maximum required flow is reduced, because in most cases only one of them will run at full speed. This would not be the case if they all ran full speed at the start, and then two of the actuators waited for the third to finish the motion, in which case the maximum flow would be large at the beginning of the motion.

The ramp time

${T}_{r}$ and total time

T are calculated as follows for the 3 actuators:

A corrected ramp time

${\widehat{T}}_{r}$ and total time

$\widehat{T}$ are now introduced for each actuator. They will alter the velocity profile if the ramp time is larger than half of the total time. This happens when

$\Delta x<{T}_{r}\xb7{v}_{max}$. In this case, the velocity profile is altered into a triangle, with

${\widehat{T}}_{r}=\frac{\widehat{T}}{2}$:

The common total time

$\tilde{T}$ is used to ensure that all actuators finish their motion at the same time:

The corrected maximum velocity

$\widehat{v}$ and trapezoidal velocity profile

$\tilde{v}$ are then described as follows:

The trapezoidal velocity reference

${v}_{ref}$ and position reference

${x}_{ref}$ are then computed:

The parameters for the trapezoidal velocity profile are shown in

Figure 9.

An example of a trapezoidal velocity profile for three actuators is shown in

Figure 10.

As seen in

Figure 10, the maximum velocity for each segment changes, corresponding to the value of the corrected maximum velocity

$\widehat{v}$.

#### 4.2. Control Structure

The selected control structure is a P-controller for position, and a feed forward gain for velocity. The feed forward gain is simply the ratio from valve opening to actuator velocity, which is determined from the components in the system. An illustration of the selected control system is shown in

Figure 11.

Since both the references and the output of the system are in the actuator space, a simple linear controller can be used. Please note that the system from valve input to actuator position is linear after deadband compensation has been added. The equation for the control input

u is given in Equation (

29).

## 5. System Simulation

Using the crane model described in

Section 3, and path generator and control structure from

Section 4, a complete system simulation has been performed in MATLAB/Simulink. A list of points for the path generator has been made to ensure a wide range of operation, both with respect to the actuator velocities and positions.

#### 5.1. Simulation Setup

For the simulation, the natural frequency for each actuator has been estimated from the system model. A low estimate of the natural frequency has been used in the path controller to define the acceleration constraints, shown in

Table 1.

The maximum velocities used are given in

Table 2.

Since a complete model of the system, path generator, and controller is available in a virtual environment, some effort has been made to tune the controller to optimize the crane motion. The virtual environment is well suited for design and numerical test of controllers and tunable parameters. Emphasis has been made to ensure minimal tracking error, as well as reducing the oscillations in the control signal. Minimizing the tracking error ensures an overall good system performance, both in simulation and real-world applications. Minimizing the oscillations in the control signal will help reducing certain unwanted phenomena in real-world applications, namely fatigue, jerky motion, and excitation of unmodeled dynamics. The tunable parameters in the controller, ${k}_{p,1}$, ${k}_{p,2}$, and ${k}_{p,3}$, have all been tested manually, as well as using optimization.

An objective function has been made to both minimize the tracking error and the oscillations in the control signal, using a weighted summation. The objective function to be minimized uses the data from each iteration of the simulation, and is shown in Equation (

30).

where,

${C}_{1}$ = normalization vector 1, [1 rad^{−1} 1 m^{−1} 1 m^{−1}]^{T};

${C}_{2}$ = normalization vector 2, [1 s 1 s 1 s]^{T};

e = actuator position error;

$\dot{u}$ = time derivative of control signal.

The normalization vectors ${C}_{1}$ and ${C}_{2}$ ensure that the objective function is unitless.

Since the control signal u is proportional to the actuator velocity, the time derivative of the control signal $\dot{u}$ will be proportional to the actuator acceleration. By minimizing $\dot{u}$, unwanted accelerations will also be minimized.

By using the RMS value, both positive and negative tracking errors will be reduced. In addition, the variable time step of the simulation will not affect the objective function.

It should be noted that even though the weighted summation of e and $\dot{u}$ might seem arbitrary, it still ensures that both design criteria will contribute to the total objective function. This ensures that potential solutions that have a low tracking error, but large oscillations, will not be selected, and vice versa.

A simplified Genetic Algorithm has been used to minimize the objective function. Inspiration was taken from [

30]. The Genetic Algorithm was selected based on its robustness and ability to minimize non-smooth functions. The algorithm employs a population of potential solutions. Crossover, mutation, and elitism are then used to create a new population every iteration. A flowchart of the Genetic Algorithm is shown in

Figure 12.

To generate the parents, the individuals are sorted from best to worst and assigned in pairs. The generated list of pairs of parents follows this ranking sequence, see

Table 3.

${x}_{1}$ denotes the best individual and so on.

The crossover function uses a random weighing from the parents to create the genes for the offspring, shown in Equation (

31).

where,

${y}_{a,b}$ = offspring of parent a and b;

${x}_{a}$ = parent a;

${x}_{b}$ = parent b;

${R}_{a,b}$ = random number [0,1] for crossover between a and b.

After the crossover, mutation is performed on 20% of the individuals which are randomly selected, based on Equations (

32)–(33).

where,

${u}_{b}$ = upper bound for parameters;

${l}_{b}$ = lower bound for parameters;

${k}_{m}$ = mutation factor [0,1];

${r}_{m}$ = mutation range;

${z}_{a,b}$ = mutated offspring;

${y}_{a,b}$ = offspring of parent a and b;

${R}_{a,b}$ = random number [0,1] for offspring ${y}_{a,b}$.

The last step is elitism, which copies the best 2% of individuals from the previous generation into the new generation without modification. This ensures that the smallest objective value does not increase from generation to generation, in addition to ensuring that the best solutions will generate even more offspring.

#### 5.2. Simulation Results

The simulation results shown here have been made using the selected parameters from

Section 5.1. The controller parameters from the Genetic Algorithm which minimized the objective function are shown in

Table 4.

Figure 13 shows the position reference made by the path generator. The trapezoidal velocity reference gives a smooth position reference.

Figure 14 shows the valve input during operation. The maximum valve input is approximately 0.8 during the simulation, which corresponds to the safety factor

${u}_{threshold}$. This figure also shows that the valve inputs are not oscillating, which helps to reduce fatigue in a real-world scenario.

Figure 15 shows the position error for each actuator, which is less than 0.01 m for the cylinders, and less than 0.04 rad for the slew column.

These results show that the path generator and controller have good tracking performance without large oscillations in the system.

## 6. Practical Implementation

Laboratory experiments have been made with the HMF 2020K4 loader crane to verify and compare the results from the simulations, and to ensure that the proposed controller is feasible in a real-world scenario.

The control system and path generator have been implemented on a CompactRIO connected to the crane, and have been programmed in LabVIEW. The CompactRIO supports the LabVIEW MathScript Module, which allows MATLAB code to be used. This means that the algorithms developed in MATLAB/Simulink in

Section 4 have been used directly.

Deadband compensation has been implemented for the laboratory experiments. The deadband for each actuator are shown in

Table 5.

The formula for the deadband compensation is shown in Equation (

34).

where,

$\widehat{u}$ = compensated control signal;

u = control signal;

${u}^{+}$ = deadband out;

${u}^{-}$ = deadband in;

$\tilde{u}$ = desired deadband, 0.01.

By adding a small deadband $\tilde{u}$, it is ensured that the valves will be able to stay closed when no movement is needed.

A path has been made from a list of desired actuator positions to test the system performance.

Figure 16 shows the control signal for each actuator in the laboratory test. The maximum control signal is approximately 0.8, which corresponds to the safety factor

${u}_{threshold}$.

It can also be seen that the control signals are not oscillating during regular motion, which was a criterion from

Section 5. At around 50 s and 120 s the control signal for the slew valve is sitting at the edge of the deadband while moving slowly, which makes it appear to be oscillating heavily. At 10 s and 80 s the control signal for the knuckle valve saturates slightly as it tries to keep up with the reference.

Figure 17 shows the velocity for each actuator in the laboratory test.

The velocity of each actuator is proportional to the control signal, as expected with pressure-compensated valves. This also verifies that the actuators are moving at a constant velocity. The noise comes from the fact that the velocity signal is the derivative of the position sensor measurements.

Figure 18 shows the position error for each actuator in the laboratory test.

It can be seen that the errors are similar to the position errors from the simulation results in

Section 5.2. This shows that the tuning has been successful.

## 7. Conclusions

In this paper, an HMF 2020K4 loader crane has been used as a testing platform for path control. By using a time domain simulation model of the crane, a path generator algorithm and control algorithm have successfully been developed and implemented. The novel path generator operates in actuator space, which indirectly linearizes the system and its constraints based on crane component specifications. This makes it possible to use a simple P-controller with feed forward without the need for plant linearization or feedback linearization.

An effort has also been made to optimize the controller, using a Genetic Algorithm for minimization, to ensure minimal tracking error as well as reducing oscillations in the system.

Simulation results show that the path generator and control system yield good performance. Tests performed in the laboratory also confirm the result, which show good setpoint tracking and minimal oscillations.

The proposed solution allows for simpler controller design compared to other methods, which eases implementation and tuning. In addition, the elimination of stiction during motion is a unique and advantageous feature of the proposed solution.

Future work can include extending the path control to cranes and hydraulic manipulators with kinematic redundancy. Implementation of path control with hanging loads can also be investigated where payload dynamics affect the manipulator. A performance evaluation of the proposed solution compared to other methods can also be made.