Overview
AVLAutomator was my first attempt at automating the use of Drela and Youngren’s vortex-lattice tool, AVL. It allows the user to define a conventionally-configured airplane and run the geometry in AVL for a given condition.
The lessons learned from this tool were later incorporated and improved in DSAeroTools and HPFRTDrelaTools. See those pages for more details.
The Work
The gist of the work here was learning about Python subprocesses and how to use them to execute an AVL command script. It can be done simply:
def runAvl(routine='commands.run', avlPath='avl'):
avl_command = f"{avlPath} < {routine}"
subprocess.run(avl_command, shell=True, stderr=subprocess.STDOUT)
However, the command, geometry, mass, and case files must be properly created and parsed throughout the framework.
The other part of the work was just that: writing out a framework to parametrize a conventional geometry, generate the necessary files, and pass those into the AVL handler. Then comes the challenge of parsing the output.
Winglet Studies
This tool was used for some studies throughout the 2023-2024 design cycle.
Early in the year, the team was investigating how much we could leverage ground effect for the short 20ft TOFL requirement. This played into our configuration selection - perhaps a low-wing outweighed the payloads convenience of a high-wing because of ground effect.
After some hand calcs, I set up a script to sweep winglet heights and height above ground, and verified the energy expenditure per lap to guide our design decisions.
Tail Sizing Studies
The same codebase was used to vary the tail moment arm and volume coefficient to identify the optimal size (from an aerodynamic perspective, though the weight and drag penalties of an increased moment arm were not very severe due to the use of a carbon fiber tail boom for attaching the empennage to the fuselage.)
The result can be found in the 1st place report.