The project is developed for the purpose of acquainting myself with basic aircraft control knowledge.
Embarrassing typos in the plots below......(Should be "roll")
The project consists of the following parts:
- An arithmetic expression parser that converts mathematical expressions into tree structures and stores them in a variables lookup table;
- The representation of a state model with RK4 integration method that calculates the dynamics of a given state model;
- An implementation of algebraic Riccati equation solver that optimizes the stability of a linear state model.
The Jupyter Notebook file plot.ipynb
inside the python folder showcases the following lateral/directional-mode state evolutions implemented with the program:
- Rolling mode stability;
- Spiral mode stability;
- Dutch roll stability;
- Trimming of the aircraft undergoing a unit perturbation in sideslip, with different penalty parameters for the control vector.
The configuration and dimensionless aerodynamic coefficients data are of Boeing 747, obtained from the aircraft handling qualities data reported by NASA. The configuration used is power approach configuration.
The following compare the results calculated by the program versus the results used by Professor Caughey in his lecture notes on aircraft control:
The state and control vector explodes when setting penalty parameter (c_u) to 0.5. Likely a problem of the Riccati solver.
The differences between the results produced by the program and professor Caughey's results possibly come from different values of dimensional derivatives and different control vectors found by the optimizers. Despite the differences, the program is able to demonstrate (1) the characteristics of the free responses of the aircraft in the three lateral/directional modes and (2) that the pertubation is more heavily damped when using a higher penalty parameter for the control vector during trimming.
- Improve the software architecture, mainly by making
Variable
class a derived class ofMathExpressionElement
; - Implement Simplex algorithm to trim non-linear models.
- Increase the complexities of the state and control matrices and benchmark the results against the references provided by NASA.