TP N°1: Etude Des Systèmes Dans L'espace D'état Sous Matlab Et Simulink
TP N°1: Etude Des Systèmes Dans L'espace D'état Sous Matlab Et Simulink
TP N°1: Etude Des Systèmes Dans L'espace D'état Sous Matlab Et Simulink
I. Introduction
II. Rappels
Les équations d’état d’un système sont constituées de l’ensemble des équations
matricielles suivantes :
Avec :
𝑥 : vecteur des variables d’état
𝑢 : vecteur des commandes
𝑦 : vecteur des sorties
A : matrice d’évolution de dimension (𝑛 × 𝑛)(n :ordre du système)
B : matrice de commande de dimension (𝑛 × 𝑙)(l :nombre d’entrées du système)
C : matrice d’observation de dimension (𝑚 × 𝑛) (m :nombre de sorties)
D : matrice de transmission directe de dimension (𝑚 × 𝑙)
Ces équations sont établies pour les systèmes multivariables, dans le cas particulier des
systèmes monovariable qui nous intéresse, on peut réécrire ces équations de la façon
suivante :
1
Dans la plupart des systèmes rencontrés en automatique, il n’existe pas de lien direct
entre l’entrée et la sortie du système. Par conséquent, dans la représentation d’état de tels
systèmes, la matrice D de transmission directe est nulle.
Le choix des variables d’état conduit à des formes particulières pour les matrices, ces
structures spécifiques sont appelées forme canonique, qu’on peut classer en trois formes [8] :
Forme canonique diagonale
La matrice d’état est diagonale et les éléments de la diagonale sont les valeurs propres.
Forme canonique commandable
Une ligne de la matrice d’état correspond aux coefficients du polynôme caractéristique de la
fonction de transfert.
Forme canonique observable
Une colonne de la matrice d’état correspond aux coefficients du polynôme caractéristique de
la fonction de transfert.
2
Programmation sous Matlab :
Lancer Matlab sous windows, une fenêtre (command window) est alors affichée.
Cliquer sur File et choisir “New” ensuite “Mfile”, une nouvelle fenêtre est ouverte
dans laquelle on peut écrire notre programme.
Donner un nom au programme à enregistrer.
Pour l’exécution du programme, taper son nom dans la fenêtre (Command window) ou
Pour lancer Simulink, on clique sur l’icône dans la barre d’outils de Matlab, ou bien
par la commande ≫ simulink à l’invite, dans la fenêtre de travail de Matlab.
Ceci nous donnera accès à différents menus ou boîtes de Simulink ; ainsi on ouvrira une
nouvelle fenêtre Simulink à partir de laquelle on pourra créer un nouveau fichier modèle et
placer les éléments constitutifs du système à étudier.
La librairie de Simulink comprend de différentes sections permettant d’aborder de nombreux
aspects de la commande des systèmes.
Dans notre polycopié on portera notre attention sur les éléments suivants comme le montre la
Figure I.2 :
Step : se trouve dans Sources, générateur de l’échelon.
Transfert fcn : se trouve dans Continuous, permet de définir une fonction de
transfert. Changez les paramètres pour qu’elle corresponde à la fonction de transfert
demandée.
State-space : se trouve dans Continuous, permet de définir une représentation d’état.
changer les matrices A,B ,C,D pour qu’elle correspondre à la représentation d’état
3
demandée.
Gain : se trouve dans Math Operations, permet de multiplier l’entrée par un gain
k(scalaire ou vecteur )
Mux : se trouve dans Signal routing, permet de multiplexer plusieurs signaux dans
un fil.
Sum : se trouve dans Math Operations, permet de réaliser le comparateur. Il faut
choisir les signes + et -.
Scope : se trouve dans Sinks, c’est un scope rudimentaire pour avoir rapidement un
tracé des courbes.
ToWorkspace: il se trouve dans Sinks, permet de récupérer le résultat de la
simulation dans une variable exploitable sur Matlab (ligne de commande).
4
Figure 1 – Schéma fonctionnel d’un Moteur à Courant Continu.
Caractéristique de système :
Dans toute la suite de ce TP, le système considéré n'a qu'une entrée et qu'une sortie, tel
que nous supposons que l'entrée du système est la source de tension (V) appliquée à l'induit
du moteur, alors que la sortie est la position de l'arbre (thêta).
Nous supposons en outre un modèle de frottement visqueux, c'est-à-dire que le couple de
frottement est proportionnel à la vitesse angulaire de l'arbre.
1. Système d’équations
En général, le couple généré par un moteur à courant continu est proportionnel au
courant d'induit et à la force du champ magnétique. Dans cet exemple, nous supposerons que
le champ magnétique est constant et, par conséquent, que le couple moteur est proportionnel
uniquement au courant d'induit i par un facteur constant Kt comme indiqué dans l'équation
ci-dessous. C'est ce qu'on appelle un moteur commandé par induit.
(1)
(2)
5
En unités SI, les constantes du couple moteur et de la force contre-électromotrice sont égales,
c'est-à-dire Kt = Kb ; par conséquent, nous utiliserons K pour représenter à la fois la constante
de couple du moteur et la constante de force contre-électromotrice.
À partir de la figure ci-dessus, nous pouvons dériver les équations directrices
suivantes basées sur la 2e loi de Newton et la loi de tension de Kirchhoff.
(3)
(4)
2. Fonction de transfert :
(5)
(6)
Nous arrivons à la fonction de transfert en boucle ouverte suivante en éliminant I(s) entre les
deux équations ci-dessus, où la vitesse de rotation est considérée comme la sortie et la
tension d'induit est considérée comme l'entrée
(7)
Cependant, au cours de cet exemple, nous examinerons la position en tant que sortie. Nous
pouvons obtenir la position en intégrant la vitesse, il suffit donc de diviser la fonction de
transfert ci-dessus par s.
(8)
3. Equations d’état :
Les équations différentielles ci-dessus peuvent également être exprimées sous forme
variable d'état en choisissant la position du moteur, la vitesse du moteur et le courant d'induit
comme variables d'état ; ou la tension d'induit est considéré comme entrée et la position de
rotation est choisie comme sortie.
6
(9)
(10)
7
4) Ecrire les équations générales permettant, de passer de la représentation d’état d’un
système à la représentation externe (Fonction de transfert), en utilisant la
transformation de Laplace,
5) En prenant la transformée de Laplace de l’équation différentielle du système, donner
sa fonction de transfert qui relie l’entrée avec la sortie. Quel est l’ordre du système ?
8
13) Analyser les performances fréquentielles du système(fonction de transfert et
représentation d’état ) en utilisant la fonction Matlab bode( En cliquant sur le tracé
avec le bouton droit, il est possible d’obtenir des renseignements sur le gain statique et
les marges de gain et de phase),
14) Lancer Simulink, construire le modèle du système. Pour cela, on recherchera dans les
menus Simulink les différents blocs nécessaires (fonction de transfert ou
représentation d’état continue, gain, sommateur, oscilloscope pour visualiser…etc),
que l’on fera glisser dans le modèle. Une fois les éléments essentiels présents, il suffit
de les lier entre eux avec la souris c'est-à-dire tracer des connections entre la sortie du
premier bloc et l'entrée du deuxième bloc. Ne pas oublier de sauvegarder le schéma
dans votre répertoire de travail avant de l'exécuter,
15) Simuler les réponses indicielles et impulsionnelles du système en boucle ouverte,
16) Faire une étude comparative entre les deux résultats obtenus par le programme (Mfile) et
par le modèle Simulink,
17) Interpréter les résultats,
18) Tracez l’allure de la réponse indicielle unitaire en boucle fermée du système en
utilisant les fonctions Matlab step et feedback,
19) Simuler dans Simulink, la réponse indicielle du système en boucle fermée.
9
Solution :
A = [0 1 0
0 -b/J K/J
0 -K/L -R/L];
B = [0 ; 0 ; 1/L];
C = [1 0 0];
D = [0];
motor_ss = ss(A,B,C,D)
2) Dimensions matrice d’état
size(A) ;size(B) ;size(C) ;size(D)
3) Passage fonction transfert vers espace d’etat
ft= C*(inv(s*eye(2,2)-A))*B, ou [Num,Den]=ss2tf(A,B,C,D) ;g1=tf(motor_ss);
4) Passage espace d’etat vers fonction transfert
[A,B,C,D]=tf2ss(Num,Den);
5) Forme canonique modale
csys = canon(motor_ss,'modal')
6) Forme observable
csys = canon(motor_ss,'companion')
7) Vérification :
On met les trois representations de meme entres on remarque que obtient les memes
sortie par simulink
8) D'après la figure ci-dessus, un système linéaire invariant dans le temps en boucle
ouverte est stable si : En temps continu, tous les pôles du plan s complexe doivent se
trouver dans le demi-plan gauche (région bleue) pour assurer la stabilité. Le système
est marginalement stable si des pôles distincts se trouvent sur l'axe imaginaire, c'est-à-
dire que les parties réelles des pôles sont nulles
10
Pole-Zero Map
1
0.8
0.6
0.4
0.2
Imaginary Axis
0
-0.2
-0.4
-0.6
-0.8
-1
-15 -10 -5 0
5
Real Axis x 10
11