UPMC - Licence Elec. L2 S2
UE Calcul Scientifique ; initiation à MATLAB (LE205)
Projet MATLAB
I. Introduction
Objectif : le but de ce projet est de réaliser une simulation d’un
oscillateur modélisé comme une masse suspendue à un ressort.
Nous étudierons plusieurs cas :
- les oscillateurs non amortis
- les oscillateurs amortis
- les oscillateurs forcés
Vous pouvez consulter plusieurs sites pour les aspects théoriques,
dont :
- http://www.uel-pcsm.education.fr/consultation/reference/physique/syst_oscillants/
- http://www.edunet.tn/ressources/resdisc/physique/nabeul/franosc/oscfexp.htm
Exemple d’un oscillateur amorti
Pour cela, vous utiliserez les notions abordées en cours mais il vous sera demandé d’aller encore
plus loin. Vous aurez donc besoin de votre cerveau et du manuel HELP de matlab (à utiliser
sans modération).
¾ Lisez bien le document présent afin de bien comprendre ce qui vous est demandé.
¾ Suivez bien les recommandations qui y sont faites et suivez le cahier des charges à la lettre.
¾ Des obligations vous sont fournies, vous devez absolument les respecter.
¾ Des conseils vous sont aussi fournis tout le long du texte, vous pouvez les utiliser.
¾ Ecrivez à la main sur ce document l’analyse du fonctionnement de votre programme qui vous
sera demandée à la fin de la première phase de programmation. Vous devrez donc rendre
cet énoncé à la fin de votre projet.
¾ Commentez vos programmes : pas de longs discours mais des informations pertinentes. La
rigueur de votre travail sera un élément déterminant pour la notation de votre travail.
II. Déroulement du projet
Le projet de déroule en deux phases :
1. La première phase consiste en la programmation basique du programme principal et des
fonctions qui permettent de simuler le système et d’en réaliser une petite animation. C’est le
minimum qui vous sera demandé.
2. La deuxième phase consiste en l’amélioration de ce programme. Ces améliorations sont
multiples et vous seront proposées dans un ordre de difficulté croissant. Néanmoins, à partir du
moment où la première phase est réalisée, vous êtes libre de traiter la phase 2 comme bon vous
semble.
III. Cahier des charges – première phase
Suivez rigoureusement ce cahier des charges. Considérez qu’il s’agit de la commande d’un
acheteur qui y a défini ses besoins : vous ne pouvez pas vous en écartez.
III.1. Fonctionnement global
Votre programme doit impérativement s’articuler autour d’un programme principal et utiliser
des fonctions nommées comme l’indique le synopsis de la figure 1.
Figure 1 : Synopsis du programme à réaliser
III.2. Les différentes parties du programme :
III.2.1 Le programme principal
Le programme principal doit fonctionner comme l’indique l’algorithme de la figure 2.
Obligations :
Le programme principal devra être contenu dans un fichier nommé principal.m.
La fonction simulation sera dans un fichier séparé éponyme, simulation.m. Elle
contiendra les appels aux équations différentielles régissant le mouvement de l’oscillateur
sous la forme de Cauchy. Elle aura en entrée tous les paramètres nécessaires à leur appel
via ode23() ou ode45(), ainsi que ceux nécessaires à la simulation. En sortie, elle donnera
essentiellement les positions x et les vitesses x’ simulées de l’oscillateur, ainsi que les
valeurs temporelles des échantillons dans l’intervalle de temps fourni.
La fonction affichage sera dans un fichier séparé éponyme, affichage.m. Elle réalisera les
affichages des courbes d’évolution de la position et de la vitesse de l’oscillateur en
fonction du temps.
Déclaration et initialisation
des variables
Saisie des paramètres du
système oscillant
Affichage des résultats et
des courbes
Simulation du système
oscillant
Fonction syst_libre : modéle de
l’oscillateur libre non amorti
Fonction syst_amorti : modéle de
l’oscillateur libre amorti
Fonction syst_force : modéle de
l’oscillateur libre amorti en régime
forcé
Fonction
simulation
Figure 2 : synopsis du programme principal
La saisie des différents paramètres devra se faire via une interface sous forme de
question/réponses.
Initialement, les paramètres de la simulation seront :
o Oscillateur : masse, m = 2kg, raideur du ressort, h = 0.5N/m, coefficient
d’amortissement, c=1Ns/m.
o L’amplitude, la pulsation et la phase de la stimulation (force appliquée à la
masse) : A= 1.4N, w=0,5rad/s et ϕ=0rad ; on considérera un régime forcé de type
sinusoïdale : F(t)=Asin(wt+ϕ).
o Conditions initiales : x(0) = 1m , x'(0) = 0 m/s.
o Choix du système à simuler : système non amorti
o Intervalle de temps : [0-10] secondes
Chacun pourra être modifié via un menu. L’affichage à l’écran pourra se présenter soit
sous forme textuelle (figure 3, à gauche) soit sous forme graphique (figure 3, à droite).
Nous vous conseillons fortement la forme graphique.
Conseils :
Ne vous inquiétez pas dans un premier temps des appels aux fonctions simulation et
affichage.
Réalisez ce qu’il faut pour changer un seul paramètre, puis incluez-le dans la boucle.
Ensuite, faîtes les autres paramètres. Enfin, faîtes les options « quitter », puis « lancer la
simulation » (qui contiendra les appels à simulation et affichage, cf. sections III.2.2 et
III.2.3).
Appel à la fonction
simulation
Appel à la fonction affichage
Saisie des paramètres de
l’oscillateur et de la simulation quitter
recommencer
Déclaration et initialisation des
variables
Fonction simulation
Fonction affichage
Autre paramètre à modifier
Lancer simulation
Les paramètres de la simulation sont :
1. masse : 2kg
2. raideur du ressort : 0.5N/m
3. coefficient d’amortissement : 1.4Ns/m
4. amplitude stimulation : 2N
5. pulsation stimulation : 0.5rad/s
6. phase stimulation : 0rad
7. position initiale : 1m
8. vitesse initiale : 0m/s
9. intervalle de temps : [0 10]s
10. méthode : ode23
11. choix du système : non amorti
Donnez le numéro du paramètre à modifier,
ou tapez (s) pour lancer la simulation,
ou (q) pour quitter le programme.
Figure 3 : menus permettant la modification des paramètres :
à gauche sous forme textuelle, à droite sous forme graphique
III.2.2 La fonction simulation
Dans la fonction simulation, nous allons réaliser la simulation de l’oscillateur suivant :
Un ressort élastique, de masse négligeable, de raideur h, de longueur
à l’équilibre y, a son extrémité supérieure S fixe. A l’extrémité
inférieure est fixé un corps M assimilable à un point matériel de
masse m.
Le rôle unique de l’amortisseur D, de masse négligeable, lié à M, est
d’exercer sur le corps la force :
v désigne la vitesse de M et h un coefficient de frottement fluide,
positif.
Les mouvements de M sont verticaux.
A l’équilibre, l’abscisse l=x-y de M est nulle.
On a alors :
- en cas d’oscillations libres non amorties (c=0 et F=0) : m.l’’ + h.l = 0
- en cas d’oscillations libres amorties (c0 et F=0) : m.l’’ + c.l’ + h.l = 0
- en cas d’oscillations libres amorties et forcées (c0 et F0) : m.l’’ + c.l’ + h.l = F
avec F=Asin(wt+ϕ)
5
Obligations :
La fonction simulation devra être contenue dans un fichier nommé simulation.m.
Les 3 modèles de Cauchy seront cos dans 3 fonctions séparées : syst_libre.m,
syst_amorti.m et syst_force.m.
Il est interdit d’utiliser des variables globales ; vous devez faire passer les paramètres
des modèles comme arguments d’entrée.
Les simulations devront se faire selon la méthode choisie par l’utilisateur : ode23 ou
ode 45.
Dans le cas d’oscillations non forcées, vous devrez inclure un test pour vérifier si les
conditions initiales ne sont pas nulles (dans ce cas, il n’y aura pas d’oscillations).
Selon le choix de l’utilisateur (réalisé dans le programme principal), vous devrez
simuler le système non amorti, le système amorti ou le système amorti forcé.
En sortie, vous renverrez les positions et les vitesses de la masse pour la (des)
simulation(s) réalisée(s).
Conseils :
Pour simplifier votre code, notamment pour le choix des méthodes (ode23/ode45),
nous vous conseillons d’utiliser la fonction Matlab « feval » (help feval), qui permet
d’évaluer une fonction entrée en premier argument ; exemple :
t=1 :2*pi/30:10 ;
F=@sin;
ysin=feval(F,t) ;
F=@cos;
ycos=feval(F,t) ;
plot(t,ysin,t,ycos) ;
III.2.3 La fonction affichage
La fonction affichage gèrera l’affichage des résultats sous forme graphique :
les courbes d’évolution des positions et des vitesses de la masse
une animation du système (masse et ressort)
Obligations :
La fonction affichage devra être contenue dans un fichier nommé affichage.m.
Les courbes des positions et des vitesses pourront soit être dans 2 fenêtres séparées,
soit dans une seule mais dans 2 graphes séparés (subplot). Ce choix devra être laissé à
l’utilisateur.
Les courbes devront comportées : titre, noms des axes, légende,…
Enfin, vous devrez réaliser une animation graphique du système représentant
l’évolution de la masse dans l’espace comme sous la figure 4 :
o le ressort sera formé par 10riodes d’une fonction sinusoïdale.
o la masse par un point « marqué » par un cercle dont vous aurez augmenté la taille (cf.
help plot) ; pour modifier la taille d’un marqueur (« marker »), vous devez modifier le
paramètre « Markersize » (un exemple est donné dans l’aide pour le paramètre
« LineWidth »).
o il est nécessaire d’utiliser « hold on/off » pour afficher à la fois la masse et le ressort
sur le même graphique.
o la fonction « axis » vous permettra de fixer les valeurs limites des axes (de sorte à les
garder constantes).
La figure 5 donne un synopsis de l’algorithme à développer.
1 / 8 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !