Compte-rendu 2 - Simulations physiques avec Matlab-Simulink PDF

Title Compte-rendu 2 - Simulations physiques avec Matlab-Simulink
Course Logiciels scientifiques
Institution Université de Perpignan Via Domitia
Pages 10
File Size 475.2 KB
File Type PDF
Total Downloads 85
Total Views 167

Summary

Simulations physiques avec Matlab-Simulink...


Description

DUTILLEUL'Guillaume' ' GONÇALVES'Léa'

'

'

'

'

'

'

L2'–'Physique/Chimie''

' ' ' ' ' ' ' ' ' '

Logiciel(Scientifique( (

TP'n°2':'Simulations'physiques'avec' Matlab-Simulink' ' ' ' '

'

' ' ' ' ' ' Université'de'Perpignan'Via'Domitia'

'

'

'

'

'

''''''''Année'2016-2017'

Introduction'' ' L’objectif'de'ce'travail'pratique'est'de'simuler'le'comportement'd’un'pendule'à'travers' Matlab-Simulink.'Ce'travaille'nous'permettra'd’utiliser'de'nouvelles'fonctions'comme'par' exemple'«'ode45'»,'permettant'd’écrire'des'équations'différentielles'et'«'mean'»,' permettant'de'calculer'une'moyenne.'Pour'la'première'partie'nous'utiliserons'Matlab'et' pour'la'seconde'partie'nous'utiliserons'Simulink.'' '

Exercice'n°1':'Simulation'd’un'pendule'dans'Matlab' ' On'considère'un'pendule'de'longueur'l'soumis'à'une'accélération'de'pesanteur'g.'La'position' angulaire'est'notée'𝜃'et'la'vitesse'angulaire'est'notée'𝜔.'On'obtient'alors'le'système'd’équations' différentielles'suivant':'' ' 𝜃=𝜔 𝑔 ' 𝜔 = − sin*(𝜃) 𝑙 ' 1. Pour'commencer,'nous'recherchons'la'fonction'«'ode45'»'dans'l’aide'de'Matlab.' ' 2. Nous'créons'un'nouveau'script'nommé'«'pendule.m'»'contenant'une'fonction'pendule'dans' laquelle'est'défini'le'système'd’équations'différentielles.'Nous'écrivons'les'commandes' suivantes':' ' function dx=pendule (t,x) theta=x(1); omega=x(2); g=9.81; l=0.5; dtheta=omega; domega=(-g/l)*sin(theta); dx=[dtheta;domega];

'

' 3. Voir'4.' 4. Nous'créons'un'nouveau'script'nommé'«'simulation_pendule.m'».'Ce'script'fait'appel'à' fonction'«'ode45'»'et'«'pendule'».'Nous'écrivons'les'commandes'suivantes':' ' ' [t,x]=ode45(@pendule, [0 2], [pi/2 0]);

' ' 5. Pour'générer'une'nouvelle'figure,'on'tape'la'commande'suivante':' ' figure' ' ' 6. Pour'indiquer'la'position'(en'haut)'du'premier'graphe'on'utilise'la'fonction'«'subplot'»'et'on' tape'la'commande'suivante':'' '

' ' ' subplot(2,1,1);

' ' 7. On'visualise'la'position'angulaire'du'pendule'en'fonction'du'temps'avec'la'fonction'«'plot'».' On'tape'la'commande'suivante':' ' ' plot(t,x(:,1));

' ' 8. Ajoutons'au'graphique':'' ' - Un'titre'avec'la'fonction'«'title'»,' - Une'légende'pour'chaque'variable'avec'la'fonction'«'legend'»,' - Un'titre'pour'l’axe'des'abscisses'avec'la'fonction'«'xlabel'»,'' - Un'titre'pour'l’axe'des'ordonnées'avec'la'fonction'«'ylabel'».'' ' title('Simulation de la position angulaire du pendule') legend('Position angulaire / theta(t)') xlabel('Temps [s]') ylabel('Position angulaire [rad]')

' ' 9. Pour'indiquer'la'position'(en'bas)'du'premier'graphe'on'utilise'la'fonction'«'subplot'»'et'on' tape'la'commande'suivante':'' ' ' subplot(2,1,2);

' ' 10. On'visualise'la'vitesse'angulaire'du'pendule'en'fonction'du'temps'avec'la'fonction'«'plot'».' On'tape'la'commande'suivante':' ' plot(t,x(:,2));

' ' 11. Ajoutons'au'graphique':'' ' - Un'titre'avec'la'fonction'«'title'»,' - Une'légende'pour'chaque'variable'avec'la'fonction'«'legend '»,' - Un'titre'pour'l’axe'des'abscisses'avec'la'fonction'«'xlabel'»,'' - Un'titre'pour'l’axe'des'ordonnées'avec'la'fonction'«'ylabel'».'' ' ' title('Simulation de la vitesse angulaire du pendule') legend('Vitesse angulaire / omega(t)') xlabel('Temps [s]') ylabel('Vitesse angulaire [rad/s]')

'

Nous'obtenons'la'figure'suivante':'' '

' '

' 12. Nous'observons'que'la'vitesse'du'pendule'est'maximale'lorsque'le'pendule'est'situé'en' position'basse'et'la'vitesse'du'pendule'est'minimale'lorsque'le'pendule'est'situé'en'position' haute.'Les'résultats'sont'cohérents'à'ce'que'l’on'peut'observer'lors'd’une'expérience' physique.'' ' 13. Pour'calculer'la'valeur'maximale'et'minimale'de'la'position'angulaire'nous'allons'utiliser'la' fonction'«'max'»'et'la'fonction'«'min'».'Nous'tapons'les'commandes'suivantes':'' ' ' M2=max(x(:,1)) m2=min(x(:,1))

' ' 14. Pour'calculer'la'valeur'moyenne'de'la'vitesse'angulaire'nous'allons'utiliser'la'fonction' «'mean'».'Nous'tapons'les'commandes'suivantes':'' ' moy2=mean(x(:,2))

' ' 15. La'moyenne'de'la'vitesse'est'proche'de'zéro,'c’est-à-dire'qu’elle'est'bien'proche'de'ce'qu’elle' devrait'théoriquement'être.'' '

16. Pour'générer'une'nouvelle'figure,'on'tape'la'commande'suivante':' ' figure' ' ' 17. Pour'visualiser'la'vitesse'angulaire'du'pendule'en'fonction'de'sa'position'angulaire'on'tape'la' commande'suivante':'' ' plot(x(:,2),x(:,1)

' 18. Ajoutons'au'graphique':'' ' - Un'titre'avec'la'fonction'«'title'»,' - Une'légende'pour'chaque'variable'avec'la'fonction'«'legend'»,' - Un'titre'pour'l’axe'des'abscisses'avec'la'fonction'«'xlabel'»,'' - Un'titre'pour'l’axe'des'ordonnées'avec'la'fonction'«'ylabel'».'' - Une'grille'avec'la'fonction'«'grid'».' ' title('Vitesse angulaire du pendule en fonction de sa position angulaire'); ylabel('Vitesse angulaire [rad/s]'); xlabel('Position angulaire [rad]'); grid on

' ' Nous'obtenons'la'figure'suivante':' '

' ' ' ' '

19. Manipulons'«'Data'Cursor'»':'' '

' ' 20. Pour'une'vitesse'angulaire'd’environ'1'rad/s,'nous'trouvons'deux'valeurs'de'la'position' angulaire':'1,5'et'-1,5'rad'environ.''' ' 21. Il'y’a'symétrie'par'rapport'à'l’axe'des'ordonnées'et'par'rapport'à'l’axe'des'abscisses.'' ' ' ' ' ' ' ' ' '

' ' ' ' ' ' ' ' ' ' ' '

Exercice'n°2':'Simulation'du'pendule'dans'Matlab-Simulink' ' On'considère'de'nouveau'le'système'du'type'pendule'simple,'comportant'cette'fois-ci'une'entrée'de' commande'notée'u(t)':'' ' 𝜃=𝜔 𝑔 ' 𝜔 = − sin 𝜃 + 𝑢 𝑙 ' 6 Avec'les'conditions'initiales'𝜔/ = 𝑂*𝑟𝑎𝑑/𝑠'et'𝜃/ = *𝑟𝑎𝑑.' 7 ' 1. Créons'un'nouveau'script'nommé'«'pendule_simu.m'».'' ' 2. Nous'commençons'notre'script'par'les'commandes'suivantes':'' ' clear all close all clc alpha=1; f=1;

' 3. Pour'définir'un'vecteur'temps't'de'0'à'10'secondes'avec'un'pas'de'0,01'nous'écrivons'la' commande'suivante':'' ' ' t=0:0.01:10

' ' 4. On'définit'le'vecteur'd’entrée'de'commande'u(t)':' ' u=alpha*sin(2*pi*f*t)

' ' 5. //' ' 6. Nous'créons'une'nouvelle'feuille'Simulink'nommé'«'simul.slx'».' ' 7. Nous'construisons'le'schéma'bloc'permettant'de'simuler'le'comportement'du'système':'

'

-

-

' ' ' Le'bloc'«'from'workspace'»'définit'le'signal'd’entrée.'Ce'bloc'nécessite'qu’on'lui'fournisse'le' temps'ainsi'que'le'signal'd’entrée'dans'le'champ'«'Data'».'On'écrit'donc'[t'u]'dans'ce'champ.'' Le'bloc'«'interpreted'MATLAB'Function'»'permet'd’écrire'l’équation'de'l’accélération' angulaire'(la'dérivée'de'la'vitesse'angulaire).'' Les'deux'intégrateurs'en'temps'continu'permettent'd’intégrer'deux'fois'l’accélération' angulaire'a(t)'afin'd’obtenir'la'vitesse'angulaire'et'la'position'angulaire.'Il'faut'initialiser' correctement'les'variables'𝜃/ 'et'𝜔/ ,'pour'cela,'il'faut'entrer'leur'valeur'dans'le'champ' «'Initial'conditions'».'On'obtient'donc'un'schéma'bloc'bouclé'car'la'position'angulaire'qui' ressort'du'second'intégrateur'est'réinjecté'en'entrée'pour'calculer'l’accélération'angulaire.'' Le'bloc'«'to'workspace'»'permet'de'récupérer'les'signaux'de'sortie.'

' 8. À'présent,'nous'réglons'le'temps'de'simulation'à'10'secondes,'ajustons'l’intégration' numérique'à'un'pas'fixe'de'0,01'secondes'et'activons'l’enregistrement'automatique'du' temps'de'simulation'«'tout'»'dans'le'workspace'afin'de'pouvoir'l’utiliser'dans'Matlab.' ' 9. Enregistrons'notre'feuille'Simulink.' ' 10. Pour'lancer'la'simulation,'on'tape'la'commande'suivante':'' ' sim('simul')

' ' ' 11. Générons'trois'graphes'les'uns'en'dessous'des'autres'sur'une'même'figure'à'l’aide'des' commandes'suivantes':'' ' figure subplot(3,1,1) plot(t,u) title('u(t)') xlabel('Temps (s)') ylabel('u') subplot(3,1,2) plot(t,position) title('Position en fonction du temps') xlabel('Temps (s)') ylabel('Position (rad)') subplot(3,1,3) plot(t,vitesse) title('Vitesse en fonction du temps') xlabel('Temps (s)') ylabel('Vitesse (rad/s)')

' ' ' ' ' '

Nous'obtenons'la'figure'suivante':'' '

' L’oscilloscope'affiche'le'graphique'suivant':'' '

'

' ' ' ' ' '

Conclusion' ' Les'résultats'obtenus'dans'la'deuxième'partie'sont'en'adéquation'avec'les'résultats'obtenus' dans'la'première'partie.'Ce'travail'pratique'avait'pour'but'de'nous'faire'utiliser'MatlabSimulink'pour'l’étude'd’un'phénomène'physique'simple,'celui'd’un'pendule.'Les'courbes' obtenues'sont'cohérentes'avec'le'comportement'réel'd’un'pendule.'' ' ' '...


Similar Free PDFs