Vous êtes sur la page 1sur 35

RÉPUBLIQUE TUNISIENNE

MINISTÈRE DE L'ENSEIGNEMENT SUPÉRIEUR,


DE LA RECHERCHE SCIENTIFIQUE ET DE LA TECHNOLOGIE

ÉCOLE SUPÉRIEURE D'INGÉNIERIE ET DE TECHNOLOGIE

Filière: Génie Électromécanique


Niveau : 3ème Année

Fascicule d'ateliers

Automatique Continu
(Automatique 1)

Par : Faouzi MAAMAR

Année Universitaire : 2012-2013


Avant Propos

Ce fascicule comporte un ensemble de quatre ateliers pratiques sur le module automatique continu.
Les étdudiants concernés sont principalement :
– Les étudiants des classes 3ème année de la filière Electromécanique (3EM) ;
– Les étudiants des classes 2ème année Tronc Commun (2TC).

La durée globale de ces ateliers est de 21 Heures, l'équivalent de 7 séances dont chacune est de
3Heures.

Pour réussir ces ateliers, chaque étudiant est invité à installer le logiciel Matlab et doit apporter son
propre pc portable dans toutes les séances.

Planning des ateliers :


Atelier Nbr de séances de 3H
Atelier 1 : Initiation à Matlab et Simulink 01 ( 1ère séance)
Atelier 2 : Etude des réponses indicielles et fréquentielles des systèmes 01 ( 2ème séance)
Atelier 3 : Les Correcteurs 02 ( 3ème et 4 ème
séance)
Atelier 3 : Asservissement de la température d'un Four industriel 02 ( 5ème et 6ème
séance)
Examen pratique 01 ( 7ème séance)

Méthode de travail :
Les ateliers sont faites par binôme. A la fin d'un atelier, chaque binôme doit rédiger un compte
rendu décrivant son travail

Evaluation :
La note dans ce module comporte :
– Une note personnelle de contrôle continu au niveau de chaque séance ( Nsi), i=1, ...,6
– Une note de compte rendu (Nc j), i=1, ...,4
– Une note personnelle ( N E) de l'examen pratique qui se déroule dans la 7ème séance

La note finale N se calcule selon la formule suivante :

Σ Nsi ΣNc i
N=0.3N E +0.7 [ + ]
6 4
Atelier 1 : Initiation à Matlab & Simulink

Objectifs :
– Se familiariser avec l’utilisation du logiciel de calcul "MATLAB".
– Introduction à l'outil "SIMULINK" de Matlab.

I Introduction
Matlab est un logiciel de calcul numérique. Ce premier Atelier a pour but de se familiariser avec son
utilisation.

MATLAB (abréviation de " MATrix LABoratory "), est un environnement informatique conçu pour
le calcul matriciel. L'élément de base est une matrice dont la dimension n'a pas à être fixée. Matlab
est un outil puissant qui permet la résolution de nombreux problèmes en beaucoup moins de temps
qu'il n'en faudrait pour les formuler en C ou en Pascal. S'il est parfaitement destiné à l'Automatique
et au Traitement du Signal (traitement numérique des données), sa facilité d'emploi avec des
nombres complexes et ses possibilités d'affichages graphiques en font un outil intéressant pour bien
d'autres types d'applications. De plus, des "Toolboxs" (boîtes à outils) sont disponibles dans de
nombreux domaines (traitement du signal, traitement d'image, automatique, contrôle, logique
floue, ...). Matlab peut être considéré comme un langage de programmation au même titre que C,
Pascal ou Basic.
Il intègre le calcul numérique, la visualisation des résultats, la programmation dans un
environnement ouvert aux développements ultérieurs et il présente la possibilité de créer des
interfaces graphiques afin de fournir à l'utilisateur un espace de travail convivial. Le logiciel
MATLAB est réservé notamment au traitement numérique des signaux, à la modélisation, à la
simulation et à la conception des systèmes numériques complexes. Par contre, sa singularité est
qu’il s’agit d’un langage interprété, c'est-à-dire, que les instructions sont exécutées immédiatement
après avoir été tapées.

II Commandes de MATLAB
Help commande/ toolbox : fournit la syntaxe de la commande et les commandes similaires.

Help fonction : fournit comme aide ce qui a été écrit comme commentaire (précède par %).

Look for commande : affiche toutes les fonctions sous Matlab qui utilise la commande en question.
Dans l'espace de travail fourni par MATLAB, Il n'est pas nécessaire de compiler un programme
avant de l'exécuter.

La réponse est affichée si on ne met pas de point-virgule en fin de ligne. Elle est de plus stockée
dans une variable nommée ans (answer). La plupart des fonctions mathématiques usuelles sont
définies dans Matlab, et ceci sous une forme naturelle (sin, cos, exp, ...). C’est également le cas de
certaines constantes comme ‘pi’ par exemple, « 2* sin (pi/4) ».
II.1 Variables
On peut évidemment indiquer le nom de la variable dans laquelle le résultat doit être stocké
(ce nom doit commencer par une lettre et occuper moins de 19 caractères).
Attention : Matlab distingue les minuscules des majuscules.
• Variable complexe
Matlab travaille indifféremment avec des nombres réels et complexes. Par défaut les variables
i et j sont initialisées à la valeur complexe. Naturellement si vous redéfinissez la variable i ou
j avec une autre valeur elle n'aura plus la même signification.

II.2 Les vecteurs, les matrices et leur manipulation


En fait, toute variable de Matlab est une matrice (scalaire : matrice 1x1, vecteur : matrice
1xN ou Nx1). On peut spécifier directement une matrice sous la forme d'un tableau avec des
crochets, l'espace ou la virgule sépare deux éléments d'une même ligne, les points virgules
séparent les éléments de lignes distinctes.
>> A = [ 1, 2, 3 ; 4, 5, 6 ; 7, 8, 9 ]
Les éléments d'une matrice peuvent être n'importe quelle expression de Matlab :
>> x = [ -1.3, sqrt(3), (1+2+3)*4/5 ]
x = -1.3000 1.7321 4.8000
Pour calculer la transposée d’un vecteur x ou d’une matrice A , il faut écrire
x1 = x’
A1 = A’
Les éléments d'une matrice peuvent ensuite être référencés par leurs indices, on utilise alors
des parenthèses et non des crochets. Le mot-clé end peut être utilisé en indice pour signifier le
dernier élément.
On peut effectuer les opérations d’addition, de soustraction, de multiplication sur les vecteurs
et les matrices, s’ils ont bien sûr les dimensions adéquates, en utilisant les symboles +, -, * .
Le tableau suivant donne quelques fonctions de base pour le calcul matriciel :

Commandes Desription

det calcule le déterminant d’une matrice

trace calcule la trace d’une matrice

inv calcule l’inverse d’une matrice

size détermine la taille d’une matrice

eig permet d’obtenir les valeurs propres et les vecteurs propres d’une matrice

rank calcule le rang d’une matrice

length détermine la longueur d’un vecteur

Pour l'analyse des données, on peut utilisé : min, max, mean, std, sum,
On peut avoir des informations sur la taille d'une matrice:
>> size(x)
>> length(x) % longueur

II.3 Opérations matricielles


Les opérations usuelles sont définies de façon naturelle pour les matrices :
>> 2*A % Produit par un scalaire
>> A*B % Produit de deux matrices (de dimensions cohérentes)
>> A^p % Elève la matrice carrée A à la puissance p
>> inv(A) % Inversion d'une matrice carrée inversible (message d'alerte éventuel)
>> A.*B % Produit élément par élément de deux matrices.
Attention : A*A est différent de A.*A.
>> X = A\B % Donne la solution de A*X = B (équivalent à X = inv(A)*B)
>> X = B/A % Donne la solution de X*A = B (équivalent à X = B*inv(A))
>> X = A./B % Division éléments par éléments

A( :,n) n iéme colonne de A


A.^2 fait le carre des éléments de A.(élément par élément)
Zeros(m,n) : génère une matrice m*n de zéros.
Ones (m,n) génère une matrice m*n de 1.
Eye(m,n) génère une matrice m*n identité.

� M1 M2 �
Pour définir une matrice M = �� � par bloc, il faut d’abord définir les matrices M1,
� M3 M 4 ��
M2, M3 et M4 puis écrire:

M=[M1 M2 ;M3 M4]


Exemple :
A=[2 0;1 3]
B=[1 1;0 5]
C=eye(2)
D=ones(2)
A1=inv(A) (on calcule l’inverse de A)
E=[A B;C D] (c’est une matrice définie par bloc)
size(E) (on calcule la taille de E)
det(E) (pour calculer le déterminant de E)
rank(E) (pour calculer le rang de E)
II.4 Les fonctions arithmétiques
abs : module, sqrt : racine carrée, real : partie réelle, imag : partie imaginaire, angle : la phase,
conj : conjugue.
rem : reste de la division entière, ceil : quotient de la division entière + 1, round: quotient de
la division euclidienne , exp, log, log10.

II.5 L'opérateur " : "


L'opérateur " : ", sous MATLAB, peut être considéré comme l'opérateur d'énumération. Sa
syntaxe usuelle est : « deb:pas:fin ». Il construit un vecteur dont le premier élément est deb
puis deb+pas, deb+2*pas... jusqu'à deb+n*pas tel que deb+n*pas < fin < deb+(n+1)*pas. « : »
est très utile pour construire des signaux.

II.6 Affichage alphanumérique


On peut afficher des chaînes de caractères dans la fenêtre de commande :
>> message = 'bienvenue sur Matlab';
>> disp(message)
Les fonctions sprintf et fprintf existent également (même syntaxe qu'en langage C).
>> fprintf('pi vaut %f\n',pi)
pi vaut 3.141593.
On peut aussi demander des valeurs à l'utilisateur :
>> rep = input ('Nombre d'itération de l'algorithme : ');
Matlab affichera la chaîne de caractère entrée en paramètre et attendra une réponse de
l'utilisateur.

II.7 Affichages graphiques de courbes


Matlab permet un grand nombre de types d'affichage 1D et 2D, seuls les plus courant seront
décrits ici. La commande plot permet l'affichage d'une courbe 1D :
Exemple : On veut tracer la fonction y = sin(t ) entre − π et π . Matlab ne peut
pas calculer sin(t) pour tous les points entre − π et π (il y en a une infinité). Il
faut choisir un nombre fini de points entre − π et π . On peut utiliser la
commande linspace.
t=linspace(-pi,pi,100); (Cette fonction choisit 100 points régulièrement
espacés entre -pi et pi)
On peut aussi définir t de la façon suivante:
t=-pi:0.1:pi; ( cette définition crée un vecteur ligne dont le premier élément est
-pi et les points sont espacés de 0.1, 0.1 est l'incrément)
On calcule ensuite le vecteur y:
y=sin(t);
puis on trace la courbe:
plot(t,y)
On peut tracer une courbe en semilog ou en log avec les fonctions semilogx, semilogy et
loglog. On peut ajouter un titre aux figures ainsi que des labels aux axes avec les commandes
title, xlabel, ylabel:
>> title('Courbe y = sinus(t)')
>> xlabel('t'); ylabel('y')

II.8 Affichage de plusieurs courbes


On peut bien évidemment vouloir afficher plusieurs courbes à l'écran. Pour cela deux
solutions s'offrent à nous :
On peut effectuer plusieurs affichages sur une même figure en utilisant la commande subplot
qui subdivise la fenêtre graphique en plusieurs sous figures.
Sa syntaxe est : « subplot(nombre_lignes,nombre_colonnes,numéro_subdivision) ».
Les subdivisions sont numérotés de 1 à nombre_lignes*nombre_colonnes, de la gauche vers
la droite puis de haut en bas.
>> subplot(3,2,1)
>> plot(t,y)
>> subplot(3,2,2)
>> plot(t,y.^2)
On peut aussi ouvrir une deuxième fenêtre graphique à l'aide de la commande figure. Le
passage d'une fenêtre graphique à une autre pourra alors se faire à la souris ou en précisant le
numéro correspondant dans la commande figure(n). NB : on peut également superposer
plusieurs courbes sur le même référentiel, en utilisant la commande hold on (resp. hold off).
On peut changer la couleur, le type de trait ou le type de marqueur directement à partir des
menus de la figure sans passer par les commandes Matlab. C'est beaucoup plus simple.
Cependant, il est intéressant parfois de le faire directement à partir de Matlab.
♦ Couleur
Couleur symbole

bleu (défaut) b

vert g

rouge r

cyan c

magenta m

noir k

jaune y
♦ Type de trait
Type de trait symbole

trait continu ---

pointillé :

tiret point --

tirets --

♦ Type de Marqeur
Par défaut, Matlab ne met aucun marqueur

Type de marqueur symbole

plus + +

cercle o

astérix *

point .

croix x

carré s

diamant d

triangles ^ , v, > , <

pentagone p

hexagone h

Pour les triangles, on aura un marqueur qui a la forme d'un triangle qui pointe dans la
direction du symbole utilisé.
Exemples (Applications détaillées)
Exemple1:
1. On veut tracer sin(t) et cos(t) sur [0, π] sur la même figure:
t1=linspace(0,pi,30); y1=sin(t1);
t2=linspace(0,pi,20); y2=cos(t2);
(on peut ne pas prendre les mêmes valeurs de t pour les deux courbes)
plot(t1,y1,'r+',t2,y2,':o')
Matlab affiche la courbe de sin(t) en utilisant le marqueur + et la couleur rouge, les points ne
sont pas joints entre eux parce qu'on a pas précisé le type de trait. La courbe cos(t) est tracé à
l'aide de pointillé avec des marqueurs cercle.

2. Un exemple où on précise les trois en même temps:


» plot (t1,y1,'-.+y',t2,y2,':o')
La courbe y1 est tracé avec des tiret-point, en jaune et des marqueurs
‘+’.
• Pour tracer deux courbes sur la même figure, on peut aussi utiliser la commande "hold
on".
plot(t1,y1,'r+')
hold on
plot(t2,y2,':p')
Après qu'on a fini de tracer toutes les courbes dont on a besoin, on peut écrire "hold off" pour
que la prochaine courbe ne se superpose pas aux courbes précédentes.
• La légende d'une figure
On peut rajouter à une figure:
♦ un titre en utilisant la commande title
title('la fonction sin(t) et cos(t)')
♦ un nom à l'axe des abscisses avec la commande xlabel
xlabel('temps (s)')
♦ un nom à l'axe des ordonnées avec la commande ylabel
ylabel('amplitude')
Pour subdiviser une figure en plusieurs sous figures. On utilise la commande subplot.
» subplot(3,2;k)
divise la fenêtre figure en 3 lignes et deux colonnes c.a.d qu'on pourra tracer 6 figure sur cette
fenêtre. k désigne le numéro de la figure courante.
Exemple2 :
t=linspace(0,6,50); y1=sin(t); y2=cos(t); y3=exp(t); y4=exp(-t) ; y5=2*t;
(On vient de définir 5 fonctions)
figure;
subplot(3,2,1); plot(t,y1); title('y=sin(t)');
subplot(3,2,2); plot(t,y2); title('y=cos(t)');
subplot(3,2,3); plot(t,y3); title('y=exp(t)');
subplot(3,2,4); plot(t,y4); title('y=exp(-t)');
subplot(3,2,5); plot(t,y5); title('y=2*t');

II.9 Génération des signaux


Construire la fonction échelon : stem (ones (m,n))
Construire la fonction rectangulaire : stem ([ones(m,n) zeros(m,n)])

II.10 Création du Fichier .m


Les fichiers .m permettent le sauvegarde d’un ensemble de commandes et leur exécution.
Ils permettent d’écrire et de sauvegarder des fonctions.

III Application
Gréer un fichier .m qui permet de calculer la fonction sinusoïdal.
function y= sinusoide(pas,long, per)
t=[0 :pas :long]
y=sin (2*pi*1/per*t)
plot (y)
xlabel(‘temps’)
ylabel(‘y(t)’)
nom=sprintf(‘fonction sunisoidale de periode%i de longueur%i’,per,long)
IV Introduction à SIMULINK
Voir Annexe 1

V Fonction de transfert sur MATLAB


Voir Annexe 2
Atelier 2 : Etude des réponses indicielles et fréquentielles des systèmes

Objectifs
– Etude de la réponse indicielle d'un système de premier ordre et celle d'un système de second
ordre.
– Etude de la réponse fréquentielle d'un système du premier ordre et celle du second ordre.

Partie A
I Etude de la réponse indicielle d'un système de premier ordre
La fonction de transfert d’un système du premier ordre est donnée par :

K
H (s)=
1+ Ts

avec : s l’opérateur de Laplace, K et T sont respectivement le gain statique et la constante


de temps du système.

On veut étudier la réponse du système à l'échelon e (t)=U 0 u (t) ( échelon d'amplitude U0 ).

1. En utilisant Simulink, vérifier que la réponse du système a la forme suivante :

On prendra, par exemple, K=2 , T =0.7 et U 0=3

2. Vérifier que :
• la valeur en régime permanent y (∞) est égale à K.U 0 .
• pour t=T , y (t) atteint 63% de la valeur en régime permanent.
• le temps de réponse à 5% est t r≃3T .

I I Réponse fréquentielle d’un système du premier ordre


La fonction de transfert d’un système du premier ordre est donnée par :

K
H (s)=
1+ Ts

avec : l’opérateur de Laplace. K et T sont respectivement le gain statique et la constante de


temps du système.
On prendra K=3 et T=0.2.
1. Tracer sur Matlab les diagrammes de Bode pour ω ∈ [ 0.02, 200] .
2. Vérifier que pour ω = 0 , on a |H|dB = 20 log (K).
3. Mesurer la pulsation de coupure.
4. Vérifier que pour w >> 1/ T , on a une asymptote de pente -20 dB/décade.
5. Vérifier que pour w = 1/ T , la phase de H(i ω ) est de -45°.
6. Pour les valeurs suivantes de ω , w = 0, 1, 2, 5, 10 et 100 rad/s , mesurer les valeurs de
|H|dB et de Arg(H).
7. Tracer sur Matlab le lieu de Black.

Partie B

I Etude de la réponse d'un système du deuxième ordre à un échelon


La fonction de transfert d’un système du second ordre est donnée par :
K wn2
H (s) =
s 2 + 2 ξ ωn s + wn2
avec ξ le coefficient d'amortissement et ω n la pulsation propre non amortie du système.
On veut étudier la réponse du système à l’échelon u(t)=U0 �(t) selon la valeur de ξ .
On prendra K=1, ω n = 1 rad/s et U0 = 8.

I.1 Etude de la réponse lorsque ξ > 0


On distinguera deux cas : 0 < ξ < l et ξ � l.

a) Premier cas : 0 < ξ < 1


Pour les différentes valeurs de ξ = 0.3, 0.5 et 0.8,
• Tracer la réponse indicielle du système.
• Vérifier que la valeur en régime permanent y(�) est égale à KU0.
• Déterminer graphiquement le temps du premier pic tpic, le temps de montée tm et le
temps de réponse tr à 5%.
π 3
• Vérifier que t pic = et tr ≈ pour ξ �0.69.
ωn 1 − ξ 2 ξ ωn

� −π ξ �
• Déterminer le dépassement D en % et vérifier que D % = 100 exp � �.
� 1−ξ 2 �
� �

b) Deuxième cas : ξ � 1

Pour la valeur de ξ = 1, 1.3.

• Tracer la réponse du système à l'échelon u(t).


• Vérifier que la valeur en régime permanent y(�) est égale à KU0.
• Déterminer graphiquement le temps de montée tm et le temps de réponse à 5% tr.
• La courbe présente-t-elle un dépassement.
c) Conclusion

I.2 Etude de la réponse lorsque ξ = 0


Tracer la réponse du système lorsque ξ = 0. Conclure.

I.3 Etude de la réponse lorsque ξ < 0


a) Premier cas : - 1 < ξ < 0.

Pour ξ = -0.5, tracer la réponse indicielle du système. Conclure.

b) Deuxième cas : ξ � -1.

Pour ξ = -1.4, tracer la réponse indicielle du système. Conclure.

II Réponse fréquentielle d’un système du premier ordre


La fonction de transfert d’un système du second ordre est donnée par :
K wn2
H (s) =
s 2 + 2 ξ ωn s + wn2
avec ξ le coefficient d'amortissement et ω n la pulsation propre non amortie du système.

On prendra K=2 et ωn = 1 rad/s .


On veut étudier la réponse fréquentielle pour ξ > 0 .

2
1. Pour 0 < ξ <
2
Pour les valeurs de ξ = 0.4, 0.2 et 0.1
a. Tracer les diagrammes de Bode.
b. Vérifier que la courbe de Bode d'amplitude présente une résonance. Mesurer la
pulsation de résonance et le facteur de résonance en dB.
c. Vérifier que pour ω >> ω n on a une asymptote de pente -40 dB/décade.
d. Vérifier que pour ω = ωn , la phase de H(i ω ) est de -90°.
Conclusion : vérifier qu'on a une résonance d'autant plus importante que ξ est faible.
e. Tracer le lieu de black. Préciser les points qui correspondent à ω =0, ω r et ω n .
2
2. Pour ξ �
2
Pour les valeurs ξ = 0.707 et 1.2 ,

a. Tracer les diagrammes de Bode.


b. Mesurer la pulsation de coupure.
c. Vérifier que pour ω >> ω n on a une asymptote de pente -40 dB/décade.
d. Vérifier que pour ω = ω n , la phase de H(i ω ) est de -90°.
e. Tracer le lieu de black. Préciser les points qui correspondent à ω =0 et ω n .

NB : Voir annexes 2 et 3.
Atelier 3 : Les Correcteurs

Objectifs
– Etude de la stabilité et de la précision statique d'un système.
– Correction d'un système afin d'améliorer ses performances.

Enoncé
On considère un système dont la fonction de transfert est donnée par :

7
H ( p)=
(1+T 1 p)(1+T 2 p)(1+ T 3 p)
avec T 1 =100ms , T 2 =10ms et T 3 =2ms .

On veut converger la sortie y (t) du système vers la consigne y c (t) appliquée à l’entrée.

Partie A : Sans correcteur


On réalise le schéma fonctionnel suivant :

1. Tracer le lieu de Black de la FTBO : H ( p) . Mesurer la marge de phase.


2. Déterminer, avec le calcul, l'erreur statique (l'erreur en régime permanent) lorsque la consigne est
l'échelon au(t) .
3. Câbler sur Simulink le schéma précédent. On prendra a=1 pour la consigne. Dans Simulation
Parameters, on utilisera les paramètres suivants :
- Stop time : 0.5 (un temps de simulation de 0.5s est suffisant).
- Max step size : l e-3 (On impose à Simulink de ne pas dépasser un pas de simulation de 10-3s).
4. Tracer la sortie y(t). Mesurer l'erreur en régime permanent.

Partie B : Régulation avec correcteur P


On veut obtenir une erreur statique inférieure ou égale à 3% de a .On introduit dans la suite un
correcteur C(p) dans la boucle d'asservissement :
yc (t ) y (t )

On choisit d'abord un correcteur Proportionnel (P) : C(p) = Kc. La FTBO corrigée


Tc1(p)=C(p) H(p).

1. Déterminer le gain Kc.


2. Câbler sur Simulink le schéma précédent. Pour le correcteur, on utilisera le bloc PID
Controller. Tracer la sortie y(t). Mesurer l'erreur en régime permanent. Conclure.
3. Tracer sur la même figure le lieu de Black de H(p) et celle de la FTBO corrigée Tc1(p).
Repérer sur les deux courbes les points qui correspondent à ω = 0; 28.8 et 87.8 rad/s.
4. En déduire que pour obtenir le lieu de Black de Tc(p), il suffit de translater
verticalement celui de H(p) de 20 log(Kc).
5. Mesurer la nouvelle marge de phase. Conclure.

NB : voir annexe 4.

Partie C : Régulation avec correcteur PD


On désire améliorer la marge de phase en utilisant un correcteur PD de la forme :
C ( p ) = K c (1 + Td p )
On gardera la valeur précédente de Kc. On prend Td = 0.004 s.
1. Tracer le lieu de Black de la FTBO corrigée Tc 2 ( p ) = C ( p ) H ( p ) . Mesurer la marge
de phase. Conclure.
2. Déterminer avec le calcul l’erreur statique. Vérifier la valeur trouvée en traçant la
réponse indicielle avec Matlab.

3. Etude de l’apport du terme (l + Td p)

3.1. Tracer les diagrammes de Bode de C0 ( p ) = 1 + Td p pour ω variant de 10 à 2000


rad/s. Compléter le tableau suivant :

ω (rad/s) Arg(C0) (degrés) C0 dB

100

250

1000
1
Vérifier que pour ω = , on a |C0|dB = 3dB et Arg(C0) = 45° .
Td

3.2. Tracer sur la même figure les lieux de Black de Tc1 ( p ) = K c H ( p ) et de


Tc 2 ( p ) = K c (1 + Td p ) H ( p ) . On précise que : Tc 2 ( p ) = (1 + Td p ) Tc1 ( p ) .
3.3. Repérer sur les deux courbes les points correspondants à ω = 100, 250 et 1000 rad/s .
Indiquer par des flèches le sens de déplacement de ces points du lieu de Back de Tc1(p) vers
celui de Tc2(p).
Vérifier, à partir de ces points, qu'on a :
�� Tc 2 dB = Tc1 dB + C0 dB

� Arg (Tc 2 ) = Arg (Tc1 ) + Arg ( C0 )

Partie D : Régulation avec correcteur PI

On privilégie maintenant une erreur statique nulle. On choisit un correcteur PI de la forme :

� 1 �
C ( s ) = Kc �1 + �
� Ti s �
On prend Kc=l et Ti=0.1 s.

1. Calculer la FTBO corrigée Tc 3 ( p ) = C ( p ) H ( p ) . En déduire que cette valeur de Ti


permet de compenser le pôle lent de H(s).
2. Vérifier que ce correcteur apporte une intégration à la FTBO corrigée
Tc3 ( s ) = C ( s ) H ( s ) . En déduire qu'on aura une erreur statique nulle.
3. En utilisant Simulink, tracer la réponse indicielle du système asservi. Pour obtenir un
correcteur PI, il suffit de mettre dans les champs Proportional, Intégral et Derivative
du bloc PID respectivement les valeurs : Kc, Kc /Ti et 0. En effet :
KI
C ( p) = K p + K d p +
p
avec Kp=Kc, KD=0 et K I=Kc / TI . Vérifier qu'on obtient une erreur en régime permanent
nulle.

� 1 �
4. Etude de rapport du terme �1 + �.
� Ti s �
� 1 �
4.1. Tracer les diagrammes de Bode de C0(s) = �1 +
� T s ��
. pour � variant de 1 à 100
� i �

rad/s. Compléter le tableau suivant :


ω (rad/s) Arg(C0) (degrés) C0 dB

100

250

1000

1
Vérifier que pour ω = , on a |C0|dB = 3dB et Arg(C0) = 45° .
Td

4.2. Tracer sur la même figure les lieux de Black de T (s) = H (s) et de
� 1 � � 1 �
Tc3 ( s ) = � 1 + � H ( s ) . On précise que Tc3 ( s ) = � 1 + � T ( s ) . Repérer sur les deux
� Ti s � � Ti s �
courbes les points correspondants à � = 1; 10 et 25 rad/s. Indiquer par des flèches le sens de
déplacement de ces points du lieu de Back de T(s) vers celui de Tc3(s).
4.3. Vérifier, à partir de ces points, qu'on a :
�� Tc3 dB = T dB + C0 dB

� Arg (Tc3 ) = Arg (T ) + Arg ( C0 )

NB : voir annexe 4.
Atelier 4 : Asservissement de Température d’un Four

Enoncé
La régulation de température d’un four industriel est assurée par l’intermédiaire d’un ensemble
moteur électrique vanne permettant de commander le débit du combustible liquide
injecté dans les brûleurs.
Le schéma global de régulation est le suivant :

avec la fonction de transfert du moteur électrique est décrite par :

Km
, où K m=0.5 et T m=1s .
p( 1+T m ) p
KF
La fonction de transfert du four est décrite par : , où K F =400 et T F =100s
1+T F p

Tc Tension représentative de la température de consigne élaborée par l’intermédiaire d’un


potentiomètre de gain,
V Température de consigne
U Signal de consigne du moteur électrique
θm Position angulaire de l’arbre de sortie du moteur électrique
C( p) Correcteur

A Amplificateur de gain variable


Kq gain exprimant que le débit de combustion liquide est proportionnel à la position
angulaire avec ,

Kp gain du capteur de position angulaire de

Kc gain du capteur de température de 0.1/°C

1. Ecrire un programme M-File qui comporte toutes les données ci-dessous.


θ ( p)
2. Déterminer la fonction de transfert m .
U ( p)
3. Calculer la valeur limite du gain A de telle sorte que la réponse θm ( t ) à un échelon
U ( t ) ne présente pas de dépassement ( ξ ≥ 1) , (on conservera la valeur limite du gain
A pour la suite du problème). Tracer la réponse indicielle de θm ( t ) .
θm ( p )
4. Montrer que la fonction de transfert peut se mettre sous la forme :
U ( p)

θm ( p ) K
=
U ( p) (1 + T p )2
Justifier votre réponse.
5. On choisit dans une première étape un correcteur Proportionnel (P) : C ( p ) = K .
T ( p)
5.1. Donner la fonction de transfert globale du système : .
Tc ( p )
5.2. Déterminer la condition de stabilité portant sur le gain K à partir du tracé du
diagramme de Bode en boucle ouverte du système :
F ( p) θm ( p ) T ( p)
FTBO = = C ( p) Kq Kc
ε ( p) U ( p) Q ( p)
pour w = 0.1, ...,50 .
5.3. A l’aide du Critère de Routh (Fonction de transfert en boucle fermée), retrouver la
condition de stabilité, gain K , déterminée dans la question 5.2.
5.4. Exprimer en pourcentage l’écart en régime permanant ε ( +∞ ) lorsque le gain K
vaut la moitié de la valeur limite déterminée précédemment (le signal d’entrée Tc ( p )
est un échelon de gain 100 o C ). Tracer dans ce cas l’évolution de T ( p ) en fonction
de Tc ( s ) .
6. On considère un correcteur Proportionnel Dérive (PD) : C ( p ) = K (1 + Td p ) .
6.1. On compense la constante de temps la plus grande, montrer que le système asservi
est un système du second ordre dont on déterminera ses coefficients.
6.2. Calculer le paramètre K de ce correcteur afin d’obtenir un dépassement de
ξ = 0.59 lorsque le signal d’entrée Tc ( p ) est un échelon.
6.3. Donner l’instant de ce premier dépassement.
7. On propose un troisième type de correcteur, Proportionnel Intégral Dérive (PID), de la
K
forme : C ( p ) = (1 + Td p ) , ajuster les paramètres de ce correcteur pour avoir de
Ti s
bonnes performances sur le système.
π
Temps du premier dépassement : TD1 = .
2
wn 1 − ξ
ANNEXES 1
INTRODUCTION A SIMULINK
MATLAB est l’outil de référence pour la simulation numérique, notamment en ce qui
concerne l’automatique. Il offre des possibilités avancées que ce soit en matière
d’identification ou de commande. Il permet, de manière plus générale, de résoudre une grande
diversité de problèmes de simulation, dans des domaines aussi variés que le traitement du
signal.
SIMULINK est un outil qui permet la modélisation et la simulation de systèmes dynamiques
linéaires ou non linéaires. Ces systèmes peuvent être continus ou discrets.
Pour lancer Simulink, il faut cliquer sur l'icône :

La fenêtre suivante s'ouvre :


Description de Simulink
Il y a plusieurs bibliothèques dans Simulink. On peut citer par exemple :
• Sources : pour générer différents types de signaux.
• Sinks : pour la visualisation des signaux.
• Math : contient plusieurs fonctions mathématiques.
• Continuous : contient des fonctions de transfert continus.
• Signal Routing: facilite la manipulation et l’utilisation des différents signaux élaborés
lors de la simulation.

� La bibliothèque Sources :
Chaque élément de cette bibliothèque indique le type du signal qu'il génère. Nous allons voir
les blocs suivants :
• Le bloc Constant permet de générer un signal constant.
• Le bloc Step permet de générer un échelon. Dans ce bloc, il y a trois champs à remplir
:
- Step time : l'instant du saut.
- Initial value : la valeur initiale.
- Final value : la valeur finale.

Par exemple pour obtenir l'échelon unitaire, il faut prendre les valeurs suivantes:
- Step time : 0
- Initial value : 0
- Final value : 1
• Le bloc Ramp permet de générer une rampe. Il y a trois champs à remplir:
- Slope : la pente de la droite.
- Start time.
- Initial output.

Pour obtenir une rampe unitaire, il faut pendre les valeurs suivantes:
- Slope: 1
- Start time: 0
- Initial output: 0

• Le bloc Sine Wave permet de générer un signal sinusoïdal. Les quatre champs
Amplitude, Bias, Frequency et Phase permettent de fixer les paramètres du signal. La
formule appliquée est la suivante :
y = Amplitude * sin(Frequency * t + Phase) + Bias

� La bibliothèque Sinks
Les éléments de cette bibliothèque permettent de "visualiser" les signaux obtenus par la
simulation. On citera deux éléments:
• Scope

Ce bloc permet de tracer l'évolution d'une variable d'un modèle Simulink. C'est utile par
exemple pour voir la sortie d'un système après une simulation.
• Display

Ce bloc permet d'afficher les valeurs d'une variable au cours de la simulation.


• To Workspace: Ce bloc permet de récupérer un signal dans un modèle Simulink et de
le mettre dans l'espace de travail Matlab.
En cliquant sur cet élément, une fenêtre s’ouvre. La variable porte le nom « simout ». On peut
changer ce nom. Dans le champ save format , il est plus simple de choisir « array ».

� La bibliothèque Math
Cette bibliothèque contient des fonctions mathématiques. On cite par exemple le bloc sum,
son symbole est : .
Ce bloc contient un seul champ à remplir. Lorsqu’on le remplit avec + - , on obtient un
comparateur.

Construction d’un modèle


II faut d'abord ouvrir un nouveau modèle en cliquant sur l'icône blanc (voir première page
de l'annexe) ou à partir du menu de la fenêtre Simulink: File puis New et ensuite Model.
Pour construire un modèle, il faut glisser les différents éléments dont on a besoin des
bibliothèques vers la fenêtre du nouveau modèle. Ensuite, on les relie entre eux à l'aide de
la souris.

Lancement d’une simulation


Avant de lancer une simulation, il faut fixer les paramètres de la simulation. Dans le menu
de la fenêtre du modèle, cliquer sur simulation puis simulation parameters, la fenêtre
suivante s'ouvre :

Remarque : si on a une fenêtre différente, il faut cliquer sur "solver" qui se trouve dans
la première ligne de la fenêtre.
Il faut préciser les valeurs de :
- Start time : l'instant du début de la simulation.
- Stop time : l'instant final.
- Solver options : pour les tous les TP, on garde toujours les options :
Variable step et ode45(Donnand Prince).
La valeur par défaut de Max step size est auto (Dans ce cas, Matlab fixe tout seul un pas de
simulation maximum). Il est intéressant parfois d'imposer à Matlab un pas de simulation à ne
le pas dépasser.
Remarque : Si on choisit un pas de simulation trop petit, ceci pourrait augmenter
énormément le temps de simulation.
• Ensuite on lance la simulation en cliquant sur l'icône suivant :

On peut aussi lancer la simulation à partir du menu : simulation puis start.

Nous intéressons dans les sciences de TP à la bibliothèque Continuous.


Transfer Fcn : Ce bloc permet de définir une fonction de transfert en rentrant les coefficients
du numérateur et du dénominateur. En double-cliquant sur l'icône de ce bloc, une fenêtre
s'ouvre où il y a deux champs à remplir: Numerator et Dénominator. Il faut mettre
respectivement les coefficients du numérateur et du dénominateur de la fonction de transfert
dans ces champs.
Zéro-Pôle : Ce bloc permet de définir une fonction de transfert en rentrant les zéros et les
pôles. Elle est équivalente à la commande zpk de Matlab. Il faut remplir les champs Zéros,
Pôles et Gain. Le champ Gain correspond au coefficient k de la commande zpk.
Integrator : Ce bloc permet de réaliser une intégration.
Transport delay: ce bloc permet d'introduire un retard pur. La durée du retard doit être
indiquée dans le champ Time delay.
Derivative : ce bloc permet de calculer la dérivée d’un signal.
ANNEXE 2
FONCTION DE TRANSFERT

• Dans M-FILE

II y a plusieurs méthodes pour définir une fonction de transfert dans M-File de Matlab :

• A partir du numérateur et du dénominateur :


Utiliser la commande tf.
s2 + s
Exemple : Soit H ( s ) = , on définit le numérateur num et le dénominateur
s3 + 2 s 2 − 7 s + 3
den :
num=[l 1 0] ;
den=[l 2 -7 3] ;
% Ce sont les coefficients des polynômes du numérateur et du dénominateur.
Puis, on définit le système H grâce à la commande tf :
H= tf(num, den)
% On ne met pas le point-virgule pour afficher la fonction de transfert.
Ou encore : H=tf ([l 1 0], [l 2 -7 3]).
• A partir des pôles et des zéros de la fonction de transfert:
Utiliser la commande zpk.
( s − 0.45) ( s − 0.8)
Exemple: Soit H ( s ) = 3 , on définit alors le vecteur suivant :
( s − 1) ( s − 0.7) ( s − 0.2)
zeros = [0.45 0.8]; % les valeurs qui annulent le numérateur
pôles = [1 0.7 0.2]; % les valeurs qui annulent le dénominateur
k = 3; % le coefficient devant la fraction
H=zpk(zeros,poles,k)

• Pour définir une fonction de transfert du second ordre


K wn2
H (s) =
s 2 + 2 ξ ωn s + wn2
à partir du facteur d'amortissement ξ , et de la pulsation propre non amortie ωn , on utilise la
commande ord2.
Exemple :
Xi = ; (le facteur d'amortissement)
Wn = ;
[numl,denl]=ord2(Wn,Xi)

• Avec la version Matlab 7.0. on peut définir directement une fonction de transfert en utilisant
la commande tf et en procédant de la façon suivante (on reprend l'exemple l):
s=tf(‘s’) (pour définir la variable s )
(Puis on écrit directement l'expression de la fonction de transfert)
H=(s^2+s)/(s^3+s^2-s+3)

Détermination des paramètres caractéristiques d'une fonction de transfert


A partir d'une fonction de transfert définie dans Matlab, on peut obtenir ses pôles et ses zéros.
• Pour obtenir les pôles de la fonction de transfert : utiliser la commande pôle, pole(H).
• Pour obtenir les zéros de la fonction de transfert, utiliser la commande zéro.

Réponses temporelles d’une fonction de transfert


• Pour obtenir la réponse impulsionnelle, on utilise la commande impulse, impulse(H).
• Pour obtenir la réponse indicielle, on utilise la commande step, step(H).
Si on veut imposer l’instant final de simulation Tfinal, il faut écrire : step(H, Tfinal).

Analyse fréquentielle d’une fonction de transfert


• Pour tracer les diagrammes de Bode, on utilise la commande bode, bode(H).
La commande bodemag permet d'obtenir uniquement le diagramme de Bode d'amplitude,
bodemag(H).
• Pour tracer le lieu de Black, on utilise la commande nichols, nichols(H).
Pour afficher l'abaque de Black avec le lieu de Black d'une fonction de transfert H, il faut
écrire
nichols(H) (puis on rajoute)
ngrid
• Pour tracer le lieu de Nyquist on utilise la commande nyquist, nyquist(H).
ANNEXE 3
REPONSE INDICIELLE
Lorsque la réponse indicielle d'un système tend vers une constante pour t assez grand, on peut
définir les paramètres suivants :

a. Le temps de réponse à 5%, qu'on note tr, est le temps mis par le système pour que la sortie
y(t) rentre dans la zone de [95 %; 105 %] de la valeur en régime permanent y(�) et n'en
ressort plus. Nous donnons deux exemples ci-dessous :

b. Le temps de montée tm est le temps nécessaire pour passer de 10% à 90% de la valeur en
régime permanent.
c. Si la réponse présente des oscillations amorties (avec une amplitude qui décroît),
on peut aussi définir
• tpic : l'instant du premier dépassement.
y (t pic ) − y (∞)
• Le dépassement D en % : D% = ×100
y (∞ )
ANNEXE 4

On considère le système asservi suivant :

Yc(s) Y(s)
H(s)
+

On appelle la fonction de transfert en boucle ouverte (qu'on notera FTBO) T(s)=H(s). Si le


système asservi à la forme suivante :

Yc(s) Y(s)
H1(s) H2(s)
+

alors la FTBO est T(s)=H1(s) H2(s).

• Pour étudier la stabilité du système asservi (de la boucle fermée), on peut tracer le
lieu de Black de la FTBO T(s). On étudie la position du lieu de Black de T(s) par
rapport au point de coordonnées (-180°; 0 dB) qu'on appelle le point critique :

Le système asservi doit être stable. Dans la pratique, on ne se contente pas d'avoir un système
stable mais on veut avoir aussi des marges de sécurité. Le lieu de Black doit donc passer loin
du point critique. On définit la marge de phase M� = 180° + Arg(T(i ω 0)) où ( ω 0 est la
pulsation pour laquelle |T|dB = 0dB (le point où le lieu de Black coupe l’axe des abscisses).
Exemple :

M�
T dB

Point critique

Arg(T)
-180 ° -120 °

Point correspondant à �0

M� = 180° + Arg(T(i ω 0))=180° + (-120° ) = 60°. On impose dans la pratique d’avoir une
marge de phase comprise entre 45° et 60°.
• L'erreur statique:
L'erreur �(t) est l’écart entre la consigne yc(t) et la sortie y(t): s(t) = yc (t)- y(t).

L'erreur statique est Ferreur en régime permanent: �(�). On a le résultat suivant: Lorsque
la consigne yc(t) est un échelon a �(t) :

a
• Si T(s) ne présente pas d'intégration alors �(�)= avec K0=lims�0 T(s).
1+ K0
• Si T(s) présente une intégration alors s(�) ==0 (l’erreur est nulle).

Exemples :
1 1
1) T(s) = T ( s ) = . Il y a une intégration (T(s) contient le terme ) donc s(�)=0.
s(s + 2) s
1
2) T ( s ) = . Il n'y a pas d'intégration dans T(s), on obtient que K0 = 0.5 donc
(s + 2)
a
S (∞) = = 0.66 a .
1.5

• Le bloc PID Controller de Simulink


Ce bloc se trouve dans la bibliothèque Simulink Extras, dans la partie Additional Linear. Ce
bloc représente le correcteur PID qui est très utilisé dans la pratique. Le correcteur PID a pour
K1
FT: C(s) = Kp + KD S + . Il y a trois paramètres Kp, KD , K1 qui sont respectivement les
s
gains Proportionnel, Dérivé et Intégral. Remarquons que pour obtenir un correcteur P
(proportionnel): C(s) = Kc, il suffit de mettre dans le champ Kp la valeur de Kc et dans KD et
K1 la valeur 0.

• On peut faire dans Matlab le produit de deux FT. Par exemple, on peut définir d'abord les FT
: Cs et Hs puis écrire: T1=Cs * Hs
• Pour tracer les lieux de Black de H1(s) et H2(s) sur la même figure, il faut écrire:
nichols(Hsl,Hs2)
• Dans Matlab, la fonction logarithme décimal est : log10.

• Notion de Pôle lent

Soit y(t) la réponse indicielle du système H(s) c.à.d. la sortie qu'on obtient lorsque l'entrée u(t)
est l'échelon unité:

On trouve que y(t) = 7 -7,94e-t/T1 + 0.97 e-t/T2 – 0,035 e-t/T3 . Ainsi y(�) = 7.
Les trois termes e--t/T1 =e-10t, e-t/T2 =e-100t et e-t/T 3 =e-500t tendent vers 0.
Mais le premier terme tend moins vite vers zéro que les deux derniers. Le pôle -1/T1 est donc
le pôle lent (A cause de ce pôle, le système va mettre plus de temps pour atteindre la valeur
y(�)=7).
Nom du document : Fascicule Régulation SL
Répertoire : D:\ESTI_2011_2012\Proposition TP Régulation
Modèle : C:\Users\hp\AppData\Roaming\Microsoft\Templates\Normal.dotm
Titre : I
Sujet :
Auteur : detente
Mots clés :
Commentaires :
Date de création : 21/09/2012 10:05:00
N° de révision : 11
Dernier enregistr. le : 24/09/2012 12:24:00
Dernier enregistrement par : hp
Temps total d'édition : 15 Minutes
Dernière impression sur : 24/09/2012 12:24:00
Tel qu'à la dernière impression
Nombre de pages : 40
Nombre de mots : 7 508 (approx.)
Nombre de caractères : 41 300 (approx.)

Vous aimerez peut-être aussi