Inspiration
W# Morphing Wing Simulator : Récit d'un projet né entre les ailes d'un oiseau et une ligne de code
L'inspiration
Tout est parti d'une fascination pour le vol des oiseaux. Contrairement aux avions actuels dont la voilure reste globalement rigide, un oiseau modifie en permanence la forme de son aile — cambrure, envergure, angle — pour s'adapter à chaque phase de vol. Cette capacité, appelée morphing, réduit la traînée et améliore l'efficacité énergétique. En tant qu'étudiant en classe préparatoire aux études d'ingénieur dans la filière aéronautique, l'idée de transposer ce principe biologique à un modèle numérique s'est imposée naturellement : et si je pouvais construire un outil capable de simuler, même de façon simplifiée, l'effet d'une aile déformable sur les performances aérodynamiques ?
L'objectif n'était pas de rivaliser avec des outils de recherche comme ceux du LARCASE à l'ÉTS Montréal, mais de me confronter concrètement à la chaîne complète qui va de la physique du vol jusqu'à l'apprentissage automatique — et d'en sortir avec une compréhension plus profonde, pas seulement un projet à présenter.
La construction du pipeline
Le projet repose sur quatre briques principales, pensées comme un pipeline de bout en bout :
- Un modèle aérodynamique physique, servant de base théorique pour générer des données réalistes plutôt que purement synthétiques.
- Un générateur de jeu de données, faisant varier les paramètres géométriques de l'aile (cambrure, épaisseur, angle d'incidence) pour produire un ensemble d'échantillons exploitables.
- Des scripts d'entraînement utilisant deux approches complémentaires : une forêt aléatoire (Random Forest) et un perceptron multicouche (MLP), afin de comparer un modèle basé sur des arbres à un modèle basé sur des réseaux de neurones.
- Des graphiques de validation, pour visualiser l'écart entre les prédictions du modèle et les résultats attendus.
Le cœur physique du modèle s'appuie sur les relations classiques de l'aérodynamique. Par exemple, la portance générée par une aile est estimée à partir de :
$$ L = \frac{1}{2} \rho v^2 S C_L $$
où $\rho$ est la masse volumique de l'air, $v$ la vitesse relative de l'air, $S$ la surface alaire et $C_L$ le coefficient de portance, lui-même dépendant de l'angle d'incidence $\alpha$ et de la cambrure du profil. C'est en faisant varier ces paramètres géométriques que le générateur de données produit des exemples d'entraînement pour les modèles de machine learning.
Pour l'entraînement, l'erreur quadratique moyenne a servi de fonction de perte de référence pour évaluer les modèles :
$$ \text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 $$
Les difficultés rencontrées
La plus grande difficulté n'a pas été technique au sens strict, mais logistique : tout le développement s'est fait depuis un smartphone. Le build React initial, pensé pour un déploiement classique via un environnement de développement complet, s'est heurté à des limites concrètes de compilation et de gestion des dépendances impossibles à surmonter sans PC. Plutôt que d'abandonner, j'ai reconstruit l'ensemble du simulateur sous la forme d'un unique fichier HTML autonome, en s'appuyant sur Chart.js chargé directement via un CDN pour l'affichage des courbes de validation. Cette contrainte, qui aurait pu être un obstacle bloquant, a fini par simplifier l'architecture du projet et faciliter son déploiement sur Vercel, entièrement piloté depuis mon téléphone.
L'autre difficulté a été plus conceptuelle. Une relecture approfondie du travail, menée sous forme de questionnement socratique, a révélé des zones d'ombre dans ma compréhension de certains choix de modélisation — notamment sur la manière dont les hyperparamètres influençaient réellement le comportement du Random Forest et du MLP, au-delà de leur simple utilisation en tant qu'outils. Cet exercice a été inconfortable sur le moment, mais formateur : il a transformé un projet fonctionnel en un projet réellement compris.
Ce que j'en ai retenu
Ce projet m'a appris que la rigueur scientifique ne dépend pas des outils disponibles, mais de la discipline avec laquelle on avance : générer des données cohérentes avec la physique avant d'entraîner un modèle, valider les résultats plutôt que les supposer corrects, et surtout, être capable d'expliquer pourquoi un modèle fonctionne, pas seulement que faire fonctionner.
Il m'a aussi confirmé une intuition de fond : le morphing des ailes, phénomène biologique observé chez les oiseaux, reste un champ de recherche aéronautique riche et encore ouvert — exactement le type de problème que je veux continuer à explorer, à plus grande échelle, dans le cadre d'un doctorat en aéronautique.
Le simulateur est disponible en ligne : morphingwings.vercel.app hat it does
How we built it
Challenges we ran into
Accomplishments that we're proud of
What we learned
What's next for Simulation Airlines
Built With
- css
- html
- module
- numpy
- scikit-learn
- vercel