Contents

% Configures the settings for, runs, and saves an F-16 simulation.
% Within this script, the user inputs all initial conditions and autopilot
% instructions for a given simulation scenario. This is the only function
% that must be to complete a simulation and save the results. The scripts
% MakeAnimation and MakePicture can then be run and operate from the
% results in the workspace.
%
% Note: This version of MAIN is a barebones sample of what is required to
% run a single simulation. Results are printed to console, but not plotted.
%
% <a href="https://github.com/pheidlauf/AeroBenchVV">AeroBenchVV</a>
% Copyright: GNU General Public License 2017
%
% See also: RUNF16SIM, GETDEFAULTSETTINGS, MAKEANIMATION, MAKEPICTURE,

Set Initial Conditions

close all; clear; clc;
powg = 9;                   % Power

% Default alpha & beta
alphag = deg2rad(2.1215);   % Trim Angle of Attack (rad)
betag = 0;                  % Side slip angle (rad)

% Initial Attitude (for simpleGCAS)
altg = 3500;
Vtg = 540;                  % Airspeed (ft/s)
phig = (pi/2)*0.5;          % Roll angle from wings level (rad)
thetag = (-pi/2)*0.8;       % Pitch angle from nose level (rad)
psig = -pi/4;               % Yaw angle from North (rad)
t_vec = 0:0.01:15;          % Time vector for simulation output

Set Flight & Ctrl Limits (for pass-fail conditions)

[flightLimits,ctrlLimits,autopilot] = getDefaultSettings()
autopilot.simpleGCAS = true;    % Run GCAS simulation
flightLimits = 

      altitudeMin: 0
      altitudeMax: 10000
     maneuverTime: 15
            NzMax: 9
            NzMin: -2
    psMaxAccelDeg: 500
             vMin: 300
             vMax: 900
      alphaMinDeg: -10
      alphaMaxDeg: 45
       betaMaxDeg: 30


ctrlLimits = 

       ThrottleMax: 1
       ThrottleMin: 0
    ElevatorMaxDeg: 25
    ElevatorMinDeg: -25
     AileronMaxDeg: 21.500000000000000
     AileronMinDeg: -21.500000000000000
      RudderMaxDeg: 30
      RudderMinDeg: -30
        MaxBankDeg: 60
             NzMax: 6
             NzMin: -1


autopilot = 

                    title: 'Default Simulation'
        basicSpeedControl: 1
    steadyLevelFlightHold: 0
         levelTurnControl: 0
               simpleGCAS: 0
            turnToHeading: 0
     timeTriggeredControl: 0

Build Initial Condition Vectors

state = [VT, alpha, beta, phi, theta, psi, P, Q, R, pn, pe, h, pow]

initialState = [Vtg alphag betag phig thetag psig 0 0 0 0 0 altg powg];
orient = 4;             % Orientation for trim
analysisOn = true;
printOn = true;
plotOn = true;

Select Desired F-16 Plant

Polynomial

[output, passFail] = RunF16Sim(initialState, t_vec, orient, 'morelli',...
    flightLimits, ctrlLimits, autopilot, analysisOn, printOn, plotOn);
------------------------------------------------------------
F-16 Decoupled LQR Controller for Nz, P_s, and Ny+r tracking
------------------------------------------------------------
 
Operator Inputs = 
                        Vt            h        gamma       psidot     thetadot
                 540.00000   3500.00000            0            0            0
 
Trim Orientation Selected:   Steady Pull Up
 
Inititial Conditions = 
                        Vt        alpha         beta          phi        theta
                 540.00000      0.03703            0      0.78540     -1.25664
 
                       psi            p            q            r           pn
                  -0.78540            0            0            0            0
 
                        pe          alt          pow
                         0   3500.00000      9.00000
 
 
Control Guess = 
                  throttle     elevator      aileron       rudder
                   0.20000            0            0            0
 
------------------------------------------------------------
Equilibrium / Trim Conditions
 
State Equilibrium = 
                        Vt        alpha         beta          phi        theta
                 540.00000      0.03441            0            0      0.03441
 
                       psi            p            q            r           pn
                         0            0            0            0            0
 
                        pe          alt          pow
                         0   3500.00000     10.35403
 
 
Control Equilibrium = 
                  throttle     elevator      aileron       rudder
                   0.15944     -0.77048            0            0
 
------------------------------------------------------------
Running jacobFun.m
Linearized F-16 SS Model

lin_f16 =
 
  A = 
                  Vt       alpha        beta         phi       theta
   Vt       -0.01658        10.6  -8.377e-06  -2.766e-06      -32.17
   alpha  -0.0002195     -0.9855   3.055e-06  -1.488e-06  -1.025e-05
   beta            0           0     -0.3124     0.05954           0
   phi             0           0           0           0           0
   theta           0           0           0           0           0
   psi             0           0           0           0           0
   p               0           0       -31.6           0           0
   q       6.662e-13       0.858           0           0           0
   r               0           0       8.904           0           0
   pn              1  -6.607e-06           0  -1.592e-06  -6.607e-06
   pe              0           0         540      -18.58           0
   alt    -6.579e-16        -540           0    4.64e-06         540
   pow             0           0           0           0           0
 
                 psi           p           q           r          pn
   Vt              0           0     -0.4842           0           0
   alpha           0           0      0.9146           0           0
   beta            0     0.03387           0     -0.9925           0
   phi             0           1           0     0.03443           0
   theta           0           0           1           0           0
   psi             0           0           0       1.001           0
   p               0      -3.574   0.0002627      0.6331           0
   q               0  -8.795e-06      -1.045   -0.002858           0
   r               0    -0.02249    0.002539     -0.4621           0
   pn              0           0           0           0           0
   pe            540           0           0           0           0
   alt             0           0           0           0           0
   pow             0           0           0           0           0
 
                  pe         alt         pow
   Vt              0    3.81e-05      0.3717
   alpha           0   1.774e-06   -2.37e-05
   beta            0           0           0
   phi             0           0           0
   theta           0           0           0
   psi             0           0           0
   p               0           0           0
   q               0  -5.338e-15           0
   r               0           0           0
   pn              0           0           0
   pe              0           0           0
   alt             0           0           0
   pow             0           0          -1
 
  B = 
           Throttle   Elevator    Aileron     Rudder
   Vt             0     0.1848          0          0
   alpha          0  -0.002085          0          0
   beta           0          0  0.0002863  0.0007816
   phi            0          0          0          0
   theta          0          0          0          0
   psi            0          0          0          0
   p              0          0     -0.765     0.1376
   q              0    -0.1833          0          0
   r              0          0   -0.03332   -0.06472
   pn             0          0          0          0
   pe             0          0          0          0
   alt            0          0          0          0
   pow        64.94          0          0          0
 
  C = 
                  Vt       alpha        beta         phi       theta
   Az       0.003698        16.9  -5.296e-08           0           0
   q               0           0           0           0           0
   alpha           0           1           0           0           0
   theta           0           0           0           0           1
   Vt              1           0           0           0           0
   Ay              0           0       -5.24           0           0
   p               0           0           0           0           0
   r               0           0           0           0           0
   beta            0           0           1           0           0
   phi             0           0           0           1           0
 
                 psi           p           q           r          pn
   Az              0    -4.1e-08      0.9454   -0.001336           0
   q               0           0           1           0           0
   alpha           0           0           0           0           0
   theta           0           0           0           0           0
   Vt              0           0           0           0           0
   Ay              0   -0.008953           0      0.1154           0
   p               0           1           0           0           0
   r               0           0           0           1           0
   beta            0           0           0           0           0
   phi             0           0           0           0           0
 
                  pe         alt         pow
   Az              0  -2.979e-05           0
   q               0           0           0
   alpha           0           0           0
   theta           0           0           0
   Vt              0           0           0
   Ay              0           0           0
   p               0           0           0
   r               0           0           0
   beta            0           0           0
   phi             0           0           0
 
  D = 
          Throttle  Elevator   Aileron    Rudder
   Az            0  -0.05062         0         0
   q             0         0         0         0
   alpha         0         0         0         0
   theta         0         0         0         0
   Vt            0         0         0         0
   Ay            0         0  0.004801   0.01311
   p             0         0         0         0
   r             0         0         0         0
   beta          0         0         0         0
   phi           0         0         0         0
 
Name: Linearized F-16 SS Model
Continuous-time state-space model.

 
Decoupled LQR Controller Gains = 
                     alpha            q         Nz_i         beta            p
     elevator   -156.88015    -31.03701    -38.72983            0            0
      aileron            0            0            0     38.02751     -5.65497
       rudder            0            0            0     17.56400      1.58391
 
                         r         ps_i       Ny_r_i
     elevator            0            0            0
      aileron    -14.08804    -34.06416     -9.95406
       rudder    -41.43509      6.29550    -53.86016
 
------------------------------------------------------------
Running Nonlinear Simulation in ODE45

Simulation Complete
Time to simulate (MM:SS.ms):
00:01.820

Begin back-calculation of controls
Back-Calculation of Controls Complete
Time to calculate (MM:SS.ms):
00:10.504

Begin struct generation & pass/fail analysis
Pass/Fail Analysis Complete
Time to calculate (MM:SS.ms):
00:00.024

----------------------------------------------------------
RESULTS:
              Min & Max Values:
Min Altitude:             96.178   ft 
Altitude Lost:          3403.822   ft 
Min Airspeed:            540.000   ft/sec 
Max Airspeed:            639.104   ft/sec 
Max Down Force:            5.222   g's 
Min Down Force:           -0.426   g's 
Max Side Force:            0.061   g's 
Max Roll Accel:          233.522   deg/sec^2 

              Maneuver Event Times:
Maneuver Start:            2.000   sec 
Checkpoint  1:             3.395   sec 
Maneuver Complete:         8.000   sec 
Final Time:               15.000   sec 
(if Checkpoint 2 < Checkpoint 1, it is due to ODE45
stepping backwards in time)

              F-16 Attitude at Start:
Roll   (phi):             45.000   deg 
Pitch  (theta):          -72.000   deg 
Yaw    (psi):            -45.000   deg 

              F-16 Attitude at End:
Roll   (phi):             -0.000   deg 
Pitch  (theta):            2.249   deg 
Yaw    (psi):            -33.514   deg 

              Pass Fail Conditions:
           stable: 1
         airspeed: 1
            alpha: 1
             beta: 1
               Nz: 1
    psMaxAccelDeg: 1
         altitude: 1
     maneuverTime: 1

----------------------------------------------------------
Begin plotting
Plot Generation Complete
Time to calculate (MM:SS.ms):
00:03.280

Save results

Save output to workspace

save('SimResults.mat','output','passFail');
disp('Script Complete');
Script Complete