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
460.70 MB
-
README.txt
16.74 KB
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.
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.
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.