Nonlinear Control of an Aerobatic ... UN 2 3 2010 IBRARIES

advertisement
Nonlinear Control of an Aerobatic RC Airplane
MASSA CHUSETTS INSTITUTE
by
0 F TECHNOLOGY
Joshua John Bialkowski
J UN 2 3 2010
B.S., Georgia Institute of Technology (2007)
LIBRARIES
Submitted to the Department of Aeronautics and Astronautics
in partial fulfillment of the requirements for the degree of
Master of Science in Aeronautics and Astronautics
ARCHIVES
at the
MASSACHUSETTS INSTITUTE OF TECHNOLOGY
May 2010
@ Massachusetts Institute of Technology 2010. All rights reserved.
Author ..........
.~.
D
.....-.--...--.-.ar
autics and Astronautics
May 21, 2010
o%
Certified by.....
Prof Emilio Frazzoli
Associate Professor of Aeronautics and Astronautics
Thesis Supervisor
/
Accepted by.............
/
/
IA
Eytan H. Modiano
Associate Professor of Aeronautics and Astronautics
Chair, Committee on Graduate Students
Nonlinear Control of an Aerobatic RC Airplane
by
Joshua John Bialkowski
Submitted to the Department of Aeronautics and Astronautics
on May 21, 2010, in partial fulfillment of the
requirements for the degree of
Master of Science in Aeronautics and Astronautics
Abstract
An automatic flight controller based on the ideas of backstepping is applied to an
aerobatic RC airplane. The controller asymptotically tracks a time-parameterized
position reference, and depends on an orientation look-up rule to detemine the vehicle
orientation from a desired acceleration. A coordinated-flight look-up rule compatible
with the controller provides a nominal level of capability for traditional flight trajectories. A generalized coordinated look-up rule compatible with the controller provides
more advanced capability, including stability for high angle of attack and hovering
maneuvers, at the expense of an additional requirement from the reference trajectory.
Basic simulation results are used to verify the controller, and a simulation software
framework is described which will enable more extensive simulation and provide a
platform for the final controller implementation.
Thesis Supervisor: Prof. Emilio Frazzoli
Title: Associate Professor of Aeronautics and Astronautics
4
Acknowledgments
Foremost, I thank my family for supporting me in my academic pursuits and always
taking an interest in my work, even if I couldn't always provide a simple explanation
of what that was.
I also thank my advisor, Emilio Frazzoli for the many excellent ideas and the advice
he has given me, as well as the other professors here at MIT: Jon How, John Deyst,
and Jean-Jaques Slotine, who have provided me with the foundations of everything
I've learned in this field.
Thank you also to my professors from Georgia Tech's Aerospace Engineering department, especially J.P. Clarke, Wassim Haddad, Panagiotis Tsiotras, Eric Johnson,
and Jerry Seitzman, for the excellent education that has prepared me well for my
graduate studies.
Lastly, I would like to thank the contributors, maintainers, and communities of the
many open-source software packages that made it possible to produce this document,
and that I've used in my research. In particular, thank you Irrlicht, wxWidgets, and
FFMPEG communities for these excellent libraries I have used in my simulations,
the GIT and SVN communities for the invaluable version control software that I've
used. Thank you LaTeX, Tikz/PGF, and Inkscape maintainers and communities for
the fantastic software that made creating this document possible.
6
Contents
I Introduction
1.1
M otivation . . . . . . . . . . . . . . . . . .
1.2
Problem Description ..............
1.3
Previous Work
1.4
Overview of Chapters . . . . . . . . . . . .
. . . . . . . . . . . . . . .
17
2 Aircraft Model
3
2.1
The Aircraft . . . . . . . . . . . . . . . . .
17
2.2
Aerodynamic Model
. . . . . . . . . . . .
20
2.3
Propeller Model . . . . . . . . . . . . . . .
24
2.4
Complete Force Model . . . . . . . . . . .
25
2.5
Finite Section Model . . . . . . . . . . . .
25
State Parametrization
27
State .........................
27
3.1
4 Design of a Non-linear Controller Inspired by Backstepping
31
4.1
Overview of Backstepping
. . . . . . . . . . . . . . . . . . . .
31
4.2
Backstepping Applied to Flight Control . . . . . . . . . . . . .
33
4.3
Translational Controller
. . . . . . . . . . . . . . . . . . . . .
35
4.4
Orientation Controller
. . . . . . . . . . . . . . . . . . . . . .
36
4.5
Backstepping the Acceleration . . . . . . . . . . . . . . . . . .
38
7
5
6
7
8
Coordinated Flight
43
5.1
Orientation Look-up
5.2
Lower-bound Saturation on Acceleration
. . . . . . . . . . . . . . . .
47
5.3
Simulation Results and Limitations . . . . . . . . . . . . . . . . . . .
48
. . . . . . . . . . . . . . . . . . . . . . . . . . .
43
3-Coordinated Flight
51
6.1
Definition of 3-Coordinated Flight . . . . . . . . . . . . . . . . . . . .
52
6.2
#-Coordinated
Orientation Solution . . . . . . . . . . . . . . . . . . .
53
6.3
Simulation Results and Limitations . . . . . . . . . . . . . . . . . . .
56
Simulation Architecture
59
7.1
A rchitecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
7.2
Object-Oriented Design. . . . . . . . . . . . . . . . . . . . . . . . . .
62
7.3
Visualization
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
7.4
Math Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
7.5
User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
Conclusions
67
8.1
Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
8.2
Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
A Aerodynamic Force Modeling
71
A.1 Two-Dimensional Thin Airfoil Theory . . . . . . . . . . . . . . . . . .
71
A.2 Prandtl's Lifting Line Method . . . . . . . . . . . . . . . . . . . . . .
76
B Proofs from Chapter 4
B.1
87
Proof of Geometric Relationship Between a Vector and Rotation . . .
87
B.2 Proof of Finite Limit . . . . . . . . . . . . . . . . . . . . . . . . . . .
89
List of Figures
1-1
Recon Through a City . . . . . . . . . . . . . . . . . . . . . . . . . .
14
1-2
Task Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
2-1
Nexus Photograph
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
2-2
Nexus Solid Model
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
2-3
Modeling Frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
2-4
Body Frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
2-5
Velocity Components . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
2-6 Velocity Components in Prop Wake . . . . . . . . . . . . . . . . . . .
23
2-7
Finite Element Model . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
2-8
Quarter Chord
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
4-1
General Non-linear System . . . . . . . . . . . . . . . . . . . . . . . .
32
4-2
Applied Inner Control
. . . . . . . . . . . . . . . . . . . . . . . . . .
32
4-3
Backstepped Input . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
4-4
Backstepping Block Diagram . . . . . . . . . . . . . . . . . . . . . . .
34
5-1
Coordinated Flight . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
5-2
Coordinated Free Body Diagram
. . . . . . . . . . . . . . . . . . . .
44
5-3
Feasible Accelerations
. . . . . . . . . . . . . . . . . . . . . . . . . .
48
5-4
Following a Helical Trajectory . . . . . . . . . . . . . . . . . . . . . .
49
5-5
Hover-Hover Trajectory . . . . . . . . . . . . . . . . . . . . . . . . . .
50
5-6
Angular Acceleration . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
6-1
#-Coordination
52
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6-2
Multi-point Hover . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
7-1
Scenario . . . . . . . . . . . . . . .
. . . . . . . . . .
60
7-2
Nexus Data Flow . . . . . . . . . .
. . . . . . . . . .
62
7-3
Visualization
. . . . . . . .. . . . .
. . . . . . . . . .
63
7-4
Thread Separation
. . . . . . . . . .
65
A-i
Lifting Element as a Streamline
. . . . .
71
A-2 Vortex Sheet Model of Flat Plate
. . . . .
72
A-3 Downwash Due to Vortex Element
. . . . .
72
A-4 Change of Variables . . . . . . . . .
. . . . .
73
A-5 Circulation Line Integral . . . . . .
. . . . .
74
A-6 Geometry of Forces . . . . . . . . .
. . . . .
75
A-7 Wing as a Bound Vortex . . . . . .
. . . . .
77
A-8 Finite Vortices . . . . . . . . . . . .
. . . . .
77
A-9 Vortex Sheet . . . . . . . . . . . . .
. . . . .
77
A-10 Induced Angle of Attack . . . . . .
. . . . .
78
A-11 Change of Variables . . . . . . . . .
. . . . .
80
A-12 Circulation Result . . . . . . . . . .
. . . . .
85
A-13 Lift Coefficient Result
. . . . .
85
. . . . . . . . .
. . . . . . .
B-1 Geometry of Vector Relationship
.
B-2 View From r . . . . . . . . . . . . .
List of Tables
Component Mass Properties . . . . . . . . . . . . . . . . . . . . . . .
19
2.2 Nexus Moments of Inertia . . . . . . . . . . . . . . . . . . . . . . . .
20
2.1
12
Chapter 1
Introduction
1.1
Motivation
The history of Unmanned Aerial Vehicles (UAVs) is short, and their marketability is
still being tested as their commercial use rises.
T raditionally,
their use has been most
prominent in places where an autonomous flight vehicle can replace a human piloted
one. In many cases, the mission parameters remain the same as for a human piloted
mission, only the human pilot is taken out of the equation (to reduce the chance of
injury or loss of life, for instance). A UAV's applicability to its mission, therefore, is
often centered around its ability to perform like a traditional aircraft. Naturally, this
leads their design and manufacture to somewhat mimic that of unmanned aircraft.
However, as the public become more aware of their use and their potential, UAVs
have begun to realize applicability in their own right. Carrying a human pilot often
yields certain restrictions on how the craft is used, but without a human pilot as a
factor, there is growing demand for vehicles that stretch the bounds of this performance envelope.
There are many cases where small UAVs show significant potential. If we think
about military applications, remote piloted drones are already used extensively for reconnaissance and munitions deployment. In reconnaissance missions in particular, the
ability to deploy a large number of small vehicles to search a large area and identify
potential threats, or potential target locations can greatly reduce the manpower required for the task. An example mission might require a vehicle flying into a crowded
city, maneuvering through various obstacles, observing certain locations, and then
returning, as shown in figure 1-1. This kind of a mission may lead to some conflicting design requirements. The desire maneuver around buildings, and the potential
need to stop and perform extended observations would tend to require a rotorcraft,
capable of quick maneuvering and ability to hover. The desire to fly in from a remote
location, or traverse large distances, would tend to require a fixed wing aircraft for
better efficiency.
a-/
Figure 1-1: Recon Through a City
Figure 1-2: Task Assignment
A more commercial example might be the use of UAVs for pickup and delivery
over a large area. If we think of a multi-agent task assignment type of situation, where
we have many aircraft flying from a depot, arriving pick up locations, acquiring the
cargo, and then flying to deliver location (illustrated in figure 1-2), we again see the
conflicting need for high maneuverability, as well as high efficiency.
One way to address these kinds of needs, is to use somewhat conventional aircraft,
in an unconventional manner.
In particular, small airplane-like UAVs with high
thrust-to-weight ratio, can conceivably achieve high maneuverability and hovering
like a helicopter, but retain the high efficiency of level flight for traversing large
distances. However, designing an automatic controller capable of both traditional
flight, and advanced maneuvering, presents a serious challenge. This document seeks
to address the problem of designing such a controller, that naturally and efficiently
can control a high thrust-to-weight ratio aircraft in a manner that is consistent for
both steady level flight and high angle-of-attack maneuvering.
1.2
Problem Description
The aircraft considered here is a commercial, off-the-shelf remote control (RC) aircraft designed for hobbyist aerobatic pilots. We aim to design a controller for this
aircraft that will track a prescribed time-parametrized position trajectory, with provable asymptotic stability.
1.3
Previous Work
The feasibility of achieving hover and level flight for these kinds of vehicles has been
demonstrated. In [2], Frank et al. present a linear controller with gain scheduling
to provide similar capabilities as those considered here. Other non-linear techniques
have been applied to vehicles that are similar. In [5], Hauser, Sastry, and Meyer
present a nonlinear controller for a V/STOL aircraft using input-output feedback linearization. They demonstrate an approximate dynamic inversion method that allows
for controllability despite "slightly" non-minimum phase behavior. In [4], Hauser and
Hindman present a treatment of highly maneuverable aircraft on a state manifold
that allows for generating aggressive feasible trajectories. Furthermore, backstepping
has been extended to dynamic systems on manifolds. In [3], Frazzoli, Dahleh, and
Feron present a nonlinear control design for autonomous helicopters that is based on
backstepping. It is this design that serves as a basis for the design presented here.
The general theory of integrator backstepping is outlined in many textbooks on
non-linear control, such as Khalil's [7]. The treatment of aerodynamics used in modeling the vehicle can found in textbooks by Anderson [6] and Bertin and Smith [1].
Recent work by Russel, Cory, and Tedrake [12] has validated the simple aerodynamic
model for these types of planes even at high angle of attack. Nelson's textbook [10]
provides a useful look at modeling control surfaces for a fixed wing aircraft. Prouty's
textbook [11] includes an introduction to momentum theory that is is used in modeling the propeller's influence on the vehicle dynamics. Lastly, the use of homogeneous
coordinates to describe the vehicle state and rigid body equations is presented in
Murray's et al. textbook [9].
1.4
Overview of Chapters
In chapter 2, the manufactured characteristics of the aircraft are noted, and the
process of modeling the physical parameters is outlined and results recorded. Also
in this chapter, a model for the flight dynamics is presented. Details on some of the
calculations and methods used are given in appendix A. Chapter 4 details the design
of a backstepping inspired controller for trajectory tracking, based on the model in
chapter 2, and using a generic definition of an orientation look-up rule with assumed
characteristics. Some of the tangential details of this design are verified in appendix
B. Chapters 5 and 6 present details for two orientation look-up rules compatible with
the design in chapter 4, and some conclusions about each. Chapter 7 presents details
of a simulation architecture that was built to verify the control design, and some
additional applications intended for that architecture. Chapter 8 provides some brief
concluding remarks about this design, and some extensions for future work that is
planned.
Chapter 2
Aircraft Model
The vehicle targeted for implementation and demonstration of this controller design
is an off-the-shelf indoor flight competition RC airplane made by Nexus. This chapter
will describe the details of the plane and its operation, and the dynamic model that
was developed for it.
2.1
The Aircraft
The Nexus ARF Indoor 3D Plane is a foam construction aerobatic airplane. The
ARF acronym stands for "Almost Ready to Fly", meaning the electronics (servos, receiver, battery, engine controller, and engine) were not part of the kit. It is primarily
composed of a set of 3mm Depron foam sheets, with 0.05" (1.2mm) carbon fiber rod
struts. The airplane is outfitted with three Futaba S3108m servos, a Axi Gold Line
2203/52 engine and an 8" Graupner Slow-Fly propeller with 4.5" pitch. The radio
receiver is a GWS micro 4 receiving a standard radio control style Pulse-Position
FM signal, and generating Pulse-Width Modulated servo and motor commands. The
engine is controlled via a JETI Advance Plus 18 Electronic Speed Control (ESC). A
photo of the outfitted aircraft is shown in figure 2-1.
The three servos actuating the control surfaces do so in the traditional manner.
One channel actuates the elevator, one actuates the rudder, and a third actuates the
ailerons. The ailerons are linked so the left aileron is deflected equal in magnitude
but opposite in direction to the right.
Figure 2-2: Nexus Solid Model
Figure 2-1: Nexus Photograph
The Nexus has a 32" (81.28cm) wingspan, is 35j" (90.17cm) long, and has a wing
area of 272 in 2 (1755 cm 2 ). The reported weight, including a nominal set of electronics, is 4.8oz (136g)
In order to create an estimate of the mass properties of the vehicle, a complete
solid model was composed in Solidworks
@,
a rendering of which is shown in figure
2-2. The model includes accurate placement of servos, engine controller, battery,
motor, and propeller. The mass and location of the mass center of each of these components are given in table 2.1. The reference frame for the location measurements
has its origin at the nose of the aircraft, at the edge of the horizontal foam sheet,
and coincides with the centerline of the aircraft's body. The x-axis is positive toward
the tail, the y-axis is positive toward the starboard wing, and the z-axis is positive
toward the cockpit, as shown in figure 2-3.
component
Engine Controller
Receiver
Battery
Servo (Aileron)
Servo (Elevator)
Servo (Rutter)
Motor
Propeller
Vehicle
mass (g)
7
4.2
42.5
8.5
8.5
8.5
18.5
21.9
121
x (cm)
10.5
-0.9
17.6
17.0
22.0
26.8
-0.9
-2.7
11.25
y (cm)
-0.4
-0.0
0.1
0.0
0.1
0.6
-0.0
0.0
0.13
z (cm)
-2.4
0.0
0.4
-1.1
-0.6
-2.8
0.0
0.0
-0.38
Table 2.1: Component Mass Properties
The Depron foam was modeled as a solid with density 0.0359 kg/m 3 . The propeller was modeled as a solid with density 1300 kg/rn 3 , a standard value for Nylon
plastics. The propeller was weighed to be 23 g and the model, given this density, was
estimated to be 21.8g. The foam elements contribute 0.052g to the total weight of
the aircraft. All of the electronics were modeled as being uniform density with center
of mass coincident with that estimated by observation.
Figure 2-3: Modeling Frame
Figure 2-4: Body Frame
The center of mass was reported by Solidworks to be at a location 11.2 cm away
from the nose along the center-line, 1.2 mm away from the center line along the starboard wing, and 3.8 mm away from the wing-plane on the bottom side. Solidworks
reports that the model has an expected total mass of 121 g, and provides the second
moment of inertia tensor recorded in table 2.2. This tensor is described in a coordinate system located at the vehicle's center of mass, with the x-axis along the vehicle
centerline and positive in the direction outward of the nose, the y-axis along the
wingspan and positive in the direction of the starboard wing, and the z-axis pointed
out of the bottom-side of the aircraft (a traditional aircraft coordinate system), as
illustrated in 2-4.
Nexus Inertia Tensor (kg-m 2 )
9.59e-5
-3.57e-6
-4.71e-5
-3.57e-6
1.3e-3
-3.44e-6
-4.71e-5
-3.44e-6
1.25e-3
Table 2.2: Nexus Moments of Inertia
We also note that the reported principal axes are very close to the axes of our
chosen body coordinate frame, and that it would be reasonable to assume the cross
moment of inertia terms are zero. Therefore we will use for the inertia matrix the
following.
[Iz
0.099 0 0
0 0
0
0
2.2
I,,
0
0 IZZ
=
0
0
1.3
0
- 10-3kg-m 2
0 1.25
Aerodynamic Model
In order to derive an effective controllable force model of the aircraft, we will ignore
the small effects of the vehicle's angular velocity on the aerodynamic forces. Thus, we
assume that the aerodynamic forces are a function only of the velocity of the vehicle's
center of mass, and its orientation with respect to that velocity.
Since the aircraft is composed of essentially a collection of 3mm thick foam plates,
and because we expect the vehicle to fly at relatively low speeds, a simple flat-plate extension to inviscid, thin-airfoil aerodynamic theory is employed. Aerodynamic forces
on an aircraft are frequently written using non-dimensional coefficients
[6,
Section
1.5, page 20] as follows.
1 =cq.C,
(2.1)
d =cqCd.
(2.2)
Here q, is the dynamic pressure, c is the surface length of the aerodynamic surface,
C is called the coefficient of lift, and
Cd
is called the coefficient of drag, and 1 and
d are the two-dimensional lift and drag per-unit-span. Lift is defined to be the force
perpendicular to the free-stream velocity, and drag in the direction of of the freestream. The dynamic pressure is a function of the free-stream velocity and of the air
density.
q0
2 )KO
2
(2.3)
However, since we will be dealing with orientations of the vehicle well outside
the "low angle-of-attack" regime, and because our vehicle is a pair of orthogonal
flat plates, it is more convenient to define simply the force perpendicular to the flat
plate, so we will denote the two-dimensional force per-unit-span on the flat plate by
f
= cq.C f .
Note that Cf (lower-case 'f' subscript) is frequently used to denote the skin friction
coefficient, which is quite different then the meaning we have assigned to it here. The
two-dimensional force coefficient for a thin airfoil in incompressible, inviscid flow is
proportional to the sine of the angle of attack by the following.
Cf = 27r sin a
(2.4)
The derivation for this flat-place force model follows that in [6, Section 4.7, pages
298-304], though makes no assumption about small angles-of-attack. The details of
the derivation for this model are given in appendix A.1.
Of course, for a three dimensional body a two-dimensional lift model is insufficient. We can quantify the force generated in a three-dimensional flow by considering
the two-dimensional model, and by accounting for the change in local angle of attack
due to the downwash over the wing, caused by air bleeding over the tips and circulating toward the centerline. We apply Prandtl's lifting line method, as described in
[6, Section 5.3, pages 360-3861 to achieve this characterization. While the method is
typically given for low angles-of-attack, where a simple analytical solution exists, we
can extend the model to arbitrary angles of attack by using a numerical method. See
appendix A.2 for a description of this method and the algorithm used. The output
of algorithm A.1 yields an estimate for the constant term of the force coefficient kF
so that the net force over a flat plate is given by the following, where S is the surface
area of the plate.
F =q.SCF
(2.5)
CF =kF Sina
(2-6)
Note that this implicitly ignores the cross wind on each plate (the y-component
of velocity for the horizontal plate, and the z-component of velocity for the vertical
plate). Therefore, in a three-dimensional context, we do not in fact use V in equation
2.6, but rather its projection onto the alternate principal plane (in the xz-plane for the
horizontal plate, and the yz-plane for the vertical plate). If we decompose the freestream velocity into components along the vehicle body frame, then for the horizontal
body plate, this indicates a geometric relationship with the velocity vector illustrated
in figure 2-5. Note that the components of the free-stream velocity vs, vy, v, have the
same magnitude as the respective components of the vehicle's velocity measured at
its center of mass and represented in the body frame. We will use the same variables
to describe each.
Figure 2-5: Velocity Components
From the geometry illustrated in figure 2-5, we can identify a relationship between the components of the vehicle's velocity, and the magnitude and angle of the
velocity needed for applying the force model in equation 2.6. We can apply the same
relationship for the vertical flat plate section.
+V2
=2
V2
Vh
Vx +
vz
Va,
2
2 +V2
v =Vx +y
sin av
(2.7)
(2.8)
Va,
We must also consider the effects of the propeller on the flow field. We will
ignore the complicated aerodynamics near the propeller, and consider only the farfield contribution to the velocity. We will model the propeller's effects as an additive
component of flow in the vehicle's body x-direction, as illustrated in figure 2-6.
Figure 2-6: Velocity Components in Prop Wake
From the geometry in figure 2-6, we can again identify a relationship among the
components of the vehicle's velocity, and the contribution of the propeller to the flow,
and the magnitude and angle of the velocity needed for applying the force model
in equation 2.6. We again extend this same relationship for the vertical flat plate
section.
v=(v.,
sin a,
=
Vx
+
vp) 2
+
V 2, =(Vx
V2
+
sin av, = -V
Vz
+ VP
ex +v
(2.9)
v,)2 + V2
(2.10)
(
Then, in order to complete our force model for the Nexus, we split the force
coefficient identified in equation 2.6 into one part outside of the propeller wake, and
one part inside of the propeller wake. We can then use the definitions from equations
2.7 through 2.10 to find the force on the horizontal plate represented in the vehicle
body frame (Fbh), and the force on the vertical plate represented in the vehicle body
frame (Fbv). Note that we have shown, in generic terms, qj sin(a,) = kV 2 (v/V)
yielding the following.
Fbh
F
2.3
-
= -
+ khpvhp) vz
(2.11)
(kuvv + kVPvVP) v,
(2.12)
(khvh
Propeller Model
The propeller is aligned with the vehicle's body x-axis, and so we will model its force
contribution as having only a component in that direction. We will assume that the
thrust is commanded directly, with no dynamics of its own, and we can estimate
the flow contributions of the propeller, by applying simple momentum theory as
described in [11, Section 1.1, pages 1-101. From this theory the far-field velocity due
to the thrust of the propeller is a function of the Thrust, T, the air density, p, and
the area of the propeller disc, Ar,.
V
2.4
(2.13)
pA2T
prop
Complete Force Model
Since the aerodynamic forces are orthogonal to their respective plate sections, and
the thrust is aligned with the body x-axis, it is easy to see that the net force acting
on the vehicle, represented in the vehicle body frame, is simply the aggregate of these
three contributions.
F = [T Fv
2.5
(2.14)
Fbh]
Finite Section Model
It was assumed that the angular velocity of the vehicle does not contribute significantly to the generation of aerodynamic forces on the vehicle. It is useful to validate
this assumption in simulation, so while we allow this assumption in the development
of a controller for this vehicle, we also implement a higher-fidelity model to account for
these effects during simulation. In the process of determining the force coefficients as
outlined in A.2, we generate a collection of sectional lift coefficients for a finite division
of the lifting surfaces planform. Therefore, we can model the aerodynamic forces generated over the body by summing the individual contribution of these finite elements
(which are illustrated in figure 2-7), fully accounting for all contributions to the local
flow speed (the velocity of the vehicle's center of mass, the angular velocity of the
vehicle, and the propeller if the element in question is within the propeller's wake).
This high-fidelity model is composed of a collection of vectors:
,
the span-wise (y)
location of each element's aerodynamic center, x'c, the x location of each element's
aerodynamic center (assumed to be at the quarter chord), and c' the chord-length of
each section.
0
-0.4
-0.-0.4
-0.6
-0.8-0.5
-0.6
-.
0.5
0
-0.8
-0.4
-0.2
Figure 2-7: Finite Element Model
0
0.2
0.4
y (m, body axis)
y (m, body axis)
Figure 2-8: Quarter Chord
The local velocity vector at a given element i of the horizontal plate then can
be described according to its position p, and the vehicle's angular velocity w (both
expressed in the body frame) as follows:
V = Vo, + W x p + I (P) v
0 0}T
(2.15)
Here, I(p) is an indicator function, evaluating to 1 if the location p is within the
propeller wake, and 0 otherwise. Then the force contribution of that element can be
found by decomposing the local velocity and applying equation 2.6
Chapter 3
State Parametrization
3.1
State
In order to fully describe the pose of the vehicle we need to keep track of both its position and its orientation. The orientation can be fully described by the rotation matrix
R describing a transformation from body coordinates to inertial coordinates. The position can be described by a vector i from the origin of the inertial coordinate frame
to the center of mass of the vehicle, expressed in coordinates of the inertial frame.
The complete pose then can be described by an element g of the Special Euclidean
group in three-dimensions, SE(3). In homogeneous coordinates, in accordance with
the formulation in [9],
(3.1)
g =
L0
1
The derivative of this state is given by the equation
a
=
g( where the twist (
encodes the angular velocity W and velocity ' represented in the body frame.
(3.2)
0
0
In the above, & is the 3 x 3 matrix composed of the elements of W such that
cui= c x
, commonly referred to as the cross-product matrix of W.
Z
0
-W.,
-WY
or
0
.(3.3)
The full state then can be represented as the pair of matrices (g,(). The dynamics
of a Newtonian rigid body represented in this manner are described as follows:
MV
J6
=
-W x MV + Zb(g, 5,U)
-
x JbU-- J, + M(g,(,u)
(3.4)
(3.5)
Where Jb is the inertia tensor of the vehicle, m is the vehicle mass, Mb are the
moments in the body frame, and F are the forces in the body frame. A propeller
driven airplane is not quite a rigid body and the inertia of the rotating mass (at
the propeller) contributes an additional moment on the vehicle, so equation 3.5 is
corrected as:
Jb)
=
-L x (Jba
-
Jr,)
+ MA(g, (, U)
(3.6)
Where Jr is the inertia of the rotating propeller, and wr is the rotation rate of the
propeller, both represented in the body coordinate frame.
This parametrization is chosen for a number of reasons.
Because the goal of
this controller is to track a reference trajectory, for slowly time varying paths the
configuration of the vehicle will be close to its hovering dynamics, with the nose
pointed up. However quickly varying paths will lead the system to naturally evolve
into steady-level-flight-like motion. Therefore we need a parametrization that is not
singular over full 90' rotations. This state definition has the advantage of being robust
to numerical sensitivity at large rotations in contrast to an Euler-angle representation,
and the inherent group-behavior slows the propagation of numerical error, and reduces
the complexity in software implementation.
30
Chapter 4
Design of a Non-linear Controller
Inspired by Backstepping
We would like to design a controller for the Nexus aircraft that tracks a prescribed
time-parametrized position reference trajectory given by p,(t), a vector describing the
translation of the vehicle's center of mass from some inertial origin. We have at our
disposal the ability to manipulate the orientation and the thrust of the vehicle. We
will assume that we can achieve any moment desired to effect any desired orientation.
Our goal then in designing a controller is to realize a moment M and a thrust command, T that achieves the desired trajectory. We also assume that at any point in
time, we can measure with perfect accuracy the full state of the system. We approach
this complex problem by simplifying it into simpler control modules. The following
design closely resembles the design in [3] targeting autonomous helicopters, with the
significant difference of the presence of aerodynamic forces in addition to the thrust.
4.1
Overview of Backstepping
As outlined in [7, Section 14.3, pages 589-6031, the processes of integrator backstepping involves a nonlinear system with state r/ and control input u, as illustrated in
figure 4-1 with the following form:
(4.1)
//=f (rq) + g(n)(
=U
S
g()
±
(4.2)
f
f(.)
Figure 4-1: General Non-linear System
If there is a known control law (=
(rq), with 0(0)
=
0, that can stabilize 'q, then
we can think of the components of the system to the right of the first integrator as
a virtual subsystem as illustrated in figure 4-2. We can apply the stabilizing control
law to create a stable closed-loop subsystem, and then think of the actual input to
this subsystem, (, as a disturbance relative to the desired input 0(r7).
f(. + g.)4(.)
Figure 4-2: Applied Inner Control
We do this by separating ( into
(( - #(r/))
+
#(rq),
putting the dynamic equations
in the following form:
/=
[f(rq) + g(r)#(7)]
+ g(17) [( -
(r1)]
(4.3)
(4.4)
Then, as illustrated in figure 4-3, we can backstep the desired input through the
integrator, and compose a virtual input to the system by summing the actual input
with the derivative of the desired subsystem input.
-4q)
.f~o
Figure 4-3: Backstepped Input
This yields a change of variables that allows us to rewrite the dynamics in the
following form, in which the first equation has an asymptotically stable origin when
the input is zero.
[f(7) + g(7)(7)] + g(r)z
V=
z=u -
4.2
=v
(4.5)
(4.6)
Backstepping Applied to Flight Control
We can apply this same backstepping concept in a block manner for flight control.
We start by considering the dynamic relationship between the system commands that
we have at our disposal, and the trajectory that it will follow given those commands.
Then we look for a way to incrementally reduce the complexity of this relationship.
In the case of this Nexus aircraft, we can do this by essentially asking three separate
questions.
1. If we could directly command the net force of the vehicle, then what would that
command be in order to track the reference trajectory?
2. If we know what we want the net force of the vehicle to be, and what the
vehicle's current velocity is, what orientation and thrust should the vehicle
assume in order to generate that net force?
3. If we knew what we wanted the orientation of the vehicle to be, what moment
should we generate in order to reach that orientation?
These three questions reveal that there are two essentially separate sets of dynamics, and one additional relationship that glues them together. The vehicle's position
is governed by its translational dynamics, which are essentially a collection of double
integrators responding to the net force vector on the vehicle. The net force on the
vehicle is the sum of the propeller thrust, and the aerodynamic forces. The aerodynamic forces are a function of the vehicle's orientation with respect to its current
velocity, and the orientation, in turn, is governed by the orientation dynamics, which
form an integrator on the group SO(3) responding to the net moment on the vehicle.
The net moment, in addition to the thrust, is something we control. We can consider
these three relationships as two separate virtual systems, and one correspondence,
where the output of one acts as the input of the next.
Position 0
P
Tanslational
Aerodynamics
Orientation
Td
Tanslational
Loku
OrientaniMn
Figure 4-4: Backstepping Block Diagram
Considering the system as the composition of these virtual subsystems leads us to
the natural idea of designing three separate and corresponding controller modules: a
translational controller, a state look-up rule, and an orientation controller. Each one
can be view as a controller for the virtual system it is related to, and the output of
each controller module serves as a reference for the next one in the chain. If we can
design a stable controller for the translational dynamics, then we can backstep that
control command through the look-up rule, and through the orientation dynamics,
to create a stabilizing control for tracking the desired trajectory. This concept is
illustrated in the block diagram in figure 4-4.
4.3
Translational Controller
If we assume that we can produce any arbitrary net force on the vehicle, and thus any
acceleration, then the design of a stabilizing translational controller is quite straight
forward. In particular, a simple proportional-derivative (PD) control law will suffice.
We can write the relationship between the position of the vehicle p and its derivatives
in the familiar form of i
Ax + Bu.
=
= +
S0
0
p
0
(4.7)
I
Since we are concerned with tracking a trajectory, it is convenient to consider the
translational error, rather than the absolution position of the vehicle. If the trajectory
we wish to follow is given by p,(t), we define the translational error as P = p - pr(t).
In this case the error dynamics are given by the following system.
.j =
_P
0 0
[. +
_P
I
(i-p,).
(4.8)
Note that at this point, we are considering P to be a command that we feed the
system. Therefore, we apply a linear feedback control law in the following form.
P = Pr- Kj - K#
(4.9)
If we insert equation 4.9 into equation 4.8, we observe a closed-loop system for
the error dynamics given by the following.
=D(4.10)
0.
p -Kp
-KD
This is a time-invariant linear system in a familiar form. If we denote the aggregate
error vector
[P by the variable -, then the system can be rewritten as.
(4.11)
For any positive definite, symmetric matrix,
Q, if
there exists a unique positive-
definite solution to the Lyapunov equation ATP + PAT =-Q, then A is asymptotically stable. A Lyapunov function for this system is given by 4.12, indicating that
the translational state error will converge to zero exponentially fast.
(4.12)
V = -1 TPY
2
t =T
(AP + PAT) y
=
-yTQy
(4.13)
We can find Kp and KD in a number of different ways. One way is to make
them both diagonal, in which case the x-, y-, and z-channel errors are decoupled, and
then we can apply classical control theory to choose the magnitude of the diagonal
elements Kp, and Kd,i from some classically inspired performance requirements. It is
also possible to find a stabilizing Kp and KD directly from the solution to a Riccati
equation per LQR [8].
4.4
Orientation Controller
The nominal orientation controller is similarly straightforward to design. Recall that
we describe the orientation by a rotation matrix R transforming a vector in the vehicle
body-frame to an equivalent vector in the inertial frame. As R E SO(3), we can take
advantage of the group behavior of SO(3) to relate the dynamics of R to the angular
velocity w expressed in the vehicle body-frame.
R = Rc
(4.14)
We assume that we can produce any moment, and so the angular acceleration
b, is our control input. We also assume that the orientation reference R, is at least
twice differentiable with respect to time, yielding continuous angular velocity W, and
angular acceleration b,. The "hat" operator
(^)
transforms a vector in R3 into a
3 x 3 matrix, such that, for two vectors x, y E R3 , then iy = x x y. We define
the orientation error by f2 E so(3), given by
composed of {xlx E R3,
IX|I
n2 = log(RRT).
The set so(3) c R3 is
E [0,7r]}. The logarithm map log(R) SO(3)
'-+
so(3) is
given by the following.
0(R) = arccos
trace(R)
2
-
1
(4.15)
R32- R23
log(R) =
s (R)
2 sin (6(R))
R 13
- R31
(4.16)
R 2 1 - R 12
In order to simplify the notation, however, it is more convenient to consider the
orientation error by its normalized direction i and magnitude 0, such that f2 = & .
We define a desired angular velocity
velocity error as D
=
w
-
Wd.
Wd
--
w - kof. Then we define the angular
A Lyapunov function candidate for the orientation
block is given by V, defined here.
Vo = E(RRT) + I&T&
2
(4.17)
The function 8(R) is a measure of the group error on SO(3) and is defined by
1 - cos(I Ilog(R) ||). If R is the composition of two rotation matrices representing
orientations, then
E is a normalized
measure of the smallest magnitude rotation from
one orientation to the other (analogous to the two-norm in a Euclidean space, which
is a measure of the smallest magnitude translation from one point to another). Note
that it is a positive definite function about the identity rotation matrix. Also note
that, by equation 4.16 above, its definition reduces to 1(R) = (3 - traceR)/2. Its
derivative with respect to time is given by equation 4.18.
E)(RRT)
= sin6 -fT R,(w - wr)
(4.18)
Then the derivative of the Lyapunov candidate is given by the following.
V0 = sin Oi TR
+
(4.19)
CT-
Then we propose the following nominal orientation control law, which yields a
derivative of V given by 4.21.
W =
W, -
kCD - sinGfifTR,
(4.20)
(4.21)
V0 = -kJ&TU
4.5
Backstepping the Acceleration
If we can define an orientation look-up rule such that j(R, T) is invertible, then we
can use the attitude R as a control input to the translational block. In this case we
define a desired thrust Td and orientation Rd, which, together with its derivatives, we
feed as the orientation reference to the orientation controller. It is worth noting that,
although thrust can be commanded directly, in order to ensure that the system has
constant relative degree, we'll extend the dynamics so that we treat its derivatives as
the control input.
In order to use a Lyapunov analysis to design a stable controller, we must ensure
that the dynamics of the orientation block are sufficiently fast that they overcome
the error dynamics of the translational block. So we will first consider as a candidate
Lyapunov function, a summation of V and V.
V1
=
1
2
VT+ V0 = -P7
1
2
+ O(RR) + - DT&
(4.22)
However we cannot strictly enforce the translational acceleration given by the
block controller design in equation 4.9 since we cannot instantaneously change the
orientation, so instead we define
Pd
as the desired acceleration, according equation
4.9. Then the translational dynamics are given in equation 4.23, with By
1
0
0=
11
,
and the time derivative of V is given in equation 4.24.
A-y-y + By (P - Pda)
(4.23)
Vi =0V±' T PBy(p -p-a)+Vo
(4.24)
In order for equation 4.22 to be a Lyapunov function, we must have that
IVt+VoI >
-TPB(p - fi'd). We can achieve this by augmenting the orientation error feedback,
as in [3], to exactly cancel out the offending terms. Following the method in [3], the
acceleration error can be decomposed into a part depending on the orientation error,
and a part that doesn't.
P - Pd =
(4.25)
RF - RdFbd
= RF - (Rd - R)Fbd - RFbd
(4.26)
(R - Rd)Fbd
(4.27)
=
R(F -
Fbd) +
The part depending on the orientation error can be broken down into its components as follows.
(fR - Rd)Fbd = (fR - Rd)(Tde1 - Fvde2
-
Fbhde3)
(4.28)
From the geometry of rotations, we can show that for any unit vector ei, the
following is true (see section B.1 in appendix B for a justification).
(R - Rd)ei
=
tan
(r x (R +
And by rearranging terms we have the following:
Rd)ei)
(4.29)
TPB(r x (R + Rd)ei)
= fT ((R
+ Rd)ei x BTPy)
-y
(4.30)
y TPBY(R - Rd)ei = tan 0 fT((R + Rd)ei x BTP-y)
(4.31)
And finally
We will therefore use this expression to augment the orientation dynamics offsetting the components of equation 4.28. The other term in equation 4.27 can be
decomposed as follows.
R(Fb - Fd,) = (T - Td)Rel ± (Fo - FV )Re 2 + (Fbh
-
Fbhd)Re3
(4.32)
The first term which is dependent on the thrust will be used to augment the
thrust dynamics. The second do not yield an obvious decomposition for either the
orientation or the thrust, so we will offset these by matching their magnitude, in the
direction of steepest descent on the orientation error. A candidate Lyapunov function
for the system is the following:
2TPT + koe(RRd ) + I(I|In|2
+kTT
Td| 2 + I II2
-
(4.33)
where 17 is the augmented angular velocity error, and C is the augmented thrust
rate error:
7 = W -
Wd -
-
C= i
and:
TdF1 -
(Fbv - Fbv,)G
1
-
FbvF2 -
Zad- -H
kT
1
2 -
FbhdF3
(Fbh
-
Fbhd)G3
(4.34)
(4.35)
Fi =
1
Rd((R + Rd)ei
2
2k0 cos
Gi =
RV/(ke sins>)Hi
x
(4.36)
yTPB)
(4.37)
H, = yTPB,,Rei
(4.38)
We note that (Fi - Fbid)Gi is continuous despite having sin 9 in the denominator
because the expression has a finite limit at 9
0 (for justification see section B.2 in
appendix B). It is obvious that V is non-negative, since P is positive definite, and
6 is positive definite with respect to orientation error. Furthermore, since all the
terms in V are non-negative, V
that -y =
[0
=
0 implies that all terms are zero. This implies
0 0 T is a zero vector. In turn, from their definitions (equations
4.36 through 4.38), F, G, and Hi must be zero. Then from the definition of the
augmented errors, equations 4.34 and 4.35, the angular velocity and thrust rate errors
must also be zero. Furthermore,
(T - Td) 2
=
e=
0 implies that the orientation error is zero, and
0 implies that the thrust error is zero. Therefore, if V = 0, then all
the state errors are zero, and so V is positive definite. The time derivative of the
Lyapunov candidate is given by the following:
V = -TQy
+
TPB,(j - Pd)
+ q + kT(T - Td)(T
-
+ k sin dfT Rd(W
-
Wd)
Td) + CTC
(4.39)
We can ensure that V is negative semidefinite by imposing the following:
=
-k,7
= -kgC
- ko sin &?Rd
(4.40)
- kT(T -
(4.41)
Td)
Then by applying the identity sin a = 2 sin C/2 cos 0/2, the 7T term has the fol-
lowing expansion.
/Tr/ =-k
7
/Tr
-
ko sin #f(w -
Wd) -
Td tan 5f ((R + Rd)el x BTP-y)
- Fvd tan 5i"((R + Rd)e 2 x BTPY)
- FbhdtanOf ((R + R)e
x BTP'y)
3
- (F&V - FbVd )yTPBRe2
-
(Fbh
(4.42)
Fbhd)>TPBRe
3
-
And (( expands to :
CC = -k(C
- kT(T - Td)(T
-
Td) - (T - Td)-y T PBRe
1
(4.43)
So that that the derivative of the Lyapunov function candidate simplifies to the
following:
f
= -7TQy - kg/Tr/ - kc
2
< 0
(4.44)
This indicates that the time derivative of the Lyapunov function is negative
semidefinite. Taking higher derivatives of V indicates a unique invariant set consisting of only the origin, and by LaSalle's principle the system is asymptotically
stable. The control inputs then are as follows.
T=Td+ -H
kT
Mb
- k( - k(T - Td)
W X (JbW -
Jb+
JW,) + Jb
[TdF1 -
FbVdF
(4.45)
[-kg/r - ko sin OjTRd(w
2
-
FbhdF3 -
(FbV -
-
Fa)H
Wd) + bd]
2
-
(Fbh -
Fbhd)Hs] (4.46)
Chapter 5
Coordinated Flight
In the derivation of the controller, Rd was assumed to be known, invertible, and twice
differentiable, though it was not specifically defined. We now approach the problem of
designing a suitable orientation look-up law to satisfy these requirements. We require
that the orientation given by the look-up law generates an acceleration that matches
that output by the translational controller, given the vehicle's current velocity. We
will denote the acceleration command as Pd (desired acceleration), and the vehicles
velocity, represented in the body frame, as v. We will describe its orientation by a
rotation matrix R transforming a vector in the vehicle's body frame to an equivalent
vector in the inertial frame. The problem, then, is to find an expression deriving Rd
given Pd, R, and v.
At any given velocity, the set of orientations that satisfy a desired acceleration are
not generally singleton. We must then design additional restrictions to prune down
this set.
5.1
Orientation Look-up
One such restriction that is commonly used in flight vehicles is the restriction to
"coordinated" acceleration, where the net acceleration is completely contained in the
body x-z plane, as illustrated in figure 5-1. This is convenient for manned vehicles
because it ensures that the accelerations felt by the pilot are only into his chair, and
he doesn't experience lateral accelerations.
Figure 5-1: Coordinated Flight
The calculation for the orientation that satisfies Pd is quite straight forward. Since
there can be no lateral acceleration, we know that the aerodynamic forces on the
vertical body section must be zero, and therefore the vehicle must be flying with no
side-slip, and the velocity is also constrained to the body x-z plane. As illustrated in
figure 5-2, if we consider the system from a reference frame oriented with the x-axis
along the direction of the velocity, and with the y-axis perpendicular to both the
x-axis and the direction of the acceleration, the problem resolves to solving for the
angle of attack such that the magnitude of the desired acceleration in the body z-axis
is equal to the aerodynamic force of the horizontal plate. Then the thrust required is
equal to the projection of the desired acceleration onto the body x-axis.
,m(P-g)
Figure 5-2: Coordinated Free Body Diagram
From the geometry in figure 5-2, if the angle between the desired acceleration and
the direction of the velocity is 0, then the angle of attack a is found by solving the
following pair of equations.
m(Pd- g) cos(O- a) = T
(5.1)
m(Pd - g) sin(O - a) = khV 2 sin(a)
(5.2)
The solution of which is given by equation 5.3 below.
tan(a) =
m(iid - g)sin 9
V-(d
) S
kh V2 + m(Pd -
(5.3)
g) COS 0
The orientation command, then, is a composition of the rotation given by a, and
the rotation matrix describing the velocity frame.
Rd =
(5.4)
RvRc
with
cos a
ROL
0
-sina
0 sin a
1
0
(5.5)
0 cosa
The velocity frame is defined such that the x-axis is aligned with the current
velocity vector, vi in the inertial frame, the y-axis is orthogonal to both the x-axis
and the acceleration command, and the z-axis follows from the x-axis and the y-axis.
We can define these axes by the unit vectors x, y, and z in the equations below.
x = v/ivIl
y =ii:X X d~
Pdj
..
z = xxy
(5.6)
Then rotation matrix describing the orientation of the velocity frame is given
simply by column-concatenating these three vectors.
RV = Ix y z(
(5.7)
The angular velocity is given by the Lie Algebra so(3) associated with SO(3).
w(=
(TR
The "vee" operator (v) is the inverse of the "hat" operator
(5.8)
(^),
selecting the
elements of w from the skew symmetric matrix RTR, whose diagonal elements are
zero. The angular acceleration can be found by applying the product rule.
R = R& + Rw'
d
= (RT R - RTRZ)
(5.9)
The derivatives of the orientation matrix are given by the product rule based on
its definition.
R = RRa + RRa
(5.10)
R RRa
(5.11)
+2R+Ra + R&R
The derivatives of the velocity frame components are as follows, where?) = 1/mF.
-
1/IloVI3(VT?)V
-(Vxiid)
T=
T
eivs+
+
/IIVxPdi13 [i)
x
(5.12)
1/lvIlin
x 3d + v x
1
d]
(v X Pd) + 1 /IlvxdI| |[ x Pd + v X Pd]
r
The derivatives of the a rotation matrix is given by the following.
(5.13)
(5.14)
sin a 0 cosa
0
d
0
0
(5.15)
-cos a 0 -sin a
-sina
0
cos a
0
0
0
ha
-[cos
a
-cos a 0 -sin a-
sin a
62
0
0
a+
-
sin a
- cos
(5.16)
a
The derivative of the angle of attack is found by the following.
2
-m(Pd - g) sin 0
sec 2(a)& =
(khV
2
..
.
hV+MdCOSMP
+ m(Pd - g) cos o)2k.
mid sin 0 + m(Pd - g)-4 sin
kVmji-(5.17)
+
kh V2 +
mn(Pd -
d
dtCOS)
(
g) COS 0
where
d sin =
dt
d
d COS 6 =
dt
1
(v x P d)T
XP
. ..
||v||||Pdjl liv XpdlI
1..
||v||||a||
((, T
-+a
j VoT )
(5.18)
(5.19)
The second derivatives are likewise found by successive application of the product
and composition rules.
5.2
Lower-bound Saturation on Acceleration
It should be noted that, in the derivation of the control law, we assumed that the
look-up rule was invertible for any given acceleration command Pd. This is not strictly
achievable, and while the coordinated look-up can satisfy most desired accelerations,
there is a range of infeasible accelerations that it cannot achieve. In particular, for an
acceleration whose direction makes an angle with the current velocity greater than
900 , there is a lower bound on the achievable magnitude, as illustrated in figure 5-3.
0.8
0.6-
Feasible
-Pn
0.4
0.2
Infeasible
0
1
-0.5
0
0.5
Figure 5-3: Feasible Accelerations
This lower-bound saturation is due to the fact that the aerodynamic forces scale
with the vehicle's velocity, and grow with the angle of attack, and because we do not
have the power to generate negative thrust. This limits the set of feasible trajectories
for which we can guarantee tracking, to those that leave some finite margin on this
lower-bound.
5.3
Simulation Results and Limitations
Validation of the controller design using the orientation look-up was done by simulating the controller along a helical trajectory. The position over time is plotted in figure
5-4 demonstrating the vehicle holding a coordinated trim over a period of 30 seconds.
3.53
.
2.5
2
5
5
y, (M)
-5
-10
z, (M)
Figure 5-4: Following a Helical Trajectory
Using a coordinated look-up has the advantage of being relatively straightforward,
and corresponding well to a traditional approach for aircraft control. However, for
aggressive maneuvers, a coordinated orientation may not be the best choice. If the
velocity is too small, the velocity frame becomes undefined. We can work around
this limitation by arbitrarily replacing R, with the identity matrix, but in the case of
trajectories that involve periods of hovering, small disturbances in the position can
lead to very large moment commands. Since we require that all acceleration be in the
body x-z plane, a small error in the vehicle's y-axis will require up to a 90' rotation
in order to compensate. To demonstrate this, the coordinated orientation look-up
was applied to a simple point-to-point hover trajectory, with a transition period in
between, as illustrated in figure 5-5. The trajectory holds a constant position for four
seconds, transitions (with continuous derivatives) to a constant velocity segment, and
then back to hover at eight seconds, where it remains.
Hover
Transition
Hover
6
8
time t sec
Figure 5-5: Hover-Hover Trajectory
Figure 5-6: Angular Acceleration
The angular acceleration of the vehicle over this trajectory is shown in figure
5-6. It demonstrates that, as expected, during hover there are very large moment
commands generated. The model used in this simulation did not involve any simulated
estimator noise so round-off error and numerical precision were enough to stimulate
small position errors and lead to these high moment commands as the airplane rolls
back and forth to make small corrections.
Chapter 6
#-Coordinated Flight
In addressing the limitations of a coordinated look-up rule, it is useful to look at an
alternate definition of coordinated flight. As defined earlier, coordinated flight means
that all of the acceleration is contained in the body x-z plane. This is a restriction
of two degrees of freedom in orientation, and then we solve for the third from the
perspective of the "velocity" frame. If we think about the orientation of the vehicle
using an Euler angle parametrization, then this is equivalent to specifying a number
of initial rotations, such that the vehicle matches the velocity frame, and then solving
for the final rotation. In particular, the velocity frame can be represented first by a
rotation about the z-axis (yaw) such that the vehicle is oriented with the body y-axis
at a 900 angle with the projection of the velocity on the inertial x-y plane. Then, a
second rotation about the y-axis (pitch) aligns the vehicle x-axis with the direction of
the velocity. And finally a third rotation about the x-axis (roll) aligns the body x-z
plane with the desired acceleration vector. From there we solve for the final rotation
about the y-axis (pitch) that generates the desired acceleration.
A key realization is that, after the initial yaw rotation, if we observe the direction
of the projection of the y-axis onto the inertial x-y plane, the subsequent pitch, roll,
and pitch rotations do not affect this direction. Furthermore, following the initial yaw
rotation, the other rotations are a convenience for simplifying the solution process,
and are not further restrictions on the orientation. In fact, if we were to specify only
the first yaw rotation (such that the vehicle is oriented with the body y-axis at a 900
angle with the projection of the velocity on the inertial x-y plane), then coordinated
flight solution is the unique orientation that satisfies the desired acceleration. We can
use this idea to generalize the concept of coordinated flight.
6.1
Definition of
#-Coordinated Flight
Given that the vehicle center of mass has current velocity in the inertial frame vi and
given a desired acceleration vector Pd, then for a particular parameter
/
E [0, 27r], the
/3-coordinated orientation is the orientation that generates the desired acceleration Pd
at vi, given that the projection of the body y-axis on the inertial x-y plane makes an
angle
3 with
the inertial x-axis.
y (body)
x (body)
z
Figure 6-1:
t
projected
Iwmng axis
#-Coordination
Given this definition, we note that the traditional definition of coordinated flight
is equivalent to /-coordinated flight where
/
is everywhere defined according to the
following.
#traditional =
where:
2
-
asin
ei x v,
||i v,||I
(6.1)
1
v=
0
01
el=
0 1 0 vi
0
(6.2)
-0
-0 0 0-
We can relax the restriction to traditional coordinated flight in favor of -coordinated
flight for the orientation look-up if a suitable
#
reference is provided. In essence, this
off-loads a piece of the responsibility of the controller onto the trajectory designer.
6.2
#-Coordinated Orientation Solution
We seek to find the orientation Rd that satisfies the desired acceleration from the
translational controller Pd and the projection of the body y-axis onto the inertial xyplane makes an angle
#
(provided by the reference trajectory) with the inertial x-axis,
given that the vehicle's velocity in the inertial frame is vi. We will use a 3-1-2 Euler
angle parametrization of Rd, since the angle
#
essentially tells us the first rotation
in this parametrization. The principle rotation matrices about each axis are given in
equation 6.3 below.
[1
0
0
R1 (#) = 0 cos#
1
-sin #
cos0
R2 ()=
cos#
[0 sin#
cos@ -sin@ 01
R3 (0) =
sin @ cost
[ 0
0
0
0 sin0'
1 0
0
[-sin0 0 cos j
(6.3)
1
Then we can describe the desired orientation Rd via the composition of the the
three Euler angle rotations.
Rd
= R 3 (0)R 1(#)R 2 (6)
(6.4)
In order for the desired acceleration to be satisfied, Rd must be such that mpd
RdFb, or equivalently:
=
R2 (9)TR 1 ($)T R 3(O)T Pam = [T -Fb
-Fbh]
(6.5)
Since /, Pd, and m are all known to us, let us define the partially oriented desired
force as b = R3 (O)TPdm. Then, applying the force model with F, = kevyvxy and
Fbh = khvzovz,
we have the following.
b1 cos9 + b2 sin 9 - b3 sin 9 cos# = T
b2 cos $ + b3 sin #
b1 sin 0 - b2 cos 9 sin 4 + b3 cos 9 cos
=
(6.6)
-kvyvxy
(6.7)
-kvvx,
(6.8)
With only two unknowns, the equation 6.6 is superfluous, so we will focus on
equations 6.7 and 6.8. The velocity terms in these equations are with expressed in
the body frame. In particular:
Vy vz
[vX
=
R 2 (0)TR1(#)TR(3)Tvi
(6.9)
Again we note that 3 is known, so we define the partially oriented inertial velocity
as v = R3 (3)TVi. Then we have the following.
vX =v, cos 0 + v/3, sin 9 - v, sin 9 cos
(6.10)
vY =vO cos # + voz sin
(6.11)
Vz =vlx sin 9 -vy
cos 9 sin # + vpcos 0 cos
(6.12)
Substituting equation 6.10 through 6.12 into equations 6.7 and 6.8 we obtain two
equations in 0 and
#.
Solving equation 6.8 for 0 reveals the following.
v X+± (vpV sin
Vz
tan96
=
b2 sin # - b3 cos
# + vz cos #)2
# + kh(V3 sin 4
b1 + khVexVx
(6.13)
- V/z cos
#)vZ
Substituting this into equation 6.7 we find an expression for
#
=-
A
B
b2 + b3 tan#
(6.15)
q#+ vgz sin #
(6.16)
(veB2 + vI2A) 2
A ±+
B
+v2
=
-k,(vp, + v,,tan #)
#
numerically via any one-dimensional line-search. Once
We can then solve for
# is
(.4
alone.
Vi = voy sin # + v/, cos
V2 = vcos
(6.14)
(6.17)
known, we can substitute its value into equation 6.14 to find 9, and thus Rd.
Despite lacking an analytical way to find
#, we can
still calculate Wd and cd. We do
this by differentiating equation 6.17 to find an expression for q, and again perform
a line-search to find its value. From there we can find 9. We can then find the time
derivative of the rotation matrix, Rd, from the following formulas. In order to keep
the formulas legible, the following shorthand is used: s, = sin x, cx = cos x.
OR
-sco + cfps 4 so
COCO
s)so + COSOCO
=-cyce - S/3soso
-SpcO
C13S9 - S3s0CO
0
0
[
OR
=
R
=
0
[s3%SO
ccso
-soso - cO
-s 13so
sIckCO
-cs
cpccoI
(6.19)
-sc 0 O
-c3so + sps0co 0
ss8 + cpscp 0
ce0c 0
(6.18)
0
08
-c3c -sps0s
spco - cps3Sso
-c'Oso
(6.20)
_
Again, the angular velocity is given by the Lie Algebra so(3) associated with
SO(3), so that Rd = RdCd, and Wd = (RT~A)v, where:
Na + R+ DR
The same strategy is applied to find
6.3
6
(6.21)
)d well.
Simulation Results and Limitations
We note that the 3-coordinated orientation look-up suffers from the same lower-bound
saturation limitation of the coordinated trajectory. The lack of an analytical expression for calculating the orientation makes it difficult to determine what the magnitude
of that saturation is. However, the magnitude of the lower bound saturation bound
from coordinated flight is a more restrictive bound than it is in /3-coordinated, so
we can provide a loose margin on what is feasible for a /-coordinated trajectory by
instituting the same margin as would be required for a coordinated trajectory.
In order to validate the the controller, it was simulated with the same point-topoint trajectory as that in figure 5-5, and did not exhibit the high angular rates. The
orientation error was arbitrarily close to zero. Furthermore, in order to demonstrate
the usefulness of this control design, the controller was simulated with a four-point
hover trajectory, illustrated in figure 6-2. Like in the point-to-point trajectory, the
position of the aircraft is generated using a cubic spline so that the position reference
is everywhere four times differentiable. The
/
reference was also generated using a
spline to ensure that it was everywhere twice differentiable.
I
0
y,
0
2
(mn)
2
x, (Im)
Figure 6-2: Multi-point Hover
As illustrated in the figure, the trajectory is composed of four points with the
position held for ten seconds, and a smooth transition in between each point. At
each of the hovering points, the 3 reference smoothly rotates over a 900 change. Figure 6-2 records the position of the vehicle in three dimensions over the length of the
simulation. The projection of the vehicle y-axis on the inertial x-y plane is shown in
increments of 15* during the hovering points, and at increments of 0.5 m of horizontal
distance along the transition period.
As a final note, in the derivation of the 3-coordinated look-up, it was mentioned
that any line-search algorithm could be used to find <$. In the controller implemented
for simulation, a bisection algorithm was used with tolerance of 10-6 degrees (yielding
27 iterations per search).
58
Chapter 7
Simulation Architecture
The process of taking an automated controller from design to implementation can
be quite involved. In addition to the development of a theoretical design, it is often
necessary to go through a number of separate comprehensive exercises to validate the
system model and simulate the control system with various levels of relaxed assumptions before finally implementing the controller on the physical system. There are a
number of useful general purpose tools available for an engineer to approach these
tasks, but an unfortunate side effect of this process is that a significant amount of the
work must be duplicated. General purpose tools like Matlab and its Simulink have
greatly reduced the work load in this process, but are notably laking in the ability to
interact with other tools. In particular, it is often difficult to provide adequate visualizations for a Matlab simulation, or to quickly port the code to another environment.
It is common in academic robotic test-beds to work with many vehicles that do
not have the payload capacity to carry sophisticated computational equipment, and
the controllers are often implemented on a separate machine communicating with
the device wirelessly. In such a case, it can be quite advantageous to have a system
whereby the same machine (or equivalent machines) can be seamlessly switched between running a simulation of the system, or operating on the physical system itself.
Consider a simple scenario illustrated in 7-1.
Physical
Vehicle
Physical
Sensors
Estimator
Simulated
Vehicle
Controller
Simulated
Sensors
Figure 7-1: Scenario
If the estimator and controller are implemented on a PC, then there is likely
no significant difference between capturing actual sensor data and sending control
commands to the physical system, and capturing simulated sensor data and sending
control commands to a simulated vehicle. With the proper architecture, it is feasible
that the difference between enabling the simulation path (solid path in the figure)
and the real-time physical system path (dashed path) could be quite small. In order
to take advantage of this fact, in the process of simulating and validating the controller investigated here, a comprehensive and reusable software infrastructure was
developed in order to provide a tool more suitable for simulating, visualizing, and
integrating automatic control research in academic testbeds.
7.1
Architecture
The Aerobat simulation framework is a software utility written in C++ that aims to
allow a unified platform for developing, testing, simulating, and implementing control
architectures for small autonomous vehicles. The goal of the software is three fold:
first, to provide a framework for reusing code between testing, simulation, and implementation; second, to provide a platform for visualizing robotic vehicle (in particular,
flight vehicle) simulations; and third, to provide for building a library of reusable
test-bed components (vehicle models, estimators, and controllers).
Aerobat utilizes a hierarchical object model in order to achieve modularity. An
implementation of each object in the hierarchy exists for the Nexus and for the controller derived in previous chapters, so they will be used as an example to explain the
architecture.
At the root is a world object that determines whether the system is running as a
model tester, as a simulation, or as a real-time system. For the Nexus simulation this
is a flight simulator world capable of managing a single vehicle, estimator, controller,
and trajectory. At runtime, the user can select which, among an available list of
implemented classes, of each to use. There exists a C++ interface for each of these
components, and a global interface registry that contains a list of all classes compiled
into the program that implement these interfaces. For instance, the Vehicle interface is implemented by two separate classes that simulate the Nexus. The first is
a class that implements the simplified aerodynamic model used in the derivation of
the controller, and the second implements the higher fidelity finite-element flat-plate
model. There is a dependency relationship between the components that is enforced
by the flight simulator world. Depending on which vehicle is selected, only those
estimators that are compatible with that vehicle are available for use. Likewise, given
a particular estimator, only those controllers that are compatible with that estimator
are presented for use, and the same goes for trajectories.
Each component, when instantiated by the world object, is given the opportunity
to register itself with the other components. For the Nexus simulation, this results
in a data flow illustrated in figure 7-2. When the simulation is run, the world object
updates each component once per iteration of the simulation loop. When.the vehicle
is updated, it propagates its state according to its dynamic model. When the estimator is updated, it queries the vehicle model for its current state, and then updates
its estimate, currently only by adding user-configurable noise. When the trajectory
is updated, it advances its reference to the corresponding simulation time. When
the controller is updated, it polls the estimator for the current vehicle state, and the
trajectory for the current position reference, calculates new control commands, and
writes those commands to the vehicle.
Timing Update
fSi111ator
(Vehicle
)
)
Estimator
(rajectory
)
Controlle
Get Ref.
Get State
Get State
Set Controls
Figure 7-2: Nexus Data Flow
7.2
Object-Oriented Design
Aerobat takes advantage of object oriented concepts in order to reduce the effort of
expanding the system with additional components. The components that are already
implemented all extend from a set of abstract stub classes that implement much of
the common interface structure. For example, each of the Nexus models derive from
a common NexusModel stub class, which in turn derives from a RigidBody stub class.
The RigidBody stub class implements the common elements of a rigid body state (i.e.
position, orientation, velocity, angular velocity, etc.), as well as the code to propagate
the model via Newtonian dynamics. It polls the derived class to calculate the internal
forces, so the only requirement for adding a new rigid body model to Aerobat is to
derive the stub class and implement the force and moment models.
7.3
Visualization
One especially difficult aspect of simulating a flying vehicle is understanding its orientations. Especially in the case of aggressive maneuvering, trying to plot information
about the vehicle's orientation can be insufficient for gaining an understanding of
where a problem lies. In many cases it is more valuable to have a qualitative under-
standing. For this reason a large part of the Aerobat development was focused on
providing the ability to render a view of the simulation in three dimensions.
Aerobat is built on top of the Irrlicht library, an open-source, cross-platform scenegraph rendering engine in C++. The scene graph paradigm is a way of organizing
data for a scene via a hierarchical graph. The graph is traversed by the rendering
system each time the scene is to be rendered, in order to build the visible scene. Each
node in the graph contains information about about its position and orientation relative to its parent node, along with various pieces of information on how it should be
drawn. Aerobat takes advantage of this system by implementing custom scene nodes
for each visualizable component of the simulation. Each of these custom scene nodes
is a sub-tree of visualizable elements that are intrinsically dependent on each other.
Figure 7-3: Visualization
To illustrate, the scene node for the Nexus model, illustrated in figure 7-3 is
composed of the textured mesh for the airframe, the actuated control surfaces, and
a number of conditionally visible debugging components. It can display vectors illustrating its current velocity, acceleration, net forces, body-coordinate system, the
inertial coordinate system (translated to its current position), and the projection of
its wing axis on the inertial frame. The trajectories are visualized by a simple path
drawn in the scene, along with a red sphere to indicate the current position of the
reference, according to the simulation time. The controller also has a visualizable
component. The desired orientation is rendered as a translucent version of the Nexus
mesh, with the center of mass coincident to that of the actual vehicle, in order to qualitatively assess the meaning of the orientation error at any given time. The controller
node also contains a number of debugging components, including visible vectors that
display all the same information as the actual vehicle node.
The scene graph is managed by an internal object to the Irrlicht library, but
Aerobat implements its own scene manager as a wrapper around Irrlicht in order to
map objects in the simulation to objects in the scene graph. It can then synchronize
the state of the visualization node and the object in the simulation. A class that
has a visualizable component communicates this fact to the simulation world by
implementing the Visualizable interface. When the simulation world instantiates
any of the component's it checks to see if the component is Visualizable, and
registers it with the scene manager if it is.
7.4
Math Library
In order to facilitate the integration of multiple different hardware platforms, and in
order to allow the code for different elements to be written in a manner consistent
with their mathematical counter-parts, a minimal set of linear algebra classes was
developed from scratch. There are two main purposes for the Aerobat math library.
First is to take advantage of C++'s overloaded operators to the full extent in order
to implement mathematics in code in as readable a manner as possible. While these
classes do not present the level of optimized performance of the plethora of BLAS
packages available, it greatly improves upon the readability of the code and facilitates
quickly developing correctly working applications, which is far more important for a
prototyping environment.
The second reason for creating the math library is to eliminate the confusion of
working between the many popular parametrizations of SO(3).
The math library
contains classes for all of the popular parametrization, and provides constructors,
accessors, and mutators for all of rotation matrices, quaternions, Euler angles, and
rotation vectors. Furthermore, the quaternion and rotation matrix group operations
are implemented with all C++ operators overloaded for all other classes where these
operations are defined, allowing vector transformations to be easy to implement,
debug, and comprehend in code. The math library also implements an inheritable
concept of reference frames. Any object that inherits from the reference frame class
inherits methods for calculating its relative configuration g E SE(3) with respect to
any member of its ancestry. This allows seamless integration when working with local
and global reference frames, and any intermediate frames.
7.5
User Interface
The framework embraces the concept of Model-View-Controller (MVC) design for
Graphical User Interface (GUI) applications. It is an unfortunate overloading of terminology, but here "model" refers to the underlying software components, "view"
refers to the display of information to the user, and "control" refers to the user input
interface.
Aerobat
Thread
J
4E
Simulation
World
Model
Estimator
RLC
Figure 7-4: Thread Separation
Controller
The GUI is powered by the wxWidgets library which provides a common crossplatform API for developing GUI applications that use the underlying operating
system's native GUI controls. As illustrated in figure 7-4, each of the three main
components (if active) are run in a separate thread. This ensures that the simulation
or real-time system is not subject to the low-resolution timer of the GUI messaging system, and that the rendering engine can be enabled or disabled depending on
whether or not the system is running a simulation or a real-time system. Any object
being managed by the Aerobat thread can have user configurable options. A class
communicates whether or not it has this feature by implementing the Conf igurable
interface, through which the GUI manager can instantiate the object's GUI when a
user requests it.
Chapter 8
Conclusions
8.1
Conclusions
In conclusion, the controller studied here has a number of desirable properties. It uses
a consistent treatment of the vehicle state over the full envelope of feasible trajectories,
and has provable asymptotic stability. In addition, the coordinated look-up applies
this controller to traditional flight trajectories and can be used in many applications.
Furthermore, an unconventional type of coordination is presented that applies this
controller to more demanding trajectories, including very high angle of attack maneuvers. The design with both orientation look-up rules has been validated in simple
simulations, and an extensible simulation framework was developed to enable more
exhaustive simulation analysis, and to aid in the eventual implementation.
8.2
Future Work
The controller design presented here is motivated by some very immediate potential
applications. The most important extension of this work will be to carry out flight
experiments on this vehicle in order to address a number of concerns. In particular,
when applied to the real system, how does the controller perform compared to the
expected performance from the model? What affect will the moment and thrust saturations have on our ability to realize the capabilities of this design? Also, will the
domain of attraction be large enough for trajectories of interest that this controller
can be used in the desired applications? Along these same lines, how well will this
controller perform compared to other designs? This design has the distinct advantage of a consistent treatment of the entire flight envelope. While that feature may
be an excellent logical advantage, will it also lead to performance gains compared, for
instance, to gain-scheduled LQR? These are all questions which can be answered by
testing the controller in the laboratory.
In addition, there are some interesting possible extensions to the ideas presented in
this design. It was noted that coordinated flight is a relatively strict specialization of
restricting the space of orientations that are considered for the look-up. Furthermore,
an alternate, less restrictive rule was designed to address some of the limitations of
traditional coordination. However, we can think each of these look up rules in terms
of some optimization problems. In particular both the coordinated look-up and the
/3-coordinated look-up are the solution to a minimization subject to RF = Pd, where
we can express the cost function for the coordinated look-up as Jc = FK, and for the
/-coordinated look-up J0 = asinlIRe 2 x el - 3. This raises an interesting question:
are there other cost functions we could consider in order to generate a look-up rule?
One potential consideration would be too pick the orientation closest to the current
orientation (subject to the desired acceleration constraint). This has the advantage
of reducing the demand on the momentum-generating capabilities of the aircraft. We
could also consider including in the cost the velocity weighted orientation error with
respect to the coordinated orientation. This would tend to drive the vehicle toward
a coordinated orientation when its velocity is high, but would allow some other consideration to dominate when the velocity is low.
Lastly, the simulation framework that was developed for this work was explicitly
designed to be extensible for use on similar applications. The contribution of academic multi-vehicle testbeds has been proved to the industry. The potential for a
complimentary virtual multi-vehicle testbed to integrate modeling, simulation, and
testing in a coherent process is very promising.
70
Appendix
Aerodynamic
A
Force
Modeling
Here we derive some of the equations used in the simple force model for the Nexus
aircraft.
A.1
Two-Dimensional Thin Airfoil Theory
The following derivation is based on that in [6, Section 4.7, pages 298-304], with the
assumptions on small angle of attack removed, and the extension made to net force
coefficients.
We can derive an expression for the aerodynamic force generated by a flat plate
in inviscid, incompressible flow, by specialization of thin-airfoil theory. We start with
the realization is that the surfaces of the plate must be streamlines of the flow. For
thin plates, we approximate the thickness as zero, and we can state that the center
of the plate itself is a streamline, as depicted in figure A-1.
Figure A-1: Lifting Element as a Streamline
We define a coordinate system with the origin located at the leading edge of the
plate, with the x-axis positive along the plate's chord, and with the z-axis perpendicular to the plate's surface. We assign Voo to be the magnitude of the freestream
velocity and a to be the angle of attack. The length of the plate's chord is c. We
then proceed to model the disturbance of the free-stream flow caused by the lifting
element, by replacing the lifting element with a collection of elementary flows. In particular, we will model flat plate by a vortex sheet spanning its chord, with vorticity
along the y-axis. This is illustrated in figure A-2.
aC
X
Figure A-2: Vortex Sheet Model of Flat Plate
Since the plate's chord is a streamline, the component of stream velocity perpendicular to the chord must be zero. The magnitude of that component is equal to the
magnitude of the freestream velocity in that direction, plus the magnitude of the flow
induced by the vortex sheet. The magnitude of the freestream velocity perpendicular
to the plate's surface is V sin(a), and we will use w(x) to describe the magnitude of
the flow induced by the vortex sheet.
0
-
c-x,--------
x
Figure A-3: Downwash Due to Vortex Element
Consider then an infinitesimal element of the vortex sheet located at position (
and having magnitude -(x)d(, as illustrated in figure A-3. The velocity of a flow
distance r away from a pure vortex is equal to 27rr, so the contribution this element
has on w(x) is dw( ).
(.
(A. 1)
2Y(-)
27r(x - ()
dw( ) = -
We integrate over the length of the chord to find the total contribution of the
stream velocity by the vortex sheet at location x.
-
w(x) =
/y
(C)d<
(A.2)
fo 27r(x - ()
And since the total stream velocity perpendicular to the plate must be zero at all
x we have the following.
_1
V.sin(a) = -
27r
(A.3)
-()d<
fc0(X
- ()
We can simplify the process of evaluating this integral by applying a change of
variables whereby we define x to be the projection of a vector of length .2 on the
x-axis, as we vary its angle with the x-axis from 0 to 7r, as illustrated in figure A-4.
c
x
xt
>
Figure A-4: Change of Variables
Then the following equations hold.
d = sin d9
2
=-(1 - cos 0)
2
c
x =-(1 - cos 0.')
2
(A.4)
(A.5)
And equation A.3 becomes as follows.
V 0 sin a =
-y(O) sin OdO
2I7r f
(cos 0 - cos OX)
(A.6)
Solving for -y and applying the Kutta Condition (-y(O) = 0) gives the following
vorticity distribution.
y(0) = 2 sin aV
1
+ cos(O)
sin 0
(A.7)
From the Kutta-Joukowski theorem, there exists an aerodynamic force per unit
length over the wing that is proportional to the circulation of a control surface taken
relatively far away from the wing, and perpendicular to the freestream velocity.
l = pVor
(A.8)
The circulation is defined as the line integral of the projection of the flow velocity
around a control surface encompassing the the airfoil as illustrated in figure A-5
F = -
V - ds
(A.9)
C1
Figure A-5: Circulation Line Integral
Uniform flow has zero contribution to circulation, and a pure vortex contributes
exactly its magnitude, regardless of the shape of the control surface. Therefore the
circulation is just the integral of the of the magnitude of the infinitesimal vortex
elements. We have to be careful how we take the integral though because the KuttaJoukowski theorem is derived in the reference of the freestream velocity. Therefore
we integrate along dx cos a instead of simply dx. In terms of our changed variables
we have the following.
dx cos a=
2
cos a sin 6dO
74
(A.10)
The circulation then is given by the following.
I =- I
2 0
.
2V. sin a
smn 0
cos a sin OdO
(A.11)
=cV,,, sin a cos a fo(1 + cos 6)d6 = 7rcV,, sin a cos a
(A.12)
We compare equation A.8 to the non-dimensional characterization of lift below.
1=IV2
-p""cC,
(A.13)
pV7rc
00= sin a cos a = -p2cC,
2
(A.14)
1
This yields the following.
And thus the two-dimensional coefficient of lift is given by
(A.15)
C = 27r sin a cos a
We now return to the assumption that the flow is inviscid. Without the interaction
of friction, and because the plate is flat, we know that it cannot produce a force in
the lateral direction (with respect to its own reference frame). Therefore, the lift is
simply the geometric projection of the net force along the axis perpendicular to the
freestream, as illustrated in figure A-6.
C
Figure A-6: Geometry of Forces
From this geometric analysis we see the following is true.
x
Ci =Cf cos a = 27r sin a cos a
(A.16)
Cd =Cf sin a
(A.17)
Therefore the coefficient of drag, and the coefficient of net force must be as follows.
A.2
Cf =27r sin a
(A.18)
Cd =27r sin 2 a
(A.19)
Prandtl's Lifting Line Method
The following derivation and algorithm follows that of [6, Section 5.3, pages 360-386
with the exception that no small angle assumptions are applied.
We can quantify the force generated in a three-dimensional flow by considering
the change in local angle of attack due to the downwash of flow bleeding over the
tips of the wings. We will assume that the effects induce a constant change in the
sectional lift coefficient, such that the lift generated by the body at a given angle of
attack a is found by the following.
L =qooC, (a)
CL (a) =kcL sin(a) cos(a)
(A.20)
(A.21)
We apply Prandtl's lifting line method, as described in [6, Section 5.3, pages
360-386] to achieve this characterization. The method begins with noting that, via
the Kutta-Joukowski theorem, an elementary bound vortex of length b with vorticity (magnitude) of F experiences a force perpendicular to the free-stream velocity
according to the following law.
(A.22)
L = pVool'
From Helmholtz's theorem, we know that a vortex cannot end in a fluid. We then
model a finite wing of length b as a bound vortex centered at our vehicle's center line
and extending ±
along the y-axis, and then turning at the tip forming two trailing
vortices in a horse-shoe shape as shown in figure A-7.
Figure A-7: Wing as a Bound Vortex
If we leave the model at this, we will find the downwash at the wingtips is infinite
in magnitude so we consider replacing the single horseshoe vortex with a series of
super-imposed horseshoe vortices with different magnitudes, as shown in figure A-8.
Figure A-8: Finite Vortices
Figure A-9: Vortex Sheet
Note that the vorticity on each segment increases by an amount equal to the
vorticity of the vortex that was added to that segment. We can then extend this idea
by superimposing an increasing number of vortices of smaller and smaller size. In the
limit as the number of vortices go to infinity, the magnitudes become a continuous
function along the span, dF(y). The change in circulation of the bound vortex over
an infinitesimal length of span dy is then dF(y) so that the model is consistent. At
some location along the y-axis, yo, the contribution to the downwash by an elemental
segment dx of one of the vortex filaments is found by the Biot-Savart law.
dV =
X r
(A.23)
Here r is the vector from the element to the point on the y-axis at yo. By integrating equation A.23 along the length of the vortex, we find that the total contribution
of a vortex filament at y to the downwash at a location on the y-axis at yo is given
by the following.
dw=-(dF/dy)dy
47r(yo - y)
(A.24)
Then the total downwash at yo is found by integrating over all vortex filaments.
w(yo) =
47r
y
--b/2 yo ~~y
(A.25)
dy
As illustrated in figure A-10 the downwash at yo induces a change in the local
angle of attack aj.
Of
j.
C
3
w(YO)
Figure A-10: Induced Angle of Attack
The effective angle of attack can be found geometrically by the following equation.
tan aeff (yo) =V sin(a) w(yo)
V cos(a)
(A.26)
Applying the Kutta-Joukowski theorem, we know that the sectional lift must be
equal to the aerodynamic force derived from the circulation around this lifting section.
L' = p.V.F(yo) = p.V.c(yo)r sin(aeff) cos(aeff)
(A.27)
Applying the trigonometric identity sin x cos x = 1 sin(2x), we have the following.
12
L' = p2V.F(yo) =p.V.c(yo)r sin(2aeff)
(A.28)
By simplifying this expression, we can then relate the effective angle of attack,
which is a function of the downwash (by equation A.25) to the circulation at a given
station yo.
F(yo)
=
2-Voc(yo)7rsin(2aeff)
(A.29)
Following Prandtl's model, we could assume the circulation has an elliptical distribution.
(A.30)
1-
F(Y) = FO
This distribution satisfies a number of mathematical and intuitive restrictions.
The circulation and lift go to zero at the wing tips, and increases as we move toward
the center of the planform. Furthermore, evaluating the integral in equation A.25
yields a constant downwash over the span of the wing.
w(yo)
=
-P
2b
(A.31)
However, it can be shown that an elliptical lift distribution (and thus an elliptical
circulation distribution) implies that the wing planform is elliptical. This is not true
in general, but since the elliptical distribution has such nice properties, let us assume
that a general distribution will be 'somewhat elliptical'. Now consider a change of
variables such that y =-
cos 6 as illustrated in figure A-11.
z
Figure A-11: Change of Variables
Then the circulation can be expressed as follows.
IF(0) = Fo sin 9
(A.32)
The dependence of the circulation on the sine of the angle hints that a Fourier
sine series may make a reasonable expression for a general circulation distribution
along a finite wing. So we then assume that the actual lift distribution is given by
the following.
F (0)
=
2bVo, E A, sin(n)
(A.33)
We can take as many terms N as needed for a desired level of accuracy in our
estimate. Now we must address the problem of solving for what the coefficients of
equation A.33 are. First, let us observe that equation A.33 is differentiable, and
that since y
=
- cos0, the differential relation between y and 0 is dy =
sin d6.
Therefore the derivative of the circulation along the span of the wing is given by the
following.
dF
d(yo) =2bVo
dF
dy
(YO)
=V.
N
N
dO
nZAn cos(nO) -
(A.34)
nAnco(O)
(A.35)
sin 0
The solution process is motivated by the consistency condition given in equation
A.29. For any proposed coefficients A, we can find the circulation distribution that
they imply by equation A.33. Then from equation A.35 we can find the derivative
of the circulation, which we plug into equation A.25 to find the downwash at each
point along the span. We use this downwash to find the effective angle of attack via
equation A.26. And then we calculate the circulation at this station by A.29. In
order for A to provide the circulation distribution of our wing planform, the output
of equation A.29 must be consistent with the input implied by A.
In order to solve then for A, we will apply an iterated numerical algorithm that
starts with an assumed set of coefficients Ao and follows the flow of the above equations to calculate the error in the consistency condition. The algorithm provides
feedback on that error to update the estimate of A until it converges to a stable
solution. We perform this iterative method of a range of angles of attack, and then
find a least squares fit for the whole-body lift coefficient.
Before describing the algorithm it is useful to make a few alternate definitions.
We define the velocity normalized circulation F as F/V,
and velocity normalized
downwash w(yo) as w(y,)/V,. With our Fourier approximation of F, this yields the
following.
N
F(0) =2b
A,, sin(nO)
(A.36)
1
dI (yo) =
d(y
nAn
(A.37)
sin 0
1
W(Yo) =
/
47r
-5/2
YO - Y
dy
(A.38)
Note that equation A.36 can be expressed as a linear equation. If we define the
vector I
i = i Vi = 1 ... N, the vector 9 to contain the parameter O for each of the n
span-wise locations, and the matrix F = sine
(OIT)
then the vector of the circulation
evaluated at each of those locations is given by F = FA. Here, the function sine is
the element-wise sin function. Also, we can describe how close the two circulation
distributions F and 1 are by the sum of the square of their errors.
r ='
=
- f) T T-(A.39)
(F- - f) T (FZ_ - ]F)
(.0
Furthermore, since the circulation has a linear relationship in the coefficients,
given a desired arbitrary distribution Fd, we can find a close approximation (in a
least-squares sense) in the form of our sine series by applying the linear least-squares
rule to find the coefficients.
Ad = (FTF)~1 FTd
(A.41)
Based on the definition of velocity normalized downwash in equation A.38, the
effective angle of attack then has the following geometric relationship.
tan aeff (yo)
-
sin(a) - w(y)
cos(a)
(A.42)
The consistency condition relating the derived normalized circulation, according
to the Kutta-Joukowski theorem to the angle of attack from the assumed normalized
circulation has the following form.
F(Yo)
(A.43)
-c(yo)c(aeff)
2
The integral in equation A.38 can be evaluated numerically over n (finite) sections
of width Ay along the wing span by using Simpson's rule.
=
(YO)
(ddy)
1(YO)
f2
-b/2 yo- Y
47r
(A.44)
(d1/dy)j-i1
47r1Y 3y
YO - yj_1
(dF/dy), ± (dF/dy) j +1
YO- Yj
yo Y
- j+1
(A.45)
Note that if we are evaluating the downwash at station i (yo = yi) then there is a
singularity where i =
j
- 1, j, j + 1. We can address this by approximating the con-
tribution to the total downwash by these terms with the average of the contribution
from the left and the right side.
Given these definitions, the algorithm to calculate the circulation profile at a
given geometric angle of attack a is given below in algorithm A.1. We can find the
whole-body lift coefficient by applying algorithm A.1 at a range of angles-of-attack,
and then performing linear least squares to find the best fit of the result to the form
CL(a) = k sin(2a). If we input a range of geometric angles of attack given by a, and
algorithm A.1 generates a vector of lift coefficients CL, we can calculate the constant
of proportionality via the following equation.
k
sin
sine(2a)T sine(2d)
83
(A.46)
Algorithm A.I Calculate CL(a)
Require: A,
c~,/y,
,
a. kd
N < length(A)
n -= length(Q)
r <= 1, dr <= 1
#0; i=< acos(jyi)
F
-- sine
(JT)
while IdrI > 0.1% AND r > 0.01% do
F1| T
= [A.36}(Oi)
j
.-
=[A.371(yi)
| wi <= [A.45](yi, Ay)
aeff I aeff5 <=
[A.421(a, y )
c I, <- 7r sin(2aeffi)
F I Fj <- [A.431(ci, ci)
r o -= r
r 4- [A.40 (it, T)
dr <-
F <-
r
ro
IF+
kd
-
A < [A.41](F, Pd)
end while
CL
<= (Ei cicii) / (E c)
return CL
As an example, algorithm A. 1 was run on the nexus planform at an angle of
attack of a = 10, starting with an elliptical distribution (Ao = 1; Ai = 0, i = 2... 5),
with a desired resolution of N
=
5. The algorithm converged to within 0.3% after
196 iterations, at which point the marginal gain was below 0.01%. The resulting
distribution is illustrated in figure A-12 (solid) compared to the initial elliptical guess
(dashed). The algorithm was then repeated at increments of 10, and the resulting
lift coefficient at each angle of attack are shown in figure A-13, along with the least
squares fit to the data.
0.02
r=0.003
dr=-0.0
%
0.01-
0.005
0
-1
-0.5
0
y (normalized)
0.5
1
Figure A-12: Circulation Result
0
20
40
60
80
a (*)
Figure A-13: Lift Coefficient Result
86
Appendix B
Proofs from Chapter 4
Proof of Geometric Relationship Between
B.1
Vector and Rotation
This section will derive the following: for any unit vector v, and a rotation described
by a (unit) axis r and an angle 0 E [0, 7r), the relationship between v and the vector
v', found by rotating v an angle 9 about r is given by the following.
v - v' = tano/2(r x (v + v'))
(B.1)
First we note that, by definition, the cross product r x (v + v') is perpendicular
to both r and (v + v)'. We then show that, if r / v, then (v - v') is parallel to
r x (v + v)', by showing that (v - v') is perpendicular to both r and (v + v').
(v
-
by distributive property of dot product
(B.2)
vr= IIvIIIIrII cos a
where a is the angle between v and r
(B.3)
v'- r
because a is preserved by a rotation about r
(B.4)
so (v - v') I r
(B.5)
v') r
=
=
v - r - v'- r
||v|||r| cos a
(V -v') - r =0
We now show that (v - v') is perpendicular to (v + v').
(v - v') - (v + v') = (v
-
S-v-v-v
=1-v-
(B.6)
v') - + (v + v') -v'
v'
+v-v
+
v*-v
-
-v
*v
(B.7)
(B.8)
1
-o0
(B.9)
Furthermore, by the right-hand rule for rotations and for cross-products, and
because 0 < -r we see that (v - v') is in the same direction as r x (v + v').
/
r X (V+ V' r-
v'r-
/
-
V, + v '
Figure B-1: Geometry of Vector Relationship
From the perspective of a frame perpendicular to r, if r makes an angle a with
the v, we can see that the magnitude of (v - v') is given by the equation B.10.
Furthermore, we note that the point where (v + v') intersects with the line segment
from v to v' is exactly half the distance from the origin to (v + v'). Therefore, if
(v + v') makes an angle 3 with r, then from the geometry we see that equation B.11
holds.
VV
0~
02
"
||L)V
V- v'|| = 2 sin a Sin 0/2
sin a cos 0/2
Figure B-2: View From r
= 1/21
V+ v'Ilsin #
(B. 10)
(B.11)
We further note the following relationships.
sina = ||r x vi
sino
#=
r x
(B.12)
v +I v'
V+v/
(B.13)
||v + V'||
Applying equations B.13 and B.13 to B.11, we see the following.
rx
||v +v'||
211rxvl cosO/2
(B.14)
||v +v'||
We showed above that r x (v + v') is in the same direction as v - v'. Therefore
it is also true that r x
v+V'
is in the same direction as v - v'. Equation B. 14 gives
us an expression for the magnitude of that vector, which we can use to normalize it,
giving us a unit vector in the direction of v - v'. Furthermore, equation B.10 gives us
an expression for the magnitude of v - v'. We can calculate an expression for v - v'
by multiplying its magnitude, by a unit vector in the correct direction. Therefore, we
have the following:
V- V'
__2||r
=
x v||sinO/2||v +v'||
2=rxVIIS/2
2||Jr
xI
v| COS 0/2
rx
v +v'
v/
(B.15)
||v + V'||)
(B.16)
tan /2(r x (v + v'))
We have shown this is true for v 4 r, but when v = r then v' = v, and the cross
product r x (v + v') = r x 2r = 0, so the equation holds even when v = r.
B.2
Proof of Finite Limit
This section will justify the claim that, for current orientation R and desired orientation Rd, with a magnitude of the group error 0, the limit limO.
Fbi-Fbid/sinO
is finite.
We will justify the claim for the horizontal body plate (i = h), though the argument
is the same for the vertical body plate (i = v). We start by expanding out the force
model as follows:
lim Fbh - Fbhd = im khVzVz - VzdVXZd
0-*0
sin6
->O
sin 0
(B.17)
We then note that the velocity in the body frame can be related to the velocity
in the desired frame by the following:
v
=
RTRdVd
=
exp(Or)vd
(B.18)
Where the exponential of a rotation vector with magnitude 6 and unit direction
r is given by Rodrigues's formula, in which we apply the "hat" operator ( ^ ), which
generates a skew symmetric matrix with zero diagonal whose elements are composed
of the elements of its argument, such that fx = v x x.
exp(or) = [13 + f sin 6±+
When R = Rd, V
= Vd
2 (1
- cos )]
(B.19)
and the limit has indeterminate form o/o. Therefore, we
apply L'Hospital's rule to evaluate the limit.
lim k vzVxz
0-*0
-
VzdVxzd
sin 0
= lim kh dez
0-+0
v
cos 9
dv
(B.20)
Applying Rodrigues's formula to equation B. 18, we have the following derivatives
for the components of v.
d
dO
= e T2Va) sin 6 + (eT iVd) cos 0
(e f v1
(B.21)
d
o= (eY2vd)
d
v =
Then, since
V2
=
sin 6 + (e2ivd) cos 6
(eT?2 vd) sin 9 +
(efvd) cos 0
v2 + V2 the limit becomes the following:
(B.22)
(B.23)
dv
lim k
dO Vz
+ V dv2 Z
o
Cos 0
0-+0
dO
- limkoVsz
K[(eTf 2vd)
sin 0 + (ePvd) cos 01
0-0
(B.24)
Cos 0
vz vx [(e ? 2vd) sin 0 + (eTfvd) cos 01
cos 0
VXZ
vz vz
[(ei 2 va) sin 0 + (e3vd) cos 01
cos 0
Vxz
(B.25)
(B.26)
Evaluating at 0 = 0 we get the following.
lim kh
0-0
dv
dOxz
+ V dvxz
+
Cos 0
Skh
XZ (eTiva)
+
vxez
Vxz
(e
1Vd
+ vz (egTVd)
Vxz
(B.27)
92
Bibliography
[1] John J. Bertin and Michael L. Smith. Aerodynamics for Engineers. Prentice-Hall,
Upper Saddle River, NJ, third edition, 1998.
[2] Adrian Frank, James S McGrew, Mario Valenti, Daniel Levine, and Jonathan P.
How. Hover, transition, and level flight control design for a single-propellor
indoor airplane. In AIAA Guidance, Navigation and Control Conference and
Exhibit, 2007.
[3] E. Frazzoli, M.A. Dahleh, and E. Feron. Trajectory tracking control design for
autonomous helicopters using a backstepping algorithm. In American Control
Conference, 2000. Proceedings of the 2000, volume 6, pages 4102 -4107 vol.6,
2000.
[4] J. Hauser and R. Hindman. Aggressive flight maneuvers. In Decision and Control,
1997., Proceedings of the 36th IEEE Conference on, volume 5, pages 4186 -4191
vol.5, 10-12 1997.
[5] John Hauser, Shankar Sastry, and George Meyer. Nonlinear control design for
slightly non-minimum phase systems: Application to v/stol aircraft. Automatica,
28(4):665-679, January 1992.
[6] John D. Anderson Jr. Fundamentals of Aerodynamics. McGraw-Hill, New York,
NY, third edition, 2001.
[7] Hassan K. Khalil. Nonlinear Systems. Prentice Hall, Upper Saddle River, New
Jersey, third edition, 2000.
[8] Donald E. Kirk. Optimal Control Theory, An Introduction. Dover, Mineola,
New York, thirteenth edition, 1998.
[9] Richard M. Murray, Zexiang Li, and Shankar S. Sastry. A Mathematical
Introduction to Robotic Manipulation. CRC, 1 edition, March 1994.
[10] Robert C. Nelson. Flight Stability and Automatic Control. McGraw Hill, Singapore, second edition, 1998.
[11] Prouty. Helicopter Performance, Stability, and Control.
Florida, fourth edition, 10 October 2005.
Krieger, Malabar,
[12] John W. Roberts, Rick Cory, and Russ Tedrake. On the controllability of fixedwing perching. In ACC'09: Proceedings of the 2009 conference on American
Control Conference, pages 2018-2023, Piscataway, NJ, USA, 2009. IEEE Press.
Download