FDDAS: Flight Dynamics Development and Analysis System

Discussion about the utility, feasibility and value add to the DAO on the development of the following system, please review and comment below

Concept

Imagine going from just an aircraft’s initial design characteristic to being able to confidently express the bounds of its behaviour repeatedly, accurately and reliably.c When designing systems, especially aircraft, one of the key tools for being able to do this are mathematical models, which aid in critical analyses and deriving design parameters. Previously, such as here, attempts have been made at generating such models on Arrow projects and thus subsequently running these analyses, but none have yet been driven to completion. This has meant that generating and optimising parameters like control system coefficients have been performed manually and unsystematically, which is not only time consuming, but also haphazard and has led unsurprisingly to numerous failures. This will ultimately not be a viable path towards developing any human operable craft. Therefore, a suitable process needs to be developed, and due to the fundamental similarity between the dynamics of multiple aircraft types, it is possible to develop a framework which would only require parametric modifications to be generally applicable.

Objectives

Develop a parametric framework integrating:

  • Mathematical Modelling
  • Control System Design
  • Stability and Performance Characteristic Analysis
  • Flight Controller Parameter Generation
  • Flight Simulation

Develop an easily deployable and executable wrapper or container for the framework, with a GUI and fixed format outputs for ease of use.

Requirements

Allow the user to supply desired systems Parameters such as:

  • MTOW
  • Thrust (Propeller and Motor / Thrust Stand) Characteristics
  • Structure Configuration (size & dimensions, Octo, Hexa,Quad,Hybrid, etc)
  • Aerodynamic Database
  • etc

Then

Generate and populate a wireframe for 6-DOF aircraft model, with:

  • ODE & State Space Representations

Ultimately able to handle both Lift and cruise capable systems

  • Fixed-wing aircraft.
  • Rotary-wing aircraft (helicopters, drones).
  • Hybrid VTOL aircraft.
  • Multiple structural configurations

Output performance metrics such as Stability, Reachability, Response times, etc

Create a wire-frame for control design able to take the aircraft model, then generate and integrate and test multiple control system architectures from Arduilopt or PX4 or Embention etc.

Simulate performance in variable conditions, then generate a simple but thorough behavioural report.

Create an Integration between the developed model + control architecture with a simulation tool like X-plane, or Gazebo or other such physics enabled systems. These could define and take in user input allowing prospective pilots the possibility of interacting with the systems dynamics. Here is an interesting tutorial series on the X-plane SDK.

Generate a Report where the results can be visualised easily, with elements such as:

  • Plotting tools for performance metrics and simulation data.

Create a GUI through which; the initial parameters can be reliably passed to the rest of the framework, and runtime feedback such as:

  • Control Parameter Modification

Can occur easily

Design the wire-frame with a modular architecture to facilitate easy future updates and expansions. Future elements could include:

  • Aerodynamic / CFD modelling.
  • Propulsion systems design.
  • Finite Element Analysis tools.
  • Structural Fault analysis.
  • Environmental interaction modelling.
  • Power & Battery efficiency and consumption rates modelling.
  • Noise levels and environmental impact
  • etc

Key Project Milestones / Intermediary Deliverables

Each can be made into discrete and progressive system elements, each additional level built on the previous with the previous still being fully functional.

  1. Parametric Thrust Model - $ 500

Using propeller and motor characteristics, such as mass, air-foil, KV ratings etc, the end-to-end, idealised RPM to Torque & Thrust models can be generated from first principles. Alternatively data generated via a thrust stand can be taken and turned into a model.

  1. Parametric 6-DOF ODE Model - $ 1400

The 6-DOF Equation of motion for aircraft are of a known and definite structure which just need to be modified and populated as appropriate.

  1. State Space Control Representation - $ 1100

Used to design control for and analyse systems within some relevant envelope, this envelope will be determined and standardised. I.e assuming level horizontal flight, max PRY angle 30degrees etc.

  1. Stability Analysis - $ 800

Based on the structure and above representations, performance analysis will be generated, focused on general stability, but including projected dynamic response characteristics like time to full pitch etc.

  1. Flight Control Parameter generation for Ardupilot - $ 2800

A replica of, initially Ardupilot, but ultimately various control architectures will be created, basically convert the control module from their repo from c++ to Python / Matlab, then modify as required use that as part of a simulated run time environment to tune behavioural parameters.

  1. Simulation Parameter Generation - $ 1500

Once a set of parameters has been generated, the structure + model + control can be implemented in a fully graphical simulation environment, like Gazebo or X-Plane, and any configuration for those, like structural representations or config files like gazebo’s URDF XML style files, can be created.

  1. Simulation Integration - $ 1800

Once the configuration is generated then integration between the simulation system, and the rest of the program can occur.

  1. Performance Report Generation - $ 500

After each system run or iteration, or at multiple points in between, output files containing system data or plots can be generated.

  1. Encapsulating Graphical User Interface - $ 500

Once all the system’s elements function properly, a nice GUI can go round to hug the rest of it.

Document

1 Like

Thanks Alex for putting this together. Most of the steps mentioned are not very hard to do for one project but it may be a bit challenging to do in a parametric framework. Maybe we can start with multicopter configurations at first (but allows user to change the number of motors parametrically) to get started.

As far as I can see, the most challenging part would be “5. Flight Control Parameter generation for Ardupilot”. Do you have any plans or recommendations for that part? I haven’t tried converting whole Ardupilot code to C++ and running it on Matlab or Simulink. There are some protocols and codes/blocks for that but they are made such in a way that the plant dynamics are running on Matlab and the autopilot code runs through in Ardupilot as SITL (MATLAB Simulation — Dev documentation and Simulink Simulation — Dev documentation). What I would recommend would be achieving that part with a very simple model first and laying the background, and once that part is working, building on top of that.

Btw I came across to this project, which is a digital twin of a hexacopter. It is detailed and overall a nice work, can be helpful as a baseline: GitHub - Sanassah/UAV_VirtualPrototyping: This project is a MATLAB simulation of a hexacopter with custom plant model, control laws, control allocation and reliability model for research purposes

2 Likes

My idea there would be to literally take the feedback controller elements of the code like here , then convet them is methods and function within the overall program and run them in line with the model.

Then, there are SITL options like you suggest