Build a Flutter Demo and Predict Vibration Frequency
Feel aeroelasticity with a homemade wing in front of a fan
Last reviewed: March 2026Overview
Flutter is one of the most dangerous phenomena in aerospace engineering. When airflow over a wing excites the structure at just the right frequency, vibrations grow explosively — and in the worst cases, the wing tears itself apart in seconds. The Tacoma Narrows Bridge collapse is the most famous example of wind-induced vibration, but every aircraft must be certified against flutter before it can fly with passengers.
In this project, you'll build a simple cantilever wing — a flat beam clamped at one end — from cardboard, balsa wood, or a ruler. Mount it in front of a household fan, and use your phone's built-in accelerometer (via the free Phyphox app) to measure how it vibrates at different wind speeds. You'll see the vibration frequency change as wind speed increases — and at a certain speed, the vibrations will suddenly get much larger. That's the onset of flutter.
After collecting data, you'll use Python and scikit-learn to fit a regression model that predicts vibration frequency from wind speed. This is a micro version of the same analysis that flutter engineers perform using multi-million-dollar wind tunnel tests and finite element models — but you can do it with $5 of materials and a phone.
What You'll Learn
- ✓ Build a physical wing model and understand cantilever beam vibration
- ✓ Use a smartphone accelerometer to measure vibration frequency
- ✓ Perform FFT (Fast Fourier Transform) analysis to extract frequency from time-series data
- ✓ Fit a regression model to experimental data and evaluate its accuracy
- ✓ Understand the concept of aeroelastic flutter and why it matters for aircraft safety
Step-by-Step Guide
Build the Cantilever Wing
Cut a wing shape from stiff cardboard or balsa wood: approximately 30 cm span, 8 cm chord, 2–3 mm thick. Clamp one end firmly to a table edge using a C-clamp or heavy books — this is the "root" of your wing. The free end (the "tip") should extend out over open space so it can vibrate freely.
Build 2–3 wings of different stiffness: a thin cardboard wing (flexible), a thick cardboard wing (stiffer), and a balsa wood wing (different material). These different configurations will give you more data points and let you see how stiffness affects the results.
Set Up the Accelerometer
Download the Phyphox app (free, iOS and Android) on your phone. Open the "Acceleration (without g)" experiment — this gives you acceleration in m/s2 on all three axes at roughly 100 samples per second. Tape your phone firmly to the wing tip with the accelerometer axis perpendicular to the wing surface.
Test with no wind: flick the wing tip and check that Phyphox records a clean oscillation. You should see a decaying sinusoid — the wing vibrating at its natural frequency and gradually stopping due to damping. Export this data as CSV to confirm your pipeline works.
Collect Data at Different Wind Speeds
Position a household fan at 3 distances from the wing: far (low speed), medium, and close (high speed). If you have a multi-speed fan, even better — use all speed settings at a fixed distance. For each configuration, record 10 seconds of accelerometer data while the wing vibrates in the airflow.
Measure the wind speed at the wing using a simple anemometer (you can buy one for ~$10 or estimate from fan specifications). Log each test: wing type, fan distance, estimated wind speed, and the exported CSV filename. Aim for at least 10–15 data points across different speeds and wing types.
Extract Frequency with FFT
Load each CSV file into Python using pandas. Apply a Fast Fourier Transform (FFT) using numpy.fft.rfft() to convert the time-domain acceleration signal into its frequency components. The dominant peak in the FFT corresponds to the wing's vibration frequency at that wind speed.
Plot the FFT spectrum for several tests — you'll see a clear peak that shifts position as wind speed changes. Use numpy.argmax() to find the peak frequency automatically. Create a table of (wind_speed, wing_type, measured_frequency) data points.
Fit a Regression Model
Use scikit-learn's LinearRegression to fit vibration frequency as a function of wind speed. Plot the data points and the fitted line. Does the relationship look linear, or does frequency change non-linearly with speed? Try PolynomialFeatures(degree=2) to see if a quadratic fit is better.
For the multi-wing dataset, add wing stiffness as a second feature (you can estimate relative stiffness by how far the wing deflects under a known weight). Train a multi-variable regression: frequency = f(wind_speed, stiffness). This is your first physics-aware ML model — it captures the real relationship between structural properties, airflow, and vibration.
Interpret and Present Results
Create a final poster or slide deck showing your experimental setup (photos!), raw data samples, FFT spectra, and the regression model results. Discuss: did stiffer wings vibrate at higher frequencies (they should, based on beam theory)? Did vibration amplitude grow dramatically at any speed (flutter onset)?
Connect your results to real aircraft: explain that engineers use sophisticated computational models (finite element + aerodynamic coupling) to predict flutter, but the underlying physics is exactly what you observed — airflow exciting structural vibration modes. Every new aircraft must demonstrate flutter-free operation up to 1.15 times its maximum dive speed.
Career Connection
See how this project connects to real aerospace careers.
Aerospace Engineer →
Flutter analysis is a critical specialty in structural and aeroelastic engineering — every new aircraft and modification requires flutter clearance
Aerospace Manufacturing →
Manufacturing tolerances directly affect structural stiffness and mass distribution, both of which influence flutter margins
Drone & UAV Ops →
Lightweight drone wings and long-endurance UAV designs are particularly susceptible to flutter — understanding vibration is essential for designers
Go Further
- Add mass to the wing tip — tape a coin to the tip and measure how the added mass changes the frequency; this simulates wing-tip fuel tanks or stores
- 3D-print airfoil shapes — replace the flat plate wing with a proper airfoil cross-section and see how aerodynamic shape affects the vibration behavior
- Build a wind tunnel — construct a simple cardboard wind tunnel with a fan for more controlled and repeatable experiments
- Compare with beam theory — calculate the predicted natural frequency using Euler-Bernoulli beam theory and compare with your measured values