0% found this document useful (0 votes)
30 views93 pages

Motion Compensation of Loading System of Boats, A Comprehensive Review

This document presents a mathematical model of a suspended load and derives its equations of motion. It then develops a nonlinear anti-sway controller based on Lyapunov analysis to stabilize the system. The controller is tested under different simulation scenarios to demonstrate its effectiveness in damping unwanted sway. Key aspects covered include modeling, linearization, controllability, observability, stability analysis, and the effect of wind disturbances.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
30 views93 pages

Motion Compensation of Loading System of Boats, A Comprehensive Review

This document presents a mathematical model of a suspended load and derives its equations of motion. It then develops a nonlinear anti-sway controller based on Lyapunov analysis to stabilize the system. The controller is tested under different simulation scenarios to demonstrate its effectiveness in damping unwanted sway. Key aspects covered include modeling, linearization, controllability, observability, stability analysis, and the effect of wind disturbances.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 93

NTNU

Norwegian University of Science and Technology


Faculty of Information Technology and Electrical Engineering
Master’s thesis
Department of Engineering Cybernetics

June 2023
suspended loads
Mathias Hatle Grindvik

Supervisor: Morten Dinhoff Pedersen


Master’s thesis in Cybernetics and robotics
Optimal motion compensation for
Mathias Hatle Grindvik

Optimal motion compensation for


suspended loads

Master’s thesis in Cybernetics and robotics


Supervisor: Morten Dinhoff Pedersen
June 2023

Norwegian University of Science and Technology


Faculty of Information Technology and Electrical Engineering
Department of Engineering Cybernetics
Optimal motion compensation for
suspended loads

Author:
Mathias Hatle Grindvik

Supervisor:
Morten Dinhoff Pedersen

Master’s thesis
Department of Engineering Cybernetics
Norwegian University of Science and Technology

June 5, 2023
Preface

This thesis marks the completion of my journey as a student in the field of Engineer-
ing Cybernetics at the Department of Engineering Cybernetics, Norwegian University of
Science and Technology (NTNU) in Trondheim, Norway. It serves as the final milestone
in completing my Master’s degree and represents the culmination of extensive research,
learning, and personal growth.
Undertaking this thesis has been a significant and rewarding challenge, offering me
the opportunity to delve into fascinating and complex subjects. Throughout my studies at
NTNU, I have been exposed to a diverse range of topics, including modelling, simulation
and control of physical systems. This thesis has allowed me to deepen my understanding
in these areas.
I would like to extend my gratitude to my fellow co-students, whose collaboration,
teamwork, and insightful discussions have enriched my learning experience over the past
five years. Our shared pursuit of knowledge has created a stimulating environment that
fostered growth and learning.
I am deeply grateful to my main supervisor, Professor Morten Dinhoff Pedersen. Your
guidance, expertise, and unwavering support have been invaluable throughout this research
journey. Constructive feedback, encouragement through the roof, and willingness to share
your knowledge have played a pivotal role in shaping the direction and content of this
thesis.
Furthermore, I would like to express my appreciation to Cato Orset and Oddvar Gjel-
stenli at Motus Technology for initially granting me the opportunity to work on this project.
Thomas Koløen and Sindre Møller also deserves mentioning after good and rewarding dis-
cussion on the theme.
Lastly, I would like to express my heartfelt gratitude to my girlfriend, family and
friends for their unwavering support, love, and understanding throughout my academic
journey. Their encouragement and belief in my abilities have been the driving force be-
hind my achievements.

i
Executive summary

As offshore crane operations often are critical operations under tough condition de-
manding a lot from the crane operator, the need for technological solutions are very high.
Swaying loads is a safety concerns that can damage both material and in worst case per-
sonnel. With an anti-sway control system, this unwanted swaying is dampened and the
crane operator is deprived from crucial roles resulting in a much more effective operation.
In this thesis, a mathematical model of the suspended load is presented and its equa-
tions of motion is found using the Euler-Lagrange method. A nonlinear anti-sway con-
troller is found based on Lyapunov analysis and proven to make the system exponentially
stable. In addition to the anti-sway controller, a PID controller is used to moved the crane
as steered by the crane operator.
The controller is put to the test under simulations for different challenging scenarios
with and without the operator in the loop, and it proves to be very effective in damping
unwanted sway of the load.

ii
Sammendrag

Offshore kranoperasjoner er ofte kritiske operasjoner under krevende forhold som kr-
ever mye av kranoperatøren. Dette gjør at behovet for teknologiske løsninger er svært høy.
Svingende laster er en sikkerhetsbekymring som kan skade både materiell og i verste fall
personell. Med et anti-sleng kontrollsystem dempes denne uønskede svingingen, og kra-
noperatøren blir avskåret fra avgjørende roller, noe som resulterer i en mye mer effektiv
operasjon.
I denne avhandlingen blir en matematisk modell av den hengende lasten presentert, og
dens bevegelseslikninger blir funnet ved bruk av Euler-Lagranges metode. En ulineær anti-
sleng kontroller er utviklet basert på Lyapunov analyse og det er bevist at den gjør systemet
eksponentielt stabilt. I tillegg til anti-sleng kontrolleren blir det brukt en PID-kontroller
for å flytte kranen som styrt av kranoperatøren samt opprettholde ønsket posisjon.
Anti-sleng Kontrolleren er testet i simuleringer for ulike utfordrende scenarioer med
og uten operatør involvert, og den viser seg å være svært effektiv for å dempe uønskede
svingninger i lasten.

iii
Table of Contents

Preface i

Executive summary ii

Sammendrag iii

List of Tables vii

List of Figures ix

Abbreviations x

1 Introduction 1
1.1 Literature review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Problem description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Delimitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Structure of the report . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 System Modeling 7
2.1 Suspended load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Dynamics of suspended load . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.1 Equations of motion . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.2 Matrix-vector representation . . . . . . . . . . . . . . . . . . . . 11
2.3 Reduced model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4 Linearization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.4.1 Controllability . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4.2 Observability . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.5 Stability analysis on open loop system . . . . . . . . . . . . . . . . . . . 14
2.5.1 Transfer function . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.6 Wind disturbance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

iv
3 Kinematics 16
3.1 Forward Kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1.1 Forward velocity kinematics . . . . . . . . . . . . . . . . . . . . 18
3.2 Inverse kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2.1 Inverse velocity kinematics . . . . . . . . . . . . . . . . . . . . . 20

4 Control design 21
4.1 Control objective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2 Interconnected model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.3 Anti-sway controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.3.1 Linear Quadratic Regulator . . . . . . . . . . . . . . . . . . . . . 23
4.3.2 Nonlinear Controller . . . . . . . . . . . . . . . . . . . . . . . . 25
4.4 Closed loop Stability analysis . . . . . . . . . . . . . . . . . . . . . . . . 26
4.5 PID controller for positioning . . . . . . . . . . . . . . . . . . . . . . . . 28

5 Sensorics 29
5.1 Indirect method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.1.1 Ultrasonic sensors . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.1.2 Camera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.1.3 GPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.1.4 Inertial measurement unit . . . . . . . . . . . . . . . . . . . . . 30
5.2 Direct method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.2.1 Encoders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.2.2 Potentiometers . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.2.3 Strain gauges . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

6 Estimation 34
6.1 Discrete time system model . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.1.1 Algorithm of the Kalman filter . . . . . . . . . . . . . . . . . . . 35
6.2 Performance of the Kalman filter . . . . . . . . . . . . . . . . . . . . . . 36

7 Workspace 38

8 Simulations 42
8.1 Effect of the controller . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
8.1.1 Output feedback . . . . . . . . . . . . . . . . . . . . . . . . . . 45
8.2 Operator in the loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
8.2.1 Without ASC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
8.2.2 With anti-sway active . . . . . . . . . . . . . . . . . . . . . . . . 49
8.2.3 ASC activated after crane operator . . . . . . . . . . . . . . . . . 51
8.2.4 Output feedback . . . . . . . . . . . . . . . . . . . . . . . . . . 53
8.3 Multiple joint control . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
8.4 Impact of wind on the system . . . . . . . . . . . . . . . . . . . . . . . . 58
8.4.1 Output feedback . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.5 Simplified controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.5.1 PD anti-sway controller . . . . . . . . . . . . . . . . . . . . . . 61

v
8.5.2 Derivative controller for anti-sway . . . . . . . . . . . . . . . . . 63

9 Discussion 64

10 Conclusion 66
10.1 Future work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

Bibliography 69

Appendix 76
A Inverse Jacobian . . . . . . . . . . . . . . . . . . . . . . . . . . 76

vi
List of Tables

3.1 Lengths of the crane parts. . . . . . . . . . . . . . . . . . . . . . . . . . 17


3.2 Denavit-Hartenberg parameters. . . . . . . . . . . . . . . . . . . . . . . 17

vii
List of Figures

1.1 Different control techniques for a crane system as proposed by Ramli [59] 2
1.2 Chronological chart showing relevant articles and publications, with the
year of publication. As we can see there has been a lot of research on the
topic in later years, and especially the years around 2020. The different
color schemes for the boxes classify the different types of controllers used
for the anti-sway part in the report. Reports that consider three dimen-
sional systems are marked with a double edge, while two dimensions are
marked with a simple edge. . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.1 3D model of the crane . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7


2.2 Spherical pendulum with two degrees of freedom . . . . . . . . . . . . . 8

3.1 Coordinate frames of the crane model according to Denavit-Hartenberg. . 16


3.2 Illustration of the elbow up and elbow down problem. . . . . . . . . . . . 19

4.1 Total input v as a summation of input from PID, marked in green and ASC,
marked in blue. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2 Block diagram of the control system . . . . . . . . . . . . . . . . . . . . 23

5.1 Camera setup from [79]. The three cameras are marked c1,c2 and c3 while
the green markers on the wire are marked with X1 and X2 . . . . . . . . . 30
5.2 IMU sensor arrangement from [26]. . . . . . . . . . . . . . . . . . . . . 31
5.3 Arrangement of AHRS sensing unit from [21]. . . . . . . . . . . . . . . . 31
5.4 Sensor arrangement with encoders from [24]. . . . . . . . . . . . . . . . 32
5.5 The arrangement of the potentiometers as used in [52]. . . . . . . . . . . 33
5.6 Payload sway angle sensing device. (1) Flexible elements. (2) Strain
gauges. (3) Device holder mounted on trolley. (4) An intermediate mem-
ber performing a spherical motion. (5) The part of the device performing
the movement according to the rope. (6) Pulleys touching the rope. (7)
Crane rope. [23] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

viii
6.1 Estimated load sway plotted on top of the measured sway. . . . . . . . . . 36
6.2 Estimated load sway velocity plotted together with true value. . . . . . . 37

7.1 Radius of the suspended load as seen from above . . . . . . . . . . . . . 39


7.2 Initial radius of the load and the restricted area it will stay within, as seen
from a side view. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
7.3 Radius of the suspended load with respect to crane tip. . . . . . . . . . . 41

8.1 Sway angles of suspended load. The anti-sway controller is activated after
100s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
8.2 Results from the initial condition test . . . . . . . . . . . . . . . . . . . . 44
8.3 Sway angles of suspended load with output feedback. . . . . . . . . . . . 45
8.4 Joystick commands from crane operator and the desired joint angles. . . . 46
8.5 Movement of the crane tip and suspended load in the XY -plane, seen from
above. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
8.6 Plots from the simulation when the crane is rotated 90◦ without ASC active. 48
8.7 Movement of the crane tip and suspended load in the XY -plane, seen from
above. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
8.8 Plots from the simulation when the crane is rotated 90◦ and ASC is acti-
vated from the start. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
8.9 Plots from the simulation when the crane is rotated 90◦ and ASC is acti-
vated after setpoint is reached. . . . . . . . . . . . . . . . . . . . . . . . 52
8.10 Plots from the simulation when the crane is rotated 90◦ with output feedback. 54
8.11 Estimations from the Kalman filter. . . . . . . . . . . . . . . . . . . . . . 55
8.12 Commanded joint velocities and corresponding joint angles. . . . . . . . 56
8.13 Plots from the simulation when the crane is rotated 90◦ without ASC active. 57
8.14 Plots from the simulation when the system is disturbed by wind and inte-
gral action is added in the position controller. . . . . . . . . . . . . . . . 59
8.15 Estimations from the Kalman filter under windy conditions . . . . . . . . 60
8.16 Result from initial condition test with PD ASC. . . . . . . . . . . . . . . 62
8.17 Results from initial condition test with derivative ASC. . . . . . . . . . . 63

ix
Abbreviations

Abbreviation Description
DOF Degrees of freedom
ASC Anti-sway controller

x
1
Introduction

Cranes play a critical role in marine operations where precise hoisting, loading and moving
operations are required. However, the motion of the crane and the crane base can lead to
significant payload oscillations, posing safety risks and causing delays or suspensions in
operations. To mitigate these challenges, automatic control of cranes and suspended loads
has emerged as a promising approach to reduce risk and improve execution time in marine
operations. Consequently, control systems for cranes have been extensively studied in the
research community, with various open-loop and closed-loop control strategies developed
to address the challenges of crane operations in marine environments.
In this chapter, we will explore the different control system strategies and methodolo-
gies that have been proposed for cranes, with a focus on addressing payload oscillations
and improving safety and efficiency in marine operations.
The existing control methods can be classified as open-loop and closed-loop feedback
control. For the crane model, the open-loop control approaches mostly include motion
planning and input shaping, while the closed-loop include a broader range of controllers
such as sliding mode control, model predictive control, nonlinear control or flatness based
control, to mention some. The main advantage with closed-loop control compared to
open-loop, is that it makes the system more robust specially with external forces and dis-
turbances such as wind and frictional forces, but it does depend on measurements that can
be challenging.
In this thesis we will therefore work with closed-loop control approaches for the model
of the crane. A big challenge and possibly the weakest point of the closed-loop control
is the dependency on precise measurements of the payloads sway angle. That is a great
challenge to be solved, and different strategies for measurements are discussed in this
thesis. For the control design, there is assumed perfect measurements.
The anti-sway controller (ASC) presented in this thesis will aim to reduce the sway of
the load to a minimum. A simple PID controller will deal with positioning of the crane
such that the desired position is held. The system will be tested and simulated in Matlab
and Simulink to evaluate the performance of the control strategy under different scenarios.
The weakness of the presented ASC is that it holds higher order cancellation terms that

1
1 Introduction 1.1 Literature review

requires on-line calculation. These terms are however quite small and could be dropped
resulting in a much simpler controller. By doing so, the controller yields a simple PD
controller with decoupled motion. That is a beneficial aspect of the controller that also
makes it applicable for other types of cranes.

1.1 Literature review


As mentioned, there has been a lot of research on the topic in the recent years. Ramli et al.
[59] has looked into the research done in the years 2000-2016, and collected the findings
in a comprehensive paper. The scope of the review focuses on the control of different
types of cranes, but also represents the existing anti-sway control systems for industrial
cranes that are on the market. Other reviews are done by Mojallizadeh et al. [47] and
Abdel-Rahman et al. [2], while Albada et al. represents a novel approach to anti-sway
for marine shipboard cranes in [3]. Martin and Irani presents a generalized approach to
anti-sway control for shipboard cranes in [43], and evaluates both linear and non-linear
control strategies for shipbard gantry cranes in [41].
In a lot of the research, the goal has been to generate a path for the crane and/or
payload, where the technique for ’anti-sway’ varies. Only a few of the papers takes into
account that the crane is steered by an operator. According to Ramli et al. [59], crane
control can be categorized as depicted in Figure 1.1.

Figure 1.1: Different control techniques for a crane system as proposed by Ramli [59]

For the ’anti-sway’ control strategy, it varies mostly between MPC, LQR, SMC, Lya-
punov based control and LQR. In [63], a model predictive anti-sway controller (MPC)
is presented for a knuckle boom crane. Yang et al. [90] presents a nonlinear intelligent
control approach based on neural networks for a ship mounted crane. A flatness based

2
1 Introduction 1.1 Literature review

controller has been used for a overhead crane by Knierim et al. in [38]. Tønne presents an
anti-swing assistant system in [80] with LQR state feedback for ship-to-ship load handling.
Tuan et al. [74] presents a second order sliding mode controller for a overhead crane,
while Kim et al. [35] uses an adaptive sliding-mode controller for an offshore crane.
Martin and Irani uses a ’self-tuning anti-sway trajectory modifier’ in combination with a
sliding mode controller for a 7-DOF shipboard knuckle boom crane in [42]. Sliding mode
control has also been used to suppress sway angles for overhead cranes by Chwa [14], and
Almutari and Zribi [4], while it is used for an offshore boom crane by Raja et al. in [28].
Nonlinear controllers is a popular choice among the researchers. Nonlinear energy
based controller has been investigated for overhead cranes in [86] and for tower cranes
in [55] and [66]. Sun et al. presents a nonlinear controller for boom cranes in [71]. The
control strategy is also used for offshore cranes, as in [12] where Chu et al. uses an energy
based control strategy for an offshore knuckle boom crane. Chen et al. [11] uses the same
controller for an offshore single boom crane.
In [79], Tysse and Egeleand presents a Lyapunov based damping controller which
is used together with a MPC tracking controller for a knuckle boom crane. The same
damping controller is also used in [77] applied on a real knuckle boom crane system for
hardware experiments. Elset used another Lyapunov based damping controller in his work
for a knuckle boom crane in [17]. Ambrosino et al. [6] proposes a Lyapunov based
nonlinear control scheme for a knuckle boom crane and compare the performance to a
LQR controller. Ouyang et al. propose an anti-sway controller based on Lyapunov stability
theory in [51] for a rotary crane with only horizontal boom motion. The same research
is done in [52]. Ouyang et al. takes a slightly different approach in [54] where a double
pendulum is considered. In [46] they use a Lyapunov approach that also takes the passivity
properties of the system into consideration.
Masoud presents an interesting controller applicable for all types of cranes in [44]
where the idea is that delayed-position feedback will dampen the oscillation of the sus-
pended load. The crane tip is to follow a tracking reference defined by operator commands
and a percentage of the delayed motion of the payload, relative to the crane tip.
Open loop is another control technique used in the research field, and it is often used
in combination with other closed loop techniques. Peng et al. [58] uses a command
smoothing technique that filters the operators commands. It successfully reduces sway of
the suspended load during motion. Input shaping is another open loop technique used by
Garrido et al. [22] for an overhead crane. Open loop techniques are mostly acceptable
for damping sway angles when it comes to path following, but the technique alone is not
applicable for industrial cranes where the system is influenced by external disturbances. It
can however be used in combination with other closed loop control techniques.
Jensen et al. [30] has a distinct approach for the anti-sway compared to the rest of
the researchers. They propose input signals for the different joint actuators. The control
method uses feedforward of the velocity reference and feedback of the position error for
the different joints. The angular velocity of the suspended load are converted into a ve-
locity reference of the crane tip, which again is converted into joint velocity reference that
is added to the input as feedforward. As they state, feedforward is an effective control
method since the controlled system is a hydraulic system that yields load independent ve-
locity control. Tysse and Egeland [78] also presents a work that differs form the rest. In

3
1 Introduction 1.2 Problem description

their report, the control objective is to control the position of the crane tip and keep it still
relative to NED frame (North-East-Down). As a direct result of keeping the crane tip still
in NED, excessive oscillation of the suspended load is avoided.
Another approach that stands out in the literature is the work from Wang et al. [85].
Similar to Tysse and Egeland, the approach is to compensate for ship motions, but rather
than moving the crane tip they move the crane base, where the crane itself is mounted on
an anti-swing platform.
See Figure 1.2 for an overview of the different reports on the topic and how they spread
out chronologically in the recent years. You can easily see that there has been a lot of work
in the years around 2020 for three dimensional crane systems.

1.2 Problem description


Consider a existing crane control system where there is a crane operator steering the crane
as he wishes. The operator must strive to move the crane in a smooth way restricting
oscillations of the suspended load for safety reasons. With anti-sway control as an asset,
the operator is eased from this demanding task increasing the effect of the lifting operation.
The idea is that the contribution from the anti-sway controller is to be added to the
existing control input ensuring minimal oscillations on the load. The operator should have
the choice to utilize it and it could be activated after the operator let go of the joystick, or
from the beginning of the operation.
This is a task delivered by the company Motus Technology AS. They already have a
control system for three dimensional compensation that compensates for ships movement
in the sea, keeping the crane tip at standstill. As a consequence oscillations of the sus-
pended load is minimized. Therefore, this report aims to investigate other great challenges
regarding sway, namely wind and operator in the loop.
The goal of the report is to design such an anti-sway controller, prove it’s stability, and
test it under windy conditions and with operator in the loop.

1.3 Delimitations
The thesis is limited to simulations only in Matlab and Simulink. No experimenting have
been done on a physical system.

1.4 Structure of the report


This thesis consists of nine chapter without the introduction. A short description about
each chapter is outlined.

Chapter 2 - System modeling


In this chapter a mathematical model of the crane and suspended load is derived. The
systems equations of motion is found using the Euler-Lagrange method. A linear model is
also presented.

4
1 Introduction 1.4 Structure of the report

[24]
1995
[25] Domasin
[44] 3D
[1]
[45] 2D
[22] [4]
[13] Type of controller
2010 MPC
[38] [51] [61] PID
LQR
[52] [56] SMC
Open loop
[73] [73] [15] [92] [18]
[37] Lyapunov based
Energy based
[28] [49] [16] [75] [39] Intelligent control
Flatness based
[74] [46] [12] [57] [29] Other
2015
[48] [67] [88]

[66] [10]

[71] [85] [14] [86] [93] [7] [69] [31]

[78] [68]
[81]

[34] [17] [79] [63] [58] [80] [35] [70] [53]


2020
[43] [91] [89] [5] [54] [90]

[6] [83] [84] [42] [87] [30] [55] [36]


2022
[65] [77] [82] [72] [11] [40]

Figure 1.2: Chronological chart showing relevant articles and publications, with the year of pub-
lication. As we can see there has been a lot of research on the topic in later years, and especially
the years around 2020. The different color schemes for the boxes classify the different types of con-
trollers used for the anti-sway part in the report. Reports that consider three dimensional systems are
marked with a double edge, while two dimensions are marked with a simple edge.

5
1 Introduction 1.4 Structure of the report

Chapter 3 - Kinematics
The forward and inverse kinematics are presented as well as the forward and inverse ve-
locity kinematics. The Kinematics are derived using DH-convention.

Chapter 4 - Control design


In the chapter about control design, a nonlinear Lyapunov based anti-sway controller is
presented. The stability of the controller is proven with Lyapunov analysis. For the posi-
tion control a standard PD-controller is considered.

Chapter 5 - Sensorics
Different types of sensors for measuring the sway angle are discussed in this chapter.
Researchers that have used relevant techniques are mentioned and their sensor arrangement
are shown with figures.

Chapter 6 - Estimation
How to get the most out of the measurements of the angles are described in the chapter
about estimation. A Kalman filter is presented and shown how to gain from the observ-
ability properties of the system.

Chapter 7 - Work grid


In this chapter, the area of where the suspended load can move is presented with describing
the radius of the load.

Chapter 8 - Simulations
Simulations of different scenarios are presented in this chapter. Simulations are done
for different scenarios that are considered to be challenging for the proposed anti-sway
controller.

Chapter 9 - Discussion
The results from the simulation are discussed in this chapter.

Chapter 10 - Conclusion
In the conclusion we draw a conclusion about the controller and presents suggested future
work on the theme.

6
2
System Modeling

2.1 Suspended load


The work in this thesis is based on a knuckle boom crane as shown in Figure 2.1. Defini-
tions about the crane comes in next chapter, while this chapter focuses on the suspended
load. In order to define a position of the suspended load we need two angles. There are
many different ways to do it, but to avoid singularity we define the angles as shown in
Figure 2.2. The angles describe the following

α := Rotation around the Y-axis


(2.1)
β := Rotation around the X-axis

rt `

α
Zo
θ1
β

rp

Xo

Figure 2.1: 3D model of the crane

7
2 System Modeling 2.2 Dynamics of suspended load

α `

Figure 2.2: Spherical pendulum with two degrees of freedom

2.2 Dynamics of suspended load


 ⊤
Let rt := xt yt zt be the position of the boom tip, i.e. the position of the origin
of the coordinate system in Figure 2.2. Then, with the angles defined, the position of the
 ⊤
suspended load, rp := xp yp zp is defined as
     
xp xt sin(α)
 yp  =  yt  + ℓ  cos(α) sin(β)  (2.2)
zp zt − cos(α) cos(β)

where ℓ is the length of the wire. Collecting the trigonometry in the vector Ω, such that
the position can be written on a compact vector form as

rp = rt + ℓΩ (2.3)

The velocity of the payload is calculated by taking the time derivative of the position,
hence

ṙp = ṙt + ℓΩ̇ + ℓ̇Ω (2.4)

When deriving the dynamics of the load, it is assumed that the wire length ℓ can vary
with time. Therefore ℓ̇ needs to be included in the velocity of the load. Expanding the
velocity expression such that the the velocity in each direction can easily be extracted

8
2 System Modeling 2.2.1 Equations of motion

yields
       
ẋp ẋt α̇ cos(α) sin(α)
 ẏp  =  ẏt  + ℓ β̇ cos(α) cos(β) − α̇ sin(α) sin(β) + ℓ̇  cos(α) sin(β)  (2.5)
żp żt α̇ sin(α) cos(β) + β̇ cos(α) sin(β) − cos(α) cos(β)

2.2.1 Equations of motion


In this chapter, the following assumptions are considered reasonable to avoid singularity
π
Assumption 1. The sway angles are bounded such that |α|, |β| < 2

Assumption 2. The cable length is always greater than zero, ℓ(t) > 0, ∀t ≥ 0
In order to derive the system’s equations of motion, the Euler-Lagrange method can
be used. The lagrangian is defined as the difference between the kinetic energy and the
potential energy in the system.
L=K−P (2.6)
where the kinetic energy of the system is
1 ⊤
K= mṙ ṙp (2.7)
2 p
and the potential energy of the system is

P = mgℓ(1 − cos(α) cos(β)) (2.8)

Using the notation cos(θ) = cθ and sin(θ) = sθ for easy reading. Substituting (2.5)
into (2.7), the lagrangian L in (2.6) results in
1 
L = m ẋ2t + ẏt2 + żt2 + α̇2 ℓ2 + ℓ2 c2α β̇ 2 + ℓ̇2 + 2ℓcα α̇ẋt + 2sα ℓ̇ẋt
2
+ 2ℓcα cβ β̇ ẏt + 2cα sβ ℓ̇ẏt − 2ℓsα sβ α̇ẏt − 2cα cβ ℓ̇żt (2.9)
  
+ 2ℓsα cβ α̇żt + 2ℓcα sβ β̇ żt + mgℓ cα cβ − 1
 ⊤
With q = α β as the generalized coordinates, the Euler-Lagrange equation of
motion is defined as
d ∂L ∂L
− =0 (2.10)
dt ∂ q̇ ∂q
Solving the Euler-Lagrange equation for the sway angle α yields
∂L 
= m − ℓcα β̇ 2 − ℓsα α̇ẋt + cα ℓ̇ẋt − ℓsα cβ β̇ ẏt
∂α
+ sα cβ ℓ̇żt + ℓcα cβ α̇żt − ℓsα sβ β̇ żt (2.11)

− sα sβ ℓ̇ẏt − ℓcα sβ α̇ẏt − gℓsα cβ

∂L  
= m ℓ2 α̇ + ℓcα ẋt + ℓsα cβ żt − ℓsα sβ ẏt (2.12)
∂ α̇

9
2 System Modeling 2.2.1 Equations of motion

d ∂L 
= m α̈ℓ2 + α̇ℓℓ̇ + ℓcα ẍt − ℓsα ẋt α̇ + ℓ̇cα ẋt + ℓ̇sα cβ żt
dt ∂ α̇
+ ℓcα cβ żt α̇ − ℓsα sβ żt β̇ + ℓsα cβ z̈t − ℓ̇sα sβ ẏt (2.13)

− ℓcα sβ ẏt α̇ − ℓsα cβ ẏt β̇ − ℓsα sβ ÿt

d ∂L ∂L 
− = m α̈ℓ2 + ℓcα ẍt − ℓsα sβ ÿt + ℓsα cβ z̈t
dt ∂ α̇ ∂α  (2.14)
+ 2α̇ℓℓ̇ + ℓ2 sα cα β̇ 2 + gℓsα cβ = 0
Solving (2.14) for α̈ yields

1 
α̈ = − cα ẍt + sα sβ ÿt − sα cβ z̈t − 2α̇ℓ̇ − ℓsα cα β̇ 2 − gsα cβ (2.15)

Solving the Euler-Lagrange equation for the sway angle β yields

∂L 
= m − ℓcα sβ β̇ ẏt + cα sβ ℓ̇żt − ℓsα sβ α̇żt + ℓcα cβ β̇ żt
∂β (2.16)

+ cα cβ ℓ̇ẏt − ℓsα cβ α̇ẏt − gℓcα sβ

∂L 
= m ℓ2 c2α β̇ + ℓcα cβ ẏt + ℓcα sβ żt (2.17)
∂ β̇

d ∂L 
= m ℓ2 c2α β̈ + 2ℓc2α β̇ ℓ̇ − 2ℓ2 cα sα β̇ α̇ + ℓ̇cα cβ ẏt
dt ∂ β̇
− ℓsα cβ ẏt α̇ − ℓcα sβ ẏt β̇ + ℓcα cβ ÿt + ℓ̇cα sβ żt (2.18)

− ℓsα sβ żt α̇ + ℓcα cβ żt β̇ + ℓcα sβ z̈t

d ∂L ∂L 
− = m ℓ2 c2α β̈ + ℓcα cβ ÿt + ℓcα sβ z̈t
dt ∂ β̇ ∂β (2.19)

− 2ℓ2 sα cα β̇ α̇ + 2ℓβ̇ ℓ̇ + gℓcα sβ = 0

Solving (2.19) for β̈ yields


1  
β̈ = − cβ ÿt − sβ z̈t + 2ℓsα β̇ α̇ − 2β̇ ℓ̇ − gsβ (2.20)
ℓcα
Summarizing the two nonlinear coupled second order differential equations

1 
α̈ = − cα ẍt + sα sβ ÿt − sα cβ z̈t − 2α̇ℓ̇ − ℓsα cα β̇ 2 − gsα cβ

(2.21)
1  
β̈ = − cβ ÿt − sβ z̈t + 2ℓsα β̇ α̇ − 2cα β̇ ℓ̇ − gsβ
ℓcα

10
2 System Modeling 2.2.2 Matrix-vector representation

2.2.2 Matrix-vector representation


Written on the matrix-vector form
M(q)q̈ + C(q, q̇)q̇ + G(q) + B(q)r̈t = 0 (2.22)
 ⊤
where r¨t = ẍt ÿt z̈t . The matrix M(q) denotes the systems mass inertia matrix
which is positive definite and symmetric. C(q, q̇) denotes the Coriolis matrix with cen-
trifugal terms on the diagonal and Coriolis terms on the off-diagonal [50]. G(q) denotes a
vector of gravitational forces, B(q) denotes the forces due to the acceleration of the crane
tip. The matrices takes the form
 
ℓ 0
M(q) = (2.23)
0 ℓ cos(β)
 
2ℓ̇ ℓsα cα β̇
C(q, q̇) = (2.24)
−2ℓsα β̇ 2ℓ̇cα
 
gsα cβ
G(q) = (2.25)
gsβ
 
c −sα sβ sα cβ
B(q) = α (2.26)
0 cβ sβ
Solving for q̈ then yields
 
q̈ = M(q)−1 − C(q, q̇)q̇ − G(q) − B(q)r̈t (2.27)
Due to the reasonable assumptions stated earlier, the inverse of the matrix M will not
be subject to singularities. It would have for β = 90◦ , but if that would be the case, there
are probably nothing an anti-sway controller could do to help anyways.

2.3 Reduced model


For the reduced model the following assumption have been made
Assumption 3. the tip of the crane only move in the XY-plane, meaning z̈t = żt = 0
Assumption 4. the wire length is kept constant, meaning ℓ̇ = 0
With this the dynamics of the suspended load reduces to
1 
α̈ = − cα ẍt + sα sβ ÿt − ℓsα cα β̇ 2 − gsα cβ

(2.28)
1  
β̈ = − cβ ÿt + 2ℓsα β̇ α̇ − gsβ
ℓcα
With this, the Coriolis matrix in (2.24) looses it’s terms on the diagonal, and left with
only off-diagonal terms. The matrix B in (2.26) looses it’s elements to the right denoting
the forces due to acceleration in Z, hence
   
0 ℓsα cα β̇ cα −sα cβ 0
Cred (q, q̇) = , Bred (q) = (2.29)
−2ℓsα β̇ 0 0 cβ 0

11
2 System Modeling 2.4 Linearization

2.4 Linearization
For the linearised model we consider the sway angles α and β and their angular velocity
α̇ and β̇ as states in a new system with the crane tip accelerations as input, hence
   
q ẍ
x= , u= t (2.30)
q̇ ÿt
With these definitions, the system can be written on the form
ẋ = f (x, u) (2.31)
   
q̇ q̇
ẋ = = (2.32)
M(q)−1 − Cred (q, q̇)q̇ − G(q) − Bred (q)r̈t


Now we want to linearize the system around the downward equilibrium of the system
where the swaying load is at rest, hence
 ⊤  ⊤
xeq = αeq βeq α̇eq β̇eq = 0 0 0 0 (2.33)
Where the matrices A and B is found by evaluating the Jacobian of f (x) at the equi-
librium with respect to the the states and input on the linear system respectively. Hence
 ∂f 
A= ∂x x=xeq
(2.34)
 ∂f 
B= ∂u x=xeq
(2.35)
The matrices simply reduces to
 
0 0 1 0
 0 0 0 1
A=
−ω 2
 (2.36)
0 0 0
0 −ω 2 0 0
 
0 0
 0 0 
B= − 1
 (2.37)
ℓ 0 
0 − 1ℓ
where ω is the systems natural frequency given by
r
g
ω= (2.38)

With sensors measuring only the sway angles, the C matrix yields
 
1 0 0 0
C= (2.39)
0 1 0 0
With the matrices derived, we can write the linear system on standard state space form,
hence

ẋ = Ax + Bu
(2.40)
y = Cx

12
2 System Modeling 2.4.1 Controllability

2.4.1 Controllability
Controllability is a key property of a dynamical system that determines whether the system
can be steered from any initial state to any desired final state within a finite time using
appropriate control inputs. A system is said to be controllable if and only if there exists
a set of control inputs that can achieve this goal [9]. In this section, we will perform a
controllability analysis on the linear model of the crane dynamics, where we investigate
the controllability matrix.
The controllability matrix for the system with state-space representation (A, B) in
(2.40) is given by:
C = B AB A2 B A3 B
 
(2.41)

The rank of the controllability matrix indicates the degree of controllability of the
system. If the rank of C is equal to n = 4 which is the number of states, then the system
is said to be completely controllable. That means that it can be controlled from any initial
state to any final state in a finite time. With the system matrices derived above in (2.36)
and (2.37), the controllability matrix results in

g
− 1ℓ
 
0 0 0 0 0 ℓ2 0
g 
 0 0 0 − 1ℓ 0 0 0 ℓ2 
C=
− 1 g (2.42)
ℓ 0 0 0 ℓ2 0 0 0
g
0 − 1ℓ 0 0 0 ℓ2 0 0

The rank of C is 4, which is equal to the number of states in the system. Therefore, the
system is controllable.

2.4.2 Observability
Observability is another important property of the linear model that needs to be analyzed.
It refers to the ability to estimate the internal state of the system based on its input and
output measurements. In other words, an observable system can be ”observed” or moni-
tored from outside using sensors or measurements. To check for observability, we use the
observability matrix O, which is defined as:



C
 CA 
O=
CA2 
 (2.43)
CA3

If the rank of the observability matrix is equal to the number of states n, then the
system is observable. Otherwise, it is unobservable [9]. For the linear model with system
matrices A and C from (2.36) and (2.39), the observability matrix yields

13
2 System Modeling 2.5 Stability analysis on open loop system

 
1 0 0 0
 0 1 0 0 
 
 0 0 1 0 
 
 0 0 0 1 
O=
−ω 2
 (2.44)
 0 0 0  
 0
 −ω 2 0 0  
 0 0 −ω 2 0 
0 0 0 −ω 2
The rank of the observability matrix is equal to 4, which means that the system is
observable. Therefore, we can estimate the internal states of the system using the output
measurements.
This is important as it allows us to estimate the motion of the load so that it can be used
in the anti-sway controller. The estimation process can be done using various estimation
techniques such as Kalman filtering or observer-based control. In chapter 6 we discuss
how the Kalman filter can be a useful tool for estimating non-measured states.

2.5 Stability analysis on open loop system


For a linear model on the state space form as in (2.40), the eigenvalues of the system matrix
A, can be used to determine the stability of the system. To find the eigenvalues, we solve
the characteristic equation which is given by

det A − λI = 0 (2.45)
where λ is the eigenvalue and I is the identity matrix. With A from (2.36), the character-
istic equation yields

(λ2 + ω 2 )2 = 0 (2.46)
As we can see from the characteristic equation, we get a repeating of eigenvalues. This
is because the eigenvalues for α are the same as for β. Solving for λ yields

λα = λβ = ±iω (2.47)
The eigenvalues are complex conjugate on the imaginary axis. They are also repeated
which could cause the system to be unstable, but that is not the case here. According
to Balchen et al. [8], a closed loop system with multiple eigenvalues on the imaginary
axis is unstable. This is not the case here since the eigenvalues applies for the open loop
system with decoupled states. Therefore the open loop system is marginally stable, and a
controller should be designed to improve the stability of the system.

2.5.1 Transfer function


The transfer function of a linear system is the ratio of the Laplace transform of the output
to the Laplace transform of the input, assuming zero initial conditions. In other words, it
describes the system’s response to an input signal in the frequency domain.

14
2 System Modeling 2.6 Wind disturbance

For the crane dynamics linear model with system matrices A, B, and C, the transfer
function is defined as
−1
G(s) = C sI − A B (2.48)
The transfer function results in a diagonal 2x2 matrix and can be written on the form
 
1 0
G(s) = g (2.49)
0 1

where
−1/ℓ
g= (2.50)
s2 + ω2
The transfer function matrix shows that the linearised system is decoupled, since it
only have elements on the diagonal, and the two states behave the same for the same type
of input. The poles of the transfer function correspond to the eigenvalues of the system
matrix A, which corresponds to what we found earlier in the stability analysis. The gain
of the transfer function represents the relationship between the input and output signals. In
this case, it shows that the output is proportional to the input with a negative gain, which
means that the angle becomes negative when the crane is moving in positive direction, and
it is dependent of the wire length ℓ. Longer wire length yields a slower response, while a
shorter wire length yields a quicker response.

2.6 Wind disturbance


As described by Fossen [19], the wind forces acting on the suspended load can be defined
as
1 2
τwind = ρν cA (2.51)
2
where ρ = 1.293[kg/m3 ] is the air density. ν is the wind in meter per second, c is the drag
coefficient while A is the surface area of the suspended load. These design parameters
will vary with different types of load, so it is therefore difficult to pinpoint. In order to
add these in to the equations of motion, we need to decompose it for the two sway angles,
hence

τw,α = τwind cos(θ1 )


(2.52)
τw,β = −τwind sin(θ1 )
where θ1 is the crane’s angle of rotation around the crane base, as shown in Figure 2.1.
Added to the equations of motions on the right hand side of (2.14) and (2.19), the forces
become dependent of load’s mass. The vector containing the mass-dependent forces can
be added on the right hand side of (2.27) yields
" #
1 c2α τw,α
τ = (2.53)
mℓ2 c2α τw,β

15
3
Kinematics

The kinematics of the crane describes the relation between the crane base, joint angles
and the crane tip in Cartesian coordinates. The distance between the joints are listed in
Table 3.1. The Denavit-Hartenberg parameters are listed in Table 3.2, where R is the
augmented rotational matrix around either the x or z axis, depending on the subnotation,
while T are translational matrix along either the x or z axis depending on the subnotation.
The rotational angles θ1,2,3 denotes the rotation about the slew joint, boom joint and jib
joint, respectively, as seen in Figure 3.1.

Z2 X2

θ3

Z4

Z3

Zo (xt , yt , zt )
Z1 θ2 X4

Yo X3

θ1 X
1

Xo

Figure 3.1: Coordinate frames of the crane model according to Denavit-Hartenberg.

16
3 Kinematics 3.1 Forward Kinematics

3.1 Forward Kinematics

Table 3.1: Lengths of the crane parts.

Name Length [m] Description


ℓb 20 Length of the boom
ℓj 15 Length of the jib

Table 3.2: Denavit-Hartenberg parameters.

i Rz Tz Rx Tx
1 θ1 0 -90◦ 0
2 −θ2 0 0 ℓb
3 π − θ3 0 0 ℓj
4 θ2 + θ3 − π 0 90◦ 0

The rotation and translation matrix around X- and Z-axis respectively yields

   
1 0 0 0 1 0 0 ℓx
 0 cos(θx ) − sin(θx ) 0   0 1 0 0 
RX =
 0
, TX =  (3.1)
sin(θx ) cos(θx ) 0   0 0 1 0 
0 0 0 1 0 0 0 1

   
cos(θz ) − sin(θz ) 0 0 1 0 0 0
 sin(θz ) cos(θz ) 0 0   0 1 0 0 
RZ =  , TZ =   (3.2)
 0 0 1 0   0 0 1 ℓz 
0 0 0 1 0 0 0 1

Now we can describe the homogeneous transform (HT) between joints given by the
HT- matrix where the subnotation i corresponds to one line in Table 3.2.

Ai = Rz,i Tz,i Rx,i Tx,i (3.3)

 
cos(θz,i ) − sin(θz,i ) cos(θx,i ) sin(θx,i ) sin(θx,i ) ℓx,i cos(θz,i )
 sin(θz,i ) cos(θz,i ) cos(θx,i ) − cos(θz,i ) sin(θx,i ) ℓx,i sin(θz,i ) 
Ai = 
 
0 sin(θx,i ) cos(θx,i ) ℓz,i 
0 0 0 1
(3.4)
The final HT-matrix describes the relation between the crane base and crane tip, where
the position of the crane tip xt , yt and zt appears to the right as shown in (3.6).

ADH = A1 A2 A3 A4 (3.5)

17
3 Kinematics 3.1.1 Forward velocity kinematics

 
cos(θ1 ) sin(θ1 ) 0 xt
 sin(θ1 ) − cos(θ1 ) 0 yt 
ADH =  (3.6)
 0 0 −1 zt 
0 0 0 1

Due to the last rotation where we line up the frame making X4 parallel to X0 and Z4
parallel to Z0 , the matrix becomes very simple. The position of the crane tip yields


xt = cos(θ1 ) ℓb cos(θ2 ) − ℓj cos(θ2 + θ3 )

yt = sin(θ1 ) ℓb cos(θ2 ) − ℓj cos(θ2 + θ3 ) (3.7)
zt = ℓb sin(θ2 ) − ℓj sin(θ2 + θ3 )

3.1.1 Forward velocity kinematics

The correlation between the crane tip velocities and and joint velocities can be found using
the Jacobian:

   
ẋt θ̇1
 ẏt  = J θ̇2  (3.8)
żt θ̇3

Where the Jacobian is defined as the partial derivative of the crane tip position from
(3.7), with respect to the joint angles, hence

 ∂xt ∂xt ∂xt 


∂θ1 ∂θ2 ∂θ3
 ∂yt ∂yt ∂yt 
J=  ∂θ1 ∂θ2 ∂θ3  (3.9)
∂zt ∂zt ∂zt
∂θ1 ∂θ2 ∂θ3

18
3 Kinematics 3.2 Inverse kinematics

∂xt 
= sin(θ1 ) ℓj cos(θ2 + θ3 ) − ℓb cos(θ2 )
∂θ1
∂xt 
= cos(θ1 ) ℓj sin(θ2 + θ3 ) − ℓb sin(θ2 )
∂θ2
∂xt
= ℓj cos(θ1 ) sin(θ2 + θ3 )
∂θ3
∂yt 
= − cos(θ1 ) ℓj cos(θ2 + θ3 ) − ℓb cos(θ2 )
∂θ1
∂yt 
= sin(θ1 ) ℓj sin(θ2 + θ3 ) − ℓb sin(θ2 ) (3.10)
∂θ2
∂yt
= ℓj sin(θ1 ) sin(θ2 + θ3 )
∂θ3
∂zt
=0
∂θ1
∂zt
= ℓb cos(θ2 ) − ℓj cos(θ2 + θ3 )
∂θ2
∂zt
= −ℓj cos(θ2 + θ3 )
∂θ3

The forward velocity kinematics is an important aspect of the control system. When
the crane operator steers the crane with joysticks, the position of the joystick is linear to the
joints angular velocity. Therefore it is important that the Jacobian is correctly calculated
in order to generate the right input for the system.

3.2 Inverse kinematics


The problem of inverse kinematics is to determine the joint angles θ1,2,3 , from a given
(x, y, z) position of the crane tip. In general this is a more difficult problem to solve than
the forward kinematics since there often exists several solutions. For example the elbow
up and elbow down position illustrated in Figure 3.2.

Figure 3.2: Illustration of the elbow up and elbow down problem.

19
3 Kinematics 3.2.1 Inverse velocity kinematics

From Figure 3.1, it is clear that

θ1 = Atan(yt , xt ) (3.11)

For the boom and jib angle, θ2 and θ3 , respectively, we can use the law of cosines.
Then the angle θ3 is given by

ℓ2b + ℓ2j − x2t − yt2 − zt2


cos(θ3 ) = := ψ (3.12)
2ℓb ℓj
Using trigonometric identities to find that
p
sin(θ3 ) = ± 1 − ψ 2 (3.13)
Then we can use the better approach to determine θ3 as Spong uses in his book [64]
p
2
−1 ± 1 − ψ
θ3 = tan (3.14)
ψ
Here we have the advantage to differ from the elbow up or elbow down position by the
choosing the positive or negative sign. Due to the mechanics of the crane, only elbow up
is the one we want.
The boom angle θ2 can then be given as
!  
−1 z ℓj sin(θ3 )
θ2 = tan p − tan−1 (3.15)
x2t + yt2 ℓb + ℓj cos(θ3 )

3.2.1 Inverse velocity kinematics


From (3.8), we can calculate the joint velocities from a given set of crane tip velocities as
   
θ̇1 ẋt
θ̇2  = J−1  ẏt  (3.16)
θ̇3 żt
This refers to the inverse velocity kinematics, and has not been further used in this
report or for simulation. It is still mentioned since it can be useful for future work for
autonomous or remote operations for cranes. See appendix A for a detailed presentation
of the inverse Jacobian matrix.

20
4
Control design

4.1 Control objective

The system will consist of two controllers, one PID controller for the cranes positioning,
and an anti-sway controller to dampen the unactuated sway angles. The PID controller
works in all directions, X, Y and Z while the anti-sway controller only contributes in the
XY -plane. Explained mathematically, the control objective can be described as

lim [α, β, α̇, β̇, xt , yt , zt ] → [0, 0, 0, 0, xdt , ytd , ztd ] (4.1)


t→∞

where [xdt , ytd , ztd ] is the desired setpoint for the crane tip. The total input to the system is
illustrated in Figure 4.1, where the contribution from the PID is marked in green, and the
contribution from the ASC is marked in blue.

wx + vx
wy + vy
wz vz

ux
uy

Figure 4.1: Total input v as a summation of input from PID, marked in green and ASC, marked in
blue.

21
4 Control design 4.2 Interconnected model

4.2 Interconnected model


In this section the correlation bewteen joint actuator space, movement of the crane tip
and suspended load will be developed to see how the input affects the motion of the load.
We still consider the acceleration of the crane tip as input, while keeping the wire length
constant, ℓ̇ = 0. Let the generalized coordinates of the system be the coordinates of the
⊤
suspended load and crane, respectively. Hence q = q⊤ q⊤

1 2 where
 ⊤
q1 = α β
 ⊤ (4.2)
q2 = θ1 θ2 θ2

Differentiating the forward velocity mapping in (3.8) yields the acceleration equation

r̈t = Jq̈2 + J̇q̇2 (4.3)

Solving for the coordinates q̈2 yields

q̈2 = J−1 (r̈t − J̇q̇2 ) (4.4)


Substituting (4.3) in to matrix vector representation from (2.22), gives

Mq̈1 + BJq̈2 + BJ̇q̇2 + Cq̇1 + G = 0 (4.5)


where we have dropped the notation of the parenthesis. Now we can rewrite the system on
the form
        
M BJ q̈1 C1 G 0
+ q̇ + = −1 (4.6)
0 I q̈2 C2 0 J r̈t
where C1 = C BJ̇ and C2 = 0 J−1 J̇ . The matrices M, C, G and B is the ones
   

from (2.23)-(2.26).
Solving the top equation in (4.6) for q̈2 yields
 
q̈2 = −(BJ)−1 Mq̈1 + C1 q̇ + G (4.7)

and substitute it into the bottom equation gives

Dq̈1 + C̃q̇ + g = v
(4.8)
r̈t = v

where v is the control input and

D = −J(BJ)−1 M
C̃ = JC2 − J(BJ)−1 C1 (4.9)
−1
g = −J(BJ) G
From (4.8) we can clearly see how the input r̈t = v impacts both actuated and unactu-
ated parts of the system. We now wish to choose v such that the control objective is met.

22
4 Control design 4.3 Anti-sway controller

As previously touched upon, this is done using two different controllers, one stabilizing
the unactuated sway dynamics, while the other stabilize the crane’s position, hence

v =w+u (4.10)
where u is the contribution from the anti-sway controller and w is the contribution from
the position controller. The overall structure of the control system can be seen in Fig-
ure 4.2.

Plant
Operator w v
Kinematics Position controller + Crane and
suspended load
+

u
α, β, α̇, β̇
Anti-sway controller

xt , yt , zt , ẋt , ẏt , żt

Figure 4.2: Block diagram of the control system

4.3 Anti-sway controller


For the anti-sway controller (ASC), we want it to be an additional asset for the total crane
control. The crane operator steers the crane as he wants, and the output from the ASC
is added on top of the output from the position controller. By splitting it up in to two
controllers like this, we have the possibility to choose when or whether to use the ASC.
The contribution from the ASC is only in the XY -plane, hence uz = 0.

4.3.1 Linear Quadratic Regulator


The LQR controller is very good choice for the linear model due to it’s optimality prop-
erties [27]. It will not be implemented for use in this report, but the desire is to achieve
the same closed loop dynamics with a different nonlinear controller. The control law for a
LQR yields
u = −Kx (4.11)
where the feedback matrix K is found by minimizing the cost function
Z ∞
1  ⊤
x (t)Qx(t) + u⊤ (t)Ru(t) dt

J= (4.12)
2 0

The matrices Q and R are positive definite and diagonal tuning matrices. The Q
matrix hold weighting parameters on it’s diagonal that penalizes deviation from the desired

23
4 Control design 4.3.1 Linear Quadratic Regulator

setpoint for each state. The R matrix penalizes the use of control input. The feedback
control matrix K can be found using the Matlab command

[K, S, e] = lqr(A, B, Q, R) (4.13)

The function also returns a matrix S that can be used for Lyapunov analysis, and e
which holds the eigenvalues for the closed loop system. With the system matrices A and
B derived for the linear system in (2.35) and (2.37) and the tuning matrices initially chosen
as the identity matrices, Q ∈ R4x4 and R ∈ R2x2 , the feedback control matrix results in
 
−0.508 0 −1.4201 0
K= (4.14)
0 −0.508 0 −1.4201
and the closed loop dynamics then takes the form

ẋ = (A − BK)x (4.15)

For a feedback matrix K, on the form


 
k 0 k2 0
K= 1 (4.16)
0 k1 0 k2

the closed loop dynamics will look like

k2 k1
α̈ = α̇ + α − ω2 α
ℓ ℓ (4.17)
k2 k1
β̈ = β̇ + β − ω2 β
ℓ ℓ
Since the LQR guarantees stability and optimal regulation [27], we now want to design
a nonlinear controller that achieves the same properties. By tuning we can achieve the
same closed loop form as in (4.17) with a nonlinear controller, such that the optimality
properties can be adopted.

Tuned LQR

For further use, the feedback matrix from a tuned LQR yields
 
−2.28 0 −11.14 0
K= (4.18)
0 −2.28 0 −11.14

which was found using


 
50 0 0 0  
 0 50 0 0 1 0
Q=
0
, R= (4.19)
0 10 0 0 1
0 0 0 10

24
4 Control design 4.3.2 Nonlinear Controller

4.3.2 Nonlinear Controller


For the nonlinear controller, we want to design a controller such that the closed loop lin-
earized system is similar as the closed loop LQR controller. That can easily be achieved by
tuning. Consider the damping controller given in [77], slightly modified to fit the problem
in this thesis, hence
ℓ sα sβ
ux = (Kd α̇ + Kp α) − ℓsα β̇ 2 + uy
cα cα
(4.20)
ℓcα 2ℓsα s2 sβ
uy = (Kd β̇ + Kp β) + α̇β̇ − g α
cβ cβ cβ

where the first terms yields a PD structure, while the two last terms are higher order can-
cellations terms. With ẍt = ux and ÿt = uy inserted into the reduced pendulum dynamics
in (2.28), we obtain

!
1  ℓ sα sβ 
α̈ = − cα (Kd α̇ + Kp α) − ℓsα β̇ 2 + uy +sα sβ uy − ℓsα cα β̇ 2 − gsα cβ
ℓ cα cα
| {z }
ux
!
1  ℓc
α 2ℓsα s2 sβ 
β̈ = − cβ (Kd β̇ + Kp β) + α̇β̇ − g α −2ℓsα α̇β̇ − gsβ
ℓcα cβ cβ cβ
| {z }
uy
(4.21)
Using the identity

sβ s2 sβ
− α = cα sβ (4.22)
cα cα
the closed loop dynamics yields

α̈ = −Kd α̇ − Kp α − ω 2 sα cβ
(4.23)
β̈ = −Kd β̇ − Kp β − ω 2 cα sβ
wich simply linearizes to

α̈ = −Kd α̇ − Kp α − ω 2 α
(4.24)
β̈ = −Kd β̇ − Kp β − ω 2 β
Now we can tune controller to match the linearized dynamics of the closed loop dy-
namics with LQR controller. Matching terms between (4.24) and (4.17) yields

k2
Kd = −
ℓ (4.25)
k1
Kp = −

Using k1 and k2 from the tuned LQR controller in (4.18), results in the following gains

25
4 Control design 4.4 Closed loop Stability analysis

Kd = 0.4457
(4.26)
Kp = 0.0913

4.4 Closed loop Stability analysis


The stability of the closed closed loop dynamics in (4.23) will now be analysed
 with the 
help of a Lyapunov analysis. Consider the same state vector as in (2.30), x = α β α̇ β̇
and the following Lyapunov function candidate which is the same as used in [77],

V (x) = x⊤ Px + mgℓ(1 − cα cβ ) (4.27)


where P ∈ R4x4 is positive definite and symmetric, hence
 
p1 0 p3 0
1  0 p1 0 p3 
P = mℓ2  p3 0 p2 0 
 (4.28)
2
0 p3 0 p2

The inclusion of element p3 on the off-diagonal is necessary to achieve definite negativity


for the derivative of the Lyapunov function candidate.
In addition to previous assumptions that |α|, |β| < π2 , also assume that |α̇|, β̇ < π.
Collect these assumptions in the domain D:
n π o
D = x : |α|, |β| < and |α̇|, β̇ < π (4.29)
2
The time derivative of the Lyapunov function candidate along the trajectories in (4.23)
yields

V̇ (x) = mℓ2 x⊤ Pẋ + mgℓ(sα cβ α̇ + cα sβ β̇) (4.30)


Inserting the dynamics from (4.23) yields

V̇ (x) = mℓ2 p1 (αα̇ + β β̇) + p3 (α̇2 + β̇ 2 )
− (Kd α̇ + Kp α + ω 2 sα cβ )(p2 α̇ + p3 α)
 (4.31)
− (Kd β̇ + Kp β + ω 2 cα sβ )(p2 β̇ + p3 β)
+ mgℓ(sα cβ α̇ + cα sβ β̇)
Collecting terms to easily see implementation of values for p1 , p2 and p3


V̇ (x) = mℓ2 (p3 − p2 Kd )(α̇2 + β̇ 2 ) − Kp p3 (α2 + β 2 )

+ (p1 − p3 Kd − p2 Kp )(αα̇ + β β̇) (4.32)

+ (mgℓ − p2 mℓ2 ω 2 )(sα cβ α̇ + cα sβ β̇) − gℓp3 cβ sα α − gℓp3 cβ sβ β

26
4 Control design 4.4 Closed loop Stability analysis

Next we choose p2 = 1, 0 < p3 < p2 Kd and p1 − p3 Kd − p2 Kp = 0 such that the


time derivative of the Lyapunov function candidate reduses to

V̇ (x) = ℓ2 (p3 − p2 Kd )(α̇2 + β̇ 2 ) + Kp p3 (α2 + β 2 )
(4.33)
− gℓp3 cβ sα α − gℓp3 cβ sβ β
Since αsα > 0 and cα ≥ 0 (and the same applies for β) in the domain D, the derivative
of the Lyapunov function is negative definite, making the system stable in the sense of
Lyapunov. Due to the design of P and ASC the system is actually exponentially which we
will next.

Lyapounov theorem proof


In this section we will prove the stability of the system with respect to the literature. The-
orem 4.10 in the book of Khalil [33] states the following

Theorem 1. Let x = 0 be an equilibrium point for a system on the form ẋ = f (x), and
D ⊂ Rn be a domain containing x = 0. Let V : [0, ∞) × D → R be a continuously
differentiable function such that

k1 ∥x∥a ≤ V (x) ≤ k2 ∥x∥a (4.34)

V̇ (x) ≤ −k3 ∥x∥a (4.35)


∀t ≥ 0 and ∀x ∈ D, where k1 , k2 , k3 and a are positive constants. Then x = 0 is
exponentially stable.

We have that x = 0 is an equilibrium point for our system in (2.27), which is contained
in D. The Lyaponuv functions also holds the criterion for being continuously differen-
tiable. Regarding the criterion stated in (4.34), the Lyapunov function can be bounded by
bounding the wire length ℓ with an upper and lower bound. The lower bound is easily
stated as

1
ℓmin x⊤ Px ≤ V (x) (4.36)
2
where the additional term considering the potential energy is dropped since it only adds a
positive term anyways. Regarding the upper bound we must consider this additional term,
but we use that (1 − cα cβ ) ≤ 21 (α2 + β 2 ) such that the upper bound for the Lyapunov
function yields

1
V (x) ≤ ℓmax x⊤ P̃x (4.37)
2
where  
mg 0 0 0
1  0 mg 0 0
P̃ = P + 
 0
 (4.38)
ℓmax 0 0 0
0 0 0 0

27
4 Control design 4.5 PID controller for positioning

Now we can write it on the form as in (4.34) where


1 2 1 2
k1 = ℓ λmin (P), k2 = ℓ λmax (P̃), a=2 (4.39)
2 min 2 max

where λmin (P) is the smallest eigenvalue of P and λmax (P̃) is the largest eigenvalue of
P̃. Regarding the derivative of the Lyapunov function from (4.33), it can be limited by
 
V̇ (x) ≤ ℓ2min (p3 − p2 Kd )(α̇2 + β̇ 2 ) + Kp p3 (α2 + β 2 ) (4.40)

which easily can be written on the form as in (4.35) where we choose k3 as

k3 = −ℓ2min min (p3 − p2 Kd ), (Kp p3 )



(4.41)

Since P and P̃ are positive definite symmetric matrices, their eigenvalues are also
positive making k1 and k2 positive constants. k3 is also a positive constant since (p3 −
p2 Kd ) and p3 Kp are negative by design.

4.5 PID controller for positioning


The structure of the position controller is chosen as a simple PID controller, where the
input is calculated as follows
Z t
d d
wx = Kd (ẋt − ẋt ) + Kp (xt − xt ) + Ki (xdt − xt )dt
0
Z t
wy = Kd (ẏtd − ẏt ) + Kp (ytd − yt ) + Ki (ytd − yt )dt (4.42)
0
Z t
wz = Kd (żtd − żt ) + Kp (ztd − zt ) + Ki (ztd − zt )dt
0
 ⊤
The desired velocities ẋt ẏt żt comes directly from the crane operator via for-
ward velocity kinematics. The desired position is calculated by integrating the velocity
signal. The following gains are used in the PID controller

Kd = 0.4
Kp = 0.1 (4.43)
Ki = 0.1

28
5
Sensorics

To control the swing of a knuckle boom crane, it is necessary to measure the position and
velocity of the payload. In this chapter, we review different sensors that can be used for
this purpose, and describe their advantages and limitations. There are mainly two methods
that is applicable, direct method or indirect method.

5.1 Indirect method


Indirect method means to measure a relative position of the payload from a given perspec-
tive. The sway angles can be calculated from the measured position. Such sensors can
include ultrasonic sensors, cameras IMU or GPS.

5.1.1 Ultrasonic sensors


An ultrasonic sensor is a device that sends out sound waves at a high frequency and mea-
sure how long it takes for the waves to return. Based on the time it takes for the waves to
return, the position of the object can be calculated. For a real system aboard a ship, several
sensors can be placed strategically to triangulate the position of the load.
The advantages with ultrasonic sensor is they are low cost and not affected by sun or
low light. They can however be affected by the environment. Out at sea the environment
is harsh with salt water and often challenging weather.

5.1.2 Camera
Camera and image processing can be used to measure the position of the payload. Tysse et
al. [76] has done hardware experiments on measuring the sway angle on a knuckle boom
crane system where they used three cameras tracking the position of two markers on the
wire. The markers were identified using size and color information. They had success with
the experiment and the crane damped the sway and returned to desired position. Yamamoto
et al. [89] used a camera mounted on the crane tip to measure the centroid of the load. The

29
5 Sensorics 5.1.3 GPS

arrangement of the cameras and markers on the wire used by Tysse et al. is shown in
Figure 5.1.
However, for systems aboard ships in rough environments, cameras for measurements
like this is not well suited. They are also expensive and require a lot of computation and
maintenance. Sunlight and weather is also a great challenge for cameras that can cause
them to see nothing at all.

Figure 5.1: Camera setup from [79]. The three cameras are marked c1,c2 and c3 while the green
markers on the wire are marked with X1 and X2 .

5.1.3 GPS
GPS can be used to measure the position and velocity of the payload. Schaper et al., (2011)
used GPS to verify an estimator with gyroscope measurements [62].
GPS is not affected by weather making it suitable for real crane systems, but on the
other side it needs a lot of power. A battery driven GPS would often require recharging.

5.1.4 Inertial measurement unit


Inertial measurement unit (IMU) is a sensor consisting of several sensors inside. It often
has accelerometers, gyros, magnetometers and barometer. The pesotion of the payload can
be found by integrating the data from the sensor unit. Rausher et al. [60], Kalmari et al.,
[32] and Helma et al., [26] have experimented with IMU for measuring the sway angles.
An example of sensor arrangement is illustrated in Figure 5.2.

Attitude heading reference system


An attitude heading reference system (AHRS) is the same as IMU, but the output of the
data is filtered through a Kalman filter wich makes it easier to work with. Gao et al.

30
5 Sensorics 5.1.4 Inertial measurement unit

Figure 5.2: IMU sensor arrangement from [26].

[21] used an AHRS sensor in their work to estimate the sway angle of the load. The
arrangement is illustrated in Figure 5.3 They were able to proof that the mean error of the
measured sway angles were below 0.7 degrees.

Both IMU and AHRS are not influenced by weather environment, making them appli-
cable for real crane systems. They are however often proned to disturbances which heavily
impact the measurement data.

Figure 5.3: Arrangement of AHRS sensing unit from [21].

31
5 Sensorics 5.2 Direct method

5.2 Direct method


Direct method means to measure the sway angle of the wire directly. Such sensors can
include encoders, potentiometers and strain gauges.

5.2.1 Encoders
Encoders are widely used in real crane system to measure the position and orientation
of the crane. Measuring the sway angle is a bit more challenging. Gustafsson made a
mechanical sensor with shaft encoders to measure the sway angle of the wire in [24]. The
sensor arrangement is shown in Figure 5.4.
Encoders are well suited for this purpose, but the hatch is to find practical devises that
makes it possible to measure two angles. It can also be challenging to make a robust device
with a good longevity for the environment it will work in.

Figure 5.4: Sensor arrangement with encoders from [24].

5.2.2 Potentiometers
Potentiometers is a rotating devices that outputs an adjustable voltage based on the ro-
tation. They’re a good choice for measuring angles, but it can be challenging to create
an applicable device. Researchers that have used potentiometers to measure load sway
are Gao et al. [20] and Ouyang et al. [52]. The sensor arrangement used in the latter is
illustrated in Figure 5.5.

5.2.3 Strain gauges


Grosiner et al. [23] presents a device that is intended for use in feedback control, and is
shown to be highly accurate. The device consists of strain gauges mounted on a flexible
beam together with other solid parts as illustrated in Figure 5.6. The wire goes though the
device and two angles can easily be read from the values of the strain gauges. The device

32
5 Sensorics 5.2.3 Strain gauges

Figure 5.5: The arrangement of the potentiometers as used in [52].

is however not so well suited for knuckle boom cranes where the jib is not parallel to the
ground. It could still be possible to modify the devise to work on other types of cranes as
well.

Figure 5.6: Payload sway angle sensing device. (1) Flexible elements. (2) Strain gauges. (3) Device
holder mounted on trolley. (4) An intermediate member performing a spherical motion. (5) The part
of the device performing the movement according to the rope. (6) Pulleys touching the rope. (7)
Crane rope. [23]

33
6
Estimation

Regardless of choice of sensor to measure the sway angle, the data often contains a lot
of noise. From the model (2.40), it’s also assumed that only the angles are measured,
but the control laws use both the angle and the angular velocity. Due to the property of
observability shown in subsection 2.4.2, we can estimate the angular velocity based on the
linear model of the system and the known input.
The Kalman filter is a widely used technique for this purpose. It provides an optimal
estimates of the state variables by combining predictions from a mathematical model of the
crane system with measurements obtained from sensors. The Kalman filter does not only
estimate states that aren’t measured, it also filters noisy measurements of the measured
states.

6.1 Discrete time system model


Consider the linear time invariant state-space model in (2.40), only now we add process
noise and measurement noise

ẋ = Ax + Bu + w
(6.1)
y = Cx + v

where w is the zero mean Gaussian process noise with covariance Qk : w ∼ N (0, Qk ).
v is the zero mean observation noise with covariance Rk : v ∼ N (0, Rk ). The discretized
system model yields
x[k + 1] = Ad x[k] + Bd u[k] + w[k]
(6.2)
y[k] = Cd x[k] + v[k]

In this paper we choose to only estimate one step ahead such that the state transition matrix

34
6 Estimation 6.1.1 Algorithm of the Kalman filter

and the other system matrices yields [19]

Ad [k] = I + Ah
Bd [k] = Bh (6.3)
Cd [k] = C

where h is the timestep.

6.1.1 Algorithm of the Kalman filter


The algorithm for the discrete time Kalman filter is as following:

Algorithm 1 Discrete time Kalman filter


Initialize
1: Initialize the state vector and covariance matrix

x̂[0] = x0
(6.4)
P̂[0] = P0

Predict
2: Predict state estimate and estimate the covariance
x̂k+1|k = Ad xk + Bd uk
(6.5)
P̂k+1|k = Ad Pk A⊤
d + Qk

Update
3: Update the prediction based on measurements

ỹk = zk − Cx̂k+1|k
Sk = Cd P̂k+1|k C⊤
d Rk

Kk = P̂k+1|k C⊤
dS
−1 (6.6)
xk+1|k = x̂k+1|k + Kk ỹk
Pk+1|k = (I − Kk Cd )P̂k+1|k

where
zk = Cd xk + vk (6.7)

is the actual measurement at time k. The only tuning possibilities for the Kalman filter
is the process noise matrix Qk and observation noise matrix Rk . They are included in
computing the Kalman-gain Kk in (6.6). The gain determines how much you trust the
measurements or the estimation, based on the linear model. Good initial guesses of the
state vector and covariance matrix, as shown in (6.4) can also improve estimation.

35
6 Estimation 6.2 Performance of the Kalman filter

6.2 Performance of the Kalman filter


In this section, the performance of the Kalman filter is shown. The measurement is created
by adding white noise on top of the sway angles. The system is initialized with
 ◦
15
 5◦ 
x0 = 
1◦ /s
 (6.8)

8 /s

while the Kalman filter is initialized with

x̂0 = 0, P̂0 = 0 (6.9)


 
0 0 0 0  
0 0 0 0 0.01 0
Qk = 
0
, Rk = (6.10)
0 0.1 0 0 0.01
0 0 0 0.1
and
The anti-sway controller enables after 50 seconds. As we can see from Figure 6.1,
the estimated values for sway angles quickly catches up the real value with wrong initial
guesses.

Measured and estimated values for sway angles


20
measured
estimated
10
[deg]

-10

-20
0 20 40 60 80 100 120 140 160 180

20
measured
estimated
10
[deg]

-10

-20
0 20 40 60 80 100 120 140 160 180
Time [s]

Figure 6.1: Estimated load sway plotted on top of the measured sway.

In Figure 6.2, we can see how the estimated values for angular velocities are compared
to the real one.

36
6 Estimation 6.2 Performance of the Kalman filter

True and estimated values for the sway angular velocity


10
estimated
true
5

-5

-10
0 20 40 60 80 100 120 140 160 180

10
estimated
true
5

-5

-10
0 20 40 60 80 100 120 140 160 180
Time [s]

Figure 6.2: Estimated load sway velocity plotted together with true value.

37
7
Workspace

Net energy of suspended load


Consider ϵ as a variable describing the net energy in the suspended load, hence
1 2 2
ϵ(x) = mℓ (α̇ + c2α β̇ 2 ) + mgℓ(1 − cα cβ ) (7.1)
2
which is bounded by
1 2 2 1
ϵ(x) ≤ mℓ (α̇ + β̇ 2 ) + mgℓ(α2 + β 2 ) (7.2)
2 2
This allows us to write it on the form

ϵ(x) ≤ x⊤ Ex (7.3)

where the matrix E yields


 2 
ω 0 0 0
1 2 0 ω2 0 0
E = mℓ 
0
 (7.4)
2 0 1 0
0 0 0 1

The worst case scenario for the net energy is at the turning point when there is only
potential energy active:
1
ϵwc = mgℓ(α2 + β 2 ) (7.5)
2

Radius of suspended load


The radius of the suspended load, as seen in Figure 7.1 is given by
q
r = ℓ s2α + c2α s2β (7.6)

38
7 Workspace

r (xp , yp )

(xt , yt ) X

Figure 7.1: Radius of the suspended load as seen from above

Since |sin(α)| ≤ |α| and |cos(β)| ≤ 1, the radius can be bounded by


p
r ≤ ℓ α2 + β 2 (7.7)
We can now find the maximal initial radius for a given initial energy from (7.5)
1
ϵwc = mgr2 (7.8)
2ℓ
Solving for the radius r yields
s s
2ϵwc ℓ 2ℓ ⊤
r≤ = x Ex (7.9)
mg mg

Now, assume there exists a variable λ > 0 such that


x⊤ Ex ≤ λx⊤ P̃x (7.10)
where x⊤ P̃x is from the Lyapunov analysis. Since the derivative of the Lyapunov function
is negative definite we have that
x⊤ P̃x ≤ x⊤
0 P̃x0 (7.11)
Now assume that there exists a variable µ > 0 such that
µx⊤ ⊤
0 P̃x0 ≤ x0 Ex0 (7.12)
Summarizing we get that
λ ⊤
x⊤ Ex ≤ λx⊤ P̃x ≤ x Ex0 (7.13)
µ 0
So, for a given initial radius r0 , given by
s
2ℓ ⊤
r0 ≤ x Ex0 (7.14)
mg 0

39
7 Workspace

any future radius of the given initial value will be bounded by


s
λ
r≤ r0 = r̂ (7.15)
µ

where r̂ notes the upper limit for the radius.

Linear matrix inequality


To summarize, our problem is

∃λ, µ, µP̃ ⪯ E ⪯ λP̃ (7.16)

where we want λ to be as small as possible, and µ as large as possible. This problem is a


linear matrix inequality problem, and can be solved with the Matlab function

e = eig(P, E) (7.17)

What this function does is to solve the generalized eigenvalue problem, and return a
vector containing these eigenvalues. The variables λ and µ can then easily be extracted
from the vector e.
Using the P̃ from (4.38), only now we don’t care about the maximum length of the
wire since it don’t make any difference in this analysis. We have that

p1 + ω 2
 
0 p3 0
1  0 p1 + ω 2 0 p3 
P̃ = mℓ2   (7.18)
2  p3 0 p2 0 
0 p3 0 p2
yileds an upper limit for the Lyapunov function, for a given wire length, V (x) ≤ x⊤ P̃x.
From the Lyapunov analysis we got that p2 = 1, 0 < p3 < p2 Kd and p1 = p2 Kp + p3 Kd .
Setting
p3 = 0.4Kd
(7.19)
p1 = Kp + p3 Kd
with Kd and Kp from the (4.26), we get the following vector of generalized eigenvalues
 
0.8121
0.8121
e= 1.6737
 (7.20)
1.6737
Then we choose µ = 0.08121 and λ = 1.6737 and insert into (7.15) such that for any
given initial radius, r0 , the future radius relative to the crane tip will be bounded by

r̂ = 1.35 r0 (7.21)
We can picture a cone where the top is the crane tip, and the load is restricted to move
inside the cone, as illustrated in Figure 7.2. The cone moves together the crane tip. This

40
7 Workspace

(xt , yt )

(xp , yp )

r0 r̂

Figure 7.2: Initial radius of the load and the restricted area it will stay within, as seen from a side
view.

results yields only for the system when it is initialized with a set of angles resulting in a
radius of the load.
The result of the radius from a given set of initial conditions is carried out in Figure 7.3.
In the figure, the radius is plotted with respect to time. The system was initialized with
   ◦
α 20
β   5◦ 
 = ◦  (7.22)
α̇ 0 /s
β̇ 8◦ /s

Radius of suspended load with respect to crane tip


12

10
Radius [m]

0 20 40 60 80 100 120 140 160 180


Time [s]

Figure 7.3: Radius of the suspended load with respect to crane tip.

41
8
Simulations

In this chapter the goal is to show how effective the controller is under different situations.
First, the system is tested when there is initial sway and movement of the load, before
moving to the most challenging operation which is rotation of the crane. When an operator
rotates the crane it causes a lot of motion on the load, and consequentially, a lot of work
for the ASC. Windy conditions is also challenging for the anti-sway controller since it
pushes the load out of the resting position. Multiple joint control is also simulated and
initial condition test for simplified versions of the ASC. This latter is done just to show
that it still works, when simplified.
For all simulations, the wire length is kept constant at ℓ = 25 m. This is a quite long
wire length, causing big oscillations on the load, but slowly varying due to the systems
natural frequency.

8.1 Effect of the controller


This simulation is to show how effective the anti-sway controller is. The system is initial-
ized with the initial conditions stated in (8.1), while the ASC is activated after 100s.
   ◦
α0 20
 β0   5◦ 
 = ◦  (8.1)
α̇0  0 /s
β̇0 8◦ /s
The result can be seen in Figure 8.1. The suspended load acts as an undamped oscil-
lator before the ASC activates and removes the sway very effectively. In Figure 8.2a we
can see how the crane moves back to the desired position while damping the oscillations.
The figure also shows clearly that the ASC only operates in the XY -plane. From Fig-
ure 8.2c we can see how all three joins are included in the sequence. The input is shown
in Figure 8.2b, and as we can see, there is a very sudden jump in the input when the ASC
activates.

42
8 Simulations 8.1 Effect of the controller

Figure 8.1: Sway angles of suspended load. The anti-sway controller is activated after 100s

43
8 Simulations 8.1 Effect of the controller

(a) Positions of the crane tip and it’s reference.

(b) Input to the system.

(c) Actual joint angles of the crane.

Figure 8.2: Results from the initial condition test

44
8 Simulations 8.1.1 Output feedback

8.1.1 Output feedback


This is the same simulation as previous, only now the controller uses output from the
Kalman filter as feedback. The result can be seen in Figure 8.3. The performance of
the controller is still at the same level with estimated states as feedback based on noisy
measurements.

Figure 8.3: Sway angles of suspended load with output feedback.

45
8 Simulations 8.2 Operator in the loop

8.2 Operator in the loop


The worst motion for considering the amount of sway it generates, is probably when turn-
ing the crane. This simulation shows how the system acts when the operator turns the crane
90◦ , under different situations. This is done without ASC, with ASC activated from the
beginning, ASC activated after operator let go of the joysticks, and with output feedback
from Kalman filter. The joystick command from the operator can be seen in Figure 8.4
as solid lines. The corresponding desired joint angles are shown as dashed lines. When
turning the crane 90◦ , the operator sets a angular velocity of θ̇1 = 0.1 in approximately 15
seconds. The (X, Y, Z) reference for the crane tip is calculated based on this joint angles
and velocities.

Figure 8.4: Joystick commands from crane operator and the desired joint angles.

8.2.1 Without ASC


The result of the movement without ASC can be seen in Figure 8.5. The corresponding
sway angles are shown in Figure 8.6a. In Figure 8.6c, the desired position for the crane
tip are plotted together with the actual position of the crane tip. The input to the system
are plotted in Figure 8.6b. As shown the crane tip reaches it’s setpoint, while the load
oscillates undamped around the equilibrium.

46
8 Simulations 8.2.1 Without ASC

Position of crane tip and payload in XY-plane


25
hook position
boom tip
20

15
Y

10

-5
-10 -5 0 5 10 15 20 25
X

Figure 8.5: Movement of the crane tip and suspended load in the XY -plane, seen from above.

47
8 Simulations 8.2.1 Without ASC

Sway angles of the suspended load


10

5
angle [deg]

-5

-10
0 20 40 60 80 100 120 140 160 180
time [s]
(a) Sway angles of the suspended load.
Input to the system

vx
0.8
vy
0.6 vz

0.4

0.2

-0.2

-0.4
0 20 40 60 80 100 120 140 160 180
Time [s]
(b) Input to the system.

(c) Desired position of the crane tip with actual position.

Figure 8.6: Plots from the simulation when the crane is rotated 90◦ without ASC active.

48
8 Simulations 8.2.2 With anti-sway active

8.2.2 With anti-sway active


In this simulation we want to show how the sway angles are suppressed during the turning
motion of the crane. The movement of the crane in the XY -plane can be seen in Figure 8.7.
As the figure shows, the crane tip reaches the desired setpoint with no oscillations on the
load. The sway angles of the load can be seen i Figure 8.8a. The input to the system is
shown in Figure 8.8b and the position of the crane tip is shown in Figure 8.8c.

Figure 8.7: Movement of the crane tip and suspended load in the XY -plane, seen from above.

49
8 Simulations 8.2.2 With anti-sway active

Sway angles of the suspended load


4

0
angle [deg]

-2

-4

-6

-8
0 20 40 60 80 100 120 140 160 180
time [s]
(a) Sway angles of the suspended load.

(b) Input to the system.

(c) Desired position of the crane tip with actual position.

Figure 8.8: Plots from the simulation when the crane is rotated 90◦ and ASC is activated from the
start.

50
8 Simulations 8.2.3 ASC activated after crane operator

8.2.3 ASC activated after crane operator


In previous simulation the ASC is active at the same time as the operator steers the crane.
That is often not an ideal situation to be in where there can be a conflict of interest between
the two. The operator should be able to steer the crane as desired first, then the ASC can
activate after the operator is done. In this simulation, the ASC activates after 36s when
the operator moves the joystick back to resting position. The result shows that the system
uses the same amount of time to compensate for the pendulum motion on the load, as it
did when the ASC was active from the beginning. In Figure 8.9a shows the sway angle of
the load, while Figure 8.9c shows the position of the crane tip. The input to the system is
shown in Figure 8.9b. The figure shows that there is a jump in the input at cirka 36s when
the ASC activates.

51
8 Simulations 8.2.3 ASC activated after crane operator

Sway angles of the suspended load


10

5
angle [deg]

-5

0 20 40 60 80 100 120 140 160 180


time [s]
(a) Sway angles of the suspended load.

(b) Input to the system.

(c) Desired position of the crane tip with actual position.

Figure 8.9: Plots from the simulation when the crane is rotated 90◦ and ASC is activated after
setpoint is reached.

52
8 Simulations 8.2.4 Output feedback

8.2.4 Output feedback


All simulations for the case when the crane is turning 90◦ , has been done with perfect
measurements of all states. That is not the reality for a real system. In this report we
assume that we only measure the two sway angles α and β and their derivatives are esti-
mated using a Kalman filter. We will now simulate how the ASC performs with the output
from the Kalman filter as feedback. The crane still do the same rotation as the previous
simulations.
In Figure 8.10a we can see how the system suppress the oscillations of the load, while
reaching the desired setpoint for the crane tip, as shown in Figure 8.10c. The small oscil-
lations in the sway angles are due to the oscillations in the input, as shown in Figure 8.10b.
The output from the Kalman filter is shown in Figure 8.11. The estimation are now a
bit worse than compared to previously. That is because of a domino effect in the feedback
loop. The input to the system consists of small oscillations coming from the filter, which
again causes oscillations in the load, which again carries over to the measurements and
even more oscillations on the output feedback. This problem is very visible on simulations
like this, but it will not be a very big problem for real crane systems. More about that in
chapter 9.

53
8 Simulations 8.2.4 Output feedback

Sway angles of the suspended load


4

0
angle [deg]

-2

-4

-6

-8
0 20 40 60 80 100 120 140 160 180
time [s]
(a) Sway angles of the suspended load.

(b) Input to the system.

(c) Desired position of the crane tip with actual position.

Figure 8.10: Plots from the simulation when the crane is rotated 90◦ with output feedback.

54
8 Simulations 8.2.4 Output feedback

Measured and estimated values for sway angles


5
measured
0 estimated
[deg]

-5

-10
0 20 40 60 80 100 120 140 160 180

5
measured
estimated
[deg]

-5
0 20 40 60 80 100 120 140 160 180
Time [s]

(a) Estimated sway angle compared to the measurement.


True and estimated values for the sway angular velocity
2
estimated
true
0

-2

0 20 40 60 80 100 120 140 160 180

2
estimated
true

-2
0 20 40 60 80 100 120 140 160 180
Time [s]

(b) Estimated sway velocity compared to true value.

Figure 8.11: Estimations from the Kalman filter.

55
8 Simulations 8.3 Multiple joint control

8.3 Multiple joint control


In this simulation, the operator steers the crane in several directions. The crane is rotated
approximately 45◦ while the boom and jib are lifted and extended, as shown in Figure 8.12.
The ASC is activated at 55 seconds, when the operator is done steering the crane. Swaying
motion of the load peaks during the rotational motion of the crane, while operating the
boom and jib actually dampens the sway a bit. This can be seen in Figure 8.13a. The input
is shown in Figure 8.13b. There are quite large jumps in the input, both when the operator
sets a joystick in position, and when the ASC activates. The position of the crane tip is
shown in Figure 8.13c together with the desired setpoints. As multiple joint control is not
the most demanding situation for the ASC, this will be the only simulation.

Figure 8.12: Commanded joint velocities and corresponding joint angles.

56
8 Simulations 8.3 Multiple joint control

(a) Sway angles of the suspended load.


Input to the system
1
vx
vy
0.5
vz

-0.5

-1
0 20 40 60 80 100 120 140 160 180
Time [s]
(b) Input to the system.

(c) Desired position of the crane tip with actual position.

Figure 8.13: Plots from the simulation when the crane is rotated 90◦ without ASC active.

57
8 Simulations 8.4 Impact of wind on the system

8.4 Impact of wind on the system


To simulate the impact wind have on the system, the crane’s initial position is rotated
approximately θ1 = 45◦ with zero oscillation on the load. The wind comes from ”west”
meaning it moves along the X0 axis for the crane base. When rotated like this, the wind
impacts both angles in the same amount. For simulations the following wind force has
been used
τwind
=1 (8.2)
mℓ
such that the following force was added to equation of motion in the simulations
 
cos(θ1 ) 1
τ = (8.3)
ℓ 1

No mass, wind speed, drag coefficient or surface area has been defined, but the dis-
turbing force is quite large in order to challenge the system properly. It is conceivable that
it is a strong wind and a very light weighted mass.
The result can be seen in Figure 8.14. In Figure 8.14a we can see how the wind moves
the equilibrium points out from the origin for the two sway angles. The new equilibrium
point for α is about 5◦ , while for β it is about −5◦ because of the direction of the wind.
The input to the system is shown in Figure 8.14b.
The most interesting result from this simulation is that the crane tip settles at the desired
setpoint, as shown in Figure 8.14c. That is thanks to the integral effect in the position
controller. With a constant offset of the sway angles, the proportional term in the ASC
will continue to push the crane in the direction of the wind, but the integral action is able
to counteract it.

58
8 Simulations 8.4 Impact of wind on the system

Sway angles of the suspended load


10

5
angle [deg]

-5

0 20 40 60 80 100 120 140 160 180


time [s]
(a) Sway angles of the suspended load.
Input to the system
0.3
vx
0.2 vy
vz
0.1

-0.1

-0.2

-0.3
0 20 40 60 80 100 120 140 160 180
Time [s]
(b) Input to the system.

(c) Desired position of the crane tip with actual position.

Figure 8.14: Plots from the simulation when the system is disturbed by wind and integral action is
added in the position controller.

59
8 Simulations 8.4.1 Output feedback

8.4.1 Output feedback


Under windy conditions, the Kalman filter struggles to get correct estimates of the angular
velocities. Since the load settles at a new equilibrium different then the origin, the linear
model assumes that the system is still moving. The result can be seen in Figure 8.15.
For the estimated sway angles, it is drawn towards zero, while for the velocities, the esti-
mations are off with almost 2◦ /s! How to deal with this poor estimates are discussed in
chapter 9.

Measured and estimated values for sway angles


10
measured
estimated
[deg]

0
0 20 40 60 80 100 120 140 160 180

0
measured
-2 estimated
[deg]

-4

-6

0 20 40 60 80 100 120 140 160 180


Time [s]
(a) Estimated sway angle compared to the measurement.
True and estimated values for the sway angular velocity
2
estimated
0 true

-2

-4
0 20 40 60 80 100 120 140 160 180

2 estimated
true

-2
0 20 40 60 80 100 120 140 160 180
Time [s]
(b) Estimated sway velocity compared to true velue.

Figure 8.15: Estimations from the Kalman filter under windy conditions

60
8 Simulations 8.5 Simplified controller

8.5 Simplified controller


In this section there are done two simulations where the ASC has been simplified. In
the first simulations, the higher order cancellation terms have been removed, and we are
left with a simple PD controller. In the second simulation, also the proportional term has
been removed resulting only in a derivative controller. Both cases are done with the same
initialization as in (8.1).

8.5.1 PD anti-sway controller


Removing all the cancellation terms from the controller results in the following control
laws
ux = ℓ(Kd α̇ + Kp α)
(8.4)
uy = ℓ(Kd β̇ + Kp β)
The result are shown in Figure 8.16. The sway angles are shown in Figure 8.16a, and as
the result show, the PD ASC performs almost just as good as the original. In Figure 8.16b,
the input to the system are plotted. It shows that it is a bit smaller in amplitude compared
to the original ASC as shown in Figure 8.2b.

61
8 Simulations 8.5.1 PD anti-sway controller

Sway angles of the suspended load


20

15

10
angle [deg]

-5

-10

-15
0 20 40 60 80 100 120 140 160 180
time [s]
(a) Sway angles of the suspended load.

(b) Input to the system.

Figure 8.16: Result from initial condition test with PD ASC.

62
8 Simulations 8.5.2 Derivative controller for anti-sway

8.5.2 Derivative controller for anti-sway


Removing the proportional terms from the control laws in (8.4) yields the following control
laws

ux = ℓKd α̇
(8.5)
uy = ℓKd β̇
This is a simple derivative controller that only compensates for the velocity of sus-
pended load. The results are shown in Figure 8.17. The amplitude of the input are reduced
even further as shown in Figure 8.17b. That comes with a trade off on the load oscil-
lations as shown in Figure 8.17a, where the controller needs longer time to dampen the
oscillations.

Sway angles of the suspended load


20

10
angle [deg]

-10

-20
0 20 40 60 80 100 120 140 160 180
time [s]
(a) Sway angles of the suspended load.

(b) Input to the system.

Figure 8.17: Results from initial condition test with derivative ASC.

63
9
Discussion

Anti sway controller


As the results from the simulations show, the controller proves to be very effective in
damping the oscillations in the suspended load. It also works well with operator in the loop
and the PID position controller. Comparing the position of the crane tip under rotational
motion of the crane without ASC in Figure 8.6c and with ASC in Figure 8.8c, there is a
tiny difference in in the initialization of the movement. When ASC is active, the crane is
a bit slower in the beginning, as expected. It also overshoots a lot more because it follows
the motion of the load in order to dampen the oscillations. The operator looses some ability
but not much, but it is probably enough to upset the operator. Therefore the ASC should
be activated when the operator is done steering the crane. If he wants to move the crane
again the ASC should be deactivated.
In the simulations, the commands from the operator are made with pulse-signals. That
is not entirely the case in reality, since most experienced operators moves the joystick in
a restrained way to the desired position. With this type of movement of the joystick, the
commands would look more like ramp signals or low pass filtered step signals. This will
decrease overshoot and jumps in the input to the system as well as decrease oscillation of
the load.
There is still some jump in the input in the simulations caused by the ASC that happens
when it is activated after the operator. Therefore, for all cases when the ASC is not active
from the beginning, it’s contribution should be faded in to avoid such jumps.

Kalman filter
The Kalman filter proves to be a powerful tool for estimating the nonmeasured states for
use in feedback control. The filter estimates the sates based on a linear model of the
system, but even if the true system is highly nonlinear, it still manages to produce very
good estimates as shown in Figure 8.11. In the simulation, white noise was added on top
of the true values to look like noisy measurements.
When the system was subject to wind, the Kalman filter fails to estimate the states.

64
9 Discussion

The load settles at a new equilibrium different than the origin, tricking the linear model to
think there is still movement on the load. The Kalman filter algorithm should therefore use
an adaptive approach, where the wind could be modeled as a slowly varying disturbance.
When the the output from the Kalman filter was used in feedback, we saw signs of
domino effect. With this I mean that the oscillating output causes oscillations in the input,
which again causes oscillations on the output. Comparing Figure 8.11 with Figure 6.1 and
Figure 6.2, the effect is clearly visible, where the first figure is from when the output is used
in feedback. On a real crane system the effect would not be of the same degree because
of frictional forces that will dampen out a lot of these oscillations in the load. However,
these oscillations on the input are unwanted and should be dealt with. What could be done
is to only include contribution from the ASC if it’s above a certain threshold. This could
cut out most of the oscillation and improve the estimations.

Windy conditions
Under windy conditions, the integral effect of position controller really shows how im-
portant it is. From the result in Figure 8.14, the controllers effectively minimize the sway
before the load settles at a new equilibrium, and the crane tip settles at the desired setpoint.
The proportional term in the ASC wants to move the crane in the direction of the wind,
but the position controller holds it back, thanks to the integral effect.

Simplified anti-sway controller


A great property of the ASC that is shown with simulations, is that it can be simplified.
Removing the cancellation terms results in a PD controller that performs, visibly, just as
good as the original that does not need on-line calculation. With the simplified PD ASC,
the two calculated inputs are decoupled. This can be beneficial making the control law
applicable to a broad range of crane types.
The two last simulations shows the performance of the two different simplified ASC
under the same initial conditions as the first simulation. This is done such that it would
be easy to compare the results. With a PD structure, the controller performs just as good
as the original, as far as the eye can see. For the derivative controller there is a visible
difference. The load oscillates a lot more before settling at rest, but the peak in amplitude
is quite similar. Both of them fulfill the control objective.

65
10
Conclusion

In this thesis, a model of a knuckle boom crane with suspended load has been presented,
where the dynamics of the system is calculated using Euler-Lagrange method. Kinematics
of the crane are found using Denavit–Hartenberg convention.
An anti-sway controller based upon Lyapunov stability theory is designed and imple-
mented for testing in a Simulink model. It is used together with a simple PID controller
for keeping the crane’s position at the desired setpoint.
Different types of sensors and instrumentation have been discussed, as well as how to
use a Kalman filter for estimating non-measured states. The Kalman filter proves to be a
very powerful tool for this purpose.
We have also been able to define a limited domain around the equilibrium, where the
load is limited to, depending on the initial position of the suspended load. This is done
based on Lyapunov stability theory and net energy of the system.
The effect of the anti-sway controller is proven with simulations, and it proves to work
well with operator in the loop and under windy conditions.
A drawback of the ASC is that it requires on-line calculation, but it can however be
simplified since the higher order cancellation terms are relative small. The performance of
the simplified controller is proven with simulations. Another benefit of the simpler version
is that it completely decouples the two inputs. Meaning that input in one direction is only
dependent on one angle, and the input the other direction is dependent on the other angle.
To conclude with, the proposed anti-sway control system is suitable for industrial
cranes that are to operate in windy conditions and with operator in the loop. Optimal
motion compensation for suspended load is achieved by tuning the controller such that
the closed loop linearized system yields the same eigenvalues and properties as the closed
loop system with LQR.
The impact of waves have not been considered in this thesis. That is because Motus,
the company behind the project already have a motion compensation system for cranes.
The system compensates such that the crane tip is held still with respect to the world frame
or NED frame. As a consequence, swaying are also minimized.

66
10 Conclusion 10.1 Future work

10.1 Future work


In this section I present some points that could be further investigated.

Real crane system

The anti-sway controller needs be tested on a real crane system in real situations with
an operator in the loop. From the simulations it looks like the ASC works well with the
operator, but the person might feel like he/her looses control over the crane.

Simplified controller

We saw from simulations that the simplified anti-sway controller performed well. It could
be interesting to test it in real situations on a real crane system.

Instrumentation

One or maybe several measuring techniques should be tested in closed loop control with
the ASC. This should be done to conclude what type of sensor works best. For a commer-
cial product with several sensors, sensor fusion could be used to combine the measurement
to one result.

Adaptive Kalman filter

In this thesis frictional forces has been neglected, but in reality they are important in a
way that it brings stability to the system. A model considering frictional forces should be
explored. It is difficult to exactly know the frictional forces, but they could be estimated
adaptively. It would also be important for the model used in the Kalman filter to have this
included, such that the estimated angle velocities are correct.
The same applies to the disturbing force from the wind. It could be estimated as a
slowly varying disturbance.

Varying wire length

The impact of a varying wire length have not been explored in this thesis, as it was held
constant. It would be very interesting to see how one can vary the length and how it affects
the dynamics and the controller.

Working space for the ASC

The same technique used in chapter 7 could be applied for more degrees of freedom re-
sulting in a more complete definition of the work area of the crane. The contribution from
the ASC could also be limited, such that the crane tip is only allowed to move a certain
distance away from the desired setpoint.

67
10 Conclusion 10.1 Future work

Together with 3D compensation


The anti-sway controller should be put to the test together with Motus’ already existing
three dimensional motion compensation. There could be a conflict between the two sys-
tem, but if the motion compensation works perfectly there wouldn’t be any oscillations of
the load as long as there is no wind.

68
Bibliography

[1] E. M. Abdel-Rahman and A. H. Nayfeh. Pendulation reduction in boom cranes using


cable length manipulation. Nonlinear dynamics, 2002.

[2] Eihab M. Abdel-Rahman, Ali H Nayfeh, and Ziyad N. Masoud. Dynamics and con-
trol of cranes: A review. Vibration and Control, 2003.

[3] Siebe B. van Albada, G. Dick van Albada, Hans Petter Hildre, and Houxiang Zhang.
A novel approach to anti-sway control for marine shipboard cranes. 2013.

[4] Naif B. Almutairi and Mohamed Zribi. Sliding mode control of a three-dimensional
overhead crane. 2008.

[5] Michele Ambrosino, Marc Berneman, Gianluca Carbone, Remi Crepin, Arnaud
Dawans, and Emanuele Garone. Modeling and control of 5-dof boom crane. Au-
tomation in Robotics Construction, 2021.

[6] Michele Ambrosino, Arnaud Dawans, Brent Thierens, and Emanuele Garone. Oscil-
lation reduction for knuckle cranes. 2020.

[7] Sameer Arabasi and Ziyad Masoud. Simultaneous travel and hoist maneuver input
shaping control using frequency modulation. Shock and Vibrations, 2017.

[8] Jens G. Balchen, Trond Andresen, and Bjarne A. Foss. Reguleringsteknikk. Institutt
for teknisk kybernetikk, sixth edition, 2016.

[9] Chi-Tsong Chen. Linear System Theory and Design. Oxford University Press, third
edition, 1999.

[10] He Chen, Yongchun Fang, and Ning Sun. A swing constraint guaranteed mpc algo-
rithm for underactuated overhead cranes. Transaction on Mechatronics, 2016.

[11] He Chen and Ning Sun. An output feedback approach for regulation of 5-dof offshore
cranes with ship yaw and roll perturbations. Transactions on Industrial Electronics,
2022.

69
[12] Yingguang Chu, Filippo Sanfilippo, Viljar Æsøy, and Houxiang Zhang. An effective
heave compensation and anti-sway control approach for offshore hydraulic crane
operations.
[13] Dongkyoung Chwa. Nonlinear tracking control of 3-d overhead cranes against the
initial swing angle and the variation of payload weight. Transactions on Control
System Technology, 2009.
[14] Dongkyoung Chwa. sliding-mode-control-based robust finite-time antisway tracking
control of 3-d overhead cranes. Transactions on Industrial Electronics, 2017.
[15] Wim Devesse. Slew control methods for tower cranes. Master’s thesis, KTH Indus-
trial Engineering and Management, 2012.
[16] Win Devesse, Marcus Ramteen, Lei Feng, and Jan Wikander. A real-time optimal
control method for swing-free tower crane motions. 2013.
[17] Didrik Fjeld Eslet. Crane payload stabilization using lagrangian kinematics and euler
angles. Master’s thesis, NTNU, 2019.
[18] Yongchun Fang, Bojun Ma, Pengcheng Wang, and Xuebo Zhang. A motion
planning-based adaptive control method for an underactuated crane system. Trans-
action on Control System Technology, 2012.
[19] T. I. Fossen. Handbook of Marine Craft Hydrodynamics and Motion Control. John
Wiley & Sons, Ltd, West Sussex, United Kingdom, second edition, 2021.
[20] Bingtuan Gao, Hongjun Chen, Xiaohua Zhang, and Haiming Qi. A practical optimal
controller for underactuated gantry crane systems. 2006.
[21] Bingtuan Gao, Zhenyu Zhu, Jianguo Zhao, and Boran Huang. A wireless swing angle
measurement scheme using attitude heading reference system sensing units based on
microelectromechanical devices. Sensors, 2014.
[22] S. Garrido, M. Abderrahim, A. Gimenez, and C. Balaguer. Anti-swinging input
shaping control of an automatic construction crane.
[23] Patrik Grosinger, Jan Rybar, Stefan Dunaj, Stanislav Duris, and Branislav Hucko. A
new payload swing angle sensing device ant its accuracy. Sensors, 2021.
[24] Thomas Gustafsson. Modelling and control of rotary crane systems. PhD thesis,
Luleå University of Technology, 1993.
[25] Thomas Gustafsson. Modelling and control of a rotary crane. 1995.
[26] Vaclav Helma, Martin Goubej, and Vlastimil Setka. Inertial measurements process-
ing for sway angle estimation in overhead crane control applications.
[27] João P. Hespanha. Linear Systems Theory. Princeton University Press, 2009.
[28] R. M. T. Raja Ismail and Q. P. Ha. Trajectory tracking and anti-sway control of
three-dimensional offshore boom cranes using second-order sliding modes. 2013.

70
[29] R.M.T. Raja Ismail, Nguyen D. That, and Q. P. Ha. Offshore container crane systems
with robust optimal sliding mode control. Automation and Robotics in Construction
and Mining, 2014.

[30] K. J. Jensen, M. K. Ebbesen, and M. R. Hansen. Development of 3d anti-swing


control for hydraulic knuckle boom crane. Modeling, Identification and Control,
2021.

[31] Tan Ying Jian and Z. Mohamed. Modelling and sway control of a double-pendulum
overhead crane system. Applications of Modelling and Simulation, 2017.

[32] Jouko Kalmari, Heikki Hyyti, and Arto Visala. Sway estimation using inertial mea-
surement units for cranes with a rotating tool. 8th IFAC Symposium on Intelligent
Autonomous Vehicles, 2013.

[33] Hassan K. Khalil. Nonlinear Systems. Prentice Hall, Upper Saddle River, New
Jersey, 1995.

[34] K. A. Khandakji, V. Busher, and L. Melnikova. Parabolic angle-based anti-sway


control for container cranes with limited dynamic loads. Automation and Control,
2019.

[35] Gyoung-Hahn Kim and Keum-Shik Hong. Adaptive sliding-mode control of an off-
shore container crane with unknown disturbances. Transactions on Mechatronics,
2019.

[36] Jaehoon Kim, Balint Kiss, Donggil Kom, and Donggik Lee. Tracking control of
overhead crane using output feedback with adaptive unscented kalman filter and
condition-based selective scaling. 2021.

[37] Magnus B. Kjelland, Michael R. Hansen, Ilya Tyapin, and Geir Hovalnd. Tool-
point control of planar hydraulically actuated manipulator with compensation of non-
actuated degree of freedom. 2012.

[38] Karl Lukas Knierim, Kai Krieger, and Oliver Sawodny. Flatness based control of a
3-dof overhead crane with velocity controlled drives. Mechatronic Systems, 2010.

[39] Bernd Kolar and Kurt Schlacher. Flatness based control of a gantry crane. 9th IFAC
Symposium on Nonlinear Control Systems, 2013.

[40] Zhi Li, Xin Ma, and Yibin Li. Nonlinear partially saturated control of a double pen-
dulum offshore crane based on a fractional-order disturbance observer. Automation
in Construction, 2022.

[41] Iain A. Martin and Rishad A. Irani. Evaluation of both linear and non-linear control
strategies for a shipboard marine gantry crane.

[42] Iain A. Martin and Rishad A. Irani. Dynamic modeling and self-tuning anti-sway
control of a seven degree of freedom shipboard knuckle boom crane. Mechanical
Systems and Signal Processing, 2021.

71
[43] Iain A. Martin and Rishad A. Irani. A generalized approach to anti-sway control for
shipboard cranes. 2021.

[44] Ziyad N. Masoud. A control system for the reduction of cargo pendulation of ship-
mounted cranes. PhD thesis, Virginia Polytechnic Institute and State university,
2000.

[45] Ziyad N. Masoud and Mohammed F. Daqaq. A graphical design of an input-shaping


controller for quay-side container cranes with large hoisting: Theory and experi-
ments. Mechanical and Industrial Engineering, 2007.

[46] Rachit Mehra, Sumeet Satpute, Faruk Kazi, and N. M. Singh. Geometric-pbc based
control of 4-dof underactuated overhead crane system. 2014.

[47] Mohammad Rasool Mojallizadeh, Bernard Brogliato, and Prieurm Christophe. Mod-
eling and control of overhead cranes: A survey. 2022.

[48] Hamed Moradi and Gholamreza Vossoughi. State estimation, positioning and anti-
swing robust control of traveling crane-lifter system. Applied Mathematical Mod-
elling, 2015.

[49] W. O’Connor and H. Habibi. Gantry crane control of a double-pendulum, distributed-


mass load, using mechanical wave concepts. Mechanical Sciences, 2013.

[50] Reza Olfati-Saber. Nonlinear Control of Underactuated Mechanical System with


Application to Robotics and Aerospace Vehicles. PhD thesis, Massachusetts Institute
of Technology, 2001.

[51] Huimin Ouyang, Naoki Uchiyama, and Shigenori Sano. Anti-sway control of a rotary
crane only by horizontal boom motion. 2010.

[52] Huimin Ouyang, Naoki Uchiyama, and Sano Shigenori. Suppression of two-
dimensional load-sway in rotary crane control using only horizontal boom motion.
System Design and Dynamics, 2011.

[53] Huimin Ouyang, Jian Wang, Guangming Zhang, Lei Mei, and Xin Deng. Novel
adaptive hierarchical sliding mode control for trajectory tracking and load sway re-
jection in double-pendulum overhead cranes. 2019.

[54] Huimin Ouyang, Xiang XU, and Guangming Zhang. Boom motion trajectory gener-
ation approach for load sway rejection in rotary cranes considering double-pendulum
effect. Measurement and Control, 2020.

[55] Huimin Ouyang, Tian Zheng, Lili Yu, and Guangming Zhang. Partial enhanced-
coupling control approach for trajectory tracking and swing rejection in tower cranes
with double-pendulum effect. Mechanical Systems and Signal Processing, 2021.

[56] Humin Ouyang, Naoki Uchiyama, and Shigenori Sano. S-curve trajectory generation
for residual load sway suppression in rotary crane system using only horizontal boom
motion. System Design and Dynamics, 2011.

72
[57] Mun-Soo Park, Dongkyoung Chwa, and Myunghwan Eom. Adaptive sliding-mode
antisway control of uncertain overhead cranes with high-speed hoisting motion.
Transactions on Fuzzy Systems, 2014.
[58] Jiaohui Peng, Jie Huang, and William Singhose. Payload twisting dynamics and os-
cillation suppression of tower cranes during slewing motions. Nonlinear Dynamics,
2019.
[59] Liyana Ramli, Z. Mohamed, Auwalu M. Abdullahi, H.I. Jaafar, and Izzuddin M.
Lazim. Control strategies for crane systems: Acomprehensive review. Mechanical
Systems and Signal Processing, 2017.
[60] Florentin Rauscher, Samuel Nann, and Oliver Sawodny. Motion control of an over-
head crane using a wireless hook mounted imu. 2018.
[61] Hiroki Sano, Kiyoshi Ohishi, Tahayuki Kaneko, and Hironori Mine. Anti-sway crane
control based on dual state observer with sensor-delay correction. 2010.
[62] Ulf Schaper, Conrad Sagert, Oliver Sawodny, and Klaus Schneider. A load position
observer for cranes with gyroscope measurements. 2011.
[63] Philipp Schubert, Sebastian Stemmler, and Dirk Abel. Towards predictive anti-sway
control of a hanging loads: Model-based controller design for a knuckle boom crane,
2019.
[64] Mark W. Spong, Seth Hutchinson, and M. Vidyasagar. Robot Dynamics and Control.
John Wiley Sons Inc, 2004.
[65] Maokai Sun, Shenghai Wang, Guangdong Han, Lin An, Haiquan Chen, and Yuqing
Sun. Modeling and dynamic analysis of a triple-tagline anti-swing system for marine
cranes in an offshore environment. Marine Science and Engineering, 2022.
[66] Ning Sun, He Fang, Yongchun adn Chen, Biao Lu, and Yiming Fu. Slew/translation
positioning and swing suppression for 4-dof tower cranes with parametric uncertain-
ties: Design and hardware experimentation. Industrial Electronics, 2016.
[67] Ning Sun, Yongchun Fang, and He Chen. A new antiswing control method for un-
deractuated cranes with unmodeled uncertainties: theoretical design and hardware
experiments. Transactions on Industrial Electronics, 2015.
[68] Ning Sun, Yongchun Fang, He Chen, Yiming Fu, and Biao Lu. Nonlinear stabiliz-
ing control for ship-mounted cranes with ship roll and heave movements: design,
analysis and experiments. Systems, Man, and Cybernetics: Systems, 2018.
[69] Ning Sun, Yongchun Fang, he Chen, and Biao Lu. Amplitude-saturated nonlinear
ouput feedback antiswing control for underactuated cranes with double-pendulum
cargo dynamics. Transactions on Industrial Electronics, 2017.
[70] Ning Sun, Xiao Liang, and Yongchun Fang. Nonlinear stable transportation con-
trol for double-pendulum shipboard cranes with ship-motion-induced disturbances.
Transactions on Industrial Electronics, 2019.

73
[71] Ning Sun, Yongchun Yang, Tong ans Fang, Biao Lu, and Yuzhe Qian. Nonlinear
motion control of underactuated 3-dimensional boom cranes with hardware experi-
ments. Transactions on Industrial Informatics, 2017.
[72] Hideki Takahashi, Abdallah Farrage, Kenichi Terauchi, Shintaro Sasai, Hitoshi Saku-
rai, Masaki Okubu, and Naoki Uchiyama. Sensor-less and time-optimal control for
load-sway and boom-twist suppression using boom horizontal motion of large cranes.
Automation in Construction, 2022.
[73] Le Anh Tuan, Gook-Hwan Kim, and Soon-Geul Lee. Partial feedback linearization
control of the three dimensional overhead crane. 2012.
[74] Le Anh Tuan, Jae-Jun Kim, Soon-Geul Lee, Tae-Gyoon Lim, and Luong Cong Nho.
Second-order sliding mode control of a 3d overhead crane with uncertain system
parameters. Precision Engineering and Manufacturing, 2014.
[75] Le anh Tuan, Sang.Chan Moon, Won Gu Lee, and Soon-Geul Lee. Adaptive sliding
mode control of overhead cranes with varying cable length. Mechanical Science and
Technology, 2013.
[76] Geir Olav Tysse, Andrej Cibicik, and Olav Egeland. Vision-based control of a
knuckle boom crane with online cable length estimation. IEEE/ASME Transactions
on Mechatronics, 2021.
[77] Geir Ole Tysse, Andrej Cibicik, Lars Tingelstad, and Olav Egeland. Lyapunov-based
damping controller with nonlinear mpc control of payload position for a knuckle
boom crane. Automatica, 2022.
[78] Geir Ole Tysse and Olav Egeland. Dynamic interaction of a heavy crane and a ship
in wave motion. Modeling, Identification and Control, 2018.
[79] Geir Ole Tysse and Olav Egeland. Crane load position control using lyapunov-based
pendulum damping and nonlinear mpc position control. 2019.
[80] Sondre Sanden Tørdal. Real-Time Motion Compensation in Ship-to-Ship Load Han-
dling. PhD thesis, University of Agder, 2019.
[81] Ding Wang, Haibo He, and Derong Liu. Intellighent optimal control with critic
learning for a nonlinear overhead crane. Transaction on Industrial Informatics, 2018.
[82] Jianli Wang, Kexin Liu, Shenghai Wang, Haiquan Chen, Yuqing Sun, Anqi Niu, and
Haolin Li. Dynamic analysis and experiment of underactuated double-pendulum
anti-swing device for ship-mounted jib-cranes. Polish Maritime Research, 2022.
[83] Jianli Wang, Shenghai Wang, Chen Haiquan, Anqi Niu, and Gouliang Jin. Dynamic
modeling and analysis of the telescopic sleeve antiswing device for shipboard cranes.
Mathematical Problems in Engineering, 2021.
[84] Shenghai Wang, Zhaopeng Ren, Guoliang Jin, and Haiquan Chen. Modeling and
analysis of offshore crane retrofitted with cable-driven inverted tetrahedron mecha-
nism. 2021.

74
[85] Shenghai Wang, Yuqing Sun, Haiquan Chen, and Jialu Du. Dynamic modelling and
analysis of 3-axis motion compensated offshore cranes. Ships and Offshore Struc-
tures, 2018.
[86] Xianqing Wu and Xiongxiong He. Nonlinear energy-based regulation control of
three-dimensional overhead cranes. Transactions on Autonomous Science and Engi-
neering, 2017.
[87] Yiming Wu, Ning Sun, He Chen, and Yongchun Fang. Adaptive output feedback con-
trol for 5-dof varying-cable-length tower cranes with cargo mass estimation. Trans-
actions on Industrial Informatics, 2021.

[88] Zhou Wu, Xiaohua Xia, and Bing Zhu. Model predictive control for improving
operational efficiency of overhead cranes. Nonlinear Dynamics, 2015.
[89] Yasuhiro Yamamoto, Chunnan Wu, Hisashi Osumi, Masayuki Yano, and Yusuke
Hara. Development of an algorithm for crane sway suppression. Automation and
Robotics in Construction, 2020.

[90] Tong Yang, Nig Sun, He Chen, and Yongchun Fang. Neural network-based adap-
tive antiswing control of an underactuated ship-mounted crane with roll motions and
input dead zones. Neural Networks and Learning Systems, 2020.
[91] Menghua Zhang, Yongfeng Zhang, Bing Ji, Changhui Ma, and Xingong Cheng.
Adaptive sway reduction for tower cranes with varying cable lengths. Automation
in Construction, 2020.
[92] Yan Zhao and Huijun Gao. Fuzzy-model-based control of an overhead crane with
input delay and actuator saturation. Transactions on Fuzzy Systems, 2012.
[93] Ümit Önen and Abdullah Cakan. Anti-swing control of an overhead crane by using
genetic algorithm based lqr. International Journal Of Engineering And Computer
Science, 2017.

75
Appendix
A Inverse Jacobian
Let J† denote the inverse of the Jacobian

J−1 = J† (10.1)
holding the elements
 †
J†12 J†13

J11
J† = J†21 J†22 J†23  (10.2)
J†31 J†32 J†33
With the Jacobian defined in (3.9) and the elements in (3.10), the elements on the
inverse Jacobian yields

sin(θ1 )
J†11 =
ℓj cos(θ2 + θ3 ) − ℓb cos(θ2 )
cos(θ1 )
J†12 =−
ℓj cos(θ2 + θ3 ) − ℓb cos(θ2 )
J†13 = 0
cos(θ2 + θ3 ) cos(θ1 )
J†21 =
ℓb sin(θ3 )
cos(θ2 + θ3 ) sin(θ1 )
J†22 =
ℓb sin(θ3 ) (10.3)
sin(θ2 + θ3 )
J†23 =
ℓb sin(θ3 )
cos(θ1 )(ℓj cos(θ2 + θ3 ) − ℓb cos(θ2 ))
J†31 =−
ℓb ℓj sin(θ3 )
sin(θ1 )(ℓj cos(θ2 + θ3 ) − ℓb cos(θ2 ))
J†32 =−
ℓb ℓj sin(θ3 )
ℓj sin(θ2 + θ3 ) − ℓb sin(θ2 )
J†33 =−
ℓb ℓj sin(θ3 )

76

You might also like