Commits

James Goppert committed e5a5300

Added new figures.

Comments (0)

Files changed (28)

 .ropeproject/
 *.pyc
 *.swp
+*.aux
+*.bbl
+*.blg
+*.log
+*.synctex.gz
+report.pdf

data/figures/V_T.pdf

Binary file modified.

data/figures/alpha_beta.pdf

Binary file modified.

data/figures/elevons.pdf

Binary file modified.

data/figures/euler_angles.pdf

Binary file modified.

data/figures/fast_updates.pdf

Binary file modified.

data/figures/position.pdf

Binary file modified.

data/figures/propulsion.pdf

Binary file modified.

data/figures/rotation_rate.pdf

Binary file modified.

data/figures/slow_updates.pdf

Binary file modified.

data/latex/out.stamp

+2014-05-06 19:06:03

data/latex/tbl_aero_gen.tex

+\begin{tabular}{c|c|c}
+    coefficient & value & unit\\
+    \hline
+    Alpha & 4.050000 & ° \\
+CD & 0.054370 &  \\
+CL & 0.313930 &  \\
+CX & 0.019410 &  \\
+CY & 0.000000 &  \\
+Cl & -0.000000 &  \\
+Cm & -0.002530 &  \\
+Cn & -0.000000 &  \\
+Control value & 0.000000 &  \\
+ICD & 0.009710 &  \\
+ICm & -0.000000 &  \\
+ICn & 0.000000 &  \\
+Mass & 300.000000 & g \\
+VCD & 0.044660 &  \\
+VCm & -0.002530 &  \\
+VCn & -0.000000 &  \\
+VInf & 9.437000 & m/s \\
+XCP & 12.931000 & cm \\
+XNP & 15.635000 & cm \\
+YCP & 0.000000 & cm \\
+\end{tabular}

data/latex/tbl_aero_stab.tex

+\begin{tabular}{c|c}
+    coefficient & value\\
+    \hline
+    CLa & 4.242220 \\
+CLq & 5.860210 \\
+CLu & 0.000330 \\
+CXa & 0.183770 \\
+CXq & -0.058010 \\
+CXu & -0.082640 \\
+CYb & -0.233580 \\
+CYp & -0.066690 \\
+CYr & 0.139980 \\
+Clb & -0.090590 \\
+Clp & -0.471820 \\
+Clr & 0.083340 \\
+Cma & -0.533250 \\
+Cmq & -2.257860 \\
+Cmu & 0.006120 \\
+Cnb & 0.041210 \\
+Cnp & -0.002650 \\
+Cnr & -0.015220 \\
+\end{tabular}

nonlinear_model/aircraft.py

 
 class Aircraft(object):
 
-    def __init__(self, tf=10.0):
+    def __init__(self, tf=10.0, seed=None):
         """
         tf : final time (sec)
 
         sim.set_integrator('dopri5')
         data = Data(n_t)
 
+        # intialize random number generator
+        n_seed = fortran.get_random_seed_size()
+        if (seed is None):
+            fortran.set_random_seed(np.random.randint(
+                0, 1e6, n_seed))
+        else:
+            if (len(seed) != n_seed):
+                raise IOError(
+                    'length of seed must be {:d}'.format(n_seed))
+            fortran.set_random_seed(seed)
+
         # save data to class
         self.sim = sim
         self.data = data
         y_i = np.zeros(Data.n_y, dtype='f8')
         y_update_i = np.zeros(Data.n_y_update, dtype='bool')
 
-        # intialize random number generator
-        fortran.set_random_seed(np.random.randint(
-            0, 1e6, fortran.get_random_seed_size()))
         # initialize process noise vector
         w = np.zeros(len(sim.y), order='F')
 
+% This file was created with JabRef 2.10b2.
+% Encoding: UTF-8
+
+
+@Article{Alur1995,
+  Title                    = {The algorithmic analysis of hybrid systems},
+  Author                   = {Alur, Rajeev and Courcoubetis, Costas and Halbwachs, Nicolas and Henzinger, Thomas A and Ho, P-H and Nicollin, Xavier and Olivero, Alfredo and Sifakis, Joseph and Yovine, Sergio},
+  Journal                  = {Theoretical computer science},
+  Year                     = {1995},
+  Number                   = {1},
+  Pages                    = {3--34},
+  Volume                   = {138},
+
+  Owner                    = {jgoppert},
+  Publisher                = {Elsevier},
+  Timestamp                = {2013.09.15}
+}
+
+@InProceedings{Asarin2002,
+  Title                    = {The d/dt tool for verification of hybrid systems},
+  Author                   = {Asarin, Eugene and Dang, Thao and Maler, Oded},
+  Booktitle                = {Computer Aided Verification},
+  Year                     = {2002},
+  Organization             = {Springer},
+  Pages                    = {365--370},
+
+  Abstract                 = {In this paper we describe the tool d/dt which provides automatic safety verification of hybrid systems with linear continuous dynamics with uncertain input. The verification procedure is based on a method for overapproximating reachable sets by orthogonal polyhedra. The tool also allows to synthesize a controller which switches the system between continuous modes in order to satisfy a safety specification.},
+  File                     = {Asarin2002.pdf:papers/Asarin2002.pdf:PDF},
+  Owner                    = {jgoppert},
+  Timestamp                = {2013.09.14},
+  Url                      = {http://link.springer.com/chapter/10.1007/3-540-45657-0_30}
+}
+
+@Book{Baier2008,
+  Title                    = {Principles of model checking},
+  Author                   = {Baier, Christel and Katoen, Joost-Pieter and others},
+  Publisher                = {MIT press Cambridge},
+  Year                     = {2008},
+  Volume                   = {26202649},
+
+  __markedentry            = {[jgoppert:]},
+  Owner                    = {jgoppert},
+  Timestamp                = {2013.11.02}
+}
+
+@Article{Chutinan2003,
+  Title                    = {Computational techniques for hybrid system verification},
+  Author                   = {Chutinan, Alongkrit and Krogh, Bruce H},
+  Journal                  = {Automatic Control, IEEE Transactions on},
+  Year                     = {2003},
+  Number                   = {1},
+  Pages                    = {64--75},
+  Volume                   = {48},
+
+  Abstract                 = {This paper concerns computational methods for verifying properties of polyhedral invariant hybrid automata (PIHA), which are hybrid automata with discrete transitions governed by polyhedral guards. To verify properties of the state trajectories for PIHA, the planar switching surfaces are partitioned to define a finite set of discrete states in an approximate quotient transition system (AQTS). State transitions in the AQTS are determined by the reachable states, or flow pipes, emitting from the switching surfaces according to the continuous dynamics. This paper presents a method for computing polyhedral approximations to flow pipes. It is shown that the flow-pipe approximation error can be made arbitrarily small for general nonlinear dynamics and that the computations can be made more efficient for affine systems. The paper also describes CheckMate, a MATLAB-based tool for modeling, simulating and verifying properties of hybrid systems based on the computational methods previously described.},
+  File                     = {Chutinan2003.pdf:papers/Chutinan2003.pdf:PDF},
+  Owner                    = {jgoppert},
+  Publisher                = {IEEE},
+  Timestamp                = {2013.09.14},
+  Url                      = {http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1166525}
+}
+
+@InCollection{Chutinan1999,
+  Title                    = {Verification of polyhedral-invariant hybrid automata using polygonal flow pipe approximations},
+  Author                   = {Chutinan, Alongkrit and Krogh, Bruce H},
+  Booktitle                = {Hybrid Systems: Computation and Control},
+  Publisher                = {Springer},
+  Year                     = {1999},
+  Pages                    = {76--90},
+
+  File                     = {Chutinan1999.pdf:papers/Chutinan1999.pdf:PDF},
+  Owner                    = {jgoppert},
+  Timestamp                = {2013.09.14},
+  Url                      = {http://link.springer.com/chapter/10.1007/3-540-48983-5_10}
+}
+
+@InProceedings{Cimatti2002,
+  Title                    = {Nusmv 2: An opensource tool for symbolic model checking},
+  Author                   = {Cimatti, Alessandro and Clarke, Edmund and Giunchiglia, Enrico and Giunchiglia, Fausto and Pistore, Marco and Roveri, Marco and Sebastiani, Roberto and Tacchella, Armando},
+  Booktitle                = {Computer Aided Verification},
+  Year                     = {2002},
+  Organization             = {Springer},
+  Pages                    = {359--364},
+
+  __markedentry            = {[jgoppert:6]},
+  Owner                    = {jgoppert},
+  Timestamp                = {2013.11.02},
+  Url                      = {http://link.springer.com/chapter/10.1007/3-540-45657-0_29}
+}
+
+@Article{Doman2010,
+  Title                    = {Wingbeat shape modulation for flapping-wing micro-air-vehicle control during hover},
+  Author                   = {Doman, David B and Oppenheimer, Michael W and Sigthorsson, David O},
+  Journal                  = {Journal of guidance, control, and dynamics},
+  Year                     = {2010},
+  Number                   = {3},
+  Pages                    = {724--739},
+  Volume                   = {33},
+
+  Abstract                 = {A new method of controlling a flapping-wing micro air vehicle by varying the velocity profiles of the wing strokes is presented in this manuscript. An exhaustive theoretical analysis along with simulation results show that this new method, called split-cycle constant-period frequency modulation, is capable of providing independent control over vertical and horizontal body forces as well as rolling and yawing moments using only two physical actuators, whose oscillatory motion is defined by four parameters. An actuated bob-weight is introduced to enable independent control of pitching moment. A general method for deriving sensitivities of cycle-averaged forces and moments to changes in wingbeat kinematic parameters is provided, followed by an analytical treatment for a case where the angle of attack of each wing is passively regulated and the motion of the wing spar in the stroke plane is driven by a splitcycle waveform. These sensitivities are used in the formulation of a cycle-averaged control law that successfully stabilizes and controls two different simulation models of the aircraft. One simulation model is driven by instantaneous aerodynamic forces derived from blade-element theory, while the other is driven by an empirical representation of an unsteady aerodynamic model that was derived from experiments.},
+  File                     = {Doman2010.pdf:papers/Doman2010.pdf:PDF},
+  Owner                    = {jgoppert},
+  Timestamp                = {2013.09.14},
+  Url                      = {http://arc.aiaa.org/doi/pdf/10.2514/1.47146}
+}
+
+@InProceedings{Goppert2013,
+  Title                    = {Model Checking of a Flapping-Wing Mirco-Air-Vehicle Trajectory Tracking Controller Subject to Disturbances},
+  Author                   = {James Goppert and John Gallagher and Eric Matson and Inseok Hwang},
+  Booktitle                = {The 2nd International Conference on Robot Intelligence Technology and Applications},
+  Year                     = {2013},
+
+  File                     = {Goppert2013.pdf:papers/Goppert2013.pdf:PDF},
+  Owner                    = {jgoppert},
+  Timestamp                = {2014.02.03}
+}
+
+@InProceedings{Henzinger1997,
+  Title                    = {HyTech: A model checker for hybrid systems},
+  Author                   = {Henzinger, Thomas A and Ho, Pei-Hsin and Wong-Toi, Howard},
+  Booktitle                = {Computer aided verification},
+  Year                     = {1997},
+  Organization             = {Springer},
+  Pages                    = {460--463},
+
+  Abstract                 = {A hybrid system is a dynamical system whose behavior exhibits both discrete and continuous change. A hybrid automaton is a mathematical model for hybrid systems, which combines, in a single formalism, automaton transitions for capturing discrete change with di
+  File                     = {Henzinger1997.pdf:papers/Henzinger1997.pdf:PDF},
+  Owner                    = {jgoppert},
+  Timestamp                = {2013.09.14},
+  Url                      = {http://link.springer.com/chapter/10.1007/3-540-63166-6_48}
+}
+
+@Article{Horvath2009,
+  Title                    = {A Model-based Approach to Verification of Spacecraft Software using the SPIN Model Checker},
+  Author                   = {Horvath, Gregory and Jones, Grailing and Joshi, Rajeev},
+  Journal                  = {AIAA SPACE Conference \& Exposition},
+  Year                     = {2009},
+
+  File                     = {Horvath2009.pdf:papers/Horvath2009.pdf:PDF},
+  Owner                    = {jgoppert},
+  Timestamp                = {2014.02.03}
+}
+
+@Conference{Humphrey2012,
+  Title                    = {Model Checking UAV Mission Plans},
+  Author                   = {Humphrey, Laura R},
+  Booktitle                = {AIAA Modeling and Simulation Technologies Conference},
+  Year                     = {2012},
+
+  File                     = {Humphrey2012.pdf:papers/Humphrey2012.pdf:PDF},
+  Owner                    = {jgoppert},
+  Timestamp                = {2014.02.03}
+}
+
+@PhdThesis{Jang2004,
+  Title                    = {Nonlinear control using discrete-time dynamic inversion under input saturation: theory and experiment on the Stanford dragonfly UAVs},
+  Author                   = {Jang, Jung Soon},
+  Year                     = {2004},
+
+  File                     = {Jang2004.pdf:papers/Jang2004.pdf:PDF},
+  Owner                    = {jgoppert},
+  Timestamp                = {2014.02.03}
+}
+
+@Article{Jindeog2003,
+  Title                    = {Wind tunnel test of an unmanned aerial vehicle (UAV)},
+  Author                   = {Jindeog, Chung and Jangyeon, Lee and Bongzoo, Sung and Samok, Koo},
+  Journal                  = {KSME international journal},
+  Year                     = {2003},
+  Number                   = {5},
+  Pages                    = {776--783},
+  Volume                   = {17},
+
+  File                     = {Jindeog2003.pdf:papers/Jindeog2003.pdf:PDF},
+  Owner                    = {jgoppert},
+  Publisher                = {Springer},
+  Timestamp                = {2014.02.03}
+}
+
+@Book{Khalil2002,
+  Title                    = {Nonlinear systems},
+  Author                   = {Khalil, Hassan K},
+  Publisher                = {Prentice Hall},
+  Year                     = {2002},
+  Volume                   = {3},
+
+  Owner                    = {jgoppert},
+  Timestamp                = {2014.02.03}
+}
+
+@Article{Moncayo2012,
+  Title                    = {UAV Adaptive Control Laws Using Non-Linear Dynamic Inversion Augmented with an Immunity-based Mechanism},
+  Author                   = {Moncayo, Hever and Perhinschi, Mario G and Wilburn, Brenton and Wilburn, Jennifer and Karas, Ondrej},
+  Year                     = {2012},
+
+  File                     = {Moncayo2012.pdf:papers/Moncayo2012.pdf:PDF},
+  Owner                    = {jgoppert},
+  Timestamp                = {2014.02.03}
+}
+
+@Article{Prisacariu2012,
+  Title                    = {Flying wing aerodynamic analysis},
+  Author                   = {Prisacariu, Vasile and C{\^\i}rciu, Ionic{\u{a}} and BO{\c{S}}COIANU, Mircea},
+  Journal                  = {Review of the Air Force Academy},
+  Year                     = {2012},
+  Pages                    = {2012},
+  Volume                   = {2},
+
+  File                     = {Prisacariu2012.pdf:papers/Prisacariu2012.pdf:PDF},
+  Owner                    = {jgoppert},
+  Timestamp                = {2014.02.03}
+}
+
+@InProceedings{Silva2000,
+  Title                    = {Modeling and verifying hybrid dynamic systems using CheckMate},
+  Author                   = {Silva, B Izaias and Richeson, Keith and Krogh, Bruce and Chutinan, Alongkrit},
+  Booktitle                = {Proceedings of 4th International Conference on Automation of Mixed Processes},
+  Year                     = {2000},
+  Pages                    = {323--328},
+
+  Abstract                 = {This article introduces a computational tool called CheckMate. CheckMate is a tool for modelling, prototyping, simulating specific situation and formally verifying hybrid dynamic systems based on the MATLAB/Simulink and Stateflow Toolbox from The MathWorks, Inc. This paper presents the elements of CheckMate from the user’s perspective and illustrates its features using a three dimensional linear system example. The theory underlying CheckMate is also reviewed briefly. More complete presentations of the theory can be found in [1-7].},
+  File                     = {Silva2000.pdf:papers/Silva2000.pdf:PDF},
+  Owner                    = {jgoppert},
+  Timestamp                = {2013.09.14}
+}
+
+@InProceedings{Silva2001,
+  Title                    = {An assessment of the current status of algorithmic approaches to the verification of hybrid systems},
+  Author                   = {Silva, B Izaias and Stursberg, Olaf and Krogh, Bruce H and Engell, Sebastian},
+  Booktitle                = {Decision and Control, 2001. Proceedings of the 40th IEEE Conference on},
+  Year                     = {2001},
+  Organization             = {IEEE},
+  Pages                    = {2867--2874},
+  Volume                   = {3},
+
+  File                     = {Silva2001.pdf:papers/Silva2001.pdf:PDF},
+  Owner                    = {jgoppert},
+  Timestamp                = {2013.09.15},
+  Url                      = {http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=980711}
+}
+
+@Article{Webster2012,
+  Title                    = {Towards Certification of Autonomous Unmanned Aircraft Using Formal Model Checking and Simulation},
+  Author                   = {Webster, Matt and Cameron, Neil and Jump, Mike and Fisher, Michael},
+  Year                     = {2012},
+
+  File                     = {Webster2012.pdf:papers/Webster2012.pdf:PDF},
+  Owner                    = {jgoppert},
+  Timestamp                = {2014.02.03}
+}
+

ref/Nonlin-book.pdf

Binary file added.

ref/Point_Out_Of_Flight_Envelope.pdf

Binary file added.

ref/Results_vs_Prediction.pdf

Binary file added.

ref/XFLR5_and_Stability_analysis.pdf

Binary file added.

ref/[Khalil] - Nonlinear Systems.pdf

Binary file added.

ref/aae666-notes.pdf

Binary file added.

ref/io-lyap.pdf

Binary file added.

ref/nonlinearDynamicInversion.pdf

Binary file added.

ref/slides-windtunnel-cfd.pdf

Binary file added.

ref/systemIdentificationSummary.pdf

Binary file added.

ref/windtunnel-uav.pdf

Binary file added.
+\documentclass[10pt,journal,compsoc]{IEEEtran}
+%
+% If IEEEtran.cls has not been installed into the LaTeX system files,
+% manually specify the path to it like:
+% \documentclass[12pt,journal,compsoc]{../sty/IEEEtran}
+
+
+
+
+
+% Some very useful LaTeX packages include:
+% (uncomment the ones you want to load)
+
+
+% *** MISC UTILITY PACKAGES ***
+%
+%\usepackage{ifpdf}
+% Heiko Oberdiek's ifpdf.sty is very useful if you need conditional
+% compilation based on whether the output is pdf or dvi.
+% usage:
+% \ifpdf
+%   % pdf code
+% \else
+%   % dvi code
+% \fi
+% The latest version of ifpdf.sty can be obtained from:
+% http://www.ctan.org/tex-archive/macros/latex/contrib/oberdiek/
+% Also, note that IEEEtran.cls V1.7 and later provides a builtin
+% \ifCLASSINFOpdf conditional that works the same way.
+% When switching from latex to pdflatex and vice-versa, the compiler may
+% have to be run twice to clear warning/error messages.
+
+
+
+
+
+
+% *** CITATION PACKAGES ***
+%
+\ifCLASSOPTIONcompsoc
+  % IEEE Computer Society needs nocompress option
+  % requires cite.sty v4.0 or later (November 2003)
+  % \usepackage[nocompress]{cite}
+\else
+  % normal IEEE
+  % \usepackage{cite}
+\fi
+% cite.sty was written by Donald Arseneau
+% V1.6 and later of IEEEtran pre-defines the format of the cite.sty package
+% \cite{} output to follow that of IEEE. Loading the cite package will
+% result in citation numbers being automatically sorted and properly
+% "compressed/ranged". e.g., [1], [9], [2], [7], [5], [6] without using
+% cite.sty will become [1], [2], [5]--[7], [9] using cite.sty. cite.sty's
+% \cite will automatically add leading space, if needed. Use cite.sty's
+% noadjust option (cite.sty V3.8 and later) if you want to turn this off.
+% cite.sty is already installed on most LaTeX systems. Be sure and use
+% version 4.0 (2003-05-27) and later if using hyperref.sty. cite.sty does
+% not currently provide for hyperlinked citations.
+% The latest version can be obtained at:
+% http://www.ctan.org/tex-archive/macros/latex/contrib/cite/
+% The documentation is contained in the cite.sty file itself.
+%
+% Note that some packages require special options to format as the Computer
+% Society requires. In particular, Computer Society  papers do not use
+% compressed citation ranges as is done in typical IEEE papers
+% (e.g., [1]-[4]). Instead, they list every citation separately in order
+% (e.g., [1], [2], [3], [4]). To get the latter we need to load the cite
+% package with the nocompress option which is supported by cite.sty v4.0
+% and later. Note also the use of a CLASSOPTION conditional provided by
+% IEEEtran.cls V1.7 and later.
+
+
+
+
+
+% *** GRAPHICS RELATED PACKAGES ***
+%
+\ifCLASSINFOpdf
+  % \usepackage[pdftex]{graphicx}
+  % declare the path(s) where your graphic files are
+  % \graphicspath{{../pdf/}{../jpeg/}}
+  % and their extensions so you won't have to specify these with
+  % every instance of \includegraphics
+  % \DeclareGraphicsExtensions{.pdf,.jpeg,.png}
+\else
+  % or other class option (dvipsone, dvipdf, if not using dvips). graphicx
+  % will default to the driver specified in the system graphics.cfg if no
+  % driver is specified.
+  % \usepackage[dvips]{graphicx}
+  % declare the path(s) where your graphic files are
+  % \graphicspath{{../eps/}}
+  % and their extensions so you won't have to specify these with
+  % every instance of \includegraphics
+  % \DeclareGraphicsExtensions{.eps}
+\fi
+% graphicx was written by David Carlisle and Sebastian Rahtz. It is
+% required if you want graphics, photos, etc. graphicx.sty is already
+% installed on most LaTeX systems. The latest version and documentation can
+% be obtained at:
+% http://www.ctan.org/tex-archive/macros/latex/required/graphics/
+% Another good source of documentation is "Using Imported Graphics in
+% LaTeX2e" by Keith Reckdahl which can be found as epslatex.ps or
+% epslatex.pdf at: http://www.ctan.org/tex-archive/info/
+%
+% latex, and pdflatex in dvi mode, support graphics in encapsulated
+% postscript (.eps) format. pdflatex in pdf mode supports graphics
+% in .pdf, .jpeg, .png and .mps (metapost) formats. Users should ensure
+% that all non-photo figures use a vector format (.eps, .pdf, .mps) and
+% not a bitmapped formats (.jpeg, .png). IEEE frowns on bitmapped formats
+% which can result in "jaggedy"/blurry rendering of lines and letters as
+% well as large increases in file sizes.
+%
+% You can find documentation about the pdfTeX application at:
+% http://www.tug.org/applications/pdftex
+
+
+
+
+
+% *** MATH PACKAGES ***
+%
+%\usepackage[cmex10]{amsmath}
+% A popular package from the American Mathematical Society that provides
+% many useful and powerful commands for dealing with mathematics. If using
+% it, be sure to load this package with the cmex10 option to ensure that
+% only type 1 fonts will utilized at all point sizes. Without this option,
+% it is possible that some math symbols, particularly those within
+% footnotes, will be rendered in bitmap form which will result in a
+% document that can not be IEEE Xplore compliant!
+%
+% Also, note that the amsmath package sets \interdisplaylinepenalty to 10000
+% thus preventing page breaks from occurring within multiline equations. Use:
+%\interdisplaylinepenalty=2500
+% after loading amsmath to restore such page breaks as IEEEtran.cls normally
+% does. amsmath.sty is already installed on most LaTeX systems. The latest
+% version and documentation can be obtained at:
+% http://www.ctan.org/tex-archive/macros/latex/required/amslatex/math/
+
+
+
+
+
+% *** SPECIALIZED LIST PACKAGES ***
+%
+%\usepackage{algorithmic}
+% algorithmic.sty was written by Peter Williams and Rogerio Brito.
+% This package provides an algorithmic environment fo describing algorithms.
+% You can use the algorithmic environment in-text or within a figure
+% environment to provide for a floating algorithm. Do NOT use the algorithm
+% floating environment provided by algorithm.sty (by the same authors) or
+% algorithm2e.sty (by Christophe Fiorio) as IEEE does not use dedicated
+% algorithm float types and packages that provide these will not provide
+% correct IEEE style captions. The latest version and documentation of
+% algorithmic.sty can be obtained at:
+% http://www.ctan.org/tex-archive/macros/latex/contrib/algorithms/
+% There is also a support site at:
+% http://algorithms.berlios.de/index.html
+% Also of interest may be the (relatively newer and more customizable)
+% algorithmicx.sty package by Szasz Janos:
+% http://www.ctan.org/tex-archive/macros/latex/contrib/algorithmicx/
+
+
+
+
+% *** ALIGNMENT PACKAGES ***
+\usepackage{amsmath}
+\usepackage{graphics} % for pdf, bitmapped graphics files
+\usepackage{epsfig} % for postscript graphics files
+\usepackage{array}
+% Frank Mittelbach's and David Carlisle's array.sty patches and improves
+% the standard LaTeX2e array and tabular environments to provide better
+% appearance and additional user controls. As the default LaTeX2e table
+% generation code is lacking to the point of almost being broken with
+% respect to the quality of the end results, all users are strongly
+% advised to use an enhanced (at the very least that provided by array.sty)
+% set of table tools. array.sty is already installed on most systems. The
+% latest version and documentation can be obtained at:
+% http://www.ctan.org/tex-archive/macros/latex/required/tools/
+
+
+%\usepackage{mdwmath}
+%\usepackage{mdwtab}
+% Also highly recommended is Mark Wooding's extremely powerful MDW tools,
+% especially mdwmath.sty and mdwtab.sty which are used to format equations
+% and tables, respectively. The MDWtools set is already installed on most
+% LaTeX systems. The lastest version and documentation is available at:
+% http://www.ctan.org/tex-archive/macros/latex/contrib/mdwtools/
+
+
+% IEEEtran contains the IEEEeqnarray family of commands that can be used to
+% generate multiline equations as well as matrices, tables, etc., of high
+% quality.
+
+
+%\usepackage{eqparbox}
+% Also of notable interest is Scott Pakin's eqparbox package for creating
+% (automatically sized) equal width boxes - aka "natural width parboxes".
+% Available at:
+% http://www.ctan.org/tex-archive/macros/latex/contrib/eqparbox/
+
+
+
+
+
+% *** SUBFIGURE PACKAGES ***
+%\ifCLASSOPTIONcompsoc
+%\usepackage[tight,normalsize,sf,SF]{subfigure}
+%\else
+%\usepackage[tight,footnotesize]{subfigure}
+%\fi
+% subfigure.sty was written by Steven Douglas Cochran. This package makes it
+% easy to put subfigures in your figures. e.g., "Figure 1a and 1b". For IEEE
+% work, it is a good idea to load it with the tight package option to reduce
+% the amount of white space around the subfigures. Computer Society papers
+% use a larger font and \sffamily font for their captions, hence the
+% additional options needed under compsoc mode. subfigure.sty is already
+% installed on most LaTeX systems. The latest version and documentation can
+% be obtained at:
+% http://www.ctan.org/tex-archive/obsolete/macros/latex/contrib/subfigure/
+% subfigure.sty has been superceeded by subfig.sty.
+
+
+%\ifCLASSOPTIONcompsoc
+%  \usepackage[caption=false]{caption}
+%  \usepackage[font=normalsize,labelfont=sf,textfont=sf]{subfig}
+%\else
+%  \usepackage[caption=false]{caption}
+%  \usepackage[font=footnotesize]{subfig}
+%\fi
+% subfig.sty, also written by Steven Douglas Cochran, is the modern
+% replacement for subfigure.sty. However, subfig.sty requires and
+% automatically loads Axel Sommerfeldt's caption.sty which will override
+% IEEEtran.cls handling of captions and this will result in nonIEEE style
+% figure/table captions. To prevent this problem, be sure and preload
+% caption.sty with its "caption=false" package option. This is will preserve
+% IEEEtran.cls handing of captions. Version 1.3 (2005/06/28) and later
+% (recommended due to many improvements over 1.2) of subfig.sty supports
+% the caption=false option directly:
+%\ifCLASSOPTIONcompsoc
+%  \usepackage[caption=false,font=normalsize,labelfont=sf,textfont=sf]{subfig}
+%\else
+%  \usepackage[caption=false,font=footnotesize]{subfig}
+%\fi
+%
+% The latest version and documentation can be obtained at:
+% http://www.ctan.org/tex-archive/macros/latex/contrib/subfig/
+% The latest version and documentation of caption.sty can be obtained at:
+% http://www.ctan.org/tex-archive/macros/latex/contrib/caption/
+
+
+
+
+% *** FLOAT PACKAGES ***
+%
+%\usepackage{fixltx2e}
+% fixltx2e, the successor to the earlier fix2col.sty, was written by
+% Frank Mittelbach and David Carlisle. This package corrects a few problems
+% in the LaTeX2e kernel, the most notable of which is that in current
+% LaTeX2e releases, the ordering of single and double column floats is not
+% guaranteed to be preserved. Thus, an unpatched LaTeX2e can allow a
+% single column figure to be placed prior to an earlier double column
+% figure. The latest version and documentation can be found at:
+% http://www.ctan.org/tex-archive/macros/latex/base/
+
+
+
+%\usepackage{stfloats}
+% stfloats.sty was written by Sigitas Tolusis. This package gives LaTeX2e
+% the ability to do double column floats at the bottom of the page as well
+% as the top. (e.g., "\begin{figure*}[!b]" is not normally possible in
+% LaTeX2e). It also provides a command:
+%\fnbelowfloat
+% to enable the placement of footnotes below bottom floats (the standard
+% LaTeX2e kernel puts them above bottom floats). This is an invasive package
+% which rewrites many portions of the LaTeX2e float routines. It may not work
+% with other packages that modify the LaTeX2e float routines. The latest
+% version and documentation can be obtained at:
+% http://www.ctan.org/tex-archive/macros/latex/contrib/sttools/
+% Documentation is contained in the stfloats.sty comments as well as in the
+% presfull.pdf file. Do not use the stfloats baselinefloat ability as IEEE
+% does not allow \baselineskip to stretch. Authors submitting work to the
+% IEEE should note that IEEE rarely uses double column equations and
+% that authors should try to avoid such use. Do not be tempted to use the
+% cuted.sty or midfloat.sty packages (also by Sigitas Tolusis) as IEEE does
+% not format its papers in such ways.
+
+
+
+
+%\ifCLASSOPTIONcaptionsoff
+%  \usepackage[nomarkers]{endfloat}
+% \let\MYoriglatexcaption\caption
+% \renewcommand{\caption}[2][\relax]{\MYoriglatexcaption[#2]{#2}}
+%\fi
+% endfloat.sty was written by James Darrell McCauley and Jeff Goldberg.
+% This package may be useful when used in conjunction with IEEEtran.cls'
+% captionsoff option. Some IEEE journals/societies require that submissions
+% have lists of figures/tables at the end of the paper and that
+% figures/tables without any captions are placed on a page by themselves at
+% the end of the document. If needed, the draftcls IEEEtran class option or
+% \CLASSINPUTbaselinestretch interface can be used to increase the line
+% spacing as well. Be sure and use the nomarkers option of endfloat to
+% prevent endfloat from "marking" where the figures would have been placed
+% in the text. The two hack lines of code above are a slight modification of
+% that suggested by in the endfloat docs (section 8.3.1) to ensure that
+% the full captions always appear in the list of figures/tables - even if
+% the user used the short optional argument of \caption[]{}.
+% IEEE papers do not typically make use of \caption[]'s optional argument,
+% so this should not be an issue. A similar trick can be used to disable
+% captions of packages such as subfig.sty that lack options to turn off
+% the subcaptions:
+% For subfig.sty:
+% \let\MYorigsubfloat\subfloat
+% \renewcommand{\subfloat}[2][\relax]{\MYorigsubfloat[]{#2}}
+% For subfigure.sty:
+% \let\MYorigsubfigure\subfigure
+% \renewcommand{\subfigure}[2][\relax]{\MYorigsubfigure[]{#2}}
+% However, the above trick will not work if both optional arguments of
+% the \subfloat/subfig command are used. Furthermore, there needs to be a
+% description of each subfigure *somewhere* and endfloat does not add
+% subfigure captions to its list of figures. Thus, the best approach is to
+% avoid the use of subfigure captions (many IEEE journals avoid them anyway)
+% and instead reference/explain all the subfigures within the main caption.
+% The latest version of endfloat.sty and its documentation can obtained at:
+% http://www.ctan.org/tex-archive/macros/latex/contrib/endfloat/
+%
+% The IEEEtran \ifCLASSOPTIONcaptionsoff conditional can also be used
+% later in the document, say, to conditionally put the References on a
+% page by themselves.
+
+
+
+% *** PDF, URL AND HYPERLINK PACKAGES ***
+%
+\usepackage{url}
+% url.sty was written by Donald Arseneau. It provides better support for
+% handling and breaking URLs. url.sty is already installed on most LaTeX
+% systems. The latest version can be obtained at:
+% http://www.ctan.org/tex-archive/macros/latex/contrib/misc/
+% Read the url.sty source comments for usage information. Basically,
+% \url{my_url_here}.
+
+
+
+
+
+% *** Do not adjust lengths that control margins, column widths, etc. ***
+% *** Do not use packages that alter fonts (such as pslatex).         ***
+% There should be no need to do such things with IEEEtran.cls V1.6 and later.
+% (Unless specifically asked to do so by the journal or conference you plan
+% to submit to, of course. )
+
+
+
+
+\begin{document}
+
+%
+% paper title
+% can use linebreaks \\ within to get better formatting as desired
+\title{ME578 Project: Model Checking a Fixed-wing UAS Autopilot Subject to Bounded Disturbances}
+
+
+\author{James Goppert,~\IEEEmembership{Member,~AIAA}        % <-this % stops a space
+\IEEEcompsocitemizethanks{\IEEEcompsocthanksitem James Goppert is with the School of Aeronautical and Astronautical Engineering,
+        Purdue University, West Lafayette, IN 47907, USA.\protect\\
+% note need leading \protect in front of \\ to get a newline within \thanks as
+% \\ is fragile and will error, could use \hfil\break instead.
+E-mail: {\tt\small jgoppert@purdue.edu}
+.}% <-this % stops a space
+\thanks{}}
+
+
+\IEEEcompsoctitleabstractindextext{%
+\begin{abstract}
+%\boldmath
+%\textbf{less than 200 words}
+
+As unmanned aerial systems (UASs) assume more roles in our society, it is important that we ensure their safe operation. Model checking is a powerful tool that can be used to verify safety critical systems; however, it can only be directly applied to finite state machines. Existing methods have used reachable sets to transform systems with continuous and discrete (hybrid) dynamics into a finite state machine, but they often neglect disturbances. In this paper, we propose the use of Lyapunov theory to augment reachable sets for regulated linear systems in the presence of bounded disturbances. The restriction to linear systems can appear to be limiting, but we demonstrate that through dynamic inversion this method can be employed for model checking a non-linear autopilot. The algorithm was flight tested on a small fixed-wing UAS and the results demonstrate the effectiveness of the algorithm in identifying when the vehicle can operate safely. In addition, the algorithm is efficient and can be executed in real-time. Consequently, the algorithm can be used for runtime assurance in the presence of machine learning or varying environmental conditions.
+
+%The abstract sums up the contribution s of your project--make it just as you would any journal or conference abstract: context, your results and why your results are better than some results among your references.
+%The course project will involve the modeling, analysis, design, and experimental or realistic simulation verification of a physical system under digital control. The physical system can be the system that you are working with in your research or you can talk with me to get some idea. The report should follow standard engineering technical paper 2 columns format that may include (but not limited to): Abstract under 200 words; Introduction - including literature research, System modeling and analysis; Controller synthesis; Stability and stability robustness analysis; Robustness to plant parameter variations; Robustness to input/output signal and controller parameter quantization; Effect of computation resource (time) and sampling time; Performance comparison with continuous-time controller; Simulation Study and Verification; Experimental Verification Conclusion and Discussion - Why did the controller/estimator work or or not work? (VERY IMPORTANT) References The report should be limited to 15 pages including figures and drawings.
+\end{abstract}
+
+\begin{IEEEkeywords}
+Model Checking, Dynamic Inversion, Lyapunov, LMI, Bounded, Disturbance, PIHA, Real-Time, Runtime Assurance
+\end{IEEEkeywords}}
+
+
+\maketitle
+
+
+
+\IEEEdisplaynotcompsoctitleabstractindextext
+
+\IEEEpeerreviewmaketitle
+
+
+
+\section{Background and Motivation}
+
+%Describe the problem you will work on. Give background or state or the art in the area with references. Also state the motivation of the problem. The style of writing should be like in any research paper or engineering report. Please get one of your classmates to read your material before submission, so you don't unnecessarily lose points for the five classes of mistakes mentioned in the syllabus.
+
+%\IEEEPARstart{D}{igital} control is built into many real-world systems. 
+%\textbf{Motivate your problem here with adequate background and references}.Why is your problem important?
+
+%What is the state of the art in your problem? 
+\IEEEPARstart{A}s unmanned aerial systems (UASs) are trusted to perform more complex tasks, the associated safety risks increase. UASs typically have a complex controller that depends on both continuous vehicles states and discrete modes. Systems with tight coupling of continuous and discrete dynamics are known as hybrid systems. Verification and validation of hybrid systems is a difficult problem that has not been solved except for a few simple cases. 
+%Why can it be beaten? Why now?
+%How are you going to do it?
+In order to verify safety properties of software, model checking is typically employed~\cite{Baier2008}; however, model checking can only be directly applied to finite state machines. For systems with state dependent mode transitions, reachable sets are used to create a finite state machine simulation of the original hybrid system. Reachable set analysis is computationally expensive, but approximations using polyhedrons can efficiently over-approximate or under-approximate the reachable set~\cite{Chutinan1999}. Over approximation of the reachable set can prove a state is not reachable (safety), and under approximation can prove that a system is reachable (reachability). These properties can be formulated using computational tree logic (CTL), and verified efficiently using model checking software such as NuSMV~\cite{Cimatti2002}.
+
+Typical hybrid model checking is performed on systems with unstable modes~\cite{Silva2000,Silva2001}. In the UAS autopilot, the vehicle is regulated along the desired trajectory. If disturbances such as wind are not accounted for, the trajectory of the vehicle will eventually approach the deterministic reference trajectory~\cite{Goppert2013}. Consequently, the reachable set of the autopilot will be underestimated and unsafe sets may be reachable. In our previous work~\cite{Goppert2013}, we accounted for disturbances using the H-infinity norm although this was an under approximation of the true reachable set. Disturbances can be more accurately accounted for using Lyapunov theory. For linear systems with bounded disturbances, the reachable set can be efficiently computed using an linear matrix inequality (LMI)~\cite{Khalil2002} and we will apply this method in this paper.
+
+\begin{figure}[htp]
+\centering
+\includegraphics[width=1\linewidth]{./data/figures/camflyer}
+\caption{The Bormatec Cam-Flyer Q UAS.}
+\label{fig:camflyer}
+\end{figure}
+
+
+When model checking a hybrid system, an intelligent selection of the controller can significantly reduce the complexity of the analysis~\cite{Goppert2013}. We employ dynamic inversion to linearize the dynamics of the vehicle. Dynamic inversion based controllers have already been shown to be effective at controlling UASs~\cite{Jang2004,Moncayo2012}. The reachable set can be calculated efficiently because of the linearized dynamics. Dynamic inversion is susceptible to modelling errors; however, these errors can be treated as bounded disturbances to the linear dynamics. Therefore, the LMI used to account for environmental disturbances such as wind can also be used to address modelling errors.
+
+%What results do you have?
+
+The paper is organized as follows: Section~\ref{sec:sampling} discusses the sampling and quantization issues,
+Section~\ref{sec:results} contains simulation and flight test results of the Bormatec Cam-Flyer Q UAS (shown in Fig.~\ref{fig:camflyer}) flying a mission consisting of a series of waypoints. We demonstrate the identification of a logic error in the guidance algorithm using the model checking algorithm proposed.
+
+%How have you documented them in the overall report (which section contains what)? 
+%Section~\ref{sampling} contains	sampling and quantization issues, section~\ref{discretemodel} presents the sampled model, section~\ref{representation} gives various representations of the model and identification of parameters, section~\ref{stability} analyzes stability, sensitivity and robustness, controllability/observability analysis. Section~\ref{control1} presents control designs via the input-output approach, section~\ref{control2} via the polynomial approach, and section~\ref{control3} via state space approach. Section~\ref{optimal} presents optimal estimation and control, and section~\ref{implementation} covers implementation issues.
+
+\section{Sampling and Quantization}\label{sec:sampling}
+
+%Discuss the sampling and quantization issues and potential implementation in this update. Your discussion needs to be quantitative. It will not be final, as you will need to iterate on this after you do your control designs.
+
+
+The PixHawk autopilot, shown in Fig.~\ref{fig:pixhawk} is the autopilot used for flight testing and the model for the simulation. The PixHawk has inertial sensors consisting of an ST Micro L3GD20 3-axis 16-bit gyroscope, an ST Micro LSM303D 3-axis 14-bit accelerometer / magnetometer, an Invensense MPU 6000 3-axis accelerometer/gyroscope, and an MEAS MS5611 barometer. The accelerometer is read at 800 Hz with a low pass filter at 260 Hz, the gyroscope is read at 760 Hz with a low pass filter at 256 Hz, the magnetometer and barometer are both read at 150 Hz. Note that the inertial sensors communicate over serial and that ADC sampling and low pass filtering is occurring within the firmware of the sensors. The autopilot also has an external MPXV7002DP differential pressure sensor for airspeed that is sampled by the on-board 12-bit ADC at 100 Hz and an external GPS module that sends serial packets at 5 Hz.
+
+\begin{figure}[htp]
+\centering
+\includegraphics[width=0.7\linewidth]{./data/figures/pixhawk}
+\caption{The PixHawk autopilot.}
+\label{fig:pixhawk}
+\end{figure}
+
+
+The servos on the Cam-Flyer Q UAS are driven using pulse width modulated (PWM) analog signals output by the PixHawk autopilot. The frequency of the PWM signal 50 Hz. This limits the bandwidth of the signal transmitted to the main propeller motor and control actuator servos to the Nyquist frequency of 25 Hz.
+
+\begin{figure}[h!]
+\centering
+\includegraphics[width=1\linewidth]{./data/figures/camflyer_aadl}
+\caption{An AADL block diagram overview of the aircraft dynamics and control system.}
+\label{fig:camflyer_aadl}
+\end{figure}
+
+\section{Continuous Model}\label{sec:continuousmodel}
+
+\subsection{Assumptions}
+
+
+\begin{enumerate}
+\item \emph{Rigid Body}: We neglect flexing of the airframe. This is valid except for the wings which flex during flight. The wing flexure modifies the aerodynamic performance which is reflected in the tables, but the associated dynamics are neglected. A notch filter will be used to suppress the structural modes of the wings.
+
+\item \emph{Constant Mass}: We are using an electric motor with a battery so it is reasonable to neglect mass changes. If a payload is dropped then a discrete mass change can be accounted for by changing the current mass/rotational inertia, but mass dynamics are nelected.
+
+\item \emph{Flat Earth}: We neglect the rotation of the Earth and assume that a local tangent frame is inertial. This is valid because the rate of Earths rotation is below the measurement capabilities of the sensors. This is because the Coriolis term is scales with the velocity of the aircraft. At the equator and at cruise velocity the magnitude of the Coriolis term would be on the magnitude of 1E-5 rad/s, but our gyroscope resolution is only 1E-4 rad/s.
+
+\item \emph{Consant Wind}: We neglect the effect of wind accleration on the system. It is assumed that the dynamics of the aircraft are much faster than the dynamics of the wind gusts. This is generally true for the non-windy conditions in which the UAV can operate safely.
+\end{enumerate}
+
+\subsection{Frames}
+
+\begin{itemize}
+\item \emph{i}: Inertial frame - The frame where Newton's laws apply.
+\item \emph{e}: Earth-fixed frame - This frame is fixed in the earth.
+\item \emph{n}: Navigation frame - This frame translates with the aircraft center of mass and rotates so that is locally tangent to the surface of the Earth. It is a right handled set given by North, East, and down.
+\item \emph{b}: Body frame - This frame is fixed in the aircraft. It is a right handed set given by forward, over the right wing, and down in the aircraft frame.
+\item \emph{s}: Stability frame - This frame is rotated from the body frame by the side-slip angle ($\beta$) about the body z-axis.
+\item \emph{w}: Wind frame - This frame is rotated from the stability frame by the angle of attach ($\alpha$) about the stabiliy y-axis.
+\end{itemize}
+
+\subsection{Aerodynamics}
+
+\begin{figure}[htp]
+\centering\includegraphics[width=\linewidth]{./data/figures/camflyer_cruise}
+\caption{Cam-Flyer Q XFLR5 Aerodynamic Model}
+\label{fig:camflyer_cruise}
+\end{figure}
+
+\begin{table}[htp]
+\centering
+\input{./data/latex/tbl_aero_gen.tex}
+\caption{Aircraft Cruise Condition}
+\end{table}
+
+\begin{table}[htp]
+\centering
+\input{./data/latex/tbl_aero_stab.tex}
+\caption{Dimensionless Derivatives}
+\end{table}
+
+
+\subsection{Propulsion}
+
+For now, the propulsion system is modelled as a first order system. The time constant is obtained experimentally. The effect of velocity on thrust is neglected.
+
+\subsection{Equations of Motion}
+
+We invoke the rigid body assumption and begin with Newton's $2^{nd}$ law for rigid bodies:
+\begin{align}
+\frac{^id}{dt} \left( m {}^i\mathbf{v}^{cm} \right) &= \mathbf{F} \\
+\frac{^id}{dt} \left(J_{cm} {}^i\mathbf{\omega}^b \right) & = \mathbf{M}
+\end{align}
+where $\mathbf{F}$ is the sum of forces on the rigid body, $m$ is the total mass, ${}^i\mathbf{v}^{cm}$ is the velocity of the center of mass, $\mathbf{M}$ is the sum of moments on the rigid body, $J_{cm}$ is the rotational inertia matrix about the center of mass, and $\mathbf{\omega}_{n/b}$ is the angular velocity of the b frame fixed in the rigid body with respect to the inertial frame i.
+
+The relative wind ($\mathbf{v}_{rel}$), which governs the aerodynamics forces,  is defined as:
+\begin{align}
+\mathbf{v}_{rel} \equiv {}^e\mathbf{v}^{cm} - {}^e\mathbf{v}^{wind} = V_T \hat{\mathbf{w}}_x 
+\end{align}
+where $V_T$ is referred to as the true velocity,  ${}^e\mathbf{v}^{wind}$ is the wind velocity with respect to the earth at the current location of the aircraft, and $\hat{\mathbf{w}}_x$ is the unit vector in the wind frame x direction.
+
+
+Applying the constant mass, and flat earth assumptions and the defintion of relative velocity yields:
+\begin{align}
+\frac{^ed}{dt} (\mathbf{v}_{rel} + {}^e\mathbf{v}^{wind}) &= \mathbf{F}/m \\
+ J_{cm} \frac{^ed}{dt}  {}^e\mathbf{\omega}^b &= \mathbf{M}
+\end{align}
+note frame e is the earth frame which is now considered equivalent to frame i due to the flat Earth assumption.
+
+If we neglect $ \frac{^ed}{dt} {}^e\mathbf{v}^{wind}$ using the constant wind assumptions and mechanize the force equation in the wind frame, since the aerodynamic forces are most easily expressed in this frame, we obtain:
+\begin{align}
+\frac{^wd}{dt} \left[\mathbf{v}_{rel}\right]_w  + \left[({}^e\mathbf{\omega}^b + {}^b\mathbf{\omega}^w ) \times \mathbf{v}_{rel}\right]_w &= \left[\mathbf{F}\right]_w/m
+\end{align}
+where $[ \circ ]_w$ denotes a vector expressed in the wind frame.
+
+We can then simplify using the defintion of relative velocity:
+\begin{align}
+ \dot{V_T} \hat{\mathbf{w}}_x  + \left[{}^b\mathbf{\omega}^w  \times \mathbf{v}_{rel}\right]_w &= \left[\mathbf{F}\right]_w/m -  \left[{}^e\mathbf{\omega}^b \times \mathbf{v}_{rel}\right]_w
+\end{align}
+
+
+\section{Sampled Model}\label{sec:discretemodel}
+
+%Develop your discrete model (simple baseline, or even part of your system to begin with), and pulse transfer functions between your reference inputs and measurements.
+
+\section{Transfer Function and State Space Representations and System ID}\label{sec:representation}
+
+
+%Represent your system in several ways-- in state space and transfer function/transfer matrix forms, document the physical parameters of your system and the uncertainty in their values. Obtain the parameters and their uncertainty through system ID methods if need be. Also document the relative speeds of sensing, actuation, and your plant itself so as to justify your system representation and simplifications for control design.
+
+
+\section{Stability, Sensitivity and Robustness, Controllability/Observability Analysis}\label{sec:stability}
+% Analyze your system representation for stability, observability and controllability. Check also whether the system is practically stable--is it stable under all combinations of parameters possible? How observable is it? The observability matrix may be full rank, but it may take a long time to estimate its state because the observability matrix is ill conditioned. Similar considerations may apply to controllability.
+
+
+\subsection{Stability}
+
+\subsection{Sensitivity and Robustness}
+
+\subsection{Controllability and Observability}
+
+\section{Control Designs via Input-Output Approach}\label{sec:control1}
+
+% Develop control designs for your plant via the input-output approach. Compare several discretizations of the PID controllers for performance. What discretizations are best for different input signals?
+
+
+
+\section{Control Designs via Polynomial Approach}\label{sec:control2}
+
+% Develop your control designs for your system using the polynomial approach. Show your requirements and how you systematically satisfy them with the polynomial approach.
+
+\section{Control Designs via State Space Approach}\label{sec:control3}
+
+% Apply state space control design methods to your system. Show how they meet design requirements--be explicit with design requirements. Do the designs operate within actuator limits (displacement and speed)? Compare these results to your previous results from polynomial and input-output designs by plotting frequency responses on the same plot (with legends), and time responses--tracking and control effort versus time--on the same plot for all designs.
+
+\section{Optimal Control/Estimation Designs}\label{sec:optimal}
+
+% Apply LQR, LQG and LQR with Kalman filter to your plant. Add these results to  your comparison plots in both time domain and frequency domain (Bode). Compare your control effort to that obtained from pole placement design--see if you can choose Q and R to get realistic control effort.
+
+\subsection{Attitude Heading Reference Systems (AHRS)}
+
+
+\subsection{Inertial Navigation System (INS)}
+
+\subsection{Linear Quadratic Regulator (LQR)}
+
+\subsection{Combined Controller (LQG)}
+
+\section{Implementation Issues}\label{sec:implementation}
+
+% Test your control designs on high fidelity models via simulation; you can try nonlinear or adaptive designs or LMI designs if you like. Clean up your work and develop abstract and conclusions. Submit your matlab/simulink codes along with your final updates. The submissions should be clean: 1 pdf file, 1 matlab file and a simulink file.
+
+\subsection{Nonlinear Simulation}
+
+\section{Dynamic Inversion}\label{sec:dynamic_inversion}
+
+\newpage
+\section{Reachable Set Calculation}\label{sec:reachability_analysis}
+
+\section{Finite State Machine Conversion}\label{sec:finite_state_machine}
+
+\section{Conclusions}\label{sec:results}
+
+\bibliographystyle{IEEEtran}
+\bibliography{ref.bib}
+
+\end{document}
+
 figpath = os.path.join('data', 'figures')
 
 # do simulation
-ac = Aircraft()
+ac = Aircraft(seed=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
 ac.simulate()
 data = ac.data