Sei sulla pagina 1di 145

Master of Engineering Thesis

Modelling and Control of the SiMiCon UAV


By Andrew Ross



Department of Electronics and Electrical Engineering
January, 2003
Abstract
The onset of high-speed computing has benefited the field of aerospace engineering
greatly. Vast computing resources, available at a minimal cost, can be effectively
applied to every area of the design, testing, and manufacture of advanced aircraft.
Additionally, modern control techniques mean that performance and stability are no
longer mutually exclusive: both can be achieved. In that vein, this thesis focuses on
the very initial design, aerodynamic modelling, control, and graphical display, of a
novel aircraft concept: the SiMiCon Rotor-Craft (SRC).

Within is an analysis of a novel, disc-shaped hybrid unmanned aerial vehicle concept.
The analysis can broadly be divided into three parts: firstly, the use of easily available
computer tools to evaluate the aerodynamic properties of the aircraft; secondly, the
construction of an advanced simulation environment; and thirdly, the design and
simulation of an effective control system.

The software used to model the aircraft is the USAF Digital DATCOM, augmented
by various other programs. The aircraft is evaluated comprehensively from very low
up to transonic velocities. This gathered data is formed into a large set of easily
accessible lookup tables.

The modelling is carried out using Matlab and Simulink. Included in the simulation
environment are detailed atmospheric, gravitic models, and actuator models.

The control design is of a linear quadratic (LQ) architecture. Various manoeuvres are
carried out, including steady level flight, altitude changes, and turns. With these
results presented, the controller developed further by augmenting it with integral
action. Simulations are repeated, and improvements noted.

Suggestions of further work are given, before the thesis is concluded with a short
overview of the important results derived through the work in the thesis.
ii
iii
Acknowledgements
I would like to take this opportunity to express my gratitude to those who have
assisted me, to varying degrees, in writing this thesis.

My primary thanks go to Professor Thor-Inge Fossen, my supervisor for the duration
of my stay in Trondheim. He found the perfect balance between ensuring that I work
independently, and offering assistance when needed. Furthermore, the opportunity to
aid him in checking his latest book properly introduced me to the exciting field of
marine cybernetics, for which I am extremely appreciative.

SimiCon, the company that commissioned this thesis, has been an incredible help at
all times. Their concept is the driving force behind this thesis, and I am grateful for
their helpful assistance throughout: especially the friendly support by my main
contact at Simicon, Vegard Hovstein.

MarinTek is also due my grateful thanks for providing me with office space. I would
especially like to thank Dr. Svein Peder Berge for cultivating a relaxed, friendly, and
efficient working area. Also at MarinTek, both Sonia Moi and Nicolai Husteli offered
help and support at many times, and for this I offer my gratitude.

Nomenclature

a- speed of sound ( ms )
2
b- wingspan (m)
c - mean wing chord (m)
C
D
- drag coefficient
C
l
- rolling moment coefficient
C
L
- lift coefficient
C
M
- pitching moment coefficient
C
N
- yawing moment coefficient
C
Y
- sideforce coefficient
D- drag (N)
L- lift (N)
L - rolling moment (Nm)
M- pitching moment (Nm)
N- yawing moment (Nm)
P - vector of body angular velocities
P- body rolling angular velocity ( ) / rad s
Q- body pitching angular velocity ( ) / rad s
R- body yawing angular velocity ( rad ) / s
b
a
R - rotation matrix from frame-a to frame-b
V
t
- airspeed ( ms )
2
q- dynamic pressure ( )
2
Nm

S- wing area ( ms )
2
b
U - vector of body velocities
U
b
- forward body velocity (
2
ms

)
V
b
- sidewards body velocity (
2
ms

)
W
b
- downwards body velocity (
2
ms

)
X- axial force (N)
e
X - NED position vector (m)
X
e
- NED x-axis position (m)
Y- sideforce (N)
Y
e
- NED y-axis position (m)
Z- vertical force (N)
Z
e
- NED z-axis position (m)
- angle of attack ()
- angle of sideslip ()
- vector of euler angles
- roll angle (rad)
- pitch angle (rad)
- density ( / kg )
3
m
- yaw angle (rad)
iv
Table of Contents
1 Introduction............................................................................................................1
2 The SRC Aircraft ...................................................................................................3
3 Modelling the SRC ................................................................................................5
3.1 Aerodynamic Forces and Moments ...............................................................5
3.1.1 Aerodynamic Coefficients at Varying Flight Conditions ......................6
3.2 Calculation of Aerodynamic Data ...............................................................10
3.2.1 Xfoil .....................................................................................................10
3.2.2 USAF Digital DATCOM.....................................................................13
3.2.3 Tornado................................................................................................16
3.3 Importing into MATLAB from the Digital DATCOM...............................18
4 Creating the Simulation Model............................................................................20
4.1 Completing the Aircraft Model....................................................................20
4.1.1 Coordinate Systems .............................................................................20
4.1.2 Lookup Tables .....................................................................................22
4.1.3 Coefficients to Body Forces.................................................................23
4.2 Simulation Environment ..............................................................................24
4.2.1 Atmosphere Model...............................................................................24
4.2.2 Wind Turbulence Model ......................................................................25
4.2.3 Gravity Model......................................................................................26
4.2.4 Engine Model.......................................................................................26
4.2.5 Flight Condition Calculation................................................................26
4.2.6 Equations of Motion ............................................................................28
4.3 Model Verification.......................................................................................28
4.3.1 Lookup Table Data ..............................................................................28
4.3.2 Poles, Zeros and Eigenvalues ..............................................................29
4.3.3 Uncontrolled Simulations ....................................................................30
5 Controlling the SRC.............................................................................................33
5.1 The LQ Controller........................................................................................33
5.1.1 Weighting Matrix Selection.................................................................34
5.1.2 Defining Q ...........................................................................................34
5.1.3 Defining R............................................................................................35
5.2 Applying the LQ Controller.........................................................................35
5.2.1 Redefining the System Input................................................................36
5.2.2 Control Allocation ...............................................................................36
5.3 Deriving the Linear Model...........................................................................37
5.4 Linear Model Analysis.................................................................................38
5.4.1 The A-Matrix .......................................................................................38
5.4.2 B-Matrix Analysis................................................................................42
5.5 Input Matrix Generation ..............................................................................42
5.6 B-Matrix Analysis........................................................................................43
5.7 Pseudo-Inverse of B.....................................................................................44
5.8 Simulink Model of Controller......................................................................44
6 Simulation Results ...............................................................................................46
6.1 Force Input Controller..................................................................................46
6.1.1 Altitude Hold .......................................................................................46
6.1.2 Constant Descent .................................................................................48
6.1.3 Thrust Requirements............................................................................50
6.2 Instant Actuators ..........................................................................................51
6.2.1 Altitude Hold .......................................................................................51
v
6.2.2 Constant Descent .................................................................................53
6.2.3 300 Second Constant Rate Turn ..........................................................57
6.3 Realistic Actuators.......................................................................................60
6.3.1 Altitude Hold .......................................................................................60
6.3.2 Descent Performance ...........................................................................62
7 Improving the Control System.............................................................................64
7.1 Applying Integral Action to the LQ Controller ...........................................64
7.2 Improved Controller Simulation Results .....................................................65
7.2.1 Altitude Hold .......................................................................................65
7.2.2 Constant Descent .................................................................................67
8 Graphical Output..................................................................................................69
8.1 Creating the VRML Model..........................................................................69
8.2 Screenshots ..................................................................................................70
9 Future Work.........................................................................................................71
9.1 Aircraft Model .............................................................................................71
9.2 Control System.............................................................................................71
9.3 Graphical System.........................................................................................71
10 Conclusion .......................................................................................................73
References....................................................................................................................74
Appendices...................................................................................................................76

vi
Table of Figures
Figure 2.1 Side View of Simicon Rotor-Craft ...............................................................3
Figure 2.2 Front View of SRC With Rotor Extended....................................................3
Figure 2.3 Control surfaces of the SRC.........................................................................4
Figure 3.1 SRC Aerofoil- N0011SC............................................................................11
Figure 3.2 Xfoil Solution of N0011SC at M0.08, 4...................................................12
Figure 3.3 Lift and Drag Coefficients of N0011SC (M0.08) ......................................13
Figure 3.4 SRC Geometric Approximation .................................................................14
Figure 3.5 SRC Model in Tornado ..............................................................................17
Figure 3.6 Rudder Effects on Yawing Moment from Tornado Simulation.................18
Figure 4.1 Lookup Table Example (CN) .....................................................................23
Figure 4.2 From Wind to Body Forces ........................................................................24
Figure 4.3 Rotation From Wind to Body Frame..........................................................24
Figure 4.4 Gravity Model and Rotation to Body Frame..............................................26
Figure 4.5 Flight Conditions Calculation Block..........................................................27
Figure 4.6 Equations of Motion Solver........................................................................28
Figure 4.7 Cm Against Altitude, and Alpha ................................................................29
Figure 4.8 A Pole-Zero Map of the Linearised Model ................................................29
Figure 4.9 Uncontrolled SRC Response with Low Elevon Angle...............................31
Figure 4.10 Uncontrolled SRC Response with High Elevon Angle............................32
Figure 5.1 Schematic of State Space System and Controller.......................................33
Figure 5.2 State Space System with Redefined Input..................................................36
Figure 5.3 Schematic of State Space Model with Control Allocation.........................37
Figure 5.4 Model Used as Linearisation Target...........................................................37
Figure 5.5 Internals of Linearisation Target Model.....................................................38
Figure 5.6 Input Target Linearisation Block................................................................42
Figure 5.7 Internals of Input Linearisation Target Block ............................................43
Figure 6.1 Altitude Hold of Force Controlled System.................................................46
Figure 6.2 Comparison of Altitude Hold in Calm and Windy Conditions ..................47
Figure 6.3 The Effects of Vertical Gusts on Angle of Attack .....................................48
Figure 6.4 Pitch Angle During Descent .......................................................................49
Figure 6.5 Altitude Error During a Constant Rate Descent .........................................50
Figure 6.6 Changes in Thrust Demands after a Change in Altitude ............................51
Figure 6.7 Altitude Hold using Realistic Inputs ..........................................................52
Figure 6.8 Altitude Hold with Realistic Input in Windy Conditions...........................53
Figure 6.9 Descent of Actuated System.......................................................................54
Figure 6.10 Error During Descent of Instantly Actuated System................................55
Figure 6.11 Descent of Actuated System in Presence of Wind...................................56
Figure 6.12 Error During Descent in Wind of Actuated System.................................56
Figure 6.13 A 300 Second Coordinated Turn..............................................................57
Figure 6.14 Error During Coordinated Turn................................................................58
Figure 6.15 Absolute Error During 300 Second Coordinated Turn.............................59
Figure 6.16 Euler Angles During 300 Second Coordinated Turn ...............................60
Figure 6.17 Realistic Actuator Altitude Hold..............................................................61
Figure 6.18 Realistic Actuators 2.7m/s descent...........................................................62
Figure 6.19 Altitude Error During Descent in Realistic Actuated System..................63
Figure 7.1 Altitude Hold Performance Instant Actuators ............................................65
Figure 7.2 Integral Action Altitude Hold in Windy Atmosphere ................................66
Figure 7.3 Constant Descent Maneouvre.....................................................................67
Figure 7.4 Descent Through Windy Atmosphere with Integral Action.......................68
vii
Figure 8.1 VRML Model of SRC................................................................................70
viii
1 Introduction
Designing an aircraft takes an incredible amount of time and resources. An aircraft
design usually begins as a sketch on a notepad, or through an artists impression. At
these early stages, the aircraft has no basis in reality, and so can be altered at will. The
shape and size of the aircraft can be changed; the location of the engine or engines is
not set. The ability to quickly and accurately evaluate a design at this conceptual stage
is invaluable. As an aircraft passes from concept into prototype, the design is
essentially set. It is almost impossible to add or remove or alter drastically one of the
major sections of the aircraft. The changes that were easy to make while the aircraft
was only a concept, are now difficult to alter. This increases the value of any method
that quickly, cheaply and effectively evaluates the performance of a concept.

The onset of high-speed computing has benefited the field of aerospace engineering
greatly. Vast computing resources, available at a minimal cost, can be effectively
applied to every area of the design, testing, and manufacture of advanced aircraft.
Additionally, modern control techniques mean that performance and stability are no
longer mutually exclusive: both can be achieved. In that vein, this thesis focuses on
the very initial design, aerodynamic modelling, control, and graphical display, of a
novel aircraft concept: the SiMiCon Rotor-Craft (SRC). Specifically, the effective
usage of software in the preliminary design of this aircraft is described in detail.

This SiMiCon design is a revolutionary concept for a hybrid unmanned aerial vehicle
(UAV). The SRC has two distinct modes of propulsion: in one, it functions as a
helicopter, using a rotor-disc, with a vectored jet-engine providing counter-torque; in
the other, it retracts the rotor blades and functions as a conventional jet. Combined,
these modes offer the advantages inherent in a jet-aircraft, as well the advantages
inherent in a helicopter. That is; the high speed and long range of a jet; and the
vertical take-off and landing (VTOL), and other versatile manoeuvres usually only
capable of being performed by a helicopter. Essentially, the aircraft can offer high
performance and efficiency from a velocity of zero, up to nearly transonic speeds.
This thesis focuses purely on the jet-powered section of flight. This begins at around
M0.08, or roughly 150km/h, and extends upwards to the limits of the aircraft.

The SRC consists of a disc shaped wing/body, a vertical tail, and horizontal tail. This
offers a very sleek profile, and makes the aircraft an ideal platform for a hybrid
design. At this early stage of design, the disc has a diameter of three metres, and the
aircraft is expected to have a mass between five and seven hundred kilograms. The
control surfaces are: elevons mounted on the horizontal tail for roll and pitch control;
a rudder mounted on the vertical tail for yaw control; and a split flap on the lower
surface of the disc for low speed flight.


Chapter 2 concentrates on explaining the general concept of the SRC, along with
some preliminary design decisions. In chapter 3, using cheap or free software, the
SRCs aerodynamic parameters are calculated, and a complete aerodynamic database
is created. This includes the coding of extensive scripts to import data into MATLAB.
Chapter 4 integrates this database into a realistic flight simulation environment. This
involves atmospheric, gravity and actuator models. The simulator is coded in Matlab
and Simulink, using various toolboxes. Following on from the model construction,
Chapter 5 develops a control system for the Matlab SRC model. It first details linear
1
quadratic theory, and then explains how a linear controller of this type is created to
stabilise and control the aircraft model. Chapter 6 simulates the performance of the
aircraft in several manoeuvres including steady, level flight and coordinated turns.
Chapter 7 moves on to improve the method of control by adding integral action.
Simulation results are then presented to show the effects of integral action,
particularly the effects on steady state errors. Chapter 8 details the graphical model
built to display the SRC concept. Chapter 9 briefly offers opinions on work that could
follow on from this thesis. Chapter 10 concludes the thesis by summarising the
important results derived.

In summary, the aim of this thesis is to build a viable simulation model of the Simicon
Rotor Craft.
2
2 The SRC Aircraft
As explained during the introduction, the Simicon Rotor-Craft is a concept for an
unmanned aerial vehicle. That is, it combines the low speed of a helicopter, with the
high speed and range of a jet. Artists impressions of the design are shown throughout
this chapter.

Figure 2.1 Side View of Simicon Rotor-Craft

In this thesis, a fuselage diameter of 3m is taken as the standard. The mass of the
aircraft is set at 700kg, with a centre of gravity at or close to the centre of the disc.

The rotor itself utilises a new idea: the Spin-Off rotor concept. This type of helicopter
has no rotor hub: an extremely heavy, complicated, and vital part of a conventional
helicopter. Instead, the SRC uses what is called a Spin-Off rotor. The craft actually
varies the position of the rotor itself. That is, it moves the rotor from its standard
position the x-y plane. This has the effect of making the rotor thrust act through a
point distant from the centre of gravity, and so can introduce large and controllable
rolling and pitching moments.

Figure 2.2 Front View of SRC With Rotor Extended

A benefit of this new rotor design is that the rotor can be reduced in weight
considerably, while the drawback is that a complex control system required. Radio-
controlled models of this concept have already been demonstrated. Early analytical
work on the control during the helicopter mode of flight can be found in Hovstein
(2001)
1
.

The jet engine on the lower half of the aircraft uses thrust vectoring to counter the
torque of the rotor. This jet engine gradually takes over from the helicopter blades to
power the aircraft as airspeed increases, finally taking over completely at a velocity of
3
roughly 150km/h. The conceived maximum static thrust of this engine at sea level is
taken to be 3500N.

Although the rotor provides primary control at very low speeds, there are several
control surfaces on the aircraft that provide effective control at all higher speeds. The
surfaces present on the SRC are a rudder on the vertical tailplane, elevons on the
horizontal tailplane, and a split flap on the lower section of the fuselage. Room for an
externally blown flap has been left in the centreline, although that device does not
enter into this thesis.

The rudder is conventional, and is used for yaw control. Elevons were chosen for use
to save space and weight. An elevon is a generally uncommon control surface.
Elevons conjoin the tasks of pitch and roll control. Whereas the primary method of
pitch control was through the use of elevators on the tail, and the primary method of
roll control was through the use of ailerons on the wing, elevons merge these into a
single set of control surfaces: the word itself being a merging of its predecessors. On
the SRC, elevons on the tail carry out all rolling and pitching manoeuvres. As will be
seen later, this complicates the task of controlling the aircraft. A picture of the SRC
with control surface deflection is depicted in Figure 2.3.

Figure 2.3 Control surfaces of the SRC
Although some preliminary data and simulations exist for the very low speed section
of the flight envelope, no previous work exists which deals with the higher velocity,
jet-powered part of the flight envelope. That is, no wind-tunnel data has been
gathered. Nor has any computational fluid dynamics modelling (CFD) been done.
4
3 Modelling the SRC
Representing an aircraft model in a computer has been the focus of a great deal of
attention over the past thirty years. Carrying out this task successfully allows one to
evaluate the stability and performance of the aircraft in a fraction of the time and at a
fraction of the cost previously required. Additionally, it is an easier task to design a
control system for a system that has been fully quantified. Additionally, it becomes
possible to build more exotic and high performance control systems around this
computer model.

3.1 Aerodynamic Forces and Moments
The task of simulating an aircraft, as with so many other systems from ships to
spacecraft, is one of solving Newtons equations of motion:

abs
F ma =

(3.1)

O
abs
M I =

(3.2)

This task requires that all forces and moments in the six degrees of freedom be known
in an inertial frame. In the field of aerodynamics, forces and moments are generally
expressed in terms of their aerodynamic coefficients, shown below:


2
2
2
2
2
2
1
, drag
2
1
, lift
2
1
, side force
2
1
, rolling moment
2
1
, pitching moment
2
1
, yawing moment
2
D
L
Y
l
M
N
D V SC
L V SC
Y V SC
L V SbC
M V ScC
N V SbC

=
=
=
=
=
=
(3.3)

where C
D
, C
L
and C
Y
are the drag coefficient, lift coefficient, and sideforce
coefficient respectively: the force coefficients; while C
l
, C
M
, and C
N
are the rolling,
pitching and yawing moment coefficients respectively. Therefore to go from the
coefficient to the force or moment itself, one multiplies by the dynamic pressure and
wing area. For the moments, another multiplier, either the wingspan or mean chord
length, is also needed. The aerodynamic forces and moments are generated by the
airflow over the aircraft, and so are inherently expressed in terms of the wind-axes.
Each coefficient varies according to terms such as angle of attack, sideslip angle,
altitude, Mach number, control surface deflection and many others. Engine thrust,
though it varies with airspeed and the angles of attack and sideslip, is inherently
expressed in the body-fixed axes, as it always acts through the same point on the
body.
5

With knowledge of all wind-forces and moments, and after a rotation into an inertial
frame, the equations of motion can quickly and easily be solved. This leads onto the
main task of creating an aircraft model: the task of evaluating the aerodynamic
coefficients C
L
, C
D,
C
N
at any flight condition.

3.1.1 Aerodynamic Coefficients at Varying Flight Conditions
Each aerodynamic coefficient is dependent on an array of parameters. For example,
the lift coefficient is primarily dependant on angle of attack, with factors such as flap
deflection and elevon deflection also having large influences. In addition to these
dependencies, the lift coefficient also varies with Mach number, altitude, and pitch
rate. Evaluating the lift coefficient with any accuracy requires the estimation of the
effects of all the factors mentioned. All six of the force and moment coefficients share
such complexity, although to varying degrees.

Once the components of each aerodynamic coefficient are collated, the six
coefficients of forces and moments can then be calculated. In general this is simply a
case of summating the coefficients. However, the components that are dependent on
time derivatives of some other parameters: the dynamic coefficients, are inserted
using the following equation:
dynamic contribution
2
T
b
C rate
V
= (3.4)
Where b is the wingspan of the aircraft; V
T
is the airspeed; and C is the dynamic
derivative in question.

3.1.1.1 Evaluating C
L

The factors which affect C
L
have already been mentioned in 3.1.1, but will be here.

C
L
() - lift coefficient dependence on angle of attack
C
L
(elv) - the lifting force from elevon deflection
C
L
(wf) - the lifting force from the wing flap
C
LQ
- the effect on lifting force of the pitch rate

C
L
() arises due to the lifting force produced when the aircraft passes through the air
at some angle of attack (for uncambered wings). This value must be looked up at
particular flight conditions to compensate for the variations with Mach number and
altitude.

C
L
(elv) and C
L
(wf) are present due to the effect the surfaces have on the lifting
force when lying at some deflection. Each coefficient varies according to its own
deflection, altitude, mach number, and also the aircraft angle of attack.

C
LQ
is present due to the effect a pitch rate has on the aircraft, primarily the tail. A
positive pitch rate increases the angle of attack of the tail, resulting in a larger lifting
force from the tail. This also occurs with the wing, but is a much smaller effect,
usually only about ten percent of the tail value. Both are calculated at once in the later
simulation. The formula to evaluate CL is then
6
( ) ( ) ( )
2
L L L L LQ
T
b
C C C elv C wflap C Q
V
= + + + (3.5)
3.1.1.2 Evaluating C
D

The drag coefficient is again broadly dependent on the angle of attack of the aircraft,
summed with the effects of the tail and the various effects of any other control
surfaces on the aircraft, in the SRCs case, the wingflap. The effects of these must be
scaled with Mach number and altitude.

The effectiveness of the tailplane is dependent on the airflow over it. As the aircrafts
angle of attack increases, the quality of airflow over the tailplane decreases. This must
be factored into the calculation of the drag coefficient.

Factors such as the contributions of the engine cowling and the landing gear would
normally be included in any complete simulation, but are not included in this
simulation. In addition, the most serious weakness in the evaluation of C
D
is the lack
of C
D
, a term which compensates for the increased drag arising from sideslip. No
suitable method was found for estimating this parameter.

Therefore the important parameters are:

C
D
() - the drag as a function of alpha
C
D
(elv) - the drag of the elevon deflection
C
D
(wf) - the drag of the wing flap

These merge to form the overall drag coefficient in the following manner:
( ) ( ) ( )
D D D D
C C C elv C wflap = + + (3.6)
3.1.1.3 Evaluating C
Y

The sideforce coefficient varies mostly with sideslip, due to the effects of the tail. In
addition, it is affected by the rudder deflection. These terms together dwarf any
others, but the effects of a rolling velocity (C
YP
) are also included in the later model.
The effects of Mach number and altitude are accounted for through the lookup table
system. So the important parameters are:

C
D
() - the drag as a function of sideslip
C
Y
(rud) - the sideforce effects of the rudder
C
YP
- the effects of rolling velocity on sideforce

The sideforce coefficient is calculated according to the following equation:
( ) ( )
2
Y Y Y YP
T
b
C C C rud C
V
= + + P (3.7)
3.1.1.4 Evaluating
L
C
The rolling moment coefficient is dependent on the following factors:

C
l
() - the rolling moment as a function of sideslip
7
C
l
(rud) - the rolling moment as a function of rudder deflection
C
l
(elev) - the rolling moment as a function of elevon deflection
C
lP
- the effects of roll rate on the rolling moment
C
lR
- the effects of yaw rate on the rolling moment

The dependence on sideslip is the result of the airflow into the tailplane, and a
positive angle of sideslip causes a positive roll, that is, right wing downwards. The
rudder dependence is a modification of above effect. It is generally an undesired
effect, as it is cross couples yaw control to roll control. It would be advantageous to
use the rudder to control yaw alone, but this is not possible on most aircraft, due to the
positioning of the rudder above the centre of gravity of the aircraft.

Differential deflection of the elevons is the primary method of controlling the roll of
the aircraft. Lowering the lift production of one elevon and raising the other causes
the shifting of the lifting force to one side, causing a rolling moment. The convention
of leading edge up, trailing edge down giving a positive elevon deflection is used
throughout.

The two dynamic coefficients C
lP
and C
lR
are expressions of how the rolling moment
is altered by rolling and yawing rates. All these effects are modified for Mach
number, altitude and angle of attack through the lookup tables.

The complete rolling moment coefficient is formed from these constituent parts as
follows:
( ( ) ( ) ( )
2
l l l l LP LR
T
b
C C C rud C elv C P C R
V
= + + + + ) (3.8)
3.1.1.5 Evaluating C
M

The pitching moment broadly depends on the angle of attack, elevon deflection and
flap deflection. Also included is the effect of pitch rate. So the terms are:

C
M
() - pitching moment coefficient dependence on angle of attack
C
M
(elev) - pitching moment coefficient dependence on elevon deflection
C
M
(wf) - pitching moment coefficient dependence on wing flap
C
MQ
- the effect of pitch rate on pitching moment

The centre of lift is always towards the front of an aerofoil. For NACA profiles, it
commonly lies very close to the quarter chord point. As the centre of lift does not act
through the centre of gravity, the generation of lift also causes a pitching moment. If
the centre of lift is behind the centre of gravity, then the aircraft is statically stable, but
if the centre of lift if forward of the c.g, then the aircraft is statically unstable in pitch.
This is the case with the SRC, since the centre of gravity is at the half chord point of
the aerofoil.

A symmetrical deflection in the elevons produces both a vertical and horizontal force.
These contribute directly to both lift and drag. The force, being offset from the centre
of gravity, also produces a pitching moment. It is by this method that the aircrafts
pitch is controlled. This term is heavily dependent on the angle of attack of the
8
aircraft, as at larger angles of attack, the tail is effectively obscured from the airflow.
The effect of this is modelled and enters the system through the lookup tables.

The wing flap operates along similar principles, although it actually changes the
properties of the main lifting surface to achieve the same effect. A positive
(downwards) deflection of the split flap produces a large increase in lift and drag, and
a large nose down pitching moment.

C
MQ
is directly related to the coefficient C
LQ
explained in Section 3.1.1.1, as they are
part of the same effect. In short, this change in the pitching moment is produced by
time delays in the angle of attack as the aircraft rotates.

It is usual to also include the term
M
C

, that is, the relationship between the time
derivative of angle of attack and pitching moment coefficient. This term arises
because an angle of attack change in the main wing is not experienced at the tail
instantaneously due to the, usually large, separation between them. A time delay
inversely proportionally to Mach number is experienced. As the tail is extremely close
to, and actually above, the main wing, the pitching moments dependence on is
neglected in this thesis.

Using the components summarised above, the complete pitching moment coefficients
is evaluated as follows:
( ) ( ) ( ) (
2
M M M M MQ
T
b
C C C elv C wflap C Q
V
= + + +
)
(3.9)
3.1.1.6 Evaluating C
N

The yawing moment coefficient is primarily influenced by sideslip and the rudder. In
this thesis, C
N
is modelled with a considerable number of parameters. In addition to
the large scale moments just mentioned, several more are included. The effects of
elevon deflection, roll rate and yaw rate are all included as follows:

C
N
() - yawing moment coefficient dependence on sideslip
C
N
(rud) - yawing moment coefficient dependence on rudder deflection
C
N
(elev) - yawing moment coefficient dependence on elevon deflection
C
NP
- effects of roll rate on yawing moment coefficient
C
NR
- effects of yaw rate on yawing moment coefficient

Sideslip causes a yawing moment mainly due to the effects of the vertical tail. In
conventional aircraft, the fuselage also has a considerable effect, but there is almost
no fuselage to describe in the SRC. The tail effect in sideslip is called weathercock
stability. It is so-called because the tail tends to yaw the aircraft into the wind,
reducing sideslip. That is, a positive sideslip generates a positive yawing moment and
hence yaw rate. The rudder is the device used to control yaw, and has a very large
effect on the yawing moment.

In addition to these obvious effect, the elevons also introduce yawing moments when
deflected differentially. The elevons contribute to the drag force of the aircraft. When
the elevons are at the same angle of attack, in a symmetrical deflection, this drag force
is equal across the horizontal tail. However, if the elevons are deflected differentially,
9
to introduce a rolling moment for example, the elevon with the larger angle of attack
also generates a larger drag force and the other, with a lower angle of attack,
generates less drag. Therefore this imbalance contributes a yawing moment effect,
which is modelled in this thesis.

Finally, two dynamic coefficients factor into the yawing moment coefficient are also
included: C
NP
and C
NR
. These express how a roll rate couples to yaw by generating a
yawing moment in C
NP
, and the damping effects of yaw in C
NR
.

The yawing moment, then, is:
( ) ( ) ( ) (
2
N N N N NP NR
T
b
C C C rud C elv C P C R
V
= + + + ) (3.10)

This knowledge of how to calculate the aerodynamic coefficients, detailed throughout
this section, leads on to the task of calculating the components of each. This is dealt
with in 3.2.

3.2 Calculation of Aerodynamic Data
No simple methods exist to perfectly predict each value at a given flight condition.
Wind tunnel modelling and computation fluid dynamics modelling (CFD) are the
most accurate methods. They are also the most expensive methods, primarily due to
the energy demands of the former, and the computational power demands of the latter.
Conventionally, these two methods are combined to varying degrees. Another method
available is to predict the values of each aerodynamic parameter using known
techniques. This particular method is the one used in this thesis. The task then
becomes one of using computer software to predict as much as possible about the
aircraft without actually delving deeply into a CFD analysis. Three pieces of software
were used in this endeavour: XFOIL, the USAF DIGITAL DATCOM, and Tornado.

Xfoil was used to generate the two dimensional characteristics of the chosen aerofoil,
the NASA-Langley N0011SC. The DATCOM took this Xfoil data and, using a
geometric approximation, calculated very comprehensive sets of data. These sets were
augmented by data generated by another modeller called Tornado. This software
generated rudder data and additional elevon data.

3.2.1 Xfoil
The freeware 2D aerofoil modeller, Xfoil, developed by Mark Drela at MIT, was used
to evaluate the aerodynamic characteristics of the chosen aerofoil, the N0011SC. This
software has several methods available to solve for the pitching moment. The most
advanced, and the one used in this thesis, is a viscous formulation. This incorporates
an advanced model of the boundary layer, and gives accurate results. The boundary
layer models are based on the ISES methods.

The solutions incorporate the Karmen-Tsien compressibility corrections. In the
presence of shocks, these compressibility corrections fail, and so the Xfoil output data
is only valid up to around Mach 0.7. This is perfectly acceptable for the purposes of
this thesis.
10

A full detailing of how the solvers work can be found in Drela and Giles (1987)
2
,
while the Xfoil programs operation is detailed in Drela (1989)
3
.

Xfoil can take several forms of input. The one most convenient is to directly load the
coordinates of the aerofoil to be used in the SRC. These coordinates were downloaded
from the NASG online database. The standard form of these coordinates is one that
expresses the coordinates starting at the trailing edge, proceeding over the upper
surface, and returning over the lower surface. A plot of these coordinates is shown
below. The coordinates are included in full in Appendix A, as is the Matlab plotting
script.

X 1.000 0.9750 0.0020 0.0000 0.0020 0.9750 1.000
Y 0.000 0.0064 0.0092 0.0000 -.0092 -.0064 0.000
Table 3-1 Example of Xfoil Coordinates
In general, the larger the number of coordinates, the better the solution. However,
computing times also increases with number of panels. The PANE command in Xfoil
improves the distribution of panels, giving a large number of points at the leading and
trailing edge, with a lower number across the flatter areas of the aerofoil.

Figure 3.1 SRC Aerofoil- N0011SC
The bluntness of the aerofoil pictured above makes it particularly suitable for use on
the SRC. The trailing edge, in order to support a tailplane, cannot be excessively
sharp.

No explanation of the general usage of Xfoil is given here, only an explanation of
which commands were actually used in this thesis is offered. The Xfoil manual offers
a full and detailed explanation of each one of its features. Firstly, the loading and
smoothing of coordinates using the LOAD and PANE commands. The aerofoil
reference point was set to x=0.5, the centre of gravity, instead of the conventional
quarter chord point. Following this, all work was carried out in the OPER section of
the program. VISC sets the solving type from inviscid to viscous. For a viscous
11
solution, both the Reynolds number and Mach number are required. These are set
using the RE and MACH commands respectively. The useful output from Xfoil is the
lift coefficient, the drag coefficient, and the pitching moment coefficient. All will be
useful later on.

The simulations were carried out across a range of velocities M0.08 up to M0.7:
roughly from a transition speed of 150km/h at low altitude, up to an almost transonic
speed. Complete tables of the aerodynamic coefficients of the N0011SC are included
in Appendix A.

Once the Mach number and Reynolds number are set, a sweep across a set of angles
of attack is performed using the ASEQ command, and logged to a text file using the
PACC command. A single solution at an alpha of 4 degrees and at a mach number of
0.08 is shown in Figure 3.2. The upper plot shows how the pressure coefficient varies
across the aerofoil. The viscous solution is shown in solid coloured lines, and the
inviscid solution is shown in a broken black line. The lower plot shows the effective
aerofoil: the actual aerofoil and the effects the boundary layers have on it.


Figure 3.2 Xfoil Solution of N0011SC at M0.08, 4
The ASEQ operation is performed at increasing Mach numbers until a suitable
amount of data has been gathered. The simulation was run at M0.08, 0.1, 0.2, 0.3, 0.4,
0.5, 0.6 and 0.7. A display of the lift and drag coefficients at the transition speed is
shown in Figure 3.3.
12
0 1 2 3 4 5 6 7 8 9 10
-0.5
0
0.5
1
1.5
angle of attack (deg)
C
L
Lift Coefficient at M0.08
0 1 2 3 4 5 6 7 8 9 10
0
0.005
0.01
0.015
angle of attack (deg)
C
D
Drag coefficient at M0.08

Figure 3.3 Lift and Drag Coefficients of N0011SC (M0.08)

Using these methods, a complete set of two-dimensional data of the N0011SC
aerofoil is made available. From this point onwards, it becomes a task of converting
this 2D data into a 3D representation of the actual aircraft.

3.2.2 USAF Digital DATCOM
The USAF Stability and Control DATCOM (Data Compendium)
4
arose from a
United States Air Force program. It is an expansive document created during the
1960s and expanded upon in the 1970s, and was created to document the methods
for estimating parameters of stability and control of an aircraft. The techniques within
this document extend from predicting the lifting coefficient of a simple aircraft, to
predicting the control parameters of a hypersonic (>Mach 5) flap.

In the late 1970s, these methods were coded in Fortran at Wright AFB. This software
program is called the USAF Digital DATCOM, and was made available to
aeronautical engineers many years ago. Having the DATCOM methods implemented
in software has obvious advantages. The methods can be used to generate vast
quantities of data using only a fraction of the time and effort previously required.

This software is used to generate the majority of the coefficients detailed in Section
3.1.1, and is the source of over 95% of the final aerodynamic database. Again, no
general explanation of the usage of this software is offered. The manual of the Digital
DATCOM can be consulted by the interested reader
5
. The complete set of input files
is included in Appendix D.

13
Six different analyses were performed on the SRC concept. The first is an analysis of
the static coefficients of the SRC. That is, an evaluation of parameter dependence on
angle of attack, and sideslip among others. The second is an analysis of the dynamic
coefficients. This studies the effects that the body rates have on each parameter. For
example, how pitch rate affects the lift coefficient. The third and fourth analyses study
the effects of symmetrical and differential elevon deflection respectively. That is, the
pitching and rolling effects of the elevons. The fifth evaluates trim conditions of the
aircraft. That is, how the aircraft can be trimmed in straight and level flight: which
elevon deflection achieves a trim condition. The last studies the effects of the split
flap on the lower surface of the aircraft fuselage/wing.

3.2.2.1 DATCOM Approximations
The DATCOM program allows for a diverse array of aircraft to be simulated, from a
conventional aircraft such as a Cessna 172R, to supersonic aircraft with canard
control surfaces. The program can accept complicated geometries. That stated,
approximations have to be made of more complicated shapes.

The SRC, being disc shaped, is not the easiest shape to input into the DATCOM
program. This software allows for an aircraft shape to be defined in several parts: the
body, the inner wing, and the outer wing. This allows for close approximations to
complex shapes such as the Boeing 777 aircraft to be made. In order to simulate the
disc shaped SRC, it is reduced from a circular to an octagonal wing.


Figure 3.4 SRC Geometric Approximation

Furthermore, it is assumed that the engine cowling fits into the aircraft body, and
therefore does not contribute any more to the drag of the aircraft.

Aside from these simplifications, the aircraft is given a full analysis. The complete
listing of the geometry and other parameters of the SRC is included in Appendix A.

3.2.2.2 Static Analysis
The static analysis of the SRC produces those components dependent on the
orientation of the aircraft. For example, the lift coefficient as a function of angle of
attack, a static property, is evaluated within this section. The coefficients calculated
within this section, all as functions of alpha, altitude and Mach number are:
D
C - drag coefficient
14
L
C - lift coefficient
M
C - pitching moment coefficient
N
C

-
N

, yawing moment coefficient sideslip derivative


l
C

-
L

, rolling moment coefficient sideslip derivative


3.2.2.3 Dynamic Analysis
The dynamic analysis in the DATCOM evaluates the aerodynamic derivatives. That
is, those derivatives dependent on things such as rolling or pitching rotation rates. The
coefficients evaluated are:

LQ
C -
L
Q

, the lift pitch rate derivative


M
C -
M
Q

, the pitching moment pitch rate derivative


LP
C -
L
P

, derivative of rolling moment with respect to rolling velocity


YP
C -
Y
P

, derivative of sideforce with respect to rolling velocity


NP
C -
N
P

, derivative of yawing moment with respect to rolling velocity


NR
C -
N
R

, derivative of yawing moment with respect to yawing velocity


LR
C -
L
R

, derivative of rolling moment with respect to yawing velocity



These together form an almost complete set of dynamic derivatives. Others are absent,
but those given above generally dwarf these. Each coefficient varies with Mach
number, altitude and angle of attack.
3.2.2.4 Symmetrical Elevon Analysis
The analysis of elevon effects is formed from two sections. One analyses the rolling
effects of asymmetrical deflections, and the other, this section, studies the effects of
symmetrical deflections. The symmetrical results are derived by defining the entire
tail surface as a flap. The parameters evaluated in this section are as follows:

L
C - change in lifting coefficient due to elevon deflection
M
C - change in pitching moment coefficient due to elevon deflection
D
C - change in drag coefficient due to elevon deflection

L
C and
M
C are evaluated as functions of Mach number, altitude, and elevon
deflection.
D
C is also evaluated with the extra dimension of angle of attack.
15
3.2.2.5 Differential Elevon Analysis
The differential elevon analysis is achieved by defining the tail surface as an all-
moving horizontal stabiliser. The only output from this analysis is the rolling moment
due to this deflection:

L
C - rolling moment coefficient due to asymmetrical elevon deflection

This coefficient varies according to Mach number, altitude and flap deflection. It does
not vary with angle of attack, and this is a weakness in the model. However, high
alpha flight is outwith the remit of this thesis, and so is a tolerable weakness.
3.2.2.6 Split Flap Analysis
This section is very similar to 3.2.2.4 in that it uses the same method of analysis. The
outputs are:

L
C - change in lifting coefficient due to flap deflection
M
C - change in pitching moment coefficient due to flap deflection
D
C - change in drag coefficient due to flap deflection

3.2.2.7 Trim Analysis
The trim analysis does a basic trim study by evaluating the necessary tail angle to
achieve a trim condition in pitch. The data derived from this section is used for
analytical purposes. The data are derived at each Mach number, and altitude of note,
and are:

elevon
- elevon deflection necessary to trim aircraft
Dt
C - tail contribution to drag coefficient at trim
Lt
C - tail contribution to lift coefficient at trim
Mt
C - tail contribution to pitching moment at trim

3.2.3 Tornado
Tornado is a Matlab program developed by Tomas Melin at the Royal Institute of
Technology in Stockholm. A full explanation of the workings of the software can be
found in Melin (2000)
6
. The program uses a vortex lattice method to evaluate
aerodynamic properties of aircraft shapes. In this thesis, it was used to evaluate those
coefficients not calculated by the DATCOM. Primarily, it was used to calculate the
effects of the rudder, and to extend the quality of the elevon model. It also calculated
the C
Y
coefficient: how the sideforce changes with sideslip. The full list of those
coefficients calculated in Tornado are listed here:

C
Y
- sideforce due to sideslip
- sideforce due to rudder deflection
Y rud
C

- yawing moment due to rudder deflection
N rud
C

- rolling moment due to rudder deflection
l rud
C

16
l elev
C

- rolling moment due to differential elevon deflection


N elev
C

- yawing moment due to differential elevon deflection

3.2.3.1 Defining the SRC Model in Tornado
Tornado has the capability to define much more complex shapes, but this is time
consuming both in construction and simulation of the model. The DATCOM, as
explained earlier in this chapter, can only take three different sections of the fuselage
nad wing of the aircraft: body, inner wing, and outer wing. Tornado can define a
limitless amount of these. This can be advantageous, as it allows for very complex
geometries to be modelled, but it is time consuming, both in terms of input and
calculation. Once again the disc is approximated by an octagon. The complete
specifications of the Tornado model of the SRC are included in Appendix E.

A plot of the SRC, made from within the Tornado program, is shown in Figure 3.5.

-1.5
-1
-0.5
0
0.5
1
1.5
-1.5
-1
-0.5
0
0.5
1
1.5
0
0.5
1
Wing x-coord
3-D Wing configuration, Vortex layout.
Wing y-coord
W
i
n
g

z
-
c
o
o
r
d

Figure 3.5 SRC Model in Tornado
17
-25 -20 -15 -10 -5 0 5 10 15 20 25
-0.05
-0.04
-0.03
-0.02
-0.01
0
0.01
0.02
0.03
0.04
0.05
Rudder Deflection (deg)
C
n
Yawing Moment Coefficient Against Rudder Deflection
Cn
Cn-interp

Figure 3.6 Rudder Effects on Yawing Moment from Tornado Simulation
Figure 3.6 shows a Tornado simulation of the yawing moment properties of the
aircrafts rudder. Superimposed on this in blue, is an interpolation of this inherently
piecewise data. The interpolation displays how the data is given the appearance of
continuity through the use of interpolation in the lookup tables.

3.3 Importing into MATLAB from the Digital DATCOM
The data output format of the Digital DATCOM, samples of which can be found in
the Appendices, is extremely unwieldy, and cannot simply be loaded into Matlab. To
do it manually would take many, many hours, and would be fraught with errors. The
data is spread over tens of thousands of lines across tens of output files. Extensive
importation scripts have been written to carry out this task with as little user input as
possible. These scripts are included in Appendix C. The code begins by importing the
data using low-level file operations into the Matlab workspace. Following this, the
program sorts the vast amounts of data into its constituent sections. Mainly by using
string searches, the numeric data is filtered out, and sorted into suitable forms: usually
three or four-dimensional numeric arrays. Finally, the data tables are stored in a single
structure of the following form.

Aerodatabase
o Static
, , , ,
L D M N L
C C C C C


o Dynamic
, , , , , ,
LQ MQ LP YP NP NR LR
C C C C C C C
o DiffElevon
18

l
C
o ElvPitch
, ,
L M
C C C
D
D
o Wingflap
, ,
L M
C C C
o Trim
, , ,
elevon Dt Lt Mt
C C C
o Tornado
, , , ,
Y N elev l rud N rud Y rud
C C C C C



The data in this form is ideal for being accessed as lookup tables.
19
4 Creating the Simulation Model
With a detailed model of the aerodynamics of the aircraft being made available
through the methods detailed in Chapter 3, one can proceed to develop a simulation
which integrates this aerodynamic model with the other parts of an aircraft like the
engine and control surface actuators. Additionally, this completed aircraft model can
then be placed within a realistic environment factoring in things such as atmospheric
and gravity models. The end result is a robust model that offers accurate results across
a whole host of flight conditions, allowing for detailed simulations to be carried out.

The software used in this endeavour is Matlab and Simulink, with various other
toolboxes.

What follows is an explanation of the constituent parts of this model. In addition,
some basic theory is explained in order to reveal the purpose of some sections of the
model.

4.1 Completing the Aircraft Model
The aim of this aircraft model is to have a model that can solve for the aerodynamic
forces in body axes, given any reasonable flight condition. That is, the model takes as
inputs such parameters as Mach number, altitude, angle of attack and sideslip, control
deflections and suchlike. From these inputs, the model can collate all forces in a
suitable frame, for the future solving of the equations of motion.

4.1.1 Coordinate Systems
Before detailing each part of the simulation model, it is necessary to briefly explain
the different coordinate systems used within this thesis. Several coordinate systems
are required, since many particular forces or velocities are naturally considered in
terms of certain a certain frame. The three axes systems that are used are:

1.) Wind axes
2.) Body axes
3.) Earth axes

4.1.1.1 Wind Axes
The wind axes are those axes defined by the orientation of the aircraft relative to the
airflow. Aerodynamic forces and moments, generated by the motion of the aircraft in
through the atmosphere, are naturally evaluated in terms of the wind axes. These axes
are right-handed, and so the X, Y and Z-axes are considered positive into, rightwards,
and downwards of the wind.

By convention, the lift force is taken to be positive upwards, and the drag force
positive backwards. Therefore the actual lift and drag forces in wind axes are L and
D respectively.

20
It is possible to use this frame as the basis for solving the equations of motion. Almost
all forces and moments are inherently calculated in the wind axes, and the others can
be rotated into the wind-axes with ease, before then rotating the complete set into an
inertial frame. The problem with this method is that, as the wind-axes are not fixed to
the body, the inertia matrix is not constant. Therefore, to use this method properly, the
system must take time-varying moments of inertia into account. To avoid such a level
of complexity, all forces and moments are considered exclusively in the body axes.

4.1.1.2 Body Axes
The body axes are fixed to, and so translate and rotate with, the aircraft. The
convention is that x, y and z point forwards, starboard, and downwards respectively,
with the origin lying at some reference point on the aircraft. As the engine is fixed to
the body, it is in these axes that the propulsive forces and moments from the engine
are resolved.

For the purposes of collating all forces, the body axes have a significant advantage
over the wind-axes. As mentioned in Section 4.1.1.1, the wind-axes must take time
varying moments of inertia into account. The body frame, being fixed to the aircraft,
has a fixed moment of inertia, neglecting any fuel consumption or release of payload.
It is a more intensive task to collect all forces into the body axes, since almost all are
naturally calculated in terms of the wind axes.

The body and wind axes are related to each other by the angles of attack and sideslip,
and : the aerodynamic angles. Any vector defined in one can be converted into the
other by a rotation about these angles. The rotation matrix from body to wind axes is:

cos( ) cos( ) sin( ) sin( ) cos( )
cos( ) sin( ) cos( ) sin( ) sin( )
sin( ) 0 cos( )
W
B
R



(
(
=
(
(

(4.1)
This matrix is orthogonal, therefore the transform from wind to body axes,
B
W
R , is
simply the transpose of the above. All forces and moments are calculated in terms of
either body or wind axes, and it is trivial to group all together in one frame using (4.1)
or its inverse, but in order to solve the equations of motion, each force and moment
must first be rendered in an inertial frame.

4.1.1.3 NED Frame
An inertial frame is one that does not translate or rotate relative to the fixed stars.
Such a level of complexity is entirely inappropriate in the study of kinematics on
Earth. In aircraft, two frames are typical: an Earth Centred Inertial (ECI) frame, or a
North-East-Down (NED) frame. The former translates, but does not rotate, with the
Earth. Though not perfect, it is closer to an inertial frame than the latter, which
assumes a flat Earth. Navigation plays no part in this study, so the accuracy of the ECI
frame is not required; therefore the NED approximation suffices.

The conversions between body and NED frames can be carried out using either a
three or four variable attitude propagation technique. The orientation of the aircraft in
the NED frame is expressed using the three euler angles , , and ; roll angle, pitch
21
angle, and yaw angle respectively. In this thesis, the three variable approach is used.
The weakness of this method is that singularities exist at 90 = degrees. Although a
precise value of degrees is rare, the region surrounding these points also give
unreliable results. The position and orientation derivatives are given by
7

90
:

( )
( )
cos cos cos sin sin sin cos
sin sin cos cos cos
u v
n
w


| | +
= |
|
+ +
\ .


(4.2)

( )
( )
sin cos cos cos sin sin sin
sin sin cos cos sin
u v
e
w


| | + +
= |
|
+
\ .


(4.3)
sin cos sin cos cos d u v w = + +

(4.4)
sin tan cos tan p q r = + +

(4.5)
cos sin q r =

(4.6)

sin cos
,
cos cos 2
q r



= + (4.7)

A four variable propagation method, known as the quaternion method, avoids the
singularity indicated in (4.7). The only problem with this technique, neglecting the
slightly higher computational requirements, is that it is not an optimal method. That
is, four variables are used to express the values of three states: roll, pitch and yaw.
This introduces purely computational modes into the system, which do not exist in the
actual aircraft
8
.

In this thesis, the three variable method is used. The advantage of removing the
singularity is negligible, since this singularity will not be encountered in the set of
basic simulations. This thesis purely studies basic manoeuvres such as level flight,
climbing and descending, and turning. To study advanced manoeuvres such as a
loop-the-loop would require the use of the four variable quaternion method.

4.1.2 Lookup Tables
This set of blocks is used to access the data collated in Chapter 3. Through doing this,
the complete set of aerodynamic forces in wind-axes is made available. These forces
can then be rotated to the body axes, and summed with the engine forces. The lookup
table blocks interpolate the data for any value of input. This means that although all
the lookup tables are generated in a piecewise fashion, they interpolations give a good
approximation of continuity. For example, most data is generated at altitude steps of
anywhere from 100m to 1000m, but the lookup table generates values at any point in
between these steps through cubic interpolation. This feature grows in importance
when high order tables are used. The block is actually capable of carrying out an N-D
interpolation, but in this thesis the lookup table of highest order is one of four
dimensions: altitude, mach number, angle of attack, and flap deflection.

The lookup tables shown below in Figure 4.1 implement Equation (3.10): the
calculation of the yawing moment coefficient.
22
1
Cn
1.5
b
Product2
Product1
Product
f(u) Fcn
1-D T(u)
Cn(rud) Lookup
1-D T(u)
Cn(ai l ) Lookup
3-D T(u)
CNR Lookup
3-D T(u)
CNP Lookup
3-D T(u)
CNB Lookup
9
El evDi ff
8
RudDef
7
Vt
6
R
5
P
4
Beta
3
Machno
2
Al t
1
Al pha

Figure 4.1 Lookup Table Example (CN)
All lookup tables can be viewed in Appendix A.

4.1.3 Coefficients to Body Forces
Each force and moment coefficient is first dimensionalised according to the following
equations:


D
L
Y
l
M
N
D qSC
L qSC
Y qSC
L qSbC
M qScC
N qSbC
=
=
=
=
=
=
(4.8)

Where q is the dynamic pressure
2
1
2
V , and the other terms retain their earlier
definitions. These forces are rendered in the wind axes using convention as the guide:
lift is positive upwards, and so is negative in the wind z-axis, while drag is positive
rearwards, and so is negative along in wind x-axis. These equations are implemented
in the Simulink model shown in Figure 4.2.
23
6
Yaw.Mom
5
Pi t.Mom
4
Rol l ,Mom.
3
Li ft
2
Si deforce
1
Drag
1.5
cbar
3
b1
3
b
Y
-C-
Wi ngArea
alpha
beta
Sinv
Si nv
Alpha(deg)
Alt
Machno
Beta(deg)
Vt
Rudder Def
Elev Dif f Def
Elv Pitch
WingFDef
P(deg/s)
Q(deg/s)
R(deg/s)
CD
CY
CL
Cl_
CM
CN
SRC Lookup Tabl e
Reshape1
Reshape
Matri x
Mul ti pl y
Product1
Matri x
Mul ti pl y
Product
N
M
L_
L
f(u)
DynPress
em
em
em
em
D
-1
-L
-1
-D
8
P
7
C
6
Vt
5
Beta
4
Machno
3
Al t
2
AOA
1
rho

Figure 4.2 From Wind to Body Forces
The rotation from wind to body axes is shown below in Figure 4.3.

cos( ) cos( ) sin( ) sin( ) cos( )
cos( ) sin( ) cos( ) sin( ) sin( )
sin( ) 0 cos( )
T
B
W
S



(
(
=
(
(


1
Si nv
si n
si n(beta)
si n
si n(al pha)
u[4]
sb
u[1]*u[3]
sacb
cos
cos(beta)
cos
cos(al pha)
u[3]
cb
u[2]*u[3]
cacb
u[2]
ca
Vert Cat
Matri x
Concatenati on3
Hori z Cat
Matri x
Concatenati on2
Hori z Cat
Matri x
Concatenati on1
Hori z Cat
Matri x
Concatenati on
u
T
Math
Functi on
deg rad
Angl e Conversi on1
deg rad
Angl e Conversi on
0
0
-u[1]*u[4]
-sasb
-u[1]
-sa
-u[2]*u[4]
-casb
2
beta
1
al pha
[3x3] [3x3]
[1x3]
[1x3]
[1x3]
[1x3]
[1x3]
4
4
4
4
4
4
4
4
4
4

Figure 4.3 Rotation From Wind to Body Frame

4.2 Simulation Environment
4.2.1 Atmosphere Model
A model of the International Standard Atmosphere (ISA), from the Simulink
Aerospace Blockset, is used in the simulation to generate all atmospheric parameters.
This model is valid up to altitudes of 20km, and so it is well within its capabilities to
simulate the atmosphere in this thesis.
24

The block is used to generate parameters such as air density and speed of sound.
These parameters are vital throughout the simulation, and allow for incredibly
accurate calculations of dynamic pressure Mach number.

This model of the atmosphere allows for simulations to be carried out at any sensible
altitude. Simulations above the tropopause present no problem whatsoever.

The ISA model is dealt with in full in the US Government document entitled U.S.
Standard Atmosphere
9
.

4.2.2 Wind Turbulence Model
The standard Dryden Wind Turbulence model from the Aerospace Blockset of
Simulink is used to simulate atmospheric turbulence. The Dryden Turbulence model
theorises that turbulence can be modelled by passing white noise through appropriate
filters.

The translational transfer functions from white noise to the velocities in X
e
, Y
e
and Z
e

axes in respectively are as follows:


2
2
2 1
( )
1
1
( )
1
1
( )
1
u
u u
u
v
v v
v
w
w w
w
L
G s
L
V
s
V
L
G s
V
L
s
V
L
G s
V
L
s
V

=
+
=
| |
+
|
\ .
=
| |
+
|
\ .
(4.9)

where the terms are intensity values in the axis denoted by the subscript; the L
terms are turbulence scaling lengths defined as functions of altitude; and V is the
airspeed. For a detailed explanation of the workings of the Dryden Turbulence model,
the reader should consult MIL-F-8785C.
10


The model is perfectly capable of simulating both the translational and rotational
effects of turbulence. In this thesis, however, only the translational effects are
considered. In effect, this assumes that any wind gust occurs over an area much larger
than the aircraft. The SRC is a very small aircraft, with a wingspan of only 3m, and so
this assumption is a good one. Even with this assumption, the wind model still
simulates longitudinal, lateral and vertical wind disturbances, and so represents a very
advanced system.

25
4.2.3 Gravity Model
Implemented within the system is a model of the World Global Survey 84 (WGS84)
11

gravity model from the Mathworks Aerospace Blockset. The basic Taylor-Series
model is used, at latitude of 45

. This model is more accurate than need be: the


simplicity of its inclusion is the only reason it is present. Across altitudes from 0m to
15km, the change in gravitational acceleration is only about 0.5%.

The gravity vector itself lies in the z-axis of the NED frame. To sum this with the
aerodynamic and engine forces, this is rotated into the body frame using a Direction
Cosine Matrix. This is shown in Figure 4.4.

1
XYZwg
0
zi p
-K-
mass
45
l ambda
WGS84
(Tayl or Seri es)
Hei ght (m)
Lati tude (deg)
Gravi ty (m/s^2)
WGS84 Gravi ty Model
U( : )
Reshape
Matri x
Mul ti pl y
Product
Vert Cat
Matri x
Concatenati on
3
hei ght
2
DCM
1
XYZ
[3x1]
3
[3x1]
[3x1]
[3x3]
[3x1] 3

Figure 4.4 Gravity Model and Rotation to Body Frame

4.2.4 Engine Model
The engine of the SRC is modelled using a generic turbofan model from the Simulink
Aerospace Blockset. This model includes a 1
st
order actuator delay with a time
constant of 1s. The maximum static thrust at sea level was set to 3500N.

4.2.5 Flight Condition Calculation
The key flight condition inputs to the aircraft model are altitude, Mach number, angle
of attack and angle of sideslip. A Simulink block that calculates these can be seen in
Figure 4.5.


1
tan ( )
W
U


= (4.10)

1
sin ( )
t
V
V


= (4.11)

t
V
M
a
= (4.12)
26

where is the angle of attack of the aircraft; is the angle of sideslip of the aircraft;
M is the Mach number the aircraft is flying at; U, V and W are the body velocities of
the aircraft; V
t
is the airspeed of the aircraft: the magnitude of the body velocity
vector; and a is the speed of sound.

The angle of attack, sideslip and Mach number are all the result of the aircrafts
passage through the atmosphere. That is, the flight conditions are calculated according
to the velocity vector through the atmosphere. If the atmosphere is calmed, then this
vector is simply the body velocity. However, the turbulent nature of the atmosphere
necessitates the use of a different vector. These wind velocities are generated in the
NED-frame, and so must be rotated using a Direction Cosine Matrix (DCM), which
rotates any vector from the NED frame into the body fixed frame. Using this method,
an accurate calculation of alpha, beta and airspeed can be made. The new velocity
vector is calculated as follows:

N
w B E
D
W
V V DCM W
W
(
(
=
(
(

(4.13)



5
wi ndv
4
al ti tude
3
beta
2
al pha
1
Machno
f(u)
mag(Vb)
rad deg
beta(deg)
f(u)
asi n(V)
atan(u[3]/u[1])
al pha(rad)
rad deg
al pha(deg)
Vt/a (M) f(u)
Vt
Termi nator3
Termi nator2
Termi nator1
Termi nator
Matri x
Mul ti pl y
Product
Height (m)
Temperature (K)
Speed of Sound (m/s)
Air Pressure (N/m^2)
Air Density (Kg/m^3)
ISA Atmosphere Model
-u[3]
Hei ght
Wi nd vel oci ty (m/s)
Angul ar rates (rad/sec)
Al ti tude (m)
Ai rspeed (m/s)
Dryden Wi nd Turbul ence Model
3
DCM
2
Vb
1
Xe

Figure 4.5 Flight Conditions Calculation Block
27
4.2.6 Equations of Motion
The equations of motion are solved using the Simulink block provided with the
Aerospace Blockset. The input to the block is simply the summated body forces. The
parameters specified are the initial conditions: , , ,
e b
X V P , and the mass and inertia
tensor.
8
erates
7
PQRdot
6
PQR
5
Vb
4
DCM
3
eul er
2
Xe
1
Ve
Forces X Y Z (N)
Moments L M N (N-m)
Ve (m/s)
Xe (m)
Euler (rad)
DCM
Vb (m/s)
p,q,r (rad/s)
pdot,qdot,rdot (rad/s^2)
Euler Rates (rad/s)
CUSTOM
Eul er
Angl es
6DoF (Eul er Angl es)
2
body moments
1
body forces

Figure 4.6 Equations of Motion Solver

4.3 Model Verification
This small section is used to demonstrate the instability of the SRC concept.

4.3.1 Lookup Table Data
The pitching moment coefficient is displayed in a 3D plot in Figure 4.7 as it varies
with angle of attack and altitude. It is clear from this plot that 0
M
C

>

. The
requirement for longitudinal static stability is that this derivative be negative. This is
intuitively correct. If 0
M
C

<

, then an increase in angle of attack, reduces the


pitching moment, restoring the aircraft to its original state. A positive value means
that if the aircraft experiences an increase in angle of attack, it will then experience a
pitch-up tendency, moving further from the original state
12
.
28
0
2000
4000
6000
8000
10000
12000
-5
0
5
10
15
20
-0.05
0
0.05
0.1
0.15
0.2
Altitude (m)
Pitching Moment Coefficient
Angle of Attack (deg)
C
m

Figure 4.7 Cm Against Altitude, and Alpha
4.3.2 Poles, Zeros and Eigenvalues
-15 -10 -5 0 5 10
-8
-6
-4
-2
0
2
4
6
8
System: SRClin
Pole : -0.33 + 6.99i
Damping: 0.0472
Overshoot (%): 86.2
Frequency (rad/sec): 7
System: SRClin
Pole : 9.66
Damping: -1
Overshoot (%): 0
Frequency (rad/sec): 9.66
Pole-Zero Map
Real Axis
I
m
a
g
i
n
a
r
y

A
x
i
s

Figure 4.8 A Pole-Zero Map of the Linearised Model
29
Figure 4.8 shows a map of the poles and zeros of the linearised aircraft model. These
results were derived at an altitude of 5000m, a velocity of Mach 0.45, and close to an
equilibrium point. Of note is the pole in the right-half-plane, at 9.66 rad/s. This is a
component of the pitch instability inherent in the aircraft. There is also a pole at a
lower frequency of 0.02 rad/s. The eigenvalues of the system are shown in full in
Table 4-1.

Real Imag
-11.39 0
-0.3299+6.9879i
-0.3299-6.9879i
-0.31235 0
-0.043869 0
-0.00017791 0
0 0
0 0
0 0
0.00017133 0
0.023903 0
9.6612 0
Table 4-1 Eigenvalues of Linear Model

4.3.3 Uncontrolled Simulations
The response shown below in Figure 4.3 is the natural response of the SRC. That is,
there is no kind of control system. This simulation was run at an altitude of 5000m,
and an airspeed of Mach 0.45. The elevon pitch angle was set at a constant of 10
degrees.
30
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
0
5
10
15
20
25
time (s)
A
n
g
l
e

o
f

A
t
t
a
c
k

(
d
e
g
)
Uncontrolled SRC Angle of Attack Response
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
0
50
100
150
200
250
time (s)
P
i
t
c
h

R
a
t
e

(
d
e
g
/
s
)
Pitch Rate Response

Figure 4.9 Uncontrolled SRC Response with Low Elevon Angle
These results simply show the lack of pitch stability in the aircraft. The time to double
amplitude is in the region of 0.1 seconds. An inadequate tail force causes the upward
pitch response. That is, the elevons are set at a pitch angle too low to create the
necessary negative pitching moment, meaning that the aircraft angle of attack
increases.
31
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35
-6
-4
-2
0
2
4
time (s)
A
n
g
l
e

o
f

A
t
t
a
c
k

(
d
e
g
)
Uncontrolled SRC Response with High Elevon Pitch
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35
-120
-100
-80
-60
-40
-20
0
time (s)
P
i
t
c
h

R
a
t
e

(
d
e
g
/
s
)
Pitch Rate Response

Figure 4.10 Uncontrolled SRC Response with High Elevon Angle
The results seen in Figure 4.10 are at the same flight conditions as those in Figure 4.9,
but with an elevon angle of 14. In this state, the total pitching moment is negative,
resulting in a nose-down rotation.
32
5 Controlling the SRC
5.1 The LQ Controller
The linear quadratic optimal control method was selected to achieve the stability and
performance demands of the system. This implementation uses full state feedback,
without any observer design. A brief explanation of the LQR problem follows. For a
detailed analysis, Athans and Falb (1966)
13
is recommended. The linear state space
model of a system takes the form:
x Ax Bu = + (5.1)

The LQ method devises a suitable feedback control law:
u Kx = (5.2)

A schematic is shown below
dx/dt
x
u
A
SRC Model
1
s
Integrator
B
Input
-K
Feedback Control

Figure 5.1 Schematic of State Space System and Controller

This feedback gain, , guarantees the stability of the closed loop system. Such a
control law regulates the states of the system to 0. The linear nature of the system
means that taking an error signal:
K

r
x x x = (5.3)

and then applying this controller gain K, so that
u Kx = (5.4)

regulates the error signal to 0, instead of each state.

The problem, then, is to formulate the gain matrix, . LQ theory dictates that this be
done through defining some quadratic cost function, , and finding a , such that
this cost function is minimised. The cost function is:
K
J K
(5.5)
(
min
T T
J x Qx u Ru
u
= +

)
dt

Where Q and R are diagonal weighting matrices applied to x and u, and are positive
semi-definite and positive definite respectively. K is calculated by solving the
continuous time algebraic Riccati equation for these parameters.

33
5.1.1 Weighting Matrix Selection
Given that effective methods exist which minimise such a quadratic cost function, the
problem is then one of effectively defining the function itself: selecting the Q and R
matrices. Any method for defining these is only a rough guide, and must be refined by
experimentation.

A large value in Q means that the system must expend a large amount of control
energy to regulate the state to which it is associated. Correspondingly, a small value in
Q means that the controller does not apply any considerable control energy to control
this state, and if the Q-value is set to zero for some variable, then its value has no
effect on the cost function, and so the controller need not regulate this state.

The weights in R serve to restrict the amount of control energy that can be used.
Therefore, having low weights in R means that lots of control energy is available, and
that the system will have a relatively ideal performance. However, control energy in
real applications is limited, and so R must be set such that the control inputs are
achievable.

One of the primary methods of deriving suitable Q and R matrices is known as the
Bryson Inverse Square method
14
. In this method, the diagonals of the Q and R
matrices are guided by the following definitions:

2
1
1
:
(max)
n
ii
i
i
Q q
q
=

=
`
)
(5.6)

2
1
1
:
(max)
m
jj
j
j
R r
u
=


=
`

)
(5.7)

where:
Q is an nxn weighting matrix corresponding to the A-matrix
R is an mxm weighting matrix corresponding to the B-matrix
2
(max)
i
q is the maximum acceptable value of the corresponding state
2
(max)
j
u is the maximum acceptable value of the corresponding control input

This method for setting the values of Q means that a small maximum value, after
squaring the inverse, means a large value in Q. Then, to minimise the cost function
the controller has to invest a lot of control energy minimising the state given priority
in Q. With a small maximum value, the situation is reversed, and the controller places
little emphasis on minimising the state. Similarly with R, a small maximum value
means that this input cannot be used to supply a great deal of control energy, with the
converse also being true.

5.1.2 Defining Q
The maximum acceptable deviation values for the states were defined as follows:

{5, 5, 5}
MAX
XYZ =

34
The along-path precision is set at 5m. This should give the system sufficient leeway to
follow the path within an acceptable margin. The cross-path precision is given a
similar priority, as this helps maintain a good level of performance, especially during
windy simulations. Even large gusts fail to move the aircraft more than just a few tens
of centimetres away from its given path. The primary tuning of this parameter was
carried out to give a suitable turning performance. With a higher maximum deviation,
the aircraft would not give a great deal of priority to flying the given pattern, and
loses track of the path. The vertical weight is a compromise. Although a much smaller
deviation would be desirable, this forces the aircraft to expend too much control
energy in windy conditions, exceeding the limitations of the aircraft actuators. A
value of five gives the aircraft a tendency to hold to within perhaps ten metres of the
specified altitude, depending upon the manoeuvre being carried out.

{2, 2, 8}
MAX
UVW =

The weights used in the forward velocity helps maintain a steady flight speed
throughout a manoeuvre. The side velocity value of 2 means that the aircraft spends
only a little effort compensating for wind gusts. Instead, the controller can focus on
other parameters. The value of 8 for the vertical body velocity allows the controller to
set an angle of attack suitable for the flight conditions: desired velocity and reference
altitude.

{1 , 3 ,1 }
180 180 180
MAX

=

The limits for roll and yaw are only for a non-turning flight, or a turn in which the roll
and yaw angle are specified for the whole turn. In the weights above, the system
closely regulates the roll and yaw angle, but allows a reasonable pitch angle so as to
fly at some angle of attack in level flight.
{1 , 3 ,1 }
180 180 180
MAX
PQR

=
The body roll rates have maximum values of 1, 3, and 1 degree per second. These
values are to restrict how vigorously the control system moves the SRC around. These
values help encourage smooth manoeuvres. Again, if a turn is to be carried out, these
limits can be relaxed to allow the aircraft to respond quickly enough. The larger pitch
rate value allows the aircraft to respond quickly to wind disturbances.

5.1.3 Defining R
The R matrix was set as follows:

2
[1500,1000, 2000, 3000, 2000,1000] R

=
These general limits are achievable using the control surfaces on the SRC.

5.2 Applying the LQ Controller
Controlling an aircraft such as the SRC is an extremely complex task. The system has
many non-linearities, which manifest themselves through the lookup tables. As
explained previously, a static instability in pitch is present. Additionally, the tail has a
35
very small moment arm for the control of pitch, and this means that the system has
very little control energy available to maintain stability and performance.

The analysis throughout this section is solely on the higher speeds of flight.
Therefore, the wing flap on the SRC is removed from use and by setting it to a
permanent value of zero.

As stated in earlier parts, the control methods in this thesis are based on linear
quadratic theory. The linear model, in state space form, is x Ax Bu = + . This bears no
similarity whatsoever to the simulation model of the SRC, and so a linearisation
method from the Matlab Control Toolbox was used to derive an appropriate linear
model.

5.2.1 Redefining the System Input
To further simplify the problem, instead of directly attempting to control the rudders,
elevons and throttle, the problem was reduced to controlling the body forces directly
instead, with a complete solution left to a later point. That is, the B matrix was
discarded from any consideration. A new control variable is introduced:
Bu = (5.8)

dx/dt
x
tau
A
SRC Model
1
s
Integrator
-K
Control l er

Figure 5.2 State Space System with Redefined Input

The effect of doing this is that the controller now evaluates the correct forces and
moments necessary to control the aircraft. That is, the input is actually an input of
forces and moments to the SRC. Having a rough knowledge of the limitations of the
control surfaces, the LQ control method can be applied to derive the suitable forces
and moments. With the simplified control problem, applying the LQ optimal control
method previously dealt with gives an effective controller for the aircraft. With this
problem solved, the issue of applying this control law to the actual SRC model arises.
That is, the new problem to be solved is one of control allocation.

5.2.2 Control Allocation
This control allocation function is one that finds the actual control inputs, which
correspond to the desired force. That is, it sets the throttle, elevons and rudder to the
appropriate setting. If the B-matrix is thought of as a mapping from actuator values to
forces, then the control allocation block is a mapping from , the force and moment
inputs, to the actuator values. The solution to the control allocation problem is
actually to make the allocation block the Moore Penrose pseudo-inverse of B:
36
Control Allocation B
+
= (5.9)
the actual control input then becomes
(5.10) u KB B
+
= x

Therefore, the system is properly represented by
dx/dt
x
tau
u
A
SRC Model
1
s
Integrator
B
Input
-K
Control l er
Control
Al l ocati on
Bi nv

Figure 5.3 Schematic of State Space Model with Control Allocation

5.3 Deriving the Linear Model
The control models described are all based on the linear, state space form. The
simulation model of the SRC does not fit into this system, and so must be linearised
before any attempt at control can be made. This is done using the Matlab Control
Toolbox. A separate Simulink model is defined as the target for linearisation. This
block is shown in Figure 5.4, with its internals shown in Figure 5.5. This model does
not include any disturbance, actuators, or real control inputs. Its inputs are simply the
body forces and moments that act on the SRC.
3
mach
2
ssl i p
1
aoa
Termi nator
uin
Xe
Vb
Euler (rad)
PQR
alpha
beta
mach
Li neari sati on Target
6
N
5
M
4
L
3
Z
2
Y
1
X

Figure 5.4 Model Used as Linearisation Target
37
8
states
7 mach
6 beta
5 al pha
4
PQR
3
Eul er (rad)
2
Vb
1
Xe
rad/s deg/s
rotrates
T2
T1
T
Machno
Alt
Alpha
Beta
PQR
XYZ
LMN
SRC NonLi nMod
XYZ
DCM
height
XYZwg
Gravi ty
Xe
Vb
Machno
alpha
beta
altitude
Fl tConCal c
em
Forces X Y Z (N)
Moments L M N (N-m)
Ve (m/s)
Xe (m)
Euler (rad)
DCM
Vb (m/s)
p,q,r (rad/s)
pdot,qdot,rdot (rad/s^2)
Euler Rates (rad/s)
CUSTOM
Eul er
Angl es
6DoF (Eul er Angl es)
1
ui n

Figure 5.5 Internals of Linearisation Target Model
The state space matrices of this model are captured using the Matlab Control
Toolboxs linmod command as follows:
(5.11) [a,b,c,d]=linmod('simmodel',x,u)
where:
a, b, c and d are the state space matrices
simmodel is a string containing the name of the model to be linearised
x is the state vector around which the linearisation should take place
u is the input vector around which the linearisation should take place

5.4 Linear Model Analysis
In order, the states are: X
e
, V
b
, , P: earth position, body velocity, the euler angles,
and the body rotation rates respectively.

5.4.1 The A-Matrix
Here, the A-matrix is analysed in four parts; this helps show the coupling between the
different states. This model was derived at the following flight conditions:


{0, 0, 5000}
{140, 0, 7.5}
{0, 0.05352, 0}
{0, 0, 0}
e
b
X
V
P
=
=
=
=
(5.12)
These conditions lie very close to an equilibrium point.

38
5.4.1.1 X
e
Coupling

(
(
1,4 1,
4
20
4
21
4
21
,4 ,
0 0 0
0 0 0
0 0 0
0 0 1.7249
0 0 5.0169
0 0 9.58
0 0 0
0 0 0
0 0 0
0 0 9.9376
0 0 6.6455
0 0 4.1623
n
e
e
e
b
b
b
n n
a a
X
Y
Z
U e
V e
W e
P e
Q e
a a
R e

(
(
(
(
(

(
(

(

=
(
(
(
(
(

(
(
(


e
e
e
b
b
b
n
X
Y
Z
U
V
W
P
Q
R

( (
( (
( (
( (
( (
( (
( (
( (
( (
( (
( (
( (
( (
( (
( (
( (
( (
( (



The zeros down the first and second columns show an important property of the
system. They show that the X
e
and Y
e
states do not couple into any others. That is, the
location of the SRC over the Earth does not change the behaviour of the system: the
aircraft flies in the same manner no matter where on the Earth it is. With Z
e
, the
negative of altitude, this is not the case. Changes in altitude do have effects on the
other states. Associated with an altitude change are changes in air density and the
speed of sound, therefore there are small yet considerable effects on the aircraft as it
climbs or descends through the atmosphere.

The negative values in the body velocity rows show that an increase in Z
e
, that is a
decrease in altitude, results in a deceleration. So the increases in drag that are
associated with the thickening of the air, have a damping effect on the velocity of the
aircraft. That is not to say that diving slows, and climbing quickens, the SRC. This
will be evident in the analysis of the Euler angle columns.

39
5.4.1.2 V
b
Coupling
1
1,1 1,3 1,6 1,
2 1
2 2
18 2 17
,1 ,3
9.9857 0 0
0 1 0
5.3494 0 9.9857
2.5309 0 4.9721
5.2196 9.6673 4.2001
5.7208
n e
e
e
b
b
b
n n
a a e a X
Y
e e Z
e e U
e e e V
e W
P
Q
a a
R




(
(
(
(

(

(
(

(

(
=
(
(
(
(
(
(
(
(
(


2
17 1 16
2 1
17 1 16
,9 ,
0 1.2426
0 0 0
0 0 0
0 0 0
6.326 5.3811 7.7633
4.4217 0 7.9314
2.6496 3.2114 3.2516
e
e
e
b
b
b
n n
a
n
X
Y
Z
U
V
W
P e e e
Q e e
R e e e a a




(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(

(
(
(
(
(

(

(



(
(
(
(
(
(
(
(

Above, it is seen that the Earth-position vector is heavily dependant on the body
velocities. X
e
is not a direct integration of V
b
, however, since a rotation matrix from
body to earth-axes must be incorporated. That is,
n
e b b
X R V =

. The damping effects of


velocity increases are generally evident in the negative values in the UVW rows. The
important coupling of velocity to rotation rates is clear in the PQR rows.

Ignoring the very small values, and instead concentrating on the large ones, it can be
seen that an increase in U
b
causes an increase in pitch-rate. This is caused by the
increase in pitching moment. An increase in V
b
, the sideward body velocity, causes
both a negative roll, that is left wing downwards, and a positive yaw, that is nose
right. The tail of the SRC causes these effects. A sideward velocity means that the
airflow over the tail rolls the aircraft right, and effects a yaw towards the wind:
weathercock stability. That is, a positive sideslip produces a positive yawing moment,
and hence and acceleration in yaw.

40
5.4.1.3 Euler Angle Coupling
5
1,1 1,6 1,9 1,
,1 ,6 12,9 ,
0 3.7639 0
7.5 0 140.2
0 140.2 0
0 9.7768 0
9.7768 0 0
0 0.52375 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
n e
e
e
b
b
b
n n n
a a e a a X
Y
Z
U
V
W
P
Q
a a a R

(
(

(
(

(

(
(
(

(
=
(
(
(
(
(
(
(
(
(


e
e
e
b
b
b
n
a
X
Y
Z
U
V
W
P
Q
R

(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(


The coupling of the euler angles to the position vector expresses how changes in the
orientation of the aircraft affect the Earth-axes position vector. That is, changing the
aircraft orientation alters the velocity vector of the aircraft. The UVW rows include
the gravity model of the simulator rotated into the body frame. For instance, a positive
roll, right wing down, induces a starboard acceleration. A pitch up maneuver induces
a rearward acceleration. The yaw angle has no bearing on the gravity vector, and so
the cells corresponding to UVW are zero.

5.4.1.4 PQR Coupling
1,1 1,9
2
2
2
1 1
1
12,1 12,9
0 0 0
0 0 0
0 0 0
0 7.4965 0
7.5535 0 1.4
0 1.3993 0
1 0 5.3571
0 1 0
0 0 1.0014
7.3219 0 2.2741
0 4.8091 0
3.02
e
e
e
b
b
b
a a X
Y
Z
U
e V
e W
e
e e P
e Q
a a R

(
(
(
(
(

(
(

(
(
=
(
(
(
(
(
(

(

(
(


1 1
0 1.4346
e
e
e
b
b
b
X
Y
Z
U
V
W
P
Q
R e e


(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(




The rows corresponding to UVW show how the body velocities change with pitch
rates. Importantly, a pitch rate has a very large, positive, influence on the vertical
body velocity, W
b
, and a negative influence on the forward body velocity, U
b
. This
means a positive pitch rate effects large increases in angle of attack, and decreases in
forward velocity. Similarly, yaw and roll rates influence the side velocity, V
b
. A
positive yaw rate gives a negative sideward acceleration, and a positive roll rate gives
41
a positive sideward acceleration, both are intuitively correct. A positive yaw rate
means that the wind vector is now pointing at the aircraft from its port side, and so the
aircraft has a negative sideslip into the wind, while a positive roll rate means that the
aircraft will experience some acceleration to starboard.

5.4.2 B-Matrix Analysis
It should be carefully noted that this B-matrix is not the same B-matrix as in Figure
5.3, but is the input matrix to the linear target system.

3 3
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
1.4286e-003 0 0 0 0 0
0 1.4286e-003 0 0 0 0
0 0 1.4286e-003 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 5.3004 0 2.2201
0 0 0 0 2.2105 3 0
0 0 0 2.2201
e
e
e
b
b
b
X
Y
Z
U
V
W
P e e
Q e
R e

(
(
(
(
(
(
(
(
(
=
(
(
(
(
(
(
(

(
(

3 3
0 2.4258
X
Y
Z
L
M
N
e

(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(

(
(
(
(
(


The above system is intuitively correct. The forces induce only translational
accelerations, and the moments induce only rotational accelerations. The cross
couplings in the moment of inertia matrix are evident.

5.5 Input Matrix Generation
The actual input to the system, B, consisting of rudder, elevon and throttle inputs, is
generated in an almost identical manner to the A-matrix. Another Simulink model is
defined as a linear target model. This model is displayed in Figure 5.6 and Figure 5.7.
2
l mn
1
xyz
u
xy z
lmn
i nputtarget
1
u

Figure 5.6 Input Target Linearisation Block
42
2 l mn
1 xyz
rad/s deg/s
rotrates
T3
T2
T1
T
Machno
Alt
Alpha
Beta
PQR
ControlInpts
XYZ
LMN
SRC NonLi nMod
Output Poi nt1
Output Poi nt
Input Poi nt
XYZ
DCM
height
XYZwg
Gravi ty
Xe
Vb
Machno
alpha
beta
altitude
Fl tConCal c
Forces X Y Z (N)
Moments L M N (N-m)
Ve (m/s)
Xe (m)
Euler (rad)
DCM
Vb (m/s)
p,q,r (rad/s)
pdot,qdot,rdot (rad/s^2)
Euler Rates (rad/s)
CUSTOM
Eul er
Angl es
6DoF (Eul er Angl es)
1
u

Figure 5.7 Internals of Input Linearisation Target Block
No actuators are present in this system: they are considered to be of infinite speed.
The engine thrust is approximated by a variable gain, which produces a thrust from 0
to 4000N. The linear state space model is again derived through the use of the linmod
command. Of the state space matrices, A, B and C are discarded. The D-matrix
provides a matrix of the direct feedthrough effects of the inputs: that is, the force
effects of actuator position. It is a transfer from the actuator positions, to force and
moment outputs. An example of this linearisation, taken at the flight conditions as in
(5.12), is now given.

5.6 B-Matrix Analysis

0 7.4026 7.4026 4000
166.41 0 0 0 rud
0 141.53 141.53 0 left elv
0 71.751 71.751 0 right elv
0 114.26 114.26 400 throttle
178.57 8.3345 8.3345 0
X
Y
Z
L
M
N
( (
( (
(
( (
(
( (
(
=
( (
(
( (
(
( (


( (


(5.13)

The B-matrix above shows the effects that each control input has on the SRC body
forces. The engine, being located ten centimeters below the center of gravity, has both
a body force and moment. The forces act positively along the x-axis, while the
moment gives a positive pitch-up moment: a moment about the y-axis. The rudder has
an effect on the side-force, and yawing moment. The model for the elevons is rather
advanced. An elevon deflection produces considerable forces and moments in five of
the six degrees of freedom. The most important of these are the lifting force, pitching
moment, and rolling moment. Drag effects on the x-axis, and yawing effects through
the N-moment are all present.

43
5.7 Pseudo-Inverse of B
The control allocation block, as explained earlier, is to convert from , the required
forces and moments, to u, the actual input to the system. This is done by taking the
pseudo-inverse of B at the Matlab command prompt. That is

1
( )
T
C B
C B B B
+
T
=
=
(5.14)
Matlabs pinv command carries this out effectively, as follows
( ') ' C pinv d = (5.15)
The pseudo inverse of the B-matrix shown in (5.13) is:
(5.16)
4 2
0 0 0 9.7656 0 1.5625
5 4 3 3 4
6.1035 9.7656 3.9063 7.0801 9.7656 1.4648
5 4 3 3 4
6.1035 9.7656 3.9063 7.0801 9.7656 1.4648
4 3 3
2.4414 0 1.9531 0 1.9531 0
e e
e e e e e e
e e e e e e
e e e
B
+

(
(
=
(
(

3
3


This matrix, when the product with the force input is taken, produces the required
inputs to achieve those forces. The problem with this method is that it is not entirely
mathematically sound. The goal here is to generate six unique outputs: X, Y, Z, L, M
and N; using only four controls: rudder, left and right elevons, and throttle. That is,
the system is underactuated for the set control goals.

In mathematical terms, the B matrix has rank 4. There is no way to generate six
independent values from this matrix. In cases where four outputs are required, the
problem is fully-actuated. That is, there is a unique solution. Where there are more
inputs than terms to be controlled, the system is over-actuated. In this situation,
there is more than one solution to each desired output. This allows for the use of
optimisation methods. Both are well-defined and solvable problems. However, the
problem in an underactuated system is that there is no guarantee of a solution. The
best that can be achieved is a closest match.

Without a redesign of the solution to the problem of controlling the aircraft, using the
method described in this section is the best available. The problem of underactuation
can be avoided by directly controlling the system shown in Figure 5.1. That is, the
control problem should be solved without the intermediate step described in 5.2.1.

5.8 Simulink Model of Controller
The control system was integrated with the aircraft model to good effect. In order to
take full advantage of the linearisation tools available, a dynamic linearisation
program was coded. This is included in the Appendices as srclineariser.m. The
purpose of this code is to first update the linear state space model by repeating the
linearisation procedure described in (5.11) at the most recently known flight
conditions. A new controller is then calculated for this updated linear model. The
effect of this method is to allow a simulation to take place across a very varied set of
flight conditions. For example, the linear controller generated at some flight level will
lose its effectiveness, and perhaps fail to control the system, if these conditions are
departed from significantly.

44
This architecture means that a simulation can take place across a wide range of
airspeeds, and altitudes.

Presently the model generates a new controller every 0.4 seconds. However, this level
of computational intensity is entirely inappropriate when the aircraft reaches a steady
state. Future work may be to define some costing function which calculates the
changes in flight condition. Only once this conceived function indicates that a serious
departure from the initial flight condition has occurred, will the linearisation take
place again. This would broadly enhance the computing speed of the model.
45
6 Simulation Results
Chapter 5 detailed suitable techniques for controlling the aircraft. These methods are
now put to the test, and the results are presented and analysed in detail. The results
will be presented in different stages. These stages progress from the simplified case of
controlling the SRC using instantaneous forces, to controlling instantaneous actuators,
through to controlling the advanced case in which realistic actuators are used. As far
as possible, results are analysed in a calm atmosphere, followed by analysis in the
presence of wind gusts.

Simulations of the linear state space model are not presented. The aircraft model loses
significance with deviation from the original flight conditions, necessitating the use of
the non-linear model. The results from the linearised model are of no value. Effects
such as negative pitch angles to hold a constant altitude happen. These results are of
no value to this thesis.

6.1 Force Input Controller
This system, as explained in 5.2, inputs forces directly, and so makes the problem of
controlling the SRC far simpler. That is, the controller does not need to generate the
input values to the ailerons or rudders or throttle: it creates the forces directly.

6.1.1 Altitude Hold
0 5 10 15
4994
4996
4998
5000
5002
Altitude Holding M=0.45
time (s)
A
l
t
i
t
u
d
e

(
m
)
0 5 10 15
1.5
2
2.5
Pitch Angle
time (s)
T
h
e
t
a

(
d
e
g
)
actual
reference

Figure 6.1 Altitude Hold of Force Controlled System
46
-2
Q=diag([5 5 5 2 2 8 1*pi./180 3.*pi./180 1*pi./180 1.*pi./180 5.*pi./180 1.*pi./180] )
-2
R=diag([1500 1000 2000 3000 2000 1000] )

For this manoeuvre, the weighting matrices were set to those given above.

The simulation shown in Figure 6.1 is one in which the aircraft attempts to maintain a
steady altitude and airspeed. As indicated by the legend, the reference value is in
green, while the blue is the actual simulated performance. Stability of the aircraft
presents little problem in this simple example. The aircraft takes a short time to settle
to a steady condition, and then holds altitude without problem. The steady state error
is roughly 5m, and does not tend to zero with time, like it would in the linear system.
This problem arises from errors within the linearisation procedure, and is a
disappointing result. That stated, a deviation of 5m out of 5000 is tolerable, and
should be solvable in future work.

0 5 10 15
4994
4996
4998
5000
5002
Altitude response in presence of no wind/ moderate gusts
time (s)
a
l
t
i
t
u
d
e

(
m
)
0 5 10 15
1
1.5
2
2.5
3
Pitch angle repsonse in presence of no wind/ moderate gusts
time (s)
T
h
e
t
a
/

p
i
t
c
h

a
n
g
l
e

(
d
e
g
)
calm
realistic
calm
realistic

Figure 6.2 Comparison of Altitude Hold in Calm and Windy Conditions
Figure 6.2 displays the results of the identical simulation in the presence of moderate
Dryden gusts, with the new results being in red. The behaviour of the aircraft in a
perturbed atmosphere is broadly similar to that in a calm atmosphere. The same
general altitude errors are present, with wind gusts generating additional errors. The
control system endeavours to cancel these, as is evident in Figure 6.3
47
0 5 10 15
1.5
2
2.5
3
3.5
Angle of attack repsonse to wind gusts
time (s)
A
O
A

(
d
e
g
)
0 5 10 15
-1
0
1
2
3
Wind gusts
time (s)
W
w
-

v
e
r
t
i
c
a
l

w
i
n
d
g
u
s
t

v
e
l
o
c
i
t
y

(
m
/
s
)
calm
windy

Figure 6.3 The Effects of Vertical Gusts on Angle of Attack
A positive (downwards) gust of wind reduces the angle of attack of the aircraft,
lowering the production of lift. To counteract this, the control system commands a
larger pitch angle, which is seen in Figure 6.3. The effect of wind on angle of attack,
and hence lift, is most pronounced at roughly 9 seconds. A 2 m/s gust reduces the
angle of attack by over half a degree. The control system deals with these
disturbances very well. Even with these moderate gusts, the aircraft does not deviate
from the unperturbed atmosphere performance by any more than a metre.

6.1.2 Constant Descent
These simulations are of the aircraft being commanded to carry out a constant rate
descent of 10 m/s. A steady, level flight time of 15 seconds precedes this descent, to
allow the control system to filter out any nonlinear transients. After a 400 second
dive, the aircraft levels itself out again.

48
0 50 100 150 200 250 300 350 400 450
0
1000
2000
3000
4000
5000
6000
A
l
t
i
t
u
d
e

(
m
)
time (s)
Controlled Descent
0 50 100 150 200 250 300 350 400 450
-2
-1
0
1
2
3
4
Pitch angle during descent
P
i
t
c
h

a
n
g
l
e

(
d
e
g
)
time (s)

Figure 6.4 Pitch Angle During Descent
In Figure 6.4, the system responses are just as expected. Once the descent is
commanded at t=15s, the aircraft commands a pitch down attitude, and follows the
reference signal closely. The actual error is too small to see on such a large scale, and
so a zoomed version is shown below in Figure 6.5. After the dive, the aircraft pitches
up and resumes level flight. Pitch performance during this manoeuvre is perfectly
acceptable, and there is almost no overshoot. It should be noted that the pitch angle
gradually decreases as the aircraft attempts to maintain both a constant descent and a
constant forward velocity.

49
0 50 100 150 200 250 300 350 400 450
-15
-10
-5
0
5
10
Altitude error during constant descent
E
r
r
o
r

i
n

a
l
t
i
t
u
d
e

(
m
)
time (s)

Figure 6.5 Altitude Error During a Constant Rate Descent
From Figure 6.5, it can be observed that the aircraft does not deviate from its defined
trajectory by any more than ten metres. The error during the altitude hold at the end of
the descent is lower than at the start, and so it might be surmised that the error has
some root in a problem with z-axis coupling.

6.1.3 Thrust Requirements

Figure 6.6 shows the effect of a descent manoeuvre on the thrust requirements.
Descending into the denser atmosphere increases drag, and hence the thrust
requirements increase to counteract this.

50
0 50 100 150 200 250 300 350 400 450
0
1000
2000
3000
4000
5000
6000
time (s)
A
l
t
i
t
u
d
e

(
m
)
Altitude against time
0 50 100 150 200 250 300 350 400 450
-500
0
500
1000
1500
2000
2500
time (s)
T
h
r
u
s
t

D
e
m
a
n
d
s

(
N
)
Thrust against time

Figure 6.6 Changes in Thrust Demands after a Change in Altitude
The thrust requirement for level flight at 5000m is roughly 1500N. During the
descent, less is required, since the gravity vector aids the aircraft slightly. The thrust
demands gradually increase, until they have returned to 1500N during descent at
1000m. Then, to maintain level flight at this lower altitude, a thrust of 2000N is
required.

6.2 Instant Actuators
The model with instant actuators, summarised in chapter 5, applies allocation methods
to the functioning force input controller. The controller still fundamentally controls
the system by calculating the required forces and moments, but these forces and
moments are produced by setting the system input to an estimate of the correct rudder,
elevon and throttle inputs. That is, the controller calculates which actuator inputs most
closely match the force and moment demands.

6.2.1 Altitude Hold
This altitude hold manoeuvre is performed with the weighting matrices set as follows:


Q=diag([5 5 5 2 2 8 1*pi./180 3.*pi./180 1*pi./180 1.*pi./180 5.*pi./180 1.*pi./180].^-2);
R=diag([1500 1000 2000 3000 2000 1000].^-2);
51
0 10 20 30 40 50 60
4998
5000
5002
5004
5006
5008
5010
time (s)
A
l
t
i
t
u
d
e

(
m
)
Instant Actuators Altitude Hold
actual
reference

Figure 6.7 Altitude Hold using Realistic Inputs
Figure 6.7 again shows an altitude hold at 5000m in altitude, and at a velocity of
about 140 m/s, or Mach 0.45. It should be viewed in comparison to the earlier Figure
6.1. The addition of the control allocation block does not fit with the system as
seamlessly as anticipated. Instead, the aircraft tends to a different equilibrium point.
Instead of an error in altitude of 10m, the error is now roughly +9m. Additionally,
the time required to settle to this state has increased dramatically, from about 5
seconds to 30 seconds. The pseudo inverse of the input matrix clearly has a serious
impact on the control system.

52
actual
reference
0 10 20 30 40 50 60
4995
5000
5005
5010
5015
5020
5025
time (s)
A
l
t
i
t
u
d
e

(
m
)
Instant Actuators Altitude Hold Performance in Turbulent Atmosphere
0 10 20 30 40 50 60
-2
-1
0
1
2
3
time (s)
V
e
r
t
i
c
a
l

W
i
n
d

V
e
l
o
c
i
t
y

(
m
/
s
)
Vertical Wind Velcities
actual
reference

Figure 6.8 Altitude Hold with Realistic Input in Windy Conditions
The response of the same system to a heavily disturbed atmosphere is very revealing.
Vertical wind velocities are shown here positive upwards. Upward gusts of air
increase the aircrafts angle of attack, causing large increases in lift, and therefore
altitude. The control system struggles to allocate sufficient control energy to pitch
down and keep the aircraft close to its desired state. The lengthy upwards gusts shown
in Figure 6.8 move the aircraft as much as 25 metres from its reference altitude.
Downward gusts, evident for the first 20 seconds or so, are far easier to control, given
the aircrafts natural pitch-up tendency. These downward gusts do not move the
aircraft far from its desired location. The upward gusts towards the end of the
simulation make the aircraft balloon up by a maximum of 25m.

6.2.2 Constant Descent

53
0 20 40 60 80 100 120 140
4650
4700
4750
4800
4850
4900
4950
5000
5050
time (s)
A
l
t
i
t
u
d
e

(
m
)
Constant Descent, with Perfect Actuators
Actual
Reference

Figure 6.9 Descent of Actuated System
Figure 6.9 shows the performance of the SRC in response to a commanded descent of
2.7 m/s (500ft/min). Again, the blue represents a calm atmosphere. The error signal is
shown below in Figure 6.10.
54
0 20 40 60 80 100 120 140
-5
0
5
10
15
20
25
30
35
40
45
time (s)
A
l
t
i
t
u
d
e

E
r
r
o
r

(
m
)
Error in altitude during descent

Figure 6.10 Error During Descent of Instantly Actuated System
The SRC takes a small time to respond fully to the required descent. This lag
introduces the error of just over 40m. As the control system catches up, this error
tends towards a smaller value, but does not reach this point before the end of the
simulation. A solution could be to generate a smoother reference signal. Passing the
reference signal through a low pass filter would achieve this.

55
0 20 40 60 80 100 120 140
4600
4700
4800
4900
5000
5100
time (s)
A
l
t
i
t
u
d
e

(
m
)
Constant Descent
0 20 40 60 80 100 120 140
-3
-2
-1
0
1
2
time (s)
V
e
r
t
i
c
a
l

W
i
n
d

V
e
l
o
c
i
t
y
Wind Gusts over time
Windy
Reference

Figure 6.11 Descent of Actuated System in Presence of Wind
Figure 6.11 shows the same simulation, but carried out in the presence of wind
disturbances. Figure 6.12 shows the size of the error in altitude more clearly.
0 20 40 60 80 100 120 140
-10
0
10
20
30
40
50
60
time (s)
A
l
t
i
t
u
d
e

e
r
r
o
r

(
m
)
Error in altitude during descent (with wind)

Figure 6.12 Error During Descent in Wind of Actuated System
56
It is perfectly clear that the control system struggles to follow the reference trajectory.
Errors as large as 60m are evident in Figure 6.12. In a descent of only 300m, these
errors are extremely large.

6.2.3 300 Second Constant Rate Turn
For this manoeuvre, the Q weighting matrix has to be redefined. Specifically, the
weights associated with roll angle, yaw angle, and vertical body velocity. These allow
the control system to set a suitable roll angle, and pull up to a larger angle of attack in
order to follow the turn performance.

-2
Q=diag([5 5 5 2 2 10 20*pi./180 10.*pi./180 5*pi./180 10.*pi./180 .5.*pi./180 5.*pi./180] )

Here the results for a constant rate turn of period 300 seconds are presented. This
relaxed turn is an important result for a number of reasons. Primarily, it shows the
aircraft performing a complex manoeuvre accurately and with coordination.

-2000 0 2000 4000 6000 8000 10000 12000 14000
-5000
0
5000
10000
Ye (m)
X
e

(
m
)
A 300 second turn at Mach 0.45
Actual
Reference

Figure 6.13 A 300 Second Coordinated Turn

The tracking of the aircraft through this manoeuvre is very good. The large scale in
Figure 6.13 cannot expose the errors properly, and so these are shown in Figure 6.14.

57
0 50 100 150 200 250 300
-10
-5
0
5
10
time (s)
Y
e

E
r
r
o
r

(
m
)
Error in Ye (East)
0 50 100 150 200 250 300
-10
-5
0
5
10
Error in Xe (North)
time (s)
X
e

E
r
r
o
r

(
m
)

Figure 6.14 Error During Coordinated Turn
During this complex manoeuvre, the aircraft never deviates from its desired path by
any more than ten metres on any one axis. The absolute course error is displayed in
Figure 6.15. It should be noted that Simulink introduces a momentary error in Xe due
to a switching mechanism in the reference value generator, and this is present in some
plots at the 15-second mark. It is a fleeting error, and is only present for a single
iterative step.

58
0 50 100 150 200 250 300
0
2
4
6
8
10
12
Absolute Course Error during turn
time (s)
A
b
s
o
l
u
t
e

E
r
r
o
r

(
m
)

Figure 6.15 Absolute Error During 300 Second Coordinated Turn
The aircraft takes a rather long time to settle down into a steady flight condition. The
roll, pitch and yaw are all underdamped, and oscillations do not fade into
insignificance for almost 90 seconds. The disappointing oscillatory modes are evident
in Figure 6.16. After settling down, the aircraft turns with a constant roll angle of
around 19 degrees, and a pitch angle of 2 degrees.

59
0 50 100 150 200 250 300
-20
0
20
40
time (s)
/ Roll angle during turn


(
d
e
g
)
0 50 100 150 200 250 300
0
1
2
3
4


(
d
e
g
)
time (s)
/ Pitch angle during turn
0 50 100 150 200 250 300
-200
0
200
400
time (s)
Yaw angle during turn


(
d
e
g
)

Figure 6.16 Euler Angles During 300 Second Coordinated Turn

6.3 Realistic Actuators
This system takes the best-case scenario described above, and introduces realistic
actuator performance. These actuators are both rate and position limited. The elevon
and rudder rates were limited to 120 deg/s. Such an actuator is used in the USAF F16,
so no exceptional optimism was used in the actuator specifications. Since the aircraft
is so small, actuators are available which actually have vastly higher limits. The
position of the rudder is limited to 20 degrees in either direction, while the elevons
have limits of 30 degrees, again in either direction.

6.3.1 Altitude Hold
Here the system again attempts to hold an altitude of 5km. The assumption is that the
actuators can react sufficiently fast enough so that the performance is similar to that
shown in Figure 6.7.
60
0 10 20 30 40 50 60
4998
5000
5002
5004
5006
5008
5010
time (s)
Realistic Actuators Altitude Hold
A
l
t
i
t
u
d
e

(
m
)

Figure 6.17 Realistic Actuator Altitude Hold
Figure 6.17 shows the performance of the system with realistic actuators. The results
closely reflect those seen in Figure 6.7: the results with instant actuators. This shows
that, in this case, the actuators respond quickly enough so as not to alter the
performance.
61
6.3.2 Descent Performance
0 10 20 30 40 50 60
4860
4880
4900
4920
4940
4960
4980
5000
5020
time (s)
A
l
t
i
t
u
d
e

(
m
)
Descent Performance of Realistic Actuators

Figure 6.18 Realistic Actuators 2.7m/s descent
Figure 6.18 shows the simulation results of the descent performance of the system
with realistic actuators. The error is quite considerable, and is plotted in Figure 6.19.
62
0 10 20 30 40 50 60
-5
0
5
10
15
20
25
30
A
l
t
i
t
u
d
e

E
r
r
o
r

(
m
)
time (s)
Error in Altitude During Descent

Figure 6.19 Altitude Error During Descent in Realistic Actuated System
The results in Figure 6.19 are broadly comparable to those found in the system with
instant actuators: these results are seen in Figure 6.10. Again the results are hardly
acceptable. The errors are extremely large, and it is blatantly obvious that the control
system is inadequate in dealing with even a shallow descent with good accuracy.
63
7 Improving the Control System
The control system is by no means close to perfect. This chapter deals with the
fundamental problems in the design of the control system detailed in the previous
chapter. That is, the serious flaw of steady state errors, even in simple regulation
problems. The controller is improved by augmenting it with integral action. This new
method theoretically should cancel steady state errors, and also improve the rejection
of constant and slowly varying disturbances. The technique was derived from Fossen
(2002)
15
.

7.1 Applying Integral Action to the LQ Controller
As stated, the standard state space equations are:

x Ax Bu = + (7.1)
y Cx = (7.2)

To add integral action to the system, a new variable, z, is conceived, where:

z Cx = (7.3)
z = y

(7.4)

That is, z is the integral of y. C is an output matrix that defines those states that are to
be integrated. The state space model is now redefined to include these integral states:


a a a a
x A x B u = + (7.5)

Where the subscript a denotes a variable augmented in the system with integral
action. The new state variable x
a
is a merging of the original state variable x, and the
integral of this state, z:

a
z
x
x
(
=
(

(7.6)

Therefore, the new state space matrices are as follows:


0
0
a
C
A
A
(
=
(

(7.7)

0
a
B
B
(
=
(

(7.8)

An LQ controller can now be developed for the new system. This controller now
works to reduce the integral states in addition to reducing the original states. That is,
the new quadratic performance function is:

(7.9)
(
min
T T
a a a
J x Q x u Ru
u
= +

)
dt
64

It can be shown that the solution to this is:

(7.10)
1 T
a
u R B P x

=
a

where P

is the solution to the algebraic Riccati equation. In the interests of analysing


this matrix, it can be subdivided into four parts:


11 12 1
21 22
0 P P z
u R
P P B x

( (
=
(
(
( (

T
x
(7.11)
(7.12)
1 1
12 22
T
u R B P z R B P

=

i p
u k z k = (7.13)

(7.13) shows that the redesigning of the controller just summarised means that the
controller now takes the form of a Proportional-Integral (PI) controller.

The main problem in the system has been error in altitude. To solve this, the only
integral state added to the system is altitude. The method of doing this can be seen in
the intsrclineariser.m code, which is included in Appendix C.

7.2 Improved Controller Simulation Results
7.2.1 Altitude Hold
0 10 20 30 40 50 60
4997.5
4998
4998.5
4999
4999.5
5000
5000.5
time (s)
A
l
t
i
t
u
d
e

(
m
)
Instant Actuator with Integral Action Altitude Hold Performance
0 10 20 30 40 50 60
-0.5
0
0.5
1
1.5
2
2.5
time (s)
A
l
t
i
t
u
d
e

E
r
r
o
r

(
m
)
Error in Altitude
actual
reference

Figure 7.1 Altitude Hold Performance Instant Actuators
65
The effects of integral action are immediately visible in the altitude regulation results
displayed in Figure 7.1. The error in altitude, previously present in the steady state
case to an extent of around 10m, now decays with time to zero. This allows the
controller to perfectly follow a steady altitude value, and is a significant improvement
on the first design.

0 10 20 30 40 50 60
4996
4998
5000
5002
5004
5006
time (s)
A
l
t
i
t
u
d
e

(
m
)
Instant Actuators with Integral Action Altitude Performance in Windy Conditions
0 10 20 30 40 50 60
-2
-1
0
1
2
3
time (s)
-
V
e
r
t
i
c
a
l

W
i
n
d

V
e
l
o
c
i
t
y

(
m
/
s
)
Vertical Wind Velcity against Time

Figure 7.2 Integral Action Altitude Hold in Windy Atmosphere
In Figure 7.2 it can be seen that the integral action is of only modest benefit in the
presence of fluctuating wind. This is to be expected: the addition of integrator states
only compensates for steady state, or at most slowly varying, disturbances. Wind
speeds tend to fluctuate rapidly, as is evident from the lower plot of Figure 7.2. This
means that the disturbance has already changed before the controller compensates for
its presence. The new controller does follow the altitude more closely than the initial
design.
66
7.2.2 Constant Descent
0 50 100 150 200 250 300 350
4000
4200
4400
4600
4800
5000
5200
time (s)
A
l
t
i
t
u
d
e

(
m
)
Instant Actuators with Integral Action Descent Performance
0 50 100 150 200 250 300 350
-6
-4
-2
0
2
4
time (s)
A
l
t
i
t
u
d
e

E
r
r
o
r

(
m
)
Error in Altitude During Descent
actual
reference

Figure 7.3 Constant Descent Maneouvre
Figure 7.3 shows the performance of the improved control system during a descent
manoeuvre. These results should be directly compared to those shown in Figure 6.5.
In the basic control system, the altitude error ranged from +10m to 10m. Across the
descent manoeuvre, it lay at around +10m. The integral action improves this
performance drastically. The maximum error seen is 4m. During the descent itself,
the altitude error is filtered out completely. The commanded change in altitude is slow
enough that the integrator can compensate for any error.
67
0 50 100 150 200 250 300 350
4000
4200
4400
4600
4800
5000
5200
time (s)
A
l
t
i
t
u
d
e

(
m
)
Instant Actuator Augmented by Integral Action- Constant Rate Descent Through Windy Atmosphere
0 50 100 150 200 250 300 350
-6
-4
-2
0
2
4
6
time (s)
A
l
t
i
t
u
d
e

E
r
r
o
r

(
m
)
Error in Altitude During Descent Through Windy Atmosphere

Figure 7.4 Descent Through Windy Atmosphere with Integral Action
The results in the lower plot of Figure 7.4 should be viewed in comparison with those
in Figure 6.10. In the first design of the controller, errors of over 40m were observed
in the constant descent manoeuvre. After the redesign, these errors have been reduced
to only a few metres. The maximum deviations are +4m and 6m. Taking the mean
magnitude of the deviations gives a value of 1.67m. This, viewed in comparison to the
mean of 35m in the controller with no integral action, is a fantastic improvement.
68
8 Graphical Output
Were simulation results to be present solely in the form of numerical data and plots, a
fine opportunity would be missed. A goal of this thesis was to create a simple and
effective 3D display of the SRC, and also to integrate this with the simulation, or at
least the simulation output data, if a simulation does not run in real time.

The language chosen to code such a tool was the Virtual Reality Markup Language
(VRML). This tool is widely used for such purposes. Its primary advantage is its
portability. The VRML 97 standard is compatible with almost any Internet browser.
This means that the simulation results can be displayed on any modern computer
without any proprietary software. The model is platform independent, and so can be
run on a computer operating under Windows, Linux, MacOS, or any other modern
operating system.

8.1 Creating the VRML Model
The tool used to create the 3d environment was VR Builder 2, which was produced by
Integrated Data Systems.

The SRC model itself is defined in several parts. An approximation of the wing/body
was made by defining it as a flattened sphere. The actual VRML code is shown in full
in Appendix F. The other shapes: the horizontal and vertical tails are both modelled as
flat polygons. The vertical tail includes a section designated for use as a rudder, and
the horizontal tail is all-moving. These features allow for an accurate display of the
flight conditions of the SRC to be made.

The VR Toolbox in Simulink allows a Matlab variable to be used to control the
properties of the graphics model. For example,
e
X can be passed into the 3D
rendered in order to control the translation of the aircraft model. Similarly, the rudder
or elevon angles can be passed to control those sections of the model. The angle
system used in the VRML language is of an axis-angle type, whereas the Simulink
model uses Euler angles to express orientation. Therefore an intermediate conversion
needs to take place. Other than this minor hindrance, the simulation models states
can directly be passed directly into the VRML World.

This effective integration of the two means that simulation results can quickly and
effectively be displayed automatically through the use of a single program.

69
8.2 Screenshots

Figure 8.1 VRML Model of SRC
Figure 8.1 shows a single screengrab of the SRC model.
70
71
9 Future Work
Although this thesis constitutes an in-depth study into the Simicon Rotor-Craft, there
is a considerable amount of future work to be done.

9.1 Aircraft Model
The aircraft model developed in this thesis is of a good quality. However, the
accuracy of the results can only be viewed as suspect. The software used in this thesis
to calculate the aerodynamics of the SRC excels in predicting the parameters of a
standard aircraft shape. For example, the Digital DATCOM is able to generate the
results for a Cessna 172R, a very conventional aircraft shape, with a high accuracy.
Using the software to simulate an irregular aircraft shape, such as that of the SRC,
leaves open the possibility of vast inaccuracies. The software was not designed with
such a task in mind.

The further development of a concept as advanced as the SRC necessitates advanced
modelling. This modelling should consist of detailed wind tunnel, and computational
fluid mechanics analyses. The DATCOM has the advantage of being able to accept
this new experimental data, and using it to refine its own solutions.

9.2 Control System
Overall, the controller design in this thesis is quite effective. The time based
linearisation means that the controller is always at or very near its most effective. This
is a form of gain scheduling. The LQ controller performs reasonably in the presence
of a moderately turbulent atmosphere. There are parts of the control system that
should be the focus of future work.

The weighting matrices in the LQ controller, Q and R, are 12x12 and 6x6 diagonal
matrices respectively. In the system with integral action, the Q matrix increases in
size by the number of integral states. There is no perfect method to set the values of
these weighting matrices. Beyond the rough guidelines in the Bryson Inverse method,
only trial and error was used. Aircraft control system designers spend a great deal of
time optimising these weighting matrices. Further optimisation will definitely offer an
improved performance, especially during more extreme manoeuvres than those
described in this thesis.

In addition to the LQ controller, other control methods could be used. An H


controller might offer a large performance increase in the presence of such large
model uncertainty. A non-linear backstepping controller could, relatively easily, be
integrated with the present system. This method can be expected to offer extremely
high performance. Both the backstepping and H

control methods are likely to


significantly improve on the LQ control system described and modelled in this thesis.

9.3 Graphical System
The main advantage of the graphical system designed in this thesis is portability. As
already stated, the 3d world requires no proprietary software to run, and is platform
72
independent. Any computer system with a relatively modern Internet Browser is
capable of viewing the graphics model. However, far more advanced 3d models can
be constructed. Nowadays a photo realistic environment can be generated by home
computers. Such a model would clearly be a better vehicle for presentations and
suchlike, though at the cost of vastly increased computing times, portability, and ease
of use.
73
10 Conclusion
In the introduction, it was stated that the main aim of this thesis was to model, control
and simulate the SRC concept. Through doing this, it was to be demonstrated how
such methods could be used to quickly and accurately develop a model of and
simulate, a prototype aircraft. It can easily be stated that this goal has been achieved
to good effect.

The structure of the lookup tables and the simulation model on the whole is very
effective. The nonlinear aircraft model is very detailed, and is well-integrated with
detailed atmospheric and gravitic models. In addition, the methods to linearise and
control the model are well defined.

Initially, the performance of the LQ controller was mixed. In certain cases, such as an
altitude hold or in a coordinated turn, it performed well, even under the influence of
rough external disturbances. However, the performance seen in descent manoeuvres
was entirely inadequate. Large errors in altitude were present, and the aircraft only
loosely followed its commanded path.

By augmenting this LQ controller with integral action, the early problems were
entirely solved. The altitude hold performance was enhanced to the point that steady
state errors disappeared. This modified controller also has the advantage of cancelling
out constant, or slowly varying, disturbances. In the case of the turbulent atmosphere,
significant performance increases were found over the basic controller. During a
descent through a turbulent atmosphere, the mean altitude error dropped from 35m in
the first case, to less than 2m in the case with integral action.

The design of the simulation model is very robust. The database of aerodynamic
coefficients is easily alterable, and this allows for the future refining of results.
Furthermore, the control system is designed entirely with this in mind. The control
system calculates gains through making use of linearised models. A change in the
aerodynamic database propagates through the system entirely, and this means that the
controller will still be entirely applicable to the system even after very significant
changes to it.

In addition to these advanced results, a good, if basic, 3D graphics model was
designed and integrated with the simulation model. Its advantages are numerous.

To conclude: the thesis has developed a considerable body of work towards the design
of the SRC concept. This work constitutes a solid foundation for future work on this
aircraft design.
74
References

[1] Hovstein, Vegard E.,
Modelling and Control of a UAV With A New Rotor Concept
NTNU, Trondheim, 2001

[2] Drela, M, Giles, M.B.,
Viscous-Inviscid Analysis of Transonic and Low Reynolds Number Aerofoils
AIAA Journal, 25(10), pp.1347-1355, 1987

[3] Drela, M.,
Xfoil: An Analysis and Design System for Low Reynolds Number Airfoils,
Conference on Low Reynolds Number Airfoil Aerodynamics,
University of Notre Dame, 1989

[4] USAF Stability and Control DATCOM,
Air Force Flight Dynamics Laboratory, Wright Patterson AFB, Fairborn,
Ohio, 1977

[5] The USAF Stability and Control DATCOM
McDonnell Douglas Astronautics Company
St. Louis, Missouri, 1979

[6] Melin, T.,
TORNADO, A Vortex lattice MATLAB Implementation for Linear
Aerodynamic Wing Applications
Royal Institute of Technology, Sweden, 2001

[7] Fossen, T.I..,
Marine Control Systems: Guidance, Navigation and Control of Ships, Rigs
and Underwater Vehicles
Tapir Trykkeri, Trondheim, 2002, p 29

[8] Stevens, Brian L., Lewis, Frank L.,
Aircraft Control and Simulation,
John Wiley & Sons, Inc., 1992, p. 44

[9] U.S. Standard Atmosphere,
U.S. Government Printing Office, Washington, D.C., 1976

[10] Military Specification MIL-F-8785C
U.S. Government Printing Office, Washington, D.C., 1980

[11] NIMA TR8350.2
Department of Defense World Geodetic System 1984, Its Definition and
Relationship with Local Geodetic Systems.
U.S Government Printing Office, Washington D.C, Third Edition, 1997

[12] Nelson, Robert C.,
75
Flight Stability and Automatic Control
The McGraw-Hill Companies, Inc., 2
nd
Edition, 1998, p. 43

[13] Athans, M., & Falb, P.L,
Optimal Control
McGraw-Hill Book Company, New York, 1966

[14] Grimble, Michael J.,
Optimal Control and Stochastic Estimation
John Wiley & Sons Ltd., 1988, pp. 256-257

[15] Fossen, T.I..,
Marine Control Systems: Guidance, Navigation and Control of Ships, Rigs
and Underwater Vehicles
Tapir Trykkeri, Trondheim, 2002, p 241-242
Appendices
Table of Contents
Appendix A - Parameters of the SRC.......................................................................79
A.1 Aircraft Dimensions.....................................................................................79
A.1.1 Wing/Body...........................................................................................79
A.1.2 Vertical Tail .........................................................................................79
A.1.3 Horizontal Tail/ Elevons......................................................................79
A.2 Aircraft Mass, Inertia and C.G.....................................................................79
A.3 Aerofoil (N0011SC) Properties ...................................................................79
A.3.1 Aerodynamic Data ...............................................................................80
Appendix B Matlab Models ..................................................................................83
B.1 SRC Force Calculation ................................................................................83
B.1.1 Lookup Tables .....................................................................................83
B.1.2 Aerodynamic Coefficients-> Body Forces ..........................................86
B.1.3 Other Forces.........................................................................................87
B.2 Input Calculations ........................................................................................88
B.3 Control System Blocks ................................................................................88
B.4 Flight Condition Calculation........................................................................90
Appendix C Matlab Programs...............................................................................90
C.1 Datcom Importation Scripts.........................................................................90
C.1.1 Dcomimporter.m..................................................................................90
C.1.2 Datcomappender.m..............................................................................91
C.1.3 Dynapp.m...........................................................................................106
C.1.4 Statapp.m...........................................................................................107
C.1.5 Difelapp.m.........................................................................................108
C.1.6 Symelapp.m.......................................................................................109
C.1.7 Wingflapapp.m...................................................................................110
C.1.8 Trimapp.m..........................................................................................111
C.2 Linearisation and Control Code.................................................................111
C.2.1 Srclineariser.m...................................................................................111
C.2.2 Srcinputlin.m......................................................................................112
C.2.3 Intsrclineariser.m...............................................................................112
Appendix D DATCOM Analysis Files ...............................................................115
D.1 Datcom Sample Output..............................................................................115
D.2 Static & Dynamic Analysis........................................................................115
D.2.1 Input File............................................................................................115
D.3 Differential Elevon Analysis......................................................................119
D.3.1 Input File............................................................................................119
D.4 Symmetrical Elevon Analysis....................................................................122
D.4.1 Input File............................................................................................122
D.5 Split Flap Analysis.....................................................................................124
D.5.1 Input File............................................................................................124
D.6 Trim Analysis.............................................................................................125
D.6.1 Input File............................................................................................125
D.7 Mach 0.7 Analysis .....................................................................................128
D.7.1 Input File............................................................................................128
Appendix E Tornado Model................................................................................131
E.1 Wing/Body.................................................................................................131
E.2 Vertical Tail ...............................................................................................131
E.3 Horitontal Tail............................................................................................132
76
Appendix F VRML Model.....................................................................................133
F.1 VRML Code...............................................................................................133

77
Table of Figures
Figure B.1 CL Lookup Tables .....................................................................................83
Figure B.2 CD Lookup Tables.....................................................................................83
Figure B.3 CY Lookup Tables.....................................................................................84
Figure B.4 Cl Lookup Tables.......................................................................................84
Figure B.5 CM Lookup Tables ....................................................................................85
Figure B.6 CN Lookup Tables.....................................................................................85
Figure B.7 Conversion from Aero Coeffs to Body Forces ..........................................86
Figure B.8 Rotation Matrix to transform Wind-> Body..............................................86
Figure B.9 Addition of Engine Force/Moments ..........................................................87
Figure B.10 Gravity Vector Calculation......................................................................87
Figure B.11 Left+Right Elevon-> Symm+Diff Deflections........................................88
Figure B.12 2nd Order Nonlinear Input Actuators ......................................................88
Figure B.13 K-Gen- Controller Gain Generator ..........................................................88
Figure B.14 -K*x_error & Reference Value Generators.............................................89
Figure B.15 B-Pseudoinverse Calculation...................................................................89
Figure B.16 Flight Condition Calculation Block.........................................................90

78
Appendix A - Parameters of the SRC
A.1 Aircraft Dimensions
A.1.1 Wing/Body
Disc diameter= 3m
Disc aerofoil = N0011SC
A.1.2 Vertical Tail
Longitudinal location of vertical tail apex = 1.8m
Root chord = 1.2m
Tip chord = 0.4m
Sweep angle = 16.9


Tail height = 1m
Aerofoil = N0011SC
Rudder chord= 0.2m
Maximum rudder deflection = 20


Rudder rate limits = 120

/s
A.1.3 Horizontal Tail/ Elevons
Longitudinal location of horizontal tail apex = 2.2m
Vertical location of horizontal tail = 0.5m
Root chord = 0.8m
Tip chord = 0.35m
Sweep angle = 30


Aerofoil = N0011SC
Maximum elevon deflection = 20

Elevon rate limits = 120

/s
A.2 Aircraft Mass, Inertia and C.G
Mass = 700kg
218.53 0 200
Inertia matrix = 0 323.13 0
200 0 477.5






Longitudinal c.g location = 1.5m
Vertical c.g location = 0m
A.3 Aerofoil (N0011SC) Properties
Table A-1 N0011SC Coordinates
X Zupper X Zlower
1.0000 0 0 0
0.9750 0.0064 0.0020 -0.0092
0.9500 0.0120 0.0065 -0.0158
0.9250 0.0171 0.0125 -0.0203
0.9000 0.0216 0.0250 -0.0262
0.8750 0.0257 0.0375 -0.0302
79
0.8500 0.0293 0.0500 -0.0334
0.8250 0.0326 0.0750 -0.0381
0.8000 0.0355 0.1000 -0.0416
0.7750 0.0381 0.1250 -0.0444
0.7500 0.0405 0.1500 -0.0466
0.7250 0.0426 0.1750 -0.0484
0.7000 0.0446 0.2000 -0.0499
0.6750 0.0463 0.2500 -0.0521
0.6500 0.0478 0.3000 -0.0536
0.6250 0.0492 0.3500 -0.0545
0.6000 0.0504 0.4000 -0.0548
0.5500 0.0524 0.4500 -0.0546
0.5000 0.0538 0.5000 -0.0538
0.4500 0.0546 0.5500 -0.0524
0.4000 0.0548 0.6000 -0.0504
0.3500 0.0545 0.6250 -0.0492
0.3000 0.0536 0.6500 -0.0478
0.2500 0.0521 0.6750 -0.0463
0.2000 0.0499 0.7000 -0.0446
0.1750 0.0484 0.7250 -0.0426
0.1500 0.0466 0.7500 -0.0405
0.1250 0.0444 0.7750 -0.0381
0.1000 0.0416 0.8000 -0.0355
0.0750 0.0381 0.8250 -0.0326
0.0500 0.0334 0.8500 -0.0293
0.0375 0.0302 0.8750 -0.0257
0.0250 0.0262 0.9000 -0.0216
0.0125 0.0203 0.9250 -0.0171
0.0065 0.0158 0.9500 -0.0120
0.0020 0.0092 0.9750 -0.0064
0 0 1.0000 0

A.3.1 Aerodynamic Data
The following tables are the sets of data calculated in Xfoil. The important parameters
shown are: the lift coefficient, the drag coefficient, and the pitching moment.
Table A-2 N0011SC at Mach 0.08
alpha CL CD CDp CM Top_Xtr Bot_Xtr
0 -0.0006 0.0035 0.00093 0 0.835 0.8351
1 0.0468 0.00431 0.00117 0.0274 0.6105 0.9037
2 0.1432 0.00602 0.00175 0.0546 0.2726 0.936
3 0.2725 0.00752 0.00261 0.0829 0.1121 0.9487
4 0.3804 0.00837 0.00319 0.1107 0.0634 0.9557
5 0.5048 0.00934 0.00397 0.1387 0.0394 0.9583
6 0.6172 0.01016 0.00471 0.1661 0.0289 0.9623
7 0.6986 0.01106 0.00558 0.1927 0.0224 0.9715
8 0.8184 0.01216 0.00669 0.2197 0.0192 0.9738
9 0.9274 0.0133 0.0079 0.246 0.0177 0.9766
80
10 1.0218 0.0149 0.0096 0.2714 0.0166 0.9814
Table A-3 N0011SC at Mach 0.1
alpha CL CD CDp CM Top_Xtr Bot_Xtr
0 -0.0006 0.0036 0.0008 0 0.7793 0.7796
1 0.0141 0.00422 0.00099 0.0266 0.5457 0.884
2 0.1367 0.00571 0.00151 0.0543 0.236 0.9261
4 0.3595 0.00764 0.00271 0.1103 0.0597 0.9557
5 0.4838 0.00854 0.00344 0.1383 0.0381 0.959
6 0.5959 0.00936 0.00416 0.1659 0.0276 0.9628
7 0.678 0.0102 0.00497 0.1927 0.0212 0.971
8 0.7961 0.01116 0.00593 0.2198 0.0183 0.9736
9 0.9047 0.01249 0.00731 0.2462 0.0163 0.9761
10 1.007 0.01377 0.00869 0.2722 0.0159 0.9799

Table A-4 N0011SC at Mach 0.2
alpha CL CD CDp CM Top_Xtr Bot_Xtr
0 -0.0006 0.0054 0.00096 0 0.4505 0.4534
1 0.0464 0.00529 0.00099 0.0267 0.2526 0.6905
2 0.0826 0.00506 0.00106 0.054 0.1641 0.8686
3 0.2304 0.00572 0.0015 0.0831 0.0757 0.9223
4 0.345 0.00633 0.00199 0.1118 0.0425 0.9456
5 0.4435 0.00684 0.00242 0.1401 0.0321 0.9554
6 0.5645 0.00756 0.00305 0.1687 0.0219 0.9616
7 0.6702 0.00836 0.00379 0.1968 0.0164 0.9667
8 0.7658 0.00911 0.00455 0.2247 0.0153 0.9718
9 0.8774 0.01013 0.0056 0.2525 0.0138 0.9756
10 0.9832 0.01147 0.00705 0.2798 0.0132 0.9783

Table A-5 N0011SC at Mach 0.3
alpha CL CD CDp CM Top_Xtr Bot_Xtr
0 -0.0007 0.00601 0.00107 0 0.305 0.3105
2 0.1287 0.00543 0.00113 0.0564 0.1019 0.7471
4 0.3524 0.0059 0.00183 0.1157 0.0354 0.9311
5 0.4629 0.00639 0.00229 0.1455 0.0257 0.947
6 0.5663 0.007 0.00284 0.1752 0.0172 0.956
7 0.6853 0.00772 0.00355 0.2053 0.0149 0.9631
8 0.7891 0.00859 0.00446 0.2351 0.0132 0.9689
9 0.8943 0.00949 0.00542 0.265 0.0129 0.9739
10 1.0037 0.01071 0.00675 0.2949 0.0125 0.9778

Table A-6 N0011SC at Mach 0.4
alpha CL CD CDp CM Top_Xtr Bot_Xtr
0 -0.0005 0.00619 0.00114 0 0.24 0.241
2 0.1412 0.00572 0.00122 0.0596 0.0828 0.6146
3 0.2621 0.0055 0.00148 0.0907 0.0424 0.8406
4 0.3675 0.00572 0.00185 0.1221 0.0306 0.9136
81
5 0.4809 0.00624 0.00236 0.154 0.0189 0.9386
6 0.5911 0.00683 0.00296 0.1861 0.015 0.9508
7 0.7112 0.00759 0.00377 0.219 0.0131 0.9592
8 0.8278 0.00849 0.00476 0.2524 0.0127 0.9665
9 0.9282 0.00967 0.00611 0.2855 0.0123 0.971
10 1.0415 0.01154 0.00827 0.3193 0.012 0.9776

Table A-7 N0011SC at Mach 0.5
alpha CL CD CDp CM Top_Xtr Bot_Xtr
0 -0.0006 0.00632 0.00126 0 0.1933 0.1974
1 0.0799 0.00621 0.00128 0.0322 0.1136 0.3361
2 0.1473 0.00595 0.00136 0.0641 0.0703 0.5199
3 0.2744 0.00561 0.00162 0.0976 0.0369 0.7807
4 0.3844 0.0057 0.00199 0.1318 0.0254 0.9003
5 0.5051 0.00623 0.00259 0.167 0.0157 0.9324
6 0.6296 0.00691 0.00336 0.2034 0.0132 0.9476
7 0.7497 0.00781 0.00441 0.2408 0.0129 0.9553
8 0.8693 0.00956 0.00652 0.2794 0.013 0.966

Table A-8 N0011SC at Mach 0.6
alpha CL CD CDp CM Top_Xtr Bot_Xtr
0 -0.0037 0.0065 0.00146 -0.0001 0.173 0.1703
1 0.0674 0.00644 0.0015 0.0351 0.1 0.2838
2 0.155 0.00617 0.00161 0.0707 0.0613 0.4813
3 0.2844 0.00577 0.00187 0.108 0.0337 0.7571
4 0.4002 0.00588 0.00235 0.1465 0.0186 0.8981
5 0.5321 0.00646 0.0031 0.1874 0.0146 0.9322

Table A-9 N0011SC at Mach 0.7
alpha CL CD CDp CM Top_Xtr Bot_Xtr
0 -0.0006 0.00673 0.00179 0.0001 0.1389 0.1411
1 0.0937 0.0067 0.00186 0.0176 0.079 0.2432
2 0.1938 0.00657 0.00205 0.0343 0.0404 0.4157
4 0.4265 0.00607 0.00289 0.0656 0.0161 0.8917

82
Appendix B Matlab Models
B.1 SRC Force Calculation
The blocks displayed within this section together evaluate the body forces on the
SRC.
B.1.1 Lookup Tables
1
CL
f(u)
c/(2*Vt)*CLQ*al pha
Swi tch
1.5
Mean Chord
3-D T(u)
CLQ Lookup
3-D T(u)
CLDel ta Wi ngfl ap Lookup
3-D T(u)
CLDel ta Tai l pl ane Lookup
3-D T(u)
CL Stati c Lookup
7
Wi ng Fl ap Def
6
Q
5
El vDef
4
Vt
3
mach
2
al t
1
al pha
4

Figure B.1 CL Lookup Tables
1
CD
Swi tch
4-D T(u)
Del taCD Tai l pl ane Lookup
4-D T(u)
Del taCD Spl i t Fl ap Lookup
3-D T(u)
CD Lookup
5
Wi ng Fl ap Def
4
El vDef
3
mach
2
al t
1
al pha

Figure B.2 CD Lookup Tables
83
1
CY
3
b
Product1
f(u) Fcn
3-D T(u)
CYP Lookup
3-D T(u)
CY Stati c Lookup
1-D T(u)
CY Rudder
7 Vt
6
P
5
al t
4
rudderdef
3
mach
2
beta
1
al pha
3

Figure B.3 CY Lookup Tables
1
Cl
4-D T(u)
del ta Cl Lookup
1.5
b
Product2
Product1
Product
f(u) Fcn
3-D T(u)
CLR Lookup
3-D T(u)
CLP Lookup
3-D T(u)
CLB Lookup
1-D T(u)
CL(rud) Lookup
8
El Di fDef
7
Vt
6
R
5
P
4
Beta
3
Machno
2
Al t
1
Al pha
3
3

Figure B.4 Cl Lookup Tables
84
1
CM
f(u)
c/(2*Vt)*CLQ*Q
Swi tch
1.5
Mean Chord
3-D T(u)
CMQ Lookup
3-D T(u)
CMDel ta Wi ngfl ap Lookup
3-D T(u)
CMDel ta El evon Lookup
3-D T(u)
CM Lookup
7
Vt
6
Q
5
Wi ngFl apDef
4
El vPi tch
3
Machno
2
Al t
1
Al pha

Figure B.5 CM Lookup Tables
1
Cn
1.5
b
Product2
Product1
Product
f(u) Fcn
1-D T(u)
Cn(rud) Lookup
1-D T(u)
Cn(ai l ) Lookup
3-D T(u)
CNR Lookup
3-D T(u)
CNP Lookup
3-D T(u)
CNB Lookup
9
El evDi ff
8
RudDef
7
Vt
6
R
5
P
4
Beta
3
Machno
2
Al t
1
Al pha
3
3

Figure B.6 CN Lookup Tables
85
B.1.2 Aerodynamic Coefficients-> Body Forces
6
Yaw.Mom
5
Pi t.Mom
4
Rol l ,Mom.
3
Li ft
2
Si deforce
1
Drag
1.5
cbar
3
b1
3
b
Y
-C-
Wi ngArea
alpha
beta
Sinv
Si nv
Alpha(deg)
Alt
Machno
Beta(deg)
Vt
Rudder Def
Elev Dif f Def
Elv Pitch
WingFDef
P(deg/s)
Q(deg/s)
R(deg/s)
CD
CY
CL
Cl_
CM
CN
SRC Lookup Tabl e
Reshape1
Reshape
Matri x
Mul ti pl y
Product1
Matri x
Mul ti pl y
Product
N
M
L_
L
f(u)
DynPress
em
em
em
em
D
-1
-L
-1
-D
8
P
7
C
6
Vt
5
Beta
4
Machno
3
Al t
2
AOA
1
rho
[3x3]
[3x3]
[3x3]
[3x1]
[3x1] 3
3
4
3
2
[3x1]
[3x1]
[3x1]

Figure B.7 Conversion from Aero Coeffs to Body Forces
B.1.2.1 Rotation from Wind to Body
1
Si nv
si n
si n(beta)
si n
si n(al pha)
cos
cos(beta)
cos
cos(al pha)
Vert Cat
Matri x
Concatenati on3
Hori z Cat
Matri x
Concatenati on2
Hori z Cat
Matri x
Concatenati on1
Hori z Cat
Matri x
Concatenati on
u
T
Math
Functi on
u[2]
DynPress8
0
DynPress7
-u[1]
DynPress6
-u[1]*u[4]
DynPress5
u[3]
DynPress4
-u[2]*u[4]
DynPress3
u[1]*u[3]
DynPress2
u[4]
DynPress1
u[2]*u[3]
DynPress
deg rad
Angl e Conversi on1
deg rad
Angl e Conversi on
1
-beta
1
-al pha
2
beta
1
al pha
[3x3] [3x3]
[1x3]
[1x3]
[1x3]
[1x3]
[1x3]
4
4
4
4
4
4
4
4
4
4

Figure B.8 Rotation Matrix to transform Wind-> Body
86
B.1.3 Other Forces
B.1.3.1 Engine Forces
2
LMN
1
XYZ
Throttl e posi ti on
Mach
Al ti tude (m)
Thrust (N)
Fuel fl ow (kg/s)
Turbofan Engi ne System
Trm2
Trm1
Trm
TrAi rSp
ControlInpts
C
T
Input Processor
Height (m)
Temperature (K)
Speed of Sound (m/s)
Air Pressure (N/m^2)
Air Density (Kg/m^3)
ISA Atmosphere Model
0.1
Eng.Di spl
rho
AOA
Alt
Machno
Beta
Vt
C
P
Drag
Sidef orce
Lif t
Roll,Mom.
Pit.Mom
Yaw.Mom
Body ForcesMomnts
6
Control Inpts
5 PQR
4
Beta
3
Al pha
2
Al t
1
Machno

Figure B.9 Addition of Engine Force/Moments
B.1.3.2 Gravity Forces
1
XYZwg
0
zi p
-K-
mass
45
l ambda
WGS84
(Tayl or Seri es)
Hei ght (m)
Lati tude (deg)
Gravi ty (m/s^2)
WGS84 Gravi ty Model
U( : )
Reshape
Matri x
Mul ti pl y
Product
Vert Cat
Matri x
Concatenati on
3
hei ght
2
DCM
1
XYZ
[3x1]
3
[3x1]
[3x1]
[3x3]
[3x1] 3

Figure B.10 Gravity Vector Calculation
87
B.2 Input Calculations
2
El vPi t
1
El vRol l
0.5
avgpi t
2
REl v
1
LEl v

Figure B.11 Left+Right Elevon-> Symm+Diff Deflections
1
Cntrl
Ac_dem Ac_ac
Wi ng Fl ap Nonl i near Actuator
Ac_dem Ac_ac
Rudder Nonl i near Actuator
Ac_dem Ac_ac
Ri ght El evon Nonl i near Actuator
Ac_dem Ac_ac
Left El evon Nonl i near Actuator
rad deg
Angl e Conversi on7
rad deg
Angl e Conversi on6
rad deg
Angl e Conversi on5
rad deg
Angl e Conversi on4
deg rad
Angl e Conversi on3
deg rad
Angl e Conversi on2
deg rad
Angl e Conversi on1
deg rad
Angl e Conversi on
5
Throttl e
4
WFl ap
3
REl v
2
LEl v
1
rudder

Figure B.12 2nd Order Nonlinear Input Actuators
B.3 Control System Blocks
1
k
k
To Workspace
MATLAB
Functi on
MATLAB Fcn
Tri gger
2<L>
u
1<L>
x
4{12}
[6x1]
[6x1]
[18x1]
[6x12]
[6x12]
[6x12]

Figure B.13 K-Gen- Controller Gain Generator
88
1
u
x
x_err
x_ref
l evel fl i ght
x
x_err
x_ref
coord turn
x
x_err
x_ref
constant cl i mb/descend reference
To Workspace
Reshape
Matri x
Mul ti pl y
Product
Mul ti port
Swi tch1
Mul ti port
Swi tch
-1
Gai n
control l ernumber
Constant
2
x
1
k
[6x1]
[6x12] [6x12]
[6x12]
[12x1]
[12x1]
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12

Figure B.14 -K*x_error & Reference Value Generators
1
Bpi nv
B
To Workspace
U( : )
Reshape
MATLAB
Functi on
Pseudo Inverse
MATLAB
Functi on
Bgenerator
Tri gger
2<L>
u
1<L>
x
4{12}
[4x1]
[4x1]
[16x1]
[6x4]
[6x4]
[6x4] 16 [4x6]

Figure B.15 B-Pseudoinverse Calculation
89
B.4 Flight Condition Calculation
4
al ti tude
3
beta
2
al pha
1
Machno
f(u)
mag(Vb)
rad deg
beta(deg)
f(u)
asi n(V)
atan(u[3]/u[1])
al pha(rad)
rad deg
al pha(deg)
Vt/a (M) f(u)
Vt Termi nator3
Termi nator2
Termi nator1
Termi nator
Matri x
Mul ti pl y
Product
Height (m)
Temperature (K)
Speed of Sound (m/s)
Air Pressure (N/m^2)
Air Density (Kg/m^3)
ISA Atmosphere Model
-u[3]
Hei ght
Wi nd vel oci ty (m/s)
Angul ar rates (rad/sec)
Al ti tude (m)
Ai rspeed (m/s)
Dryden Wi nd Turbul ence Model
3
DCM
2
Vb
1
Xe

Figure B.16 Flight Condition Calculation Block
Appendix C Matlab Programs
C.1 Datcom Importation Scripts
The functions included here are very comprehensive, and directly import data from
the DATCOM output files. A schematic of its usage is shown here.

C.1.1 Dcomimporter.m
The dcomimporter function uses low-level file access functions to find and import all
the Datcom data in a certain directory and its subdirectories. It can either save them
all in one file, or seek user input to keep or discard each.
C.1.1.1 Code
function output=dcomimporter(input,savedname)

% Takes directory as string input
% then imports all datcom output files
% from the subdirs
% "savedname" is filename to save under
% if not input, cases are processed (user intensive)

dcomfiles=getfilenames(input,'*.out');

unprocessedcases=[];

for i=1:size(dcomfiles,2)
unprocessedcases{i}=dcomload(dcomfiles{i});
end

if nargin==2
save(savedname,'unprocessedcases');
90
output=unprocessedcases;
else
output=[];
for j=1:size(unprocessedcases,2)
output=cat(2,output,caseprocessor(unprocessedcases{j}));
end
end

function data=dcomload(filename)

% Function loads entire textfile into a cell
% array of strings

fid=fopen(filename,'rt');
i=1;
while feof(fid)==0
data{i,1}=fgetl(fid);
i=i+1;
end
fclose(fid);

C.1.2 Datcomappender.m
This function performs an array of functions to achieve the following: given the
unprocessed cases imported through dcomload.m (C.1.1), this retrieves the useful
aerodynamic data, discards the extraneous text, and outputs the data in a useable set of
structures.
C.1.2.1 Code
function output=datcomappender(data)

% Takes cases which have been preprocessed by
% the "caseprocessor", converts them into numerical
% data; and separates them into their types (dynamic, static etc.)

% Pre-allocate structure fields
appendeddata=struct('dynamic',[],'static',[],'diffelevon',[],'wingflap',[],'ElvPitch',[],'tri
m',[]);

appendeddata.dynamic=struct('ALPHA',[],'CLQ',[],'CMQ',[],'CLAD',[],'CMAD',[],'C
LP',[],'CYP',[],'CNP',[],...
'CNR',[],'CLR',[],'altitude',[],'machno',[]);

appendeddata.static=struct('altitude',[],'machno',[],'ALPHA',[],'CD',[],'CL',[],'CM',[],'
CN',[],...
'CA',[],'XCP',[],'CLA',[],'CMA',[],'CNB',[],'CLB',[]);

appendeddata.diffelevon=struct('altitude',[],'machno',[],'deltaCl',[],'deflections',[],'ALP
HA',[]);

91
appendeddata.wingflap=struct('altitude',[],'machno',[],'WingFlapDeflection',[],'CLDelt
a',[],'CMDelta',[],...
'CLmaxDelta',[],'CDmin',[]);
appendeddata.wingflap.Drag=struct('ALPHA',[],'deflection',[],'deltaCD',[]);

appendeddata.ElvPitch=struct('altitude',[],'machno',[],'Deflection',[],'CLDelta',[],'CM
Delta',[],'CLmaxDelta',[],'CDmin',[]);
appendeddata.ElvPitch.Drag=struct('ALPHA',[],'deflection',[],'deltaCD',[]);

appendeddata.trim=struct('altitude',[],'machno',[],'ALPHA',[],'deflection',[],'CDt',[],'C
Lt',[],'CMt',[],'hingeM',[]);

for i=1:size(data,2);
if strcmp(casetypefinder(data{i}),'Dynamic');
%do dynamic calculations
[machno altitude]=findmachalt(data{i}(10));
x=dynapp(data{i});


appendeddata.dynamic.ALPHA{size(appendeddata.dynamic.ALPHA,2)+1}=x.ALPH
A;
appendeddata.dynamic.CLQ{size(appendeddata.dynamic.CLQ,2)+1}=x.CLQ;
appendeddata.dynamic.CMQ{size(appendeddata.dynamic.CMQ,2)+1}=x.CMQ;

appendeddata.dynamic.CLAD{size(appendeddata.dynamic.CLAD,2)+1}=x.CLAD;

appendeddata.dynamic.CMAD{size(appendeddata.dynamic.CMAD,2)+1}=x.CMAD;
appendeddata.dynamic.CLP{size(appendeddata.dynamic.CLP,2)+1}=x.CLP;
appendeddata.dynamic.CYP{size(appendeddata.dynamic.CYP,2)+1}=x.CYP;
appendeddata.dynamic.CNP{size(appendeddata.dynamic.CNP,2)+1}=x.CNP;
appendeddata.dynamic.CNR{size(appendeddata.dynamic.CNR,2)+1}=x.CNR;
appendeddata.dynamic.CLR{size(appendeddata.dynamic.CLR,2)+1}=x.CLR;

appendeddata.dynamic.altitude{size(appendeddata.dynamic.altitude,2)+1}=altitude;

appendeddata.dynamic.machno{size(appendeddata.dynamic.machno,2)+1}=machno;

elseif strcmp(casetypefinder(data{i}),'Static');
%do static calculations
[machno altitude]=findmachalt(data{i}(10));
x=newstatapp(data{i});

appendeddata.static.altitude{size(appendeddata.static.altitude,2)+1}=altitude;
appendeddata.static.machno{size(appendeddata.static.machno,2)+1}=machno;

appendeddata.static.ALPHA{size(appendeddata.static.ALPHA,2)+1}=x.ALPHA;
appendeddata.static.CD{size(appendeddata.static.CD,2)+1}=x.CD;
appendeddata.static.CL{size(appendeddata.static.CL,2)+1}=x.CL;
appendeddata.static.CM{size(appendeddata.static.CM,2)+1}=x.CM;
appendeddata.static.CN{size(appendeddata.static.CN,2)+1}=x.CN;
92
appendeddata.static.CA{size(appendeddata.static.CA,2)+1}=x.CA;
appendeddata.static.XCP{size(appendeddata.static.XCP,2)+1}=x.XCP;
appendeddata.static.CLA{size(appendeddata.static.CLA,2)+1}=x.CLA;
appendeddata.static.CMA{size(appendeddata.static.CMA,2)+1}=x.CMA;
appendeddata.static.CNB{size(appendeddata.static.CNB,2)+1}=x.CNB;
appendeddata.static.CLB{size(appendeddata.static.CLB,2)+1}=x.CLB;

elseif strcmp(casetypefinder(data{i}),'DiffElevon');
%do Differential Elevon (roll) calculations
[machno altitude]=findmachalt(data{i}(9));
x=difelapp(data{i});


appendeddata.diffelevon.altitude{size(appendeddata.diffelevon.altitude,2)+1}=altitud
e;

appendeddata.diffelevon.machno{size(appendeddata.diffelevon.machno,2)+1}=mach
no;

appendeddata.diffelevon.deltaCl{size(appendeddata.diffelevon.deltaCl,2)+1}=x.delta
Cl;

appendeddata.diffelevon.deflections{size(appendeddata.diffelevon.deflections,2)+1}=
x.deflections;

appendeddata.diffelevon.ALPHA{size(appendeddata.diffelevon.ALPHA,2)+1}=x.AL
PHA;

elseif strcmp(casetypefinder(data{i}),'WingSplitFlap');
%do Wing Split Flap calculations
[machno altitude]=findmachalt(data{i}(9));
x=wingflapapp(data{i});


appendeddata.wingflap.altitude{size(appendeddata.wingflap.altitude,2)+1}=altitude;

appendeddata.wingflap.machno{size(appendeddata.wingflap.machno,2)+1}=machno;

appendeddata.wingflap.WingFlapDeflection{size(appendeddata.wingflap.WingFlapD
eflection,2)+1}=x.WingFlapDeflectionCol;

appendeddata.wingflap.CLDelta{size(appendeddata.wingflap.CLDelta,2)+1}=x.CLD
elta;

appendeddata.wingflap.CMDelta{size(appendeddata.wingflap.CMDelta,2)+1}=x.CM
Delta;

appendeddata.wingflap.CLmaxDelta{size(appendeddata.wingflap.CLmaxDelta,2)+1}
=x.CLmaxDelta;
93

appendeddata.wingflap.CDmin{size(appendeddata.wingflap.CDmin,2)+1}=x.CDmin;


appendeddata.wingflap.Drag.ALPHA{size(appendeddata.wingflap.Drag.ALPHA,2)+
1}=x.ALPHA;

appendeddata.wingflap.Drag.deflection{size(appendeddata.wingflap.Drag.deflection,
2)+1}=x.WingFlapDeflectionRow;

appendeddata.wingflap.Drag.deltaCD{size(appendeddata.wingflap.Drag.deltaCD,2)+
1}=x.CDincrement;

elseif strcmp(casetypefinder(data{i}),'SymElevon');
%do Symmetrical Elevon (pitch) calculations
[machno altitude]=findmachalt(data{i}(9));
x=symelapp(data{i});


appendeddata.ElvPitch.altitude{size(appendeddata.ElvPitch.altitude,2)+1}=altitude;

appendeddata.ElvPitch.machno{size(appendeddata.ElvPitch.machno,2)+1}=machno;

appendeddata.ElvPitch.Deflection{size(appendeddata.ElvPitch.Deflection,2)+1}=x.S
ymElDeflectionCol;

appendeddata.ElvPitch.CLDelta{size(appendeddata.ElvPitch.CLDelta,2)+1}=x.CLDe
lta;

appendeddata.ElvPitch.CMDelta{size(appendeddata.ElvPitch.CMDelta,2)+1}=x.CM
Delta;

appendeddata.ElvPitch.CLmaxDelta{size(appendeddata.ElvPitch.CLmaxDelta,2)+1}
=x.CLmaxDelta;

appendeddata.ElvPitch.CDmin{size(appendeddata.ElvPitch.CDmin,2)+1}=x.CDmin;


appendeddata.ElvPitch.Drag.ALPHA{size(appendeddata.ElvPitch.Drag.ALPHA,2)+1
}=x.ALPHA;

appendeddata.ElvPitch.Drag.deflection{size(appendeddata.ElvPitch.Drag.deflection,2
)+1}=x.SymElDeflectionRow;

appendeddata.ElvPitch.Drag.deltaCD{size(appendeddata.ElvPitch.Drag.deltaCD,2)+1
}=x.CDincrement;

elseif strcmp(casetypefinder(data{i}),'Trim');
%do Trim calculations
[machno altitude]=findmachalt(data{i}(8));
94
x=trimapp(data{i});

appendeddata.trim.altitude{size(appendeddata.trim.altitude,2)+1}=altitude;
appendeddata.trim.machno{size(appendeddata.trim.machno,2)+1}=machno;
appendeddata.trim.ALPHA{size(appendeddata.trim.ALPHA,2)+1}=x.ALPHA;

appendeddata.trim.deflection{size(appendeddata.trim.deflection,2)+1}=x.deflection;
appendeddata.trim.CDt{size(appendeddata.trim.CDt,2)+1}=x.CDt;
appendeddata.trim.CLt{size(appendeddata.trim.CLt,2)+1}=x.CLt;
appendeddata.trim.CMt{size(appendeddata.trim.CMt,2)+1}=x.CMt;
appendeddata.trim.hingeM{size(appendeddata.trim.hingeM,2)+1}=x.hingeM;

end

end

% Reform dynamic section into numeric arrays for usage in lookup tables
output.dynamic.CLQ{1}=sdvarsorter(appendeddata.dynamic.altitude,appendeddata.d
ynamic.machno,appendeddata.dynamic.CLQ);
output.dynamic.CMQ{1}=sdvarsorter(appendeddata.dynamic.altitude,appendeddata.d
ynamic.machno,appendeddata.dynamic.CMQ);
output.dynamic.CLAD{1}=sdvarsorter(appendeddata.dynamic.altitude,appendeddata.
dynamic.machno,appendeddata.dynamic.CLAD);
output.dynamic.CMAD{1}=sdvarsorter(appendeddata.dynamic.altitude,appendeddata
.dynamic.machno,appendeddata.dynamic.CMAD);
output.dynamic.CLP{1}=sdvarsorter(appendeddata.dynamic.altitude,appendeddata.dy
namic.machno,appendeddata.dynamic.CLP);
output.dynamic.CYP{1}=sdvarsorter(appendeddata.dynamic.altitude,appendeddata.d
ynamic.machno,appendeddata.dynamic.CYP);
output.dynamic.CNP{1}=sdvarsorter(appendeddata.dynamic.altitude,appendeddata.d
ynamic.machno,appendeddata.dynamic.CNP);
output.dynamic.CNR{1}=sdvarsorter(appendeddata.dynamic.altitude,appendeddata.d
ynamic.machno,appendeddata.dynamic.CNR);
output.dynamic.CLR{1}=sdvarsorter(appendeddata.dynamic.altitude,appendeddata.d
ynamic.machno,appendeddata.dynamic.CLR);
output.dynamic.alt=[10 50 100 200 300 400 500 600 700 800 900 1000 1500 2000
2500 3000 4000 5000 6000 7000 8000 ...
9000 10000 11000 12000];
output.dynamic.mach=[.08 .1 .2 .3 .4 .5 .6 .7];
output.dynamic.alpha=[-2 0 1 2 4 6 8 10 15 20];

% Reform static section into numeric arrays for usage in lookup tables
output.static.CD{1}=sdvarsorter(appendeddata.static.altitude,appendeddata.static.mac
hno,appendeddata.static.CD);
output.static.CL{1}=sdvarsorter(appendeddata.static.altitude,appendeddata.static.mac
hno,appendeddata.static.CL);
output.static.CM{1}=sdvarsorter(appendeddata.static.altitude,appendeddata.static.ma
chno,appendeddata.static.CM);
output.static.CN{1}=sdvarsorter(appendeddata.static.altitude,appendeddata.static.mac
hno,appendeddata.static.CN);
95
output.static.CA{1}=sdvarsorter(appendeddata.static.altitude,appendeddata.static.mac
hno,appendeddata.static.CA);
output.static.XCP{1}=sdvarsorter(appendeddata.static.altitude,appendeddata.static.ma
chno,appendeddata.static.XCP);
output.static.CLA{1}=sdvarsorter(appendeddata.static.altitude,appendeddata.static.m
achno,appendeddata.static.CLA);
output.static.CMA{1}=sdvarsorter(appendeddata.static.altitude,appendeddata.static.m
achno,appendeddata.static.CMA);
output.static.CNB{1}=sdvarsorter(appendeddata.static.altitude,appendeddata.static.m
achno,appendeddata.static.CNB);
output.static.CLB{1}=sdvarsorter(appendeddata.static.altitude,appendeddata.static.ma
chno,appendeddata.static.CLB);
output.static.alt=[10 50 100 200 300 400 500 600 700 800 900 1000 1500 2000 2500
3000 4000 5000 6000 7000 8000 ...
9000 10000 11000 12000];
output.static.mach=[.08 .1 .2 .3 .4 .5 .6 .7];
output.static.alpha=[-2 0 1 2 4 6 8 10 15 20];

% Reform trim section into numeric arrays for usage in lookup tables
output.trim.CDt{1}=sdvarsorter(appendeddata.trim.altitude,appendeddata.trim.machn
o,appendeddata.trim.CDt);
output.trim.CLt{1}=sdvarsorter(appendeddata.trim.altitude,appendeddata.trim.machn
o,appendeddata.trim.CLt);
output.trim.CMt{1}=sdvarsorter(appendeddata.trim.altitude,appendeddata.trim.machn
o,appendeddata.trim.CMt);
output.trim.hingeM{1}=sdvarsorter(appendeddata.trim.altitude,appendeddata.trim.ma
chno,appendeddata.trim.hingeM);
output.trim.trimdeflection{1}=sdvarsorter(appendeddata.trim.altitude,appendeddata.tr
im.machno,appendeddata.trim.deflection);
output.trim.mach=[.08 .1 .2 .3 .4 .5 .6 .7];
output.trim.alpha=[-2 0 1 2 4 6 8 10 15 20];
output.trim.alt=[10 50 100 200 300 400 500 600 700 800 900 1000 1500 2000 2500
3000 4000 5000 6000 7000 8000 ...
9000 10000 11000 12000];

% Reform Elevon Roll section into numeric arrays for usage in lookup tables
output.diffelevon.deltaCl{1}=ervarsorter(appendeddata.diffelevon.altitude,appendedd
ata.diffelevon.machno,appendeddata.diffelevon.deltaCl);
output.diffelevon.deflection=[4.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 90.0];
output.diffelevon.mach=[.08 .1 .2 .3 .4 .5 .6 .7];
output.diffelevon.alpha=[-2 0 1 2 4 6 8 10 15 20];
output.diffelevon.alt=[10 50 100 200 300 400 500 600 700 800 900 1000 1500 2000
2500 3000 4000 5000 6000 7000 8000 ...
9000 10000 11000 12000];




output.wingflap.CLDelta{1}=wfvarsorter(appendeddata.wingflap.altitude,appendedda
ta.wingflap.machno,appendeddata.wingflap.CLDelta);
96
output.wingflap.CMDelta{1}=wfvarsorter(appendeddata.wingflap.altitude,appendedd
ata.wingflap.machno,appendeddata.wingflap.CMDelta);
output.wingflap.CLmaxDelta{1}=wfvarsorter(appendeddata.wingflap.altitude,append
eddata.wingflap.machno,appendeddata.wingflap.CLmaxDelta);
output.wingflap.CDmin{1}=wfvarsorter(appendeddata.wingflap.altitude,appendeddat
a.wingflap.machno,appendeddata.wingflap.CDmin);
output.wingflap.alt=[10 50 100 200 500 1000 1500 2000 3000 4000];
output.wingflap.mach=[.08 .1 .2 .3 .4 .5 .6 .7];
output.wingflap.FlapDeflection=[1 2 5 10 15 20 25 30 40];
output.wingflap.alpha=[-2 0 1 2 4 6 8 10 15 20];
output.wingflap.deltaCD{1}=tdwfvarsorter(appendeddata.wingflap.altitude,appended
data.wingflap.machno,appendeddata.wingflap.Drag.deltaCD);

output.elvpitch.CLDelta{1}=epvarsorter(appendeddata.ElvPitch.altitude,appendeddat
a.ElvPitch.machno,appendeddata.ElvPitch.CLDelta);
output.elvpitch.CMDelta{1}=epvarsorter(appendeddata.ElvPitch.altitude,appendeddat
a.ElvPitch.machno,appendeddata.ElvPitch.CMDelta);
output.elvpitch.CLmaxDelta{1}=epvarsorter(appendeddata.ElvPitch.altitude,appende
ddata.ElvPitch.machno,appendeddata.ElvPitch.CLmaxDelta);
output.elvpitch.CDmin{1}=epvarsorter(appendeddata.ElvPitch.altitude,appendeddata.
ElvPitch.machno,appendeddata.ElvPitch.CDmin);
output.elvpitch.alt=[50 100 200 300 400 500 600 700 800 900 1000 2000 3000 4000
5000 6000 7000 8000 9000 10000 11000 12000];
output.elvpitch.mach=[.08 .1 .2 .3 .4 .5 .6 .7];
output.elvpitch.FlapDeflection=[-15 -10 -5 -2 2 5 10 15 20];
output.elvpitch.alpha=[-2 0 1 2 4 6 8 10 15 20];
output.elvpitch.deltaCD{1}=tdepvarsorter(appendeddata.ElvPitch.altitude,appendedd
ata.ElvPitch.machno,appendeddata.ElvPitch.Drag.deltaCD);

function casetype=casetypefinder(data)

% Function returns which casetype

if isempty(findstr('DYNAMIC DERIVATIVES',char(data(2))))~=1;
casetype='Dynamic';
elseif isempty(findstr('CHARACTERISTICS AT ANGLE OF ATTACK AND IN
SIDESLIP',char(data(2))))~=1;
casetype='Static';
elseif isempty(findstr('DIFFERENTIALLY DEFLECTED HORIZONTAL
STABILIZER CONFIGURATION',char(data(3))))~=1;
casetype='DiffElevon';
elseif isempty(findstr('WING SPLIT FLAP CONFIGURATION',char(data(3))))~=1;
casetype='WingSplitFlap';
elseif isempty(findstr('ALL MOVABLE HORIZONTAL STABILIZER TRIM
CONFIGURATION',char(data(3))))~=1;
casetype='Trim';
elseif isempty(findstr('TAIL PLAIN TRAILING-EDGE FLAP
CONFIGURATION',char(data(3))))~=1;
casetype='SymElevon';
else display('Unknown case type');
97
end

function [machnumber,altitude]=findmachalt(input)

% Function returns the mach number and altitude of a particular case

fltcons=char(input);
machnumber=str2num(fltcons(3:8));
altitude=str2num(fltcons(11:19));

function output=epvarsorter(alt,mach,variable)

% Function sorts the Elevon Pitch (ep) cases
% in order of speed and altitude

for i=1:size(variable,2)
switch mach{i}
case .08
speedno=1;
case .1
speedno=2;
case .2
speedno=3;
case .3
speedno=4;
case .4
speedno=5;
case .5
speedno=6;
case .6
speedno=7;
case .7
speedno=8;
end

switch alt{i}
case 50
altno=1;
case 100
altno=2;
case 200
altno=3;
case 300
altno=4;
case 400
altno=5;
case 500
altno=6;
case 600
altno=7;
98
case 700
altno=8;
case 800
altno=9;
case 900
altno=10;
case 1000
altno=11;
case 2000
altno=12;
case 3000
altno=13;
case 4000
altno=14;
case 5000
altno=15;
case 6000
altno=16;
case 7000
altno=17;
case 8000
altno=18;
case 9000
altno=19;
case 10000
altno=20;
case 11000
altno=21;
case 12000
altno=22;
end

output(:,altno,speedno)=variable{i};
end

function output=tdepvarsorter(alt,mach,variable)

% Sorts elevon pitch data if another dimension is needed
% (alpha, altitude, mach, flap defl)

for i=1:size(variable,2)
switch mach{i}
case .08
speedno=1;
case .1
speedno=2;
case .2
speedno=3;
case .3
speedno=4;
99
case .4
speedno=5;
case .5
speedno=6;
case .6
speedno=7;
case .7
speedno=8;
end

switch alt{i}
case 50
altno=1;
case 100
altno=2;
case 200
altno=3;
case 300
altno=4;
case 400
altno=5;
case 500
altno=6;
case 600
altno=7;
case 700
altno=8;
case 800
altno=9;
case 900
altno=10;
case 1000
altno=11;
case 2000
altno=12;
case 3000
altno=13;
case 4000
altno=14;
case 5000
altno=15;
case 6000
altno=16;
case 7000
altno=17;
case 8000
altno=18;
case 9000
altno=19;
case 10000
100
altno=20;
case 11000
altno=21;
case 12000
altno=22;
end

output(:,:,altno,speedno)=variable{i};
output=squeeze(output);
end

function output=ervarsorter(alt,mach,variable)

% Sorts elevon roll data in order of velocity and altitude

for i=1:size(variable,2)
switch mach{i}
case .08
speedno=1;
case .1
speedno=2;
case .2
speedno=3;
case .3
speedno=4;
case .4
speedno=5;
case .5
speedno=6;
case .6
speedno=7;
case .7
speedno=8;
end

switch alt{i}
case 10
altno=1;
case 50
altno=2;
case 100
altno=3;
case 200
altno=4;
case 300
altno=5;
case 400
altno=6;
case 500
altno=7;
101
case 600
altno=8;
case 700
altno=9;
case 800
altno=10;
case 900
altno=11;
case 1000
altno=12;
case 1500
altno=13;
case 2000
altno=14;
case 2500
altno=15;
case 3000
altno=16;
case 4000
altno=17;
case 5000
altno=18;
case 6000
altno=19;
case 7000
altno=20;
case 8000
altno=21;
case 9000
altno=22;
case 10000
altno=23;
case 11000
altno=24;
case 12000
altno=25;
end

output(:,altno,speedno)=variable{i};

end
function output=sdvarsorter(alt,mach,variable)
% Sorts dynamic and static datcom cases in order
% of altitude and velocity

for i=1:size(variable,2)
switch mach{i}
case .08
speedno=1;
case .1
102
speedno=2;
case .2
speedno=3;
case .3
speedno=4;
case .4
speedno=5;
case .5
speedno=6;
case .6
speedno=7;
case .7
speedno=8;
end

switch alt{i}
case 10
altno=1;
case 50
altno=2;
case 100
altno=3;
case 200
altno=4;
case 300
altno=5;
case 400
altno=6;
case 500
altno=7;
case 600
altno=8;
case 700
altno=9;
case 800
altno=10;
case 900
altno=11;
case 1000
altno=12;
case 1500
altno=13;
case 2000
altno=14;
case 2500
altno=15;
case 3000
altno=16;
case 4000
altno=17;
103
case 5000
altno=18;
case 6000
altno=19;
case 7000
altno=20;
case 8000
altno=21;
case 9000
altno=22;
case 10000
altno=23;
case 11000
altno=24;
case 12000
altno=25;
end

output(:,altno,speedno)=variable{i};

end

function output=wfvarsorter(alt,mach,variable)

% Sorts wing flap data in order of altitude and velocity

for i=1:size(variable,2)
switch mach{i}
case .08
speedno=1;
case .1
speedno=2;
case .2
speedno=3;
case .3
speedno=4;
case .4
speedno=5;
case .5
speedno=6;
case .6
speedno=7;
case .7
speedno=8;
end

switch alt{i}
case 10
altno=1;
case 50
104
altno=2;
case 100
altno=3;
case 200
altno=4;
case 500
altno=5;
case 1000
altno=6;
case 1500
altno=7;
case 2000
altno=8;
case 3000
altno=9;
case 4000
altno=10;
end

output(:,altno,speedno)=variable{i};

end

function output=tdwfvarsorter(alt,mach,variable)

% Sorts three dimensional wing flap data

for i=1:size(variable,2)
switch mach{i}
case .08
speedno=1;
case .1
speedno=2;
case .2
speedno=3;
case .3
speedno=4;
case .4
speedno=5;
case .5
speedno=6;
case .6
speedno=7;
case .7
speedno=8;
end

switch alt{i}
case 10
altno=1;
105
case 50
altno=2;
case 100
altno=3;
case 200
altno=4;
case 500
altno=5;
case 1000
altno=6;
case 1500
altno=7;
case 2000
altno=8;
case 3000
altno=9;
case 4000
altno=10;
end

output(:,:,altno,speedno)=variable{i};
output=squeeze(output);
end

C.1.3 Dynapp.m

function output=dynapp(input)

% Takes Dynamic Datcom case, and translates
% into 10 variables
% 1.ALPHA 2.CLQ 3.CMQ 4.CLAD 5.CMAD 6.CLP 7.CYP 8.CNP 9.CNR 10.CLR

input(1:14)=[];
% delete header information

input(2)=strrep(input(2),' NDM ','0.000E+00');
% set undefined sections of CYP, CNP to zero

ctemp=char(input(1));
buffer=ctemp(13:36);
for i=2:10;
ctemp=char(input(i));
ctemp(13:36)=buffer;
input(i)=cellstr(ctemp);
end
% copy CLQ,CMQ across all alfas

for i=1:10
numdata(i,:)=str2num(char(input(i)));
106
end

output.ALPHA=numdata(:,1);
output.CLQ=numdata(:,2);
output.CMQ=numdata(:,3);
output.CLAD=numdata(:,4);
output.CMAD=numdata(:,5);
output.CLP=numdata(:,6);
output.CYP=numdata(:,7);
output.CNP=numdata(:,8);
output.CNR=numdata(:,9);
output.CLR=numdata(:,10);
output.numdata=numdata;

% data contained in numdata columns
% 1.ALPHA 2.CLQ 3.CMQ 4.CLAD 5.CMAD 6.CLP 7.CYP 8.CNP 9.CNR 10.CLR
%

C.1.4 Statapp.m
Statapp.m takes an individual case from the Static analysis. From this, it finds and
outputs all the aerodynamic data, such as CL, CD etc. Furthermore, it interpolates to
find any missing data.
C.1.4.1 Code

function output=statapp(data)

data(1:13)=[];

data(1)=strrep(data(1),'NDM',' ');

ctemp=char(data(1));
buf_cnb=ctemp(104:114);
for i=2:10
ctemp=char(data(i));
ctemp(104:114)=buf_cnb;
data(i)=cellstr(ctemp);
end

clipped(1,:)=str2num(char(data(1)));
for i=2:9
clipped(i,:)=str2num(char(data(i+1)));
end

a0=xcpinterp(clipped);
data(2)=strrep(data(2),'******',[' ', num2str(a0,3)]);

for i=1:10
coefficients(i,:)=str2num(char(data(i)));
107
end

output.ALPHA=coefficients(:,1);
output.CD=coefficients(:,2);
output.CL=coefficients(:,3);
output.CM=coefficients(:,4);
output.CN=coefficients(:,5);
output.CA=coefficients(:,6);
output.XCP=coefficients(:,7);
output.CLA=coefficients(:,8);
output.CMA=coefficients(:,9);
output.CNB=coefficients(:,10);
output.CLB=coefficients(:,11);

output.numdata=coefficients;

% data contained in numdata columns
% 1.ALPHA 2.CD 3.CL 4.CM 5.CN 6.CA 7.XCP 8.CLA 9.CMA 10.CNB 11.CLB


function output=xcpinterp(input)
% Interpolates to find missing Xcp at alpha=0

ALPHA=input(:,1);
XCP=input(:,7);

newxcp=interp1(ALPHA,XCP,[ALPHA(1); 0; ALPHA(2:size(ALPHA,1))],'cubic');

output=newxcp(2);

C.1.5 Difelapp.m
Difelapp.m filters out the numerical data from a Differential Elevon analysis from the
DATCOM. It outputs the rolling coefficients against differential deflections.
C.1.5.1 Code
function output=difelapp(input)

% function cleans up differential elevon data and outputs it
% in numerical form

input(1:10)=[];

input(1)=strrep(input(1),'0(DELTAL-DELTAR)=',' ');

deflections =str2num(char(input(1)));

input(1:3)=[];

for i=1:10
108
diffdata(i,:)=str2num(char(input(i)));
end

alpha=diffdata(:,1);
diffdata(:,1)=[];

output.ALPHA=alpha;
output.deltaCl=diffdata;
output.deflections=deflections;

C.1.6 Symelapp.m
Symelapp finds the numerical data from a Datcom analysis of symmetrical deflections
of the elevons.
C.1.6.1 Code
function output=symelapp(input)

% Finds the data for symmetrical deflections of
% elevons

input(1:13)=[];

for i=1:13
input(i)=strrep(input(i),'NDM',' ');
end

ctemp=char(input(1));
buffer=ctemp(83:93);
for i=2:9
ctemp=char(input(i));
ctemp(83:93)=buffer;
input{i}=ctemp;
end

for i=1:9
flapdata(i,:)=str2num(char(input(i)));
end

output.SymElDeflectionCol=flapdata(:,1);
output.CLDelta=flapdata(:,2);
output.CMDelta=flapdata(:,3);
output.CLmaxDelta=flapdata(:,4);
output.CDmin=flapdata(:,5);
% column 6 is CH(A)
% column 7 is CH(D)

% Drag force increments
input(1:12)=[];
input(1)=strrep(input(1),'0 DELTA =','');
109
deflection=str2num(char(input(1)));

input(1:3)=[];

for i=1:10
CDchange(i,:)=str2num(char(input(i)));
end

output.SymElDeflectionRow=deflection;
output.ALPHA=CDchange(:,1);
output.CDincrement=CDchange(:,2:size(CDchange,2));

C.1.7 Wingflapapp.m
Wingflapapp finds the numerical data stored within a Datcom analysis of a wingflap.
C.1.7.1 Code
function output=wingflapapp(input)

% Finds the numerical data of a wingflap

input(1:13)=[];

for i=1:13
input(i)=strrep(input(i),'NDM',' ');
end

ctemp=char(input(1));
buffer=ctemp(83:93);
for i=2:9
ctemp=char(input(i));
ctemp(83:93)=buffer;
input{i}=ctemp;
end

for i=1:9
flapdata(i,:)=str2num(char(input(i)));
end

output.WingFlapDeflectionCol=flapdata(:,1);
output.CLDelta=flapdata(:,2);
output.CMDelta=flapdata(:,3);
output.CLmaxDelta=flapdata(:,4);
output.CDmin=flapdata(:,5);
% column 6 is CH(A)
% column 7 is CH(D)

% Drag force increments
input(1:12)=[];
input(1)=strrep(input(1),'0 DELTA =','');
110
deflection=str2num(char(input(1)));

input(1:3)=[];

for i=1:10
CDchange(i,:)=str2num(char(input(i)));
end

output.WingFlapDeflectionRow=deflection;
output.ALPHA=CDchange(:,1);
output.CDincrement=CDchange(:,2:size(CDchange,2));

C.1.8 Trimapp.m
The trimapp code searches through a trim analysis case and retrieves the numerical
data from it.
C.1.8.1 Code
function output=trimapp(input)

input(1:12)=[];

for i=1:10
data(i,:)=str2num(char(input(i)));
end

output.ALPHA=data(:,1);
output.deflection=data(:,6);
output.CDt=data(:,7);
output.CLt=data(:,8);
output.CMt=data(:,9);
output.hingeM=data(:,10);

output.numdata=[data(:,1) data(:,6) data(:,7) data(:,8) data(:,9) data(:,10)];

% data contained in numdata columns
% 1.ALPHA 2.ElevonDeflection 3.CDt(taildrag) 4.CLt(taillift)
5.CMt(tailpitchingmoment)
% 6.HM (tail hinge moment)

C.2 Linearisation and Control Code
C.2.1 Srclineariser.m
This function takes variables from the Simulink model and creates a linear control
system, which is then output back to the simulation. The data format input from
Simulink is a vector of 18 variables. The first 12 are the states of the system, and the
last six are the force inputs from the previous timestep. The output the 12x6 gain
matrix where . u K = x
111
C.2.1.1 Code
function K=srclineariser(simulinkvars)

% Function linearises SRC Model around operating point defined in input
% Enable which Q matrix is desired before running

[a,b,c,d]=linmod('lintarget',simulinkvars(1:end-6),simulinkvars(end-5:end));

% % Turn
% Q=diag([5 5 5 2 2 10 20*pi./180 10.*pi./180 5*pi./180 10.*pi./180 .5.*pi./180
5.*pi./180].^-2);

% LEVEL FLIGHT, DIVE
Q=diag([5 5 5 2 2 8 1*pi./180 3.*pi./180 1*pi./180 1.*pi./180 5.*pi./180
1.*pi./180].^-2);

R=diag([1500 1000 2000 3000 2000 1000].^-2);

[K,S,E]=lqr(ss(a,b,c,d),Q,R);

C.2.2 Srcinputlin.m
This function generates the linearised input matrix. It does this by evaluating the
direct feedthrough effects of actuator position. Some state reordering is required.
C.2.2.1 Code
function d=srcinputlin(simulinkvariables)

% Function linearises the input matrix to the SRC model
% around the operating point defined in the input variables

sta=[simulinkvariables(7:9);simulinkvariables(1:6);simulinkvariables(10:12)];
inst=simulinkvariables(13:16);

% Compiled target
[a,b,c,d]=linmod('compinptarget',sta,inst);
C.2.3 Intsrclineariser.m
This code is based on the srclineariser function shown in C.2.1. This function is used
to implement a controller which includes integral action, which is detailed in Chapter
7. Some code is introduced to reconstruct the state space matrices to include the
integral states.
C.2.3.1 Code
function K=intsrclineariser(simulinkvars)

global K;

[a,b,c,d]=linmod('lintarget',simulinkvars(1:end-6),simulinkvars(end-5:end));
112

cnew=[0 0 1 0 0 0 0 0 0 0 0 0];

aau=[zeros(1),cnew];
aal=[zeros(12,1),a];
aa=[aau;aal];
aa(3:6,1:4)=-1e-20.*eye(4);

ba=[zeros(1,6);b];

ca=eye(size(aa,1));

da=[zeros(size(aa,1),6)];

Qa=diag([[0.001],[5 5 5 2 2 8 1*pi./180 3.*pi./180 1*pi./180 1.*pi./180 5.*pi./180
1.*pi./180].^-2]);

R=diag([1500 1000 2000 3000 3000 1000].^-2);

try
[K,S,E]=lqr(ss(aa,ba,ca,da),Qa,R);
catch
disp('failed, removing integral action')
% if adding integral action fails, system implements normal LQ
% controller
Q=diag([5 5 5 2 2 8 1*pi./180 3.*pi./180 1*pi./180 1.*pi./180 5.*pi./180
1.*pi./180].^-2);
[K,S,E]=lqr(ss(a,b,c,d),Q,R);
K=[zeros(size(K,1),1),K];
% Need to add another column of zeros
end
113
114
Appendix D DATCOM Analysis Files
Only the DATCOM input files are shown in this appendix. The output files are
extremely large and unwieldy. The static analysis alone is over 10,000 lines long. A
short example is shown here to give the reader some point of reference.

The archaic nature of the data input necessitates a very short explanation of the usage
of the program. The Datcom program itself simply loads a text data file called
for005.dat in its directory, carries out the tasks commanded in this input file, and then
saves its outputs in a file called datcom.out in the same directory. The input file
consists, broadly, of a number of cases. Each case describes a single aircraft at a
particular flight condition. The aircraft is defined through the use of namelists. These
exist for each section of the aircraft. For example, one namelist defines the geometry
of the fuselage, another of the wing, with others describing things such as flap or
tailplane location.

D.1 Datcom Sample Output
The following is a cropped single static solution at one flight condition.

----------------------- FLIGHT CONDITIONS ------------------------ --------
MACH ALTITUDE VELOCITY PRESSURE TEMPERATURE
REYNOLDS REF.
NUMBER NUMBER AREA
M M/SEC N/ M**2 DEG K 1/ M M**2
0 0.080 10.00 27.22 1.0121E+05 288.085 1.8535E+06 7.069
0 -------------------DERIV
0 ALPHA CD CL CM CN CA XCP CLA CMA
0
-2.0 0.028 -0.079 -0.0243 -0.080 0.025 0.305 3.998E-02 1.351E-02
0.0 0.026 0.000 0.0007 0.000 0.026 ****** 3.841E-02 1.193E-02
1.0 0.026 0.038 0.0124 0.038 0.026 0.322 3.864E-02 1.165E-02
2.0 0.027 0.077 0.0240 0.078 0.025 0.307 4.000E-02 1.161E-02
4.0 0.033 0.160 0.0471 0.162 0.022 0.291 4.299E-02 1.132E-02
6.0 0.042 0.249 0.0693 0.252 0.016 0.275 4.600E-02 1.099E-02
8.0 0.057 0.344 0.0910 0.349 0.009 0.261 4.830E-02 1.073E-02
10.0 0.078 0.442 0.1122 0.449 0.000 0.250 5.072E-02 9.957E-03
15.0 0.158 0.714 0.1539 0.731 -0.033 0.211 5.947E-02 5.205E-03
20.0 0.295 1.037 0.1643 1.076 -0.077 0.153 6.974E-02 -1.049E-03

D.2 Static & Dynamic Analysis
This text file commands an analysis of the aircraft across a velocity from Mach 0.08
to Mach 0.6. The output is a text file containing all static and dynamic coefficients.
D.2.1 Input File
DIM M
$OPTINS SREF=7.0686, CBARR=3.0, BLREF=3.00,ROUGFC=0.051$
$FLTCON NMACH=8.0,MACH(1)=.08,.1,.2,.3,.4,.5,.6,.7,NALPHA=10.0,
115
ALSCHD(1)=-2.0,0.0,1.0,2.0,4.0,6.0,8.0,10.0,15.0,20.0,NALT=1.0,
ALT(1)=10.0,STMACH=0.7,WT=7000.0,GAMMA=0.0,LOOP=2.0$
$SYNTHS XCG=1.45, ZCG=-.0575, XW=0.0, ZW=0.0, ALIW=0.0, XH=2.2,
ZH=0.5, ALIH=0.0, XV=1.8, ZV=0.0, VERTUP=.TRUE.,
SCALE=1.0,HINAX=2.4,$
$BODY NX=19.0,
X(1)=0.0099,0.0198,0.0297,0.0396,0.15,0.18,0.3,0.42,0.54,0.66,0.78,
0.9,1.02,1.14,1.2,1.5,1.875,2.25,2.625,
S(1)=0.086087,0.11724,0.13824,0.15426,0.24824,0.26378,0.30971,0.34052,
0.36249,0.37858,0.39026,0.39859,0.40418,0.40701,0.40748,0.39987,
0.36589,0.30121,0.19094,
P(1)=0.62,0.62,0.62,0.62,0.6201,.6202,.6203,.6203,.6204,.6204,.6205,.6206,
0.6206,.6206,0.6206,.6206,.6204,.6203,.6201,
R(1)=.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,
.62,.62,
ZU(1)=0.034706,0.047282,0.055722,0.062224,0.10011,0.10636,0.12488,0.13731,
0.14618,0.15265,0.15737,0.16074,0.16301,0.16413,0.16432,0.16126,
0.14755,0.12145,0.07698,
ZL(1)=-0.034725,-0.047277,-0.055773,-0.062186,-0.10009,-0.10639,-0.12491,
-0.13732,-0.14618,-0.15268,-0.15739,-0.16073,-0.16297,-0.16413,
-0.16432,-0.16124,-0.14755,-0.12148,-0.077014,
METHOD=1.0$
$WGPLNF CHRDTP=1.2399, SSPNE=1.5,
SSPN=1.5,SSPNOP=0.8801,CHRDBP=3.0,
CHRDR=3.0, SAVSI=0.0,SAVSO=0.0,CHSTAT=0.0,TWISTA=0.0,
SSPNDD=0.0,
DHDADI=0.0,DHDADO=0.0, TYPE=1.0$
$WGSCHR TOVC=0.1096,XOVC=0.4,CLI=0.0,ALPHAI=0.0,DELTAY=2.75,
CLALPA=0.1024,0.0987,.094,.0964,.1006,.1,.1,
CLMAX=1.328,1.296,1.501,1.392,1.17,1.2,1.2,
LERI=0.0254,LERO=0.0254,XOVCO=0.4,TOVCO=0.1096,CMOT=0.0,
CAMBER=.FALSE.,CLMAXL=1.3,CM0=0.0,$
$VTPLNF CHRDTP=0.4, SSPNE=0.85, SSPN=1.0, CHRDR=1.2, SAVSI=16.86,
CHSTAT=.33,TYPE=1.0$
$VTSCHR TOVC=0.1096,XOVC=0.4,CLI=0.0,ALPHAI=0.0,DELTAY=2.75,
CLALPA=0.1024,0.0987,.094,.0964,.1006,.1,.1,
CLMAX=1.328,1.296,1.501,1.392,1.17,1.2,1.2,
LERI=0.0254,
CAMBER=.FALSE.,CLMAXL=1.3,CM0=0.0,$
$HTPLNF CHRDTP=0.35,SSPNE=0.95,SSPN=1.0,CHRDR=0.8,SAVSI=30.0,
CHSTAT=1.8,TWISTA=0.0,DHDADI=0.0,TYPE=1.0$
$HTSCHR TOVC=0.1096,XOVC=0.4,CLI=0.0,ALPHAI=0.0,DELTAY=2.75,
CLALPA=0.1024,0.0987,.094,.0964,.1006,.1,.1,
CLMAX=1.328,1.296,1.501,1.392,1.17,1.2,1.2,
LERI=0.0254,
CAMBER=.FALSE.,CLMAXL=1.3,CM0=0.0,$
CASEID SRC ST with N0011SC. DAMP analysis-10m
DAMP
SAVE
NEXT CASE
116
CASEID SRC ST with N0011SC. Complete Design-Dynamic Analysis 50m
$FLTCON ALT(1)=50.0,$
DAMP
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-Dynamic Analysis 100m
$FLTCON ALT(1)=100.0,$
DAMP
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-Dynamic Analysis 200m
$FLTCON ALT(1)=200.0,$
DAMP
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-Dynamic Analysis 300m
$FLTCON ALT(1)=300.0,$
DAMP
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-Dynamic Analysis 400m
$FLTCON ALT(1)=400.0,$
DAMP
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-Dynamic Analysis 500m
$FLTCON ALT(1)=500.0,$
DAMP
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-Dynamic Analysis 600m
$FLTCON ALT(1)=600.0,$
DAMP
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-Dynamic Analysis 700m
$FLTCON ALT(1)=700.0,$
DAMP
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-Dynamic Analysis 800m
$FLTCON ALT(1)=800.0,$
DAMP
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-Dynamic Analysis 900m
$FLTCON ALT(1)=900.0,$
DAMP
SAVE
NEXT CASE
117
CASEID SRC ST with N0011SC. Complete Design-Dynamic Analysis 1km
$FLTCON ALT(1)=1000.0,$
DAMP
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-Dynamic Analysis 1.5km
$FLTCON ALT(1)=1500.0,$
DAMP
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-Dynamic Analysis 2km
$FLTCON ALT(1)=2000.0,$
DAMP
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-Dynamic Analysis 2.5km
$FLTCON ALT(1)=2500.0,$
DAMP
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-Dynamic Analysis 3km
$FLTCON ALT(1)=3000.0,$
DAMP
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-Dynamic Analysis 4km
$FLTCON ALT(1)=4000.0,$
DAMP
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-Dynamic Analysis 5km
$FLTCON ALT(1)=5000.0,$
DAMP
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-Dynamic Analysis 6km
$FLTCON ALT(1)=6000.0,$
DAMP
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-Dynamic Analysis 7km
$FLTCON ALT(1)=7000.0,$
DAMP
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-Dynamic Analysis 8km
$FLTCON ALT(1)=8000.0,$
DAMP
SAVE
NEXT CASE
118
CASEID SRC ST with N0011SC. Complete Design-Dynamic Analysis 9km
$FLTCON ALT(1)=9000.0,$
DAMP
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-Dynamic Analysis 10km
$FLTCON ALT(1)=10000.0,$
DAMP
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-Dynamic Analysis 11km
$FLTCON ALT(1)=11000.0,$
DAMP
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-Dynamic Analysis 12km
$FLTCON ALT(1)=12000.0,$
DAMP
NEXT CASE

D.3 Differential Elevon Analysis
This analysis commands a study of the effects of elevon roll.
D.3.1 Input File
DIM M
$OPTINS SREF=7.0686, CBARR=3.0, BLREF=3.00,ROUGFC=0.051$
$FLTCON NMACH=8.0,MACH(1)=.08,.1,.2,.3,.4,.5,.6,.7,NALPHA=10.0,
ALSCHD(1)=-2.0,0.0,1.0,2.0,4.0,6.0,8.0,10.0,15.0,20.0,NALT=1.0,
ALT(1)=10.0,STMACH=0.7,WT=7000.0,GAMMA=0.0,LOOP=2.0$
$SYNTHS XCG=1.45, ZCG=-.0575, XW=0.0, ZW=0.0, ALIW=0.0, XH=2.2,
ZH=0.5, ALIH=0.0, XV=1.8, ZV=0.0, VERTUP=.TRUE.,
SCALE=1.0,HINAX=2.4,$
$BODY NX=19.0,
X(1)=0.0099,0.0198,0.0297,0.0396,0.15,0.18,0.3,0.42,0.54,0.66,0.78,
0.9,1.02,1.14,1.2,1.5,1.875,2.25,2.625,
S(1)=0.086087,0.11724,0.13824,0.15426,0.24824,0.26378,0.30971,0.34052,
0.36249,0.37858,0.39026,0.39859,0.40418,0.40701,0.40748,0.39987,
0.36589,0.30121,0.19094,
P(1)=0.62,0.62,0.62,0.62,0.6201,.6202,.6203,.6203,.6204,.6204,.6205,.6206,
0.6206,.6206,0.6206,.6206,.6204,.6203,.6201,
R(1)=.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,
.62,.62,
ZU(1)=0.034706,0.047282,0.055722,0.062224,0.10011,0.10636,0.12488,0.13731,
0.14618,0.15265,0.15737,0.16074,0.16301,0.16413,0.16432,0.16126,
0.14755,0.12145,0.07698,
ZL(1)=-0.034725,-0.047277,-0.055773,-0.062186,-0.10009,-0.10639,-0.12491,
-0.13732,-0.14618,-0.15268,-0.15739,-0.16073,-0.16297,-0.16413,
-0.16432,-0.16124,-0.14755,-0.12148,-0.077014,
METHOD=1.0$
119
$WGPLNF CHRDTP=1.2399, SSPNE=1.5,
SSPN=1.5,SSPNOP=0.8801,CHRDBP=3.0,
CHRDR=3.0, SAVSI=0.0,SAVSO=0.0,CHSTAT=0.0,TWISTA=0.0,
SSPNDD=0.0,
DHDADI=0.0,DHDADO=0.0, TYPE=1.0$
$WGSCHR TOVC=0.1096,XOVC=0.4,CLI=0.0,ALPHAI=0.0,DELTAY=2.75,
CLALPA=0.1024,0.0987,.094,.0964,.1006,.1,.1,
CLMAX=1.328,1.296,1.501,1.392,1.17,1.2,1.2,
LERI=0.0254,LERO=0.0254,XOVCO=0.4,TOVCO=0.1096,CMOT=0.0,
CAMBER=.FALSE.,CLMAXL=1.3,CM0=0.0,$
$VTPLNF CHRDTP=0.4, SSPNE=0.85, SSPN=1.0, CHRDR=1.2, SAVSI=16.86,
CHSTAT=.33,TYPE=1.0$
$VTSCHR TOVC=0.1096,XOVC=0.4,CLI=0.0,ALPHAI=0.0,DELTAY=2.75,
CLALPA=0.1024,0.0987,.094,.0964,.1006,.1,.1,
CLMAX=1.328,1.296,1.501,1.392,1.17,1.2,1.2,
LERI=0.0254,
CAMBER=.FALSE.,CLMAXL=1.3,CM0=0.0,$
$HTPLNF CHRDTP=0.35,SSPNE=0.95,SSPN=1.0,CHRDR=0.8,SAVSI=30.0,
CHSTAT=1.8,TWISTA=0.0,DHDADI=0.0,TYPE=1.0$
$HTSCHR TOVC=0.1096,XOVC=0.4,CLI=0.0,ALPHAI=0.0,DELTAY=2.75,
CLALPA=0.1024,0.0987,.094,.0964,.1006,.1,.1,
CLMAX=1.328,1.296,1.501,1.392,1.17,1.2,1.2,
LERI=0.0254,
CAMBER=.FALSE.,CLMAXL=1.3,CM0=0.0,$
$ASYFLP STYPE=5.0,NDELTA=9.0,SPANFI=0.05,SPANFO=1.0,PHETE=0.0011,
DELTAL=2.,5.,10.,15.,20.,25.,30.,35.,45.,
DELTAR=-2.,-5.,-10.,-15.,-20.,-25.,-30.,-35.,-45.,
CHRDFI=0.5,CHRDFO=0.15,$
CASEID SRC ST with N0011SC. Elevon Roll Analysis-10m
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Elevon Roll Analysis 50m
$FLTCON ALT(1)=50.0,$
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Elevon Roll Analysis 100m
$FLTCON ALT(1)=100.0,$
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Elevon Roll Analysis 200m
$FLTCON ALT(1)=200.0,$
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Elevon Roll Analysis 300m
$FLTCON ALT(1)=300.0,$
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Elevon Roll Analysis 400m
$FLTCON ALT(1)=400.0,$
SAVE
120
NEXT CASE
CASEID SRC ST with N0011SC. Elevon Roll Analysis 500m
$FLTCON ALT(1)=500.0,$
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Elevon Roll Analysis 600m
$FLTCON ALT(1)=600.0,$
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Elevon Roll Analysis 700m
$FLTCON ALT(1)=700.0,$
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Elevon Roll Analysis 800m
$FLTCON ALT(1)=800.0,$
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Elevon Roll Analysis 900m
$FLTCON ALT(1)=900.0,$
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Elevon Roll Analysis 1km
$FLTCON ALT(1)=1000.0,$
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Elevon Roll Analysis 1.5km
$FLTCON ALT(1)=1500.0,$
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Elevon Roll Analysis 2km
$FLTCON ALT(1)=2000.0,$
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Elevon Roll Analysis 2.5km
$FLTCON ALT(1)=2500.0,$
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Elevon Roll Analysis 3km
$FLTCON ALT(1)=3000.0,$
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Elevon Roll Analysis 4km
$FLTCON ALT(1)=4000.0,$
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Elevon Roll Analysis 5km
$FLTCON ALT(1)=5000.0,$
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Elevon Roll Analysis 6km
121
$FLTCON ALT(1)=6000.0,$
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Elevon Roll Analysis 7km
$FLTCON ALT(1)=7000.0,$
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Elevon Roll Analysis 8km
$FLTCON ALT(1)=8000.0,$
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Elevon Roll Analysis 9km
$FLTCON ALT(1)=9000.0,$
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Elevon Roll Analysis 10km
$FLTCON ALT(1)=10000.0,$
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Elevon Roll Analysis 11km
$FLTCON ALT(1)=11000.0,$
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Elevon Roll Analysis 12km
$FLTCON ALT(1)=12000.0,$
NEXT CASE

D.4 Symmetrical Elevon Analysis
The symmetrical elevon analyis input file is shown below. It evaluates the effects that
the elevons have on pitch. Specifically, the effects on lift, pitching moment, and drag
are all calculated. The section shown is only for a small number of altitudes and at a
single mach number. In the interests of brevity, it can simply be stated that the values
of the variable ALT(1) can be altered to change the altitudes simulated, and the
value of MACH(1) can be altered to change the mach number. Both variables are in
the FLTCON namelist.
D.4.1 Input File
DIM M
$OPTINS SREF=7.0686, CBARR=3.0, BLREF=3.00,ROUGFC=0.051$
$FLTCON NMACH=1.0,MACH(1)=.08,NALPHA=10.0,
ALSCHD(1)=-2.0,0.0,1.0,2.0,4.0,6.0,8.0,10.0,15.0,20.0,NALT=11.0,
ALT(1)=50.,100.,200.,300.,400.,500.,600.,700.,800.,900.,1000.,
STMACH=0.7,WT=7000.0,GAMMA=0.0,LOOP=3.0$
$SYNTHS XCG=1.45, ZCG=-.0575, XW=0.0, ZW=0.0, ALIW=0.0, XH=2.2,
ZH=0.5, ALIH=0.0, XV=1.8, ZV=0.0, VERTUP=.TRUE.,
SCALE=1.0,HINAX=2.4,$
$BODY NX=19.0,
X(1)=0.0099,0.0198,0.0297,0.0396,0.15,0.18,0.3,0.42,0.54,0.66,0.78,
0.9,1.02,1.14,1.2,1.5,1.875,2.25,2.625,
122
S(1)=0.086087,0.11724,0.13824,0.15426,0.24824,0.26378,0.30971,0.34052,
0.36249,0.37858,0.39026,0.39859,0.40418,0.40701,0.40748,0.39987,
0.36589,0.30121,0.19094,
P(1)=0.62,0.62,0.62,0.62,0.6201,.6202,.6203,.6203,.6204,.6204,.6205,.6206,
0.6206,.6206,0.6206,.6206,.6204,.6203,.6201,
R(1)=.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,
.62,.62,
ZU(1)=0.034706,0.047282,0.055722,0.062224,0.10011,0.10636,0.12488,0.13731,
0.14618,0.15265,0.15737,0.16074,0.16301,0.16413,0.16432,0.16126,
0.14755,0.12145,0.07698,
ZL(1)=-0.034725,-0.047277,-0.055773,-0.062186,-0.10009,-0.10639,-0.12491,
-0.13732,-0.14618,-0.15268,-0.15739,-0.16073,-0.16297,-0.16413,
-0.16432,-0.16124,-0.14755,-0.12148,-0.077014,
METHOD=1.0$
$WGPLNF CHRDTP=1.2399, SSPNE=1.5,
SSPN=1.5,SSPNOP=0.8801,CHRDBP=3.0,
CHRDR=3.0, SAVSI=0.0,SAVSO=0.0,CHSTAT=0.0,TWISTA=0.0,
SSPNDD=0.0,
DHDADI=0.0,DHDADO=0.0, TYPE=1.0$
$WGSCHR TOVC=0.1096,XOVC=0.4,CLI=0.0,ALPHAI=0.0,DELTAY=2.75,
CLALPA=0.1024,0.0987,.094,.0964,.1006,.1,.1,
CLMAX=1.328,1.296,1.501,1.392,1.17,1.2,1.2,
LERI=0.0254,LERO=0.0254,XOVCO=0.4,TOVCO=0.1096,CMOT=0.0,
CAMBER=.FALSE.,CLMAXL=1.3,CM0=0.0,$
$VTPLNF CHRDTP=0.4, SSPNE=0.85, SSPN=1.0, CHRDR=1.2, SAVSI=16.86,
CHSTAT=.33,TYPE=1.0$
$VTSCHR TOVC=0.1096,XOVC=0.4,CLI=0.0,ALPHAI=0.0,DELTAY=2.75,
CLALPA=0.1024,0.0987,.094,.0964,.1006,.1,.1,
CLMAX=1.328,1.296,1.501,1.392,1.17,1.2,1.2,
LERI=0.0254,
CAMBER=.FALSE.,CLMAXL=1.3,CM0=0.0,$
$HTPLNF CHRDTP=0.35,SSPNE=0.95,SSPN=1.0,CHRDR=0.8,SAVSI=30.0,
CHSTAT=1.8,TWISTA=0.0,DHDADI=0.0,TYPE=1.0$
$HTSCHR TOVC=0.1096,XOVC=0.4,CLI=0.0,ALPHAI=0.0,DELTAY=2.75,
CLALPA=0.1024,0.0987,.094,.0964,.1006,.1,.1,
CLMAX=1.328,1.296,1.501,1.392,1.17,1.2,1.2,
LERI=0.0254,
CAMBER=.FALSE.,CLMAXL=1.3,CM0=0.0,$
$SYMFLP FTYPE=1.0,NDELTA=9.0,
DELTA=-15.,-10.,-5.,-2.,2.,5.,10.,15.,20.,

PHETE=.0506,PHETEP=.0108,CHRDFI=.8,CHRDFO=.45,SPANFI=.05,SPANFO=
1.0$
CASEID SRC ST with N0011SC. Elevon pitch analysis-10m
NEXT CASE

123
D.5 Split Flap Analysis
The split flap analysis is very similar in nature to the elevon pitch analysis. Similarly,
the input file is only at a limited set of flight conditions. The same methods as in D.4
can be used to change these.
D.5.1 Input File
DIM M
$OPTINS SREF=7.0686, CBARR=3.0, BLREF=3.00,ROUGFC=0.051$
$FLTCON NMACH=1.0,MACH(1)=.08,NALPHA=10.0,STMACH=0.7,
ALSCHD(1)=-2.0,0.0,1.0,2.0,4.0,6.0,8.0,10.0,15.0,20.0,NALT=10.0,
ALT(1)=10.,50.,100.,200.,500.,1000.,1500.,2000.,3000.,4000.,
WT=7000.0,GAMMA=0.0,LOOP=3.0$
$SYNTHS XCG=1.45, ZCG=-.0575, XW=0.0, ZW=0.0, ALIW=0.0, XH=2.2,
ZH=0.5, ALIH=0.0, XV=1.8, ZV=0.0, VERTUP=.TRUE.,
SCALE=1.0,HINAX=2.4,$
$BODY NX=19.0,
X(1)=0.0099,0.0198,0.0297,0.0396,0.15,0.18,0.3,0.42,0.54,0.66,0.78,
0.9,1.02,1.14,1.2,1.5,1.875,2.25,2.625,
S(1)=0.086087,0.11724,0.13824,0.15426,0.24824,0.26378,0.30971,0.34052,
0.36249,0.37858,0.39026,0.39859,0.40418,0.40701,0.40748,0.39987,
0.36589,0.30121,0.19094,
P(1)=0.62,0.62,0.62,0.62,0.6201,.6202,.6203,.6203,.6204,.6204,.6205,.6206,
0.6206,.6206,0.6206,.6206,.6204,.6203,.6201,
R(1)=.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,
.62,.62,
ZU(1)=0.034706,0.047282,0.055722,0.062224,0.10011,0.10636,0.12488,0.13731,
0.14618,0.15265,0.15737,0.16074,0.16301,0.16413,0.16432,0.16126,
0.14755,0.12145,0.07698,
ZL(1)=-0.034725,-0.047277,-0.055773,-0.062186,-0.10009,-0.10639,-0.12491,
-0.13732,-0.14618,-0.15268,-0.15739,-0.16073,-0.16297,-0.16413,
-0.16432,-0.16124,-0.14755,-0.12148,-0.077014,
METHOD=1.0$
$WGPLNF CHRDTP=1.2399, SSPNE=1.5,
SSPN=1.5,SSPNOP=0.8801,CHRDBP=3.0,
CHRDR=3.0, SAVSI=0.0,SAVSO=0.0,CHSTAT=0.0,TWISTA=0.0,
SSPNDD=0.0,
DHDADI=0.0,DHDADO=0.0, TYPE=1.0$
$WGSCHR TOVC=0.1096,XOVC=0.4,CLI=0.0,ALPHAI=0.0,DELTAY=2.75,
CLALPA=0.1024,0.0987,.094,.0964,.1006,.1,.1,
CLMAX=1.328,1.296,1.501,1.392,1.17,1.2,1.2,
LERI=0.0254,LERO=0.0254,XOVCO=0.4,TOVCO=0.1096,CMOT=0.0,
CAMBER=.FALSE.,CLMAXL=1.3,CM0=0.0,$
$VTPLNF CHRDTP=0.4, SSPNE=0.85, SSPN=1.0, CHRDR=1.2, SAVSI=16.86,
CHSTAT=.33,TYPE=1.0$
$VTSCHR TOVC=0.1096,XOVC=0.4,CLI=0.0,ALPHAI=0.0,DELTAY=2.75,
CLALPA=0.1024,0.0987,.094,.0964,.1006,.1,.1,
CLMAX=1.328,1.296,1.501,1.392,1.17,1.2,1.2,
LERI=0.0254,
CAMBER=.FALSE.,CLMAXL=1.3,CM0=0.0,$
$SYMFLP FTYPE=5.0,NDELTA=9.0,
124
DELTA=1.,2.,5.,10.,15.,20.,25.,30.,40.,

PHETE=0.0506,PHETEP=0.0108,CHRDFI=0.3,CHRDFO=0.3,SPANFI=0.3,SPANF
O=0.9$
CASEID SRC ST with N0011SC. Split Flap analysis
NEXT CASE

D.6 Trim Analysis
The following input file calculates the aerodynamic trim conditions of the SRC.
Although not used in the final simulation, these values are useful for calculating drag
polars, from which many useful results can be drawn.
D.6.1 Input File
DIM M
$OPTINS SREF=7.0686, CBARR=3.0, BLREF=3.00,ROUGFC=0.051$
$FLTCON NMACH=7.0,MACH(1)=.08,.1,.2,.3,.4,.5,.6,NALPHA=10.0,
ALSCHD(1)=-2.0,0.0,1.0,2.0,4.0,6.0,8.0,10.0,15.0,20.0,NALT=1.0,
ALT(1)=10.0,STMACH=0.8,WT=7000.0,GAMMA=0.0,LOOP=2.0$
$SYNTHS XCG=1.45, ZCG=-0.0575, XW=0.0, ZW=0.0, ALIW=0.0, XH=2.2,
ZH=0.5, ALIH=0.0, XV=1.8, ZV=0.0, VERTUP=.TRUE.,
SCALE=1.0,HINAX=2.4,$
$BODY NX=19.0,
X(1)=0.0099,0.0198,0.0297,0.0396,0.15,0.18,0.3,0.42,0.54,0.66,0.78,
0.9,1.02,1.14,1.2,1.5,1.875,2.25,2.625,
S(1)=0.086087,0.11724,0.13824,0.15426,0.24824,0.26378,0.30971,0.34052,
0.36249,0.37858,0.39026,0.39859,0.40418,0.40701,0.40748,0.39987,
0.36589,0.30121,0.19094,
P(1)=0.62,0.62,0.62,0.62,0.6201,.6202,.6203,.6203,.6204,.6204,.6205,.6206,
0.6206,.6206,0.6206,.6206,.6204,.6203,.6201,
R(1)=.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,
.62,.62,
ZU(1)=0.034706,0.047282,0.055722,0.062224,0.10011,0.10636,0.12488,0.13731,
0.14618,0.15265,0.15737,0.16074,0.16301,0.16413,0.16432,0.16126,
0.14755,0.12145,0.07698,
ZL(1)=-0.034725,-0.047277,-0.055773,-0.062186,-0.10009,-0.10639,-0.12491,
-0.13732,-0.14618,-0.15268,-0.15739,-0.16073,-0.16297,-0.16413,
-0.16432,-0.16124,-0.14755,-0.12148,-0.077014,
METHOD=1.0$
$WGPLNF CHRDTP=1.2399, SSPNE=1.5,
SSPN=1.5,SSPNOP=0.8801,CHRDBP=3.0,
CHRDR=3.0, SAVSI=0.0,SAVSO=0.0,CHSTAT=0.0,TWISTA=0.0,
SSPNDD=0.0,
DHDADI=0.0,DHDADO=0.0, TYPE=1.0$
$WGSCHR TOVC=0.1096,XOVC=0.4,CLI=0.0,ALPHAI=0.0,DELTAY=2.75,
CLALPA=0.1024,0.0987,.094,.0964,.1006,.1,.1,
CLMAX=1.328,1.296,1.501,1.392,1.17,1.2,1.2,
LERI=0.0254,LERO=0.0254,XOVCO=0.4,TOVCO=0.1096,CMOT=0.0,
CAMBER=.FALSE.,CLMAXL=1.3,CM0=0.0,$
$VTPLNF CHRDTP=0.4, SSPNE=0.85, SSPN=1.0, CHRDR=1.2, SAVSI=16.86,
125
CHSTAT=.33,TYPE=1.0$
$VTSCHR TOVC=0.1096,XOVC=0.4,CLI=0.0,ALPHAI=0.0,DELTAY=2.75,
CLALPA=0.1024,0.0987,.094,.0964,.1006,.1,.1,
CLMAX=1.328,1.296,1.501,1.392,1.17,1.2,1.2,
LERI=0.0254,
CAMBER=.FALSE.,CLMAXL=1.3,CM0=0.0,$
$HTPLNF CHRDTP=0.35,SSPNE=0.95,SSPN=1.0,CHRDR=0.8,SAVSI=30.0,
CHSTAT=1.8,TWISTA=0.0,DHDADI=0.0,TYPE=1.0$
$HTSCHR TOVC=0.1096,XOVC=0.4,CLI=0.0,ALPHAI=0.0,DELTAY=2.75,
CLALPA=0.1024,0.0987,.094,.0964,.1006,.1,.1,
CLMAX=1.328,1.296,1.501,1.392,1.17,1.2,1.2,
LERI=0.0254,
CAMBER=.FALSE.,CLMAXL=1.3,CM0=0.0,$
CASEID SRC ST with N0011SC. Trim analysis-10m
TRIM
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-trimmed 50m
$FLTCON ALT(1)=100.0,$
TRIM
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-trimmed 100m
$FLTCON ALT(1)=100.0,$
TRIM
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-trimmed 200m
$FLTCON ALT(1)=200.0,$
TRIM
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-trimmed 300m
$FLTCON ALT(1)=300.0,$
TRIM
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-trimmed 400m
$FLTCON ALT(1)=400.0,$
TRIM
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-trimmed 500m
$FLTCON ALT(1)=500.0,$
TRIM
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-trimmed 600m
$FLTCON ALT(1)=600.0,$
TRIM
126
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-trimmed 700m
$FLTCON ALT(1)=700.0,$
TRIM
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-trimmed 800m
$FLTCON ALT(1)=800.0,$
TRIM
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-trimmed 900m
$FLTCON ALT(1)=900.0,$
TRIM
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-trimmed 1km
$FLTCON ALT(1)=1000.0,$
TRIM
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-trimmed 1.5km
$FLTCON ALT(1)=1500.0,$
TRIM
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-trimmed 2km
$FLTCON ALT(1)=2000.0,$
TRIM
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-trimmed 2.5km
$FLTCON ALT(1)=2500.0,$
TRIM
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-trimmed 3km
$FLTCON ALT(1)=3000.0,$
TRIM
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-trimmed 4km
$FLTCON ALT(1)=4000.0,$
TRIM
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-trimmed 5km
$FLTCON ALT(1)=5000.0,$
TRIM
127
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-trimmed 6km
$FLTCON ALT(1)=6000.0,$
TRIM
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-trimmed 7km
$FLTCON ALT(1)=7000.0,$
TRIM
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-trimmed 8km
$FLTCON ALT(1)=8000.0,$
TRIM
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-trimmed 9km
$FLTCON ALT(1)=9000.0,$
TRIM
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-trimmed 10km
$FLTCON ALT(1)=10000.0,$
TRIM
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-trimmed 11km
$FLTCON ALT(1)=11000.0,$
TRIM
SAVE
NEXT CASE
CASEID SRC ST with N0011SC. Complete Design-trimmed 12km
$FLTCON ALT(1)=12000.0,$
TRIM
NEXT CASE

D.7 Mach 0.7 Analysis
The requirement for this separate analysis at this speed is due to bugs in the
DATCOM software. These results are simple the analyses summarised already in this
section, but only at Mach 0.7.
D.7.1 Input File
DIM M
$OPTINS SREF=7.0686, CBARR=3.0, BLREF=3.00,ROUGFC=0.051$
$FLTCON NMACH=1.0,MACH(1)=.7,NALPHA=10.0,
ALSCHD(1)=-2.0,0.0,1.0,2.0,4.0,6.0,8.0,10.0,15.0,20.0,NALT=20.0,
ALT(1)=10.,50.,100.,200.,300.,400.,500.,600.,700.,800.,900.,1000.,1500.,
2000.,2500.,3000.,4000.,5000.,6000.,7000.,
128
STMACH=0.8,WT=7000.0,GAMMA=0.0,LOOP=3.0$
$SYNTHS XCG=1.45, ZCG=-0.0575, XW=0.0, ZW=0.0, ALIW=0.0, XH=2.2,
ZH=0.5, ALIH=0.0, XV=1.8, ZV=0.0, VERTUP=.TRUE.,
SCALE=1.0,HINAX=2.4,$
$BODY NX=19.0,
X(1)=0.0099,0.0198,0.0297,0.0396,0.15,0.18,0.3,0.42,0.54,0.66,0.78,
0.9,1.02,1.14,1.2,1.5,1.875,2.25,2.625,
S(1)=0.086087,0.11724,0.13824,0.15426,0.24824,0.26378,0.30971,0.34052,
0.36249,0.37858,0.39026,0.39859,0.40418,0.40701,0.40748,0.39987,
0.36589,0.30121,0.19094,
P(1)=0.62,0.62,0.62,0.62,0.6201,.6202,.6203,.6203,.6204,.6204,.6205,.6206,
0.6206,.6206,0.6206,.6206,.6204,.6203,.6201,
R(1)=.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,.62,
.62,.62,
ZU(1)=0.034706,0.047282,0.055722,0.062224,0.10011,0.10636,0.12488,0.13731,
0.14618,0.15265,0.15737,0.16074,0.16301,0.16413,0.16432,0.16126,
0.14755,0.12145,0.07698,
ZL(1)=-0.034725,-0.047277,-0.055773,-0.062186,-0.10009,-0.10639,-0.12491,
-0.13732,-0.14618,-0.15268,-0.15739,-0.16073,-0.16297,-0.16413,
-0.16432,-0.16124,-0.14755,-0.12148,-0.077014,
METHOD=1.0$
$WGPLNF CHRDTP=1.2399, SSPNE=1.5,
SSPN=1.5,SSPNOP=0.8801,CHRDBP=3.0,
CHRDR=3.0, SAVSI=0.0,SAVSO=0.0,CHSTAT=0.0,TWISTA=0.0,
SSPNDD=0.0,
DHDADI=0.0,DHDADO=0.0, TYPE=1.0$
$WGSCHR TOVC=0.1096,XOVC=0.4,CLI=0.0,ALPHAI=0.0,DELTAY=2.75,
CLALPA=0.1024,0.0987,.094,.0964,.1006,.1,.1,
CLMAX=1.328,1.296,1.501,1.392,1.17,1.2,1.2,
LERI=0.0254,LERO=0.0254,XOVCO=0.4,TOVCO=0.1096,CMOT=0.0,
CAMBER=.FALSE.,CLMAXL=1.3,CM0=0.0,$
$VTPLNF CHRDTP=0.4, SSPNE=0.85, SSPN=1.0, CHRDR=1.2, SAVSI=16.86,
CHSTAT=.33,TYPE=1.0$
$VTSCHR TOVC=0.1096,XOVC=0.4,CLI=0.0,ALPHAI=0.0,DELTAY=2.75,
CLALPA=0.1024,0.0987,.094,.0964,.1006,.1,.1,
CLMAX=1.328,1.296,1.501,1.392,1.17,1.2,1.2,
LERI=0.0254,
CAMBER=.FALSE.,CLMAXL=1.3,CM0=0.0,$
$HTPLNF CHRDTP=0.35,SSPNE=0.95,SSPN=1.0,CHRDR=0.8,SAVSI=30.0,
CHSTAT=1.8,TWISTA=0.0,DHDADI=0.0,TYPE=1.0$
$HTSCHR TOVC=0.1096,XOVC=0.4,CLI=0.0,ALPHAI=0.0,DELTAY=2.75,
CLALPA=0.1024,0.0987,.094,.0964,.1006,.1,.1,
CLMAX=1.328,1.296,1.501,1.392,1.17,1.2,1.2,
LERI=0.0254,
CAMBER=.FALSE.,CLMAXL=1.3,CM0=0.0,$
CASEID SRC ST with N0011SC. MACH0.7-Trim analysis
TRIM
DAMP
SAVE
NEXT CASE
129
$FLTCON NALT=5.0,ALT(1)=8000.,9000.,10000.,11000.,12000.,$
CASEID SRC ST with N0011SC. MACH0.7-Trim analysis-halt
TRIM
DAMP
NEXT CASE
130
Appendix E Tornado Model
The following data is that of the complete SRC model as defined within Tornado. The
N0011SC was approximated by the NACA 4-digit profile NACA0011.
E.1 Wing/Body
Number of Partitions :2

Wing specific entries

Wing Symmetric :1
Apex coordinates :-1.5 0 0
Dihedral :0 0
Base chord :3

Partition specific entries

Partition half-spans :0.75 0.75
Partition sweeps :0 0.5236
Partition tapers :1 0.4133
Partition foils :11 11 11 11
Partition inner twists :0 0
Partition outer twists :0 0

Partition flapped :0 0
Flap chords (Parts) :0 0
Flaps deflect symmetric :0 0

No. Chord-wise panels :5 5
No. Span-wise panels :5 4
No. Flap-chord panels :0 0
E.2 Vertical Tail
Number of Partitions :1

Wing specific entries

Wing Symmetric :0
Apex coordinates :0.3 0 0
Dihedral :1.5708 0
Base chord :1.2

Partition specific entries

Partition half-spans :1 0
Partition sweeps :0.5236 0
Partition tapers :0.33333 0
Partition foils :11 0 11 0
Partition inner twists :0 0
131
Partition outer twists :0 0

Partition flapped :1 0
Flap chords (Parts) :0.3 0
Flaps deflect symmetric :0 0

No. Chord-wise panels :3 0
No. Span-wise panels :3 0
No. Flap-chord panels :1 0
E.3 Horitontal Tail
Number of Partitions :1

Wing specific entries

Wing Symmetric :1
Apex coordinates :0.7 0 0.5
Dihedral :0 0
Base chord :0.8

Partition specific entries

Partition half-spans :0.8 0
Partition sweeps :0.4 0
Partition tapers :0.5625 0
Partition foils :11 11 0 0
Partition inner twists :0 0
Partition outer twists :0 0

Partition flapped :1 0
Flap chords (Parts) :0.99 0
Flaps deflect symmetric :0 0

No. Chord-wise panels :3 0
No. Span-wise panels :3 0
No. Flap-chord panels :5 0
132
Appendix F VRML Model
Text within this section forms the VRML model of the SRC.
F.1 VRML Code
WorldInfo {
info ""
title "SRC World"
}
Background {
groundAngle [ 0.9, 1.5, 1.57 ]
groundColor [ 0 0.8 0,
0.174249 0.82 0.187362,
0.467223 0.82 0.445801,
0.621997 0.67 0.600279 ]
skyAngle [ 0.1, 1.2, 1.57 ]
skyColor [ 0.76238 0.8 0.1427,
0.277798 0.219779 0.7,
0.222549 0.390234 0.7,
0.60094 0.662637 0.69 ]
}
DEF SRC Transform {
translation 0 50 0
children [
DEF SRC_Cam Viewpoint {
jump TRUE
orientation 0 0.995037 0.0995037 3.14159
position 1.6 2.2 -11
description "AB SRC"
}

DEF WingBody Transform {
translation 0 0 0
scale1 0.11 1
children Shape {
appearance Appearance {
material Material {
}

texture DEF Metal ImageTexture {
url "texture/Metal.jpg"
}

}

geometry Sphere {
radius 3
}

133
}
}

DEF VTail Transform {
translation 0 1 -0.5
rotation 0 1 0 1.5708
children Shape {
appearance Appearance {
material Material {
}

texture DEF Metal ImageTexture {
url "texture/Metal.jpg"
}

}

geometry DEF VTailfront IndexedFaceSet {
color NULL
coord Coordinate {
point [ -1 -1 0,
1.53383 -0.984532
0.0291624,
1.53908 0.471114
0.00309713 ]
}

normal NULL
texCoord NULL
ccw TRUE
colorPerVertex FALSE
convex TRUE
normalPerVertex TRUE
creaseAngle 0
solid FALSE
coordIndex [ 0, 1, 2, -1 ]
colorIndex [ ]
}

}
}

DEF Rudder Transform {
translation 0 0.75 -2.5
rotation 0 1 0 1.5708
scale0.55 0.7 1
children DEF Rudder Transform {
translation 0 0 0
center -1 0 0
children Shape {
134
appearance Appearance {
material Material {
}

texture DEF Metal ImageTexture {
url "texture/Metal.jpg"
}

}

geometry DEF rud IndexedFaceSet {
color NULL
coord Coordinate {
point [ -1 1 0,
-1 -1 0,
1 -1 0,
1 1 0 ]
}

normal NULL
texCoord NULL
ccw TRUE
colorPerVertex FALSE
convex TRUE
normalPerVertex TRUE
creaseAngle 0
solid FALSE
coordIndex [ 0, 1, 2, 3, -1 ]
colorIndex [ ]
}

}
}
}

DEF LeftElevon Transform {
translation 0 0 0
rotation 0.582316 0.581216 -0.568416 2.08803
scale0.8 1 1
children DEF LElv Transform {
translation 2.74254 0.953233 -1.08747
children Shape {
appearance Appearance {
material Material {
}

texture DEF Metal ImageTexture {
url "texture/Metal.jpg"
}

135
}

geometry DEF LEl_poly IndexedFaceSet {
color NULL
coord Coordinate {
point [ 0.274389 1.00001
0.0269484,
-1 -1 0,
1 -1 0,
1 1 0 ]
}

normal NULL
texCoord NULL
ccw TRUE
colorPerVertex FALSE
convex TRUE
normalPerVertex TRUE
creaseAngle 0
solid FALSE
coordIndex [ 0, 1, 2, 3, -1 ]
colorIndex [ ]
}

}
}
}

DEF RightElevon Transform {
translation 0 0 0
rotation -0.590607 0.570406 0.570807 2.0698
scale0.8 1 1
children DEF RElv Transform {
translation 2.76402 1.12595 1.10733
children Shape {
appearance Appearance {
material Material {
}

texture DEF Metal ImageTexture {
url "texture/Metal.jpg"
}

}

geometry DEF REl_poly IndexedFaceSet {
color NULL
coord Coordinate {
point [ 0.274389 1.00001
0.0269484,
136
137
-1 -1 0,
1 -1 0,
1 1 0 ]
}

normal NULL
texCoord NULL
ccw TRUE
colorPerVertex FALSE
convex TRUE
normalPerVertex TRUE
creaseAngle 0
solid FALSE
coordIndex [ 0, 1, 2, 3, -1 ]
colorIndex [ ]
}

}
}
}
]
}

Potrebbero piacerti anche