Vous êtes sur la page 1sur 17

TP Commande numérique FSTM/GE

-----------------------------------------------------------------------------------------------------------------
Initiation à Matlab & Control System

1. Introduction
La « Control system Toolbook » est une boîte à outils permettant d’analyser, de concevoir et de procéder
au réglage des systèmes de commande linéaire, et ce ; de façon interactive (CAO des systèmes de
commande).

Nous passerons en revue ces différents aspects de la CAO des systèmes de commande ; à savoir :
- la représentation des modèles linéaires des systèmes linéaires
- la connexion des systèmes qui composent les systèmes de commande (systèmes cascades,
systèmes en contre réaction, ..)
- l’analyse temporelle et fréquentielle
- la conception des systèmes de commandes classiques.

2. Représentation des systèmes linéaires


Rappelons que les différentes représentations pouvant être utilisées pour représenter le procédé à
commander et les autres composants des boucles de commande sont ;
- fonction de transfert sous forme polynomiale ou factorisée ;
- réponse fréquentielle ;
- équations d’état.

Matlab permet de représenter les systèmes linéaires sous l’une des formes susmentionnées à l’aide
d’objets intitulés « Linear Time Invariant Model». Les fonctions de Matlab dédiés à cet aspect sont :

Représentation Fonction de transfert Réponse fréquentielle Modèle d’état


𝑡𝑓
Fonctions Matlab 𝑓𝑟𝑑 𝑠𝑠
𝑧𝑝𝑘

Il existe également des représentions spécifiques pour le régulateur PID analogique ou numérique.

On passera en revue ces différentes représentations tant pour les systèmes continus que pour les
systèmes discrets.

2.1 Systèmes continus


- Fonction de transfert
Une fonction de transfert 𝐹(𝑠) sous l’environnement Matlab est définie comme un objet LTI (Linear Time
Invariant Systems). Il s’agit d’une classe particulière de variables avec ses propres propriétés et ses
propres opérations (pour plus de détails voir « Matlab & Control).
1.

𝑼(𝒔) 𝒀(𝒔)
𝐹(𝑠)

La fonction de transfert (F.T.) peut être créée sous forme :


10∗𝑠+20
- polynômiale 𝐹(𝑠) =
𝑠 4 +7∗𝑠 3 +15∗𝑠 2 +9∗𝑠
10∗(𝑠+2)
- factorisée 𝐹(𝑠) =
𝑠∗(𝑠+1)∗(𝑠+3)2

La commande « 𝒕𝒇 « de Matlab permet de faire la saisie des fonctions de transfert sous forme
polynomiale (voir programmes ci-après) :

Pr. Aoufoussi 1
TP Commande numérique FSTM/GE
-----------------------------------------------------------------------------------------------------------------
<< Clear all >> clear all
<< num = [10 20]; >> s = tf('s');
<< den= [1 7 15 9 0]; >> F= l0*(s + 2)/(s*(s + l)*(s + 3)^2)
<< F= tf (num,den)
F=
F= 10 s + 20
1000 --------------------------
------------------------- s^4 + 7 s^3 + 15 s^2 + 9 s
s^3 + 34 s^2 + 5 s + 1000
Continuous-time transfer function.
Continuous-time transfer function.
La commande « 𝑧𝑝𝑘 « permet de créer la fonction de transfert sous sa forme factorisée, soit :

>> clear all >> clear all


>> F = zpk( [-2], [0 -1 -3 -3], 10) >> s = tf('s');
>> F= l0*(s + 2)/(s*(s + l)*(s + 3)^2);
F= >> get(F)
10 (s+2) num: {[0 0 0 10 20]}
--------------- den: {[1 7 15 9 0]}
s (s+1) (s+3)^2 Variable: 's'
ioDelay: 0
Continuous-time zero/pole/gain model. InputDelay: 0
OutputDelay: 0
Ts: 0
TimeUnit: 'seconds'

Il est à noter que la fonction de Matlab « get « donne les paramètres d’une fonction de transfert
lorsque celle-ci est saisie sous forme polynomiale ou factorisée.
Le régulateur PID peut être représenté sous la forme parallèle ou sous la forme standard :
𝑘𝑖 𝑘𝑑 .𝑠
- Forme parallèle : 𝐶(𝑠) = 𝑘𝑝 + +
𝑠 𝑇𝑓 .𝑠+1

1 𝑇 .𝑠
- Forme standard : 𝐶(𝑠) = 𝑘𝑝 . (1 + + 𝑇𝑑 𝑑 )
𝑇𝑖 .𝑠 .𝑠+1
𝑁

>> 𝑘𝑝 = 29.5; >> 𝑘𝑝 = 29.5;

>> 𝑘𝑖 = 26.2; >> 𝑇𝑖 = 1.13;


>> 𝑘𝑑 = 4.3; >> 𝑇𝑑 = 0.15;
>> 𝑇𝑓 = 0,06; >> 𝑁 = 10;
>> 𝐶 = 𝑝𝑖𝑑(𝐾𝑝, 𝑇𝑖, 𝑇𝑑, 𝑁) >> 𝐶 = 𝑝𝑖𝑑𝑠𝑡𝑑(𝐾𝑝, 𝑇𝑖, 𝑇𝑑, 𝑁)

- Réponse fréquentielle
Le modèle « 𝑓𝑟𝑑 » peut être utilisé pour stocker, manipuler et analyser les données de la réponse
fréquentielle obtenues soit par simulation ou par une série d’expériences :

𝑢(𝑡) = sin(𝜔𝑖 . 𝑡) 𝑦(𝑡) = Y𝑚𝑎𝑥 (𝜔𝑖 ). sin(𝜔𝑖 . 𝑡 + 𝜑(𝜔𝑖 ))


𝐺(𝜔)
𝜔𝑖 ∈ [𝜔𝑚𝑖𝑛 , 𝜔𝑚𝑎𝑥 ]
A partir des données de la réponse fréquentielle, on remplit les vecteurs suivants :
>> 𝑓𝑟𝑒𝑞 = [𝜔1 , 𝜔2 , … . . , 𝜔𝑁 ];
≫ 𝑟𝑒𝑠𝑝 = [Y𝑚𝑎𝑥 (𝜔1 ). 𝑒 𝑗.𝜑(𝜔1) , Y𝑚𝑎𝑥 (𝜔2 ). 𝑒 𝑗.𝜑(𝜔2) , … . . , Y𝑚𝑎𝑥 (𝜔𝑁 ). 𝑒 𝑗.𝜑(𝜔𝑁 ) ];
La commande de Matlab » 𝑓𝑟𝑑 » permet de créer le modèle à partir des données ci-dessus :
≫ 𝑠𝑦𝑠 = 𝑓𝑟𝑑(𝑓𝑟𝑒𝑞, 𝑟𝑒𝑠𝑝)

Pr. Aoufoussi 2
TP Commande numérique FSTM/GE
-----------------------------------------------------------------------------------------------------------------
- Modèle d’état
Dans le cas de la modélisation dans l’espace d’état des systèmes continus (voir équations d’état ci-
après) le type d’objet utilisé par Matlab est de type ss :
𝑑𝑋
= 𝐴. 𝑋 + 𝐵. 𝑈
{ 𝑑𝑡
𝑌 = 𝐶. 𝑋 + 𝐷. 𝑈
Où 𝐴, 𝐵, 𝐶 𝑒𝑡 𝐷 𝑑é𝑠𝑖𝑔𝑛𝑒𝑛𝑡 𝑑𝑒𝑠 𝑚𝑎𝑡𝑟𝑖𝑐𝑒𝑠 𝑑𝑒 𝑑𝑖𝑚𝑒𝑛𝑠𝑖𝑜𝑛𝑠 ∶ 𝐴(𝑛𝑥 , 𝑛𝑥 ), 𝐵(𝑛𝑥 , 𝑛𝑢 ), 𝐶(𝑛𝑦 , 𝑛𝑥 ) 𝑒𝑡 𝐷(𝑛𝑦 , 𝑛𝑢 )
𝐷 = 0, revient à modéliser le cas où la sortie suivant 𝑌 = 𝐶. 𝑋

La syntaxe de la saisie de ce type d’objet est :


>> 𝑠𝑦𝑠 = 𝑠𝑠(𝐴, 𝐵, 𝐶, 𝐷)
Exemple :
>> A = [0 1;-5 -2];
>> B = [0;3];
>> C = [0 1];
>> D = 0;
>> sys = ss(A,B,C,D);

Les différentes matrices d’un objet « ss » peuvent être récupérées par les commandes :
>> sys.a
>> sys.b
>> sys.c
>> sys.d
Exemple :
>> sys.a

ans =
0 1
-5 -2

2.2 Systèmes discrets


- Fonction de transfert
La définition de fonctions de transfert en z et de modèles d’état discrets suit la même notation que dans
le cas des systèmes continus. Dans les deux cas, un argument supplémentaire doit être spécifié : la
période d’échantillonnage.
𝑧+1
Exemple : Fonction de transfert : 𝐺𝑑 (𝑧) = avec période d’échantillonnage 𝑇 = 0,2 𝑠𝑒𝑐.
𝑧 2 +0,5.𝑧+0,25

>> 𝐺𝑑 = 𝑡𝑓([1 1], [1 0.5 0.25],0.2)


𝐺𝑑 =
𝑧 + 1
------------------
𝑧^2 + 0.5 𝑧 + 0.25
Sample time: 0.2 seconds
Discrete-time transfer function.

Une fonction de transfert en 𝑧 peut également être définie en 𝑧 −1 en précisant explicitement la forme
de la variable.

Pr. Aoufoussi 3
TP Commande numérique FSTM/GE
-----------------------------------------------------------------------------------------------------------------
Exemple :
>> 𝐺𝑑2 = 𝑡𝑓([7 − 1], [1 4 3],0.2, ′𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒′, ′𝑧^ − 1′)

𝐺𝑑2 =
7 − 𝑧^ − 1
-------------------
1 + 4 𝑧^ − 1 + 3 𝑧^ − 2
Sample time: 0.2 seconds
Discrete-time transfer function.
.
- Modèle d’état
Le modèle d’état d’un système discret ayant une période d’échantillonnage 𝑇:
𝑥(𝑛 + 1) = 𝐴. 𝑥(𝑛) + 𝐵. 𝑢(𝑛)
{
𝑦(𝑛) = 𝐶. 𝑥(𝑛) + 𝐷. 𝑢(𝑛)
peut être saisi comme suit :
>> 𝑠𝑦𝑠 = 𝑠𝑠(𝐴, 𝐵, 𝐶, 𝐷, 𝑇)
3. Connexion des systèmes
Des systèmes complexes peuvent être construits à partir de sous-systèmes élémentaires. Voici les trois
opérations de base pour l’interconnexion de modèles.
L’élaboration des diagrammes fonctionnels à partir de sous-systèmes élémentaires nécessite de
spécifier les connexions entre les sous-systèmes composants le système de commande.

Le tableau suivant résume les principales commandes de Matlab correspondants aux principales
connexions entre ces différents sous-systèmes :

𝑠𝑒𝑟𝑖𝑒𝑠 Connexion type « cascade »


𝑝𝑎𝑟𝑎𝑙𝑙𝑒𝑙 Connexion type « parallèle »
𝑓𝑒𝑒𝑑𝑏𝑎𝑐𝑘 Connexion type « contre-réaction »
𝑠𝑢𝑚𝑏𝑙𝑘 Connexion type « sommateur »
3.1. Connexion “series”
La mise en série de deux systèmes revient à les remplacer par le système équivalent :

𝐹(𝑠) 𝐺(𝑠) ⟺ 𝐻(𝑠) = 𝐹(𝑠) ∗ 𝐺(𝑠)

La syntaxe correspondante est :


>> 𝐻 = 𝑠𝑒𝑟𝑖𝑒𝑠(𝐹, 𝐺)
3.2. Connexion “parallèle”
La mise en parallèle de deux systèmes revient à les remplacer par le système équivalent :

𝐹(𝑠)
⟺ 𝐻(𝑠) = 𝐹(𝑠) + 𝐺(𝑠)
𝐺(𝑠)

La syntaxe est : 𝐻 = 𝑝𝑎𝑟𝑎𝑙𝑙𝑒𝑙(𝐹, 𝐺) ou 𝐻 =𝐹+𝐺

Pr. Aoufoussi 4
TP Commande numérique FSTM/GE
-----------------------------------------------------------------------------------------------------------------
3.3. Connexion “contre réaction”
La connexion de deux systèmes en contre réaction peut être réalisée par la commande « feedback »
comme suit :
𝑢(𝑡) 𝑦(𝑡)
𝑠𝑦𝑠1
>> 𝑏𝑜𝑢𝑐𝑙𝑒 = 𝑓𝑒𝑒𝑑𝑏𝑎𝑐𝑘(𝑠𝑦𝑠1, 𝑠𝑦𝑠2)

𝑠𝑦𝑠2

Exemple :
Soient les systèmes 𝑠𝑦𝑠1 𝑒𝑡 𝑠𝑦𝑠2 représentés par les fonctions de transfert : 𝐹(𝑠) 𝑒𝑡 𝐻(𝑠).
Le programme suivant permet de les connecter en contre-réaction :

>> 𝐺 = 𝑓𝑒𝑒𝑑𝑏𝑎𝑐𝑘(𝐹, 𝐻)
𝐹(𝑠)
La fonction de transfert G(s) ainsi obtenu est donnée par l‘équation : 𝐺(𝑠) =
1+𝐹(𝑠).𝐻(𝑠)

4. Analyse temporelle et fréquentielle


4.1 Quelques fonctions utiles
Le tableau suivant résume les fonctions de Matlab permettant de déterminer les caractéristiques du
système à savoir :

𝑝𝑜𝑙𝑒 (𝐹) renvoie les pôles du système F


𝑧𝑒𝑟𝑜(𝐹) renvoie les zéros de F
𝑝𝑧𝑚𝑎𝑝 (𝐹) Donne représentation graphique des pôles et des zéros de F
𝑑𝑐𝑔𝑎𝑖𝑛 (F) renvoie le gain statique du système

4.2 Analyse temporelle


Les fonctions de Matlab « 𝑖𝑚𝑝𝑢𝑙𝑠𝑒 » et « 𝑠𝑡𝑒𝑝 » permettent de calculer la réponse impulsionnelle et la
réponse indicielle d’une fonction de transfert F donnée.

Exemple :

Ci-après le programme permettant de tracer la réponse impulsionnelle de la fonction de transfert :


10∗𝑠+100 10.(𝑠+10)
𝐹(𝑠) = =
𝑠 3 +7∗𝑠 2 +10∗𝑠 𝑠.(𝑠+2).(𝑠+5)

>> clear all >> clear all


>> num = [10 100]; >> s = tf(' s');
>> den= [1 7 10 0]; >> F=10*(s+10)/s*(s +2)* (s + 5);
>> F= tf (num,den); >> step(F)
>> impulse (F)

En cliquant sur le bouton gauche de la souris sur le point dont ou souhaite connaitre l’information, on
obtient la valeur numérique de la réponse indicielle sous Matlab.
En cliquant sur le bouton droit de la souris (ailleurs que sur la courbe), on obtient les principales
caractéristiques de la réponse.

De manière générale, il est possible de calculer la réponse d’un système défini par « 𝐹 » pour une
entrée arbitraire 𝑈 via la commande "𝑙𝑠𝑖𝑚" :
>>𝑌 = 𝑙𝑠𝑖𝑚(𝐹, 𝑈, 𝑇)
Cette fonction possède trois arguments :
- 𝑙𝑒 𝑠𝑦𝑠𝑡è𝑚𝑒 ∶ 𝐹
- 𝑙𝑒 𝑣𝑒𝑐𝑡𝑒𝑢𝑟 𝑑’𝑒𝑛𝑡𝑟é𝑒
- 𝑒𝑡 𝑙𝑒 𝑣𝑒𝑐𝑡𝑒𝑢𝑟 𝑡𝑒𝑚𝑝𝑠.
Le résultat de la fonction est stocké dans le vecteur Y.

Pr. Aoufoussi 5
TP Commande numérique FSTM/GE
-----------------------------------------------------------------------------------------------------------------

Les deux vecteurs 𝑈 𝑒𝑡 𝑇 doivent évidemment être de même taille.


Le vecteur d’entrée peut être construit point par point ou encore être généré à l’aide de 𝑔𝑒𝑛𝑠𝑖𝑔 (pour
des signaux carré, sinusoïdale ou impulsions). Dans ce dernier la commande s’écrirait :
>> [U,T]=gensig(type,tau,Tf,Ts)
Pour plus de détails voir : help gensig

Exemple :
>> G=tf([1 1],[1 4 3/2]);
>> [U,T]=gensig('square',20,70);
>> lsim(G,U,T)
4.3 Réponse fréquentielle

La réponse harmonique permet d’analyser la réponse temporelle d’un système et de la phase à une
entrée sinusoïdale en régime permanent par une lecture directe du module pour toutes les fréquences
du signal d’entrée. Cette analyse permet d’évaluer les performances en régime dynamique telles que
la bande passante, le filtrage, etc.

La réponse fréquentielle peut être visualisée sous différentes formes : Bode, Black-Nichols, Nyquist à
l’aide des commandes suivantes : 𝑏𝑜𝑑𝑒(𝐹) ; 𝑛𝑖𝑐ℎ𝑜𝑙𝑠(𝐹), 𝑛𝑦𝑞𝑢𝑖𝑠𝑡(𝐹)

Exemple :

Ci-après le programme permettant de tracer le digramme de Bode de la fonction de transfert :


10.(𝑠+10)
𝐹(𝑠) =
𝑠.(𝑠+2).(𝑠+5)

<< clear all << clear all


<< num = [10 100]; << s = tf(' s');
<< den= [1 7 10 0]; << F=10*(s+10)/s*(s +2)* (s + 5);
<< F= tf (num,den) >> bode (F)
>> bode (F)

Idem pour les diagrammes de Nyquist et Black-Nichols.

5. Introduction à Simulink
Simulink est un programme additionnel à Matlab qui permet de faire la simulation des systèmes
dynamiques. La modélisation des systèmes devient plus aisée ; les fonctions de transfert sont écrites
sous forme de blocs et les liaisons sont réalisées par des arcs orientés.
Un modèle du système peut être construit à l’aide d’assemblage de blocs élémentaires de la librairie
Simulink. Le modèle obtenu peut échanger des données avec l’espace de travail de Matlab à l’aide de
variables communes ou par l’intermédiaire de fichiers MAT.

Les différents types de signaux peuvent être générés et visualisés à l’aide d’instruments virtuels.

5.1. Création d’un modèle


Simulink peut être lancé depuis l’environnement de MATLAB de deux manières suivantes :

- en cliquant, dans la barre d’outils, sur le bouton « simulink »


- ou en tapant simulink
La fenêtre suivante apparait :

Pr. Aoufoussi 6
TP Commande numérique FSTM/GE
-----------------------------------------------------------------------------------------------------------------

La colonne de gauche résume les bibliothèques disponibles. Celles-ci sont rangées par disciplines
(Automatique, Traitement du signal, Système embarqués…) et regroupent un ensemble de blocs
fonctionnels liés à une catégorie de fonctions particulières. A la sélection d’une bibliothèque, les blocs
qui la composent sont affichés dans la partie de droite.
Pour créer un nouveau modèle il suffit de sélectionner le menu « File > New > Model » ou de cliquer
sur l’icône « feuille blanche » (ou dans). Une fenêtre vide qui va servir de support pour construire votre
modèle apparaît.
Le modèle est construit à partir des blocs fonctionnels par « glisser-déposer ». Chacun des blocs
déposés peut être édité (réglages de ses paramètres) en double-cliquant dessus. Cette dernière action
permet d’ouvrir une fenêtre de dialogue dans laquelle une description du bloc et des champs
paramétrables sont donnés.
Les blocs sont ensuite interconnectés par des flèches dessinées à l’aide de la souris (cliquer-maintenir
sur une entrée ou une sortie puis relâcher sur une entrée ou une sortie).

Pr. Aoufoussi 7
TP Commande numérique FSTM/GE
-----------------------------------------------------------------------------------------------------------------
Les modèles peuvent être sauvegardés dans des fichiers d’extension « .mdl ». Simulink manipule les
fichiers (sauvegarde, ouverture, fermeture, création…) de façon classique à l’aide du menu File ou
des icônes.
Un fichier existant peut également être directement invoqué depuis la fenêtre de commande MATLAB
en tapant son nom sans extension :
>> monschema;

5.2. Les librairies Simulink


Simulink possède de nombreuses bibliothèques, adaptées pour la modélisation d’une multitude de
systèmes de différentes natures. Matlab affiche la fenêtre Simulink contenant les librairies parmi
lesquels on citer (pour plus de détails, voir documentation) :

- Sources : Les sources sont des blocs possédant une ou plusieurs sorties et aucune entrée.
Ils sont utilisés pour la génération de signaux générateurs de signaux.

- Sinks : les blocs de cette librairie permettent de diriger des valeurs vers un fichier, un
oscilloscope ou l’espace de travail. A l’inverse des sources, ces blocs ne possèdent qu’une
ou plusieurs entrées et sont utilisés pour l’affichage (digital, oscilloscope) ou la
mémorisation de signaux (vers une variable, un fichier).

- Maths opérations : Ensemble de blocs réalisant une fonction mathématique appliquée aux
signaux entrants. Le (ou les) résultat(s) est (sont) renvoyé(s) sur le (les) point(s) de sortie.

- Signal routing : Ces blocs servent pour l’aiguillage de signaux ou la connexion de blocs.

Multiplexeur permet de combiner deux entrées en une seule (vecteur).


Manual Switch: permet de sélectionner manuellement une entrée;
démultiplexeur: sépare une entrée (vecteur) en plusieurs composantes.

- Linear : modèles analogiques linéaires


- Discret: modèles discrets
- Nonlinear : non linéarités (seuil, relais, etc.)
- Connections : blocs de connexion (multiplexeur, démultiplexeur, etc.)
- Extras : blocs additifs

De plus, l’ajout de toolboxes supplémentaires permet d’enrichir les librairies et les fonctionnalités du
logiciel.
Il est à noter qu’un ensemble de blocs peut être transformé en un seul à l’aide de la commande
groupe du menu options. Le groupe ainsi obtenu aura ensuite les mêmes propriétés que les blocs
élémentaires des librairies Simulink. Après sélection de ce bloc, le masquage ou l’encapsulation se
fait par l’option mask du menu options de Simulink.

N.B. : Matlab propose plusieurs algorithmes de résolution numérique pour la résolution des
équations différentielles (Runge Kutta, Gear, etc) dont la liste est disponible dans l’option
« Parameters » du menu simulation.

Pr. Aoufoussi 8
TP Commande numérique FSTM/GE
-----------------------------------------------------------------------------------------------------------------
5.3. Simulation
Une fois le modèle réalisé, l’intérêt de Simulink consiste à le simuler.
Une simulation peut être lancée soit à partir de l’icône « lecture » en forme de triangle (ou dans le
menu Simulation > Start), soit à partir de MATLAB avec la commande sim().
Le premier paramètre de simulation (et le seul, dans le cas d’utilisation simpliste de Simulink) à régler
est le temps de simulation. Il peut être spécifié dans le champ à droite de l’icône de lancement d’une
simulation. Il doit être exprimé en secondes.
Pour une utilisation avancée, de nombreuses options permettent de configurer de manière très
précise les paramètres de simulation. De telles configurations sont accessibles dans le menu
Simulation > Configuration Parameters… :

Exemple : Soit un système modélisé par la fonction de transfert suivante :


1
𝐺(𝑠) =
𝑠2 +𝑠+2

On se propose de réaliser un asservissement avec une commande proportionnelle de gain 𝑘 = 5 à


l’aide de Simulink :
Les étapes à suivre sont :
 Définir ces deux paramètres dans Malab :
>> 𝐺 = 𝑡𝑓([1], [1 1 2]);
>> k=5 ;
 Simuler le système en boucle ouverte :
Pour ce faire, construire le modèle Simulink afin de simuler la réponse indicielle de notre
système.
En boucle ouverte, nous avons donc besoin :
- d’un bloc pour représenter la fonction de transfert 𝐺(𝑠),
- d’une source pour générer le signal échelon,
- et un bloc permettant la visualisation graphique de la sortie du système.

Pr. Aoufoussi 9
TP Commande numérique FSTM/GE
-----------------------------------------------------------------------------------------------------------------
- Paramétrer les blocs Step et LTI System pour notre exemple.
Nous fixons un échelon de valeur initiale 0 (initial value), d’amplitude 1 (final value)
et se déclenchant à t=0 (step time).
Nous définissons ensuite le système que nous étudions par la variable F
précédemment définie dans MATLAB.
Enfin, la simulation sera effectuée sur un horizon temporel de 15s.

- Lancer la simulation en boucle ouverte :


Après exécution de la simulation, la réponse peut être observée en double-cliquant
sur l’oscilloscope.

 Simuler le système en boucle fermée :


- réaliser un asservissement avec une commande proportionnelle de gain 𝑘. Le nouveau
modèle de simulation permettra de tester les performances de l’asservissement pour
différentes valeurs du gain 𝑘. Ce dernier peut être fixé directement depuis le bloc ou via
MATLAB. Ici le multiplexeur permet d’afficher sur un seul graphe le signal de consigne et le
signal de sortie.

Pr. Aoufoussi 10
TP Commande numérique FSTM/GE
-----------------------------------------------------------------------------------------------------------------
- Simuler le modèle du système en boucle fermée et visualiser la réponse du système
asservi via le Scope :

Pr. Aoufoussi 11
TP Commande numérique FSTM/GE
-----------------------------------------------------------------------------------------------------------------
Annexe : Introduction MATLAB

MATLAB est une abréviation de MATrix LABoratory. C’est un programme interactif, adapté
aux calculs scientifiques, qui intègre des modules d’analyse numérique de calcul matriciel,
de traitement de signal, de visualisation graphique, etc.

MATLAB peut être utilisé de façon interactive ou en mode programmation. En mode


interactif, l’utilisateur à la possibilité de réaliser des calculs sophistiqués et d’en présenter
les résultats sous forme numérique ou graphique. Le logiciel dispose d’un ensemble
important de fonctions de calcul numérique et de visualisation graphique. Les instructions
sont exécutées au fur et à mesure qu’elles sont introduites. Le Logiciel garde en mémoire
toutes les données correspondantes aux instructions déjà exécutées. Il est possible de
libérer la mémoire occupée par une ou plusieurs variables en exécutant les commandes
appropriées (voir liste ci-jointe des fonctions de MATLAB).

En mode de programmation, MATLAB donne la possibilité à l’utilisateur d’écrire des


programmes (y compris ses propres fonctions) au même titre que les autres langages de
programmation. Le logiciel peut exécuter un ou plusieurs fichiers correspondants au
programme principal et à ces propres fonctions en utilisant l’extension m (nom.m). Il est à
noter qu’il n’est pas nécessaire de déclarer les variables utilisées par le programme ni de
spécifier leur nature. Matlab se charge alors de les créer au besoin sous forme de matrice
et de leur

Par ailleurs, MATLAB dispose d’une multitude de boîtes à outils (toolboxes) spécifiques à
des domaines variés tels que :

 Mathématiques : Calculs symboliques, Equations différentielles, Optimisation


 Automatique : Identification, Commande robuste, Contrôle LMI, etc.
 Etc.

Enfin, Matlab s’impose comme un outil puissant de simulation et de visualisation des


problèmes numériques et en l’occurrence ceux du traitement de signal et d’automatique,
et ce, grâce au programme Simulink. Ce dernier est un outil permettant de modéliser et
de simuler les systèmes dynamiques en se basant sur la représentation schéma blocs.

1. Notions de base

Pour lancer l’exécution de MATLAB, sous Windows, il faut effectuer un double clic sur
l’icône de MATLAB. L’invite ‘ »’ de MATLAB apparaît à la suite duquel vous entrerez les
commandes qui seront exécutées selon le mode choisi (mode interactif ou mode
programmation).

Exemple 1 : mode interactif


> a=5 ;
> b= 4;
> c= a+b
> c=8 (résultat affiché par Matlab)

Le point-virgule indique la fin d’une ligne.

Exemple 2 : mode programmation

A l’aide de l’éditeur de Matlab, créez le fichier test.m comprenant les 3 premières


instructions. L’exécution de ce fichier affiche résultat c=8.

> test
>c=8 (résultat affiché par Matlab)

Les opérations arithmétiques de base de Matlab sont : +, -, *, et / ou\, ^.

Pr. Aoufoussi 12
TP Commande numérique FSTM/GE
-----------------------------------------------------------------------------------------------------------------

2. Types de données

L’élément de base dans Matlab est la matrice. Toutes les données sont des matrices
dimensions (m, n). Ainsi, un scalaire est une matrice carrée d’ordre 1, un vecteur est une
matrice de dimensions (n, 1) ou (1, n).

Les variables spéciales et constantes sont : pi, eps, Inf, Nan, ans.

Il est à noter que Matlab accepte les nombres complexes sous leur forme algébrique 𝑎 +
𝑖 ∗ 𝑏 ou exponentielle 𝜌. 𝑒 𝑗∗𝜃 . Les symboles 𝑖 (𝑜𝑢 𝑗) représentent le nombre imaginaire pur.
Matlab traite également les chaînes de caractères.

<< clear all


<< i=sqrt(-1) % j=imaginaire pur
i = 0.0000 + 1.0000i
<< z=complex(2, 3) % z=2+3j
z =2.0000 + 3.0000i
>> zc=conj(z) %zc= conjugué de z
zc = 2.0000 - 3.0000i
>> a=real(z) % a= partie réelle de z
a=2
>> b=imag(z) % b = partie imaginaire de z
b=3
>> ro=abs(z) % ro=module de z
ro =3.6056
>> theta=angle(z) % theta = arg(z)
theta = 0.9828
>> z = ro.*exp(i*theta) % permet de convertir la forme polaire
z =2.0000 + 3.0000i

2.1 Matrices

Les éléments de la matrice peuvent être des nombres réels ou complexes. Les éléments
d’une même ligne sont séparés par des « blanc » ou des « virgules ». Le point virgule indique
la fin d’une ligne.

Une matrice peut être initialisée de plusieurs façons et notamment :


> A (1,1) = 2 ; A (1,2) = 1 ; A (2,1) = 3 ; A (2,2) = 5 ;
> A = [2 1 ; 3 5]
> B ( :, 1)= A ( :, 1) ;

Les dimensions d’une matrice peuvent être récupérés sous forme de vecteur [m n], m et n
indiquent respectivement le nombre de lignes et de colonnes
> [m n] = size (A);

Les matrices particulières sont :


 eye (n): matrice identité de dimension (n, n)
 zeros (m, n): matrice nulle de dimension (m, n)
 ones (m, n): matrice de dimensions (m, n) dont les éléments sont égaux à 1.

Les principales opérations sur les matrices sont :

> B=A’;
> C= A+B;
> C=A-B;
> D=A*B;
> B=A^n
> inv(A) ;

Pr. Aoufoussi 13
TP Commande numérique FSTM/GE
-----------------------------------------------------------------------------------------------------------------
> Les opérateurs « * » et « / » permettent respectivement la multiplication et la
division élément par élément.
> x =A/B signifie que x est tel que A*x = B
> x= B/A signifie que x est tel que x*A=B
> poly (A) ; polynôme caractéristique de A
>det(A) ;
> rank(A) ;
> eig (A) ;
> trace(A) ;

2.2. Polynômes

Le calcul polynomial est à la base de nombreux domaines scientifiques : mathématiques,


traitement de signal, automatique etc. Matlab est muni des fonctions permettant d’effectuer
les opérations de base sur les polynômes à savoir l’addition, la soustraction, la
multiplication et la division, les calculs des racines, etc.

Un polynôme est représenté par un vecteur ayant pour éléments les coefficients des
monômes du dit polynôme, placés par ordre décroissant.

Exemple : 𝑃(𝑠) = 𝑎𝑛 𝑠 𝑛 + 𝑎𝑛−1 𝑠 𝑛−1 … 𝑎1 𝑠 + 𝑎0


>> 𝑃 = [𝑎𝑛 𝑎𝑛−1 … 𝑎1 𝑎0 ]

La saisie du polynôme : 𝑃(𝑠) = 2𝑠 3 + 𝑠 − 0,5 s’écrirait :


>> 𝑃 = [2 0 1 − 0.5]

Calcul polynômial :

 Somme et différence de 2 polynômes : Pour effecteur la somme et la différence de


2 polynômes, il est nécessaire que les 2 vecteurs qui les représentent aient la même
dimension. Pour ce faire, il suffit d’introduire artificiellement de zéros au polynôme
de faible degré.

 Produit de 2 polynômes : R = conv (P, Q)


 Division de 2 polynômes : [Q, R] = deconv (P, Q)
 Racines d’un polynôme : racines = roots (P)
 Evaluation d’un polynôme pour un ensemble de données de la variable x exprimées
sous forme d’un vecteur v : R = polyval (P, v) ;
 Calcul de la dérivée de la fonction polynomiale : df = polyder (P) ;

3. Représentation graphique

Matlab possède une bibliothèque graphique pour représenter les données sous forme
graphique en 2D ou en 3D (pour plus de détail consulter le programme de démonstration
démo de Matlab).

Graphique 2D

La commande plot permet de tracer des graphiques y en fonction de x (y=f(x)) ; x et y sont


des vecteurs de données de même dimension.

> x= ; y = ; Définition des vecteurs de données x et y


> plot (x, y) ; Tracé de la fonction y = f(x)
> grid ; xlabel (‘x’) ; ylabel (‘y’) ; title (‘y=f(x)’); Documentation du graphique

Les fonctions Loglog(x, y), semilogx(x, y) et semilogy(x, y) tracent respectivement :


log(y)=f (log(x), y1=f (log(x)) et log(y)=f(x).

Pr. Aoufoussi 14
TP Commande numérique FSTM/GE
-----------------------------------------------------------------------------------------------------------------
Tracé des courbes paramétriques :

Exemple :

> t= 0 : 0.01 : 2*pi ; x = cos (3t) ; y=sin (2*t) ; Définition des vecteurs t, x et y
> plot (x,y) ; Tracé graphique
> grid ; xlabel (‘x’) ; ylabel (‘y’’) ; title (‘ courbe y=f(x)’); Documentation du graphique

4. Programmation avec Matlab

Matlab est un langage de haut niveau dans lequel on trouve la majorité des concepts des
langages de programmation modernes (C, pascal). L’ordre d’exécution des instructions est
déterminé par les instructions de contrôle. Matlab permet de la création de fonctions et
distingue les données locales des données globales.

4.1: La syntaxe du langage Matlab

4.1.1 Les variables

Les noms des variables et des fonctions sont composés de lettres et de chiffres. Matlab fait
la distinction entre les majuscules et les minuscules.

4.1.2 Les opérateurs


Le tableau suivant résume les opérateurs que l’on peut rencontrer dans Matlab ainsi que
certains caractères spéciaux.
Symbole Désignation
+,-,*,/,^, Opérateurs
.*,./,.^ Opérateurs élément par élément
= Affectation
==, =<, ≤, >, ≥ Opérateurs de relation
&, │, , xor Opérateurs logiques
% commentaire
‘ Transposée de matrice ou délimiteur de chaînes de caractères
, Séparations d’instructions ou de réels d’une matrice.
Séparations d’instructions (pas d’affichage de valeurs intermédiaires) ou de lignes de
; matrice
… Symbole de continuation
. Point décimal
[ ] Définition de vecteurs ou de matrices
( ) Utilisation dans des expressions ou des fonctions
! Commande système

4.1.3 Fonctions retournant une valeur logique

Matlab fournit une liste de fonctions qui retournent des valeurs logiques (vrai : ≥1 ou faux :
0) pour tester l’existence de variables, leur type, etc. Parmi ces fonctions on peut citer :
exist, any, all, find, isnan, isinf, finite, isempty, isreal, isstr, isglobal

4.1.4 Instructions et commandes structurées

Une instruction peut désigner une instruction simple (expression) conditionnelle, une
boucle ou une rupture de séquence. Une commande structurée permet de réaliser des
itérations ou des sélections.
 Instructions de choix:
if condition

Pr. Aoufoussi 15
TP Commande numérique FSTM/GE
-----------------------------------------------------------------------------------------------------------------
instruction
end
ou
if condition
instruction1
else
instructioné
end
ou
if condition
instruction1
elsif condition
instruction
else
instruction
end
 Boucles :
For variable = expression
instructions
end
while expression
instructions
end
 Instructions de contrôle d’exécution :
pause
break : termine l’exécution d’une boucle
return : permet de revenir au fichier M ayant appelé le programme courant ou
à la ligne de commande Matlab.

4.2 : Fichiers de programme

Matlab peut exécuter une séquence d’instructions stockées dans des fichiers, nommés
fichiers M. Ce nom provient du fait l’extension est « .m ». Il existe 2 types fichiers M : les
fichiers procédures et les fichiers de fonction.

Le fichier procédure ou fichier script est une séquence d’instructions Matlab stocké dans
des fichiers ayant pour extension .m . Les variables sont locales à l’espace de travail, tous
les scripts partageront ces variables. Les valeurs des variables de votre session Matlab
seront modifiées par les instructions des fichiers script.

Exemple : Ecrire un programme sous Matlab qui permet de tracer x=sin(x).exp(-0.1*x) =


f(x) pour x –10* < x < 10 avec un pas de /20.

Les étapes à suivre sont :


- Charger Matlab
>> Matlab ; % Le système vous donne la main
- Créer un nouveau fichier test.m à l’aide du menu
- Saisir le programme suivant :

% programme test
clear all ; % efface toutes les données
x=-10*pi: pi/20 :10*pi ; % génère le vecteur x
y=sin(x).*exp(-0.1*x) ; % calcul y=sin(x) pour chacune des valeurs du vecteur x
plot(x,y,’g’) % trace la courbe (y=sin(x))
grid % trace le quadrillage pour donner plus de lisibilité au graphique
title(‘y=f(x)’) % ajoute le titre du graphique
xlabel(‘x’) % donne le titre l’axe des abscisses
ylabel(‘y’) % idem pour l’axe des ordonnées

- Enregistrer le fichier sous le nom test à l’aide du menu « save as «


- Exécuter la commande test sous matlab comme suit
>> test

Pr. Aoufoussi 16
TP Commande numérique FSTM/GE
-----------------------------------------------------------------------------------------------------------------
- Le programme s’exécute et affiche la courbe y=f(x).

Les fichiers de fonctions permettent de créer des fonctions spécifiques propres à


l’utilisateur. Les variables dans les fonctions sont par défaut locales à moins de les avoir
défini comme étant des variables globales.

Syntaxe :
Liste des arguments de retour= nom de la fonction (liste des arguments d’appel)
….
Corps de la fonction

Exemple : calcul du minimum et du maximum des éléments d’un vecteur V

Créer le fichier minmax.

function [Vmin,Vmax] = minmax(V)


% calcul du minimum et du maximum des éléments d’un vecteur V
% Vmin et Vmax : valeurs minimale et maximale du vecteur V
Vmin=min(V) ;
Vmax=max(V) ;

Sous matlab, on exécute les commandes suivantes


>> x=[12 -6.5 2 22 0.51 3.3 4] ;
>> [vinf, vsup] = minmax(x)
>> vinf=-6.5
vsup= 22

Matlab affiche le résultat

Il est à noter que Matlab permet de stocker les données dans différents types de fichiers :
fichiers M, fichiers MAT ou des fichiers textes définis par l’utilisateur.

Pr. Aoufoussi 17

Vous aimerez peut-être aussi