Nov 15, 2011, 03:23 PM
Registered User
Joined Nov 2011
1 Posts
Quote:
 Originally Posted by Montag DP I had to do a group project for an engineering optimization class this semester. We were allowed to choose our own, so I chose airfoil optimization. It was a group project, but I pretty much did the whole thing. But that's beside the point. I thought the results would be of interest to this forum. We ended up using the NACA 4-digit series parameters (max camber, max thickness, max camber location) and modified them to also include trailing edge slope. So we had four design variables. Upper and lower bounds on the parameters were used as constraints, as well as a constraint on pitching moment for one of the cases. I programmed a gradient-based optimization scheme in Matlab, which called XFoil for all function evaluations. The optimization scheme adjusts design variables to optimize the objective function. For this project, we chose to maximize the average of CL/CD at three different angles of attack. Using the average of three different points helps to achieve good performance over a range of angles of attack. The angles of attack considered in the objective function were 1.5, 4, and 7 degrees. The results are posted below, as well as the paper we wrote. There were six trials run, either with no Cm constraint or with it constrained > or equal to zero, each for Re of 80,000, 200,000, and 300,000. Unsurprisingly, the unconstrained case achieved better performance. The constrained pitching moment airfoils, also unsurprisingly, all end up with a reflexed trailing edge. The next step is to increase the number of design variables. I would like to include leading edge radius and max thickness location as design variables for greater control over the shape. It is also possible to change the objective function and constraints for different design goals. Stay tuned. EDIT: By the way, each of the six cases took about 1-1.5 hours to reach a solution on my laptop. I don't count the XFoil function evaluations but I'd guess it's around 1000-2000 each time. I also ran into difficulties with XFoil not converging in some cases, so it's no simple task. I imagine adding 2 more design variables will increase the computational time to over 2 hours.
I was wondering if you have any suggestions on how to pick airfoils in Profili/Xfoil using Clmax Cdmin and alpha as a constrain?

p.s: do you have any scripts/optimization codes or add-ons to use in xfoil/profili?
 Nov 22, 2011, 03:37 PM Sink stinks United States, GA, Atlanta Joined Apr 2005 4,642 Posts Hey, I'm not exactly sure what you mean by your first question, but I do have a Matlab optimization code that uses XFOIL. PM me if you're interested.
 Mar 20, 2012, 09:23 PM Registered User Joined Mar 2012 1 Posts How can we find a separation points at a given reynolds number for a desired airfoil(for example:naca0012) ?
Mar 21, 2012, 10:30 AM
Sink stinks
United States, GA, Atlanta
Joined Apr 2005
4,642 Posts
Quote:
 Originally Posted by ALISAAA How can we find a separation points at a given reynolds number for a desired airfoil(for example:naca0012) ?
Alisaa, XFoil can make boundary layer plots (it is in the VPLO menu within the OPER routine). You should have XFoil calculate the solution at your desired angle of attack and Reynolds number, then enter the VPLO menu and plot either the boundary layer thickness or skin friction. When separation occurs, the boundary layer will suddenly grow much thicker and the skin friction should drop significantly (it should actually become negative, but I don't know if XFoil would predict that).
Oct 25, 2012, 03:00 PM
Registered User
Joined Oct 2012
3 Posts
Matlab code

Dear Montag DP
I am working on a Matlab optimization code as you do, just mine is not working yet.:(
I can run Xfoil out of matlab by now and now I have to add not a smart optimization.
May I ask for you code to learn how you did it?
Best regards
Mat

Quote:
 Originally Posted by Montag DP Hey, I'm not exactly sure what you mean by your first question, but I do have a Matlab optimization code that uses XFOIL. PM me if you're interested.
 Oct 29, 2012, 11:46 AM Sink stinks United States, GA, Atlanta Joined Apr 2005 4,642 Posts Hey Sepply, what are you planning to use it for? If this is a school project, it sounds like you already have the hard part working and now just have to apply an optimizer to it. The way I did it was just to read in the output files from XFoil and set up an cost function to minimize drag or maximize L/D, etc.
 Oct 29, 2012, 12:09 PM Registered User Joined Oct 2012 3 Posts Thanks for the reply; I want to use it for my hobby and optimize a plane. (I am a student but unfortunately not from this field) At the moment I am not sure about how to well parametrize the airfoil (just B-splines? or include LE radius?) and how to have well functioning cost functions and what optimization scheme to use (GA? you used PSO). If you could advice me what worked best for you would be much appreciated. The other thing I read is that you optimized Xfoil to run faster? ( del. all graphics in the code and compiled it again?)
 Oct 29, 2012, 12:16 PM Grad student in aeronautics United States, GA, Atlanta Joined Oct 2010 516 Posts As a student, do you have access to AIAA papers through your library? (American Institute of Aeronautics and Astronautics). I did a search for "Airfoil Optimization" there (http://arc.aiaa.org/action/doSearch) and got many hits. Also, google scholar looks like it has some good papers by Vanderplaats on airfoil optimization.
 Oct 29, 2012, 12:19 PM Sink stinks United States, GA, Atlanta Joined Apr 2005 4,642 Posts Sepply, I have the files at home (at least I think I still do, I'm pretty sure I backed that all up recently). I can email them to you if you PM me your email address. I had the best luck with B-splines to parametrize the geometry. You have to be careful with optimizers, though, because they tend to optimize a given operating condition at the expense of other operating conditions. I had decent luck with running at a range of operating conditions and optimizing based on the average or weighted average of the results. Another thing that you have to be careful of is that XFoil many times will not converge, especially if you are feeding it funky shapes from the optimizer. I mostly was able to get around this issue by penalizing unconverged results. If you want a global optimization, you will want to use something like GA or PSO. The main difficulty with these is getting a decent set of starting airfoils. The last time I used this, I was working on approximating NACA-like shapes with the B-spline parametrization as starting guesses. This makes the first iteration take a very long time but I think gets you a better range of "good" starting airfoils than you would get otherwise. Anyway, I will email you the files later and you can play around with it. I think I have a "user guide" that I created at the time, but ask if you have questions on how it works. I can't guarantee I will remember, because it's been awhile since I looked at it last. One more thing, if you are good at programming I would suggest doing this outside of the Matlab environment, because Matlab is slow. Ideally, you would take the XFoil source code and integrate the required parts of it into your own code. This is what I would try to do if I were going to start working on this today.
 Oct 29, 2012, 12:47 PM Registered User Joined Oct 2012 3 Posts Thanks for the fast replies. I already had a look at several papers but on the parametrization of an airfoil for optimization I did not find much. But I will do a search again. Yes I had the same converge issue with Xfoil. I have a test in my code to see if Xfoil came up with a good result but it is not optimal at the moment. I look forward to have a go with your code I am sure it will help me to understand some issues I have at the moment. ( I sent you a PM, thanks again) At the moment I will stick to matlab and as soon as I get a bit out of the fog I will try to move to an other language. Andre rewrote Xfoil already for C withing XFLR5 what will be very useful to me.
Dec 04, 2012, 09:57 AM
Registered User
Joined Dec 2012
1 Posts
Quote:
 Originally Posted by Montag DP Check your private messages.
hello ,
i want to reshape the airfoil to use in Mises code for analysing pressure loss coefficient and pressure distribution .
suppose that i have a NACA airfoil and i want to change it.
Can i do using chebyshev polynomials ? how can i do it?
Thanks alot
haji
Last edited by Mohsenhaji; Dec 04, 2012 at 10:03 AM.
 Dec 04, 2012, 08:08 PM Sink stinks United States, GA, Atlanta Joined Apr 2005 4,642 Posts Hey Haji, Unfortunately, I'm not familiar with this Mises code you're talking about or Chebyshev polynomials. In my code I used control point curves to form the airfoil shapes, where the locations of the control points are the design variables. You can get the Matlab code if you click on my username and go to the blog post about airfoil optimization. Dan
 Dec 06, 2012, 09:06 PM Registered User United States, KS, Andover Joined Oct 2005 547 Posts Drela described using Chebyshev polynomials with MSES. I believe he has all of that worked out in his MSES/MSIS(?) code. MSIS (probably have the name wrong here) is essentially an incompressible mode of MSES. The polynomials are essentially added to the existing airfoil to create changes in the surface. You use a series of them to modify the upper and lower surfaces separately to control camber or together to control thickness. I'm not sure where you can get the documentation online, but it should be part of the MSES/MSIS package. I seem to recall it being described in that document. It's been several years since I worked with it, though. Unfortunately, these codes are not free. MSES is a really nice tool.
Dec 07, 2012, 11:04 AM
Sink stinks
United States, GA, Atlanta
Joined Apr 2005
4,642 Posts
Quote:
 Originally Posted by markschaffin Drela described using Chebyshev polynomials with MSES. I believe he has all of that worked out in his MSES/MSIS(?) code. MSIS (probably have the name wrong here) is essentially an incompressible mode of MSES. The polynomials are essentially added to the existing airfoil to create changes in the surface. You use a series of them to modify the upper and lower surfaces separately to control camber or together to control thickness. I'm not sure where you can get the documentation online, but it should be part of the MSES/MSIS package. I seem to recall it being described in that document. It's been several years since I worked with it, though. Unfortunately, these codes are not free. MSES is a really nice tool.
Ah, yes that sounds familiar now. I knew about the airfoil perturbation methods (I believe you've discussed them before in this thread) but I forgot that Chebyshev polynomials were used for that purpose.
 Dec 20, 2012, 08:58 AM Registered User Joined Dec 2012 1 Posts xfoil calculate moment of aerodynamic center Hi everybody, I'm going to build a custom foil. but I need to know how you calculate the moment in aerodynamic center. I found that you calculate such things with Xfoil. I'm very new to all this stuff so i find the program rather difficult to use. can somebody help how i calculate the the moment in the aerodynamic center. the foil that i'm using is a NACA 63A-912.