Project Highlights



Research projects



Deep Learning Techniques for High-Dimensional Surrogate-Based Aerodynamic Design

As part of the Boeing Higher Education research project, I investigated the applicability of our Surrogate-Based Optimization (SBO) framework to a high-dimensional wing design optimization. However, utilizing SBO to solve high-dimensional problems is challenging. The tricky part is to train the surrogate model to achieve sufficient accuracy. Therefore, I proposed deep learning techniques to increase the model's accuracy and accelerate optimization convergence. The first technique utilizes a deep convolutional generative adversarial network (DCGAN)-based sampling to produce synthetic wing designs, which is helpful to sample the design space efficiently, leading to a more accurate initial surrogate model. The second technique uses a convolutional neural network (CNN)-based geometric filtering to efficiently drive the optimizer so that it will not produce abnormal designs that do not add meaningful information to the surrogate model. In other words, the CNN shrinks the design space, leading to a more accurate surrogate model. However, one should conduct further study since this technique sometimes sacrifices the exploratory capability of the optimization, hindering the findings of novel designs.

[Paper]

Aerodynamic Shape Optimization of CRM Wing

NASA developed Common Research Model (CRM) mainly for CFD validation purposes. However, the aerodynamic optimization community has used the CRM's wing-only configuration for testing their optimization methods. I also used this wing model as a baseline to test several optimization methodologies, e.g., a DCGAN-based synthetic wing sampling and CNN-based geometric filtering, which we integrated into our surrogate-based optimization framework (MLP+GA). I performed a lift-constrained drag minimization of the CRM wing with 193 design variables. An optimized design with lower drag than the baseline was obtained while maintaining the same lift and ensuring feasibility.

[Paper]

img

Multi-Objective Transonic Airfoil Shape Optimization

The aerodynamic design of the transonic wing is essential since most commercial aircraft today cruise at transonic speeds, near the speed of sound. The aerodynamic characteristics of the wing are strongly affected by the shape of its airfoil selection. Aerodynamic shape optimization of transonic airfoils thus becomes a crucial task to find candidates of shapes with optimum aerodynamic performance. One objective is to minimize drag to reduce fuel consumption at cruise. However, it comes with a trade-off with lift: the induced drag increases in proportion to the square of the lift. This project considers multi-objective optimization to explore the design trade-offs between drag minimization and lift maximization of transonic airfoils.

[Paper]

img img

A Surrogate-Based Optimization Framework using NN and NSGA-II

Nature-inspired stochastic search techniques such as Evolutionary Algorithms (EAs) are known for their ability to solve complex optimization problems. However, they typically require numerous function evaluations in their search process to find global optimums. This is a drawback if we use EAs in optimization problems with computationally expensive functions. Therefore, surrogate models have been used as cheap approximations to replace these functions. In this project, we propose a dynamically retrained Neural Network (NN)-based surrogate model coupled with a genetic algorithm, NSGA-II, to reduce the number of function evaluations in the optimization process. We have successfully applied the proposed method to some test functions and real-world aerodynamic shape optimization problems. It is also shown that it converges more quickly towards the Pareto-optimal front with fewer function evaluations than a stand-alone NSGA-II in all optimization problems. You can access the code in the GitHub link below, which contains the basic algorithm applied to some benchmark test problems: ZDT1, ZDT2, ZDT3, and OSY.

[Code] [Paper]




Industrial projects



img

Interactive Web-Based UIUC Airfoil Database Exploration

As part of my projects during intern at teTra aviation corp., I developed an interactive web-based app that allows users to explore the UIUC Airfoil Database. In this app, I wrote a code to scrap all the airfoils data from the UIUC website and preprocess them. Subsequently, XFOIL was used to automatically analyze the airfoils and produce aerodynamic data. The app is built using Python's Dash and Plotly libraries, providing a user-friendly interface that allows users to simultaneously view airfoil geometry and corresponding aerodynamic data. This app is a valuable tool for designers and researchers alike, providing easy access to a vast amount of airfoil data and enabling the exploration of the design space in a user-friendly way.

[Code] [App]




Personal projects



img

Batik Pattern Inspiration from the Gray-Scott Model

As a final project for my graduate class, Mathematical Modeling and Computation, I introduced a new way to create batik patterns from the famous mathematical model called the Gray-Scott (GS) model. The idea is to numerically solve the GS equations and track the pattern as the iteration increases. By varying the equation coefficients, some interesting patterns that are proper for batik motifs can be found at specific iterations. Batik designers can use the selected pattern as a building block that can be repeated to form a batik motif. They can also play around with the parameters to discover new patterns. This code is adapted from the Reaction-Diffusion Tutorial by Karl Sims. Instead of performing a 3x3 convolution operation to calculate the Laplacian, I used a 5-point stencil approximation.

[Code]

img

Image Quantization using K-Means Clustering

Quantization in image processing is a compression technique achieved by compressing a range of values of colors to a single quantum value. In this code, the quantization process is done using the K-Means clustering algorithm, proposed by Stuart Lloyd at Bell Labs in 1957 as a technique for pulse-code modulation, but it was published outside the company in 1982. First, the algorithm randomly chooses K centroids (cluster centers) in the design space. Each instance was then assigned to the closest centroid to form a cluster. Next, the centroids are moved to the means of the instances in the same cluster. Finally, the same procedure is repeated until the centroids no longer move. This code converts the colors in the flower pictures into RGB values, which are then treated as instances by the algorithm. I implemented the code in PyTorch.

[Code]