Version2:Airframe Design Procedure
From Albatross
This page is a brain dump about the airfoil/airframe/control design procedure, simulation and verification steps.
Albatross Design/Verify/Simulate Cycle
Step 1: Canard aircraft design
- Inputs: Wing and Canard parameters, mass distribution of flight components
- Process: This is based on rules of thumb for Canard design.
- Outputs: Wing and canard areas and AC, COG, wing loading, cruise and stall speed, etc. Should generate .avl and .mass files
- Status: Half done.
Step 2: Airframe stability and operation analysis
- Inputs: Output of step 1
- Process: Uses AVL Vortex-Lattice model for aerodynamic analysis. Make it scriptable using python-pexpect.
- Outputs: Basic aerodynamic properties (lift/drag), Trim, and Stability (Eigenmode analysis)
- Status: Started.
Step 3: Optimization of Canard Design
Operate Steps 1 and 2 in a loop. Numerically optimize some/all airframe design parameters, try to minimize coefficient of drag etc to maximise endurance and cruise speed.
Step 4: Generation of Aircraft configuration files for JSBSim/Flightgear
- Inputs: Outputs of steps 1 and 2.
- Process: Convert into a JSBSim Aircraft configuration. (Think Aeromatic on steroids).
- Output: JSBSim aircraft configuration file.
- Aircraft XML file syntax - FIXME
Step 5: Simulated Aircraft Flight
Script JSBSim/Flightgear to fly a simple (or complex - i.e. the whole trans-tasman) flightpath and collect all measurements over the course of this flight. Flight at this stage will be controlled via an autopilot definition file but using the same basic autopilot architecture as we will use.
Step 6: HITL/SITL/Control Foo
Take the eigenmode (and other physical measures) from the step2 output and use these to tune the control system. We then do another scripted run of JSBSim, but this time we perform a full hardware-in-the-loop simulation using our flight control code running on the flight hardware.
Measures of Effectiveness
Theoretically we then can compare steps 4 and 5 to check if the airframe and control will work. Can check Controllability etc.
Possible Additional Steps
- Do a few short duration (10-20 seconds) scripted flights, recording data. Add noise etc to that data to model the accelerometer/gyro/GPS/etc sensors and then run this through UKF state estimator and compare it to the true state values to test its effectiveness, and more a full HITL.
- There could be some additional steps prior to 2 that use QProp and/or XFoil (which are motor and airfoils analysis tools similar to AVL) if we feel that these could benefit from further optimization.
How to Operate
Top level designer script
Usage: ./design.sh -i INPUT_DIR -o OUTPUT_DIR -n AIRCRAFT_NAME [OPTIONS] Options: -a Design airfoil -A Design airframe -p Profile airframe using AVL -O Optimize airframe -S Simulate airframe performance usin JSBSim -s Perform SITL test -h Perform HITL test -q Quiet output Example: ./design.sh -i input/ -o output/ -n Albatross -Ap
Directory structure
/design. Found in svn trunk
/design/design.sh The top level script
/design/check-deps.sh Checks deps, if OK design.sh should run
/design/inputs/ Input files to the process (change these)
/design/inputs/Albatross.py Class representing and aircraft
/design/airfoil/
/design/fuselage/canard-design.py Generates .avl and .mass files
/design/fuselage/get-aerodynamic-data.py Takes uses AVL to make .run and .eig files
Can be run in optimize mode.
/design/simulate/
/design/outputs/
Other notes
- Outputs go into the output folder by data
More Information
- Information on .avl and .mass files
- Information on JSBSim ML and script formats
