You are on page 1of 179

Research Collection

Doctoral Thesis

Modeling, guidance, and control of aerobatic maneuvers of an


autonomous helicopter

Author(s):
Gerig, Marco B.

Publication Date:
2008

Permanent Link:
https://doi.org/10.3929/ethz-a-005684509

Rights / License:
In Copyright - Non-Commercial Use Permitted

This page was generated automatically upon download from the ETH Zurich Research Collection. For more
information please consult the Terms of use.

ETH Library
Diss. ETH No. 17805

Modeling, Guidance, and Control


of Aerobatic Maneuvers
of an Autonomous Helicopter

Marco Beat Gerig

2008
Diss. ETH No. 17805

Modeling, Guidance, and Control


of Aerobatic Maneuvers
of an Autonomous Helicopter

A dissertation submitted to

ETH ZURICH

for the degree of

Doctor of Science

presented by

Marco Beat Gerig

Dipl. Masch.-Ing. ETH

born 23 January, 1973

citizen of Wassen, UR

accepted on the recommendation of

Prof. Dr. H. P. Geering, examiner

Prof. Dr.-Ing. C. Glocker, co-examiner

Dr. J. Wildi, co-examiner

2008
Abstract

This thesis discusses the main aspects of autonomous aerobatic flight with an unmanned
helicopter, including the design and construction of an appropriate autonomous helicopter
for flight controller validation, together with a ground control station for flight monitoring.
A dynamic model is developed for simulation and for flight controller design. The per-
tinent parameters of the model are identified using flight data that was collected in both
manual and autonomous flight. For the collection of the data used for parameter iden-
tification, synthetically generated sine sweep signals were superimposed onto the control
inputs of the human pilot.
A description of reference trajectories is presented, followed by a set of trajectory
segments, which allow the synthesis of flyable reference trajectories covering a wide range
of the vehicle’s flight envelope, including aerobatic maneuvers.
On the basis of model-based controllers, a guidance logic is developed that allows
autonomous flight along a reference flight path at any sideslip angle in both regular and
inverted flight. For attitude control, model-based H∞ controllers using gain-scheduling
are designed. The calculation of the reference attitude and the attitude error is performed
using quaternions.
The algorithms developed in this thesis were implemented in the helicopter’s autopilot
and proved good performance in numerous test flights. Autonomously flown maneuvers
include hover, nose circle, tail circle, circles with constant heading, straight flight with
superimposed rotation about the helicopter’s vertical axis, inverted hover, inverted flight,
changing between inverted and regular flight, loops, aileron rolls, and hammerhead turns.
The results obtained in various autonomous test flights complete this thesis.
Zusammenfassung

In dieser Dissertation werden die wichtigsten Aspekte des autonomen Kunstflugs mit
einem unbemannten Hubschrauber besprochen. Nebst der Entwicklung der benötigten
Flugregler, werden der Aufbau eines geeigneten unbemannten Hubschraubers für die Va-
lidierung der Flugregler sowie die Entwicklung einer Bodenstation für die Überwachung
der Testflüge behandelt.
Es wurde ein dynamisches Modell des Hubschraubers entwickelt, welches für die Simu-
lationen und das Auslegen von modellbasierten Flugreglern verwendet wurde. Die Modell-
parameter wurden mittels Flugdaten aus manuellen und autonomen Flügen identifiziert.
Für die Aufzeichnung der für die Parameteridentifikation verwendeten Flugdaten wurden
den Steuersignalen des Piloten synthetisch erzeugte Signale überlagert.
Die vorgestellte Beschreibung von Referenztrajektorien erlaubt es, aus diversen vor-
gegebenen Segmenten eine beliebige fliegbare Trajektorie zusammenzustellen. Die derart
generierte Trajektorie kann Rückenflug und Kunstflugmanöver beinhalten.
Es wurden modellbasierte Flugregelungsalgorithmen entwickelt, welche es erlauben,
sowohl im Normalflug, als auch im Rückenflug einen vorgegebenen Flugweg mit beliebigem
Schiebewinkel abzufliegen. Für die Lageregelung wurden modellbasierte H∞ -Regler mit
geschwindigkeitsabhängiger Ausgangsverstärkung verwendet. Die Berechnung von Ref-
erenzfluglage und Lagefehlern erfolgt mittels Quaternionen.
Die hier entwickelten Flugregelungsalgorithmen wurden im Autopiloten des Hub-
schraubers implementiert, und ihre gute Funktionalität wurde in diversen Versuchsflügen
bewiesen. Unter anderem wurden folgende Manöver vollautomatisch geflogen: Schwe-
beflug, Nasenkreis, Schwanzkreis, Kreis mit konstantem Heading, Geradeausflug mit
überlagerter Pirouette, Rückenflug, Rückenschweben, Looping, Rolle und Turn. Die Re-
sultate aus diversen Versuchsflügen vervollständigen diesen Bericht.
Acknowledgments

The research for this thesis was conducted at the Measurement and Control Laboratory
of ETH Zurich between 2002 and 2007. Thanks to my supervisor, Prof. Dr. H. P. Geering,
I had the opportunity to do research on a very exciting topic. The way he supported my
research and motivated me was ideal, even during times when progress was characterized
by small steps in circles and giant leaps into the wrong direction. Furthermore, I am
grateful to Prof. Dr. C. Glocker and Dr. J. Wildi who agreed to be my co-examiners.
Thanks to my colleagues at the Measurement and Control Laboratory, I spent a won-
derful time at the lab. I will always remember the mountainbike and ski weekends, as well
as the numerous discussions about the electric kettle and other real-world applications of
control theory. I thank Dr. Markus Möckli for the many discussions about robust control
and for his help on the hardware, Martin “Mitsch” Gerber and Dr. Andrin “L” Landolt for
the many vivid discussions about helicopters, aerobatic flight, and other significant topics,
Dr. Eric A. Müller for always being available to discuss all matters involving control the-
ory, LATEX, or more personal topics. Special thanks go to Dr. Paul E. Sevinç for bringing
the software of my ground control station to work and repairing it whenever I ruined it
again. I am very grateful also to Dr. J. Chapuis for providing me with reliable hard- and
software. Further, I wish to thank Oskar Brachs and Jan M. Prikryl for the hardware
support. Special thanks go to Brigitte Rohrbach for proofreading this manuscript and for
assigning me as the tutor of one specific study group — which significantly changed my
life.
Sincere thanks are given to my former office mate at the Air Force Base Dübendorf,
Lukas “Luc” Meier, for establishing the valuable contact to the safety-pilot. I thank Alex
Küng for saving my testbed when either technical failures or programming bugs turned
the experiments into unexpectedly exciting experiences, which included the successful
execution of an autorotation with a helicopter fully equipped for autonomous flight.
My parents supported me in every possible way. They have always been around when
I needed any kind of support, and I can still count on their affection every day. Thank
you very much!
x

Finally, special thanks go to Nina for providing invaluable emotional support during
the last years, when I spent countless evenings and weekends producing the text and the
plots of this manuscript.
Contents

List of Acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii

List of Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv

1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Problem Formulation and Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Prior Work and Contributions of this Thesis . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4 Thesis Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Hardware and System Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5


2.1 Mechanical Description of the Small-Scale Helicopter used at the IMRT . . . 5
2.2 RC Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.1 Yaw Stabilization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.2 Rotor Speed Governor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3 Avionic System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3.1 The wePilot2000 Flight Control System . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3.2 Flight Test Supervision and Data Collection . . . . . . . . . . . . . . . . . . . . . . 9
2.3.3 Power Supply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4 Ground Control Station . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.5 Safety Concept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3 Definitions and Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15


3.1 Definition of Flight Related Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2 Mathematical Definitions and Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.1 Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2.2 Font and Sub- and Superscript Conventions . . . . . . . . . . . . . . . . . . . . . . 17
3.2.3 Tensor Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2.4 Special Marks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
xii Contents

3.3 Frames and Coordinate Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18


3.3.1 Reference Frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3.2 Coordinate Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.3.3 Coordinate Transformation Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.3.4 Definition of Track, Heading, and Sideslip . . . . . . . . . . . . . . . . . . . . . . . . 22

4 Dynamic Model of a Small-Scale Helicopter . . . . . . . . . . . . . . . . . . . . . . . . . . 25


4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.2 Kinematics and Rigid Body Dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2.1 Velocities and Accelerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2.2 Translational Dynamics of Rigid Bodies . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.3 Representing Attitudes and Rotations with Quaternions . . . . . . . . . . . . . . . . . 32
4.3.1 Rotation Quaternion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.3.2 The Time Derivative of a Unit Quaternion . . . . . . . . . . . . . . . . . . . . . . . 34
4.3.3 Rotation Tensor and Transformation Matrix . . . . . . . . . . . . . . . . . . . . . 34
4.3.4 Interpolation Between Two Quaternions . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.4 Attitude Dynamics of Rigid Bodies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.4.1 Angular Momentum of Rigid Bodies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.4.2 Euler’s Law for Rigid bodies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.5 Modeling the Main Rotor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.5.1 General Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.5.2 The Main Rotor Inflow and Thrust . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.5.3 The Flapping Motion of the Main Rotor Blades . . . . . . . . . . . . . . . . . . . 43
4.5.4 Calculation of the Moments Produced by the Main Rotor . . . . . . . . . . 44
4.6 Tail Rotor and Yaw Dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.7 Linear Parameter-Varying Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.7.1 Roll Dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.7.2 Pitch Dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.7.3 Yaw Dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.7.4 Heave Dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

5 Parameter Identification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.1 Prediction Error Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.2 Excitation Signals Used for Parameter Identification . . . . . . . . . . . . . . . . . . . . 52
5.3 Identification of the Parameters of the Rotational Dynamics . . . . . . . . . . . . . 54
5.3.1 Identification of the Parameters of the Roll Dynamics . . . . . . . . . . . . . . 54
5.3.2 Identification of the Parameters of the Pitch Dynamics . . . . . . . . . . . . . 56
5.3.3 Identification of the Parameters of the Yaw Dynamics . . . . . . . . . . . . . 58
Contents xiii

5.4 Identification of the Parameters of the Heave Dynamics . . . . . . . . . . . . . . . . . 59


5.5 Cross-Coupling Effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.5.1 Cross-Coupling between Collective Pitch and Yaw Rate . . . . . . . . . . . . 60
5.5.2 Cross-Coupling between Pitch and Roll Axes . . . . . . . . . . . . . . . . . . . . . 61
5.5.3 Summary on Cross-Coupling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.6 Static Parameter Identification for the Tilt Angle . . . . . . . . . . . . . . . . . . . . . . 63
5.7 Effects of Velocity on the Dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

6 Reference Trajectory Synthesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67


6.1 Representation of the Trajectory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
6.2 Trajectory Synthesis Using Trajectory Segments . . . . . . . . . . . . . . . . . . . . . . . 70
6.3 The Non-Aerobatic Trajectory Segments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
6.3.1 Angular Rates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
6.3.2 Hover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
6.3.3 Vertical Flight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
6.3.4 Straight Horizontal Flight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
6.3.5 Horizontal Curve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
6.3.6 Horizontal Acceleration and Deceleration . . . . . . . . . . . . . . . . . . . . . . . . . 76
6.3.7 Offline Calculation of Nominal Control Signals . . . . . . . . . . . . . . . . . . . . 78
6.4 Aerobatic Flight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
6.5 On-Board Reconstruction of the Trajectory . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

7 Guidance and Control System Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85


7.1 Control Structure Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
7.2 Reference Trajectory Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
7.2.1 Reference Trajectory Generator as a Finite State Machine . . . . . . . . . . 87
7.2.2 Calculation of Reference Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
7.2.3 Determining the Position on the Reference Trajectory . . . . . . . . . . . . . 89
7.3 Guidance and Control Strategy for Aerobatic Maneuvers . . . . . . . . . . . . . . . . 92
7.4 Guidance Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.4.1 Position Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
7.4.2 Velocity Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
7.4.3 Calculation of the Reference Attitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
7.4.4 Guidance Controller Synthesis using the H∞ Method . . . . . . . . . . . . . . 98
7.5 Attitude Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
7.5.1 Calculation of the Attitude Error and the Correction Angles . . . . . . . . 104
7.5.2 Synthesis of the Attitude Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
7.5.3 Gain-Scheduling Law for Attitude Control . . . . . . . . . . . . . . . . . . . . . . . 108
xiv Contents

7.6 Design of the Heave Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

8 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
8.1 Attitude Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
8.1.1 Attitude Control in Hover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
8.1.2 Attitude Control in Horizontal Flight . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
8.1.3 Attitude Control in Inverted Flight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
8.2 Path Following in Non-Aerobatic Flight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
8.2.1 Hover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
8.2.2 Forward Flight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
8.2.3 Sideways and Backward Flight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
8.2.4 Circle with Constant Heading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.2.5 Path Following in Inverted Flight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
8.3 Aerobatics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
8.3.1 Changing Between Regular and Inverted Flight . . . . . . . . . . . . . . . . . . . 130
8.3.2 Hammerhead Turn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
8.3.3 Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
8.3.4 Aileron Roll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

9 Summary and Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

A Initialization of the Attitude Quaternion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

B Numerical Values of Parameters and Constants . . . . . . . . . . . . . . . . . . . . . . 149


B.1 Parameters of the Plant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
B.2 Parameters of LPV-Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
B.2.1 Roll Dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
B.2.2 Pitch Dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
B.2.3 Heave Dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
B.2.4 Yaw Dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
B.3 Static Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
B.4 International Standard Atmosphere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
List of Acronyms

CRC cyclic redundancy check


GCS ground control station
GPS global positioning system
HDG heading
IMRT Institut für Mess- und Regeltechnik (Measurement and Control Laboratory)
IMU inertial measurement unit
INS inertial navigation system
LPV linear parameter-varying
MMC multi media card
PEM prediction error method
RC radio controlled
UAV unmanned aerial vehicle
List of Symbols

Variables and Constants

1
 
a0 rad
main rotor blade lift curve slope
aij (i, j = 1, 2, 3), parameters of the linear model of the yaw dynamics
m
az s2
acceleration of the helicopter in the vertical direction
bi (i = 1, 2, 3), parameters of the linear model of the yaw dynamics

c [m] main rotor blade chord


cpos [–] parameter that defines the law for the calculation of the running variable
s
ctime [–] parameter that defines the law for the calculation of the running variable
s
fakro [–] fading variable
fa [N] aerodynamic force vector acting on the rigid body
fB [N] total force vector acting on the rigid body
fp [N] propulsive force vector acting on the rigid body
m
g s2
acceleration due to gravity
k [–] reference trajectory node identification number
kup [–] constant describing the influence of the vehicles velocity uB on the input
gain of the lateral flapping dynamics
kuq [–] constant describing the influence of the vehicles velocity uB on the input
gain of the longitudinal flapping dynamics
kvp [–] constant describing the influence of the vehicles velocity vB on the input
gain of the lateral flapping dynamics
kvq [–] constant describing the influence of the vehicles velocity vB on the input
gain of the longitudinal flapping dynamics
xviii List of Symbols
h i
kg m2
l s
angular momentum vector
m [kg] mass of the helicopter
mB [Nm] total moment vector acting on the rigid body
mmr [Nm] moment produced by the main rotor
m? maneuver identifier vector of the reference trajectory segment
mh variable containing information used for guidance
mID [–] move identification number
n [–] axis of rotation
N
 
p m2
pressure
 rad 
p s
roll rate of the helicopter with respect to the Earth frame, expressed in
body coordinates
N
 
pi m2
pressure in the inflow just above the main rotor disk
N
 
p∞ m2
pressure in the still air surrounding the helicopter
 kg m 
p s
linear momentum vector
 kg m 
pE
B s
linear momentum of body B with respect to reference frame E
N
 
∆p m2
increase of pressure of the airflow through the main rotor caused by the
energy added by the main rotor
 rad 
pX s
angular rate of the error coordinate system about its 1X axis with re-
spect to the Earth frame
 rad 
q s
pitch rate of the helicopter with respect to the Earth frame, expressed
in body coordinates
q [–] unit quaternion
q0 [–] real part of the unit quaternion
qi [–] (i = 1, 2, 3), imaginary parts of the unit quaternion
 rad 
qX s
angular rate of the error coordinate system about its 2X axis with re-
spect to the Earth frame
 rad 
r s
yaw rate of the helicopter with respect to the Earth frame, expressed in
body coordinates
rb [m] radius / distance of a blade element from the center of the main rotor
disk
rc [m] radius of a curve
List of Symbols xix
 rad 
rX s
angular rate of the error coordinate system about its 3X axis with re-
spect to the Earth frame
sBR [m] displacement vector of point B with respect to point R
s [–] main rotor solidity
s [–] running variable describing the instantaneous position on the reference
trajectory
spos [–] variable used for calculation of the running variable s
stime [–] variable used for calculation of the running variable s
t [s] time
tInit [s] time when the mission is started
u scalar input signal
u vector input signal
m
uB s
forward velocity of the helicopter with respect to the Earth frame, ex-
pressed in body coordinates
uman manually generated control vector
m
v∞ s
velocity of the downwash (wake) of the helicopter far below the main
rotor disk
m
vB s
sideways velocity (right) of the helicopter with respect to the Earth
frame, expressed in body coordinates
m
v s
velocity vector
m
vE
B s
velocity vector of point B with respect to frame E
m
vi s
incuced velocity of the main rotor inflow at the main rotor disk
m
vih s
incuced velocity of the main rotor inflow at the main rotor disk in hover
flight
ṽi [–] incuced velocity ratio of the main rotor inflow
m
wB s
vertical velocity (down) of the helicopter with respect to the Earth
frame, expressed in body coordinates
x state variable
x state vector
x arbitrary first-order tensor
y scalar output signal
y vector output signal
xx List of Symbols

A [m2 ] area exposed to the air stream

Ab [m2 ] main rotor blade area


Amr [m2 ] main rotor disc area
1
Aβ1c s
parameter of the linear model of the roll dynamics
 rad 
Aδlat s
varying parameter of the linear model of the roll dynamics
 rad 
A?δlat s
value of the varying parameter Aδlat in hover

B base point of the body frame (located at the center of mass of the heli-
copter)
1
Bβ1s s
parameter of the linear model of the pitch dynamics
 rad 
Bδlon s
varying parameter of the linear model of the pitch dynamics
 rad 
Bδ?lon s
value of the varying parameter Bδlon in hover

CT [–] main rotor thrust coefficient


Cw [–] drag coefficient
D [N] drag

DE denotes the rotational time derivative of a tensor with respect to frame


E
E base point of the Earth frame (located at the position, where the navi-
gation filter is initialized)
G linear plant

IB
C [kg m2 ] inertia tensor of body B referred to point C
K controller for scaled plant
Nm
Kβ rad
constant of the flapping spring at the hinge
Kreal controller for unscaled plant
Kred controller with reduced order
L [N] lift
1
Lp s
parameter of the linear model of the roll dynamics
1
Mq s
parameter of the linear model of the pitch dynamics
1
Lβ1s s2
parameter of the linear model of the roll dynamics
1
Mβ1c s2
parameter of the linear model of the pitch dynamics
Nb [–] number of main rotor blades
List of Symbols xxi

R base point of the reference coordinate system (located at the position,


where the autopilot is switched on)

Rmr [m] radius of the main rotor


R? reference trajectory vector
Se sensitivity at the plant output
Su sensitivity at the plant input
Tmr [N] main rotor thrust
[T ]BE transformation matrix that establishes the ]B coordinates of a tensor
with respect to the ]E coordinates
Te complementary sensitivity at the plant output
Ts0 [s] time at the beginning of the current segment of the reference trajectory
Tu complementary sensitivity at the plant input
Tu scaling matrix
Tx scaling matrix
Ty scaling matrix
Tzw closed-loop transfer function from signal w to signal z
m
V s
magnitude of the velocity vector of the helicopter relative to the sur-
rounding air

Ve [–] forward velocity ratio


m
Vb s
resultant velocity of the flow at the main rotor blade

V0
m
s
velocity of the oblique flow through the main rotor disk during flight
m
VT s
velocity of the tip of the main rotor blade
X base point of the error coordinate system (located at the instantaneous
reference point on the reference flight path)
X arbitrary second-order tensor
1
Zaz s
parameter of the linear model of the helicopter’s vertical dynamics
1
Zw s2
parameter of the linear model of the helicopter’s vertical dynamics
1
Zδcol s3
parameter of the linear model of the helicopter’s vertical dynamics

α [rad] angle of attack of the blade relative to the airflow


xxii List of Symbols

αBX [rad] tilt angle of the helicopter relative to the tracking error coordinate sys-
tem
αBX? nominal relative attitude vector
αcorr [rad] correction angle
β [rad] main rotor blade flapping angle
β0 [rad] main rotor blade coning angle
β1c [rad] main rotor blade longitudinal flapping angle
β1s [rad] main rotor blade lateral flapping angle

β BX [rad] sideslip angle of the helicopter relative to the tracking error coordinate
system
βSB1c [rad] stabilizer bar longitudinal flapping angle
βSB1s [rad] stabilizer bar lateral flapping angle

γ BX [rad] roll angle of the helicopter relative to the tracking error coordinate sys-
tem
δcol [–] collective control input
δlat [–] lateral control input
δlon [–] longitudinal control input
δyaw [–] yaw control input
ε prediction error in the parameter identification process
θ [rad] blade pitch angle
θ0 [rad] main rotor collective pitch angle
θ1c [rad] main rotor lateral cyclic pitch angle
θ1s [rad] main rotor longitudinal cyclic pitch angle
 kg 
ρ m3
air density
φ [rad] induced inflow angle
φ [rad] phase angle of sine sweep signal
χ [rad] track angle
ψ [rad] rotor blade azimuth angle
 rad 
ω s
angular velocity about a given axis of rotation
 rad 
ω0 s
lower limit of the frequency band contained in the sine sweep signal
List of Symbols xxiii
 rad 
ω1 s
upper limit of the frequency band contained in the sine sweep signal
 rad 
ω s
angular velocity vector

∆ [–] vector of synthetically generated signals that is superimposed to the


manually generated control vector
∆Θ [rad] error angle about the helicopter’s pitch axis
∆ui [–] (i = 1, 2, 3, 4), sine sweep signal

∆Φ [rad] error angle about the helicopter’s roll axis


∆Ψ [rad] error angle about the helicopter’s yaw axis
Θ [rad] pitch attitude (Euler angle)
Θ parameter vector used in the identification process
Φ [rad] roll attitude (Euler angle)

Ψ [rad] yaw attitude (Euler angle) or heading angle


 rad 
Ω s
angular velocity tensor
 rad 
Ωmr s
angular velocity of the main rotor

Sub- and Superscripts

]B Body coordinate system

]E Local-level coordinate system (Earth fixed coordinate system)

]R Trajectory reference coordinate system

]X Tracking error coordinate system

]Y Attitude error coordinate system

1c first harmonic cosine component


1s first harmonic sine component
b main rotor blades
bwd concerning flight in the backward direction (β BX = π)

col collective (pitch)

fwd concerning flight in the forward direction (β BX = 0)


i induced
xxiv List of Symbols

ih induced in hover
lat lateral direction
lon longitudinal direction
mr main rotor
real unscaled, corresponding to the real (unscaled) plant
red reduced order
sat saturation limit
swy concerning flight in the sideways direction (β BX ∈ {−π/2, π/2})
yaw yaw axis

Accents

ˆ estimated value
Transposed of a vector, matrix or tensor
?
reference value originating from reference trajectory

complex conjugate of a quaternion
1

Introduction

We soon saw that the helicopter had no future, and dropped it. The
helicopter does with great labor only what the balloon does without
labor, and is no more fitted than the balloon for rapid horizontal
flight. If its engine stops, it must fall with deathly violence, for it
can neither glide like the aeroplane or float like the balloon. The he-
licopter is much easier to design than the aeroplane, but is worthless
when done.
Wilbur Wright, 1909

1.1 Problem Formulation and Overview

Autonomous flight with helicopters represents a challenging control problem, involving


complex dynamics. Today, guidance and control algorithms are capable of guiding an
aircraft from take-off to landing in a fully autonomous manner. In recent years, the de-
velopment of smaller and lighter avionics made it possible to reduce the mass of the
equipment needed for autonomous flight, and the envelope of autonomous vehicles grew
larger.
Due to the helicopter’s ability to hover and to move backwards and sideways, a broad
variety of maneuvers can be flown with a helicopter. Compared to their full-scale counter-
parts, small-scale helicopters feature an increased power-to-mass ratio and, due to a very
stiff main rotor assembly, the miniature helicopters can produce a much higher torque-to-
moment of inertia ratio. Also, the main rotor system of a miniature helicopter allows the
production of negative thrust. These characteristics allow for high angular rates and large
bi-directional accelerations, which are the main components of aerobatic flight with a he-
licopter. Small-scale helicopters are much more agile than large helicopters and, equipped
with relatively light state-of-the-art flight control hardware, they are still capable of flying
aerobatic maneuvers even with the additional equipment.
2 1 Introduction

The task of this thesis was to develop the software part of an autopilot, which enables
an unmanned helicopter to fly autonomously throughout its powered flight envelope, in-
cluding aerobatic maneuvers. An appropriate helicopter suited for autonomous flight had
to be developed and built for in-flight validation of the guidance and control algorithms.
The almost unlimited variety of maneuvers that can be flown with a small-scale heli-
copter asks for a guidance and control logic that covers the entire powered flight envelope
of such a vehicle. Also, there is a need for a representation of the reference trajectory,
which must provide appropriate ways to describe the different maneuvers.

1.2 Background

This thesis is one of a number of projects on unmanned aerial vehicles (UAV) at the
Measurement and Control Laboratory (IMRT) at ETH Zurich under the guidance of
Professor Hans P. Geering. The first project in the field of UAVs at the IMRT started
in 1986 with the development of an indoor helicopter test bench by Weilenmann [31].
In 1995, the development of an autonomously free-flying helicopter was initiated. The
goal was to participate at the International Aerial Robotics competition (IARC) [1]. A
few years later, the collaboration with the Computer Systems Laboratory resulted in the
demonstration of fully autonomous flight with an unmanned helicopter [2]. During the
years 1996 to 2002, the research at IMRT focussed on navigation with a dissertation by
Eck [7] and on the application of robust control methods on the indoor helicopter test
bench with a dissertation by Tanner [29]. In 2000, the spin-off company weControl GmbH
was founded with the goal of developing commercial autopilots. In 2002, two projects
with the focus on autonomous aerobatic flight were initiated. The Aerobatics project
focussed on autonomous aerobatic flight with a fixed-wing aircraft with a dissertation by
Möckli [19], while the AkroHeli project (this thesis) discusses autonomous aerobatic flight
with a helicopter.

1.3 Prior Work and Contributions of this Thesis

In recent years, the subject of autonomous aerobatic flight has become a popular topic.
Work has been done on modeling aerobatic helicopters [9, 17, 18], parameter identifica-
tion [18], and controller design [13, 14]. A large portion of the previous work focusses on
theoretical aspects of autonomous aerobatic flight and on simulations. Only a few publi-
cations include results obtained in autonomous flights. Results of successfully performed
autonomous aerobatic maneuvers can be found in [8,20] . However, these publications only
cover specific aspects of autonomous aerobatic flight with unmanned helicopters, while
1.4 Thesis Outline 3

in this thesis, the subject is covered as a whole. The guidance and control algorithms
developed in this thesis have proven good performance in all flight conditions (except in
case of a failure of a subsystem) and were successfully tested in autonomous flight.
In this thesis, a fairly simple model is developed, which describes the helicopter’s
dynamics throughout its powered flight envelope. The parameters of the model were
identified using a new approach for exciting the plant for data collection—a synthetically
generated sine-sweep signal is superimposed on the control signal manually generated by
the human pilot.
Based on a linear model with varying parameters, a new gain-scheduling law is found,
which allows robust attitude control throughout the helicopter’s entire range of velocities.
Unlike other concepts, the guidance laws developed in this thesis allow autonomous flight
along a reference path at any sideslip angle both in regular and inverted flight.

1.4 Thesis Outline

The thesis starts with an overview on the development of the AkroHeli hardware setup,
which is used for flight tests. Next, the definitions and the notation used in this thesis
are presented. Chapter 4 presents the dynamic model, developed for controller design and
simulation. For the identification of the parameters of the dynamic model, flight data is
analyzed. The parameter identification process is discussed in Chapter 5. Thereafter, the
focus is on the synthesis of flyable reference trajectories and their representation for both
non-aerobatic flight and aerobatic maneuvers. Chapter 7 covers the development of the
guidance and control algorithms and the controller synthesis, while the results obtained
during flight tests are presented in Chapter 8.
2

Hardware and System Description

Helicopter flight basically is a sequence of mechanical and aerody-


namical coincidences.
anonymous

Aerobatic flight with an autonomous helicopter can only been performed with the appro-
priate hardware. Thus, a small-scale helicopter is needed, which is capable of performing
aerobatic maneuvers even with the additional payload required for autonomous flight. The
on-board electronics must provide the computational power needed to solve the naviga-
tion, guidance, and control algorithms in real time. Furthermore, the helicopter must be
controllable manually and the electronic hardware must provide the possibility to switch
to manual control, at any time. This chapter presents the hardware used for collection of
flight data and for the flight tests performed for validation of the control algorithms.

2.1 Mechanical Description of the Small-Scale Helicopter used


at the IMRT

The helicopter to be used for flight tests must guarantee good flight characteristics even
with the additional electronics required for autonomous flight. As a mechanical platform,
a radio controlled helicopter of the type Nova Cuatro produced by Robbe Modelsport was
chosen. This helicopter is built on a carbon fiber chassis, which allows the necessary modi-
fications to place most of the electronic equipment under its canopy. The helicopter’s main
rotor, with a diameter of 1.8 m, operates at a nominal rotational speed of 1650 rpm. Fully
equipped, the helicopter has a take-off mass of 6.75 kg. Figure 2.1 shows the helicopter
used for flight tests.
The main rotor assembly features a rather rigid hingeless rotor head, which provides
fast responses to cyclic and collective inputs. The saturation limits of the gyroscopic
angular rate sensors can be reached within less than a second in both roll and pitch
directions. Fast changes in collective pitch input easily create vertical accelerations of ±5 g.
6 2 Hardware and System Description

Fig. 2.1: AkroHeli hardware.

The two-blade main rotor is equipped with a Bell-Hiller stabilizer bar, which dampens
disturbances acting on the main rotor disc and provides an additional control force for
the cyclic change of the blade pitch angle and thus augments the servo torque with
aerodynamic moments.
The tail rotor has a diameter of 0.3 m and produces enough thrust to reach and maintain
steady yaw rates well above the angular rate sensor’s saturation limit within less than one
second. The tail rotor operates at a constant speed and is driven by a shaft connected to
the main gearbox. The collective pitch angle of the tail rotor is controlled by a yaw rate
control device used on most radio controlled helicopters.
The helicopter is powered by a 15 cm3 two-stroke engine providing a power of 3.1 hp.
At high pitch angles, the drag of the main rotor is fairly high. Particularly at outside
temperatures above 20 ◦ C, the power provided by the engine is not sufficient to keep the
rotor speed constant during aerobatic maneuvers.
The high power settings needed for flight cause a high fuel consumption and thus
reduce the endurance of the helicopter. The AkroHeli is equipped with a 630 cm3 main
tank and a small feeder tank to ensure the fuel flow during aerobatic flight maneuvers.
With both tanks filled, a maximum flight time of seven minutes can be achieved. The
duration of the reference trajectories for autonomous flight is restricted to four minutes,
which leaves enough time for manual take-off and landing.
2.3 Avionic System 7

2.2 RC Components

2.2.1 Yaw Stabilization

The AkroHeli hardware is equipped with a yaw rate stabilizing system, which controls
the tail servo with a frequency of 330 Hz. Control signals produced by the human pilot
or computed by the autopilot are sent to the yaw rate controller of the yaw stabilizing
system, where they are interpreted as reference value for the yaw rate. Minor disturbances
caused by turbulences or by variations of the main rotor drag are absorbed by the device
even before they are detected by the human pilot or by the sensors used for navigation.
Thus no high-frequency control input by the human pilot or by the autopilot is needed.

2.2.2 Rotor Speed Governor

Changes in blade pitch angle cause the drag produced by the rotor to vary, which causes
variations in the rotor speed. A magnetic rotational speed sensor and an electronic gov-
ernor are installed on the helicopter. The latter adjusts the throttle in such a way that
the variations in drag are compensated and rotor speed remains constant at 1 650 rpm,
provided that the adequate power is provided by the engine.

2.3 Avionic System

The helicopter used for the flight tests is packed with electronic hardware. A short de-
scription of the devices is given in this section. The position of the components on the
hardware can be seen in Figure 2.2.

2.3.1 The wePilot2000 Flight Control System

The core of the avionic system is the wePilot2000 flight control system developed by
weControl GmbH. It features an inertial measurement unit (IMU), a global positioning
system (GPS) receiver, a magnetometer, a barometer, and an Intel RISC 400 MHz pro-
cessor with a custom designed Oberon operating system. weControl GmbH also provided
a fully integrated GPS/inertial navigation solution based on an extended Kalman filter
(EKF) as well as the interfaces and the Oberon drivers for the peripheral devices.
The hardware and part of the software of the flight control system was originally devel-
oped for use on fixed-wing aircrafts. The hardware fits perfectly under the canopy of the
helicopter chosen. The navigation algorithms and the interfaces to the peripheral devices
are independent of the vehicle’s dynamics and thus no changes were necessary in order
to use the software on a helicopter. The software parts which depend on the vehicle’s dy-
namics, such as trajectory generation, the guidance logic, and the control algorithms were
8 2 Hardware and System Description

Video Camera
Magnetometer
GPS-Antenna 72 MHz-Receiver
RPM-Sensor
Video Overlay IMU
SwitchBox

wePilot2000

72 MHz-Antenna
40 MHz-Antenna
RS232 Connection Governor
Video Transmitter Data Logger Yaw Stabilizer Data Link

Fig. 2.2: Integration of the instrumentation and flight control hardware.

developed during this thesis and implemented using the Oberon programming language.
For further information on the Oberon language and the operating system, the reader is
referred to [15, 23, 33, 34].

Inertial Measurement Unit (IMU)

The IMU is an integral part of the wePilot2000 flight control system (i.e., it is placed on
the wePilot2000 board). It features three rate gyros and three accelerometers. The gyros
have a specified measurement range of ±100 ◦ /s. During flight test, they performed well
up to the saturation limit at 121 ◦ /s (2.12 rad/s). The rate gyros are a limiting factor
in aerobatic maneuvers since the saturation limits of the angular rate sensors are easily
reached with the very agile helicopter. The accelerometers have a specified measurement
range of ±10 g, which has never been reached during the flight tests. The information
from both the gyros and the accelerometers is processed at the autopilot’s sampling rate
of 50 Hz.

GPS Receiver

The hardware features a µ-blox GPS receiver operating at a sampling frequency of 1 Hz


and an omni-directional antenna which is mounted on the tail boom of the helicopter.
The position and the velocity information provided by the GPS receiver are of reasonable
quality for both regular and inverted flight. During maneuvers with high angular rates,
the quality of the GPS solution and thus the solution of the navigation filter decreases
2.3 Avionic System 9

rapidly. The bad quality of the GPS signal during aerobatic flight imposes tight limits on
the maximum possible duration of the aerobatic flight phases.

2.3.2 Flight Test Supervision and Data Collection

For flight test supervision and data collection, the AkroHeli is fitted with additional
equipment: During flight, all the signals of interest are logged on board, while the states
of the various systems are also transmitted to the ground control station for monitoring
purposes.

Data Logger

For flight data recording, the data logger developed by Möckli [19] is used. It allows the
recording of flight data at a sampling rate of 50 Hz on a flash-memory card (MMC). On
the AkroHeli hardware, two units of the data logger are mounted, which allows the storage
of up to 60 variables (30 on each unit) at every sampling step. After flight, the recorded
data can be copied to the computer using a standard card reader and converted into a
Matlab file for post-flight analysis.

On-Board Video Equipment

A miniature video camera of the type EO5-380 by HiCam with a 110◦ ultra-wide angle lens
is mounted on the tail boom of the AkroHeli . The helicopter also features an video overlay
device, which allows some text to be written into the picture before it is transmitted
to the ground control station (GCS). During all flight tests, on-board video images are
captured, transmitted to the GCS, and recorded there. The video pictures are not used
by the guidance and control algorithms, but they are a great help for post-flight analysis
of the collected data.1 A snapshot from the movie recorded by the on-board camera is
shown in Figure 2.3.
The overlay device is used to write useful information into the picture before it is
transmitted to the ground. The information includes the date of the flight, the name
of the experiment, the identifier number of the recently passed node of the reference
trajectory, the instantaneous time of the on-board operating system, and the state of the
autopilot.

Data Link

During flight tests, the vital data is sent to the GCS for display on a laptop. The data link
is provided by a 900 MHz XStream RS-232 RF modem. The data link is used for unidi-
1
Sample video clips can be found at the url www.imrt.ethz.ch/research/uav/heli.
10 2 Hardware and System Description

Fig. 2.3: Picture captured by the on board video camera, while the helicopter is flying a loop autonomously. The
following information can be seen in the overlayed text: ID of the recently passed node of the trajectory (k = 351),
state of the autopilot (Automatic indicating fully autonomous flight), date of the flight (July 25, 2007), name of
the flight (gle01) and the system time of the on-board computer (476.00 s)

rectional communication only and no information is sent from the GCS to the helicopter
during flight.

2.3.3 Power Supply

The electric power for all the electric equipment on board is redundantly supplied by two
rechargeable 11.1 V/1320 mAh lithium-polymer batteries wired in parallel. The devices
requiring 4.8 V (RC components, video, and data link devices) are powered by the DC/DC
converter installed on the wePilot2000. The total current required strongly depends on
the loads acting on the servos and thus varies between 0.9 A and 1.7 A.

2.4 Ground Control Station

The ground control station is used to monitor the on-board avionics and the autopilot
during flight test. Figure 2.4 shows a screenshot of the ground control station. In the
upper left part of the screen, standard flight instruments display the attitude, horizontal
and vertical velocity, and the horizontal deviation from the flight path as estimated by the
extended Kalman filter. The warning panel in the lower left part of the screen remains dark
grey as long as all the systems work properly. In case of a malfunction, the corresponding
indicator lights up in yellow or red, depending on the importance of the information. The
2.5 Safety Concept 11

right side of the screen displays more detailed information about the states of the vital
systems.

Fig. 2.4: The ground control station (GCS) displays the information received via the data link. The warning is
light up here, because the instantaneous current is very high.

2.5 Safety Concept

The helicopter used as the test bench features a backup system originally designed by
Möckli for the aerobatic airplane which he used for his PhD thesis [19]. An overview on
the hardware devices on the helicopter is given in Figure 2.5. The white blocks represent
the backup system, which provides the safety pilot with a fully operating RC helicopter
even in the case of a crash of the on-board computer or the malfunction of any flight-
control device. The blocks drawn in gray belong to the flight-control hardware.
The safety system is based on a redundant radio control link. The safety pilot’s trans-
mitter transmits the control signals in both the 72 MHz and the 40 MHz frequency band.
The helicopter is equipped with two receiver antennas and two receivers featuring cyclic
redundancy checks (CRC). The information from the CRC is used by the backup system
to select between the two receivers automatically. The information from the CRC is also
stored on board by the data logger and is sent to the GCS for monitoring via the data
link. In Figure 2.6, the helicopter’s path during a flight is plotted and the positions where
link losses occurred are marked. During the flight tests performed, the 72 MHz signal has
hardly ever been lost. A simultaneous loss of both links has never occurred.
12 2 Hardware and System Description

Rx A Rx B

CRC Check IMU GPS Baro


Autopilot Mode
Signal

wePilot 2000 Magneto

Video
Data Log Datalink Camera
Overlay

Governor RPM Sensor


Videolink

HDG Ctr HDG Gyro

Servos 1,2,6 Servo 3 Servo 4


Roll,Pitch, Throttle Yaw
Collective

Fig. 2.5: Avionics Overview. If the autopilot switch on the safety pilot’s transmitter is set to off, the signals
received are directly fed from the CRC check into the servos. Only the (white) backup system is active. The flight
control hardware (gray) is isolated and the output of the wePilot2000 is disregarded.

−100

−80

−60

−40
East [m]

−20

Flight Name: gip02


0 t0 = 240.00 s
t1 = 650.00 s
20
Flight Path
RxA (72 MHz) lost
40 RxB (40 MHz) lost

−80 −60 −40 −20 0 20 40 60 80


North [m]

Fig. 2.6: The plot shows the flight path with the locations where the link between the safety pilot’s transmitter
and the receivers on board was lost.
2.5 Safety Concept 13

The channel carrying the information of the position of the autopilot mode switch is
used to switch between the control mode and the bypass mode. If the control mode is
active, the servos receive the commands from the processor board, whereas in the bypass
mode, the control signals produced by the safety pilot are fed directly into the servos.
The backup system is independent of the flight-control hardware such that the backup
system remains unchanged even if the flight-control system is modified. This independence
guarantees that the functionality of the safety concept is not affected by any autopilot
modifications.
3

Definitions and Notation

We have already done so much that people call dynamics. Look at


the bumblebee being unaware of scientific truths, goes ahead and
flies anyway.
Tom Hopkins

Autonomous aerobatic flight with a helicopter is a complex issue and can be a complicated
topic. Thus, it is fundamental to define the meaning of some expressions used throughout
the thesis in order to give the reader a fair chance to understand the text. Also, the
description of aerobatic maneuvers, the representation of reference trajectories, and the
formulation of appropriate guidance and control laws require a multitude of coordinate
transformations and rotations. In this chapter, the definitions for some key words are
given. Furthermore, the frames and the coordinate systems used in this thesis are defined
and the notation used in the text is explained.

3.1 Definition of Flight Related Expressions

Path: The path is a purely geometric (spatial) description of the evolving position of the
helicopter.
Trajectory: A trajectory is a combination of the flight path and the vehicles attitude on
the path. The location of the vehicle on a reference trajectory is either defined as a time
law or as a function of the helicopter’s position relative to the reference flight path.
In this thesis, the nominal control signals are included in the notion of the reference
trajectory.
Guidance: The guidance logic is the part of the autopilot that issues reference values
for attitude and vertical velocity to the vehicle’s attitude and heave controllers to
accomplish certain flight objectives, such as staying on the flight path given by the
reference trajectory
Flight Director: Synonym to the guidance controller.
16 3 Definitions and Notation

Guided Flight: As guided flight, we denote flight phases during which the guidance loop
is closed (i.e., the guidance controller issues commands to the attitude and to the heave
controller).
Unguided Flight: Unguided flight denotes phases where the guidance loop is open.
Autonomous Flight: A phase of a flight under fully automatic control. All steering
commands are generated on board.
Regular flight: A flight condition that can be kept steady and during which the heli-
copter is in its usual attitude, with its main rotor above the fuselage, the main rotor
producing positive thrust.
Inverted flight: A flight condition that can be kept steady and during which, the he-
licopter is in an attitude, such that the main rotor is below its fuselage. In inverted
flight, the main rotor produces negative thrust.
Non-aerobatic Flight: All flight conditions that can be kept steady. This includes reg-
ular and inverted flight.
Aerobatic Flight: Aerobatic flight consists of flight conditions, which cannot be kept
steady, but have to be flown in a dynamically changing manner.
Aerobatic Maneuver: A sequence of motions which cannot be kept steady. It can only
be flown in a dynamic manner.
Tilt Angle: The angle between the normal of the horizontal plane and the helicopter’s
vertical axis, measured in the direction of flight. The tilt angle is required to accelerate
or decelerate the vehicle in horizontal direction and to compensate for aerodynamic
drag. The tilt angle is not necessarily equal to the helicopter’s pitch angle.
Bank Angle: The angle between the normal of the horizontal plane and the helicopter’s
vertical axis, measured perpendicular to the helicopter’s direction of flight. The bank
angle is used to change the direction of flight. The bank angle is not necessarily equal
to the helicopter’s roll angle.

3.2 Mathematical Definitions and Notation

In order to describe the movement of an aerospace vehicle, a multitude of coordinate


systems have to be used. The transformations of the coordinate systems vary with time.
Using the tensor modeling technique allows us a formulation of the equations of motion in
a form that is invariant under time-dependent coordinate transformations. For simulation
and implementation on the hardware, coordinate systems are selected and the tensor equa-
tions are converted into matrix relations. For all calculations the six-degrees-of-freedom
equations of motion for flat Earth are used.
3.2 Mathematical Definitions and Notation 17

The definitions and the notation introduced in this section are kept very close to the
nomenclature proposed by Zipfel [35].

3.2.1 Definitions

For the purpose of a consistent use of terms and to avoid ambiguities, a short definition
will be given for some of the terms used.
Points are mathematical models of a physical object whose spatial extension is irrelevant.
Frames are unbounded continuous sets of points over the Euclidean three-space whose
distances are time-invariant. Frames are modeled by their base triads consisting of three
orthonormal base vectors.
Tensors are mathematical expressions that describe points and frames and their interac-
tions in space and time. They exist independently of observers and coordinate systems,
and their physical content is invariant under coordinate transformations.
Coordinate systems are a purely mathematical concept, which is used to establish the
relationship between tensors and algebraic numbers. Coordinate systems are required
for measurement and numerical problem solving. A coordinate system is said to be
associated with a frame if the coordinates of the frame points are time-invariant.
Coordinates are ordered algebraic numbers, which describe a position with respect to a
specific coordinate system.

3.2.2 Font and Sub- and Superscript Conventions

The following conventions are used: Scalars (zero-order tensors) are printed in regular
fonts. Bold lower-case letters are used for vectors (first-order tensors) and bold upper-
case letters for second-order tensors and matrices. Subscripts are used for points and
superscripts for frames. If there are two super- or subscripts, they are always read from
left to right, joined by the phrase “with respect to” For instance, the displacement vector
of point A with respect to point B is the vector sAB ; the velocity vector of point B with
respect to frame E is represented by v E
B , and the angular velocity vector of frame B with
respect to frame E is annotated by ω BE .
A tensor, expressed in coordinates of a certain coordinate system, is set in brackets
and denoted by the superscript defining the coordinate system. For instance, the moment
inertia tensor of the body B referred to the point C expressed in the coordinate system
 A
]A is denoted as I BC .

3.2.3 Tensor Notation

Skew-symmetric Tensor: X is the skew-symmetric tensor of x. Expressed in the co-


ordinate system ]A , we write [X]A as the skew-symmetric form of [x]BE :
18 3 Definitions and Notation
   
xA 0 −xA xA
A
 1 A
 3 2

[x] =  xA  ⇔ [X] =  xA
 0 −xA  (3.1)
 2 3 1 
xA
3 −xA 2 xA
1 0

BE
Transposed vectors or matrices are denoted with a bar (e. g, sAB , [T ] ) wherever
the superscript “T ” would be confusing.

3.2.4 Special Marks

Some variables are provided with special marks in order to emphasize the origin of their
values.

Reference variables which are given by the reference trajectory are denoted by an
asterix (e. g. v E?
B ).
Reference variables for the inner control loop, with their value calculated as a function
of the value originating from the reference trajectory and a value computed by the
guidance algorithm, are denoted with the subscript ‘ref’ (e. g., wref ).
Estimated values are denoted with a hat (e. g., ŝBE is the estimated displacement vector
of point B with respect to point E).

3.3 Frames and Coordinate Systems

3.3.1 Reference Frames

A frame is defined to be an unbounded continuous set of points over the Euclidean three-
space with invariant distances which possesses, as a subset, at least three non-collinear
points [35].

Earth Frame

The Earth frame is connected to the Earth. The rotation of the Earth is neglected and the
Earth frame is regarded as an inertial frame. Since the particular location on the globe
is irrelevant, we define the frame’s base point E such that it is located at the position
where the navigation filter is initialized. The triad defining the frame consists of the base
vectors e1 , e2 , and e3 . The first base vector e1 points to the North, the second base vector
e2 points to the East, and the third base vector e3 points downwards.
3.3 Frames and Coordinate Systems 19

Body Frame

For the analysis of the helicopter’s movement through space and time, we assume the
helicopter to be a rigid body. We connect the body frame to the helicopter’s fuselage.
Its base point B is the helicopter’s center of mass. The base vector b1 is pointing to
the helicopter’s nose, the b2 vector to its right-hand side, and the b3 vector is pointing
downwards.

Trajectory Reference Frame

The reference trajectory used in autonomous flight is calculated and stored relative to the
trajectory reference frame. The location and the orientation of the trajectory reference
frame are defined by the location and the orientation of the helicopter at the instant the
mission is started and the autopilot is switched on. The frame’s base point R is defined by
the position of the helicopter when the mission is started. The direction of the base vector
r 1 is defined by the projection of the helicopter’s longitudinal axis onto the horizontal
plane at the instant the mission is started. The base vector r 3 points downwards and is
parallel to e3 . The base vector r 2 is embedded in the horizontal plane and completes the
right-hand triad.
Once the position and the orientation of the trajectory reference frame relative to the
Earth frame is defined, it remains constant throughout the mission. Thus, the trajectory
reference frame is an inertial frame.

3.3.2 Coordinate Systems

The Local-Level Coordinate System

We choose the local tangent plane as a geographic coordinate system. It is the so-called
local-level coordinate system. It maintains its fixed, level orientation at the point where the
navigation filter is initialized before starting a mission. The local-level coordinate system
]E embeds its 1E axis (which points to the North) and its 2E axis (which points to the
East) into the horizontal plane and points the 3E axis downward. This coordinate system
is also called the north-east-down (NED) coordinate system or the navigation coordinate
system. The coordinate systems axes 1E , 2E , and 3E are aligned with the Earth frame’s
base vectors e1 , e2 , and e3 . Thus, the coordinates of the base vectors are given by the
simple form:
     
1 0 0
E E E
     
[e1 ] = 
0 ,
 [e2 ] = 
1 ,
 [e3 ] = 
0 .

0 0 1
20 3 Definitions and Notation

The local-level coordinate system ]E is called the preferred coordinate system of the Earth
frame.

The Body Coordinate System

The body coordinate system used is aligned with the helicopter’s fuselage as follows: The
1B axis points through forward and is perpendicular to the main rotor shaft. The 3B axis
points downwards and is parallel to the main rotor shaft. The 2B axis is pointing to the
right side and completes the right-hand coordinate system. The body coordinate system
]B is the body frame’s preferred coordinate system (the axes 1B , 2B , and 3B are aligned
with the corresponding base vectors b1 , b2 , and b3 ).
In Figure 3.1, the local-level coordinate system ]E and the body coordinate system ]B
are depicted. The figure also shows the components of the helicopter’s rigid body motion.
The position of the helicopter is given by the displacement vector sBE . The helicopter’s
velocity relative to the Earth-fixed ]E coordinate system is given by the vector v E
B , while its
rotation relative to the Earth-fixed (inertial) frame is given by the vector ω BE . Expressed
in the body-fixed coordinates, the velocity vector and the rotational velocity vector have
the components
   
uB p
 E B    BE B  
v B =  vB 

 and ω = q

 , respectively. (3.2)
wB r

vB
2B q

B
1E, North sBE
E p
E
2 , East r
uB B
1
3E, Down 3B

wB

Fig. 3.1: The local-level (NED) coordinate system ]E , the body-fixed coordinate system ]B , and the components
of the helicopter’s six degrees of freedom.
3.3 Frames and Coordinate Systems 21

The Trajectory Reference Coordinate System

The trajectory reference coordinate system is the preferred coordinate system of the tra-
jectory reference frame. Its position and its orientation are defined by the location and
the orientation of the helicopter at the instant the autopilot is switched on and the mis-
sion is started. The direction of the reference coordinate system’s 1R axis is defined as
the projection of the helicopter’s forward pointing 1B axis onto the horizontal (1E , 2E )
plane. The 3R axis is pointing vertically down and the 2R axis completes the right-hand
coordinate system.
All the reference trajectories are designed and stored using the trajectory reference
coordinate system. Thus, the geographical position and the orientation of the reference
flight path relative to the local-level coordinate system is not defined until the mission is
started and the autopilot is switched on.
The location of the reference point R is given as

sRE = sBE (tInit ) ,

where tInit is the time when the mission is started. Since the position and the attitude
of the trajectory reference frame remains constant with respect to the Earth frame, the
translational velocity of an arbitrary point A relative to the trajectory reference frame is
identical to its velocity with respect to the Earth frame

vR E
A ≡ vA .

The Tracking Error Coordinate System

The tracking error coordinate system or position error coordinate system ]X relates the
vehicle’s position to the desired path and to the desired velocity vector of the helicopter
with respect to Earth. The base point X of the ]X coordinate system is the instantaneous
reference point on the reference flight path. Its attitude relative to the trajectory reference
coordinate system is given by the reference trajectory and depends on the instantaneous
maneuver. During flight at a velocity with a constant horizontal component of the refer-
ence velocity vector, the 1X axis is embedded in the horizontal plane and in the direction
of the projection of the reference velocity vector v E? E E
B onto the (1 , 2 ) plane. During ver-
tical flight, the 1X axis lies in the horizontal plane and its orientation relative to North
has to be defined explicitly. The 3X axis points in the opposite direction of the nominally
required acceleration at the particular point of the trajectory (i. e. it points straight down
in hover and in unaccelerated straight and horizontal flight and it is tilted by the tilt
angle αXE during acceleration and by the bank angle γ XE in curved flight). The 2X axis
completes the right-hand triad.
22 3 Definitions and Notation

The velocity v E
X of the base point X relative to the Earth-fixed reference frame ex-
pressed in the ]X coordinate system is given by
 
uX
 E X  R X  
vX = vX =   vX
.
 (3.3)
wX

The Attitude Error Coordinate System

The attitude error coordinate system ]Y is positioned at the point of origin of the helicopter.
Its attitude is calculated by the guidance computer and represents the reference attitude
required to return to the reference trajectory.

3.3.3 Coordinate Transformation Matrices

Coordinate systems are related by coordinate transformation matrices that relabel the
coordinates of a tensor. Let x be a vector in three-space and ]A and ]B two coordinate
systems. The coordinates of the vector x expressed in the coordinate systems ]A and ]B
are
   
xA
1 xB
1
A B
   
[x] = xA

2
 and [x] = xB

2
 , respectively.
xA
3 xB
3

The transformation matrix [T ]BA establishes the ]B coordinates of a tensor with respect
to the ]A coordinates:

[x]B = [T ]BA [x]A

for first-order tensors, and


BA
[X]B = [T ]BA [X]A [T ]

for second-order tensors. Notice that the transformation matrix is not a tensor.

3.3.4 Definition of Track, Heading, and Sideslip

Figure 3.2 shows the situation of horizontal flight along the reference flight path. The
angles among the coordinate systems are plotted in their positive sense.
3.3 Frames and Coordinate Systems 23

1E, North
Ψ 1B

β BX
χ
vE
B
1X

ath
tp
gh
fli
2B

2X

Fig. 3.2: Definition of the track angle χ, the heading angle Ψ and the sideslip angle β BX .

The track angle χ is defined as the angle between North (1E ) and the direction 1X of
the flight path. The value of the track angle χ lies within the interval

χ ∈ (−π , π] ,

where values greater than zero describe easterly directions and values smaller than zero
stand for westerly directions.
The heading angle (yaw angle) Ψ is defined as the angle between North and the 1B
direction, in which the helicopter’s nose points. The value of the heading angle Ψ lies
within the interval

Ψ ∈ (−π , π] .

Values greater than zero describe headings where the nose of the vehicle points in an
easterly direction, while values smaller than zero stand for headings, where the nose
points in a westerly direction.
The sideslip angle β BX is defined as the angle between the body frame ]B and the
tracking error coordinate system ]X . The value of the sideslip angle β BX lies within the
interval

β BX ∈ (−π , π] ,

where values greater than zero describe a sideslip to the right and values smaller than
zero describe a sideslip to the left.
4

Dynamic Model of a Small-Scale Helicopter

A helicopter is a collection of vibrations held together by differential


equations.
anonymous

In order to develop the flight control systems for an autonomous small-size helicopter and
for simulation, a dynamic model that is accurate for an extended portion of the flight
envelope is needed. A dynamic model is needed for controller design on one hand and for
simulations on the other hand. In this chapter, the dynamic models used for simulation
and for controller design are presented. The modeling process was strongly influenced
by the parameter identification process described in Chapter 5. The goal was to find a
dynamic model that is as simple as possible, while describing the dynamics of the AkroHeli
well enough for controller design and simulation.

4.1 Introduction

A number of models exist for full-scale helicopters [6, 21, 22]. However, those models are
very complex, require a lot of computational power for simulation, and large numbers
of parameters to be identified. Some of the parameters require an extensive and time-
consuming identification process. A big effort is taken to describe the rotor blades’ move-
ments, the airflow around them and the resulting aerodynamic forces. Furthermore, full-
size helicopters usually feature a relatively large fuselage capable of carrying passengers
and internal loads. Also, the horizontal stabilizer and the tail fin of a full-size helicopter
usually produce considerable aerodynamic forces and moments due to their profiled shape.
Models for full-scale helicopters describe the contributions of the fuselage, the horizontal
stabilizer, and of the tail fin to the resulting forces and moments separately from the main
rotor’s and the tail rotor’s influences. This allows separate designs and analyses of the
various parts. The models developed for full-scale helicopters have not been validated for
26 4 Dynamic Model of a Small-Scale Helicopter

aerobatic flight and most likely would not be sufficiently accurate if applied to the higher
maneuverability of a small-scale helicopter.
Small-scale aerobatic helicopters are of a completely different nature. Their fuselage
usually is designed as small as possible, just large enough to house the engine and the
electronic equipment needed for flight. The horizontal stabilizer and the tail fin are not
profiled, but are constructed as simple carbon fiber panels. The main purpose of the tail fin
is to protect the tail rotor during take-off, and the combination of the horizontal stabilizer
and the tail fin only provide some minor stabilizing moments in forward flight due to
their aerodynamic drag. Compared to their full-size counterparts, small-scale helicopters
feature a much larger thrust-to-mass ratio and can produce much larger moment-to-
moment-of-inertia ratios due to their much stiffer rotor systems. The higher these ratios,
the smaller the influence of aerodynamic forces and moments produced by the fuselage,
the tail boom, and the aerodynamic stabilizers compared with the forces and moments
produced by the main rotor and the tail rotor. For these reasons, the dynamics of a small-
scale helicopter exhibit completely different characteristics than those of manned vehicles.
Thus, the characteristics of highly agile small-scale helicopters demand dynamic models
accounting for their high power density.
In recent years, interesting work on modeling aerobatic flight with small-scale heli-
copters has been published [9, 17, 18]. These models describe the moments and forces
caused by the various subsystems, separately. The moments and forces produced by the
subsystems are then added up to the yield the dynamics of the helicopter. The models
have proven good performance throughout an extended portion of the flight envelope.
With increasing stiffness of the mechanical system, increasing power available, and
decreasing take-off mass, the dynamics of a miniature helicopter can be modeled using
even simpler approaches, which are documented in this thesis. The helicopter’s dynamics
are described as an underactuated rigid body motion with the usual six degrees of freedom.
The four axes of actuation are the three rotational and the translational degree of freedom
in the helicopter’s vertical direction.
In a first step, the helicopter’s dynamics are described as rigid body dynamics with the
usual six degrees of freedom (three rotational degrees of freedom and three translational
degrees of freedom). In a second step, the helicopter is regarded as an assembly of four
independent actuator systems—the rotational roll, pitch, and yaw dynamics about the
axes of the body-fixed coordinate system ]B and the translational heave dynamics in the
helicopter’s vertical direction 3B .
4.2 Kinematics and Rigid Body Dynamics 27

4.2 Kinematics and Rigid Body Dynamics

4.2.1 Velocities and Accelerations

Rotation Tensor

The orientation of a frame A is modeled by its base triad consisting of the three orthonor-
mal base vectors a1 , a2 , and a3 . The orientation of a frame B with the base vectors b1 , b2 ,
and b3 with respect to frame A is established by the rotation tensor RBA , which maps
the ai base vectors into the bi base vectors:

bi = RBA ai , i = 1, 2, 3. (4.1)

Be the coordinate system ]A the preferred coordinate system of frame A and the co-
ordinate system ]B the preferred coordinate system of frame B. Then, the following rela-
tionships hold:
 BA A  BA B BA
R = R = [T ] = [T ]AB . (4.2)

Rotational Time Derivative

In [35], Zipfel introduces the rotational time derivative as a linear time operator, whose
operation on tensors preserves their tensor property. The derivation of the rotational time
derivative is given below. For more detail, the reader is referred to [35].
The time derivative of a vector s transformed from ]A to ]B coordinate system usually
is given as:

ds ds
= + ω × s, (4.3)
dt A dt B

where ω is the angular velocity between ]B and ]A . The right side of (4.3) has an addi-
tional term, and thus the time derivative destroys the tensor property of the derivative of
thevector s.
Rewriting (4.3) using Zipfel’s nomenclature, the vector s transforms like a fist-order
tensor:

[s]A = [T ]AB [s]B .

Applying the chain rule, the time derivative can be written as


 A  B  AB
ds AB ds dT
= [T ] + [s]B
dt dt dt
 B  AB !
ds AB dT
= [T ]AB + [T ] [s]B .
dt dt
28 4 Dynamic Model of a Small-Scale Helicopter

Exchanging the sequence of transformation in the last term by transposition yields


 A  B  AB !
ds ds dT
= [T ]AB + [T ]BA [s]B . (4.4)
dt dt dt

From (4.4), it is clear that the time derivative of s does not transform like a first-order
tensor. Zipfel [35] defines the terms in parentheses as the operator defined below.

Definition: The rotational time derivative of a first-order tensor x with respect to any
frame A, D x, and expressed in any allowable coordinate system ]B is defined by
A

 B  BA
 A B dx BA dT
D x ≡ + [T ] [x]B . (4.5)
dt dt

Applying the rotational time derivative to the left side of (4.4) yields to
 A  AA  A
 A A ds AA dT A ds
D s = + [T ] [s] = , (4.6)
dt dt dt

with the time derivative of the unit matrix being zero. Therefore, (4.4) can be written as
 A A B
D s = [T ]AB DA s .

(4.7)

Although the ]B coordinate system is arbitrary, the ]A system is unique by its association
with frame A. Consider an arbitrary allowable coordinate system ]C to replace ]A on the
left side of (4.4):
 C  CA  B  AB !
ds dT ds dT
+ [T ]CA [s]C = [T ]CB + [T ]BA [s]B .
dt dt dt dt

By definition of the rotational derivative, we obtain the true tensor transformation


 A C B
D s = [T ]CB DA s .


Therefore, the rotational derivative of a vector transforms like a tensor, and DA s is a


tensor.

Definition: The rotational time derivative of a second-order tensor X with respect to


any frame A, DA X, and expressed in any allowable coordinate system ]B , is defined as
 B  BA  BA
 A B dX BA dT B B dT BA
D X ≡ + [T ] [X] + [X] [T ] . (4.8)
dt dt dt
4.2 Kinematics and Rigid Body Dynamics 29

The rotational derivative of tensors transforms like a second-order tensor. Therefore,


if X is a second-order tensor, so is DA X. The rotational time derivative preserves the
tensor characteristics, and therefore is well suited for the formulation of Newton’s and
Euler’s laws as invariants under time-dependent coordinate transformations.

Linear Velocity and Acceleration

Given are an arbitrary point A of frame A and any point B. The linear velocity v A
B of point
B with respect to frame A is defined as the rotational time derivative of the displacement
vector sBA

vA A
B = D sBA . (4.9)

Note that any point A of frame A can serve as reference point.


The linear acceleration aA
B of a point B with respect to the reference frame A is defined
es the derivative of the velocity vector v A
B or as the second rotational derivative of the
displacement vector sBA

aA A A A A
B = D v B = D D sBA . (4.10)

Since this type of acceleration is relative to reference frame A, it is also called the relative
acceleration to distinguish it from the differential acceleration

aR R R
BA = aB − aA , (4.11)

which is the difference of two relative accelerations.

Angular Velocity

The angular velocity is derived from the rotation tensor by the rotational time derivative.
First we define the angular velocity tensor of frame B with respect to frame A as

Ω BA ≡ DA RBA RBA . (4.12)

The angular velocity tensor possesses a vector equivalent ω BA . Introducing the rotation
rates expressed in body coordinate system ]B defined in (3.2), we have the angular velocity
of the vehicle with respect to Earth
   
0 −r q p
 BE B    BE B  
Ω =  ⇔ ω =
r 0 −p q  . (4.13)

 
−q p 0 r
30 4 Dynamic Model of a Small-Scale Helicopter

Euler Transformation

The rotational time derivative is formulated depending on a reference frame. To change


the reference frame, the Euler transformation comes in quite handy. The theorem is given
without proof. For further details refer to [35].
Theorem: Let A and B be two arbitrary frames related by the angular velocity tensor
Ω BA . Then, for any vector x the following transformation of the rotational time derivatives
holds:

DA x = DB x + Ω BA x . (4.14)

4.2.2 Translational Dynamics of Rigid Bodies

The helicopter is regarded as a rigid body. In this section, the translational reactions of the
helicopter to external forces is diskussed. According to the above mentioned assumption
of the Earth being an inertial frame, all laws are postulated with respect to Earth.

Principle of Linear Momentum

The translational dynamics of rigid bodies are based on the principle of linear momentum.
The linear momentum pE
B of a rigid body B with respect to the Earth-fixed reference frame
E is defined as

pE E E
B = mD sBE = mv B . (4.15)

Newton’s Second Law

The translational dynamics of a rigid body is given by Newton’s second law, or simply
Newton’s law, which postulates that the total force f B acting on a body B equals the
inertial time rate of change of its linear momentum,

D E pE
B = fB . (4.16)

Introducing the aerodynamic force f a ,the propulsive force f p ,and the gravitational force
mg, (4.15) can be rewritten as the translational equation

mDE v E
B = f a + f p + mg . (4.17)

However, the aerodynamic and propulsive forces usually are given in body coordinates
]B and the gravitational acceleration in local-level coordinates ]E . With respect to the
4.2 Kinematics and Rigid Body Dynamics 31

Earth-fixed inertial frame and using the transformation matrix [T ]BE , we can formulate
the differential equations used for implementation
 E E
dv B BE  B
m = [T ] f a + f p + m [g]E . (4.18)
dt
The vehicle’s trajectory can be calculated by another integration. The displacement
vector sBE of the body’s center of mass relative to the reference point E is given by

DE sBE = v E
B. (4.19)

In Earth-fixed (inertial) coordinates we write


 E
dsBE  E
= vE B . (4.20)
dt
Transforming (4.17) according to the Euler transformation given by (4.14) to the body
frame, we receive
BE E
mDB v E
B + mΩ v B = f a,p + mg (4.21)

and, formulated in body coordinates ]B , the differential equations used for implementation
 E B
dv B B  E B 1  B
= − Ω BE f a + f p + [T ]BE [g]E .

vB + (4.22)
dt m
We assume the propulsive force (i.e., the main rotor thrust) to act in the 3B direction and
by definition, the gravitational acceleration acts in the 3E direction. Thus, the vectors f a ,
f p , and g, expressed in the corresponding coordinate systems are given by
     
fa,1 0 0
B
   B   E
 
[f a ] = fa,2  ,
  fp =  0 
  , and [g] = 0

 , respectively.
fa,3 −Tmr g
The transformation matrix
 
t11 t12 t13
BE
 
[T ] =   t21 t22 t23 
 (4.23)
t31 t32 t33
is a function of the helicopter’s attitude and will be discussed in Section 4.3.3. The differ-
ential matrix equation (4.22) can be formulated as scalar equations in the corresponding
directions,
1
u̇B = rvB − qwB + fa,1 + t13 g ,
m
1
v̇B = pwB − ruB + fa,2 + t23 g , (4.24)
m
1
ẇB = quB − pvB + (fa,3 − Tmr ) + t33 g ,
m
32 4 Dynamic Model of a Small-Scale Helicopter

where uB , vB , and wB are the velocities in the directions of the body-fixed coordinate
axes 1B , 2B , and 3B , respectively. The final integration completes the set of differential
equations needed for translational trajectories
 E
dsBE BE  E B
= [T ] vB . (4.25)
dt

4.3 Representing Attitudes and Rotations with Quaternions

For the representation of attitudes and rotations, quaternion algebra introduced by Hamil-
ton are used. The attitude of a coordinate system with respect to any other coordinate
system can be represented by a unit quaternion q of the form

q = q 0 + q1 i + q2 j + q3 k (4.26)

where the products of the imaginary parts i, j, and k satisfy

i2 = j 2 = k 2 = ijk = −1, (4.27)


ij = −ji = k, jk = −kj = i, ki = −ik = j, (4.28)

and qi satisfy the constraint

q02 + q12 + q22 + q32 = 1 . (4.29)

In this section, some properties of quaternions used in this thesis are presented without
proof. More details about quaternion algebra can be found in [16, 24, 30].

4.3.1 Rotation Quaternion

The unit quaternion q represents a rotation by the angle ζ about the rotation axis n,
       
ζ ζ ζ ζ
q = cos + n1 · sin i + n2 · sin j + n3 · sin k
2 2 2 2
    (4.30)
ζ ζ
= cos + n · sin
2 2

or written as four-dimensional vector of the coefficients


   
q0 cos (ζ/2)
   
q1  n1 · sin (ζ/2)
q= q  = n · sin (ζ/2) .
   (4.31)
 2  2 
q3 n3 · sin (ζ/2)
4.3 Representing Attitudes and Rotations with Quaternions 33

We assure the quaternion’s uniqueness by restricting ζ (and therefore q0 ) to the interval

−π < ζ ≤ π ⇔ 0 ≤ q0 ≤ 1 . (4.32)

By so doing, we ensure the quaternion q to represent the shortest rotation between the
attitudes in question. The rotation quaternion q BE denotes the rotation required to reach
the orientation of frame B starting from the orientation of frame E. The initialization of
the attitude quaternion with Euler angles is given by Eq. (A.2) in Appendix A.

Quaternion Multiplication

The multiplication of two unit quaternions results in another unit quaternion. Let p and
q be two arbitrary unit quaternions. The components of the product pq can be calculated
using the matrix equation
    
r0 p0 −p1 −p2 −p3 q0
    
r1  p1 p0 −p3 p2  q1 
r = pq = 
r  = p p p −p  q  .
   
 2  2 3 0 1  2

r3 p3 −p2 p1 p0 q3
The quaternion multiplication is associative, but not commutative

(pq) r = p (qr)
pq 6= qp .

Complex Conjugate of a Unit Quaternion

The complex conjugate q ∗ of an arbitrary unit quaternion q is defined as


 
q0
 

−q1 
q =  . (4.33)
−q
 2

−q3
Using the definition given in (4.31), it is obvious that the complex conjugate q ∗ represents
the opposite rotation of the quaternion q and the product of the two results in the neutral
unit quaternion
 
1
 
0
qq ∗ = 
0 = 1 + 0i + 0j + 0k ,
 (4.34)
 
0
and thus, the complex conjugate of a unit quaternion is equal to its inverse

q ∗ = q −1 . (4.35)
34 4 Dynamic Model of a Small-Scale Helicopter

Composition of Successive Rotations

The composition of successive rotations represented by unit quaternions can be achieved


by multiplication of the quaternions. The product

q a = rqp (4.36)

describes the successive compositions of three rotations (p representing the first rotation,
q the second rotation, and r the third rotation). In this reverse order composition, each
successive rotation is relative to the initial reference frame.
Composing a rotation in the forward order

q b = pqr (4.37)

has the effect of performing each successive rotation relative to its current reference frame
[30].

4.3.2 The Time Derivative of a Unit Quaternion

The time derivative of the attitude quaternion can be calculated as follows


    
q̇0 0 −p −q −r q0
    
 q̇1  1  p
 =  0 r −q   q1  ,
 
 q̇  2  q (4.38)
 2  −r 0 p  q2 
 

q̇3 r q −p 0 q3

where p, q, and r represent the components of the angular velocities vector [ω BE ]B given
in (3.2). Details about the derivation of (4.38) can be found in [35]. The advantage of
those differential equations is that they are linear and they have no singularities.

4.3.3 Rotation Tensor and Transformation Matrix

The rotation tensor R defined in (4.1) can be expressed by the rotation quaternion. Given
the rotation quaternion q in any allowable coordinate system, the rotational tensor [R] in
the same coordinate system is [35]
 
q 2 + q12 − q22 − q32 2 (q1 q2 − q0 q3 ) 2 (q1 q3 + q0 q2 )
 0 
[R] = 
 2 (q1 q2 + q0 q3 ) q02 − q12 + q22 − q32 2 (q2 q3 − q0 q1 ) . (4.39)
2 (q1 q3 − q0 q2 ) 2 (q2 q3 + q0 q1 ) q02 − q12 − q22 + q32

If the attitude of the helicopter with respect to the Earth frame is given by the unit
quaternion q then the transformation matrix [T ]BE is given by
4.4 Attitude Dynamics of Rigid Bodies 35
E
[T ]BE = RBE

 
q 2 + q12 − q22 − q32 2 (q1 q2 + q0 q3 ) 2 (q1 q3 − q0 q2 ) (4.40)
 0 
=
 2 (q1 q2 − q0 q3 ) q02 − q12 + q22 − q32 2 (q2 q3 + q0 q1 ) .
2 (q1 q3 + q0 q2 ) 2 (q2 q3 − q0 q1 ) q02 − q12 − q22 + q32

4.3.4 Interpolation Between Two Quaternions

The unit quaternion representing an attitude can be interpreted as a point on a three-


dimensional sphere. The shortest rotation from a quaternion q a to another quaternion q b
therefore can be interpreted as an arc on a great circle on this sphere. Interpolating on
this arc leads to a smooth rotation with constant angular rate at the shortest rotation
from q a to q b .
In computer graphics, Slerp is shorthand for spherical linear interpolation, introduced
by Shoemake [27] in the context of quaternion interpolation for the purpose of animating
3D rotation. The algorithm requires the ends of the rotation and an interpolating param-
eter s between 0 and 1. The resulting interpolation leads to a constant speed rotation
along a unit radius great circle arc:

sin (1 − s) θ sin s θ
Slerp(q a , q b , s) = qa + q , (4.41)
sin θ sin θ b
where

θ = arccos (q a · q b ) . (4.42)

This algorithm will be used for on-board reconstruction of the attitudes given by the
reference trajectory.

4.4 Attitude Dynamics of Rigid Bodies

4.4.1 Angular Momentum of Rigid Bodies

The angular momentum lBR


B of a rigid body B with respect to any reference frame R and
referred to its own center of mass is defined as

lBR B BR
B = IBω , (4.43)

where I B
B is the moment-of-inertia tensor of the body B with respect to its center of mass.
36 4 Dynamic Model of a Small-Scale Helicopter

4.4.2 Euler’s Law for Rigid bodies

Euler’s law for rigid bodies states that the inertial time rate of change of the angular
momentum lBE
B of a rigid body with reference to an inertial frame referred to its center
of mass equals the externally applied moment mB with the center of mass as reference
point

DE lBE E
IB BE

B = D Bω = mB . (4.44)

The externally applied moments are known in the body frame. Therefore, for applica-
tion we transfer the rotational time derivative to the body frame B

DB I B BE
+ Ω BE I B BE

Bω Bω = mB . (4.45)

Using the fact that the moment of inertia of a rigid body formulated in body coordinates
B
remains unchanged in time ( dI B

B /dt = [0]) and formulating (4.45) in body coordinates
]B we obtain the differential equations

 B B dω BE B  BE B  B B  BE B
 
IB + Ω IB ω = [mB ]B . (4.46)
dt

Due to the symmetries of a helicopter’s body, its moments of inertia tensor I B


B expressed
in body coordinates is given by
 
I11 0 I13
 B B  
IB =   0 I22 0 .
 (4.47)
I13 0 I33

The rigid body dynamics used for simulation are given by (4.22) and (4.25) describing
the translational degrees of freedom and (4.38) and (4.46) describing the rotational degrees
of freedom.

4.5 Modeling the Main Rotor

Obviously, the main rotor and the tail rotor are the helicopter’s main sources of forces
and moments. In the case of a very agile small-scale helicopter this fact is even more
pronounced than for full-size vehicles. For modeling the helicopter’s dynamics some un-
derstanding of the main rotor is required. Note that all the assumptions made in this
section hold for both regular and inverted flight.
4.5 Modeling the Main Rotor 37

4.5.1 General Description

The main rotor assembly of the AkroHeli features a rather rigid hingeless two-blade
rotor head, equipped with a Bell-Hiller stabilizer bar. The hingeless main rotor provides
fast responses to cyclic and collective inputs. The Bell-Hiller stabilizer bar dampens any
disturbances acting on the main rotor disk. It also provides an additional control force
for the cyclic change of the blade pitch angle and thus augments the servo torque with
aerodynamic moments. The stabilizer bar is constructed as a teetering rotor, with zero
collective pitch angle. It thus cannot produce any moments or forces acting on the fuselage.
Collective and cyclic control signals are transferred to the main rotor blades and the
stabilizer bar via the swashplate. A translational movement of the swashplate directly
changes the collective pitch angle of the main rotor blades, while a tilt of the swashplate
induces a change of the cyclic pitch angle of the stabilizer bar, which causes a flapping
motion of the stabilizer bar. The flapping motion of the stabilizer bar causes a cyclic change
of the pitch angles of the main rotor blades. The main rotor assembly rotates clockwise,
when viewed from above. The main rotor blades and the paddles of the stabilizer bar have
symmetrical profiles and no twist.
In order to describe the motion of the main rotor blades, we need to define the position
of a blade and its pitch angle relative to the helicopter’s body. The position of the blades
is defined by its azimuth angle ψ shown in Figure 4.1 with respect to its rear position,
ψ being positive in the direction of rotation. Figure 4.2 shows the blade pitch angle θ(ψ)
which is defined as the angle between the blade chord line and the plane perpendicular
to the helicopter’s main rotor shaft.

2B

1B θ

chor
ψ d line

Fig. 4.1: Definition of the azimuth angle ψ of the Fig. 4.2: Definition of the pitch angle θ of the
main rotor blade and the stabilizer bar. rotor blade.

4.5.2 The Main Rotor Inflow and Thrust

The main rotor of a helicopter produces thrust by driving air downwards through the
rotor plane. The direction of the thrust vector varies slightly as a function of the cyclic
38 4 Dynamic Model of a Small-Scale Helicopter

pitch angles. Since the main rotor system of the AkroHeli is very rigid and the thrust
components in the helicopter’s horizontal directions are small compared with the vertical
component of the thrust vector and compared with the moments produced by the rotor,
the horizontal thrust components are neglected. In a first step, we assume the induced
velocity of the airflow through the main rotor as constant over the main rotor disk and
model the main rotor as an actuator disk, across which there is a abrupt increase of
pressure. In hover and vertical flight, the air passing through the disk can be thought of
as a clearly defined streamtube above and below the disk. Outside the streamtube the air
is assumed to be undisturbed.
We first calculate the velocity of the inflow using the momentum theory. Later, we will
calculate the thrust using the blade element theory. The results obtained with the two
theories are then combined to improve the estimates for the inflow.

Calculating the Inflow Using the Momentum Theory

Figure 4.3 shows the pressure and the velocity of the air along the flow through the
rotor disk. Energy conservation laws, in the form of Bernoulli’s equation, can be applied
separately to the flows above and below the disk. Using the assumption of incompressible
flow with an air density ρ, we have for the inflow
1
p∞ = pi + ρvi 2 , (4.48)
2
where p∞ represents the static pressure in the still air outside of the downwash of the
main rotor, pi is the pressure in the inflow just above the main rotor disk, and vi is the
induced velocity through the rotor disk.

p∞ , v0= 0

pi , v i
pi + ∆p, vi

p∞ , v ∞ p∞ , v0= 0

Fig. 4.3: Pressure and velocity along the airflow according to the actuator disk theory.
4.5 Modeling the Main Rotor 39

In the outflow (downwash) we have


1 1 2
pi + ∆p + ρvi 2 = p∞ + ρv∞ , (4.49)
2 2
where ∆p is the increase in pressure caused by the energy added by the main rotor and
v∞ is the velocity of the freestream far below the rotor disk. The increase in pressure can
be calculated by substituting the environmental pressure p∞ in (4.49) by the right-hand
side of (4.48). Thus, the increase in pressure is given by
1 2
∆p = ρv∞ . (4.50)
2
By momentum conservation, the thrust Tmr on the disk is equal to the overall rate of
increase of axial momentum of the air:

Tmr = ρAmr vi v∞ , (4.51)

where Amr is the area of the main rotor disk. Since the difference in pressure ∆p can be
interpreted as thrust per area, we write
Tmr
∆p = = ρvi v∞ . (4.52)
Amr
The expressions in (4.50) and (4.52) lead to the following results:

v∞ = 2vi (4.53)
Tmr = 2ρAmr vi 2 . (4.54)

In hovering flight, the thrust T is equal to the helicopter’s weight mg. Thus, the induced
velocity in hovering flight vih is given by
r
mg
vih = . (4.55)
2ρAmr

Blade Element Theory

For the calculation of the main rotor thrust during flight phases with a non-vanishing
horizontal velocity component, we use the blade element theory with the simplifying
assumptions proposed by Cooke & Fitzpatrick [5]. Figure 4.4 shows a blade element of
width δr exposed to airflow, with the lift δL acting normal to the resultant velocity Vb
and the drag δD in the direction of Vb .
Assuming small angles and a high lift-to-drag ratio, the vertical thrust component δT
of a ring segment δr of the rotor disk is given by

δT = Nb (δL cos φ − δD sin φ) ≈ Nb δL . (4.56)


40 4 Dynamic Model of a Small-Scale Helicopter

δL cos φ

δL
δDcos φ
α
δD
vi − w B

V
φ cho
θ rd line
Ωmr r

Fig. 4.4: Components of rotor blade incidence

The elemental lift δL at position r is calculated as


1
δL = ρVb 2 (r)ca0 α(r)δr , (4.57)
2
where c is the blade chord, a0 is the lift curve slope, and α is the angle of attack. The
incidence of the airflow to the chordline α is the difference between the applied blade pitch
angle θ and the induced inflow angle φ (see Figure 4.4). Using small angle approximations,
the angle of attack is given by
 
vi − wB vi − w B
α(r) = θ − φ(r) = θ − arctan ≈θ− ,
Ωmr r vB (t)r
and the elemental lift of (4.57) can be calculated as
  
1 2 vi − wB
δL = ρca0 Vb (r) θ − δr . (4.58)
2 vB (t)r
In hover, the resultant velocity is approximated to Vb = Ωmr r and thus, the total thrust
Tmr can be calculated by integrating over Nb blades
Z Rmr
1
Tmr = ρca0 Nb (Ωmr r (Ωmr rθ − (vi − wB ))) dr
2 0
 
1 2 Ωmr Rmr θ vi − wB
= ρca0 Nb Ωmr Rmr − . (4.59)
2 3 2

Improved Estimates for Inflow at Hover

The integration given in (4.59) can only be solved, if the inflow velocity vi is known.
So far, it has been assumed that the induced velocity is constant across the disk. The
authors of Cooke & Fitzpatrick [5] propose to combine the momentum and blade element
theories at hover in order to achieve an improved estimate of the inflow. In hover flight,
the following equation holds:
4.5 Modeling the Main Rotor 41

1
δT = ρca0 Nb Ωmr r (Ωmr rθ − vi ) δr = 2ρvi 2 2πrδr , (4.60)
2
and therefore
1 1
4πvi 2 + ca0 Nb Ωmr vi − ca0 Nb Ωmr
2
rθ = 0 . (4.61)
2 2
Defining the rotor solidity s as the ratio of the total blade area to the disk area
Nb Rmr c Nb c
s= 2
= , (4.62)
Rmr π Rmr π

the positive solution of (4.61) can be expressed as a relation of the induced velocity at
hover at radius r to the tip speed VT = Ωmr Rmr :
r
vih (r) a0 s a0 s 2  a0 s  r
=− + + θ. (4.63)
VT 16 16 8 Rmr
Figure 4.5 shows the variation of induced velocity for a hovering rotor calculated using
(4.63).

0.04
Non-Dimensional Induced Velocity

0.035
0.03
0.025
(vi /VT ) [–]

0.02
0.015
0.01
0.005
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Non-Dimensional Rotor Radius (r/Rmr ) [–]

Fig. 4.5: Variation of the inflow with rotor radius.

Elliptically Loaded Wing Analogy in Horizontal Flight

The momentum theory discussed above is inaccurate for horizontal flight at low speed.
In [12], Glauert proposed that if the forward speed is large compared with the induced
velocity, a modified actuator disk approach can be applied successfully. Glauert suggested
to assume the rotor to act like an elliptically loaded wing for fast forward flight at velocity
V (see Figure 4.6).
The mean induced velocity vi can then be expressed by the formula:
Tmr
vi = , (4.64)
2ρAmr V 0
42 4 Dynamic Model of a Small-Scale Helicopter

V
vi
V

V
v∞ = 2vi
V

Fig. 4.6: Interpretation of Glauert formula for momentum theory in forward flight.

where V 0 is the oblique flow


p
V 0 = V 2 + vi 2 (4.65)

across the disk. The induced velocity in hover vih at the same thrust is given by (4.55).
Combining the induced velocity in hover with the induced velocity vi proposed by Glauert
[12] leads to
 2  
2 Tmr 1
vi =
2ρAmr V 2 + vi 2
vih 4
= 2 , (4.66)
V + vi 2
hence the following equation for vi in forward flight holds:
 4  2  2
vi V vi
+ − 1 = 0. (4.67)
vih vih vih

We introduce the induced velocity ratio ṽi and the forward velocity ratio Ve as follows:
vi V
ṽi = , Ve = . (4.68)
vih vih
The solution of (4.67) can thus be expressed as
v s
u
u e2
t V Ve 4
ṽi = − + +1 . (4.69)
2 4
Figure 4.7 shows the variation of the induced velocity ratio ṽi as a function of the velocity
ratio Ve . Notice that for hover, the induced velocity ratio is equal to one and thus the
inflow corresponds to the result obtained in (4.55).
Although no proof for the modified actuator disk approach exists, both experiments
and more detailed analyses [6] confirm that the Glauert proposal works well. For more
detail, the reader is referred to [5, 6, 25].
4.5 Modeling the Main Rotor 43

1
0.9
0.8

Induced Velocity Ratio


0.7

(ṽi = vi /vih ) [–]


0.6
0.5
0.4
0.3
0.2
0.1


0
0 1 2 3 4 5 6 7 8 9 10
Velocity Ratio (V = V /vih ) [–]

Fig. 4.7: Variation of induced velocity ratio with horizontal velocity ratio.

For calculations, the variation of the inflow with velocity given by (4.69) is combined
with the distribution of the inflow along the blade radius using (4.63). This leads to the
inflow as a function of the radius r and the vehicle’s velocity. The thrust then can be
calculated using (4.59) of the blade element theory.

4.5.3 The Flapping Motion of the Main Rotor Blades

The cyclic control commands δlon and δlat in the longitudinal and in the lateral direction
tilt the swashplate into the corresponding direction, which affects the cyclic pitch angle of
the stabilizer bar. Tilting the swashplate produces a one-per revolution sinusoidal variation
in blade pitch and results in a flapping motion of the stabilizer bar that can be described
as a function of the azimuth angle ψ

βSB (ψ) = βSB1c cos (ψ) + βSB1s sin (ψ) + βSB2c cos (2ψ) + βSB2s sin (2ψ) + . . . . (4.70)

According to Chen [3], only the first harmonics are relevant and thus, the motion of the
stabilizer bar can be regarded as rotating in the plane given by

βSB (ψ) = βSB1c cos (ψ) + βSB1s sin (ψ) , (4.71)

where the flapping angles βSB1c and βSB1s depend on the longitudinal input signal δlon
and the lateral input signal δlat . The stabilizer bar’s flapping motion directly influences
the cyclic pitch angles θ1c and θ1s of the main rotor blades. The control signal for the
collective pitch angle δcol moves the swash plate in vertical direction. This influences the
collective pitch angle θ0 of the main rotor blades. The total pitch angles of a main rotor
blade as a function of its azimuth angle is given as

θ (ψ) = θ0 + θ1c cos (ψ) + θ1s sin (ψ) . (4.72)


44 4 Dynamic Model of a Small-Scale Helicopter

The pitch angle θ(ψ) causes a flapping motion of the main rotor blades of the form

β (ψ) = β0 + β1c cos (ψ) + β1s sin (ψ) , (4.73)

where β0 is the so-called coning angle, β1c is the longitudinal flapping angle, and β1s is
the lateral flapping angle. Figure 4.8 and Figure 4.9 show the definition of the flapping
angles.

β1s
β0 β1c

view from front

Fig. 4.8: Definition of coning angle β0 and the lateral Fig. 4.9: Definition of the longitudinal flapping angle
flapping angle β1s . β1c .

Due to the definition of the two flapping angles, a positive lateral flapping angle β1s
causes a positive roll rate, while a positive longitudinal flapping angle β1c causes a negative
pitch rate.
The main effects on the dynamics of the flapping angles are the cyclic pitch angles θ1c
and θ1s , the linear restoring forces, and the helicopter’s angular rates about the corre-
sponding axes. The main rotor flapping dynamics are given as

β̇1s = −p − Aβ1s β1s + Aθ1c θ1c ,


(4.74)
β̇1c = q − Bβ1c β1c − Bθ1s θ1s .

We assume the stabilizer bar dynamics to be much faster than the main rotor blade
dynamics. Rather than using a model which distinguishes between the dynamics of the
stabilizer bar and the flapping dynamics of the main rotor blades, we regard the combina-
tion of the two as a whole. This leads to two first-order differential equations describing
the flapping motion of the main rotor blades. For small-scale helicopters, the approach of
first-order flapping equations usually yields good results [17]. The flapping dynamics is
modeled with the following first-order differential equations:

β̇1s = −p − Aβ1s β1s + Aδlat δlat ,


(4.75)
β̇1c = q − Bβ1c β1c − Bδlon δlon .

4.5.4 Calculation of the Moments Produced by the Main Rotor

The AkroHeli features very stiff carbon-fiber main rotor blades, which are mounted on a
hingeless main rotor head assembly. Thus, the flapping motion of the main rotor blades
4.5 Modeling the Main Rotor 45

produces considerable moments on the helicopter’s fuselage. The center-spring model pro-
posed by Padfield [21] describes the equation of motion for the blade flap angle by taking
moments about the center hinge with spring strength Kβ . Figure 4.10 shows the rotor
blade modeled as a rigid rod connected to the rotor shaft by a spring.

l(rb )drb

rb
Kβ β dr b
β

Fig. 4.10: The moment produced by the main rotor blade flapping dynamics of the helicopter is approximated
by the center-spring model.

The integration of the moment produced by the lift force of a blade segment drb must
be in equilibrium with the moment generated by the angular spring at the rotor hub
Z Rmr
rb l(rb )drb − Kβ β = 0 . (4.76)
0
The total moment produced by the main rotor acting on the fuselage is given by the mean
value of the moment over one revolution multiplied by the number of main rotor blades.
The magnitude mmr of the total moment produced by the main rotor is calculated using
the following integral
Nb 2π Nb Kβ 2π
Z Z
mmr = Kβ β(ψ)dψ = (β0 + β1c cos ψ + β1s sin ψ) dψ , (4.77)
2π 0 2π 0
where Nb is the number of main rotor blades. The total moment mmr produced by the
main rotor can be split up into its components about the helicopter’s body-fixed coordinate
axes. The moment mmr1 about the roll axis and the moment mmr2 about the pitch axis
are given by
Z 2π
Nb Nb
mmr1 = Kβ β1s sin2 ψ dψ = Kβ β1s ,
2π 0 2
Z 2π (4.78)
Nb Nb
mmr2 = − Kβ β1c cos2 ψ dψ = − Kβ β1c .
2π 0 2
Using the center-spring model, we can conclude that the moments produced about the
helicopter’s longitudinal axis and about its lateral axis depend on the flapping angles by
a linear relation. This fact will be used in Section 4.7 to develop the linear model.
The aerodynamic drag acting on the helicopter’s main rotor produces a moment mmr3
about the main rotor shaft. It is compensated by the tail rotor as discussed in Section 4.6.
46 4 Dynamic Model of a Small-Scale Helicopter

4.6 Tail Rotor and Yaw Dynamics

The AkroHeli features a yaw-stabilizing system, which reduces the pilot’s workload during
manual flight (see Section 2.2.1). Figure 4.11 shows the setup of the system. The input
signal δyaw produced by the pilot is interpreted by the system as a reference yaw rate and
is compared with the yaw rate measured by the high-bandwidth yaw rate sensor. The
yaw-stabilizing device calculates an appropriate control signal uServo which is fed into the
tail rotor servo in order to achieve the requested yaw rate.

δyaw
Yaw-Stabilizing uServo Yaw r Yaw Rate
Device Servo Sensor
Yaw Dynamics
of the AkroHeli

Fig. 4.11: Block diagram of the yaw-stabilizing system. The input signal δyaw defines the reference value for the
yaw rate r.

The tail rotor could be modeled either as an actuator disk using the momentum theory
or using the blade element theory. However, such a model would have to be augmented
with the unknown internal dynamics of the yaw-stabilizing controller.
In this thesis, a more direct approach is followed. Rather than augmenting a physical
model of the tail rotor with an assumed dynamic model of the yaw-stabilizing system,
the entire yaw dynamics is modeled using a gray-box model. Its details are presented in
Section 4.7.3. It implicitly includes the compensation of the torque caused by the drag
of the main rotor by the tail rotor thrust. Thus, it is unnecessary to develop a physical
model of the main rotor drag.

4.7 Linear Parameter-Varying Model

For parameter identification and controller synthesis, the dynamic model described above
was linearized. Neither the helicopter’s attitude nor its velocity affect the rotational dy-
namics. However, the analysis of flight data showed that there is a fairly strong influence
of the vehicle’s horizontal velocities uB and vB on the input gains of the flapping dynam-
ics. Thus, the roll dynamics and the pitch dynamics are described using a linear model
with an input gain varying with velocity. The state space systems for the roll dynamics
and the pitch dynamics are of the form
4.7 Linear Parameter-Varying Model 47

ẋ(t) = Ax(t) + B(uB (t), vB (t))u(t) ,


(4.79)
y(t) = Cx(t) ,

where A and C are constant matrices, while B(uB (t), vB (t)) describes the velocity de-
pendent input gain.
There is no considerable influence of the vehicle’s velocity onto the augmented yaw
dynamics or on the heave dynamics. Thus a linear model of the form

ẋ(t) = Ax(t) + Bu(t) ,


(4.80)
y(t) = Cx(t) ,

is a suitable approximation throughout the flight envelope.

4.7.1 Roll Dynamics

The matrix equation (4.46) can be rearranged to the following dynamics of the roll axis:

I22 − I33 I13 1


ṗ = qr + (pq + ṙ) + mB1 . (4.81)
I11 I11 I11
Since the nominal values of the pitch rate q, the yaw rate r, and the time derivative ṙ
of the yaw rate are zero, the first two terms on the right-hand side of (4.81) vanish. The
moment mB1 in the last term comprises two components, one from the lateral flapping
angle β1s , the other one representing the damping caused by drag resulting from the
angular velocity
Nb
mB1 = Kβ β1s + f (p) .
2
Thus, the linearized form of (4.81) is given by

ṗ = Lp p + Lβ1s β1s , (4.82)

where Lp and Lβ1s are two unknown parameters that have to be identified. Combining
(4.82) with the flapping dynamics given by (4.75) leads to the following linear parameter-
varying model with the state vector x = [Φ p β1s ]T :
      
Φ̇ 0 1 0 Φ 0
      
 ṗ  =  0 Lp Lβ1s   p + 0  δlat
      
β̇1s 0 −1 Aβ1s β1s Aδlat (uB (t), vB (t))
  (4.83)
" # " # Φ
Φ 1 0 0  
=  p ,
p 0 1 0  
β1s
48 4 Dynamic Model of a Small-Scale Helicopter

where the parameters Lp , Lβ1s , and Aβ1s are constant and the parameter Aδlat depends on
the velocity uB in the forward direction and the velocity vB in the sideways direction

Aδlat (uB , vB ) = A?δlat (1 + kup |uB | + kvp |vB |) . (4.84)

The parameters kup and kvp are positive constants and increase the input gain of the plant
with increasing velocity.

4.7.2 Pitch Dynamics

The matrix equation (4.46) can be rearranged to the following dynamics of the pitch axis:
I33 − I11 I13 2 1
p − r2 +

q̇ = pr + mB2 . (4.85)
I22 I22 I22
The nominal values for the roll rate p and the yaw rate r vanish and thus, the first two
terms of the right-hand side of (4.85) disappear. The moment mB2 about the pitch axis
is the sum of the moment caused by the longitudinal flapping angle β1c and the damping
moment caused by drag due to the angular velocity
Nb
mB2 = − Kβ β1c + f (q) .
2
The linearized form of (4.85) is calculated as

q̇ = Mq q + Mβ1c β1c . (4.86)

Analogously to the roll dynamics, the pitch dynamics are a function of the horizontal
velocities uB (t) and vB (t). The pitch dynamics are modeled by the linear parameter-
varying state space system
      
Θ̇ 0 1 0 Θ 0
      
 q̇  =  0 Mq Mβ1c   q + 0  δlon
      
β̇1c 0 −1 Bβ1c β1c Bδlon (uB (t), vB (t))
  (4.87)
" # " # Θ
Θ 1 0 0  
=  q 
q 0 1 0  
β1c

with the constant parameters Mq , Mβ1c , Bβ1c , and the varying parameter Bδlon (uB (t), vB (t)),
which is defined by the function

Bδlon (uB , vB ) = Bδ?lon (1 + kuq |uB | + kvq |vB |) . (4.88)

The parameters kuq and kvq are positive constants and increase the input gain of the
longitudinal flapping dynamics with increasing velocity.
4.7 Linear Parameter-Varying Model 49

4.7.3 Yaw Dynamics

The yaw dynamics is given by the matrix equation (4.46) can be rearranged. This leads
to the following differential equation:
I11 − I22 I13 1
ṙ = pq + (qr − ṗ) + mB3 . (4.89)
I33 I33 I33
The nominal values of the roll rate p, the pitch rate q, and of their derivatives with respect
to time vanish. The linearized form of (4.89) is given by

ṙ = Nr r + f (xyaw ) , (4.90)

where the function f (xyaw ) stands for the unknown dynamics of the yaw-stabilizing sys-
tem.
The augmented yaw dynamics is modeled using a grey-box model. The parameter iden-
tification process shows that a constant linear state space system is a good approximation
of the yaw dynamics for all velocities and attitudes. The following state space system
provides a good compromise between high accuracy and low order:
      
Ψ̇ 0 1 0 0 Ψ 0
      
 ṙ   0 a11 a12 a13 
  r  +  b1  δyaw
   
 =
 ẋ
 yaw1   0 a21 a22 a23 
  xyaw1   b2 
     

ẋyaw2 0 a31 a32 a33 xyaw2 b3


  (4.91)
Ψ
" # " # 
Ψ 1 0 0 0  r 
=  .
r 0 1 0 0  x
 yaw1 

xyaw2

All of the parameters aij and bi are constant. The state variables xyawi can be interpreted
as the internal states of the yaw-stabilizing system.

4.7.4 Heave Dynamics

The helicopter’s dynamics in vertical direction is given by the dynamics of the main rotor’s
thrust modeled in Section 4.5.2. However, for controller design, a linear model of the heave
dynamics is needed. Clearly, the vertical velocity wB of the helicopter is the integral of the
acceleration az acting in vertical direction, while the dynamics of the acceleration itself is
a function of the vertical velocity and the collective pitch angle of the main rotor blades.
Thus, the vertical dynamics of the vehicle can be described using the linear dynamic
model
50 4 Dynamic Model of a Small-Scale Helicopter
" # " #" # " #
ẇB 0 1 wB 0
= + δcol
ȧz Zw Zaz az Zδcol
" # (4.92)
h i wB
wB = 1 0 ,
az

where Zw , Zaz , and Zδcol are unknown parameters which have to be identified. The linear
model is a suitable approximation of the heave dynamics for the frequency band which is
of interest for controller design.
5

Parameter Identification

The instabilities of the helicopter fall into two categories — those at


low speed due to the rotor and those at high speed due to the rotor.
Gareth P. Padfield

This chapter presents the procedure for parameter identification using flight data. For
the identification of the parameters of the dynamic models, the prediction error method is
used. Thus, the parameters are identified in the time domain. We will first have a glance
at the method used for identification. Then, we address the flight experiments performed
for data collection. The parameters are identified for the dynamical models of the three
rotational degrees of freedom and the vertical axis separately. Later, the cross-coupling
effects between the axes are discussed. We complete the chapter with a section about the
identification of static parameters, using flight data obtained in closed-loop operation.

5.1 Prediction Error Method

For identification of the parameters of the dynamic models the prediction error method
(PEM) is used. The theory and methods used are well described in [26]. This method
compares the output of a predictor ŷ(t|t − 1, Θ) to the measured output y(t). The output
ŷ(t|t − 1, Θ) of the predictor is an estimate for the output y(t) based on the information
available at time t − 1. This estimation is effected using the model with the parameter
vector Θ. The difference between the measured and the predicted output ε(t, Θ) is called
the prediction error

ε(t, Θ) = y(t) − ŷ(t|t − 1, Θ) . (5.1)

In the SISO case, the loss function VN (Θ) is defined as


N
1X 2 1
VN (Θ) = ε (t, Θ) = εT (Θ)ε(Θ) . (5.2)
2 t=1 2
52 5 Parameter Identification

The parameter vector Θ is calculated such that the loss function in Eq. (5.2) is minimized.
The block diagram of the prediction error method is shown in Figure 5.1.

e(t)

u manual (t) u(t) y(t) ε(t,Θ)



Process

∆u(t)
Chirp
Predictor ˆ t-1,Θ)
y(t
with adjustable
parameter-vector Θ

Θ Algorithm for
minimizing VN(Θ)

Fig. 5.1: Block diagram of the Prediction Error Method (PEM)

5.2 Excitation Signals Used for Parameter Identification

For the identification process, it is desirable to use data sets in which the plant has
been excited with signals containing a wide spectrum of frequencies. For a pilot, it is
very difficult to generate useful excitation signals while he has to control the helicopter.
Since the pilot’s primary task is to fly the helicopter, it is almost impossible for him to
generate an excitation signal independent of the helicopter’s reaction. A human pilot has
a strong tendency to generate signals with amplitudes that are too large and in a too
narrow frequency band. Also, the manually applied control signals lack actuation at high
frequencies. Furthermore, for a human pilot it is very difficult to actuate one axis without
actuating any of the other axes.
For this project, the excitation signals were generated synthetically. In order to have
a persistent excitation throughout the desired bandwidth, a chirp signal with a small
amplitude has been added to the pilots commands. The chirp signal can be added to
any of the four control channels separately. When the chirp signal is switched on, the
pilot still has full control over three of the four axes, while on the forth axis, he controls
the mean value of the signal fed into the servo. The pilot’s task during an identification
flight thus is reduced to keeping the helicopter as close to the desired operating point as
possible. A sine-sweep with constant amplitude is superposed on the manual control signal.
This method guarantees an excitation signal containing frequencies spread throughout the
5.2 Excitation Signals Used for Parameter Identification 53

desired bandwidth. In addition, no undesired actuation of any other control channels has
to be expected.
For all channels, the input signal ui (t) is limited to the interval

ui ∈ [−1, 1] , for i = 1, 2, 3, 4 . (5.3)

In manual flight, the boundaries of the interval correspond to the full deflection positions
of the sticks.
The control vector u(t) sent to the plant is the sum of the pilot’s manually generated
control vector uman (t) and the chirp signal ∆u (t)
 
δlat (t)
 
 δlon (t) 
u(t) = uman (t) + ∆u (t) = 
 . (5.4)
 δcol (t) 

δyaw (t)

Each channel is excited separately. Therefore, the superimposed signal ∆u (t) can be
written as
 
∆u1 (t)
 
∆u2 (t)
∆u (t) = 
∆ (t)
 (5.5)
 u3 
∆u4 (t)

with

Ai sin φ(t) for i = j, j = 1, 2, 3, 4
∆ui (t) = (5.6)
0 6 j.
for i =

The constant Ai is the amplitude of the sine sweep, and φ(t) is given as
    
t1 t ω1
φ(t) =   ω0 exp ln −1 . (5.7)
ln ωω10 t1 ω0

The frequencies ω0 and ω1 define the lower and the upper limit of the frequencies con-
tained in the sweep, respectively. The duration of the sweep is given by the time t1 . For
identification, the sweep starts at the lower end of the frequency span, then increases ac-
cording to (5.7). Once the highest frequency ω1 is reached, the frequency decreases again
to the lower limit, given by ω0 . Figure 5.2 shows the roll channel of the manual control
signal uman and the signal fed into the servo after the artificially produced chirp signal
has been added.
54 5 Parameter Identification

Manual
0.15 Manual + Chirp
0.10
δlat [–]

0.05
0
− 0.05

255 260 265 270 275 280


Time [s]

Fig. 5.2: The sequence used for parameter identification of the roll dynamics. The graph shows the manual control
signal produced by the pilot and the signal fed into the servos (manual signal with superposed chirp signal).

5.3 Identification of the Parameters of the Rotational Dynamics

The linear parameter-varying models of the three rotational degrees of freedom developed
in Section 4.7 all have two outputs, namely the attitude angle and the corresponding
angular rate. In the linear models, the state variable representing the attitude angle is a
simple integration of the angular rate. The rotational dynamic does not depend on the
attitude of the helicopter. Thus, there is no parameter to be identified for this part of
the dynamics. Including the integration part and using a single-input multi-output model
for parameter identification leads to a parameter set which shows good results for the
compromise between angular rates and the integrated state variables. What we want is a
set of parameters that fits the rotational dynamics as well as possible. The attitude angles
as the integral of the angular rates are not of interest for parameter identification. Thus,
the state space systems used for parameter identification are modified to SISO systems,
with the angular rate as their only output signal.

5.3.1 Identification of the Parameters of the Roll Dynamics

For the first set of parameters, we use flight data recorded in hover flight (i.e., v E
B (t) = 0).
The varying parameter Aδlat (uB (t), vB (t)) thus is given by

Aδlat (uB (t), vB (t)) = A?δlat (1 + kup |0| + kvp |0|) = A?δlat . (5.8)

Eq. (4.83) is reduced to


" # " #" # " #
ṗ Lp Lβ1s p 0
= + δlat
β̇1s −1 Aβ1s β1s A?δlat
" # (5.9)
h i p
p= 1 0 ,
β1s

with the parameter vector


5.3 Identification of the Parameters of the Rotational Dynamics 55
T
Θ = Lp Lβ1s Aβ1s A?δlat

(5.10)

to be identified.
The identification process of this set of parameters proves to be very stable. Using
flight data collected in various flights leads to almost identical results.
The numerical values of the parameters found for the linear model are listed in Ap-
pendix B.2. Figure 5.3 shows one set of flight data collected during flight tests compared
with the roll rates resulting from the SISO model. The flight data shows a distinct reso-
nance peak at frequencies around 40 rad/s (≈ 6 Hz). The detailed view of the roll rates in
the plot at the bottom plot shows, the linear model is a good approximation of the plant
up to frequencies of around 65 rad/s (≈ 10 Hz ), there is a close mapping of the resonance
peak.

0.2 Manual
Manual + Chirp
0.1
δlat [–]

− 0.1
340 350 360 370 380 390 400
1
Experiment
0.5 Model
p [rad/s]

− 0.5

−1
340 350 3360
60 370 380 390 400

1
Experiment
0.5 Model
p [rad/s]

− 0.5

−1
365 366 367 368 369 370 371
Time [s]

Fig. 5.3: Sequence used for parameter identification of the roll dynamics in hover flight. The top graph shows the
manual control signal produced by the pilot and the signal fed into the roll servo (manual signal with superposed
chirp signal). The center plot shows the measured roll rates and the roll rates resulting from the linear model,
while the bottom plot shows a more detailed view of the roll rates at high frequencies.

The parameter set identified leads to the plant Groll (s), consisting of the two subsystems
Groll,a (s) and Groll,r (s). The output of the first one is the roll angle ya (t) = Φ(t), while
56 5 Parameter Identification

the output signal of the latter is the roll rate yr (t) = p(t). The singular values of the two
subsystems are plotted in Figure 5.4. Notice the distinct resonance peak at 40 rad/s.

40
30
20

Singular Values [dB]


10
0
−10
−20
Groll,a (s)
−30
Groll,r (s)
−40 −3
10 10−2 10−1 100 101 102 103
Frequency [rad/s]

Fig. 5.4: Singular values of the plant Groll .

5.3.2 Identification of the Parameters of the Pitch Dynamics

The identification procedure for the pitch axis is identical to the one described for the
roll axis. For the reasons discussed in the previous section, we split up the pitch dynamics
given in (4.87) into two subsystems. For parameter identification, we only regard the
subsystem Gpitch,r (s), which has the pitch rate as output yr (t) = q(t). Again, we use flight
data collected in hover. Thus, the varying input gain is given as

Bδlon (uB , vB ) = Bδ?lon (1 + kuq |0| + kvq |0|) = Bδ?lon . (5.11)

The dynamics of Eq. (4.87) are reduced to


" # " #" # " #
q̇ Mq Mβ1c q 0
= + δlon
β̇1c −1 Bβ1c β1c Bδ?lon
" # (5.12)
h i q
q= 1 0 ,
β1c

with the parameter vector


T
Θ = Mq Mβ1c Bβ1c Bδ?lon

(5.13)

to be identified. Due to the higher moment of inertia about the pitch axis, we expect a
smaller resonance peak and a lower bandwidth of the plant. The bandwidth of the chirp
signal used for excitation of the pitch axis is chosen slightly lower than for the roll axis.
Again, the identification process proved to be stable and the estimated parameters result-
ing from various flight data matched very well. The excitation signal and the resulting
5.3 Identification of the Parameters of the Rotational Dynamics 57

pitch rate are shown in Figure 5.5. The top plot evidences the above-mentioned pilot’s
tendency to correct for the effect of the superposed chirp signal at low frequencies. The
pitch rate resulting from simulation with the identified parameter vector is shown in the
same plot. As the bottom plot shows, the linear model fits the measured data very well
throughout the bandwidth used for excitation.

Manual
0.2 Manual + Chirp

0.1
δlon [–]

− 0.1
315 320 325 330 335 340 345 350
Experiment
Model
0.4
q [rad/s]

− 0.4

315 320 325 330 335 3340 345 350

Experiment
0.4 Model
q [rad/s]

− 0.4
320 322 324 326 328 330 332 334
Time [s]

Fig. 5.5: Sequence used for parameter identification of the pitch dynamics. The top plot shows the manual control
signal produced by the pilot and the signal fed into the pitch servo (manual signal with superposed chirp signal).
The center plot shows the resulting angular rate about the lateral axis and the angular rate of the model. The
bottom plot shows a more detailed view of the angular rates at high frequencies.

The singular values of the two subsystems are shown in Figure 5.6. As expected, the
resonance peak is not as pronounced, as in the roll dynamics, which corresponds to the
flight data depicted in Figure 5.5. Furthermore, the resonance frequency of the pitch
dynamics is remarkably lower than the one observed in the roll direction. The resonance
peak of the pitch axis is at 15 rad/s (≈ 2.5 Hz).
58 5 Parameter Identification

40
30
20

Singular Values [dB]


10
0
−10
−20
Gpitch,a (s)
−30
Gpitch,r (s)
−40 −3
10 10−2 10−1 100 101 102 103
Frequency [rad/s]

Fig. 5.6: Singular values of Gpitch .

5.3.3 Identification of the Parameters of the Yaw Dynamics

In Chapter 2, we mentioned that the AkroHeli hardware is equipped with a standard yaw
rate stabilizing system used on regular RC helicopters. This device includes a controller
on the yaw axis, which stabilizes the helicopter at a given yaw rate. Thus, rather than
commanding the control servo, the pilot produces a reference signal for the stabilizing
system. The model from which the parameters are to be identified therefore includes the
combined dynamics of the helicopter’s dynamics augmented with the stabilizing system.
Since the dynamics of the yaw stabilizing system is not known, different gray-box
models were examined. The one leading to the best results is the one that was presented
in Section 4.7.3. Again, for parameter identification, the model is reduced by the state
representing the yaw angle. For parameter identification, the model of (4.91) is reduced
to
      
ṙ a11 a12 a13 r b1
      
 ẋyaw1  =  a21 a22 a23   xyaw1  +  b2  δyaw
      
ẋyaw2 a31 a32 a33 xyaw2 b3
  (5.14)
h i r 
r= 1 0  xyaw1  .
0  
xyaw2

The parameter vector Θ to be identified is

Θ = [a11 a12 a13 a21 a22 a23 a31 a32 a33 b1 b2 b3 ]T . (5.15)

As done for the roll and pitch axes, for identification of the parameters of the yaw dynamics
a chirp signal is superposed onto the commands of the human pilot. Due to the high static
gain of the yaw dynamics, the amplitude of the superposed sine sweep has to be chosen
5.4 Identification of the Parameters of the Heave Dynamics 59

Manual
0.04 Manual + Chirp

0.02
δyaw [–]

0
− 0.02
− 0.04

695 700 705 710 715 720 725 730 735


Experiment
Model
0.4
0.2
r [rad/s]

0
− 0.2
− 0.4

695 700 705 710 715 720 725 730 735

0.4 Experiment
Model
0.2
r [rad/s]

0
− 0.2
− 0.4

705 706 707 708 709 710 711 712 713 714 715 716 717
Time [s]

Fig. 5.7: Sequence used for parameter identification of the yaw dynamics in hover flight. The top graph shows the
manual control signal provided by the pilot and the signal fed into the RC Gyro (manual signal with superposed
chirp signal). The center plot shows the measured yaw rates and the yaw rates resulting from the linear model.
The bottom plot shows a detailed view of the yaw rates at high frequencies.

rather small. Figure 5.7 shows the manual control signal produced by the pilot, the signal
fed into the yaw stabilizing device, and the resulting yaw rates.
The singular values of the plant are plotted in Figure 5.8. There is a small resonance
peak at the frequency of 8 rad/s (≈ 1.3 Hz). With 17 dB, the static gain of the yaw
dynamics is remarkably high. Notice that a control input of the magnitude of 4% of the
maximum deflection produces yaw rates of up to 0.5 rad/s. This is almost 25% of the
saturation limit of the angular rate sensors used in the IMU.

5.4 Identification of the Parameters of the Heave Dynamics

The parameters to be identified for the heave dynamics are given by the single-input
multiple-output model in (4.92). Again, for data collection, a chirp signal has been super-
posed onto the manual control signal of the pilot. The excitation signal and the measured
60 5 Parameter Identification

40
30
20

Singular Values [dB]


10
0
−10
−20
Gyaw,a (s)
−30
Gyaw,r (s)
−40 −3
10 10−2 10−1 100 101 102 103
Frequency [rad/s]

Fig. 5.8: Singular values of Gyaw .

acceleration and velocity in the 3B direction are plotted in Figure 5.9. The model proves
to be a good approximation for frequencies between 0.5 rad/s (≈ 0.1 Hz) and 20 rad/s
(≈3 Hz). For frequencies above 20 rad/s the acceleration calculated by the model does not
fit the measured data very well. Also the model’s output for velocity does not fit very
well for low frequencies. However, the model is quite suitable for controller design. Since
the heave dynamics are controlled by a controller with a relatively low bandwidth, the
closed loop is not very sensitive to the modeling errors at frequencies above 20 rad/s. For
better identification, the maximum frequency of the sine sweep applied to the collective
pitch command would have to be chosen higher in order to reach the cut-off region of the
heave dynamics.

5.5 Cross-Coupling Effects

In the previous sections, we discussed the helicopter’s dynamics as four SISO systems.
In the literature, helicopters often are described as MIMO systems with cross-coupling
effects among the different axes. In fact, there are some cross-coupling effects that cannot
be avoided due to the laws of physics. Other effects may be compensated for mechanically.
In this section, the most relevant cross-coupling effects are discussed.

5.5.1 Cross-Coupling between Collective Pitch and Yaw Rate

In the case of constant main rotor speed relative to the helicopter, rotating the helicopter
about its yaw axis yields a higher rotor speed relative to the surrounding air, which
increases or decreases the thrust, depending on the sense of rotation. In the case of the
AkroHeli hardware, the main rotor’s nominal speed of rotation is Ωmr = 1 650 rpm ≈
172.8 rad/s, while the saturation limit of the angular rate sensor is rsat = 2.16 rad/s. A
5.5 Cross-Coupling Effects 61

Manual
0.34 Manual + Chirp
δcol [–]

0.30

0.26

645 650 655 660 665 670 675 680


−6 Experiment
Model
−8
az [m/s2 ]

− 10

− 12

645 650 655 660 665 670 675 680


1.5
1
wB [m/s]

0.5
0
− 0.5
Experiment
−1
Model
645 650 655 660 665 670 675 680
Time [s]

Fig. 5.9: Sequence used for parameter identification of the heave dynamics in hover flight. The top graph shows
the manual control signal provided by the pilot and the signal fed to the collective servo (manual signal with
superposed chirp signal). The center plot shows the measured acceleration in the 3B direction and the acceleration
calculated by the linear model. The bottom plot shows the velocity in the 3B direction estimated by the navigation
filter and the velocity resulting from the linear model.

rotation at a maximum angular rate therefore changes the rotor speed by 1.3%. The effects
caused by such a change can barely be noticed by the pilot.
A variation in the main rotor’s collective pitch angle, on the other hand, changes
the aerodynamic drag produced at the main rotor blades. This changes the moment
about the main rotor shaft and results in a rotation about the yaw axis that must be
compensated with a change in the pitch angle of the tail rotor blades. As mentioned
before, the hardware used in this project is equipped with a yaw stabilizer device. The
controller of the stabilizing device fully compensates for this effect before either the human
pilot or the IMU notices any change.

5.5.2 Cross-Coupling between Pitch and Roll Axes

A change in the cyclic pitch angle at one point will change the flapping angle of the main
rotor blade approximately 90◦ later. The lag of the flapping angle depends on the main
rotor’s stiffness and is more or less constant for any given operating point. The amount of
62 5 Parameter Identification

lag may change slightly with changing velocity [21]. For a particular operating point, this
effect can be compensated. For most helicopters, this is done mechanically. Regarding the
hardware used in this project, the two axes are almost perfectly decoupled mechanically.
Figure 5.10 illustrates the magnitude of the cross-coupling effect between the roll and
the pitch axes is illustrated. The cyclic control signals δlat about the roll axis and δlon
about the pitch axis are plotted in solid blue lines in the two lower graphs, while the
measured roll and pitch rates p(t) and q(t) are plotted with blue solid lines in the two
upper graphs. The control signals in the pitch direction represented by the dashed red line
in the bottom plot were fed into the linear SISO model of the pitch dynamics, while the
pitch rate q(t) calculated by the SISO model is plotted as the dashed red line in the second
graph. Only during the time interval t ∈ [358 , 362] any influence of the roll dynamics on
the pitch rate can be detected. Apparently, the frequencies of largest cross-coupling in
this direction are close to the resonance frequency of the pitch dynamics.
The effects of the pitch rate on the roll dynamics are of the same magnitude. Thus,
there are cross-coupling effects in both directions, but they are too small to be relevant.

5.5.3 Summary on Cross-Coupling

For the AkroHeli hardware used in this project, the axes are decoupled very well for a
wide range of frequencies. The decoupling is done mechanically for the roll/pitch coupling
and electronically for the influence of changing the main rotor drag on the yaw axis. The
effects of the roll/pitch coupling are detectable only if one axis is excited at frequencies
close to the resonance peak of the other axis. The human pilot is perfectly able to fly
the helicopter throughout the entire flight envelope without being aware of those high-
frequency coupling effects. Thus, autonomous flight with SISO controllers for the roll and
for the pitch dynamics must be possible, too. The controllers described in Section 7.5.2
cause the cross-over frequency of the closed loop of the roll and the pitch dynamics to be
much lower than the open loop resonance peaks of the two axes. This diminishes the cross-
coupling even more. For the reasons mentioned above, for attitude and heave control, the
plant can be regarded as four SISO models, without any restrictions.
However, there are some constraints among the axes, relevant for guiding the vehicle
along the reference trajectroy. Consider a helicopter flying at constant velocity and con-
stant altitude. In order to increase the velocity, the nose-down attitude has to be increased
in order to tilt the thrust vector further forward. At the same time, the total thrust has
to be increased in order to avoid losing altitude.
Another effect is the change in altitude due to pitch rate. Again, we start at level flight
with constant speed. To change altitude, either the thrust has to be increased (which also
5.6 Static Parameter Identification for the Tilt Angle 63

p [rad/s] 0.5

Experiment (Roll Axis)


− 0.5
330 335 340 345 350 355 360 365 370
0.5
Experiment (Pitch Axis)
SISO-Model (Pitch Axis)
q [rad/s]

− 0.5
330 335 340 345 350 355 360 365 370

0.1
0.05
δlat [–]

0
− 0.05
− 0.1 Experiment (Roll Axis)

330 335 340 345 350 355 360 365 370


Experiment (Pitch Axis)
0.1
SISO-Model (Pitch Axis)
0.05
δlon [–]

0
− 0.05
− 0.1

330 335 340 345 350 355 360 365 370


Time [s]

Fig. 5.10: These plots illustrate the cross-coupling between the roll dynamics and the pitch dynamics. The red
dashed line in the second graph represents the pitch rate q(t) calculated by the SISO model of the pitch dynamics.
Only minor effects of cross-coupling (in the time interval t ∈ [358 , 362]) can be detected.

slightly increases the velocity) or the pitch angle can be changed to a nose-up attitude
(which eventually decreases the velocity).

5.6 Static Parameter Identification for the Tilt Angle

The tilt angle α is required to provide a thrust component in the horizontal direction. For
horizontal flight, this component is needed for acceleration and to overcome the aerody-
namic drag. While acceleration is independent of the direction relative to the body axes,
the aerodynamic drag strongly depends on the sideslip angle β BX . In forward flight, the
aerodynamic drag is minimal and the tilt angle αBX , required to fly at constant speed,
64 5 Parameter Identification

is much smaller than the tilt angle needed for the same speed in backward or sideward
flight. In order to identify the value of the tilt angle needed for a certain velocity, flight
data is analyzed.
Comparing data collected in manual flight with data originating from autonomous
flight, it is obvious that velocity, sideslip angle, and altitude are kept at constant values
much better in autonomous flight. Thus, it is advantageous to use flight data collected
in autonomous flight for the identification of parameters that describe steady state con-
ditions. In Figure 5.11, the tilt angle αBX as a function of velocity uX along a horizontal
path is plotted for forward flight (β BX = 0), backward flight (β BX = π) and flight side-
π
ways (β BX = 2
and β BX = − π2 ). The data shown in this figure was collected in various
autonomous flights.

0.1
π 
β BX ∈ 2
, − π2
0
αBX [rad]

− 0.1

− 0.2
β BX = π β BX = 0
− 0.3 Experiment
Model
− 0.4
10 5 0 5 10 15 0 2 4 6 8 10 12
uX[m/s] uX[m/s]

Fig. 5.11: The tilt angle αBX as a function of the helicopter’s velocity uX along a horizontal path for forward
flight (β BX = 0), backward flight (β BX = π), and flight in a sideways direction (β BX = π2 and β BX = − π2 ).

For the distinct directions of flight with a sideslip angle of

β BX = kπ/2 , with k ∈ {−1, 0, 1, 2} ,

we define quadratic functions describing the tilt angle as a function of the helicopter’s
velocity

BX
αfwd (uX ) = c1,fwd uX + c2,fwd uX 2 ,
BX
αbwd (uX ) = c1,bwd uX + c2,bwd uX 2 , (5.16)
BX
αswy (uX ) = c1,swy uX + c2,swy uX 2 .

The numerical values for the constants in the equations above are listed in Appendix B.3.
For the sideslip angles other than β BX = kπ/2, the total tilt angle is calculated by
5.7 Effects of Velocity on the Dynamics 65
 q
if β BX ∈ − π2 , π2 ,
2
 
− α
 efwd +α 2
eswy
BX BX
α (β , uX ) = q (5.17)
− α 2 2
+α otherwise ,

ebwd eswy

where the corresponding components are calculated as follows:


BX
efwd (β BX , uX ) = cos β BX αfwd
α (uX ) ,

ebwd (β BX , uX ) = cos β BX αbwd
α BX
(uX ) ,
(5.18)
eswy (β BX , uX ) = sin β BX αswy
α BX
(uX ) .

The function given in (5.17) proves to be a good approximation for the tilt angle during
flight at constant speed. It is used for the calculation of the helicopter’s nominal attitude
and for calculating the nominal angular rates.

5.7 Effects of Velocity on the Dynamics

As velocity increases, the efficiency of the cyclic control also increases. During fast flight,
much less control input is needed to achieve a certain angular rate. The influence of
velocity on the dynamics of the roll and pitch axes is modeled, using the varying input
gains given in Eq. (4.84) and Eq. (4.88). In Section 5.3, we identified the input gains in
hover flight A?δlat and Bδ?lon . Thus, the values of the input gains for flight at velocities not
equal to zero are given by

Aδlat (uB , vB ) = A?δlat (1 + kup |uB | + kvp |vB |) ,


(5.19)
Bδlon (uB , vB ) = Bδ?lon (1 + kuq |uB | + kvq |vB |) .

By analyzing the flight data gathered, the numerical values for the constants kij can be
found. The numerical values of these constants found for the vehicle used during the flight
tests are listed in Appendix B.3.
In Figure 5.12, the pitch dynamics of the LPV model are compared with the results
obtained from simulation with a a constant state space system. The results of the sim-
ulations are plotted together with data collected during manually controlled aerobatic
flight.1 For simulation, the varying parameter of the LPV model was calculated using the
velocity estimated by the extended Kalman filter during flight. The pitch rate q(t) of the
LPV model fits the measured data much better than the pitch rate of the dynamics with
invariant parameters.

1
The maneuvers performed were the following: hammerhead turn to the left (t = [402, 410] s), loop (t =
[412, 420] s), and hammerhead turn to the right (t = [423, 431] s).
66 5 Parameter Identification

Model with
Experiment LPV-Model
invariant parameters

20
ûX [m/s ]

10

400 405 410 415 420 425 430 435 440 445 450

1
q [rad/s]

0.5

400 405 410 415 420 425 430 435 440 445 450

0.3
0.2
δlon [–]

0.1

400 405 410 415 420 425 430 435 440 445 450
Time [s]

Fig. 5.12: Pitch dynamics during aerobatic flight. The velocity drawn in the top plot was estimated by the
extended Kalman filter. At high velocities, the pitch dynamics of the LPV model are much closer to the measured
data than the dynamics of the model with invariant parameters.
6

Reference Trajectory Synthesis

For once you have tasted flight you will walk the earth with your
eyes turned skywards, for there you have been and there you will
long to return.
Leonardo da Vinci

During autonomous flight, the principal task of the autopilot is to calculate control signals,
such that the helicopter’s outputs follow the given reference signals. This chapter covers
the main aspects of the definition and synthesis of these reference signals. Some of the
concepts presented in this chapter emerged from various lively discussions with Gerber
[11].
First, the concept for the representation of the reference trajectory is addressed. Then,
the synthesis of flyable trajectories using trajectory segments is discussed and the defini-
tion of the segments is presented, followed by a glance at the concepts used for the storage
and on-board reconstruction of the reference trajectory.
In this thesis, we distinguish between aerobatic maneuvers and non-aerobatic flight.
The latter includes all flight conditions that can be kept steady. This includes hover, hori-
zontal, and vertical flight—all in both regular, and inverted manner. Aerobatic maneuvers,
on the other hand, are maneuvers that can only be flown in a dynamic manner, i.e.,the
flight conditions change continuously during a maneuver and cannot be kept constant for
an arbitrary time span (e.g., hammerhead turns, aileron rolls, and loops).

6.1 Representation of the Trajectory

The helicopter’s ability to hover and to move backwards and sideways makes it a very
versatile flight object. Small-scale helicopters have highly rigid main rotor systems and a
much higher power-to-mass ratio than the full-size helicopters. Thus, they are very agile,
and the possibilities for aerobatic maneuvers are almost unlimited. Since the AkroHeli is
equipped with about 1 kg of additional electronic equipment its power excess is not as
68 6 Reference Trajectory Synthesis

overwhelming as for RC helicopters. Nevertheless, the AkroHeli is capable of doing loops,


aileron rolls, hammerhead turns, and inverted flight (including inverted hover). Thus, the
representation of the reference trajectory must be able to cope with all those maneuvers.
The definition of the reference trajectory vector R? is described in this section.
It was not the goal to develop a method to describe the reference trajectory with min-
imal order. Rather, the focus was on finding a representation which works for all possible
flight conditions. On-board, storage space available for the reference trajectory and the
computing power available for a real-time reconstruction of the reference trajectory are
limited. A good trade-off between the usage of the two is thus required.
For practical purposes, the reference trajectory is calculated as a function of time. All
of the reference signals are calculated with a sampling rate of 50 Hz. During flight, the
instantaneous reference point on the trajectory may be calculated as a function of time
(e.g., in hover flight) or as a function of the helicopter’s position (e.g., in horizontal flight
at velocities above 10 m/s). This subject will be discussed in Section 7.2, which deals with
the on-board trajectory generator.
The most obvious variable needed to describe a reference trajectory is the position in
space. Thus the nominal position vector

s? ≡ s?XE ≡ s?BE

of the error coordinate system is part of the vector R? defining the reference trajectory.
The nominal velocity

v ? ≡ v E? E?
X ≡ vB

along the nominal flight path is calculated on board during flight and thus, is not stored
as part of the reference trajectory vector R? .
In horizontal flight, the orientation of the coordinate system ]X is defined by the pro-
gression of the reference flight path. During hover flight, vertical flight, and aerobatic
maneuvers, the orientation of the error coordinate system is not well-defined by the ref-
erence flight path. Therefore, the orientation

q ? ≡ q XE?

of the error coordinate system ]X relative to the Earth-fixed reference coordinate system
]E is part of the trajectory vector.
The nominal attitude of the helicopter relative to the error coordinate system is given
by the following relative attitude angles: the tilt angle αBX? , the sideslip angle β BX? ,
and the nominal roll angle γ BX? . The rotations are performed in the following sequence:
β BX → αBX → γ BX . The three values are combined in the nominal relative attitude
vector
6.1 Representation of the Trajectory 69
 
BX?
α
 
α? ≡ αBX? = β BX? 

,
γ BX?

which is part of the reference trajectory vector R? .


Using the progression of the orientation q XE? and the relative attitude vector αBX? ,
the helicopter’s nominal angular rates
 
p?
B
[ω ? ]B ≡ ω BE? = 
   
?
q
 
r?

with respect to the inertial frame could easily be calculated on-board during flight. For
practical reasons these values were calculated offline and also stored as part of the reference
trajectory.
Besides the reference signals described above, the maneuver identifier vector m? and
the nominal control signal vector u? are stored as part of the reference trajectory. The
maneuver identifier vector m? comprises the move identification number mID and some
move specific information mh 1
" #
m ID
m? = .
mh

The move identification number mID is a positive integer, unique for each move within
a segment of the reference trajectory and allows the guidance algorithm to distinguish
between aerobatic and non-aerobatic flight, and between regular and inverted flight. The
variable mh includes information about the tolerances to be applied on the guidance error
calculation. The complete reference trajectory vector is given by
 
? 


 s  
 
 ? 


 q 


 
 ω? 
 
R? = ? 
. (6.1)


 α 

 
?
m

 

 

 
 u? 
 

In this thesis, all the reference trajectories are defined to begin with hovering flight.
The position and the heading of the helicopter at the instant the mission is started are
denoted R and Ψ RE , respectively. The nominal flight path and the nominal orientation
1
For example, during a deceleration phase, the speed at the end of the deceleration is assigned to the variable
mh . A velocity below the instantaneous nominal value is tolerated, if it is not below the nominal velocity at
the end of the deceleration.
70 6 Reference Trajectory Synthesis

of the reference trajectory are stored relative to this initial position. Thus, the nominal
position stored on board is s?XR , rather than s? , and the nominal attitude of the error
coordinate system stored is given by the quaternion q XR? relative to the coordinate system
]R , rather than q XE? relative to the NED-coordinate system ]E . The nominal values s?
and q ? are calculated by the trajectory generator during the mission.
The signals are calculated for a sampling period of dt = 0.02 s. Nodes are placed on
the signals at intervals of dT = 0.2 s. During flight, the courses of the signals between the
nodes are reconstructed using cubic splines. The on-board reconstruction of the trajectory
is discussed in Section 6.5. The segments of the trajectory always begin at a node and
end at a node. Each node of a trajectory has a unique identification number (ID), which
is displayed on the on-board video overlay and can be used for post-flight analysis of the
flight data.

6.2 Trajectory Synthesis Using Trajectory Segments

For the generation of flyable trajectories, a set of trajectory segments has been developed.
By interconnecting these segments, different trajectories can be produced. The segments
are depicted in Figure 6.1 and can be used as building blocks to generate a trajectory. Most
of the blocks require a set of parameters (boundary conditions) to be defined (i.e., the
nominal velocity along the path v R?
X , the nominal sideslip angle β
XB?
). Flyable trajectories
can be created by combining the segments in such a way that two consecutive blocks either
fit by their shape or by their color. Blocks with a dashed outline stand for inverted flight
and cannot be mixed with blocks with a solid outline. An example of a flyable trajectory
is given in Figure 6.2.

Vertical Horizontal Curve Hammerhead


Climb Acceleration Turn

Straight Speed Loop


Flight Gain

Aileron
Hover Dive Pull up Roll

Fig. 6.1: Elementary moves are the building blocks available to produce a flyable trajectory. Two consecutive
elementary moves must either fit by their shape or by their color. The dashed lines represent inverted flight.

The blocks can be arranged arbitrarily, as long as they fit and the boundary conditions
are set correctly. For hover, vertical climb, curved and straight flight, any sideslip angle
6.3 The Non-Aerobatic Trajectory Segments 71

Vertical Horizontal Straight Speed Hammerhead Aileron


Hover Hover Turn Curve
Climb Acceleration Flight Gain Roll

Speed Horizontal Horizontal


Pull up Hover Curve Hover Dive
Gain Acceleration Acceleration

Fig. 6.2: Example of trajectory built by elementary move blocks.

β XB ∈ (−π, π]—including changing sideslip angles—can be defined. This allows to create


additional maneuvers, like screwdriver upwards, pirouettes in straight flight, or curves
with constant heading.

6.3 The Non-Aerobatic Trajectory Segments

For the synthesis of the non-aerobatic segments of the reference trajectory, the following
approach was used. As a first step, the position s?XR , the velocity v R?
X , the angular rate
ω XR? , and the attitude q XR? of the error coordinate system ]X relative to the reference
coordinate system ]R are calculated, leading to a generic reference trajectory. After the
reference for relative sideslip angle β BX? is defined, the remaining components of the
reference trajectory vector can be calculated.
The nominal value αBX ? of the relative tilt angle is given by (5.17) and can easily be
calculated along the reference trajectory, once the velocity uX and the nominal sideslip
angle β BX? are defined. For non-aerobatic flight, the relative roll angle γ BX? is given by
the definition of the reference trajectory

0 for regular flight ,
γ BX ? = (6.2)
π for inverted flght .

Thus, the reference for the relative attitude vector αBX? is defined along the trajectory and
therefore the reference attitude q BR? along the trajectory can be calculated as follows:2

q BR? = q XR? q BX? = q XR? q β? q α? q γ? , (6.3)

where
2
Note that the star (? ) denoting a reference value must not be confused with the asterisk (∗ ) denoting the
complex conjugate of a unit quaternion.
72 6 Reference Trajectory Synthesis
      
cos αBX? /2 cos β BX? /2 cos γ BX? /2

 sin γ BX? /2 
    
 0   0 
q α? =
 sin αBX? /2  ,
 q β? = , q γ? =  . (6.4)
 

 0 


 0 


0 − sin β BX? /2 0

6.3.1 Angular Rates

Most of the segments require some kind of rotation. For instance, in hover flight or straight
flight with superimposed pirouette, a rotation about the vertical axis is required, or when
initiating a curve, a rotation about the longitudinal axis is required. For those rotations,
the course of the angular rate is depicted in Figure 6.3 and is given by cubic polynomials.

ωmax
Angular Rate

0
t0 t1 t2 t3
Time

Fig. 6.3: Course of angular rates in reference trajectory




 c3 (t − t0 )3 + c2 (t − t0 )2 if t0 ≤ t < t1 ,


ωmax if t1 ≤ t < t2 ,

ω(t) = (6.5)



 c3 (−t + t3 )3 + c2 (−t + t3 )2 if t2 ≤ t < t3 ,


0 otherwise,

where the time t0 represents the start of the rotation. The parameters c3 and c2 and the
value for the time t1 only depend on the maximum angular rate ωmax and its maximum
rate of change ω̇max . The numerical values are given by
3 2
3 ωmax 16 ω̇max 4 ω̇max
t1 = − t0 , c3 = − 2
, c2 = . (6.6)
2 ω̇max 27 ωmax 3 ωmax
The values for the times t2 and t3 can easily be calculated by the total angle to be covered
by the respective move.

6.3.2 Hover

From the trajectory point of view, hover is the simplest segment, since it is by definition
a steady flight condition with all the relevant variables being constant. For the hover
6.3 The Non-Aerobatic Trajectory Segments 73

segment, the position is given by the position at the beginning of the segment:

s?XR (t) = s?XR (t = Ts0 ) . (6.7)

By definition, the velocity is

v R?
X (t) = 0 . (6.8)

As defined in Figure 3.2, the heading angle Ψ (t) of the helicopter is given by

Ψ (t) = χ(t) − β BX (t) . (6.9)

For hover flight, the track angle χ(t) is not defined by the reference flight path, since there
is no path along which a movement takes place. Therefore, an arbitrary track angle χ(t)
has to be chosen. For obvious reasons, the track angle at the beginning of the hover is
chosen to be equal to the track at the end of the previous segment, while the track angle
at the end of the hover is chosen to be equal to the track at the beginning of the next
segment of the trajectory. With the definition of the sideslip angle β BX (t), the heading
angle Ψ (t) of the helicopter is given. For practical purposes, the track angle is chosen as
the shortest rotation from the track angle χ(Ts0 ) at the beginning of the segment to the
track angle χ(Ts1 ) at the end of the segment. The attitude of the error coordinate system
]X therefore is given by the quaternion
 
cos (χ/2)
 
XR?
 0 
q = . (6.10)

 0 

sin (χ/2)

The angular rates vector ω BE? for hover expressed in body fixed coordinates is given
by
 
0
 BE? B  
ω =
 0 .
 (6.11)
r? (t)

It differs from zero only if there is a rotation about the vertical axis. A third-order poly-
nomial as described in Section 6.3.1 was chosen for the course of the nominal yaw rate
r? (t). The nominal sideslip angle β BX? (t) is a function of the yaw rate r? (t) and the track
angle χ(t)
Z t
BX?
β (t) = r? (t) dt − χ(t) + β BX? (t0 ) . (6.12)
t0

The nominal tilt angle αBX? (t) is zero for hovering flight.
74 6 Reference Trajectory Synthesis

6.3.3 Vertical Flight

Vertical flight differs from hover flight only by the velocity in the vertical direction. A seg-
ment of vertical flight starts and ends with hover flight. In-between, the vertical velocity
wX (t) is defined as segments of cubic polynomials as described in Section 6.3.1. Similar
to the hover flight segment, a rotation about the helicopter’s vertical axis can be super-
imposed onto the climb. The resulting maneuver then is called screwdriver. Additionally
to the parameters for hover flight, the following parameters have to be defined for vertical
flight: maximum vertical velocity wX,max , maximum vertical acceleration ẇX,max , and the
vertical distance to be climbed or descended ∆h.

6.3.4 Straight Horizontal Flight

In straight flight, the nominal velocity v R?


X (t) is constant and the nominal position is given
by the integration of the nominal velocity
 
u?
 R? X  X 
vX =0.
 (6.13)
0

As in hover flight, the attitude of the error coordinate system is given by the track
angle. The difference is that, in straight flight, the track angle is clearly defined by the
velocity vector and is constant
 
cos (χ/2)
 
XR?
 0 
q = . (6.14)
 0 

sin (χ/2)

The angular rate vector depends on whether a rotation about the helicopter’s vertical axis
is superimposed. In the case of a constant sideslip angle, the angular rate vector is zero
 
0
 BE? B  
ω = 0

. (6.15)
0

If there is a rotation about the vertical axis superimposed onto the flight path, the fol-
lowing additional parameters have to be provided: the sideslip angle β BX (Ts0 ) at the
beginning of the segment, the sideslip angle β BX (Ts1 ) at the end of the segment, the
number of complete rotations to be performed, the maximum yaw rate rmax during the
rotation, and the maximum change of the yaw rate ṙmax at the beginning and at the end
of the rotation. The yaw rate r(t) is calculated in the form defined in Section 6.3.1, and
6.3 The Non-Aerobatic Trajectory Segments 75

the duration of the phase at maximum yaw rate is chosen in such a way that all boundary
conditions are fulfilled. The sideslip angle β BX (t) is calculated simply by integrating the
yaw rate.
The tilt angle αBX is a function of the sideslip angle β BX and the velocity uX along the
trajectory. A changing sideslip angle therefore results in a changing tilt angle. For each
point on the trajectory, the tilt angle is calculated according to the relationship given in
(5.17) and saved as part of the trajectory. Obviously, a changing tilt angle αBX leads to
an angular rate vector ω BE that changes rapidly along the trajectory. The angular rates
required to reach the required attitude are calculated numerically for each time step. In
Figure 6.4 the roll, pitch, and yaw rates during a pirouette in straight flight (at a velocity
of 8 m/s) are shown. (The results of this maneuver are shown in Section 8.2.3.)

0.1

0.05
p [rad/s]

− 0.05

− 0.1
58 60 62 64 66 68 70

0.1
q [rad/s]

− 0.1

− 0.2
58 60 62 64 66 68 70
0.8

0.6
r [rad/s]

0.4

0.2

0
58 60 62 64 66 68 70
Time [s]

Fig. 6.4: Nominal angular rates p? (t), q ? (t) and r? (t) for pirouette during straight flight with constant velocity
(8 m/s). The green solid line represents the signal at a sampling time of dt = 0.02 s, while the blue asterisks
represents the values at the nodes saved in the control.mtx file.
76 6 Reference Trajectory Synthesis

6.3.5 Horizontal Curve

A change in the flight track angle χ(t) in horizontal flight is performed by a curve, which
requires a bank angle to produce a centripetal acceleration. The magnitude of bank re-
quired is a function of the velocity uX along the flight path and the radius rc of the curve.
The function is given by
 2 
uX /rc
Φ = arctan . (6.16)
g
For reasons of simplicity, we choose the opposite approach and calculate the change of
track χ̇(t) as a function of the bank angle Φ(t) and the velocity uX , which is taken as
constant throughout the curve
g tan (Φ(t))
χ̇(t) = . (6.17)
uX
The bank angle is increased according to the law, presented in Section 6.3.1. Thereafter,
the bank angle is kept constant until decreased at the end of the curve. The time span
at constant bank angle is calculated in such a way, that the roll out after the curve is
finished, when the desired track angle is reached.
For forward flight, a coordinated turn is defined as a turn without sideslip (i.e. β BX =
0). For sideward and backward flight, we therefore define a coordinated turn as a turn
with a constant sideslip angle (β BX = const). A circle performed in sideward flight is
called Nose Circle if the front of the helicopter points to the center of the circle and Tail
Circle if the tail of the helicopter points to the center of the circle.
For reference trajectory synthesis, in a first step, the curve is calculated for the error
coordinate system. This leads to a generic curve with the angular rates rX (t), qX (t), and
rX (t) about the 1X axis, the 2X axis, and the 3X axis, respectively. The attitude angles
of the error coordinate system ]X with respect to the reference coordinate system ]R are
given by the bank angle ΦXR (t), the pitch angle ΘXR , and the yaw angle Ψ XR . An example
for a curve to the left at a 40◦ bank angle is given in Figure 6.5. The maximum angular
rate to establish the required bank angle was defined as pX,max = 10◦ /s (≈ 1.8 rad/s).
The helicopter’s reference attitude is fully defined by the attitude of the error coordinate
system and the nominal relative attitude vector α? . The reference angular rate vector ω ?
can be calculated by differentiation.

6.3.6 Horizontal Acceleration and Deceleration

The base function for the synthesis of the horizontal acceleration and deceleration seg-
ments was a fifth-order polynomial on the velocity. By defining the start time of the
segment (t0 ), the end time (t1 ) and the velocities uX (t0 ) and uX (t1 ), at the beginning and
at the end of the segment, the polynomial is given by
6.3 The Non-Aerobatic Trajectory Segments 77

4 ΦXR
ΘXR
2
ΘXR [rad]
Ψ XR [rad]
ΦXR [rad]

Ψ XR
0
−2
−4
145 150 155 160 165 170
pX
qX
0.4
rX
pX [rad/s]

0.2
rX [rad/s]
qX [rad/s]

0
− 0.2
− 0.4
145 150 155 160 165 170
Time [s]

Fig. 6.5: Attitude and angular rates of the error coordinate system ]X during a curve to the left at a bank angle
of 40◦ (≈ 0.69 rad).

uX (t) = c5 (t − t0 )5 + c4 (t − t0 )4 + c3 (t − t0 )3 + c0 . (6.18)

The coefficients are calculated as


6 6
c5 = − 5
uX (t0 ) + 5 uX (t1 ) ,
T T
15 15
c4 = 4 uX (t0 ) − 4 uX (t1 ) ,
T T (6.19)
10 10
c3 = − 3 uX (t0 ) + 3 uX (t1 ) ,
T T
c0 = uX (t0 ) ,

where

T = t1 − t0 (6.20)

is the duration of the maneuver. The first two derivatives of the polynomial given by (6.18)
are zero at t0 and at t1 . Thus, the horizontal acceleration and its first time-derivative at
both ends of the segments is zero. An acceleration in the horizontal direction requires a
pitch angle of the reference coordinate system ]X given by
 
XR u̇X
Θ = − arctan . (6.21)
g
Since the acceleration and its first derivative are zero at both ends of the trajectory seg-
ment, the pitch rate at those points vanishes, too. Similar to horizontal flight at constant
velocity, in addition to the pitch angle of the error coordinate system, a relative tilt angle
αBX is necessary to overcome the aerodynamic drag. The relative tilt angle depends on
the velocity and the sideslip and is calculated according to (5.17).
78 6 Reference Trajectory Synthesis

In Figure 6.6, the signals of interest are plotted for an acceleration from hover (uX =
0 m/s) to forward flight at a velocity of uX = 10 m/s. The duration of the acceleration is
T = 5 s.

10
8
uX [m/s]

6
4
2
0
15 16 17 18 19 20 21 22
0
− 0.1
Θ [rad]

− 0.2
− 0.3
− 0.4
15 16 17 18 19 20 21 22
0.1
0.05
δlon [–]

0
− 0.05
− 0.1
15 16 17 18 19 20 21 22
0.25

0.2
δcol [–]

0.15

0.1
15 16 17 18 19 20 21 22

Time [s]

Fig. 6.6: Reference signals for horizontal acceleration.

6.3.7 Offline Calculation of Nominal Control Signals

The nominal control vector u? is calculated offline before the flight and stored as part of
the reference trajectory vector R? . For non-aerobatic flight, the calculation is performed
using the discretized simulation model presented in Chapter 4.

6.4 Aerobatic Flight

The goal of this project was to develop an autopilot which enables the helicopter to fly
aerobatic maneuvers autonomously. For this purpose, manually flown aerobatic figures are
analyzed and the trajectory segments are designed in strong dependence on the manually
flown figures. For all the figures, the same approach is used. As a first step, the same
6.4 Aerobatic Flight 79

maneuver is flown manually by the safety pilot several times. All the signals of interest are
recorded on-board with a sampling rate of 50 Hz for post flight analysis. By comparing the
videos and the flight data, the data sets for further use are sorted out. Among those sets,
where the maneuvers is flown nicest, the ones with similar initial conditions – particularly
in regard to the initial velocity – are selected. The angular rates, accelerations, velocities
and control signals of the selected manually flown maneuvers are plotted together with
the mean value of the corresponding signal. In Figure 6.7 the angular rates p, q and r
of three hammerhead turns to the left are plotted in gray dash-dotted lines. The average
value of the three signals is visualized by a blue solid line. In a next step, cubic splines
are chosen to fit the mean values of the recorded signals. The nodes of the cubic spline
segments are represented by green circles and the resulting spline functions are plotted as
green dashed lines.

0.4

0.2
p [rad/s]

− 0.2

0 1 2 3 4 5 6 7 8 9

0.8
0.6
q [rad/s]

0.4
0.2
0
− 0.2
0 1 2 3 4 5 6 7 8 9

0
− 0.5
r [rad/s]

−1 Manual Flight Data


− 1.5 Mean of Manual Flight Data
Ref for Autonomous Flight
−2 Nodes for Splines

0 1 2 3 4 5 6 7 8 9
Time [s]

Fig. 6.7: The angular rates during hammer head turn left. The measured values, the average progression of the
measured angular rates, and the nominal angular rates designed for autonomous flight are visualized.

The nodes are adjusted manually in order to yield smooth courses of the angular rates,
which result in the desired attitudes. Regarding the pitch rates q(t) and the yaw rates r(t)
depicted in Figure 6.7, some deviations of the nominal values for autonomous flight from
80 6 Reference Trajectory Synthesis

the data measured during manual flight are noticeable. These deviations are programmed
such that the data yields a more perfect nominal maneuver than that obtained by the
manual flight.
In the case of the hammerhead turn shown, the flight data of the manually flown
maneuvers show that the pilot started the rotation about the helicopter’s 3B axis at a
pitch angle Θ ≈ 75◦ . We thus define the nominal pitch rate q ? (green dashed line) above
the measured signals (grey dash-dotted lines) for the first 3.8 s of the maneuver, which
yields a pitch angle of Θ = 85◦ at the time when the rotation about the helicopter’s
vertical axis begins. The nominal pitch rate is then kept constant at zero during the main
part of the yaw phase.
The yaw rate recorded during manual flight reaches saturation of the angular rate
sensor between t = 4.1 s and t = 4.6 s. The nominal yaw rate has to be chosen at a
lower magnitude in order to have some margin between the nominal value and saturation.
Obviously, this results in a somewhat longer phase at constant yaw rate r? (t).
The nominal roll rate p? (t) is chosen to compensate for the error in attitude caused by
the rotation about the yaw axis before a pitch angle of 90◦ is reached. The resulting course
of attitude is depicted in Figure 6.8. For ease of interpretation, the attitude is represented
using Euler angles.
As for non-aerobatic flight, the nominal control vector u? (t) for aerobatic maneuvers
is calculated offline. In Figure 6.9 the control signals recorded during manual flight are
plotted in dash-dotted grey lines. Using the dynamic model developed in Chapter 4, the
control signals necessary to achieve the corresponding angular rates can be calculated.
The control signals calculated are plotted in red dashed lines. Similar to the angular
rates, third-order spline segments are used to generate the nominal control signals. For
the nominal control signal vector for autonomous flight, a compromise between the con-
trol signals generated by the human pilot during manual flight and the control signals
calculated by the dynamic model is chosen.

6.5 On-Board Reconstruction of the Trajectory


The variables of the trajectory are stored only at the nodes evenly spaced along the
reference trajectory. The time interval between two consecutive nodes is dT = 0.2 s, while
the sampling time of the navigation, guidance, and control algorithms is dt = 0.02 s.
Between two consecutive nodes the running variable s monotonously increases from s = 0
at the node k to s = 1 at the next node k + 1. The variable’s value along the trajectory
between the nodes k and k + 1 is given by a cubic smoothing spline of the form

yk (s) = ak + bk s + ck s2 + dk s3 , with 0 ≤ s < 1. (6.22)


6.5 On-Board Reconstruction of the Trajectory 81

− 0.5
Φ [rad]

−1
Manual Flight Data
Ref for Autonomous Flight
− 1.5
0 1 2 3 4 5 6 7 8 9

1.5
1
0.5
Θ [rad]

0
− 0.5
−1
− 1.5
0 1 2 3 4 5 6 7 8 9

0
− 0.5
−1
Ψ [rad]

− 1.5
−2
− 2.5
−3
0 1 2 3 4 5 6 7 8 9
Time [s]

Fig. 6.8: Euler angles during hammerhead turn left. The course of the attitude calculated by the navigation
filter during manually flown maneuvers and the attitude resulting form the nominal angular rates presented in
Figure 6.7. For ease of interpretation, the attitude is represented using Euler angles.

The constants ak , bk , ck , and dk are calculated using the values at nodes k −2 to k +3. The
constants are calculated online using a smoothing spline algorithm developed according to
[28]. In Figure 6.10 the on-board reconstruction of the angular rates during a hammerhead
turn is depicted. The original signals are plotted in green long-dashed lines. The nodes
stored for flight are represented by the green asterisks. The signals reconstructed from
the nodes, using cubic polynomial spline smoothing, are plotted in red short-dashed lines.
Clearly, the reconstruction is not exactly equal to the originally calculated progression of
the signal. The differences are greatest at locations of sharp changes.
All of the nominal values for angular rate, position, velocity, nominal control signals,
sideslip, tilt, and relative roll angles are reconstructed using cubic spline smoothing. For
the interpolation between two attitudes of the reference coordinate system, the Slerp
algorithm given by (4.41) is used.
82 6 Reference Trajectory Synthesis

δlat [–] 0.1

− 0.1

0 1 2 3 4 5 6 7 8 9

0.3
0.2
δlon [–]

0.1

0
0 1 2 3 4 5 6 7 8 9
0.4

0.3
δcol [–]

0.2

0.1
0 1 2 3 4 5 6 7 8 9

0
δyaw [–]

− 0.1 Manual Flight Data


Calculated using Model
− 0.2 Ref for Autonomous Flight
− 0.3 Nodes for Splines
0 1 2 3 4 5 6 7 8 9
Time [s]

Fig. 6.9: Control signals during hammerhead turn to the left. The nominal control signal is designed as a sequence
of third-order polynomials.
6.5 On-Board Reconstruction of the Trajectory 83

0.2
0.15 Original Signal
Nodes
p [rad/s]

0.1 Reconstructed Signal


0.05
0
− 0.05
0 1 2 3 4 5 6 7 8 9

0.8
0.6
q [rad/s]

0.4
0.2
0
− 0.2
0 1 2 3 4 5 6 7 8 9

− 0.5
r [rad/s]

−1

− 1.5

−2
0 1 2 3 4 5 6 7 8 9
Time [s]

Fig. 6.10: On-board reconstruction of the reference signals.


7

Guidance and Control System Design

The knack of flying is learning how to throw yourself at the ground


and miss.
Douglas Adams

In the previous chapter, we discussed the representation and synthesis of reference trajec-
tories. In this chapter, we address the control algorithms that ensure that the helicopter
flies along those trajectories. The H∞ methods applied for controller synthesis are de-
scribed in [4, 10].
The control logic is split up into a cascade of two main loops. The outer, slow-timescale
loop is the guidance loop. The guidance controller is the part of the control logic, which
guides the helicopter along the the reference trajectory. It is responsible for calculating
the attitude and vertical speed required to stay on the reference trajectory, or to lead the
helicopter back to the reference trajectory in the case of an offset.
The inner, fast-timescale loop consists of the attitude control loop and the heave control
loop. The attitude controller is responsible for stabilizing the helicopter at a defined
attitude and for tracking the reference attitude requested by the guidance algorithm while
the heave controller stabilizes the helicopter’s vertical velocity.
In this chapter, we discuss the guidance and control algorithms used in the AkroHeli
project. First, a short overview over the guidance and control structure is given. Then,
each subsystem will be discussed in further detail.

7.1 Control Structure Overview

The guidance and control setup of the AkroHeli can be split up into the subsystems shown
in Figure 7.1.
The first block is the trajectory generator, which reconstructs the reference trajectory
according to the concepts discussed in Section 6.5. It is the source of the reference signals
for the two control loops. The two main loops are the guidance loop and the attitude
86 7 Guidance and Control System Design

t ω
v u
v q ref Attitude

Trajectory
Generator
s q̂ BE Controller
uatt,c
ŝBE q ω BE u
v̂ E
B α 
Guidance wref
q̂ BE
m Heave u 2,c AkroHeli
ŝBE v̂ E
B Controller
v̂ E
B

Fig. 7.1: Block diagram of complete guidance and control scheme.

control loop. The guidance loop is the outer control loop at relatively low bandwidth.
The inner loop is the attitude and heave control loop operating at a higher bandwidth.
The main tasks of each subsystem are discussed below.

Reference Trajectory Generator: The reference trajectory generator calculates the


instantaneous values of the trajectory. This includes the desired position s? , the velocity
v ? , the attitude q ? of the tracking error coordinate system ]X , the maneuver identifier
vector m? , and the relative attitude angle vector α? . The trajectory generator also
calculates the instantaneous feed-forward control signal u? . The trajectory generator
is a finite state machine and will be discussed in Section 7.2.
Guidance Controller (Flight Director): The guidance algorithm compares the in-
stantaneous reference trajectory given by the trajectory generator to the estimates of
the present position ŝBE and the present velocity v̂ E ?
B . Depending on the maneuver m ,
the reference attitude q ref and the reference value for the velocity wref are calculated
such that the helicopter’s flight path and velocity converge to their reference values.
Before entering an aerobatic maneuver, the output of the guidance controller is faded
out, and the guidance loop remains open during the aerobatic flight maneuver. After
the aerobatic flight, the guidance loop is closed again and the guidance controller’s out-
put is faded back in. The guidance controller and guidance algorithms will be discussed
in Section 7.4.
Attitude Controller: The attitude controller has the duties to stabilize the helicopter’s
attitude and to track the reference attitude provided by the guidance algorithm during
non-aerobatic flight. During aerobatic flight, the reference attitude is provided by the
reference trajectory generator. The attitude controller compares the estimated attitude
q̂ BE and the measured angular rates ω BE with the corresponding reference signals. The
7.2 Reference Trajectory Generator 87

correction signals uatt,c are calculated and added to the feed-forward control signals u? .
The attitude controller is addressed in Section 7.5.
Heave Controller: The heave controller is responsible for the control of the velocity in
the 3X direction. In non-aerobatic flight (regular and inverted), the heave controller
calculates the collective pitch signal needed for altitude control. During aerobatic ma-
neuvers, the heave controller loop is opened and the collective pitch is controlled by
feed-forward control only.

7.2 Reference Trajectory Generator

7.2.1 Reference Trajectory Generator as a Finite State Machine

During autonomous flight, the reference trajectory generator calculates the instantaneous
reference signals. As discussed in Section 6.5, the values of the reference signals are stored
at the nodes only. These nodes are used by the finite state machine depicted in Figure 7.2.

InitGuidance
(at hover)

MoveAndRotateTrajectory
k := 1
s := 0

CalculateS
k := k + 1
CalculateTrajNow (s ≥ 1) ∧ (k = kmax )

(s ≥ 1) ∧ (k < kmax )

MaintainAll

Fig. 7.2: Finite state machine, used for on-board reference trajectory reconstruction.

When the guidance is switched on by the safety pilot, the controllers are initialized,
and the beginning of the reference trajectory (the reference point R) is moved to the
position of the helicopter and rotated about the vertical axis such that the 1R axis agrees
with the projection of the helicopter’s longitudinal axis onto the horizontal plane (i.e.,
the 1R axis corresponds to the helicopter’s heading)
88 7 Guidance and Control System Design

sRE = sBE (tInit ) , (7.1)


 
cos (Ψ (tInit )/2)
 
RE
 0 
q =  . (7.2)
 0 

sin (Ψ (tInit )/2)
The position on the reference trajectory between two nodes is defined by the monot-
onously increasing running variable s ∈ [0, 1). At each time step, the new value of the
running variable s is calculated. If the running variable s is greater than or equal to one,
the node-identifier k is increased by one and the running variable s is recalculated. If s
is less than one, the instantaneous values of all of the reference signals are calculated.
The reference signals for position, nominal control signals, and nominal angular rates are
calculated using the cube spline algorithms described in Section 6.5, while the reference
attitude is calculated according to the Slerp algorithm of Section 4.3.4.
Each reference trajectory is designed to end in hover at the initial position. When the
end of the trajectory is reached (k = kmax ), no new reference values are calculated, and
the helicopter stays in hovering flight until the autopilot is switched off and the helicopter
is landed manually.

7.2.2 Calculation of Reference Signals

As discussed in Section 6.1, the reference flight path and the nominal attitude of the
tracking error coordinate system ]X are stored with respect to the trajectory reference
frame and expressed in the ]R coordinate system. The navigation filter, on the other
hand, estimates the position and the attitude of the vehicle in the navigation frame, i.e.,
in the ]E coordinate system. Thus, during autonomous flight, the reference position s? and
the reference attitude q ? of the tracking error coordinate system have to be calculated in
]E coordinates.
The reference position s? is given by

s? = s?XE = sXR + sRE , (7.3)

where the displacement vector sXR is stored in the ]R coordinate system. Expressed in
Earth fixed coordinates, (7.3) can be written as

[s? ]E = [T ]ER [sXR ]R + [sRE ]E , (7.4)

where the transformation matrix [T ]ER is given by the initial heading angle Ψ (tInit )
 
cos Ψ (tInit ) − sin Ψ (tInit ) 0
ER
 
[T ] =   sin Ψ (tInit ) cos Ψ (tInit ) 0. (7.5)
0 0 1
7.2 Reference Trajectory Generator 89

The reference attitude q ? is calculated by multiplying the stored quaternion q XR with the
quaternion q RE that defines the attitude of the trajectory reference coordinate system
with respect to the NED-coordinate system

q ? = q XE? = q RE q XR . (7.6)

7.2.3 Determining the Position on the Reference Trajectory

The nodes of the reference trajectory as stored preflight on board are dT = 0.2 s apart.
The location on the trajectory between two nodes is defined by the running variable s.
The algorithm used to calculate the value of s strongly depends on the maneuver identifier
m at the last node k.
Obviously, in hovering flight the only changing variable is time. The position on the
trajectory therefore must be defined with respect to time. In flight along a path, the time
is not a suitable way to determine the position on the trajectory. Rather, the geograph-
ical location is used to determine the instantaneous location on the trajectory. During
aerobatic flight with a helicopter, the possibilities to correct for a position error during
aerobatic maneuvers is only possible under certain circumstances and many different cases
would have to be taken into account in order to formulate an appropriate guidance law.
Therefore, the aerobatic maneuvers like hammerhead turn, aileron roll, and loop are de-
fined as a predefined course of the helicopter’s attitude over time, and the position on the
reference trajectory is also defined over time.
One of the challenges of this project was to define a law specifying how to switch among
the various definitions of the running variable s along the trajectory during autonomous
flight. In this section, the laws used for the calculation of the running variable s are
presented. In general, the value of s is defined as a function of the move identification
number mID , the time t, and the helicopter’s estimated position ŝBR relative to the
reference point R

s(mID , t, ŝBE ) = ctime (mID )stime (t) + cpos (mID )spos (ŝBE ) (7.7)

with

ctime (mID ) + cpos (mID ) = ctime (mID ) + (1 − fakro )c̃pos (mID ) = 1 . (7.8)

Where fakro is a fading parameter used to fade in aerobatic flight


90 7 Guidance and Control System Design



 0 in the case of non-aerobatic flight
t − tFadeStart


during fade-in before aerobatic flight



 T
FadeIn
fakro = (7.9)
 t − tFadeStart

 1 − during fade-out after aerobatic flight
TFadeOut





1 during aerobatic flight .

In horizontal flight along the trajectory, the running variable depends only on the
position and therefore cpos = 1 and ctime = 0, while in hovering flight and flight at low
velocities, the position on the reference trajectory depends only on time. Thus, in hover
flight, cpos = 0 and ctime = 1. During acceleration, deceleration, and in horizontal flight at
moderate velocities, the value of the parameter c̃pos is defined as



 1 if isHorizontalFlight(mID ) ∧ (u?X ≥ 10 m/s)
 ?
uX − 2
c̃pos = if isHorizontalFlight(mID ) ∧ (2 m/s ≤ u?X < 10 m/s) (7.10)


 8
0 otherwise.

This leads to a smooth transition from guidance in hover to guidance in forward flight.
With (7.9) and (7.10), the parameters cpos and ctime are given by

cpos = (1 − fakro )c̃pos (7.11)

and

ctime = 1 − cpos . (7.12)

Figure 7.3 shows the parameters cpos and ctime along the trajectory. Notice that during
the phase of the aerobatic maneuver when the velocity is high, the value of c̃pos positive,
but cpos vanishes since the fading parameter fakro equals one.
The running variable s is defined as monotonously increasing from s = 0 at node k
to s = 1 at node k + 1. As defined by (7.7), the running variable s is a weighted sum
of the two variables stime and spos . Figure 7.4 visualizes the increase of the value of the
variable stime as a function of time, while Figure 7.5 shows the value of the variable spos
as a function of the position.
We define the time tk as the time when the node k was passed and dT = 0.2 s as the
nominal time span between two nodes of the reference trajectory. The value for stime (t)
can then be evaluated as
t − tk
stime (t) = . (7.13)
dT
7.2 Reference Trajectory Generator 91

uX [m/s] 25
20 uX = 2 [m/s] uX = 10 [m/s]
15
10
5 uX
0
20 30 40 50 60
1
c̃pos
fakro [–]
c̃pos [–]

0.5 fakro

0
20 30 40 50 60
1
ctime [–]
cpos [–]

ctime
0.5 cpos

0
20 30 40 50 60

FadeOutAkro
FadeInAkro

Aerobatics
Time [s]

Fig. 7.3: Values of the parameters cpos and ctime along the trajectory.

k+2
p [rad/s]

k k+1

k
q [rad/s]

k+1
k+1

k k+1 1X 2X
r [rad/s]

1E

( t) sp
sK

E
s XE X os
stime 1 3

tk t tk+1 tk+2
k
Time [s] 2E

3E

Fig. 7.4: Variable stime is a function of time. Fig. 7.5: Variable spos is a function of position.
92 7 Guidance and Control System Design

In order to calculate the value of spos , we use the vector from node k to node k + 1,
which is given by

sK1 K = sK1 E − sKE , (7.14)

and the vector from node k to the estimate of the helicopter’s instantaneous position

sBK (t) = ŝBE (t) − sKE . (7.15)

The variable spos (t) is then calculated as the ratio of the length of the projection of ŝBK (t)
onto sK1 K to the distance between the two nodes k and k + 1:

ŝBE (t) · sK1 K


spos (t) = . (7.16)
|sK1 K |

The denominator in the equation above is small for small velocities (i.e., it is zero at hover
flight). Numerical problems are avoided if the expression is only evaluated for segments
of the reference trajectory with a reasonable velocity. According to (7.10), c̃pos differs
from zero only for velocities above 2 m/s. Thus, (7.16) is only evaluated if ux > 2 m/s.
Furthermore, the calculation in (7.16) ignores the fact that the reference path between
two nodes can be curved. The resulting error is small compared to the error resulting from
navigation inaccuracy and thus can be neglected. The effect of navigation inaccuracies on
the position on the reference trajectory are bounded by the following restrictions on spos

0 ≤ spos (t) ≤ 1 ,
spos (tb ) ≥ spos (ta ) if tb ≥ ta , (7.17)
0.5 stime (t) ≤ spos (t) ≤ 2 stime (t) .

When passing a node, spos and stime are both set to zero.

7.3 Guidance and Control Strategy for Aerobatic Maneuvers

The main advantage of a helicopter over a fixed-wing aircraft is its ability to hover and to
move in any direction, which makes a helicopter a very versatile flying object. However,
the fact that the lift force and the propulsion force both are produced by the same actuator
(i.e., the main rotor) is a drawback during aerobatic flight. Since the lift force and the
propulsion force are produced as components of the same thrust vector, they cannot be
controlled independently. Thus, it is impossible to control the helicopter’s velocity along
a reference flight path and its attitude independently.
During the climb phase of a hammerhead turn, for example, the preferred attitude
before starting the rotation about the yaw axis is such that the nose of the helicopter
7.4 Guidance Controller 93

points straight up, while the preferred flight path also points straight up. Thus there
is no thrust produced by the main rotor, and the velocity decreases due to gravity. An
intentional change of the velocity thus would have to be initiated by a rotation about the
helicopter’s lateral axis in order to produce the thrust required for the intended change of
velocity. This rotation would lead to a movement away from the desired attitude and away
from the reference path. A similar problem is faced if the helicopter is off track during
an aerobatic maneuver. The helicopter’s position can only be influenced if the main rotor
produces thrust and the tilt angle needed for such a correction strongly depends on the
instantaneous thrust.
Another problem that has to be dealt with during aerobatic flight is the marginal
quality of the solution of the navigation filter, which is not as smooth as during level
flight. During an aerobatic maneuver or shortly thereafter, steps of 5 m to 10 m in the
position estimated by the navigation filter are not uncommon, while an average loop
flown with the AkroHeli has a diameter of about 25 m.
As a consequence of these facts, we decided that the guidance loop has to be opened
shortly before starting aerobatic flight. During aerobatic maneuvers, only the helicopter’s
attitude is controlled. After the maneuver, the reference flight path is moved to the heli-
copter’s instantaneous position, and the guidance loop is closed again.
For opening and closing the guidance loop, the relevant error signals and the state
variables of the controllers are faded out or faded in, respectively. This ensures a smooth
transition between guided and unguided flight. The attitude control loop remains closed
throughout the duration of the autonomous flight.

7.4 Guidance Controller

In this section, the main aspects of guidance are covered. The guidance controller’s main
task is to calculate the attitude and the vertical velocity needed for the helicopter to stay
on the reference flight path and to move along it at a given velocity, or to rejoin the
reference flight path in the case of an offset. The guidance block of Figure 7.1 is drawn
in more detail in Figure 7.6. The guidance controller itself is a cascade of two loops.
The outer loop controls the position, while the inner loop controls the velocities. The
reference signals for position control are provided by the reference trajectory generator.
The reference signals for velocity control are the sums of the reference signals given by
the reference trajectory generator and the correction signals calculated by the position
controller. Depending on the flight maneuver mID , the loops are closed, open, or partly
open.
94 7 Guidance and Control System Design

q
v  uX
 α
wX

calcQuatRef
m q ref
e X1 s yX1 s uref e X1 v ∆Θ SX
KX 1 s KX 1 v
1 − fakro
s sBX e X2 s yX2 s vref e X2 v ∆ΦSX
1 − fakro KX2 s – KX2 v
ŝBE – e X3 s yX3 s wref
KX 3 s
v̂ E
B

ŝBE

Fig. 7.6: Detailed block diagram of the guidance controller.

7.4.1 Position Control

The reference position s? is compared with the position ŝBE estimated by the extended
Kalman filter. This results in the deviation of the helicopter’s position from the reference
position and is given by

sBX = s? − ŝBE . (7.18)

For control purposes, the vector is split up into its components in the error coordinate
system ]X :
 
sBX1
[sBX ]X = 
 
 BX2  .
s (7.19)

sBX3

Notice that the deviation sBX1 in the 1X direction vanishes during flight at higher velocities
due to the definition of the position of the coordinate system ]X . The error signals fed
into the position controllers KXi s depend on the value of the fading variable fakro
   
eX1 s sBX1
 eX s  = (1 − fakro ) [sBX ]X = (1 − fakro )  sBX  .
   
 2   2 
(7.20)
eX3 s sBX3
In non-aerobatic flight, the value of the fading variable is fakro = 0, and the error signals
are fed into the position controllers unchanged. During aerobatic flight, the value of the
fading variable is fakro = 1 and the error signals fed into the position controllers (and
therefore the correction signals yXi s ) are zero. Thus, the position control loop is open
during aerobatic flight.
The correction signals yXi s , calculated by the position controllers KXi s , are added to
the components u?X and wX
?
of the reference velocity vector v E? 1
X . This leads to an adjusted
reference velocity vector
1
By definition the velocity in the 2X direction is vX
?
(t) ≡ 0 throughout the entire reference trajectory.
7.4 Guidance Controller 95
   
uref u? + yX1 s
 E X    X 
v B ref = 
 vref  =  yX2 s  .
   (7.21)
?
wref wX + yX3 s

The first two components of the reference velocity vector are fed into the velocity control
part of the guidance controller, while the last component is fed directly into the heave
controller.

7.4.2 Velocity Control

The first two components of the reference velocity vector given in (7.21) provide the
velocity controller with the reference signals. The velocity controller’s task is to achieve
the adjusted reference velocities uref and vref in the 1X direction and in the 2X direction.
These velocities guarantee a smooth approach of the reference flight path in case of an
offset. In order to produce an acceleration, which results in a change of velocity, the main
rotor thrust vector must be tilted in the corresponding direction. Thus, the only possibility
to reach the reference velocities is to change the helicopter’s attitude. As discussed earlier,
the goal was to find an algorithm, which allows the helicopter to follow the reference flight
path at any sideslip angle. Therefore, we need a change of attitude in regard to the error
coordinates system ]X , which can be applied independently of the sideslip angle.
To do so, we introduce the attitude error coordinate system ]Y . The attitude of the
new coordinate system ]Y is defined relative to the position error coordinate system ]X
a sequence of rotations. The rotations include the nominal relative attitude vector α?
and the attitude correction angles ∆ΘY X and ∆ΦY X . While the nominal relative attitude
vector is given by the trajectory, the attitude correction angles are calculated by the
velocity controller and therefore are the control variables used to adjust the velocity.
The deviations in velocity are calculated by comparing the estimated velocity v̂ E
B of the
helicopter to the adjusted reference velocities uref and vref . The deviation vector is split
up into its components in the (1X , 2X ) plane and is multiplied by the fading expression
(1 − fakro ) before the errors are fed into the controllers KX1 v and KX2 v . The effective
error vector therefore is given by
" # " #
eX1 v uref − v̂BE1
= (1 − fakro ) . (7.22)
eX2 v vref − v̂BE2

During guided flight, the full deviation from the reference velocity vector is fed into the
controllers, while during aerobatic flight, the deviation signals are faded out and the
velocity control loop remains open.
The output of the velocity controller consists of the two attitude correction angles
∆ΘY X and ∆ΦY X , which define the correction of attitude needed in order to achieve the
96 7 Guidance and Control System Design

adjusted reference velocities. The corrected reference attitude is described by the attitude
error coordinate system ]Y relative to the position error coordinate system ]X . The rotation
sequence will be discussed in the next section.

7.4.3 Calculation of the Reference Attitude

The main task of the guidance algorithm is to calculate the attitude needed in order for
the vehicle to follow the reference trajectory. The reference trajectory defines the attitude
of the error coordinate system ]X by the unit quaternion

q XE = q RE q XR (7.23)

and the nominal relative attitude αBX? . Using this information, the nominal attitude of
the helicopter can be calculated. However, in the case of an offset, the correction angles
∆ΘY X and ∆ΦY X have to be applied, for the vehicle to return to the reference flight
path. The task of the last block in Figure 7.6 (calcQuatRef) is to combine the information
received from the reference trajectory generator with the output signals of the velocity
controller and to calculate the resulting reference attitude.
The nominal tilt angle αBX? is the relative tilt angle needed in order to produce
sufficient thrust in the 1X direction to follow the reference path at the requested velocity.
The correction angle ∆ΘY X is the control signal which changes the velocity vector’s
component in the 1X direction. Therefore, the pitch angle of the instantaneous reference
attitude coordinate system ]Y relative to the position error coordinate system ]X is given
as

ΘY X = αBX? + ∆ΘY X . (7.24)

The reference value for the relative roll angle γ BX ? only depends on the maneuver identifier
mID and will be discussed later. For now, the correction angle ∆ΦY X is regarded as the
only rotation in the roll direction

ΦY X = ∆ΦY X . (7.25)

We define the intermediate coordinate system ]Y , by its rotation quaternion q Y X relative


e e

to the position error coordinate system ]X as


 
cos (ζ/2)
 
Ye X
c1 sin (ζ/2)
q =
c sin (ζ/2) ,
 (7.26)
 2 
0

where the variables ζ, c1 , and c2 are defined as


7.4 Guidance Controller 97
q
ζ = (ΘY X )2 + (ΦY X )2

0, if ζ = 0,


c1 = (7.27)
ΦY X
, else ,



ζ

0, if ζ=0


c2 =
ΘY X
, else .



ζ

For the yaw angle, no correction signal is calculated by the guidance law. The yaw
angle of the reference attitude q ref is directly given by the nominal sideslip angle β BX? :

Ψ Y X = β BX ? . (7.28)

The attitude of the second intermediate coordinate system ]Y is given by the rotation
e
e

about the 3Y axis:


e

  
cos β BX ? /2
 
Ye Ye
e  0 
q =  . (7.29)
 0 

BX ?

− sin β /2

The last rotation to reach the reference attitude is the rotation about the 1Y axis by the
e
e

relative roll angle γ BX ? :


 
cos γ BX ? /2
 BX ?

 sin γ /2 
qSY = 
e
e , (7.30)

 0 

0

where the relative roll angle γ BX ? can attain the following values:



 π in inverted non-aerobatic flight

γ BX ? = γ BX ? (t) ∈ (−π , π] during an aileron roll maneuver (7.31)



0 otherwise .

All that has to be done now is to combine the rotations. This can be done using
quaternion multiplication in forward order. We receive the reference attitude
˜ ˜
q ref ≡ q Y R = q RE q XR q Ỹ X q Ỹ Ỹ q Y Ỹ , (7.32)

which is fed into the attitude controller.


98 7 Guidance and Control System Design

7.4.4 Guidance Controller Synthesis using the H∞ Method

Synthesis of the Position Controller

The position controller comprises three independent SISO controllers KX1 s , KX2 s , and
KX3 s for the axes 1X , 2X , and 3X , respectively. Since in all three cases, the state to be
controlled is a position and the control variable is a velocity, the plant can be modeled as
an integrator, in each case

ẋ(t) = Ax(t) + Bu(t)


(7.33)
y(t) = Cx(t) + Du(t)

with

A = 0, B = 1, C = 1, D = 0.

The plant is scaled using the scaling matrices Tu , Tx and Ty

ẋ(t) = Âx(t) + B̂u(t) = Tx−1 ATx x(t) + Tx−1 BTu u(t)


(7.34)
y(t) = Ĉx(t) + D̂u(t) = Ty−1 CTx x(t) + Ty−1 DTu u(t)

with the scaling factors

1X direction: Tx = 5 m−1 , Ty = 5 m−1 ,


   
Tu = 5 [s/m] ,
2X direction: Tx = 5 m−1 , Ty = 5 m−1 ,
   
Tu = 5 [s/m] ,
3X direction: Tx = 6 m−1 , Ty = 6 m−1 .
   
Tu = 3 [s/m] ,

For each path, a controller is designed using the H∞ method. The GS/T weighting
scheme with input weights is used for controller synthesis [4]. The scaled plant Gs is
augmented as shown in Figure 7.7, which leads to the following transfer function Tzw for
the augmented plant
" #
−Wū Tu Wν Wū KSe Wr
Tzw = . (7.35)
Se Gs Wν Te Wr

The value of Wū must be small for the problem to be feasible. The product GsWν weighs
the sensitivity Se , while Wr weights the complementary sensitivity Te . For a solution
which fulfills γ < 1, the inverse of the weights define upper bounds for the corresponding
transfer functions.
The following weights are chosen for controller synthesis:

Wū = 0.001 (7.36)

to fulfill the mathematical requirements, and


7.4 Guidance Controller 99

Wū
zū 
 wν
Wν z
zy
w
wr
Wr

ū u y e = ỹ
GS

Fig. 7.7: GS/T augmentation scheme with input weights.

ων1 ων2
s+ Mν1
s+ Mν2
Wν (s) = · (7.37)
Bν1 s + ων1 Bν2 s + ων2
with the parameters

1X direction: ων1 = 0.125 [rad/s] , Mν1 = 2 , Bν1 = 0.05 ,


ων2 = 0.005 [rad/s] , Mν2 = 0.5 , Bν2 = 10 ,
2X direction: ων1 = 0.3 [rad/s] , Mν1 = 20 , Bν1 = 0.1 ,
ων2 = 0.001 [rad/s] , Mν2 = 0.01 , Bν2 = 5 ,
3X direction: ων1 = 0.055 [rad/s] , Mν1 = 0.3 , Bν1 = 0.001 ,
ων2 = 0.005 [rad/s] , Mν2 = 10 , Bν2 = 10 ,

and
ωr
s+ Mr
Wr (s) = (7.38)
Br s + ωr
with the parameters

1X direction: ωr = 0.5 [rad/s] , Mr = 1.2 , Br = 0.001 ,


2X direction: ωr = 0.3 [rad/s] , Mr = 1.2 , Br = 0.001 ,
3X direction: ωr = 2 [rad/s] , Mr = 1.1 , Br = 0.005 .

The inverse of the weights and the resulting transfer functions are plotted in Figure 7.8
to Figure 7.10.
The resulting controllers K are scaled back using the scaling matrices Ty−1 and Tu

Kreal = Tu KTy−1 , (7.39)

and their orders are reduced. The singular values of the scaled controllers K, of the
corresponding unscaled controllers Kreal , and of the controllers with reduced order Kred
are shown in Figure 7.8 to Figure 7.10. For all the position control loops, good robustness
is achieved (Semax < 0.8 dB and Temax < 0.5 dB).
100 7 Guidance and Control System Design

40 0
30
−20

Singular Values [dB]


Singular Values [dB]

20
−40
10
0 −60
(Gs Wν )−1
−10
Se −80
K
−20 Wr−1
Te −100 Kreal
−30 Kred
Le
−40 −120 −3
10−3 10−2 10−1 100 101 102 103 10 10−2 10−1 100 101 102 103
Frequency [rad/s] Frequency [rad/s]

Fig. 7.8: Singular values of the position loop in the 1X direction.

40 (Gs Wν )−1 20
Se
30 0
Wr−1
Singular Values [dB]

Singular Values [dB]

20 Te −20
10 Le
−40
0
−60
−10
−80 K
−20
Kreal
−30 −100
Kred
−40 −120
10−3 10−2 10−1 100 101 102 103 10−3 10−2 10−1 100 101 102 103
Frequency [rad/s] Frequency [rad/s]

Fig. 7.9: Singular values of the position loop in the 2X direction.

40 (Gs Wν )−1 40
Se
30 30
Wr−1
Singular Values [dB]

Singular Values [dB]

20 Te 20
10 Le 10
0 0
−10 −10
K
−20 −20
Kreal
−30 −30 Kred
−40 −40
10−3 10−2 10−1 100 101 102 103 10−3 10−2 10−1 100 101 102 103
Frequency [rad/s] Frequency [rad/s]

Fig. 7.10: Singular values of the position loop in the 3X direction.


7.4 Guidance Controller 101

Synthesis of the Velocity Controller

The synthesis of the velocity controller is carried out similar to the synthesis of the position
controller. Again, a simple model and the GS/T weighting scheme are used for each path
separately. The velocity in the 3X direction is controlled by the heave controller discussed
in Section 7.6. Thus, guidance with regard to velocity is provided only in the 1X and in
the 2X directions.
In order to produce a force in any direction, the helicopter’s thrust vector has to
be tilted into this direction. Regarding the direction of flight, the thrust vector has to
compensate for aerodynamic drag. The following equation thus holds:
d 1
m uX = − ρACw uX 2 − T sin ΘBX , (7.40)
dt 2
where T is the total thrust produced by the main rotor, ρ is the air density, A represents
the surface exposed to the air stream, Cw is the drag coefficient, and m is the total mass
of the helicopter.
The pitch angle ΘBX can be split up into two components. The nominal relative tilt
angle αBX? compensates for the aerodynamic drag, while the other one, called ∆ΘY X , is
responsible for any change in velocity:

ΘBX = αBX? + ∆ΘY X . (7.41)

For controller synthesis, (7.40) is reduced to

d T
uX ≈ − sin ΘBX . (7.42)
dt m
Assuming the nominal value for the correction pitch angle ∆ΘY X to be zero, the
parameters of the linear state space system of the form given in (7.33) have the following
values
T
A = 0, B=− = −9.81 [m/s2 ], C = 1, D = 0.
m
In the 2X direction, there is no nominal tilt angle to compensate for aerodynamic
drag. The corresponding model used for controller synthesis is the same one as in the 1X
direction
d T T
vX = sin ΦBX ≈ ∆ΦY X . (7.43)
dt m m
The resulting linear state space system is identical to the one in the 1X direction.
For controller synthesis, again, the GS/T weighting scheme is used. The plant is scaled
using the following factors:
102 7 Guidance and Control System Design

1X direction: Tu = 0.04 rad−1 ,


 
Tx = 5 [s/m] , Ty = 1 [s/m] ,
2X direction: Tu = 0.17 rad−1 ,
 
Tx = 5 [s/m] , Ty = 1 [s/m] .

The weighting function Wν of (7.37) is used to weigh the product of the scaled plant
Gs and the sensitivity Se . The parameters chosen for synthesis are

1X direction: ων1 = 0.1 [rad/s] , Mν1 = 0.25 , Bν1 = 0.005 ,


ων2 = 0.001 [rad/s] , Mν2 = 0.01 , Bν2 = 5 ,
2X direction: ων1 = 0.47 [rad/s] , Mν1 = 1.8 , Bν1 = 0.05 ,
ων2 = 0.001 [rad/s] , Mν2 = 0.01 , Bν2 = 5 .

The weighting function Wr applied on the complementary sensitivity Te is


ωr1 ωr2
s+ Mr1
s+ Mr2
Wr (s) = · (7.44)
Br1 s + ωr1 Br2 s + ωr2

1X direction: ωr1 = 2 [rad/s] , Mr1 = 1.3 , Br1 = 0.001 ,


ωr2 = 3.2 [rad/s] , Mr2 = 1 , Br2 = 0.001 ,
2X direction: ωr1 = 1.3 [rad/s] , Mr1 = 1.15 , Br1 = 0.001 ,
ωr2 = 5 [rad/s] , Mr2 = 1 , Br2 = 0.001 .

The singular values of the sensitivity functions and the complementary sensitivity
functions for the velocity controllers are depicted in Figure 7.11 and in Figure 7.12. Again,
good robustness was achieved with maximal values for the resonance peaks below 1 dB
(Semax , Temax < 0.7 dB).

40 (Gs Wν )−1 20
Se
30
Wr−1 40
Singular Values [dB]

Singular Values [dB]

20 Te
Le 0
10
0 −20
−10
−40
K
−20
−60 Kreal
−30 Kred
−40 −80 −3
10−3 10−2 10−1 100 101 102 103 10 10−2 10−1 100 101 102 103
Frequency [rad/s] Frequency [rad/s]

Fig. 7.11: Singular values of the velocity loop in the 1X the direction.
7.5 Attitude Control 103

40 (Gs Wν )−1 40
Se
30
Wr−1 20

Singular Values [dB]


Singular Values [dB]

20 Te
Le 0
10

0 −20
−10
−40
K
−20
−60 Kreal
−30 Kred
−40 −80
10−3 10−2 10−1 100 101 102 103 10−3 10−2 10−1 100 101 102 103
Frequency [rad/s] Frequency [rad/s]

Fig. 7.12: Singular values of the velocity loop in the 2X direction.

7.5 Attitude Control

For the fast-timescale, the control loop consists of the attitude controller and the heave
controller. For attitude control, the three rotational degrees of freedom about the heli-
copter’s body fixed axes 1B , 2B , and 3B (i.e., roll, pitch, and yaw) are of interest. The
translational degree of freedom in the direction of the main rotor trust vector is regarded
as independent of the attitude and will be addressed in Section 7.6.
As discussed in Section 5.5, cross-coupling effects between the rotational axes of free-
dom are small. Thus, for controller design, the channels were regarded as uncoupled. For
the roll and the pitch channel, the controllers are augmented with gain-scheduling at the
output. A detailed block diagram of the attitude controller is shown in Figure 7.13.

v
∆Φ Gain
u
uk,1
q ref p ep Kroll Scheduling

Calculate – v q̂ BE
Correction ∆Θ Gain uc u
uk,2
q̂ BE Angle q eq Kpitch Scheduling
ω BE

∆Ψ AkroHeli
r er Kyaw

Kheave
r
q
p

Fig. 7.13: Detailed block diagram of the attitude controller.


104 7 Guidance and Control System Design

7.5.1 Calculation of the Attitude Error and the Correction Angles

The task of the attitude controller is to ensure that the helicopter follows the reference
attitude provided by the guidance logic. The reference attitude is given by the unit quater-
nion q ref , while the instantaneous attitude of the helicopter estimated by the extended
Kalman filter is given by q̂ BE . The attitude error has to be calculated and then the error
has to be split up into the corresponding errors for each axis.
The error attitude is calculated by quaternion multiplication of the conjugate of the
quaternion q̂ BE and the reference attitude quaternion q ref
 
qcorr,0
 
qcorr,1 
q corr =   = q̂ BE∗ q ref . (7.45)
q 
 corr,2 
qcorr,3

The correction quaternion q corr describes the rotation to be performed in order to reach
the reference attitude, starting from the present attitude. Thus, the total rotation angle
required is given by

αcorr = 2 arccos (qcorr,0 ) .

The correction angle αcorr is projected onto the ]B axes, which leads to the three compo-
nents of the attitude error

∆Φ = cqcorr,1 ,
∆Θ = cqcorr,2 , (7.46)
∆Ψ = cqcorr,3 .

The scaling factor c is given by



0 if αcorr = 0 (and therefore qcorr,0 = 1),



c= α (7.47)

 q corr otherwise.
2
 1 − qcorr,0

An simultaneous rotation about the three body-fixed axes by the corresponding correction
angles defined in (7.46) will result in the requested attitude.

7.5.2 Synthesis of the Attitude Controller

The linear models of Section 4.7 with the parameters identified in Section 5.3 are used
for controller design. For controller synthesis the plants of the roll and the pitch axes are
scaled using the scaling matrices
7.5 Attitude Control 105
 
0.35 0 0 " #
  0.35 0
Tu = 0.2 , Tx =  0
 1 [s] 0 , Ty = .
0 1 [s]
0 0 0.2
For the yaw axis the scaling matrices
 
0.35 0 0 0
  " #
 0 1 [s] 0 0 0.35 0
Tu = 0.2 , Tx =  0
, Ty = ,
 0 0.2 0 0 1 [s]
0 0 0 1
are used.
Additionally to the controlled signals (the attitude angles), the angular rates p, q,
and r are measured by the IMU. This additional information can be used, to improve
the controllers performance. The extended GS/T weighting scheme shown in Figure 7.14
allows the synthesis of such controllers.

Wū
zū 
 wν
z
zy
w Wy
wr
Wr

ya
ū u e = ỹ
GS yr –

Fig. 7.14: Augmented plant for extended GS/T weighting scheme.

The output yr represents the angular rate about the specified axis, while ya represents
the angle itself and therefore the integral of yr . An application of this concept to helicopter
position control can be found in [32]. For more detail the reader is referred to [4]. The
plant Gs can be split up into two subsystems
" #
Gsa
Gs = , (7.48)
Gsr
where Gsa is the transfer function from the plant’s input to the output ya (i.e., the angle),
and Gsr is the transfer function from the plant’s input to the output yr (i.e., the angular
rate). The transfer function Tzw for the extended GS/T weighting scheme is
" #
−Wū Tu Wū Su KWr
Tzw = . (7.49)
Wy Gsa Su Wy Gsa Su KWr
106 7 Guidance and Control System Design

The weight Wr has to be small and have feed-through of full rank. If so, the right-hand
column of Tzw as given in (7.49) is small compared with the left-hand column. Thus, the
inverse of the weight Wū is an upper limit for the complementary sensitivity function Tu
and the inverse of the product Wy Gsa is an upper bound for the sensitivity function Su .
The weights chosen for controller synthesis are given below. The singular values of the
corresponding bounds and of the resulting sensitivity functions are plotted in Figure 7.15
for the roll axis, in Figure 7.16 for the pitch axis, and in Figure 7.17 for the yaw axis.
Also the singular values of the resulting controllers are depicted in these figures.

40 60
30 40

Singular Values [dB]


Singular Values [dB]

20
20
10
0
0
(Wy Gs (1, 1))−1 −20
−10 Su
Wū−1 −40 K
−20 Tu
Kreal
−30 Lu −60
Kred
−40 −80
10−3 10−2 10−1 100 101 102 103 10−3 10−2 10−1 100 101 102 103
Frequency [rad/s] Frequency [rad/s]

Fig. 7.15: Singular values for the roll axis of the attitude controller.

40 40
30 30
Singular Values [dB]
Singular Values [dB]

20 20
10 10
0 0
(Wy Gs (1, 1))−1
−10 Su −10
Wū−1 K
−20 −20
Tu Kreal
−30 Lu −30 Kred
−40 −3 −40 −3
10 10−2 10−1 100 101 102 103 10 10−2 10−1 100 101 102 103
Frequency [rad/s] Frequency [rad/s]

Fig. 7.16: Singular values for the pitch axis of the attitude controller.

For all axes, the weighting function Wd was chosen as


" #
10−4 0
Wd = . (7.50)
0 10−4
7.5 Attitude Control 107

40 20
30 10

Singular Values [dB]


0
Singular Values [dB]

20
−10
10
−20
0
(Wy Gs (1, 1))−1 −30
−10 Su
Wū−1
−40 K
−20 Tu −40 Kreal
Lu
−30 −60 Kred
−40 −3 −70 −3
10 10−2 10−1 100 101 102 103 10 10−2 10−1 100 101 102 103
Frequency [rad/s] Frequency [rad/s]

Fig. 7.17: Singular values for the yaw axis of the attitude controller.

The weighting function Wū , weighting the complementary sensitivity Tu was chosen to be
of the form
 
s + ωn 10Zū,1 s + ωn 10Zū,2
Wū = kū . (7.51)
(s + ωn 10Pū,1 ) (s + ωn 10Pū,2 )
The frequency ωn is the crossover frequency of the scaled plan Gsa . The poles and zeros
of the weighting function were chosen relative to the crossover frequency. The static gain
kū is given by the maximum desired complementary sensitivity T̂ and the locations of the
poles and zeros:
“ ”

Pū,1 +Pū,2 −Zū,1 −Zū,2 − 20
kū = 10 . (7.52)

The product Wy Gsa defines the upper boundary for the sensitivity function Su . The
weight Wy is chosen as
 
s + ωn 10Zy,1 s + ωn 10Zy,2
Wy = ky . (7.53)
(s + ωn 10Py,1 ) (s + ωn 10Py,2 )
The parameters used for controller synthesis of the attitude controllers are

roll axis: ωn = 1.35 [rad/s] , T̂ = 1.2 , ky = 2.51 ,


Pū,1 = 4.2 , Pū,2 = 4.2 , Zū,1 = 1.25 , Zū,2 = 0.3 ,
Py,1 = 1.1 , Py,2 = −3.3 , Zy,1 = 0.2 , Zy,2 = −0.8 ,
pitch axis: ωn = 1.51 [rad/s] , T̂ = 2.0 , ky = 2.24 ,
Pū,1 = 4.16 , Pū,2 = 4.16 , Zū,1 = 1.06 , Zū,2 = 0.41 ,
Py,1 = 0.56 , Py,2 = −3.84 , Zy,1 = 0.16 , Zy,2 = −1.84 ,
yaw axis: ωn = 5.30 [rad/s] , T̂ = 1.5 , ky = 3.98 ,
Pū,1 = 3.9 , Pū,2 = 3.9 , Zū,1 = 0.9 , Zū,2 = 0.1 ,
Py,1 = 0.9 , Py,2 = −3.1 , Zy,1 = −0.1 , Zy,2 = −2.1 .
108 7 Guidance and Control System Design

The resulting controllers are reduced in order using Hankel singular-value-based algo-
rithms. As can be seen in Figure 7.15 to Figure 7.17, good robustness was achieved for all
axes. In Table 7.1, the maximal values of the sensitivity function and of the complementary
sensitivity function are listed.

Table 7.1: Robustness achieved for attitude controllers


Sumax Tumax
Roll axis 0.97 dB 0.31 dB
Pitch axis 0.76 dB 0.06 dB
Yaw axis 2.63 dB 0.09 dB

7.5.3 Gain-Scheduling Law for Attitude Control

In Section 4.7, two linear parameter-varying models describing the roll and the pitch
dynamics of the helicopter were introduced. Both models feature a varying parameter at
the input gain matrix B(uB (t), vB (t)). Thus, apart from the input matrix, the behaviors
of the roll dynamics and of the pitch dynamics can be regarded as linear and constant
throughout the flight envelope. The control loop for both the roll dynamics and the pitch
dynamics can be represented by the detailed block diagram drawn in Figure 7.18. The
yet unknown gain-scheduling law is represented by S(uB , vB ).


r e uk uc x y
K S(uB , vB ) B(uB , vB ) C

K(uB , vB ) A
G(uB , vB )

Fig. 7.18: Attitude control loop with gain-scheduling.

Clearly, the control loop consists of the parameter-varying model G(uB (t), vB (t)), and
the nonlinear gain-scheduling controller K(uB (t), vB (t)). The gain-scheduling controller
itself is a serial connection of the linear controller K(s) designed in the previous sections
and the nonlinear gain-scheduling function S(uB (t), vB (t)).
The velocity-dependent parameter is given by

Aδlat (uB , vB ) = A?δlat (1 + kup |uB | + kvp |vB |)

for the roll dynamics and by


7.6 Design of the Heave Controller 109

Bδlon (uB , vB ) = Bδ?lon (1 + kuq |uB | + kvq |vB |)

for the pitch dynamics. We choose the gain-scheduling law for the output of the controller
of the roll axis as follows:
1
uc,1 = uk,1 , (7.54)
1 + kup |uB | + kvp |vB |

and the gain-scheduling law for the output of the controller of the pitch axis as
1
uc,2 = uk,2 . (7.55)
1 + kuq |uB | + kvq |vB |

Obviously, the serial connection of the nonlinear gain-scheduling law S(uB , vB ) and the
parameter-varying input gain matrix B(uB , vB ) leads to

B(uB , vB )S(uB , vB ) ≡ 1 . (7.56)

Thus, we now have a loop gain L(jω) which is independent of the velocities uB (t) and
vB (t). In other words, the linear part K(s) of the controller K(uB , vB ) can be chosen con-
stant throughout the flight envelope of the helicopter. The gain-scheduling laws given by
(7.54) and in (7.55) fully compensate for the velocity-dependent variation of the dynamics.
Notice that the values u(t) and v(t) used for gain-scheduling are calculated from the
reference value rather than based on the estimates of the navigation filter. This is done in
order to avoid causing any steps in the control signals fed into the servos, if the solution
of the navigation filter shows large steps.

7.6 Design of the Heave Controller

The main rotor thrust is the helicopter’s only source of lift and propulsion. While propul-
sion is controlled by the tilt angle of the thrust vector, the lift is controlled by the amount
of thrust produced by the main rotor collective pitch angle. The reference velocity wref in
the direction of the 3X axis is calculated by the guidance controller and compared with
the corresponding velocity component v̂BE3 estimated by the navigation filter. The devi-
ation is scaled with the fading expression (1 − fakro ) and the sign is adjusted according
to the flight condition before being fed into the heave controller. The input to the heave
controller is given by
 
E


 (1 − f akro ) w ref − v̂B3 during regular flight,
 
ex3v = −(1 − fakro ) wref − v̂BE3 during inverted flight, (7.57)



0, during aerobatic maneuvers.
110 7 Guidance and Control System Design

The heave controller’s output uc,3 is again scaled with the fading expression (1 − fakro )
before being added to the nominal control vector u? . During aerobatic flight, the heave
control signal uc,3 vanishes and the nominal collective pitch value is directly fed into the
collective pitch servo.
The heave controller is designed based on the linear model presented in Section 4.7.4.
The S/KS/T weighting scheme depicted in Figure 7.19 is used for controller synthesis.
The transfer function Tzw of the augmented plant is given by
 
We Se
 
Tzw =  W
 u KS e .
 (7.58)
Wy Te

Thus, the sensitivity Se and the complementary sensitivity Te are weighted by We and
Wy , respectively. The weighting function Wu weighs KSe and must have full rank in order
to fulfill the mathematical requirements [4].

We
ze 
zu
Wu z

zy
Wy
w

u y e = ỹ
GS

Fig. 7.19: Augmented plant for S/KS/T weighting scheme.

For controller synthesis, the plant is scaled using the scaling matrices
   
s
3 0 hsi
Tu = 0.2 , Tx =  m h 2i , T y = 3 .
0 5 sm m

The weighting function We , which defines an upper boundary for the sensitivity by its
inverse, is chosen of the form
s
M
+ ωe
We = . (7.59)
s + ωAe

The weighting function Wy , which provides an upper boundary for the complementary
sensitivity, is chosen of the form
7.6 Design of the Heave Controller 111
ωy1 ωy2
s+ My1
s+ My2
Wy = · . (7.60)
By1 s + ωy1 By2 s + ωy2

In order to force the resulting controller to exhibit only a small gain at high frequencies,
a dynamic weighting function Wu is chosen as follows:
s + ωMu
Wu = . (7.61)
Bu s + ωu
The parameters we use for controller synthesis are the following:

Me = 1.1 , Ae = 0.001 , ωe = 0.85 [rad/s],


My1 = 2 , By1 = 0.001 , ωy1 = 5.5 [rad/s],
My2 = 1 , By2 = 0.001 , ωy2 = 8 [rad/s],
Mu = 104 , Bu = 0.008 , ωu = 60 [rad/s].

Figure 7.20 shows the singular values of the inverted weights and the singular values of
the resulting transfer functions for the sensitivity, the complementary sensitivity, and the
loop gain in the left-hand plot. In the right-hand plot, the singular values of the scaled
controller, the unscaled controller, and the controller with reduced order are depicted.

40 We−1 40
Se
30 30
Wy−1
Singular Values [dB]

Singular Values [dB]

20 20
Te
10 Le 10
0 0

−10 −10
K
−20 −20
Kreal
−30 −30 Kred
−40 −40
10−3 10−2 10−1 100 101 102 103 10−3 10−2 10−1 100 101 102 103
Frequency [rad/s] Frequency [rad/s]

Fig. 7.20: Singular values of the heave control loop.


8

Results

Programming today is a race between software engineers striving to


build bigger and better idiot-proof programs, and the Universe trying
to produce bigger and better idiots. So far, the Universe is winning.
Rich Cook, 2002

The algorithms presented in Chapter 7 were implemented in the AkroHeli hardware


described in Chapter 2. In all flight tests, the take-off was performed manually by the
safety pilot. Once the helicopter was in steady hover (inverted hover for some experiments)
at a safe height, the pilot first switched on the attitude controller and then closed the
guidance loop. The experiments were set up in a way, that at the end of the reference
trajectory, the helicopter was in steady hovering flight. Then, the safety pilot switched off
all the controllers and landed the helicopter manually.
In this chapter, the results obtained in the flight tests are presented. At first, the
results of the attitude controllers are presented. Thereafter, the results in fully autonomous
horizontal flight are presented. At last, the results of the autonomous aerobatic maneuvers
are presented.
The results for attitude control in hovering flight, which are discussed in Section 8.1.1,
were collected while the guidance loop was open and the reference signals for the attitude
and the angular rates were generated manually. All of the other results presented in this
chapter were obtained in fully autonomous flights.
For all the flights, the reference attitude and the estimated attitude were calculated
using quaternions. The correction angles were calculated using the algorithms described
in Section 7.5. For ease of interpretation in this chapter, the attitudes are represented as
Euler angles in the plots. Furthermore, roll angle Φ is always presented in the same plot
as the roll rate p and the cyclic control signal δlat about the roll axis, even at attitudes,
where a roll rate has no effect on the roll angle (e.g., during flight phases with the nose
of the helicopter pointing vertically up or down).
114 8 Results

8.1 Attitude Control

The most important part of an autopilot is the attitude controller. It is essential, that
the attitude controller guarantees robust attitude control throughout the desired flight
envelope. Basically, one wants to have a controller, which has good reference tracking ca-
pabilities such that a reference attitude calculated by the guidance algorithm is attained
very quickly and within tight limits. The AkroHeli is very agile and the control authority
would allow attitude control with a very high bandwidth, without reaching the physical
limitations of the plant. (In Figure 8.31 it can be seen, that the yaw rate sensor reaches
its saturation limit at a control signal of 25% of the maximum magnitude). For the setup
used in this thesis, the limiting factor was the navigation. During aerobatic flight ma-
neuvers, the attitude estimated by the navigation algorithm showed sudden steps of up
to 0.15 rad. So, an attitude controller with a bandwidth much lower than the physically
achievable has been chosen to avoid sudden changes in control signals. The resulting con-
troller therefore is not optimized for high performance. Rather, a reasonable compromise
between performance and tolerance to steps in the solution of the navigation filter had to
be found.
In fully autonomous flight, the reference attitude is calculated by the guidance algo-
rithm. The results for hovering flight are presented in Section 8.1.1. They were collected
with the guidance loop open, i.e., the reference attitude was given manually by the safety
pilot. All the other results presented in this chapter were collected in fully autonomous
flights and therefore, the reference attitude was calculated by the flight director. The ref-
erence values for the angular rates have various sources. In Section 8.1.1, the angular rates
were calculated by differentiating the manually produced reference attitude. The angluar
rates in the results presented in Section 8.1.3 were calculated by the guidance algorithm.
In all the other experiments, the angular rates were given by the reference trajectory (i.e.,
they were calculated offline before the flight).

8.1.1 Attitude Control in Hover

Attitude control in hovering flight is the fundamental task of the autopilot of an unmanned
helicopter. For the tests, the helicopter was brought into stable hovering flight manually,
before engaging the autopilot. The tests performed included attitude control for each axis
separately (the other three axes where controlled manually by the safety pilot) and for
all axes simultaneously. The results shown in Figure 8.1 were collected, when all the axes
where controlled by the autopilot. For these tests, the safety pilot’s transmitter was used
to generate the reference signal for the attitude. Thus, the safety pilot still was in charge
to keep the helicopter in a reasonable position (i.e., the guidance loop was not closed).
8.1 Attitude Control 115

The reference signals for the angular rates p, q and r were calculated by differentiating
the reference attitude. Figure 8.1 shows the variables of the roll dynamics recorded during
the experiment. Clearly, the attitude error remains within reasonable bounds and the
average attitude error angle is around 0.044 rad (2.5◦ ).

Reference Signal
Flight Name: acd01 Flight Data
0.2
Φ [rad]

0
− 0.2
780 790 800 810 820 830 840 850
0.5
p [rad/s]

− 0.5
780 790 800 810 820 830 840 850

0.2
δlat [–]

− 0.2
780 790 800 810 820 830 840 850
Time [s]

Fig. 8.1: Roll angle, roll rate, and roll control signal for attitude control in hovering flight. The reference attitude
was generated manually by the pilot. The reference value for the roll rate was calculated online by differentiating
the attitude angle.
116 8 Results

8.1.2 Attitude Control in Horizontal Flight

As discussed in Section 7.5.3, the aerodynamic forces resulting from changes in cyclic
pitch angles increase with increasing velocity. Using the gain scheduling law of Eq. (7.54)
and Eq. (7.55), this effect is neutralized from the attitude controller’s point of view.
Figure 8.2 shows the results obtained in forward flight at velocities of up to 16 m/s.
The reference value for the attitude was calculated by the guidance controller, whereas
the nominal value for the roll rate and the nominal value for the control signal where
given by the reference trajectory. As can be seen in the plots, the results achieved for
reference tracking in attitude control do not depend on velocity. The gain scheduling laws
compensate for the increasing effectiveness of cyclic control inputs as velocity increases.

Flight Name: gkc01


0.5
Φ [rad]

0
− 0.5
−1
450 500 550 600
0.5
p [rad/s]

− 0.5
450 500 550 600

0.1
δlat [–]

− 0.1
450 500 550 600
Time [s]
20
15
uX [m/s]

10
5 Reference Signal
Flight Data
0
450 500 550 600
Time [s]

Fig. 8.2: Roll angle, roll rate, and control signal for attitude control in forward flight.

In Figure 8.3 the velocity along the trajectory and the sideslip angle β BX are depicted.
The nominal velocity for the flight was u?X = 10 m/s. The plots show that the velocity error
is kept within reasonable bounds throughout the flight. The test flight (ghp01) consisted
of a 540◦ curve with constant heading (t = [506, 528] s), backward flight (t = [528, 561] s),
8.1 Attitude Control 117

straight flight with superposed pirouette (t = [561, 567] s), and sideward flight to the right
(t = [567, 628] s).

10
uX [m/s]

0 Flight Name: ghp01


500 520 540 560 580 600 620 640

2
β BX [rad]

0
Reference Signal
−2 Flight Data
500 520 540 560 580 600 620 640
Time [s]

Fig. 8.3: Velocity uX along the trajectory and sideslip angle β BX in horizontal flight.

Figure 8.4, Figure 8.5, and Figure 8.6 show the performance of the attitude controllers.
The reference value for the attitude was calculated by the guidance controller, whereas
the nominal value for the roll rate and nominal value for the control signal where given by
the trajectory. There is no change in performance of the attitude controller as a function
of the sideslip angle β BX .

0.4 Flight Name: ghp01


Φ [rad]

0
Reference Signal
− 0.4 Flight Data
500 520 540 560 580 600 620 640
0.5
p [rad/s]

− 0.5
500 520 540 560 580 600 620 640
0.2

0.1
δlat [–]

− 0.1
500 520 540 560 580 600 620 640
Time [s]

Fig. 8.4: Roll angle, roll rate, and control signal for attitude control in horizontal flight.
118 8 Results

1
Flight Name: ghp01
0.5
Θ [rad]

0
− 0.5 Reference Signal
Flight Data
−1
480 500 520 540 560 580 600 620 640
0.5
q [rad/s]

− 0.5
480 500 520 540 560 580 600 620 640
0.1
δlon [–]

− 0.1
− 0.2
480 500 520 540 560 580 600 620 640
Time [s]

Fig. 8.5: Pitch angle, pitch rate, and control signal for attitude control in horizontal flight.

2 Flight Name: ghp01


Ψ [rad]

0
−2

500 520 540 560 580 600 620 640

1
r [rad/s]

−1
500 520 540 560 580 600 620 640
0.2
0.1
δyaw [–]

0
− 0.1 Reference Signal
Flight Data
500 520 540 560 580 600 620 640
Time [s]

Fig. 8.6: Yaw angle, yaw rate and control signal for attitude control in horizontal flight.
8.1 Attitude Control 119

8.1.3 Attitude Control in Inverted Flight

For attitude control, the absolute attitude in space is not relevant. Therefore, the attitude
controllers are independent of the attitude in space. The results obtained in inverted flight
are depicted in Figure 8.7. They do not differ in any way from the results obtained in
regular flight. The same gain scheduling laws were used for regular flight and for inverted
flight. The results shown in Figure 8.7 were collected in a fully autonomous flight. The
reference values for attitude and angluar rates were calculated by the guidance algorithm,
while the nominal values for the control signals were given by the trajectory.

3.3
Reference Signal
3.2 Flight Data
Φ [rad]

3.1
3
Flight Name: gib01
2.9
360 370 380 390 400 410 420
0.2
0.1
p [rad/s]

0
− 0.1
− 0.2
360 370 380 390 400 410 420
0.1
δlat [–]

− 0.1

360 370 380 390 400 410 420


Time [s]

Fig. 8.7: Roll angle, roll rate, and control signal for attitude control in inverted flight.
120 8 Results

8.2 Path Following in Non-Aerobatic Flight

For autonomous flight, the guidance algorithms must provide the reference attitude to the
attitude controller in such a way, that the helicopter stays near the desired trajectory at all
times. Since the helicopter can follow a path with any slip angle, the guidance algorithm
has to be able to cope with deviation from the desired path, regardless of the slip angle.
The algorithms presented in Section 7.4 calculate a correction angle in relation to the
trajectory independent of the sideslip angle β BX . Therefore, the guidance performance is
independent of the sideslip angle.

8.2.1 Hover

The guidance and control algorithms were developed with the goal to enable the helicopter
to do autonomous aerobatic flight. During aerobatic flight, the solution of the navigation
filter becomes very rough and big steps for the estimates of position and velocity result.
Therefore, the guidance algorithm must be able to cope with such steps. The resulting
guidance controller thus is rather sluggish and has a low bandwidth. The standard devia-
tion in position at hover was 3.35 m. The estimated flight path of one experiment can be
seen in Figure 8.8. The corresponding signals of the yaw dynamics are shown in Figure 8.9.

8.2.2 Forward Flight

In flight at velocities above 10 m/s, the reference point on the trajectory is chosen such
that its location is abeam the helicopter’s estimated position. Thus, the error in the
1X direction vanishes and the position control loop in this direction is open. For lower
velocities, the the position control loop is partly open, i.e., the reference position on the
trajectory is influenced by the estimated position of the helicopter (see Section 7.2.3).
Figure 8.10 shows the reference flight path and the estimated flight path of the helicopter
during an experiment involving forward flight at various reference velocities. The reference
value and the estimated value of the velocity are shown in Figure 8.11.
8.2 Path Following in Non-Aerobatic Flight 121

6 Flight Name: ghg03


t0 = 462.30 s
5 t1 = 565.00 s

North [m] 2
Reference Position
1 Flight Data

−1

−2

−3

−4
−14
Down [m]

−13

−28 −27 −26 −25 −24 −23 −22 −21 −20


East [m]

Fig. 8.8: Position for hover flight with rotation about the vertical axis.

Flight Name: ghg03


2
Ψ [rad]

0
−2 Reference Signal
Flight Data
480 500 520 540 560
1
r [rad/s]

0.5

− 0.5
480 500 520 540 560
0.15
0.1
δyaw [–]

0.05
0
− 0.05
− 0.1
480 500 520 540 560
Time [s]

Fig. 8.9: Yaw dynamics angle for hover flight with rotation about the vertical axis.
122 8 Results

− 90
Flight Name: gkc01 Reference Path
− 80 t0 = 437.46 s Flight Data
t1 = 532.00 s
− 70
East [m]

− 60
t1
− 50

− 40
t0
− 30
Down [m]

− 25
− 20
− 15
− 80 − 60 − 40 − 20 0 20 40 60 80 100
North [m]

Fig. 8.10: Reference flight path and estimated flight path in forward flight.

20
15 Flight Name: gkc01
uX [m/s]

10
5 Reference Signal
Flight Data
0
450 500 550 600 650
Time [s]

Fig. 8.11: Reference velocity and velocity estimated by the extended Kalman filter.
8.2 Path Following in Non-Aerobatic Flight 123

8.2.3 Sideways and Backward Flight

As the helicopter can follow a flight path in any direction (at any sideslip angle β BX ∈
(−π, +π]), there are lots of maneuvers that can be flown in the horizontal plane. Besides
flight in the sideways and in the backward direction, circles with constant heading and
straight flight with superimposed pirouettes were flown.

Sideward Flight, Nose Circle, and Tail Circle

While manually performed sideward flight was never faster than 7.5 m/s, in autonomous
sideward flight, velocities up to uX = 10 m/s were reached. For this velocity, a tilt angle
of 0.3 rad (≈ 17◦ ) is needed to overcome the aerodynamic drag.1 Flight at this velocity is
close to the physical limits of the AkroHeli .
The circles were flown at bank angles of up to 30◦ . In sideward flight, the bank angle
stands for nose down in a so called nose circle (the front of the helicopter points to the
center of the curve) or nose up in a tail circle (the tail of the helicopter points to the
center of the curve). In Figure 8.12, Figure 8.13 , and Figure 8.14 the results of a flight
experiment including nose circle and tail circle are visualized. In Figure 8.12 the green
dashed line represents the desired trajectory. The flown path as estimated by the extended
Kalman filter was low-pass filtered after the flight, in order to generate a smoother plot.
It is represented by the blue line.
Down [m]

t1

t0

Nor
th [
m]
Flight Name: ghp01
t0 = 566.50 s ]
[m
t1 = 623.00 s st
Ea

Fig. 8.12: Trajectory and estimated position in sideward flight. The sample time between two helicopters on the
plot is 1.2 s.

1
For comparison: in forward flight at the same velocity a tilt angle of 0.1 rad (≈ 6◦ ) suffices.
124 8 Results

In Figure 8.13, the flown path is printed as it was estimated by the navigation filter.
Both, horizontal and vertical path tracking errors were within reasonable bounds. Path
tracking in backward and sideward flight proved to be as accurate as in forward flight.

− 100
Flight Name: ghp01 Reference Path
t0 = 566.50 s Flight Data
− 90
t1 = 623.00 s

− 80
t1
East [m]

− 70

− 60

− 50
t0
− 40
Down [m]

− 35

− 25
− 50 0 50 100
North [m]

Fig. 8.13: Trajectory and estimated position in sideward flight.

The velocity was kept within ±2 m/s of the nominal value. In Figure 8.14, the velocity
along the trajectory is plotted. For the circles (570–588 s) and (596–619 s) the velocity
is slightly below the nominal value, while for the straight part between the circles, the
velocity is above the reference signal.

14
Flight Name: ghp01 Reference Signal
12
uX [m/s]

Flight Data
10
8
6
570 580 590 600 610 620
Time [s]

Fig. 8.14: Velocity along the trajectory during flight in sideways direction.
8.2 Path Following in Non-Aerobatic Flight 125

Pirouette During Straight Flight

Once the performance for forward, sideward, and backward flight has proven to be within
the desired limits, flights with changing sideslip angle β BX and all combinations thereof
can be done. One interesting maneuver is the superposition of rotation about the vertical
axis and straight flight. In Figure 8.15, the path during such a maneuver is visualized.
Starting with straight backward flight, a 540◦ rotation about the vertical axis is performed,
ending in forward flight. In order to generate a smoother plot, the path estimated by the
navigation filter was low-pass filtered after the flight.

t1
Down [m]

Nor
th [
m]
Flight Name: gma01
t0
t0 = 480.00 s
t1 = 497.00 s
[m]
st
Ea

Fig. 8.15: Trajectory and estimated position for pirouette during straight flight. Beginning with backward flight,
the helicopter makes one and a half rotation about the vertical axis during straight flight, ending up in forward
flight. The sample time between two helicopters on the plot is 1.2 s.

The reference trajectory and the flight path as estimated by the on-board navigation
filter are depicted in Figure 8.16. A slight deviation to the right (2X direction) can be
observed at the beginning of the pirouette (the first 90◦ ). For the remaining part of the
figure, good path tracking results were optained.
The variations in velocity were of the same magnitude as in regular straight flight.
The deviations from the nominal values are not much larger than the fluctuations in the
estimates (see Figure 8.17).

8.2.4 Circle with Constant Heading

Another combination of horizontal flight and rotations about the vertical axis are curves
with constant heading. In this maneuver, the direction of the path is changed as in a
regular curve, but the helicopter’s heading remains constant. The maneuver is visualized in
Figure 8.18. The estimated flight path was filtered offline, in order to produce a smoother
126 8 Results

− 90
Reference Path
East [m]

Flight Data
− 80 t1

− 70 Flight Name: gma01


t0 = 480.00 s t0
t1 = 497.00 s
− 60
Down [m]

− 75
− 70
− 65
− 40 − 20 0 20 40 60 80 100
North [m]

Fig. 8.16: Trajectory and estimated position for pirouette during straight flight.

10 Flight Name: gma01


uX [m/s ]

8
Reference Signal
6 Flight Data

480 482 484 486 488 490 492 494 496


Time [s]

Fig. 8.17: Nominal velocity and estimated velocity along the flight path for pirouette during straight flight.

plot. The attitude of the small helicopters drawn on the path correspond to the attitudes
estimated by the navigation filter.

Flight Name: ghp01


t0 = 504.00 s
t1 = 532.00 s
t1
Down [m]

t0

]
Nor [m
th [ a st
m] E

Fig. 8.18: Reference trajectory and experimental result. The helicopter enters the circle in forward flight and
flies one and a half circle maintaining the direction of the longitudinal axis.
8.2 Path Following in Non-Aerobatic Flight 127

This maneuver requires good coordination of the pitch dynamics with the roll dynamics.
On one hand, the bank angle of 30◦ is continuously changing its roll and pitch components,
and at the other hand, the tilt angle required to keep the velocity constant is a function
of the changing sideslip angle β BX .

−100
Flight Name: ghp01
t0 = 504.00 s
t1
t1 = 532.00 s
−90

Reference Path
−80 Flight Data

−70
East [m]

−60

−50

−40
t0

−30
Down [m]

−34

−26
30 40 50 60 70 80 90
North [m]

Fig. 8.19: Nominal trajectory and the estimated flight path for the circle with constant heading.

The velocity estimated during the maneuver is depicted in Figure 8.20. As can be seen,
the velocity remains within close bounds of the desired value of 10 m/s. The deviations
from the nominal value are not much larger than the steps in the solution of the navigation
filter.

12
uX [m/s ]

10

8 Reference Signal
Flight Name: ghp01 Flight Data
505 510 515 520 525 530
Time [s]

Fig. 8.20: Nominal and estimated velocity during one and a half circles with constant heading.
128 8 Results

8.2.5 Path Following in Inverted Flight

For inverted flight, some signs in the guidance algorithm have to be changed. Other than
that, the same controllers were used. The attitude controllers and the gain scheduling laws
remain unchanged for inverted flight. Due to the relatively high weight of the AkroHeli ,
an engine failure in inverted flight would have been fatal for the project. So, only a few
flights with prolonged phases of inverted flight were performed.
In Figure 8.21 and Figure 8.22, the results of one of the few inverted flights are shown.
The experiment began with inverted hover, then a phase of inverted forward flight at
uX = 5 m/s followed. At last, the helicopter decelerated and maintained inverted hover
again. For the experiment shown in Figure 8.21 and Figure 8.22 the standard deviation
from the desired trajectory in horizontal direction was 2.2 m. The standard deviation in
vertical direction 1.8 m. Regarding the horizontal deviation from the reference path, it
can be said, that the results obtained are as good as in regular flight.

− 100

− 90
East [m]

− 80

t1
− 70

Flight Name: gib01 t0


− 60 t0 = 340.00 s Reference Path
t1 = 460.00 s Flight Data

− 60
Down [m]

− 55

− 50
− 20 − 10 0 10 20 30 40 50 60 70
North [m]

Fig. 8.21: Trajectory and resulting flight path as calculated by the navigation filter. The flight path had be flown
in inverted flight and includes inverted hover at the beginning and at the end of the trajectory.

The altitude was held close to the reference value for most of the flight. A deviation
of about 7 m after the deceleration phase at the end of the trajectory can be seen in the
lower plots of Figure 8.21 and Figure 8.22.
8.2 Path Following in Non-Aerobatic Flight 129

uX [m/s] 6 Flight Name: gib01


4
2 Reference Signal
0 Flight Data

340 360 380 400 420 440 460

− 60
Down [m]

− 55

− 50
340 360 380 400 420 440 460
Time [s]

Fig. 8.22: The upper plot shows the reference velocity and the velocity calculated by the navigation filter during
the flight experiment. in the lower plot, the reference altitude and the altitude estimated by the extended Kalman
filter can be seen.
130 8 Results

8.3 Aerobatics

8.3.1 Changing Between Regular and Inverted Flight

In the previous sections, the results obtained in regular and inverted flight were presented.
While inverted flight itself was not considered as aerobatic flight, the change between
regular flight and inverted flight was considered as aerobatic flight. The change between
regular and inverted flight can be done in various manners. In this project, the change
was done by a rotation about the pitch axis (i.e., half a loop).
In regular forward flight, the helicopter’s body fixed coordinate system ]B and the error
coordinate system ]X differ by the tilt angle αBX only, and the axes point approximately
in the same direction. In inverted flight, on the other hand, the helicopter’s body fixed
coordinate system is rotated by an angle γ BX = π about the error coordinates system’s
1X axis, i.e., the 1B axis still points in the direction of the 1X axis of the error coordinate
system, but the 2B axis points in the opposite direction of the 2X axis and the 3B -axis
points upwards, while the 3X axis points downwards. In order to switch between the two
conditions, the guidance controllers have to be reset. This is done when the nose of the
helicopter is pointing vertically down.
Changing from inverted flight to regular flight was done by a pull-out maneuver, which
starts with inverted hover, followed by a 180◦ rotation about the helicopters lateral axis.
The results obtained in flight test are visualized in Figure 8.23. At the end of the maneuver
the helicopter is in regular horizontal forward flight at a velocity of 18 m/s.

−80
Flight Name: gic01
−75 t0 = 410.00 s
t1 = 424.00 s
−70
t0
−65
Down [m]

−60

−55

−50
t1
−45

−40
−90 −70 −10 0 10 20 30 40 50 60
East [m
] North [m]

Fig. 8.23: This plot shows the flight path and the attitude of an autonomous pull-out maneuver. The time step
between two helicopters is 0.6 s.

The corresponding angular dynamics are plotted in the Figures 8.24 to 8.26. The bump
at t = 416 s was caused by a bad fade-out of the guidance controller. Other than that,
the maneuver was flown rather smoothly. As can be seen, the attitude estimated by the
8.3 Aerobatics 131

navigation filter is rather bumpy after the helicopter has passed the vertical (for t > 418 s),
which causes some unnecessary oscillations on the pitch control signal.

3 Reference Signal
Flight Data
Φ [rad]

2
1
Flight Name: gic01
0
410 412 414 416 418 420 422 424

0.2
p [rad/s]

− 0.2

410 412 414 416 418 420 422 424


0.15
0.1
δlat [–]

0.05
0
− 0.05
410 412 414 416 418 420 422 424
Time [s]

Fig. 8.24: Roll dynamics during pull-out maneuver.

0.5
0
Θ [rad]

− 0.5
−1 Reference Signal
− 1.5 Flight Name: gic01 Flight Data
410 412 414 416 418 420 422 424
1.5
1
q [rad/s]

0.5
0
− 0.5
410 412 414 416 418 420 422 424
0.4
δlon [–]

0.2
0

− 0.2
410 412 414 416 418 420 422 424
Time [s]

Fig. 8.25: Pitch dynamics during pull-out maneuver.


132 8 Results

2 Flight Name: gic01 Reference Signal


Flight Data
Ψ [rad]

−2

410 412 414 416 418 420 422 424


0.2
r [rad/s]

0.1

− 0.1
410 412 414 416 418 420 422 424
0.02
δyaw [–]

0.01

410 412 414 416 418 420 422 424


Time [s]

Fig. 8.26: Yaw dynamics during pull-out maneuver.

8.3.2 Hammerhead Turn

For several reasons, the hammerhead turn is a very interesting maneuver in aerobatic flight
with a helicoper. From the control point of view it is interesting, because of the sequence of
the rotations about different axes, and because the helicopter’s forward velocity changes
rapidly during the maneuver. The forward speed at the beginning of the maneuver is
19 m/s and decreases to zero at the highest point, which is reached 6 seconds later. In the
descending phase, the speed increases from zero to 32 m/s within only 4 seconds. Another
interesting aspect of the hammerhead turn is the rotation about the yaw axis at the top
of the figure. On one hand, the rotation should be as fast as possible, in order to be
completed, before the helicopter has gained too much speed towards the ground. On the
other hand, fast rotations lead to operation close to the yaw rate sensor’s saturation limit
(see Figure 8.31).
From reference trajectory planning point of view, the hammerhead turn is an inter-
esting maneuver, because the helicopter leaves the maneuver with a direction opposite
to the one it entered and because there is a significant speed gain during the maneuver.
The hammerhead turn was always preceding an aileron roll in order to gain the speed
necessary for the later.
The results obtained in flight test is visualized in Figure 8.27. The reference path given
by the reference trajectory and the estimated flight path as calculated by the naviga-
tion filter are plotted in Figure 8.28. Figure 8.29, Figure 8.30, and Figure 8.31 show the
reference attitude during the maneuver and the results obtained in flight test.
8.3 Aerobatics 133

−80

−70
Down [m]

Flight Name: gma01


t0 = 514.00 s
−60 t0 t1 = 524.50 s

t1
−50
60 70 80 −50
90 100 −40 ]
110 120 −30 [m
130 st
North [m] 140 150 Ea

Fig. 8.27: This plot shows the flight path and the attitude of an autonomous turn maneuver as estimated by the
navigation filter. The time step between two helicopters is 0.5 s.

− 55
− 50 Reference Signal
t1 Flight Data
− 45
− 40
East [m]

t0
− 35
− 30
− 25
− 20

− 85
− 80 Flight Name: gma01
t0 = 514.00 s
− 75 t1 = 524.50 s
− 70
Down [m]

− 65
t0
− 60
− 55
t1
− 50

50 60 70 80 90 100 110 120 130 140 150


North [m]

Fig. 8.28: Reference path as offline calculated for the hammerhead turn and flight path estimated by the extended
Kalman filter during the autonomously flown maneuver.
134 8 Results

0.5
0
Φ [rad]

− 0.5
−1 Reference Signal
− 1.5 Flight Data
Flight Name: gma01
−2
514 515 516 517 518 519 520 521 522 523 524
0.4
0.2
p [rad/s]

0
− 0.2

514 515 516 517 518 519 520 521 522 523 524
0.1
0.05
δlat [–]

0
− 0.05
− 0.1
− 0.15
514 515 516 517 518 519 520 521 522 523 524
Time [s]

Fig. 8.29: Roll dynamics during hammerhead turn.

1.5
1 Flight Name: gma01 Reference Signal
0.5 Flight Data
Θ [rad]

0
− 0.5
−1
− 1.5
514 515 516 517 518 519 520 521 522 523 524

0.8
q [rad/s]

0.4

0
514 515 516 517 518 519 520 521 522 523 524
0.3

0.2
δlon [–]

0.1

0
514 515 516 517 518 519 520 521 522 523 524
Time [s]

Fig. 8.30: Pitch dynamics during hammerhead turn.


8.3 Aerobatics 135

0
Reference Signal
Flight Data
Ψ [rad]

−1
−2
Flight Name: gma01
−3
514 515 516 517 518 519 520 521 522 523 524

0
r [rad/s]

−1

−2
514 515 516 517 518 519 520 521 522 523 524
0
δyaw [–]

− 0.1

− 0.2

− 0.3
514 515 516 517 518 519 520 521 522 523 524
Time [s]

Fig. 8.31: Yaw dynamics during hammerhead turn.


136 8 Results

8.3.3 Loop

During a loop the GPS-receiver caused some problems. The position and velocity updates
of the extended Kalman filter were not reliable and caused the solution of the naviga-
tion filter to become very jerky. For visualization, the autonomous loop with the best
result regarding the navigation has been selected. The flight path estimated during the
experiment is visualized in Figure 8.32.

−100

−90
Flight Name: gle01
Down [m]

t0 = 470.00 s
−80 t1 = 484.00 s

t1
−70

t0 −60

]
−70

t [m
−60 −80

Eas
−90
−50 −40 −30 −20 −10 0 10 20 30 40 50
North [m]

Fig. 8.32: This plot shows the flight path and the attitude of an autonomous loop. The path calculated by the
navigation filter was low-pass filtered after the flight, in order to produce a smoother plot. The time step between
two helicopters is 0.5 s.

The the reference trajectory for the attitude and the results obtained in flight test are
depicted in Figure 8.33 through Figure 8.35. Notice the bumps in the pitch control signal
(Figure 8.34) following the steps in the attitude estimate. The control signal δcol for the
collective pitch angle is provided by the reference trajectory. Thus, it depends only on the
instantaneous position on the trajectory.
8.3 Aerobatics 137

3 Flight Name: gle01 Reference Signal


Flight Data
Φ [rad]

2
1
0
470 472 474 476 478 480 482 484

0.2
p [rad/s]

− 0.2
470 472 474 476 478 480 482 484
0.1

0.05
δlat [–]

− 0.05
470 472 474 476 478 480 482 484
Time [s]

Fig. 8.33: Roll dynamics during loop.

2
Flight Name: gle01
1
Θ [rad]

0
−1
−2
470 472 474 476 478 480 482 484
2
1.5 Reference Signal
q [rad/s]

1 Flight Data
0.5
0
− 0.5
470 472 474 476 478 480 482 484
0.6
0.4
δlon [–]

0.2
0
− 0.2
470 472 474 476 478 480 482 484
Time [s]

Fig. 8.34: Pitch dynamics during loop.


138 8 Results

Flight Name: gle01 Reference Signal


2
Flight Data
Ψ [rad]

0
−2

470 472 474 476 478 480 482 484

0.2
r [rad/s]

0
− 0.2

− 0.4
470 472 474 476 478 480 482 484
0.03
0.02
δyaw [–]

0.01
0
− 0.01
470 472 474 476 478 480 482 484
Time [s]

Fig. 8.35: Yaw dynamics during loop.


8.3 Aerobatics 139

8.3.4 Aileron Roll

When an airplane is flying an aileron roll, the fuselage provides some lift and the rudder
can be used to stabilize the pitch attitude in the knife edge flight attitude. The surface of
a helicopter’s fuselage is rather small and the amount of lift, which is produced by it is
negligible. Lift can only be produced during the phase of regular flight before the aileron
roll, during the inverted phase in the middle of the maneuver and at the end of the aileron
roll, once the attitude is close to regular flight. In order to minimize the loss of altitude
during the maneuver, the roll rate is kept as high as possible, with some safety margin to
the angular rate sensor’s saturation limit.
The results obtained for the aileron roll are visualized in Figure 8.36. In Figure 8.37
the reference path and the estimated flight path are depicted. Remember that there is
no guidance during aerobatic maneuver and the reference flight path is not used by the
autopilot during the maneuver. A hammerhead turn preceded the aileron roll, in order to
reach the desired speed of 29 m/s at the beginning of the aileron roll. The position offset at
the beginning of the maneuver results from the hammerhead turn. At the position marked
t? , the reference trajectory is moved to the instantaneous position of the helicopter and
guidance is switched on.

−80
Down [m]

−70 Flight Name: gld01


t1
t0 = 392.00 s
−60 t1 = 397.30 s
−80

−60

−40

Nor −20
th [
m] −90
0 t0
−80 ]
20 [m
−70 st
Ea
−60
40

Fig. 8.36: The flight path and the attitude of an autonomous aileron roll maneuver. The time step between two
helicopters is 0.5 s.
140 8 Results

−80
−75 t Reference Signal
East [m]
1
Flight Data
−70 t0
−65  t0
t
−60
−75
−70
Down [m]

t0
−65 t1
−60
−55 t0
t
−50
−80 −60 −40 −20 0 20 40 60
North [m]

35
Flight Name: gld01
30
uX [m/s]

t0 = 392.00 s
25 t1 = 397.30 s
20
15
392 393 394 395 396 397
t0 t1
Time [s]

Fig. 8.37: The upper two plots show the reference flight path and the flight path estimated during the experi-
ment. The bottom plot shows the reference velocity along the trajectory and the estimated velocity during the
experiment.

Flight Name: gld01 Reference Signal


2
Flight Data
Φ [rad]

0
−2

392 393 394 395 396 397

2
p [rad/s]

0
392 393 394 395 396 397
0.6
0.4
δlat [–]

0.2

0
392 393 394 395 396 397
Time [s]

Fig. 8.38: Roll dynamics during aileron roll. Due to a higher velocity than expected, the roll rate is higher than
desired and the angular rate sensors reach saturation.
8.3 Aerobatics 141

0.2
0.1
Θ [rad]

0
− 0.1
− 0.2 Flight Name: gld01
392 393 394 395 396 397
0.4
0.2
q [rad/s]

0
− 0.2 Reference Signal
− 0.4 Flight Data
− 0.6
392 393 394 395 396 397
0.1
0.05
δlon [–]

0
− 0.05
− 0.1

392 393 394 395 396 397


Time [s]

Fig. 8.39: Pitch dynamics during aileron roll. In the top plot, the bumpy behavior of the navigation solution
during aerobatic flight can be seen. At time t = 392.74 s there is a step of ∆Θ ≈ 0.2 rad, which causes an oscillation
about the pitch axis.

− 2.8
Flight Name: gld01 Reference Signal
−3 Flight Data
Ψ [rad]

− 3.2

− 3.4
393 394 395 396 397
0.3
0.2
r [rad/s]

0.1
0
− 0.1
− 0.2
393 394 395 396 397

0.04
δyaw [–]

0.02
0

− 0.02
393 394 395 396 397
Time [s]

Fig. 8.40: Yaw dynamics during aileron roll. For visualization, the yaw angle is plotted in the interval (−2π, 0]
instead of the usual interval (−π, π]
9

Summary and Conclusions

The helicopter approaches, closer than any other vehicle, to fulfill-


ment of mankind’s ancient dreams of the flying horse and the magic
carpet.
Igor Sikorsky

Developing an autopilot which enables an unmanned helicopter to do autonomous aero-


batic flight involves many different aspects of flight engineering and solutions to various
problems have to be found. All in all it is a challenging, yet a very interesting and versatile
task.
An appropriate test bench was developed on the basis of a radio controlled helicopter
with a main rotor diameter of 1.8 m and powered by a 15 cm3 engine. The helicopter
features a redundant RC link, an engine speed governor, and a yaw-stabilizing system for
manually controlled flight.
Electronic flight control hardware, mainly developed at the Measurement and Control
Laboratory at ETH and at the Computer Systems Laboratory at ETH, was integrated on
the helicopter. The vehicle’s navigation instrumentation features an inertial measurement
unit, a GPS receiver, a barometer, and a magnetometer. For post-flight data analysis and
flight monitoring, the helicopter is equipped with an on-board flight data logging device,
a miniature video camera mounted on the tail boom, a video overlay device, a video
transmitter, and a data link which transmits status information to the ground control
station for flight monitoring. Fully equipped, the helicopter’s take-off weight is slightly
less than 7 kg. Even with the additional payload, the helicopter is very agile and is capable
of flying aerobatic maneuvers, although the power provided by the engine is at the lower
limit for maneuvers requiring high pitch angles of the main rotor blades.
A suitable dynamic model describing the helicopter’s dynamics throughout its powered
flight envelope has been developed, and the pertinent parameters were identified using
flight data. The helicopter model is based on linear SISO models with varying parameters
describing the roll and the pitch dynamics and on an invariant SISO model describing the
144 9 Summary and Conclusions

yaw dynamics. The dynamics in the direction of the rotor thrust is modeled using blade
element theory. Good matching of the dynamic model with flight data has been proved
for an extended portion of the flight envelope.
A set of flight maneuvers has been defined, allowing the synthesis of reference trajec-
tories using trajectory segments as building blocks, including aerobatic maneuvers such
as loop, aileron roll, and hammerhead turn.
Guidance laws have been developed that allow the flight along reference trajectories at
any sideslip angle (including changing sideslip angles) in both regular and inverted flight.
These laws performed well for the entire velocity range of the helicopter (up to 35 m/s
in forward flight, up to 10 m/s in backward flight and sideways). The guidance laws have
proven good performance even during the phase after aerobatic maneuvers, when the
solution of the navigation filter is rather bumpy.
Quaternion-based attitude controllers have been designed using the H∞ method. The
effects of velocity on the helicopters dynamics has been compensated for by an appro-
priate gain-scheduling law. The attitude controller’s performance is independent of the
helicopter’s attitude and proved to perform well up to angular rates close to the saturation
limits of the angular rate sensors.
The guidance and control algorithms developed in this thesis were tested in Matlab sim-
ulations. The simulation model used in Matlab was translated into the Oberon language for
hardware-in-the-loop simulations on the flight control hardware before validation in flight
tests. All of the guidance and control algorithms were successfully tested in autonomous
flight.
The main challenges faced during the flight tests were caused by the limitations of
the instrumentation. On one hand, the relatively low saturation limit of the angular rate
sensors at 120 ◦/s inhibited fast rotations during the maneuvers. On the other hand, the
GPS receiver showed marginal reception characteristics during maneuvers involving high
angular velocities, yielding large steps in the solution of the navigation filter. Thus, the
bandwidth of the guidance loop had to be kept rather low to cope with these steps.
Another limiting factor was the power provided by the engine. In particularly at outside
air temperatures above 20 ◦ C, the engine’s power was not sufficient to keep the main
rotor speed at its nominal value. Thus, a slight descent was needed in order to reach
the velocities needed for aerobatic maneuvers. Also, maneuvers combining high collective
pitch with large cyclic control inputs had to be avoided due to the power limitations.

The guidance and control algorithms presented in this thesis can be used through-
out the powered flight envelope of today’s small-scale helicopters. The limiting factors
appeared to be the angular rate sensors, the GPS receiver, and the engine. For further re-
9 Summary and Conclusions 145

search involving autonomous 3D flight, instrumentation performing better at high angular


rates is needed. Also, a helicopter with a better power-to-mass ratio is desirable.
One approach to the improvement of the navigation solution during aerobatic maneu-
vers could be the usage of a dynamic helicopter model corresponding to the model used
for simulations. Also, the position and velocity vectors included in the reference trajectory
(which was calculated offline according to the dynamic model) could be used as additional
inputs to the navigation filter during aerobatic flight.
A

Initialization of the Attitude Quaternion

The attitude of a vehicle can be calculated using Euler angles or using a unit quaternion.
The unit quaternion can be calculated from Euler angles using the following relations:
           
Ψ Θ Φ Ψ Θ Φ
q0 = cos cos cos + sin sin sin ,
2 2 2 2 2 2
           
Ψ Θ Φ Ψ Θ Φ
q1 = cos cos sin − sin sin cos ,
2 2 2 2 2 2
            (A.1)
Ψ Θ Φ Ψ Θ Φ
q2 = cos sin cos + sin cos sin ,
2 2 2 2 2 2
           
Ψ Θ Φ Ψ Θ Φ
q3 = sin cos cos − cos sin sin .
2 2 2 2 2 2

The Euler angles can be derived from a unit quaternion describing the attitude as
follows:
 
2 (q2 q3 + q0 q1 )
Φ = arctan ,
q0 − q12 − q22 + q32
2

Θ = arcsin (2 (q0 q2 − q1 q3 )) ,
  (A.2)
2 (q1 q2 + q0 q3 )
Ψ = arctan 2 .
q0 + q12 − q22 − q32
B

Numerical Values of Parameters and Constants

B.1 Parameters of the Plant

Parameter Value Unit Description


a0 5.5 [1/rad] main rotor blade lift curve slope
c 0.061 [m] main rotor blade chord
m 6.75 [kg] mass of the helicopter
s 0.0439 [–] main rotor solidity
Ab 0.0540 [m2 ] main rotor blade area
2
Amr 2.4606 [m ] area of the main rotor disc
Atr 0.0707 [m2 ] area of the tail rotor disc
Nb 2 [–] number of main rotor blades
Rmr 0.885 [m] main rotor radius
Rtr 0.150 [m] tail rotor radius
Ωmr 172.8 [rad/s] speed of rotation of the main rotor

B.2 Parameters of LPV-Model

B.2.1 Roll Dynamics

Lp = −52.9499 Lβ1s = 4150.396


Aβ1s = 45.2800
Aδlat = A?δlat (1 + kup |uB | + kvp |vB |) A?δlat = 1.0616
kup = 0.05 kvp = 0.02

B.2.2 Pitch Dynamics


150 B Numerical Values of Parameters and Constants

Mq = −21.4914 Mβ1c = 527.5696


Bβ1c = 15.1797
Bδlon = Bδ?lon (1 + kuq |uB | + kvq |vB |) Bδ?lon = 0.9815
kuq = 0.02 kvq = 0.05

B.2.3 Heave Dynamics

Zw = −81.9500 Zaz = −34.9797 Zδcol = −1393.3

B.2.4 Yaw Dynamics

a11 = 12.9284 a12 = 19.2473 a13 = −39.7334


a21 = −7.9040 a22 = −31.8840 a23 = 54.6633
a31 = 8.6859 a32 = −1.4231 a33 = −1.7042
b1 = −50.6270 b2 = 83.8448 b3 = −23.7530

B.3 Static Parameters


Parameters Used for the Calculation of the Nominal Tilt Angle

c1,fwd = −0.0015 c2,fwd = −0.0006


c1,bwd = −0.0015 c2,bwd = −0.001
c1,swd = −0.005 c2,swd = −0.003

B.4 International Standard Atmosphere


All the experiments were carried out at an altitude of approximately H = 500 m above
mean sea level. Therefore, the values of the standard atmosphere at this altitude were
used for calculations.
m2
» –
Rair = 287.057 K s2

T = 288.15 − 0.0065 H = 284.9 [K]


 5.2559
T
p = 101325 = 954.6081 [hPa]
288.15
p » –
ρ= = 1.167 mkg3
Rair T
References

[1] J. Chapuis, C. Eck, H. P. Geering, R. Mudra, B. Schneuwly, and R. Sommerhalder.


“The Swiss Entry into the 1996 International Aerial Robotics Competition”. In
AUVSI Proceedings, Orlando, pages 947–953, 1996.
[2] J. Chapuis, C. Eck, M. Kottmann, M. Sanvido, and O. Tanner. “Control of Heli-
copters”. Control of Complex Systems, Karl J. Åstrom et. al., Springer, 2000.
[3] R. T. N. Chen. “Effects of Primary Rotor Parameters on Flapping Dynamics”. NASA
Technical Reports NASA-TP-1431, 1980.
[4] U. Christen. Engineering Aspects of H∞ Control. PhD thesis, ETH Zurich, Switzer-
land, 1996.
[5] A. K. Cooke and E. W. H. Fitzpatrick. Helicopter Test and Evaluation. AIAA Edu-
cation Series. American Institute of Aeronautics and Astronautics, Inc., Reston, VA,
USA, 2002.
[6] G. Done and D. Balmford. Bramwell’s Helicopter Dynamics. American Institute of
Aeronautics and Astronautics, Inc., 2001.
[7] C. Eck. Navigation Algorithms with Applications to Unmanned Helicopters. PhD
thesis, ETH Zurich, Switzerland, 2001.
[8] V. Gavrilets, I. Martinos, B. Mettler, and E. Feron. “Flight Test and Simulation
Results for an Autonomous Aerobatic Helicopter”. Digital Avionics Systems Confer-
ence, 2002. Proceedings. The 21st, 2:8C3–1–8C3–6 vol.2, 2002.
[9] V. Gavrilets, B. Mettler, and E. Feron. “Nonlinear Model for a Small-Size Acrobatic
Helicopter”. In AIAA Guidance, Navigation, and Control Conference and Exhibit,
Montreal, Quebec, Canada, 2001. American Institute of Aeronautics and Astronau-
tics.
[10] H. P. Geering. Robuste Regelung. IMRT Press, ETH Zurich, 2004.
[11] M. Gerber. Trajectory Planning for Small-Scale Helicopter Aerobatic Maneuvers,
Term Paper, IMRT, ETH Zurich. 2005.
[12] H. Glauert. “A General Theory of the Autogyro”. ARC R&M 1111, 1926.
152 References

[13] M. W. Heiges, P. K. A. Menon, and D. P. Schrage. “Synthesis of a Helicopter Full-


Authority Controller”. AIAA Journal of Guidance, Control, and Dynamics, 15:222–
227, 1991.
[14] A. Isidori, L. Marconi, and A. Serrani. “Robust Nonlinear Motion Control of a
Helicopter”. IEEE Transactions on Automatic Control, 48(3):413–426, 2003.
[15] M. Kottmann. Software for Model Helicopter Flight Control. Technical Report 314,
Department of Computer Science, ETH Zurich, 1999.
[16] J. B. Kuipers. Quaternions and Rotation Sequences. Princeton University Press,
Princeton, NJ, USA, 2002.
[17] B. Mettler. Modeling Small-Scale Unmanned Rotorcraft for Advanced Flight Control
Design. PhD thesis, Carnegie Mellon University, Pittsburgh, PA, USA, 2001.
[18] B. Mettler. Identification Modeling and Characteristics of Miniature Rotorcraft.
Kluwer Academic Publishers, Boston, MA, USA, 2003.
[19] M. R. Möckli. Guidance and Control for Aerobatic Maneuvers of an Unmanned Air-
plane. PhD thesis, ETH Zurich, Switzerland, 2006.
[20] A. Y. Ng, A. Coates, M. Diel, V. Ganapathi, J. Schulte, B. Tse, E. Berger, and
E. Liang. “Autonomous Inverted Helicopter Flight Via Reinforcement Learning”. In
International Symposium on Experimental Robotics, 2004.
[21] G. D. Padfield. Helicopter Flight Dynamics: The Theory and Application of Flying
Qualities and Simulation Modeling. AIAA Education Series. American Institute of
Aeronautics and Astronautics, Inc., Reston, VA, USA, 1996.
[22] R. Prouty. Helicopter Performance, Stability, and Control. Robert E. Krieger Pub-
lishing Company, Malabar, FL, USA, 1995.
[23] M. Sanvido. A Computer System for Model Helicopter Flight Control. Technical
Memo Nr 3: The Software Core. Technical Report 317, Department of Computer
Science, ETH Zurich, Switzerland, 1999.
[24] H. Schaub and J. L. Junkins. Analytical Mechanics of Space Systems. AIAA Educa-
tion Series. American Institute of Aeronautic and Astronautics (AIAA), Inc., Reston,
VA, USA, 2003.
[25] J. Seddon and S. Newman. Basic Helicopter Aerodynamics, volume Second Edition
of AIAA Education Series. American Institute of Aeronautics and Astronautics, Inc.,
Reston, VA, USA, 2001.
[26] E. Shafai. Einführung in die Adaptive Regelung. IMRT Press, ETH Zurich, 2003.
[27] K. Shoemake. “Animating Rotation with Quaternion Curves”. In SIGGRAPH ’85:
Proceedings of the 12th Annual Conference on Computer Graphics and Interactive
Techniques, pages 245–254, New York, NY, USA, 1985. ACM.
References 153

[28] H. Späth. One Dimensional Spline Interpolation Algorithms. A K Peters, Ltd., Welles-
ley, MA, USA, 1995.
[29] O. Tanner. Modeling, Identification, and Control of Autonomous Helicopters. PhD
thesis, ETH Zurich, Switzerland, 2003.
[30] L. Vicci. Quaternions and Rotations in 3-Space: The Algebra and its Geometric
Interpretation. Technical Report TR01-014, Dept. of Computer Science, University
of North Carolina, Chapel Hill, NC, USA, 27 2001.
[31] M. F. Weilenmann. Robuste Mehrgrössen-Regelung eines Helikopters. PhD thesis,
ETH Zurich, Switzerland, 1994.
[32] M. F. Weilenmann, U. Christen, and H. P. Geering. “Robust Helicoper Position Con-
trol at Hover”. In Proc. American Control Conference, pages 2491–2495, 1994.
[33] N. Wirth. A Computer System for Model Helicopter Flight Control. Technical Memo
Nr. 1: The Hardware Core. Technical Report 284, Department of Computer Science,
ETH Zurich, Switzerland, 1998.
[34] N. Wirth. A Computer System for Model Helicopter Flight Control. Technical Memo
Nr. 2: The Programming Language Oberon SA. Technical Report 285, Department
of Computer Science, ETH Zurich, Switzerland, 1998.
[35] P. H. Zipfel. Modeling and Simulation of Aerospace Vehicle Dynamics. AIAA Educa-
tion Series. American Institute of Aeronautic and Astronautics (AIAA), Inc., Reston,
VA, USA, 2000.
Curriculum Vitae

Personal Data

Name: Marco Beat Gerig

Date of birth: January 23, 1973

Parents: Erwin Gerig and Hildegard Gerig-Schmidlin

Education

1980–1986 Primary school in Goldau, Switzerland

1986–1988 Secondary school in Oberarth, Switzerland

1988–1990 Gymnasium in Schwyz, Switzerland

1990–1991 High School, Boyd, TX, USA

1991–1993 Gymnasium in Schwyz, Switzerland

1993 Matura certificate, type C

1994–1996 Helicopter pilot training, Swiss Air Force

1996 Military helicopter brevet

1996–2001 Studies in mechanical engineering, ETH Zurich, Switzerland

2001 Diploma as Dipl. Masch.-Ing. ETH (Master’s equivalent)

2001–2006 Doctoral student, research and teaching assistant at the Mea-


surement and Control Laboratory, ETH Zurich, Switzerland
(75 % part time employment)

Helicopter pilot, Swiss Air Force (25 % part time employment)

2006– Helicopter pilot, Swiss Air Force

154

You might also like