![]() More details below.īased on these performance numbers, you can select the right tradeoff between accuracy and computational cost for your application. NeuralFoil also has the benefit of smoothing out XFoil's "jagged" predictions (for example, near $C_L=1.4$ at $Re=\mathrm$. Note that this figure is on a truly out-of-sample airfoil, so airfoils that are closer to the training set will have even more accurate results. ![]() ![]() NeuralFoil is typically accurate to within a few percent of XFoil's predictions. Notably, the airfoil analyzed here was developed "from scratch" for a real-world aircraft development program and is completely separate from the airfoils used during NeuralFoil's training, so NeuralFoil isn't cheating by "memorizing" this airfoil's performance: In the figure below, we compare the performance of NeuralFoil to XFoil on $C_L, C_D$ polar prediction. Qualitatively, NeuralFoil tracks XFoil very closely across a wide range of $\alpha$ and $Re$ values. Airfoil ( "naca4412" ), # `import aerosandbox as asb`, any UIUC or NACA airfoil name works alpha = 5, Re = 5e6, ) # `aero` is a dictionary with keys: Performance get_aero_from_airfoil ( # You can use AeroSandbox airfoils as an entry point airfoil = asb. linspace ( - 25, 25, 1000 ), # Vectorize your evaluations across `alpha` and `Re` Re = 5e6, ) aero = nf. get_aero_from_coordinates ( # You can use xy airfoil coordinates as an entry point coordinates = n_by_2_numpy_ndarray_of_airfoil_coordinates, alpha = np. dat file as an entry point dat_file_path = "/path/to/my_airfoil_file.dat", alpha = 5, # Angle of attack Re = 5e6, # Reynolds number model_size = "xlarge", # Optionally, specify your model size. get_aero_from_dat_file ( # You can use a. Here's an example showing this: import neuralfoil as nf # `pip install neuralfoil` import numpy as np aero = nf. Using NeuralFoil is dead-simple, and also offers several possible "entry points" for inputs. This model is well-suited for linear lifting-line or blade-element-method analyses, where the $C_L(\alpha)$ linearity can be used to solve the resulting system of equations "in one shot" as a linear solve, rather than a less-numerically-robust iterative nonlinear solve. In addition to its neural network models, NeuralFoil also has a bonus "Linear $C_L$ model" that predicts lift coefficient $C_L$ as a purely-affine function of angle of attack $\alpha$. This spectrum offers a tradeoff between accuracy and computational cost. NeuralFoil comes with 8 different neural network models, with increasing levels of complexity: pip install neuralfoilįor example usage of NeuralFoil, see the AeroSandbox tutorials. NeuralFoil aims to be lightweight, with minimal dependencies and a tight, efficient, and easily-understood code-base (less than 500 lines of user-facing code). It also has many nice features (e.g., smoothness, vectorization, all in Python+NumPy) that make it much easier to use. Due to the wide variety of training data and the embedding of several physics-based invariants, this accuracy is seen even on out-of-sample airfoils (i.e., airfoils it wasn't trained on). NeuralFoil is ~10x faster than XFoil for a single analysis, and ~1000x faster for multipoint analysis, all with minimal loss in accuracy compared to XFoil. And, it's guaranteed to return an answer (no non-convergence issues), it's vectorized, and it's $C^\infty$-continuous (all very useful for gradient-based optimization). Using the AeroSandbox extension, NeuralFoil can give you viscous, compressible airfoil aerodynamics for (nearly) any airfoil, with control surface deflections, across $360^\circ$ angle of attack, at any Reynolds number, all nearly instantly (~5 milliseconds). NeuralFoil is available here as a pure Python+NumPy standalone, but it is also available within AeroSandbox, which extends it with many more advanced features. Under the hood, NeuralFoil consists of physics-informed neural networks trained on tens of millions of XFoil runs. NeuralFoil is a tool for rapid aerodynamics analysis of airfoils, similar to XFoil.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |