Vous êtes sur la page 1sur 8

UPMC - Licence Elec.

L2 S2
UE Calcul Scientifique ; initiation MATLAB (LE205)

Projet MATLAB
I. Introduction
Objectif : le but de ce projet est de raliser une simulation dun
oscillateur modlis comme une masse suspendue un ressort.
Nous tudierons plusieurs cas :
- les oscillateurs non amortis
- les oscillateurs amortis
- les oscillateurs forcs
Vous pouvez consulter plusieurs sites pour les aspects thoriques,
dont :
- http://www.uel-pcsm.education.fr/consultation/reference/physique/syst_oscillants/
- http://www.edunet.tn/ressources/resdisc/physique/nabeul/franosc/oscfexp.htm

Exemple dun oscillateur amorti

Pour cela, vous utiliserez les notions abordes en cours mais il vous sera demand daller encore
plus loin. Vous aurez donc besoin de votre cerveau et du manuel HELP de matlab ( utiliser
sans modration).
Lisez bien le document prsent 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 lanalyse du fonctionnement de votre programme qui vous
sera demande la fin de la premire 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 lment dterminant pour la notation de votre travail.
II. Droulement du projet
Le projet de droule en deux phases :
1. La premire phase consiste en la programmation basique du programme principal et des
fonctions qui permettent de simuler le systme et den raliser une petite animation. Cest le
minimum qui vous sera demand.
2. La deuxime phase consiste en lamlioration de ce programme. Ces amliorations sont
multiples et vous seront proposes dans un ordre de difficult croissant. Nanmoins, partir du
moment o la premire phase est ralise, vous tes libre de traiter la phase 2 comme bon vous
semble.

III. Cahier des charges premire phase


Suivez rigoureusement ce cahier des charges. Considrez quil sagit de la commande dun
acheteur qui y a dfini ses besoins : vous ne pouvez pas vous en cartez.
III.1. Fonctionnement global
Votre programme doit imprativement sarticuler autour dun programme principal et utiliser
des fonctions nommes comme lindique le synopsis de la figure 1.
Dclaration et initialisation
des variables
Saisie des paramtres du
systme oscillant

Simulation du systme
oscillant

Fonction syst_libre : modle de


loscillateur libre non amorti

Fonction
simulation

Affichage des rsultats et


des courbes

Fonction syst_amorti : modle de


loscillateur libre amorti
Fonction syst_force : modle de
loscillateur libre amorti en rgime
forc

Figure 1 : Synopsis du programme raliser


III.2. Les diffrentes parties du programme :
III.2.1 Le programme principal
Le programme principal doit fonctionner comme lindique lalgorithme de la figure 2.
Obligations :
Le programme principal devra tre contenu dans un fichier nomm principal.m.
La fonction simulation sera dans un fichier spar ponyme, simulation.m. Elle
contiendra les appels aux quations diffrentielles rgissant le mouvement de loscillateur
sous la forme de Cauchy. Elle aura en entre tous les paramtres ncessaires leur appel
via ode23() ou ode45(), ainsi que ceux ncessaires la simulation. En sortie, elle donnera
essentiellement les positions x et les vitesses x simules de loscillateur, ainsi que les
valeurs temporelles des chantillons dans lintervalle de temps fourni.
La fonction affichage sera dans un fichier spar ponyme, affichage.m. Elle ralisera les
affichages des courbes dvolution de la position et de la vitesse de loscillateur en
fonction du temps.

Dclaration et initialisation des


variables
Saisie des paramtres de
loscillateur et de la simulation
Lancer simulation

Appel la fonction
simulation
Appel la fonction affichage

quitter

Autre paramtre modifier

Fonction simulation

Fonction affichage

recommencer
Figure 2 : synopsis du programme principal

La saisie des diffrents paramtres devra se faire via une interface sous forme de
question/rponses.
Initialement, les paramtres de la simulation seront :
o Oscillateur : masse, m = 2kg, raideur du ressort, h = 0.5N/m, coefficient
damortissement, c=1Ns/m.
o Lamplitude, la pulsation et la phase de la stimulation (force applique la
masse) : A= 1.4N, w=0,5rad/s et =0rad ; on considrera un rgime forc de type
sinusodale : F(t)=Asin(wt+).
o Conditions initiales : x(0) = 1m , x'(0) = 0 m/s.
o Choix du systme simuler : systme non amorti
o Intervalle de temps : [0-10] secondes
Chacun pourra tre modifi via un menu. Laffichage lcran pourra se prsenter soit
sous forme textuelle (figure 3, gauche) soit sous forme graphique (figure 3, droite).
Nous vous conseillons fortement la forme graphique.
Conseils :
Ne vous inquitez pas dans un premier temps des appels aux fonctions simulation et
affichage.
Ralisez ce quil faut pour changer un seul paramtre, puis incluez-le dans la boucle.
Ensuite, fates les autres paramtres. Enfin, fates les options quitter , puis lancer la
simulation (qui contiendra les appels simulation et affichage, cf. sections III.2.2 et
III.2.3).

Les paramtres de la simulation sont :


1. masse : 2kg
2. raideur du ressort : 0.5N/m
3. coefficient damortissement : 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. mthode : ode23
11. choix du systme : non amorti
Donnez le numro du paramtre modifier,
ou tapez (s) pour lancer la simulation,
ou (q) pour quitter le programme.
Figure 3 : menus permettant la modification des paramtres :
gauche sous forme textuelle, droite sous forme graphique
III.2.2 La fonction simulation
Dans la fonction simulation, nous allons raliser la simulation de loscillateur suivant :
Un ressort lastique, de masse ngligeable, de raideur h, de longueur
lquilibre y, a son extrmit suprieure S fixe. A lextrmit
infrieure est fix un corps M assimilable un point matriel de
masse m.
Le rle unique de lamortisseur D, de masse ngligeable, li M, est
dexercer sur le corps la force :
o v dsigne la vitesse de M et h un coefficient de frottement fluide,
positif.
Les mouvements de M sont verticaux.
A lquilibre, labscisse l=x-y de M est nulle.

On a alors :
- en cas doscillations libres non amorties (c=0 et F=0) : m.l + h.l = 0
- en cas doscillations libres amorties (c0 et F=0) : m.l + c.l + h.l = 0
- en cas doscillations libres amorties et forces (c0 et F0) : m.l + c.l + h.l = F
avec F=Asin(wt+)

Obligations :
La fonction simulation devra tre contenue dans un fichier nomm simulation.m.
Les 3 modles de Cauchy seront cods dans 3 fonctions spares : syst_libre.m,
syst_amorti.m et syst_force.m.
Il est interdit dutiliser des variables globales ; vous devez faire passer les paramtres
des modles comme arguments dentre.
Les simulations devront se faire selon la mthode choisie par lutilisateur : ode23 ou
ode 45.
Dans le cas doscillations non forces, vous devrez inclure un test pour vrifier si les
conditions initiales ne sont pas nulles (dans ce cas, il ny aura pas doscillations).
Selon le choix de lutilisateur (ralis dans le programme principal), vous devrez
simuler le systme non amorti, le systme amorti ou le systme amorti forc.
En sortie, vous renverrez les positions et les vitesses de la masse pour la (des)
simulation(s) ralise(s).
Conseils :
Pour simplifier votre code, notamment pour le choix des mthodes (ode23/ode45),
nous vous conseillons dutiliser la fonction Matlab feval (help feval), qui permet
dvaluer une fonction entre 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 grera laffichage des rsultats sous forme graphique :
les courbes dvolution des positions et des vitesses de la masse
une animation du systme (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 fentres spares,
soit dans une seule mais dans 2 graphes spars (subplot). Ce choix devra tre laiss
lutilisateur.
Les courbes devront comportes : titre, noms des axes, lgende,
Enfin, vous devrez raliser une animation graphique du systme reprsentant
lvolution de la masse dans lespace comme sous la figure 4 :
o
o

o
o

le ressort sera form par 10 priodes dune fonction sinusodale.


la masse par un point marqu par un cercle dont vous aurez augment la taille (cf.
help plot) ; pour modifier la taille dun marqueur ( marker ), vous devez modifier le
paramtre Markersize (un exemple est donn dans laide pour le paramtre
LineWidth ).
il est ncessaire dutiliser hold on/off pour afficher la fois la masse et le ressort
sur le mme graphique.
la fonction axis vous permettra de fixer les valeurs limites des axes (de sorte les
garder constantes).

La figure 5 donne un synopsis de lalgorithme dvelopper.

point S
point M

Figure 4 : animation du systme masse-ressort

Entres :
- positions du point M par rapport au point 0
- positions temporelles des chantillons
Calcul des vecteurs contenant les
positions en x et en y du ressort
(fonction sinus sur 10 priodes
sur un intervalle en y=[0 1])

FOR

pour chaque
position du point M

Effacement de la figure (help clf)


Affichage de la masse M
Affichage du ressort ; il est ncessaire dappliquer :
- une translation (addition dun scalaire) au point S
- une homothtie (multiplication par un scalaire) pour
que la longueur du ressort corresponde la distance
entre M et S

Pause de quelques millisecondes (10ms par exemple)


permettant la visualisation de lanimation (help pause)

Figure 5 : synopsis de lanimation du systme masse-ressort

IV. Cahier des charges seconde phase


Pour chacune de ces amliorations, nous vous conseillons de raliser des fonctions
dans des fichiers spars, qui seront appeles, selon le besoin, dans principal.m, simulation.m
ou affichage.m.
IV.1 Amliorations au niveau de laffichage :

Dans la fonction affichage, laissez le choix lutilisateur de quelles couleurs, il veut


reprsenter ses courbes (parmi celles possibles ; help plot) via un menu.

Dans le cas dun systme amorti, reprsentez lenveloppe de la courbe. Il sagit de


relier les maxima entre eux par des droites (help line). De mme, pour les minima.
Pour dtecter la position des optima (minima et maxima), il sagit de dtecter le
passage par zro de la drive, et de noter le signe de la drive seconde en ces points
(si elle est positive, il sagit dun minimum, si elle est ngative, cest un maximum).
Attention, il est possible que le systme soit en rgime critique, on ne pourra pas
dessiner denveloppe : il faudra dtecter ce cas avant de dessiner ou non lenveloppe.
La dtection des optima devra faire lobjet dune fonction dans un fichier spar.

Le rgime critique est caractris par les


paramtres du systme ; on observe alors que le
discriminant est nul :
= 2-02 = 0
avec :
= c / (2.m)
02 = h / m

Lors de lanimation, fates en sorte que le graphe de la position de la masse apparasse


fur et mesure dans un graphe ct (comme sil sagissait dun enregistrement
simultane) :

IV.2 Amliorations au niveau de la simulation :

Ajouter une option (dans le choix du systme simuler) qui permettrait de simuler les
3 systmes avec les mmes paramtres, puis en afficher le courbes de sorte pouvoir
les comparer.

Dans le cadre des oscillations amorties, ajouter une option qui permet dautomatiser le
rglage de lintervalle de temps (selon le nombre de pseudo-priodes ou suivant le
dcrment logarithmique que lon veut observer ; attention la pseudo-priode et le
dcrment nont de sens quen rgime pseudo-priodique).

Dans le cadre des oscillations forces, nous voudrions stimuler le systme avec
dautres fonctions, notamment une fonction crneaux et une fonction triangle
(en utilisant lamplitude, la phase et la priode de la fonction sinus prcmment
employe) ; vous aurez cur de crer deux fonctions qui associent une valeur t, la
valeur de la force applique au systme.

Dans le cadre des oscillations forces, crez une fonction analyse_reg_permanent.m


qui sera appele dans laffichage et qui calcule numriquement et renvoie lamplitude
damplification et le dphasage en rgime permanent. Laffichage de ces rsultats
devra se faire dans la fonction affichage.m. Par exemple, dans la courbe ci-dessous, le
rgime permanent est atteint au-del de 4s (attention, ce ne sera pas forcment le cas
dans votre simulation ; vous de tester si le rgime permanent est atteint).
Lamplitude du signal est alors de 0,52.

La courbe 1 reprsente une oscillation amortie.


La courbe 2 est une oscillation libre non amortie.
La courbe 3 est une oscillation force amortie.

Vous aimerez peut-être aussi