Data from: a physics-based digital twin for model predictive control of autonomous unmanned aerial vehicle landing
Data files
May 09, 2022 version files 460.72 MB
-
DTI_for_MPC.zip
-
README.txt
Abstract
This paper proposes a two-level, data-driven, digital twin concept for the autonomous landing of aircraft, under some assumptions. It features a digital twin instance for model predictive control; and an innovative, real-time, digital twin prototype for fluid-structure interaction and flight dynamics to inform it. The latter digital twin is based on the linearization about a pre-designed glideslope trajectory of a high-fidelity, viscous, nonlinear computational model for flight dynamics; and its projection onto a low-dimensional approximation subspace to achieve real-time performance, while maintaining accuracy. Its main purpose is to predict in real-time, during flight, the state of an aircraft and the aerodynamic forces and moments acting on it. Unlike static lookup tables or regression-based surrogate models based on steady-state wind tunnel data, the aforementioned real-time digital twin prototype allows the digital twin instance for model predictive control to be informed by a truly dynamic flight model, rather than a less accurate set of steady-state aerodynamic force and moment data points. The paper describes in detail the construction of the proposed two-level digital twin concept and its verification by numerical simulation. It also reports on its preliminary flight validation in autonomous mode for an off-the-shelf unmanned aerial vehicle instrumented at Stanford University.
Methods
The dataset was collected via numerical experiments performed primarily with the code AERO-F (https://bitbucket.org/frg/aero-f), which was also used for processing the data (e.g. reporting interated forces and moments, etc.), with the addition of AERO-S (https://bitbucket.org/frg/aero-s), rompc (https://github.com/StanfordASL/rompc), asl_fixedwing (https://github.com/StanfordASL/asl_fixedwing), and the asl-v3.2.0 branch of qpOASES (https://github.com/jlorenze/qpOASES; forked from https://github.com/coin-or/qpOASES), which were used for the simulation of the controller. Data was also processed, and some numerical experiments performed, with code found at pyaeroutils (https://github.com/amcclell/pyaeroutils), and using CVX (http://cvxr.com/cvx). Additional processing scripts are included with the dataset, and the top-level directory contains a README.txt describing additional dependencies.
Usage notes
The data within consists largely of processed data, due to the immense size of raw output of the fluid solution, though the simulation contained in DTI_for_MPC_Verification also contains some raw data that represents the dynamic state of the aircraft. The data consists of:
- the reduced order model (both unstabilized and stabilized)
- the trim computation along the glideslope
- data from the linearized high-dimensional solution of the forced motion problem described in the paper.
- the controller matrices
- integrate aerodynamic forces from the control simulation, as well as the aircraft dynamic state and state of the reduced order models
Additionally, scripts for
- performing the ROM stabilization
- simulating the ROM in the forced motion problem, plotting the results and computing the relative errors
- building the controller
- generating the plots of the controlled simulation
- performing necessary preprocessing steps if rerunning the controller simulation
as well as the code for the controller and its interface to AERO-S, and the input files for running the controller simulation are included. The README.txt in the top-level directory describes the dependencies and basic file sructure; the README.txt in the simulation directory describes the contents of its subdirectories, and each subdirectory contains a README.txt describing how to run the scripts contained within.
All files (with minor exceptions) are plain text files that may be read in a generic text editor. The exception are the .mat files, which are Matlab (https://www.mathworks.com/products/matlab.html) data files, and may be loaded within Matlab by using the 'load' command.