BladeElementTheoryPropellerAnalysisTool
BETPAT is a small tool to analyse and design propellers. It implements a simple bladeelementtheory algorithm using an iterative process to approximate the inflow factors. The aerodynamic analysis of the airfoils at the stations is done by Mark Drela’s XFOIL (thanks for that!).
I wrote this tool at the Univeristy of Syndey, Australia while on a compulsory internship down under.
I’m a student of aeronautical engineering at the University of Stuttgart, Germany, and after finishing our pre-diploma we have to get some practical experience. As I’m interested in UAVs (Unmanned Aerial Vehicles) and wanted to travel Australia, I came across the UAV group at USyd, lead by Dr KC Wong. After some e-mails and a visit in his office I got the opportunity to work with him.
The main target of my project is (I’m still working on it 😉 ) to build a efficient propeller for the Bidule UAV and maybe others as well. Using the basic core algorithm wich Alexander Hill wrote in Matlab I started translating this to C++, adding a GUI with a simple geometry editor. Somewhere on the way I changed the analysis from calling XFOIL each time to table-lookup, wich made everything way faster. One of the last features I added was the DXF export, making it really easy to use the designed propeller in CAD.
With this well working tool I just designed a small (254mm) propeller, wich I will build and test the next weeks. So far the comparison of experimental results with the BETPAT prediction was quite ok. As the turbulent and other effects get stronger in these small dimensions, the prediction of small props isn’t as accurate as for big ones.
Choosing the GPL license I hope there might be some more people interested in this topic wanting to participate. Mybe someone is interested in implementing some other analysis algorithm aside BET? Anyway, I’ll go on with the development of BETPAT aside my further studies.
If you find bugs, got some ideas about what could be improved or just like the tool, just drop me note!
Cheers everybody,
Tim Jagenberg.
betpat-0600.exe win32 Installer
betpat-0600src.rar GPLed C++ source
Further Details
Data Structure
A basic step is to understand the data and file structure. I’ll start from the small parts, joining them together to the final propeller.
On the very low level, there are basically two elements, the coordinates-file (*.dat) (representing the shape of the airfoil) and the polar-file (*.pol) (holding aerodynamic data).
Both are pretty independent. The first one is used for visualisation (the shape shown in the airfoil-section of the propeller editor) and the DXF-geometry export, the second is used for the analysis. As they are independant, it’s completly possible to use different airfoils-shapes for visualisation/geometry and for the actual analysis. (Might be use to aproximate one airfoil wich is badly calculated by XFOIL with another one with another one solving easier)
For easier handling the references to these two files are joined together in an airfoil-file (*.af). Using the airfoil-file, you can set up different coordinates/polars-combos, which can then be used at one or more stations in one or more propellers. (say you got different propellers using ClarkY with about the same working range of reynoldsnumbers you just need to create one airfoil-file, using the same polar- and coordinates-file every time at every station).
The last file is the propeller-file (*.prop) itself, defining different values (name, no. of blades, diameter and number of stations). For each station it contains the specific data (radius from hub, chord, angle, x-/y-offset) and a reference to the airfoilfile to be used at that station.
For convenience I usually store the references in the airfoil- and propeller-file relative to the BETPAT main directory, so same files can be used in different folders, or machines. (./airfoils/clarky-1000-3001000.af ./airfoils/coordinates/clarky.dat ./polars/clarky-1000-3001000.pol – the numbers represent the range of RNR, but this is free to everyones own preference).
Other files are used to store environment-values (*.env), the settings for one or more batch-analysis-jobs (*.ba), the results of a batch-analysis (*.csv – charater separated values) and the setting for one or more btach-polar-calcuation-jobs (*.bp).
step-by-step example
To get you familiar it’s probably best to play around with the included example propeller, found in ./userdata/TJ254-003/
- So go to the propeller-editor-tab and choose “load”, browse to the dir named above and open the propeller in there. Now browse through the stations using the arrows in the station-values-area, you’ll see how the values below and the airfoil-shape on the right change. On the right in the airfoil-area, you see the values of the airfoil-file used at the actual station.
- Go to the environment-tab, and change the velocity to 6 m/s. Pretty much anywhere in the program you’ll have to push “set” in order to make use of changed values (otherwise values won’t be used or might even get reset to the old ones), so do this now.
- Change to the analysis-tab and hit “analyse”. The propeller is analysed and the results are shown in the respective fields. The big are with the charts shows specific values along the blade, from hub to tip.
Links
- UAV group at the University of SydneyLink-Name
- XFOIL
- UIUC Airfoil Data Site
- Dev-C++ a nice free and open (GPL) IDE I used
- Fast Light Toolkit – the GUI toolkit used in BETPAT
- GNU General Public License