Stanford University

advertisement
Stanford University
AA241X: Final Report
June 12, 2013
Team Infinity Eye
Authors:
Harrison Chau, Hakki Karakas, Robert Karol, DongHyun Kim, Guilherme Loures, Devina
Sanjaya, and Manu Sharma
This report is compiled and revised by Devina, and edited by Harrison
Table of Contents
List of Figures
iii
List of Tables
iv
1 Design of our airplane (analysis done
by Devina)
1.1 Weight Breakdown . . . . . . . . . .
1.2 Design Requirements . . . . . . . . .
1.3 Wing Loading Calculation . . . . . .
1.4 Wing Geometry Calculation . . . . .
1.5 Airplane Dimensions . . . . . . . . .
1.6 Airplane Inertias . . . . . . . . . . .
by Hakki and written part revised
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2 Performance analysis of our airplane (analysis done by Hakki
part revised by Devina)
2.1 Center of Gravity and Lift-to-Drag Ratio Calculation . . . . . .
2.2 Trim Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Power Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4 Lift-to-Drag Ratio Measurement . . . . . . . . . . . . . . . . . .
2.5 Climb and Turning Performance . . . . . . . . . . . . . . . . . .
2.6 Damping Ratios and Frequencies . . . . . . . . . . . . . . . . .
2.7 Stability Derivatives (Harrison) . . . . . . . . . . . . . . . . . .
3 Manufacturing and construction process (Hakki and Manu)
3.1 Material Selection . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Improvements From Initial Prototype (Manu and Devina) . . .
3.3 XFLR5 Model (Hakki, written part by Devina) . . . . . . . . .
3.4 Building Process . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.1 Description of Building Process . . . . . . . . . . . . . .
3.4.2 Lessons Learned . . . . . . . . . . . . . . . . . . . . . . .
3.5 Flight Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5.1 Observation . . . . . . . . . . . . . . . . . . . . . . . . .
3.5.2 Lessons Learned (Devina) . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
and written
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
6
7
8
8
10
11
11
.
.
.
.
.
.
.
.
.
13
13
13
15
15
15
16
16
16
17
4 Mission plan/ strategy (Devina and Robert)
4.1 State Estimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Dynamics and Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Waypoint Following . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4 Path Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5 Beacon Estimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.6 MATLAB-based Simulation of Mission Plan (any updates after PS2 was done
by Devina) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
i
1
1
1
2
3
4
5
17
18
18
19
20
20
21
4.6.1 Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.6.2 Energy Consumption Estimation . . . . . . . . . . . . . . . . . . . .
4.6.3 Static and Dynamic Path Planning Algorithm . . . . . . . . . . . . .
4.6.4 Expected Simulated Score . . . . . . . . . . . . . . . . . . . . . . . .
MATLAB/ SIMULINK-based Simulation of Flight Path (Manu and Guilherme)
21
21
22
22
24
5 Final control system design (Robert, helped: Devina, Hakki, and Harrison,
written part revised by Devina)
5.1 Longitudinal and Lateral Aircraft Dynamics . . . . . . . . . . . . . . . . . .
5.2 Control Law and Strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3 Advantanges and Disadvantages of Using Modern Control . . . . . . . . . .
5.4 Choice of Dynamics Model and Debugging Process . . . . . . . . . . . . . .
5.5 Attempt to Implement Line Tracking (written by DongHyun) . . . . . . . .
5.6 Lessons Learned . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
28
29
31
31
32
32
4.7
6 Experimental result and observation from all autonomous flights in the
competition (Robert)
33
7 Experimental and Simulated Score (Devina)
7.1 Complete Mission with Bixler 2 . . . . . . . . . . . . . . . . . . . . . . . . .
7.2 Attempt to Complete a Mission with our own Airplane . . . . . . . . . . . .
38
39
40
8 Website and archived files (Devina, Hakki, Harrison, Manu, and Robert) 41
Appendix: Results from MATLAB Simulation of Mission Plan (Devina)
ii
42
List of Figures
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Wing loading vs. Thrust/Weight plot . . . . . . . . . . . . . . . . . .
Lift Distribution Without Fuselage . . . . . . . . . . . . . . . . . . .
Dimensions of our proposed airplane . . . . . . . . . . . . . . . . . .
Weight distribution and location of center of gravity . . . . . . . . . .
Aerodynamic performance polars of our proposed airplane . . . . . .
Required power at various velocities . . . . . . . . . . . . . . . . . . .
Altitude vs. time during flight test . . . . . . . . . . . . . . . . . . .
Airspeed vs. time during flight test . . . . . . . . . . . . . . . . . . .
Required power at various climb gradients . . . . . . . . . . . . . . .
First airplane design . . . . . . . . . . . . . . . . . . . . . . . . . . .
Final airplane design . . . . . . . . . . . . . . . . . . . . . . . . . . .
Rebuilt airplane and Bixler 2 . . . . . . . . . . . . . . . . . . . . . .
Complete static path and field of view . . . . . . . . . . . . . . . . .
Sample flight paths . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sample altitude vs. time plot . . . . . . . . . . . . . . . . . . . . . .
Simulating environment overview . . . . . . . . . . . . . . . . . . . .
Simulating environment Dynamics block . . . . . . . . . . . . . . . .
Sample flight paths . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Control Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . .
Line tracking algorithm . . . . . . . . . . . . . . . . . . . . . . . . . .
Experimental result from a full mission with Bixler 2 . . . . . . . . .
Aileron, elevator, rudder, and throttle commands vs. time for Bixler 2
Experimental result from a mission with our own airplane . . . . . .
Aileron, elevator, rudder, and throttle commands vs. time for our own
Simulated path for a complete mission with Bixler 2 . . . . . . . . . .
Simulated path for a mission with our airplane . . . . . . . . . . . . .
iii
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
airplane
. . . .
. . . .
3
3
4
5
7
8
9
9
10
14
14
15
19
23
24
25
26
27
30
32
34
35
36
37
40
41
List of Tables
1
2
3
4
5
6
7
8
9
10
11
Component-by-component mass breakdown of our final airplane design
Initial design parameters . . . . . . . . . . . . . . . . . . . . . . . . . .
Inertias of our proposed airplane . . . . . . . . . . . . . . . . . . . . . .
Damping ratios and frequencies analysis of our proposed airplane . . .
Non-dimensional derivatives of our final aircraft . . . . . . . . . . . . .
Statistical result from 30 simulation cases . . . . . . . . . . . . . . . . .
True beacon location for a complete mission with Bixler 2 . . . . . . .
Simulation result for a complete mission with Bixer 2 . . . . . . . . . .
True beacon location for a mission with our own airplane . . . . . . . .
Simulation result for a mission with our airplane . . . . . . . . . . . . .
Data from path planning simulation . . . . . . . . . . . . . . . . . . . .
iv
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
2
6
11
12
24
39
39
40
41
43
1
Design of our airplane (analysis done by Hakki and
written part revised by Devina)
In this section, we detail the design process of our airplane. This section includes the threeview drawing and physical characteristics of our final airplane design.
1.1
Weight Breakdown
Weight is an important property to consider during the design process. Foam was chosen as
the material, instead of balsa, since the maximum saving in mass from using balsa is only
about 20-30 grams, and foam is less fragile and is easier to fix. The manufacturing and
construction process is described in detail in section 3. Table 1 details the estimated and
measured component-by-component mass of our final airplane. The total weight is 5.15 N.
Component
Motor
Propeller
Battery
ESC
Telemetry Radio
Ardupilot
Wing
Fuselage
Boom
Tails
Total
Measured Mass (g)
60
10
80
20
20
115
110
60
20
30
525
Table 1: Component-by-component mass breakdown of our final airplane design
1.2
Design Requirements
In designing the airplane, we choose some important speeds for our airplane to ensure safe,
efficient flights. First, we set our stall speed to be low to ensure that the airplane can fly
slowly without stalling and landing without damaging the airplane. Second, we set our cruise
speed (Vcruise ) to be 8 m/s to ensure high cruise range so that we can increase our coverage
area without flying very slow. These speeds were chosen because our best endurance speed
is very close to our stall speed (Vstall ), which is 5.25 m/s. Although we choose not to fly at
our best speed, we will not suffer high penalty by flying a little faster. In addition to speeds,
we also chose our cruise altitude (hcruise ), aspect ratio of the wing (AR) and climb gradient
(G). Table 2 summarizes our initial design parameters.
1
Parameters
Vstall
Vcruise
hcruise
AR
G
Initialized Value
5.6 m/s
8 m/s
400 ft
8.76
0.261 rad
Table 2: Initial design parameters
1.3
Wing Loading Calculation
Based on our design requirements, we constructed our wing loading (W/S) vs. thrust-toweight ratio (T /W ) graph. We will use this graph to choose our W/S value. Thus, based
on the weight of the airplane and the thrust specified by the manufacturer or our propeller,
we determined the wing area. This analysis is based on Raymer’s airplane design method.
Equations 1, 2, and 3 are used to construct our W/S vs. T /W graph. These equations
ensure that we satisfy our stall speed constraint, best range cruise speed constraint, and rate
of climb constraint, respectively.
2
(W/S)stall = 0.5ρVstall
CLmax
(W/S)cruise = q
(W/S)climb
q
π(AR)eCDp
s
CDp
1
= (T /W − G) + q(AR)e (T /W − G)2 − 4
2
π(AR)e
(1)
(2)
(3)
Figure 1 shows our W/S vs. T /W graph. The blue vertical line corresponds to stall speed
constraint, the vertical red line corresponds to cruise speed constraint, the horizontal yellow
line corresponds to propulsion constraint, and the green curve corresponds to climb constraint. Here, we can see that we have more than enough thrust to choose the highest W/S,
but W/S is constrained by stall speed. Using equation 1, we obtain
(W/S)stall = 0.5 × 1.223 × 5.62 × 1.1988 = 22.98 N/m2 .
This is the value we will further use for our calculations. So, our wing loading is
W/S = 22.98 N/m2 .
2
Figure 1: Wing loading vs. Thrust/Weight plot
1.4
Wing Geometry Calculation
Based on our W/S and W , we obtain the reference area (Sref ) to be 0.2238 m2 . Using
this value and our chosen AR, we found the wing span (b) of our airplane to be 1.4 m.
Using XFLR5, we determined the dimensions of our wing. We aim to get an elliptical lift
distribution on the wings at cruise speed. Figure 2 shows the lift distribution without the
fuselage. The dashed line is a perfect ellipse, and the solid line is our lift distribution. Here,
we can see that the lift distribution is very close to an ellipse.
Figure 2: Lift Distribution Without Fuselage
3
1.5
Airplane Dimensions
After we designed our wing and fuselage, we used XFLR5 to design tail surfaces. We then
created our model in XFLR5 with using our design dimensions. We used SD7032 airfoil
for the wings which is low reynolds number airfoil. Our fuselage is designed to blend with
the wing. The fuselage uses NACA 0021 airfoil. Our propeller is mounted on the nose of
the airplane. Figure 3 shows dimensions of our proposed airplane, and figure 4 shows the
positions of the weights and center of gravity (CG).
Figure 3: Dimensions of our proposed airplane
4
Figure 4: Weight distribution and location of center of gravity
Other important design parameters are below.
Sref = 0.2238
Svertical = 0.0163
Shorizontal = 0.0487
Incidence of horizontal tail to fuselage = 0◦
M AC = 168.64
Static Margin = 22.4%
1.6
m2
m2
m2
mm
Airplane Inertias
Table 3 shows the calculated inertias for our proposed airplane.
5
Inertias
Ixx
Iyy
Izz
Ixz
(104 kg.mm2 )
1.557
1.524
3.031
0
Table 3: Inertias of our proposed airplane
2
Performance analysis of our airplane (analysis done
by Hakki and written part revised by Devina)
In this portion of the report, we detail our performance analysis. This section includes
calculations for center of gravity and lift-to-drag ratio (L/D), trim, required power, damping
ratios and frequencies, and stability derivatives.
2.1
Center of Gravity and Lift-to-Drag Ratio Calculation
First, we calculated our best cruise CL value to get the best cruise speed for our airplane.
p
CLbestcruise = π(AR)CDp = 0.9899
q
Vbestcruise = 0.5ρSref CWL,best
= 6.19 m/s
cruise
Now, we need to calculate the drag at this speed and the CL values. Parasitic drag of the
airplane is calculated to be 0.0356. Therefore,
CD = CDp +
2
CL
π(AR)e
= 0.0807
Recall that from section 1.3, we found that CLmax = 1.1988 . Thus, the maximum lift-to-drag
ratio is
(L/D)max = CL /CD = 12.26
Since we are not flying at our best cruise speed, we calculated L/D at our cruise speed (= 8
m/s) to make sure that this design still flies effectively at our cruise speed. Note that since
this speed is higher than best cruise speed, the L/D will be lower. Assuming that the change
in parasitic drag is negligible with small speed increment, we only need to calculate new CL
value to calculate L/D at 8 m/s. Thus,
CLcruise =
(L/D)cruise =
W
= 0.5949
2
0.5ρSref Vcruise
CL
= 0.5103/0.445 = 11.46
CD
So, by flying faster, we lose 6.9% of (L/D)max , which is reasonable.
6
2.2
Trim Analysis
We chose to perform the trim analysis not at our best cruise speed because our best cruise
speed results in CL = 1.06, which is very high. To trim the airplane at this speed in vortex
lattice method, the CG point is adjusted to be a little back of the 25% mean aerodynamic
chord (M AC). Figure 5 shows aerodynamic performance polars of our proposed airplane.
The green dot is our trimmed point.
(a) CL vs. α
(b) CL vs. CD
(c) Cm vs. α
Figure 5: Aerodynamic performance polars of our proposed airplane
7
2.3
Power Analysis
To calculate the required power, we assume the overall efficiency of the propulsion system
to be 40%. We also took in to account the power usage for autopilot, GPS, and telemetry
system, which is nearly 30% of total required power. First, we calculate CD value at flight
speed to find drag. For a level flight, thrust is equal to drag. The required power can be
calculated using thrust and velocity (see equation 4).
P = T V = DV
(4)
Thus, the required power is shown in equation 5
Preq = P/ηoverall
(5)
Figure 6 shows the relation between power and velocity and the required power at our design
point.
Figure 6: Required power at various velocities
The required power at our design point is 19.49 W. Using this value and accounting energy
loss from the climb we can calculate total flight time for our airplane.
ttotal = (Etotal − Eclimb )/Preq + tclimb = 7.82 min
2.4
Lift-to-Drag Ratio Measurement
Figures 7 and 8 show our flight test data of our own aircraft. This set of data is obtained
from our third flight test, as explained on section 3.5.
8
Figure 7: Altitude vs. time during flight test
Figure 8: Airspeed vs. time during flight test
From these data, we can see that we tried to fly the airplane at different altitude and try to
do several maneuvers to make sure the airplane flies well. From the airspeed data, we can
see that we started by flying slowly, and the airspeed was between 4 m/s and 6 m/s (see
airspeed when 200 s ≤ t ≤ 500 s). Looking at the altitude plot, we can see that at about 350
s and 425 s, the aircraft drops to lower altitude and speed increases. The drop in altitude
shows that the airplane stalled and we increase the throttle and brought the airplane back
up. Between 200 s and 500 s, the airspeed is between 5 m/s and 6 m/s. Averaging these
9
values, we found that our stall speed is about 5.5 m/s. Thus, the measured maximum lift
coefficient is
CLmax =
W
2
0.5ρSref Vstall
= 1.2592
In section 2, we found that our calculated CLmax = 1.1988, which is about 4.8% lower than
the measured CLmax . Thus, we can conclude that our calculation agrees with our flight test
data.
2.5
Climb and Turning Performance
Recall that our climb gradient is 0.261 rad. At this climb gradient, the required power is
71.1 W. Figure 9 shows the required power at various climb gradients.
Figure 9: Required power at various climb gradients
10
Next, we calculated our max turning rate to use in our autopilot. Assuming our load factor
is 2 (reasonable for RC airplanes), we obtain
ψmax =
2.6
√
g n2 −1
V
= 2.124 rad/s = 121.7 deg/s
Damping Ratios and Frequencies
Table 4 shows damping ratios and frequencies of our airplane. We obtained this value from
XFLR5.
Mode
Damping Ratio
Short period
Phugoid
Dutch roll
Spiral
Roll
0.844
0.051
0.321
0.000
0.000
Undamped Natural
Frequency (Hz)
1.445
0.172
0.854
0.000
0.000
Damped Natural
Frequency (Hz)
2.697
0.173
0.902
0.000
0.000
Table 4: Damping ratios and frequencies analysis of our proposed airplane
2.7
Stability Derivatives (Harrison)
Table 5 shows stability derivatives of our airplane. We obtained these values from XFLR5.
In section 5, we will explain how we use these values in our control system.
11
Parameters Values
CXu
-0.05323
CLu
0.00073
Cmu
-0.00336
CXa
0.38066
CLa
5.31148
Cm a
-1.18992
CXq
-0.20547
CLq
9.18399
Cm q
-17.33060
C Yb
-0.23315
Clb
-0.00870
Cnb
0.07130
C Yp
0.02730
Clp
-0.52685
Cnp
-0.08458
C Yr
0.18916
0.15434
Clr
-0.05512
Cnr
CeXd
-0.00954
CeYd
0
CeZd
0.5524
Celd
0
-1.54597
Cemd
Cend
0
CaXd
0
CaYd
0
CaZd
0
0.34850
Cald
Camd
0
Cand
-0.0398
CrXd
0
CrYd
0.12026
CrZd
0
Crld
-0.00529
Crmd
0
Crnd
-0.03893
Table 5: Non-dimensional derivatives of our final aircraft
12
3
Manufacturing and construction process (Hakki and
Manu)
In this portion of the report, we details our manufacturing and construction process. This
section includes the discussion on the choice of material, XLFR5 model, building process,
and flight testing. For pictures and videos, please visit our website: infinity-eye.com.
3.1
Material Selection
We designed and built our first airplane using blue foam since it is easy to work with. The
total mass of the aircraft is around 570 grams. While we knew that making a balsa airplane
would give us some weight benefit, we were more inclined to stick with foam as our main
material for all our airplanes. To further reduce the weight, we redesigned the fuselage joints
to make it act as a part of wing. Our fuselage was cut in foam cutter with a standard NACA
airfoil profile with chord length of 320 mm.
Our new and final design was only 530-540 grams in total, and was very close and even
lighter than some other balsa airframes designed by other teams in the class. One thing that
we gained using foam was crashworthiness. In spite multiple fatal crashes, our airplanes survived minor crashes while a balsa airframe would be destroyed and take a lot of time to repair.
Overall, using foam, carbon fiber spars, and some epoxy and superglue made most of the
airplane and the result were great. It could have been done better by reinforcing with some
micro carbon fiber rods in the structure, especially in the fuselage to avoid cracks.
3.2
Improvements From Initial Prototype (Manu and Devina)
After testing our initial aircraft prototype, we found several problems and improvements
are needed. The biggest problem was the CG is far too behind. Constrained by the design
of fuselage and wing, which we chose for simplicity and lowest possible weight and drag,
the motor had to be placed over 6 inches forward. To overcome this, we redesigned the
configuration such that this time the wing was moved back by few inches. The second
problem was that the tail had lot of flutter due to a long and slender boom. This problem
was overcome by reducing the size of vertical tail and length of tail boom. Our initial aircraft
prototype is shown in figure 10. After these design change were made, we build the new
airframe. Below is the picture of our final airplane. (see figure 11).
13
Figure 10: First airplane design
Figure 11: Final airplane design
Due to an unfortunate crash two days before the final day of the competition, we built
another airplane for the mission. This design should be the same as shown in figure 11, but
since we did not have access to PRL lab since it was late at night, we did not sand down
part of the fuselage. Also, due to lack of manpower and limited time, on Monday we flew
Bixler 2 for a complete mission and only part of a mission with our own airplane. Figure 12
shows our rebuilt airplane and Bixler 2.
14
Figure 12: Rebuilt airplane and Bixler 2
3.3
XFLR5 Model (Hakki, written part by Devina)
The three-dimensional model of our airplane design was built using XLFR5. We chose
to use XFLR5 to build the model because the software allows us to specify aerodynamic
properties, such as chord length, span, airfoil shape, dihedral, sweep, etc., and it calculates
other properties, such as aspect ratio, reference area, etc. Also, by building the model in
XFLR5, we can use this model for vortex lattice method analysis in AVL and XFOIL.
3.4
Building Process
In this section, we describe our building process and state lessons we learned.
3.4.1
Description of Building Process
We decided to take a very simple and easy approach to build the airframe by using mostly
blue foam and carbon fiber spars. To design the blended fuselage with blue foam, we cut
a hollow NACA 0021 airfoil with chord length of 320 mm and thickness of 10mm. This
would become the center section of fuselage accompanied by two similar sections on each
side semi-hollowed by hot iron. After gluing the sections, we sanded the fuselage at Product
Realization Lab to reach proper blend with the wing section. The greatest advantage of
blending the fuselage and keeping the main fuselage length to only 320 mm was weight. We
found out that the total weight of aircraft frame including wing, spars and tail sections was
around 200 grams.
Our aircraft has T-tail and we joined the tail with fuselage with a very simple construction
15
a square carbon fiber boom. Our servos were mounted on the T tails itself, which mode the
CG move aft but we will move the servos into the fuselage in our next design. Nevertheless,
we added little weight at the nose to compensate for aft CG movement. Overall, the build
of the aircraft was really simple and we were successful in making a lighter aircraft then our
expectations.
3.4.2
Lessons Learned
Firstly, we should have included a slight dihedral to reduce the airplane sensitivity to roll so
that the pilot can control the airplane more easily. However, the lack of dihedral was not a
problem at all for an autopilot. There are two options to add some dihedral to the airplane:
1. Add two small outboard sections at an angle to give the whole wing some effective
dihedral angle
2. Install the wing with an angle which may be little challenging due to spar running
across the fuselage
To get better stability in roll, we could also move the CG down in the height from the
centroid of the wing. Secondly, we learned that we should use better methods to connect
wings, boom and motor mount to fuselage. Currently we used epoxy to glue them, but it
is not reliable for frequent use. Thirdly, we should use solve the vibration (flutter) for the
tail better. There are many ways the tail can be more strengthened without compromising
weight, such as using micro carbon fiber rods on lateral and longitudinal sections of tails to
give better rigidity.
3.5
Flight Tests
In this section, we detail our observation from flight testing our own aircraft and the lessons
learned from flight testing. Since we did more flight tests with Bixler 2, we will talk in more
detail about the lesson learned from Bixler 2 flight tests.
3.5.1
Observation
We begin new test flights with the airframe following similar flight envelope testing as we
mentioned in Homework 2. The aircraft flew as expected. The roll is extremely sensitive and
has not improved from the previous prototype, but our autopilot can control the roll stability.
Flight 1: Slow ascent and Descent Powered Flight 100 m (Hakki and Manu)
At throttle of about 30%, the aircraft took off upwind and the aircraft behaved very stable
and flew steady. Due to its light weight, it had tendency to gain altitude without additional
throttle (due to winds) but we landed safely. Successful flight.
Flight 2: Full Round Course Flight at Lake Lagunita (Hakki and Manu)
During the next flight, we expanded our envelope to rather full course flight. We flew the
16
airplane at about 10 m/s (gusty winds). The aircraft behaved really well and responded very
well up elevator and ailerons.
Flight 3: Another Full Round Course Flight at Lake Lagunita (Hakki and Devina)
From previous flight data, we found that we placed the pitot tube too close to the propeller,
and thus the data is affected by the downwash from the propeller. So, for this flight, we
place the pitot tube farther away and repeat the test done in flight 2. During the flight, we
observed that the airplane likes to roll due to the lack of dihedral.
3.5.2
Lessons Learned (Devina)
From multiple flight tests, we found that once we got the autopilot to work, the autopilot can
fly both our airplane and Bixler 2 better than us, especially during high wind. The autopilot
did a better job in keeping the airplane stable than we can. We also tried the following with
our autopilot on Bixler 2:
1. Taking off with autopilot
2. Flying Bixler 2 when ground speed 2 m/s and air speed is about 11 m/s
Thus, we know that our autopilot is capable of flying the airplane during high wind, and
our autopilot will work for any remote-controlled airplanes as long as we input the correct
stability derivatives to change the dynamics of the airplane. Note that we did not tune any
gain when we transition from Bixler 2 to our own airplane. Even so, some tuning might be
needed depending on the airplane design.
4
Mission plan/ strategy (Devina and Robert)
In this portion of our report, we detail our mission plan/ strategy that we used in the MATLAB simulation and in the mission. We also include MATLAB simulation that focuses on
the mission plan and excludes any dynamics of the airplane and MATLAB/ SIMULINK
simulation that simulates the dynamics of the airplane and takes in the location of the waypoints generated by the MATLAB simulation. We used only the MATLAB simulation for
implementing our mission plan in arduino since the MATLAB/ SIMULINK simulation was
not ready in time.
Our mission plan consists of five important components: state estimation, a stabilizing
controller, the ability to perform waypoint tracking, a path planning method, and beacon
estimation. We will detail our thoughts on each component and describe the simplified
algorithm that is implemented in arduino if any.
17
4.1
State Estimation
For our mission plan, we consider the following states:
• x: x-location
• y: y-location
• z: z-location
• ẋ: x-velocity
• ẏ: y-velocity
• ż: z-velocity
• φ: roll
• θ: pitch
• ψ: yaw
• φ̇: roll rate
• θ̇: pitch rate
• ψ̇: yaw rate
• α: angle of attack
• β: side slip angle
• h: altitude
• ḣ: rate of change of altitude
In the MATLAB Our state estimation method is to estimate the variables by using the raw
sensor data, and perform a numerical integration / rotation scheme in order to estimate the
remaining state variables.
4.2
Dynamics and Controls
We are using LQR for lateral and longitudinal controls (see section 5 for details). The
dynamics model of the aircraft was based on Automatic Control of Aircraft and MIssiles by
Blakelock.
18
4.3
Waypoint Following
Our MATLAB simulation (CompleteOpenLoopPath.m) generates a set of waypoints for our
static path planning. These points determined our initial flight path until the airplane finds
all beacons. Figure 13 (generated using CompleteOpenLoopPath.m) shows the complete
static path with the field of view. This trajectory will allow us to efficiently scout out
the beacons, and since we will have no prior knowledge about the locations, no dynamic
waypoints will be needed. If the airplane completes the static loop, the aircraft will be
spiraling up to the maximum altitude of 400 ft. The green color indicates the first part of
the static path, and the purple color indicates the second part of the static path.
150
100
y (m)
50
0
−50
−100
−150
−200
−150
−100
−50
0
x (m)
50
100
150
200
Figure 13: Complete static path and field of view
Once all beacons are seen, the waypoints will be generated dynamically based on our cost
function that takes into account the amount of energy used to visit the beacon and the
percent increase in accuracy. The path planning will be discussed in more detail in the next
section (see section 4.4).
Unfortunately, we did not have enough manpower and time to implement the dynamic
waypoint following. For our mission, we used a set of waypoints generated by the MATLAB
simulation for static path planning (with slight modification)
and three points that at our
Student Version of MATLAB
estimated beacon location after all three beacons are seen. Since MATLAB simulation does
not take into account the dynamic of the airplane, we used flight test to modify the waypoints.
We found that we needed to delete the second waypoint since the airplane is not capable of
making such a sharp turn and the extra distance allows the autopilot to stabilize and make
a smooth turn. By following these waypoints, the airplane will cover most of Lake Lagunita,
and once the airplane finds all three beacons, the airplane will go back and forth between
19
three beacons; no cost function applied here. Since waypoint following worked well, we did
not implement line tracking. We did try to implement line tracking, but it did not work so
well, and due to limited time, we used waypoint following instead.
4.4
Path Planning
In MATLAB simulation (openlooppath.m), the path planning is a two tiered approach.
First, the aircraft will follow the static open-loop path (spiral path as shown in the previous
section) for scouting the three beacons offline. As soon as all beacons are found, a dynamic
path planning algorithm will switch in. This planning algorithm will calculate an expected
reward of scouting each beacon. This reward will be calculated based on the current estimated error, as well as the energy used of taking more measurements at that site. The
plane will remain at the same altitude as at the last altitude in static open-loop path, and
then take more measurement as needed; the necessity of visiting which beacon to take extra
picture is determined by a cost function that takes into account the amount of energy spent
to visit the beacon and the improvement in our estimation. The aircraft will fly back and
forth and take more picture until the estimated error is around 3 meters, the flight time is
about 7 minutes, or all energy in the battery is used. These constraints are based on our
score calculation that take the error to be minimum of 3 meters and our experimental result
of endurance time. There is no optimization done for the path planning.
Our path planning that is implemented in arduino is a little different; we simplified our path
planning due to limited time. Similar to our MATLAB simulation, we have the airplane
start flying in a spiral path. However, there’s no cost function applied here. So, the airplane
will fly back and forth between three beacons, while in our MATLAB simulation the airplane
will not visit a beacon unless we need to improve the accuracy of our estimation without
draining too much battery. We did not use MATLAB/ SIMULINK simulation for our path
planning since the simulation was not ready in time.
4.5
Beacon Estimation
For our MATLAB simulation, the beacon estimation method is to discretize the space, and
slowly chip away at it as new measurements are taken. Since every time we do not see the
beacon in our field of view, we know that there are no beacons in a given area, we can then
mark those spaces as visited with no beacon. Every time a new measurement is taken which
contains the beacon we can mark a set of points as potential places for the beacon to be and
average those locations in the end. It turns out that this method is hard to implement in
arduino. Thus, we implement Kalman filter for our beacon estimation in arduino.
For arduino, we use a Kalman Filter with stationary dynamics to get an accurate estimate of
the beacon location. This requires small amount of computation and memory consumption.
However, it is no longer taking advantage of the strict boundaries given to use through the
measurements. These hard bounds could be vary useful for our estimation, and discarding
them would result in estimates outside of the allowable region.
20
4.6
MATLAB-based Simulation of Mission Plan (any updates after PS2 was done by Devina)
From our MATLAB simulation, we created our static path planning algorithm that the
aircraft will follow once it gets to 100 ft altitude until it sees all three beacons, and our
dynamic path planning algorithm that the aircraft will follow once it sees all three beacons.
The simulation is performed for our second-iteration aircraft.
4.6.1
Assumptions
This simulation assumes that the aircraft is already at 100 ft, the climb rate is 8.57 m/s,
and the velocity is constant at 8 m/s. The simulation does not take into account airplane’s
turning radius, and does not have a model of dynamics and control of the airplane. Thus,
the airplane is treated as a point mass that moves around in the x,y,z plane. The time and
percent energy used calculated from this simulation excludes the time for pre-flight checks,
take off, and landing. Time of sight is set to zero when the airplane crosses 50 ft.
To make this simulation more realistic, we set the constraint in flight time to be no more
than 7 minutes and the percent energy used to be no more than 40%, and we multiply the
approximated time and energy used by a factor of 1.5. This factor should let us compensate for the time and energy used when we actually take into account dynamics and control
of the aircraft, and thus, we can get more accurate approximation in the time and energy
consumption. We set the maximum percent energy used for flight to be 40% since from
experimental data, we found that the electronics on board drained lots of battery, and we
did not take these energy in our energy calculation.
The simulation generates 2 figures for each case: x vs. y (showing our path, true location
of the beacons, target point estimation circles, and our estimation of beacon location) and
altitude vs. time. The energy consumption is printed to the screen as the simulation running.
4.6.2
Energy Consumption Estimation
Our path planning algorithm takes in some performance analysis data, such as CD , ρ, Sref ,
V , and ηoverall , to simulate our energy consumption. The energy consumed (excluding preflight checks, take off, landing, and battery consumed by the electronics) is computed using
equation 6.
1 2
(6)
Econsumed = maircraf t gh + ρV Sref CD (1 + ηoverall )
2
where maircraf t is the mass of the aircraft in kg, g is the gravitational acceleration (= 9.81
m/s2 ), h is altitude in m, ρ is air density (= 1.2008 kg/m3 ), V is aircraft velocity, Sref
is reference area of the aircraft, CD is drag coefficient, and ηoverall is the overall efficiency.
We also know that we will be using 600 mAhr, 7.4V battery. This means that the energy
21
available (Eavailable ) is 1.5984 × 104 J. Thus, we can compute the precent energy consumed
using equation 7. Excluding the energy used for take off, we find that we use about 14% of
our available energy if the aircraft follows our complete static path plan.
%Econsumed =
Econsumed
× 100
Eavailable
(7)
As mentioned previously, we multiply our energy estimation by a factor of 1.5 since we do
not take into account any dynamics and control of the aircraft.
4.6.3
Static and Dynamic Path Planning Algorithm
For static path planning, we have a predetermined path for the aircraft to follow. We calculated the time to complete the entire static path planning to be 105 seconds. At the end
of the static path planning, our simulation will print out the estimated beacon location,
estimated error, estimated percent energy used, and our time of sight.
Entering the dynamic path planning, the aircraft will remain flying at the same altitude,
and start taking more measurement as necessary or until it reaches the limitation in energy
available. For dynamic path planning, we create a cost function based on the estimated
error and energy used to improve the accuracy of our estimation. If the energy used to go
to each beacon is less than 1%, then our simulation will tell the aircraft to take additional
measurement from the beacon with highest estimated error. If the energy used to go to each
beacon is more than 1%, then our simulation will calculate the decrease in error and the
energy used to visit each beacon, and if the percent decrease in the error is 40 times larger
than the percent energy used, then the aircraft will take an additional measurement at that
beacon. The aircraft will stay in the dynamic path planning until the estimated error is
about 3 m, or if there is no more energy.
4.6.4
Expected Simulated Score
To compute the statistics of our expected score, we ran 30 test cases with different locations
of the beacons. The raw data from each test case are included in Appendix. Figures 14
and 15 shows sample figures generated from our simulation. Figure 14 shows our path, true
location of the beacons (symbol: black x with circle around it), target point estimation
circles, and our estimation of beacon location (symbol: yellow circle). The red, green, and
blue circles correspond to first, second, and third beacon, respectively. The percent energy
used is printed to screen. Note that our simulation will tell the aircraft not to visit the
beacon if our estimation from static path is accurate or the energy used to go to the beacon
is too high.
22
150
100
100
50
50
y (m)
y (m)
150
0
0
−50
−50
−100
−100
−150
−150
−200
−150
−100
−50
0
x (m)
50
100
150
200
−200
(a) Case 1: score = 55.5803
−150
−100
−50
0
x (m)
50
100
150
200
(b) Case 2: score = 72.6261
150
150
100
100
50
y (m)
y (m)
50
0
0
Student Version of MATLAB
Student Version of MATLAB
−50
−50
−100
−100
−150
−150
−200
−150
−100
−50
0
x (m)
50
100
150
200
−200
−100
−50
0
x (m)
50
100
150
200
(d) Case 4: score = 55.5803
150
150
100
100
50
50
y (m)
y (m)
(c) Case 3: score = 49.2956
−150
0
0
Student Version of MATLAB
Student Version of MATLAB
−50
−50
−100
−100
−150
−150
−200
−150
−100
−50
0
x (m)
50
100
150
200
−200
(e) Case 5: score = 54.1884
−150
−100
−50
0
x (m)
50
100
150
200
(f) Case 6: score = 107.6828
Figure 14: Sample flight paths
23
Student Version of MATLAB
Student Version of MATLAB
400
350
altitude (ft)
300
250
200
150
100
0
0.5
1
1.5
2
2.5
time (minutes)
3
3.5
4
4.5
Figure 15: Sample altitude vs. time plot
The statistics of our simulated score is tabulated in table 6. Here, we can see that our mean
score improves by about 25% by implementing the dynamic path planning.
Paramaters
Minimum
Maximum
Mean
Variance
Median
Score (static only)
31.86
88.41
45.82 ± 11.32
128.21
42.71
Score (static and dynamic)
44.38
107.68
Student Version of MATLAB
59.37 ± 13.34
177.83
55.10
Table 6: Statistical result from 30 simulation cases
4.7
MATLAB/ SIMULINK-based Simulation of Flight Path (Manu
and Guilherme)
Our MATLAB/ SIMULINK simulation takes into account the dynamics and control of our
airplane, and combines it with our mission path planning algorithm. This simulation has
a sophisticated, 6-degree-of-freedom dynamic model of our airplane. With the high-fidelity,
computationally intensive approach used in this effort, we are able to predict the behavior
of the InfinityEye system given a variety of beacon location setups.
The approach selected to build this simulation consists of an integrated MATLAB/ SIMULINK
system. All of the relevant stability and control derivatives, as well as aircraft parameters,
are inputs in run infEye.m. The simulation then pulls beacon locations and path planning
24
logic from openlooppath.m, and sends the relevant signals to a SIMULINK model that mimics the dynamics of the real life aircraft.
At a high level, the model logos can be represented by figure 16.
Figure 16: Simulating environment overview
The dynamics block, which takes into account the forces and moments that act upon our
aircraft, is quite sophisticated, and was built based on Manu Sharma’s Navion model, and
much of the surrounding infrastructure has been altered to reflect changes needed to this
model. These are reflected in figure 17.
25
Figure 17: Simulating environment Dynamics block
With a strong focus on the reliability of the model, a PID-based control scheme was implemented. Waypoints were taken from the team’s path planning algorithm, and the controller
was tuned to minimize bearing error. As can be shown in figure 18, the aircraft demonstrates stable operation. The average of the scores obtained for the purposes of the AA241X
competition was 52.2545, which would have placed us in a satisfactory position relative to
the other teams’ efforts, most of which used a control strategy similar to the one chosen for
these simulation runs.
26
(a) Flight 1. Score: 51.2477
(b) Flight 2. Score: 49.4624
(c) Flight 3. Score: 56.6060
(d) Flight 4. Score: 51.6820
Figure 18: Sample flight paths
Due to our time constraints and operational priorities that arose in the last few weeks of
the quarter, we were unable to implement the desired state-space controllers in the dynamic
model created. This could have provided a better testing ground for developing and tuning
the controller. In any event, the groundwork is now laid for additional efforts in this arena
for future projects or continued work on Infinity Eye.
27
5
Final control system design (Robert, helped: Devina, Hakki, and Harrison, written part revised by
Devina)
In this section we detail our final control system design and the process of reaching this
design.
5.1
Longitudinal and Lateral Aircraft Dynamics
We have modified our aircraft dynamics by using Automatic Control of Aircraft and Missiles
by John H. Blakelock. The A and B matrices now use stability derivatives defined using
the new text. The longitudinal and lateral equations have been modified to include different
states. The longitudinal state vector is:
• u
• α
• θ
• θ̇
• height
The longitudinal inputs are:
• Elevator
• Throttle
The lateral state vector is:
• β
• φ
• φ̇
• psi
• ψ̇
The later inputs are:
• Aileron
• Rudder
28
The matrices for longitudinal aircraft dynamics for our new design:


−0.1097 0.7843 −9.81 −0.0344 0
−2.1841 −9.8475
0
0.8622 0



0
0
0
1
0
A=

 1.3882 −103.284
0
−2.5945 0
0
−8
8
0
0


−0.1572 2.943
 8.1932
0 


0
0 
B=


 −147.9
0 
0
0
The matrices for lateral aircraft dynamics for our design:


−0.0005 0.0012
0
0 −1.4893


0
0
0.001 0
0



0
−0.0358 0 0.0105 
A = 1000 −0.0068


0
0
0
0 0.001 
0.0284
0
−0.0029 0 −0.0019


0
0.2478
 0

0



B=
270.524 −4.1064 
 0

0
−15.87 −15.5235
The goal of the matrices to solve the following equations.
ẋ = Ax + Bu
y = Cx + Du
5.2
Control Law and Strategy
Our control law and strategy is based on modern controls rather than classical controls. A
PID controller maps one input to one output, while a modern control couples multiple states
and determines the input based on the specified weighting on each state. State space control
uses all available sensor information on the aircraft.
For our case, our state is our output and thus we want the error in the state to be zero. We
do so by using matrices in section 5.1. By driving the error in the state to zero, the airplane
was able to hold similar flight characteristics to what was achieved before the autopilot was
engaged, and even fly more stable than in the manual mode. Figure 19 shows the block
diagram of our control strategy.
29
Nu
Xu
R
+
u
A/C
Y
-K
Nx
X
Xc
-
Figure 19: Control Block Diagram
Here, R is the reference input. In the best care scenario, we are inputing steady-state values,
but instead we set our reference input to be the states we want. These reference inputs are
then scaled by the N matrices (Nu and Nx ), and thus, the commanded inputs are transformed to steady-state states (Xu and Xc ). The steady-state states are then subtracted from
current state vectors. This means that we calculate the difference between Xu and u, and
calculate the difference between Xc and X. This results in the error, and our goal is to
drive this error to zero. The error is then multiplied by the gain matrix K through a gain
matrix to produce the error adjustment commands. The error adjustment commands are
then added to the steady state inputs to produce the control input for the next time step.
The control inputs are scaled to be between 0 and 100. This control design was to stabilize
the aircraft and do altitude holding.
For developing a control scheme, we used a linear quadratic regulator (LQR) to find a gain
matrix (K) by solving algebraic Riccati equation, which minimizes the state optimally for
our given dynamics. The mareix K is then multiplied by the state vector to produce the
control input. Dimensional analysis was done to determine the weighting matrices Q and R.
The gains were calculated with a weighting that minimizes the change in radians since slight
variations in velocity or pitch can be problematic to the autopilot. A yaw wrap around was
implemented to prevent the aircraft to fly in circles due to the change in yaw.
Optimally we would be able to write a sophisticated filtering algorithm for the data, which
smoothed the data, however, due to constraints in time and computational power it was
decided that filtering would not be necessary for a basic autopilot.
For waypoint navigation, we tried to use as much of the state information as possible. We
30
command heading, Ψ, to the controller, and the plane will adjust its heading until has the
required heading to reach the waypoint. Once the plane has reached an area around the
waypoint (we set the radius to be about 7 m), the plane will adjust its heading to go to the
next waypoint. For altitude holding, we specified the altitude to be 100 m, and the controller
allows a variation of 5 m. If the altitude deviates from the specified altitude, the elevator
and throttle will be adjusted to bring the aircraft back to the specified height.
5.3
Advantanges and Disadvantages of Using Modern Control
There are many strengths and weaknesses of using the modern controls design approach.
A major strength is that it quantifies the trade-offs in performance and control usage to
minimize the cost function. Using modern controls also allows us to use all information
provided by the sensors on the airplane. Furthermore, modern controls allows for quickly
recreating new control laws since we only need to change certain parts, and allows for easy
transition between Bixler 2 and our own airplane. A major weakness is that to tune the
gains, new weighting matrices, Q and R, need to be recalculated, and this requires us to
rerun LQR to obtain the new gains, while in PID controller, we can simply change the gains.
5.4
Choice of Dynamics Model and Debugging Process
For modern control to work well, we need a good model that represents the dynamics of
our airplane. We tried two different set of equations: one from Nelson and the other from
Blakelock. The states were different in each textbook. To be able to altitude holding, we
appended added altitude (h) to our state. Later, we found out that we could not use the
dynamics model from Nelson to do altitude holding easily. Thus, we continued on by using
a dynamics model from Blakelock.
Before doing flight testing, we first tested our control law by manually moving the airplane
and seeing its respond. Once we found that the control responds as intended, we ran some
test flights. For a while, we could not get the autopilot to work well. Later, we narrowed
down the problem to the possibility that the APM was broken and the dynamics model was
incorrect. Using new APM and recreating new dynamics model, we started to get a working
autopilot. Then, we created some simple waypoints that form a square, and once it worked
well, we created waypoints that form a spiral. From these flights, we went through a process
of adjusting the gain matrix, and throtlle input. We also calculated the mapping from RPM
to thorrtle input so that we could ask the autopilot to adjust the throttle during flight.
Debugging the C code for the Stanford Arduplane took a very long time. Most of the time
developing the control law was spent on debugging the C code. The estimated total number
of flight test hours to develop and validate the control law was 100 hours. During this
process, we experienced multiple crash. We once crashed into the tree due to lost in radio
contact to the airplane. We crashed into Lake Lagunita multiple times. However, the worst
is even we crashed our own airplane and lost GPS and broke the airspeed sensor.
31
For waypoint navigation, we command heading and to mark that the airplane reached the
waypoint, we created a circle around the waypoint. As long as the airplane went around
the circle surrounding the waypoint, the autopilot will tell the airplane to go to the next
waypoint. Once we got the airplane to follow the waypoints that form a spiral path, we
created simple dynamic waypoints that tell the airplane to visit all three beacons so we can
increase the accuracy of our estimation.
5.5
Attempt to Implement Line Tracking (written by DongHyun)
We observed that the waypoint tracking was not working very well when there was moderate
wind, and our airplane was side-slipping. Thus, we tried to implement line tracking to resist
side-slip and stay on the line connecting the two waypoints. Using current position read
from GPS, we computed side-slip distnace and adjusted our next waypoint and heading as
shown in the figure 20
Figure 20: Line tracking algorithm
5.6
Lessons Learned
We learned a lot about the design and implementation of the control law. Working through
different sets of aircraft dynamics allowed us to choose the specific states that we want to
control. The time spent to setup the modern control was quite a long time, but once the
setup was done properly, we could easily implement any changes to the control law. We also
found that dimensional analysis was very important in creating the weighting matrices to
have robust autopilot. Besides all the hard part of making the autopilot worked, we found
that it was really easy to transition between Bixler 2 and our own airplane. We only needed
to change the stability derivatives, and did not change any gains. Using autopilot, we could
32
also fly the airplane during high wind, and the airplane would fly well, even better than
when we manually fly the airplane. With Bixler 2, we could also use our autopilot for take
off.
6
Experimental result and observation from all autonomous flights in the competition (Robert)
Figure 21 shows the experimental result from the autonomous flight with Bixler 2 on Monday,
June 10, 2013. Figure 22 shows the commands for aileron, elevator, rudder, and throttle
throughout the autonomous flight of Bixler 2. Figures 23 and 24 show similar plot for our
own airplane.
33
(a) Mission path, red = beacon, black = waypoints, green = auto, blue = manual
(b) Altitude vs. time
(c) Pitch, rool, yaw vs. time
(d) Pitch, rool, yaw rates vs. time
(e) Speed vs. time
(f) Climb rate vs. time
Figure 21: Experimental result from a full mission with Bixler 2
34
Figure 22: Aileron, elevator, rudder, and throttle commands vs. time for Bixler 2
35
(a) Mission path, red = beacon, black = waypoints, green = auto, blue = manual
(b) Altitude vs. time
(c) Pitch, rool, yaw vs. time
(d) Pitch, rool, yaw rates vs. time
(e) Speed vs. time
(f) Climb rate vs. time
Figure 23: Experimental result from a mission with our own airplane
36
Figure 24: Aileron, elevator, rudder, and throttle commands vs. time for our own airplane
37
Throughout our test flights performed with the Bixler, our control law performed flawlessly.
It operated with very little jitter, and tracked the commanded inputs with high precision.
The control law was able to successfully stabilize the plane even under wind conditions of
10 m/s far from linearization point. Due to our choice of LQR weightings, the plane did not
track the commanded airspeed, or commanded beta very well. However, this was a design
choice as the measurements for each of these readings was quite noisy, due to the estimation
algorithms employed in order to give us these measurements.
Just by changing the stability derivatives, we were able to get a similar level of performance
using the control law with our home built plane. This proved our control law was robust
enough to be implemented on a variety of small UAV’s. While it is likely we could have
gotten more accurate tracking by tweaking the LQR weightings even more, our priority was
on the path planning architecture.
For our final flight, our plane did not fly as well as we would have hopped. It exhibited a
control mode similar to a dutch roll. We had not seen this in our previous flight tests, and
most likely arose due to the fact that the servo moving our rudder had broken since then.
This meant that the control law which was trying to damp this mode using control inputs to
the rudder, was unable to do so. After a full spiral was complete, we were lucky that some
external disturbance, likely the wind, damped the mode for us.
The biggest problem which our final control law had was in path planning. We were tracking
to waypoints by controlling heading, however, due to the side-slip the plane was experiencing
in the wind, we would frequently miss the waypoint, and have to circle around until we were
flying with a headwind or tailwind to compensate for this fact. In order to remove this extra
circulation, the size of each waypoint was increased to a 20 meter radius so that even with
the side-slip, the plane would hit each waypoint.
This in turn, led to us not being able to cover every part of the field since our initial set of
waypoints assumed we could hit them quite accurately. In order to fix this we were in the
process of implementing a line tracking algorithm, which would help keep us on the intended
path, however, we were unable to test the algorithm which we implemented in time.
7
Experimental and Simulated Score (Devina)
Due to high wind on Monday, we were only able to fly one complete mission with Bixler 2,
and part of a mission with our own airplane. We obtained a score of 55.8 for the mission
that we completed with Bixler 2. In this section, we will compare our experimental score
to the simulated score using MATLAB-based simulation for mission path and calculate our
simulated score for the mission that we did not complete.
38
7.1
Complete Mission with Bixler 2
The true location of the beacon was shown in table 7.
Beacon
1
2
3
x
5.0447
85.7678
23.3357
y
-5.8698
46.9062
-33.4352
Table 7: True beacon location for a complete mission with Bixler 2
Setting the true beacon location on our MATLAB-based simulation for mission path to be
the same as specified in table 7, we obtained our simulated time of sight, estimation error,
and total score (see table 8). Here, we can see that our simulated score is about 3% lower
than our experimental score. This tells us that our simulation gives us reasonable result even
without incorporating an accurate dynamics and aerodynamics model. Also, note that we
did not use exactly the same path planning algorithm for the mission as the one we have for
the simulation, and the simulation was built for our airplane, not Bixler 2. Thus, the higher
experimental score might be due to the fact that we obtained lower time of sight since Bixler
2 fly faster than our airplane.
Time of Sight
(seconds)
95.9
Error Beacon 1
(m)
2.3452
Error Beacon 2
(m)
1.2741
Error Beacon 3 Score
(m)
1.2041
54.1884
Table 8: Simulation result for a complete mission with Bixer 2
39
The simulated path is shown in figure 25. From this figure, we can see that according to
our mission path algorithm, we only need to visit two beacons to improve our estimation.
However, in the mission, we set the waypoints such that Bixler 2 will visit all three beacons
once it see all three beacons during the static path.
150
100
y (m)
50
0
−50
−100
−150
−200
−150
−100
−50
0
x (m)
50
100
150
200
Figure 25: Simulated path for a complete mission with Bixler 2
7.2
Attempt to Complete a Mission with our own Airplane
The true location of the beacon was shown in table 9.
Beacon
1
2
3
x
12.2292
-125.7200
-76.6759
y
-4.9984
-100.2242
Student Version of MATLAB
138.1325
Table 9: True beacon location for a mission with our own airplane
Setting the true beacon location on our MATLAB-based simulation for mission path to be
the same as specified in table 9, we obtained our simulated time of sight, estimation error,
and total score (see table 10). Since we didn’t complete the mission, we could not compare
the simulated score with the experimental score. However, this simulation gives us an idea
about what score we would get if we completed the mission.
40
Time of Sight
(seconds)
95.9
Error Beacon 1
(m)
2.1973
Error Beacon 2
(m)
0.8929
Error Beacon 3 Score
(m)
2.1712
54.1884
Table 10: Simulation result for a mission with our airplane
The simulated path is shown in figure 26. From this figure, we can see that according to our
mission path algorithm, we only need to visit two beacons to improve our estimation.
150
100
y (m)
50
0
−50
−100
−150
−200
−150
−100
−50
0
x (m)
50
100
150
200
Figure 26: Simulated path for a mission with our airplane
8
Website and archived files (Devina, Hakki, Harrison,
Manu, and Robert)
Our website is infinity-eye.com, and the website is maintained and updated by Devina.
The archive of our files is available on our website.
Student Version of MATLAB
41
Appendix: Results from MATLAB Simulation of Mission Plan (Devina)
Table 11 shows our test data from our simulation. From the data, we can see that using
our path planning algorithm, we have our tsight ranging from 25 to 105 seconds, and in
average, we use 17.02% (excluding pre-flight checks, take off, landing, and battery to power
electronics), and our flight time is 9.48 minutes. Recall that we set our percent energy used
for the flights to be 40% to offset the energy consumption for other aspects that we did not
take into account in the simulation, and from experimental data, our endurance is about 7
minutes.
42
Case
Score (static)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
53.2963
56.8586
42.6760
43.6042
32.0229
42.0974
50.9002
41.4574
41.3438
47.0766
55.7015
42.7449
36.7707
43.2578
88.4082
38.1825
41.0687
38.9115
31.8574
36.8543
43.6566
39.6961
46.5748
61.4303
50.6970
47.4766
34.0440
64.2498
41.3274
40.3363
Score (static
and dynamic)
72.6261
75.0870
54.1884
58.0552
45.9433
52.9604
54.1884
55.5803
49.2956
55.5803
75.0870
60.7444
52.3991
49.8344
107.6828
53.5558
57.1712
54.5998
44.3784
52.8044
51.4089
54.5299
59.9481
79.9489
61.3417
58.5231
51.1095
81.0660
44.7433
56.6375
tsight
% Econsumed
(minutes)
0.85
14.18
0.80
17.08
1.60
13.82
1.35
15.00
1.60
17.95
1.70
17.80
1.60
15.25
1.25
17.82
1.40
18.16
1.45
17.64
0.80
17.32
1.20
17.21
1.75
17.32
1.35
18.22
0.43
15.63
1.65
17.91
1.40
17.30
1.50
17.31
1.75
17.31
1.45
18.21
1.05
17.94
1.50
13.47
1.25
17.68
0.70
17.29
0.95
17.78
1.15
17.31
1.75
17.36
0.70
17.28
1.15
18.01
1.20
17.96
Table 11: Data from path planning simulation
43
tf light
(minutes)
4.36
5.94
4.16
4.81
6.41
6.33
4.94
6.34
6.53
6.24
6.07
6.01
6.07
6.56
5.15
6.39
6.06
6.06
6.07
6.56
6.41
3.97
6.27
6.05
6.32
6.06
6.09
6.05
6.45
6.42
Download