La simulation numérique du crash d’un véhicule
Étude générale du projet
Introduction
La phase d’étude et analyse des besoins d’un projet est l’étape avant-réalisation, elle permet d’établir un cahier des charges clair et explicatif, qui assure l’entente entre le client et le développeur, afin de mener le projet à ses fins et ses besoins souhaités.
Dans ce chapitre nous allons étudier les différents besoins et attentes de ce projet selon ses deux aspects, fonctionnel et technique.
Étude préliminaire
L’étude préliminaire est la toute première étape du processus de développement en Y (2TUP). Elle consiste à effectuer un premier repérage des besoins fonctionnels et opérationnels, en utilisant principalement le texte, ou des diagrammes très simples. Elle prépare les activités plus formelles de capture des besoins fonctionnels et de capture des besoins techniques.
Recueil des besoins fonctionnels
Suite aux différentes réunions avec mon encadrant de projet, dont leurs but est de cerner et mieux identifier les besoins et attentes de l’application,nous nous sommes fixés sur un ensemble de besoins détaillés dans le cahier des charges préliminaires suivant :
Simulation d’une chute libre :
La chute libre est une notion physique basique (voir: 2 – Rappel de quelques notions en physique), elle représente un corps en mouvement sous la pesanteur, sans frottement.Cette phase représente la première itération de ce projet, elle a été introduite pour mettre en place l’architecture à adopter dans toute l’application, pour montrer les différents avantages et inconvénients de cette architecture, et, aussi, pour faire face aux difficultés techniques suite à son utilisation.Nous simulons un corps en chute libre, représenté par un point-centre de gravité, ayant un poids donné. Dans l’absence de frottement, ce corps doit rebondir sans arrêt après le contact avec un obstacle.
Calcul de la distance de sécurité
La distance de sécurité est un facteur très important dans le secteur du transport routier. Elle représente la distance minimale recommandée pour un conducteur à respecter entre son véhicule et celui qui le précède.La simulation d’une voiture en mouvement, qui a un poids connu et qui roule à une vitesse donnée, nous permet de calculer la distance minimale que l’automobiliste doit respecter pour être en sécurité. Cette simulation est composée de deux parties : le mouvement avant freinage, où la voiture roule à une vitesse constante, et le mouvement après freinage, où la vitesse de la voiture décélère jusqu’à son arrêt complet.
Étude et simulation du crash d’un véhicule
Ce besoin représente le but principal de cette application. Il se concentre sur la modélisation d’un véhicule objectivé par une barre qui vient heurter nu obstacle.Le résultat de cette étude sera sous forme d’un maillage coloré en se basant sur les parties endommagées du véhicule. Cela nous permettra de déterminer la gravité de l’accident et par conséquence l’état du conducteur.Tous d’abord, la simulation passe par la réalisation de la barre qui représente le véhicule. Cette barre est illustrée par une surface, laquelle est dessinée avec l’outil-géométrie intégré dans l’application. Par la suite vient la notion de discrétisation, elle sert à transformer la surface en mailles afin d’étudier l’impact de l’accident sur chaque partie du véhicule.
Choix techniques
Afin de mener ce projet à son but, et pour mieux étudier, analyser, et, réaliser ses besoins fonctionnels et techniques, il a fallu, avant tout, choisir le bon processus et la bonne méthode de développement logiciel. Pour cela, nous avons opté pour le processus de développement logiciel 2TUPqui implémente le Processus Unifié.Le 2TUP propose un cycle de développement en Y, qui dissocie les aspects techniques des aspects fonctionnels.Le point fort qui nous a contraint à choisir ce processus est la possibilité de pouvoir l’utiliser dans chaque itération évolutive du projet.Pour réaliser cette application, des outils et des langages de programmation ont été choisis par le responsable du projet afin d’unifier les choix techniques :
Le langage de modélisation UML L’architecture MVC
Le langage de Programmation Orienté Objet C++ Le framework graphiqueQt
Le langage de balisage XML L’IDE Visual C++ 2008
L’outil Qt Creator
Planification du projet
La réalisation de ce projet s’est déroulée selon un planning bien précis dont le but est de respecter les délais prédéfinis pour le stage.Ce planning consiste à spécifier et prévoir les différentes phases et étapes à suivre tout au long du cycle de développement du projet.Pour schématiser le planning du projet, le choix a été porté sur l’outil Gantt Project pour sa réputation parmi les logiciels libres de gestion de projet. Il permet la planification d’un projet à travers la réalisation d’un diagramme de Gantt.
Recueildes besoins opérationnels
Le développement des différents composants de l’application doit être optimisé, en tenant compte de l’efficacité de l’architecture et de la facilité de son extension, ainsi que de l’ergonomie et du temps de calcul.L’application doit intégrer la notion de projet ; la création d’un nouveau projet, saréouverture et la réutilisabilité de ses résultats.Le projet est concrétisé par un répertoire qui porte le nom du projet, et qui contient un fichier XML précisant des informations sur le projet.L’application est à l’état embryonnaire, dont l’acc ès n’est pas réglementé. Par contre ce qui peut être une solution de gestion de licence,est de suivre les techniques de gestion de licences proposées par le FLEXLM. L’application doit être portable sur toutes les plates-formes (Unix, Linux, Windows…). Un travail concernant la compilation des exécutables sur les différentes plates-formes doit être préparé.
Identification des acteurs et messages
Acteurs :
L’application est susceptible d’être utilisé par un grand nombre d’utilisateurs, sans contraintes spécifiques de sécurité. Elle est spécialement conçue pour des scientifiques et des étudiants, pour des fins d’étude et de recherche.
Les acteurs prévus pour l’utilisation de l’application sont :
Les scientifiques Les étudiants Les chercheurs Les industriels Etc.
Messages :
Des messages sont reçus et émis par l’application afin de traiter un cas donné. Un message peut prendre différentes formes selon son contexte.
Les messages émis par le système :
Création de formes géométriques. Création de maillages.
La visualisation du mouvement d’une balle en chute libre.
La visualisation du déplacement d’un véhicule avant et après freinage. La simulation du crash d’un véhicule avec un obstacle.
Création du répertoire et fichiers du projet.
Les messages reçus par le système :
La création d’un nouveau projet. L’ouverture d’un projet.
Modification des paramètres de l’application. Zoomer et dé-zoomer la zone de dessin.
Le dessin et la modification d’un point. L’insertion d’une ligne.
La réalisation d’une surface. L’ajout d’une voiture.
Effacer la zone de dessin.
Rappel de quelques notions en physique
Chute libre
Nous rappelons que l’étude ne vise pas à faire la chute libre en soit. Mais c’est un exemple pilote qui permet de mettre en évidence les difficultés techniques de l’architecture et permet aussi de bâtir un concept d’une architecture efficace qui recueil toutes les différentes applications actuelles et futures.
La phase de descente du corps pendant la chute libre est définie par l’équation suivante :
x est la position du corps en chaque instant.
g est la pesanteur (vaut 10).
x0est la position initiale.
t est le temps de la chute.
Après le rebond, le corps remonte avec une vitesse donnée suite à la réaction du sol. Sans tenir compte du frottement d’air, l’équation du mouvement est :
v0est la vitesse initiale.
t est le temps de la montée dans l’aire.
La position d’arrêt xa du corps dans l’aire est la suivante :
v2xa 0
En absence du frottement, nous assistons à un rebondissement sans arrêt du corps.
Distance d’arrêt
Cet exemple est réalisé pour mettre en évidence l’usage utile d’un véhicule par tout conducteur averti. Il permet de déterminer la distance de sécurité recommandée pour un automobiliste qui roule à une vitesse donnée. Nous considérons que l’automobiliste freine après une vitesse de croisière donnée V (vitesseuniforme). Ce freinage, représenté par une décélération, dépend proportionnellement du frottement, et inversement proportionnelle, de la vitesse et du poids du véhicule.La distance de sécurité est par définition la somme de la distance de réaction xa et la distance de freinage xf.La distance de réaction est liée au temps de réaction de l’automobiliste avant le freinage est estimée à une à deux secondes.La distance de freinage est la distance qui correspond d’un passage de la vitesse initiale V à une vitesse nulle.
La simulation numérique du crash d’un véhicule
L’étude de crash se base sur un comportement non linéaire en déformation et déplacement, plus une gestion non linéaire du contact du véhicule contre l’obstacle. Le problème a été difficile de le prendre en charge dans un stage de deux mois. Malgré ces contraintes, nous avons cherché à faire une modélisation simplifiée où le comportement est linéaire, et où le contact est géré d’une manière simplifiée. Ce qui nous ramène à l’étude d’un mouvement purement élastique d’une barre qui représente vulgairement le véhicule. Néanmoins, nous considérons qu’une déformation de 20 cm représente un danger réel à l’automobiliste. Cette distance correspond à peu près à la distance entre le volant et le conducteur.
Maillage et discrétisation de la géométrie
Un maillage est la discrétisation spatiale d’un milieu continu, ou aussi, une modélisation géométrique d’un domaine par des éléments proportionnés finis et bien définis. L’objet d’un maillage est de procéder à une simplification d’un système par un modèle représentant ce système et, éventuellement, son environnement (le milieu), dans l’optique de simulations de calculs ou de représentations graphiques.Un maillage est défini par :son repère ;les points le constituant, caractérisés par leurs oordonnéesc ; les cellules, constituant des polytopes reliant n de ces points ;
et peut-être caractérisé notamment par :
sa dimension : typiquement 2D ou 3D ; son volume (dimension totale couverte) ;
sa finesse : surface ou volume moyen des cellules composant le maillage ;
la géométrie des cellules : triangles, polygones, arrés,c etc en 2D, polyèdres, parallélépipèdes, cubes en 3D.
Capture des besoins
Déterminer les cas d’utilisation
Un cas d’utilisation représente un ensemble de séquences d’actions réalisées par le système et produisant un résultat intéressant pour un acteur articulierp. Un cas d’utilisation modélise un service rendu par le système. Il exprime les interactions acteurs/système et apporte une valeur ajoutée « notable » à l’acteur concerné.L’identification des cas d’utilisation, nous donne un aperçu des fonctionnalités futures que doit implémenter le système. Cependant, il nous faut plusieurs itérations pour arriver à constituer des cas d’utilisation complets. D’autres cas d’utilisation vont apparaître au fur et à mesure de leur description, et de l’avancement dans le « recueil des besoins fonctionnels ». Pour constituer les cas d’utilisation, il faut considérer l’intention fonctionnelle de l’acteur par rapport au système dans le cadre de l’émission ou de la réception de chaque message. En regroupant les intentions fonctionnelles en unités cohérentes..
|
Table des matières
Introduction
Chapitre I : Contexte générale du projet
1. Organisme d’accueil
1.1. Présentation de l’ENSAO
1.2. Les études
1.3. Equipes de recherches
2. Cadre du projet et problématique :
3. Objectif de l’étude
4. Plan du document
Chapitre II : Etude générale du projet
1. Etude préliminaire
1.1. Recueil des besoins fonctionnels
1.2. Choix techniques
1.3. Planification du projet
1.4. Recueil des besoins opérationnels
1.5. Identification des acteurs et messages
2. Rappel de quelques notions en physique
2.1. Chute libre
2.2. Distance d’arrêt
2.3. La simulation numérique du crash d’un véhicule
2.3.1. Notions sur la mécanique des milieux continues
2.3.2. Maillage et discrétisation de la géométrie
3. Capture des besoins
3.1. Déterminer les cas d’utilisation
3.2. Description préliminaire des cas d’utilisations
3.3. Description détaillée des cas d’utilisation
Chapitre III : Analyse et conception du projet
1. Analyse du projet
1.1. Identification des classes candidates
1.2. Développement du modèle statique
1.3. Diagramme des composants
2. Conception du projet
2.1. L’architecture mise en place
2.2. Diagramme de classes détaillées
2.3. Modèle de données
Chapitre IV : Mise en oeuvre du projet
1. Outils et langages utilisés
1.1. C++ / Visual-C++
1.2. Qt / Qt Creator
1.3. XML
2. L’architecture MVC
3. Réalisation
3.1. Informations statistiques sur le code
3.2. L’interface graphique
5.1.1. La barre de menu
5.1.2. Le menu Horizontal
5.1.3. Le menu Vertical
5.1.4. La zone de dessin
3.3. Le solveur
3.4. Le discrétiseur : générateur du maillage
3.5. Points à améliorer
3.6. Liste des bugs
Conclusion et perspectives
Index
Bibliographie
Annexes
Télécharger le rapport complet