First of all, I'm glad everyone is so interested in my work. I'm really sorry that I haven't been able to check in here more often to help people out. Quite frankly the code I wrote does its job well enough for me, and I had no idea it would get as popular as it did. I'm thinking of getting a SourceForge page and making this a full-blown project. If there's anyone out there willing to help me out here, let me know - please PM me and we can discuss privately.
Originally Posted by
aaepl
Hi azredwing,
Yeah I have got this function working. As you say CM is easy enough, and XCP is simply 0.25 - (cm/cl), becasue the moment coefficient is taken about the quarter chord.
As for the aerofoil I have just put a folder of aerofoils that comes with xfoil in the same directory as the perl script. Then in my matlab function I point the script to the files in that folder. That opens up 1500 different aerofoils to use. If you want you can also make your own aerofoils on the fly in matlab, paste them into that same folder and get xfoil to crunch the numbers on them, pretty nifty when you want to linearly interpolate between two aerofoils.
With this sort of power, it opens up so many possibilities. For instance I have now made a matlab program that uses xfoil to produce Lift/Drag plots as a function of CL for many different aerofoils all overlaid on the one plot. You can do the same for Cm and Cd, allowing you to rapidly determine the best aerofoils for a given flow condition.
I don't have the time or will-power to take this any further, because it has addressed all my needs, but I'll check back here periodically to help out if I can.
Cheers
I think I've got enough time now to start working on this more generally. Here's the function call for the framework I'm thinking of:
Code:
function [CL,CD,CM, Xcp] = xfoil(airfoil, Re, Ma, maxit, alfa_start, alfa_end, alfa_step)
So you are required to specify airfoil, Re, Ma, and alfa_start; maxit will default to some number, alfa_end and alfa_step are only used when you want to do a MATLAB aseq command, since that's much more efficient than calling this function over and over again in a for loop.
Other ideas for what needs to go in?
Also could you post or send me your modifications? I'd like to incorporate them if they're already working. (Of course when this is released you will get full credit - I'd like to release under the GPL or something.)
Bookmarks