Upload
dotu
View
224
Download
0
Embed Size (px)
Citation preview
INFO-F-305 Modélisation et SimulationIntroduction à SIMULINK et cas d’étude (II/II)
1 Rappel
Les scripts référencés dans les cas d’étude sont disponibles sur la pageweb : www.ulb.ac.be/di/map/gbonte/modsim/casetud/. Après les avoir en-registrés dans votre dossier courant de matlab (tapez pwd dans le terminalMatlab pour identifier votre dossier courant), ils peuvent être lancés direc-tement en tapant leur nom sur le terminal Matlab. Ces fichiers font appel àdes fichiers .mdl contenant les modèles, et que vous pouvez visualiser en lesouvrant directement à partir de Simulink. Pour chaque script, veillez à biencomprendre à la fois le script et le modèle.
2 Préliminaires
– Examiner et comprendre le fichier mod6.mdl contenant le modèle quisera utilisé tout au long de ce TP. Double-cliquer sur le bloc DEE poutvoir ses paramètres, et vérifier les paramètres de temps de simulationdans Simulation -> Configuration Parameters.
– Visualiser le code du premier cas d’étude : cas61.m (donné en annexe).– Veiller à bien fermer toutes les figures avant de lancer une nouvelle
simulation, afin d’éviter les erreurs d’affichage.
3 Cas 6: système linéaire autonome d’ordre 2
3.1 Introduction
1. Description: les taux de changement des deux états dépend linéaire-ment de la valeur de l’autre état et de sa propre valeur. La dépendancemutuelle peut causer des phénomènes d’oscillation. Selon le signe dela rétroaction, la réponse peut être amplifiée ou amortie.
2. Applications pratiques: systèmes mécaniques composés par une masse,un ressort et un amortisseur; pendules (pour petites angles); circuitsélectriques.
1
3. Hypothèses, assomptions et connaissance au préalable
4. Structure
(a) Dimensionnalité: n = 2 états, m = 0 entrée, p = 1 sortie
(b) Contraintes sur la fonction d’entrée u(t): néant
(c) Temps: continu
(d) Espace d’état: continu
(e) Paramètres:
A =
[a11 a12a21 a22
](f) Formalisme: EDO
(g) Équations x1(t) = a11x1(t) + a12x2(t)
x2(t) = a21x1(t) + a22x2(t)
y(t) = x1(t)
3.2 Simulation 1 : selle
1. Conditions initiales: x(0) = [0.5, 0]
2. Valeurs paramètres
A =
[1 33 1
]Notons que les valeurs propres de A sont λ1 = 4, λ2 = −2. Elles sontréelles et de signe opposé.
3. Intervalle de temps de simulation [0, 1].
4. Fonction(s) d’entrée: néant
5. Résolution numérique: default MATLAB
6. Implémentation: script MATLAB/Simulink cas61.m.
7. Visualisation:
0 0.2 0.4 0.6 0.8 10
2
4
6
8
10
12
14
t
x 1
0 0.2 0.4 0.6 0.8 10
2
4
6
8
10
12
14
t
x 2
Cas d’étude 6: simulation 1
2
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
x1
x 2
Portrait de phases
3.3 Simulation 2: selle
1. Conditions initiales: x(0) = [0,−0.5]
2. Valeurs paramètres
A =
[1 33 1
]Notons que les valeurs propres de A sont λ1 = 4, λ2 = −2. Elles sontréelles et de signe opposé.
3. Intervalle de temps de simulation [0, 1].
4. Fonction(s) d’entrée: néant
5. Résolution numérique: default MATLAB
6. Implémentation: script MATLAB/Simulink cas62.m.
7. Visualisation:
0 0.2 0.4 0.6 0.8 1−14
−12
−10
−8
−6
−4
−2
0
t
x 1
0 0.2 0.4 0.6 0.8 1−14
−12
−10
−8
−6
−4
−2
0
t
x 2
Cas d’étude 6: simulation 1
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
x1
x 2
Portrait de phases
3
3.4 Simulation 3: selle
1. Conditions initiales: 20 vecteurs choisis de manière aléatoire uniformedans la région [−2,−2]× [2, 2]
2. Valeurs paramètres
A =
[1 33 1
]Notons que les valeurs propres de A sont λ1 = 4, λ2 = −2. Elles sontréelles et de signe opposé.
3. Intervalle de temps de simulation [0, 1].
4. Fonction(s) d’entrée: néant
5. Résolution numérique: default MATLAB
6. Implémentation: script MATLAB/Simulink cas63.m.
7. Visualisation:
0 0.5 1−100
−80
−60
−40
−20
0
20
40
60
80
100
t
x 1
0 0.5 1−100
−80
−60
−40
−20
0
20
40
60
80
100
t
x 2
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
x1
x 2
Portrait de phases
3.5 Simulation 4: noeud stable
1. Conditions initiales: x(0) = [1.5, 0]
2. Valeurs paramètres
A =
[−4 −23 −11
]Notons que les valeurs propres de A sont λ1 = −5, λ2 = −10. Ellessont réelles et de signe négatif.
4
3. Intervalle de temps de simulation [0, 1].
4. Fonction(s) d’entrée: néant
5. Résolution numérique: default MATLAB
6. Implémentation: script MATLAB/Simulink cas64.m.
7. Visualisation:
0 0.2 0.4 0.6 0.8 10
0.5
1
1.5
t
x 1
0 0.2 0.4 0.6 0.8 10
0.05
0.1
0.15
0.2
0.25
t
x 2
Cas d’étude 6: simulation 4
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
x1
x 2
Portrait de phases
3.6 Simulation 5: noeud stable
1. Conditions initiales: x(0) = [−1.5,−1.5]
2. Valeurs paramètres
A =
[−4 −23 −11
]Notons que les valeurs propres de A sont λ1 = −5, λ2 = −10. Ellessont réelles et de signe négatif.
3. Intervalle de temps de simulation [0, 1].
4. Fonction(s) d’entrée: néant
5. Résolution numérique: default MATLAB
6. Implémentation: script MATLAB/Simulink cas65.m.
7. Visualisation:
5
0 0.2 0.4 0.6 0.8 1−1.5
−1
−0.5
0
t
1
0 0.2 0.4 0.6 0.8 1−1.5
−1
−0.5
0
t
x 2
Cas d’étude 6: simulation 5
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
x1
x 2
Portrait de phases
3.7 Simulation 6: noeud stable
1. Conditions initiales: 20 vecteurs choisis de manière aléatoire uniformedans la région [−2,−2]× [2, 2]
2. Valeurs paramètres
A =
[−4 −23 −11
]Notons que les valeurs propres de A sont λ1 = −5, λ2 = −10. Ellessont réelles et de signe négatif.
3. Intervalle de temps de simulation [0, 1].4. Fonction(s) d’entrée: néant5. Résolution numérique: default MATLAB6. Implémentation: script MATLAB/Simulink cas66.m.7. Visualisation:
0 0.2 0.4 0.6 0.8 1−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
t
1
0 0.2 0.4 0.6 0.8 1−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
t
x 2
Cas d’étude 6: simulation 6
6
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
x1
x 2
Portrait de phases
3.8 Simulation 7: noeud instable
1. Conditions initiales: 20 vecteurs choisis de manière aléatoire uniformedans la région [−2,−2]× [2, 2]
2. Valeurs paramètres
A =
[4 2−3 11
]Notons que les valeurs propres de A sont λ1 = 5, λ2 = 10. Elles sontréelles et de signe positif.
3. Intervalle de temps de simulation [0, 1].4. Fonction(s) d’entrée: néant5. Résolution numérique: default MATLAB6. Implémentation: script MATLAB/Simulink cas67.m.7. Visualisation:
0 0.2 0.4 0.6 0.8 1−1.5
−1
−0.5
0
0.5
1
1.5
2
2.5x 10
4
t
1
0 0.2 0.4 0.6 0.8 1−4
−2
0
2
4
6
8x 10
4
t
x 2
Cas d’étude 6: simulation 7
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
x1
x 2
Portrait de phases
7
3.9 Simulation 8: une valeur propre nulle
1. Conditions initiales: 20 vecteurs choisis de manière aléatoire uniformedans la région [−2,−2]× [2, 2]
2. Valeurs paramètres
A =
[−1 −3−1 −3
]Notons que les valeurs propres de A sont λ1 = 0, λ2 = −4. La valeurpropre non nulle est négative.
3. Intervalle de temps de simulation [0, 1].4. Fonction(s) d’entrée: néant5. Résolution numérique: default MATLAB6. Implémentation: script MATLAB/Simulink cas68.m.7. Visualisation:
0 0.2 0.4 0.6 0.8 1−3
−2
−1
0
1
2
3
t
x 1
0 0.2 0.4 0.6 0.8 1−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
t
x 2
Cas d’étude 6: simulation 8
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
x1
x 2
Portrait de phases
3.10 Simulation 9: centre elliptique
1. Conditions initiales: 20 vecteurs choisis de manière aléatoire uniformedans la région [−2,−2]× [2, 2]
2. Valeurs paramètres
A =
[0 4−1 0
]Notons que les valeurs propres de A sont complexes conjuguées: λ1 =−2i, λ2 = 2i.
8
3. Intervalle de temps de simulation [0, 10].
4. Fonction(s) d’entrée: néant
5. Résolution numérique: default MATLAB
6. Implémentation: script MATLAB/Simulink cas69.m.
7. Visualisation:
0 2 4 6 8 10−5
−4
−3
−2
−1
0
1
2
3
4
5
t
x 1
0 2 4 6 8 10−2.5
−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
2.5
t
x 2
Cas d’étude 6: simulation 9
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
x1
x 2
Portrait de phases
3.11 Simulation 10: foyer stable
1. Conditions initiales: 20 vecteurs choisis de manière aléatoire uniformedans la région [−2,−2]× [2, 2]
2. Valeurs paramètres
A =
[−4 5−5 2
]Notons que les valeurs propres de A sont complexes conjuguées: λ1 =−1 + 4i, λ2 = −1− 4i.
3. Intervalle de temps de simulation [0, 10].
4. Fonction(s) d’entrée: néant
5. Résolution numérique: default MATLAB
6. Implémentation: script MATLAB/Simulink cas610.m.
7. Visualisation:
9
0 2 4 6 8 10−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
t
1
0 2 4 6 8 10−2.5
−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
t
x 2
Cas d’étude 6: simulation 10
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
x1
x 2
Portrait de phases
3.12 Simulation 11: noeud impropre (stable dégénéré)
1. Conditions initiales: 20 vecteurs choisis de manière aléatoire uniformedans la région [−2,−2]× [2, 2]
2. Valeurs paramètres
A =
[−2 1−1 0
]Notons que les deux valeurs propres de A sont réelles et coïncidentesλ1 = λ2 = −1
3. Intervalle de temps de simulation [0, 10].4. Fonction(s) d’entrée: néant5. Résolution numérique: default MATLAB6. Implémentation: script MATLAB/Simulink cas611.m.7. Visualisation:
0 2 4 6 8 10−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
t
1
0 2 4 6 8 10−2.5
−2
−1.5
−1
−0.5
0
0.5
1
1.5
t
x 2
Cas d’étude 6: simulation 11
10
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
x1
x 2
Portrait de phases
3.13 Simulation 12: étoile
Conditions initiales: 20 vecteurs choisis de manière aléatoire uniformedans la région [−2,−2]× [2, 2]
1. Valeurs paramètres
A =
[−1 00 −1
]Notons que les deux valeurs propres de A sont réelles et coïncidentesλ1 = λ2 = −1. Aussi, les vecteurs propres sont indépendants.
2. Intervalle de temps de simulation [0, 10].3. Fonction(s) d’entrée: néant4. Résolution numérique: default MATLAB5. Implémentation: script MATLAB/Simulink cas612.m.6. Visualisation:
0 2 4 6 8 10−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
t
1
0 2 4 6 8 10−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
t
x 2
Cas d’étude 6: simulation 12
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
x1
x 2
Portrait de phases
11
7. Analyse quantitative et qualitative du comportement:– bien que [0, 0] soit un état d”équilibre pour tous le systèmes de la
forme, la dynamique est très différente et dépend de la nature desvaleurs propres de la matrice A
– Un petit changement des paramètres peut entraîner un changementqualitatif du comportement suite à un changement du type (réel oucomplexe) des valeurs propres ou à un changement de signe de lapartie réelle.
– Dans le cas de valeurs propres complexes les trajectoires orbitentautour de l’origine. La direction de rotation peut être établie encalculant le signe de x1 pour x1 = 0. Si le signe est positif alors larotation est de sens horaire, autrement elle est de sens anti-horaire.
8. Suggestions pour un étude ultérieure:
(a) Définir une matrice paramétrique
A =
[p 11 q
]et étudier le comportement du système associé en fonction desparamètres p et q (justifier par rapport au déterminant).
(b) Vérifier expérimentalement qu’une trajectoire x(t) avec une con-dition initiale donnée x0 peut s’écrire sous la forme
x(t) = c1eλ1tv1 + c2e
λ2tv2
12
4 Annexe: le code du cas d’étude cas61.m
% Initialisation (fermeture des figures, ...)
clear all
close all
% La matrice
A=[1 3; 3 1];
% L’etat initial
x0=[1/2,0]
% Calcul des valeurs propres
[V,lambda]=eig(A);
lambda=diag(lambda)
V=V/V(1)
% Temps de debut et de fin de simulation
t0=0;
tf=1;
% Lancement de la simulation
sim(’mod6’)
% afficher les solutions x1(t) et x2(t)
figure(1)
subplot(1,2,1); plot(x1.time,x1.signals.values,’-’);
xlabel(’t’); ylabel(’x_1’);
hold on
subplot(1,2,2); plot(x2.time,x2.signals.values,’r-’); xlabel(’t’);
ylabel(’x_2’);
hold on
title(’Cas d’etude 6: simulation 1’)
% Afficher la trajectoire debutant en x0
figure(2)
xrange=[-2,2];
yrange=[-2,2]
plot(x1.signals.values,x2.signals.values,’-’),xlabel(’x_1’); ylabel(’x_2’);
hold on
title(’Portrait de phases’)
axis([-2,2,-2,2])
% Afficher les vecteurs vitesse
13
plot(0,0,’ko’)
hold on
[x,y] = meshgrid(xrange(1):.25:xrange(2), yrange(1):.25:yrange(2));
xp = A(1,1)*x+A(1,2)*y;
yp=A(2,1)*x+A(2,2)*y;
quiver(x,y,xp,yp,’r’)
%Afficher les droites invariantes
x1 = xrange(1):.25:xrange(2);
if (isreal(lambda(1)))
if (A(1,2)==0)
plot(zeros(length(x1)),x1,’k’,’LineWidth’,1);
else
y1=-1/A(1,2)*(A(1,1)-lambda(1))*x1
plot(x1,y1,’k’,’LineWidth’,1);
xp = A(1,1)*x1+A(1,2)*y1;
yp=A(2,1)*x1+A(2,2)*y1;
quiver(x1,y1,xp,yp,1/2,’r’)
end
end
if (isreal(lambda(2)))
if (A(2,1)==0)
plot(x1,zeros(length(x1)),’k’,’LineWidth’,1);
else
y1=x1
x1=-1/A(2,1)*(A(2,2)-lambda(2))*x1
plot(y1,x1,’r’,’LineWidth’,1);
xp = A(1,1)*x1+A(1,2)*y1;
yp=A(2,1)*x1+A(2,2)*y1;
quiver(x1,y1,xp,yp,’r’)
end
end
14