Vous êtes sur la page 1sur 25

Agadir 2021-2022

Commande Numérique - Exercices d’application du cours

Exercice 1: Calculer la transformée en Z de la fonction x(t) définie par le graphe de figure 1,


1.5

x(t)

0.5

0
0 1 2 3 4 5 6 7 8 9 10
t

Figure 1: Fonction x(t)

Exercice 2: Calculer la transformée en Z du signal x(t) décrit par le schéma de la figure (2) dans les cas suivants:
1. La période d’échantillonnage Te = 1s
2. La période d’échantillonnage Te = 2s
3. La période d’échantillonnage Te = 4s

x(t)

3a

2a

t
0 4 8 12 16

Figure 2: Schéma définissant la fonction x(t)

Atmane BADDOU - ENSA d’Agadir 1


Exercice 3: On considère le système décrit par la fonction de transfert,

α
G(p) = , α ∈ R.
p+1

1. Établir les modèles discrets de ce système (fonction de transfert et équation récurrente) pour Te = 1.
2. Même question lorsque ce système est bouclé par un retour unitaire.

Exercice 4: En utilisant la transformée en Z, trouver la solution de l’équation récurrente suivante:

f (k) − 0.7f (k − 1) + 0.12f (k − 2) = (0.6)k λ(k).

La période d’échantillonnage Te = 1s, λ(k) désigne la fonction échelon.

Exercice 5: On considère le système décrit par la fonction de transfert échantillonnée,


αz + β
R(z) =
z 2 + βz + α
où α et β sont des constantes réelles.
1. Sur un graphe (β en fonction de α par exemple), tracer la zone de variation de α et β qui assure la stabilité
de R(z).
2. Le système est bouclé comme indiqué sur le schéma de la figure (3). Sur un graphe ( β en fonction de α par
exemple), tracer la zone de variation de α et β qui assure la stabilité du système bouclé.


   

Figure 3: Schéma du bouclage

Exercice 6: Soit un système discret décrit par l’équation récurrente suivante:

y(k) = 0, 9y(k − 1) − 0, 2y(k − 2) + 0, 3u(k − 1) + 0, 3u(k − 2)

1. Est ce que ce système est causal ?


Y (z)
2. Calculer la transmittance G(z) = U(z)

3. Calculer sa réponse impulsionnelle


4. Déduire sa réponse indicielle à partir de la question (3) et vérifier ce résultat en utilisant le calcul direct.

Exercice 7: On considère le système décrit le polynôme caractéristique,

P (z) = z 2 + (β − 0.75)z − 0.25

Atmane BADDOU - ENSA d’Agadir 2


1. Appliquer le critère du jury pour déterminer l’intervalle de variation de β qui assure la stabilité du système.
2. Retrouver ce résultat par application du critère de Routh.

Exercice 8: On considère le système continu décrit par la l’équation différentielle,


dy(t)
+ dy(t) = 2u(t) (1)
dt
u(t) et y(t) désignent l’entrée et la sortie du système, respectivement. Les conditions initiales sont supposées nulles.
Le système est échantillonné en présence d’un bloqueur d’ordre zéro (La période d’échantillonnage Te = 1s).
1. Justifier que le choix de Te = 1s respecte le théorème de Shannon ?
2. Trouver la fonction de transfert G(p) du système analogique et en déduire la fonction de transfert échantillonnée
G(z) du système (2).
3. Déterminer la réponse de G(z) à une impulsion.
4. Déterminer la réponse de G(z) à un échelon unitaire.
5. On se propose d’asservir la sortie du système en le corrigeant comme indiqué sur le schéma de la figure
(4) en utilisant un correcteur R(z), résultat de la discrétisation d’un correcteur analogique R(p) en utilisant
l’approximation arrière.
(a) Dans le cas où R(p) = kp , où kp est une constante réelle,
i. Trouver la fonction de transfert H(z) du système ainsi bouclé.
ii. Étudier la précision du système ainsi bouclé (déterminer εp et εv ) ?
iii. Trouver la condition sur kp pour que le système bouclé soit stable.
Kp
(b) Dans le cas où R(p) = p , où kp est une constante réelle,
i. Trouver la fonction de transfert F (z) du système ainsi bouclé.
ii. Refaire l’étude de la précision du système bouclé (déterminer εp et εv ).
iii. Trouver la condition sur kp pour que le système bouclé soit stable.



 

Figure 4: Schéma du bouclage sur le correcteur R(z)

Exercice 9: On considère l’équation récurrente suivante:

y(k) = ay(k − 1) + bu(k − 1)

1. Analyser la stabilité du système en fonction des paramètres a et b en étudiant sa fonction de transfert D(z).
2. Calculer sa réponse indicielle pour a = 0, 8 et b = 0, 2. Vérifier les valeurs initiales et finales de cette réponse.
Que vaut le gain statique ?
3. on considère une équation récurrente supplémentaire dans laquelle u(k) est donné par u(k) = k0 (y r (k)−y(k));
y r (k) est un signal discret de consigne. Écrire l’équation aux différences du système résultant (reliant y(k)
et y r (k)), et déduire la fonction de transfert associée, soit FTBF(z).
4. Calculer la valeur de k0 qui assure un pôle en z = 0 à ce processus discret. Que devient FTBF(z) pour cette
valeur ?

Atmane BADDOU - ENSA d’Agadir 3


5. Au cours de la réponse à un échelon unité du système ainsi réglé, calculer et représenter les signaux discrets
y r (k), u(k) et y(k) pour k = 0, 1, 2, 3.

Exercice 10: On souhaite modéliser l’évolution du cheptel d’un éleveur de bovins. Soit,
• x1 (k) le nombre de vaches de un an
• x2 (k) le nombre de vaches de deux ans
• x3 (k) le nombre de vaches de trois ans et plus
Ces valeurs représentent des nombres moyens au cours de l’année k.
Les vaches de 1 an ne se reproduisent pas. Les vaches de deux ans produisent en moyenne 0,8 veau par an, celles
de trois ans et plus produisent en moyenne 0,4 veau par an. D’autre part, seules celles de trois ans et plus meurent
de causes naturelles avec un taux moyen de 30% par an.
Enfin l’éleveur s’autorise à acheter ou vendre uniquement des vaches de trois ans et plus. Soit u(k) le nombre de
vaches achetées (u(k) > 0) ou vendues (u(k) < 0 au cours de l’année k.
1. Établir les équations récurrentes de ce système en prenant pour sortie le nombre total de vaches au cours de
l’année k.
Y (z)
2. En déduire la fonction de transfert G(z) = U(z)

3. En déduire l’équation récurrente qui relie uniquement les entrées et les sorties du système.

Exercice 11: On considère le système continu décrit par la l’équation différentielle,

d2 y(t) dy(t)
2
+2 = 2u(t) (2)
dt dt
u(t) et y(t) désignent l’entrée et la sortie du système, respectivement. Les conditions initiales sont supposées nulles.
Le système est échantillonné en présence d’un bloqueur d’ordre zéro (La période d’échantillonnage Te = 1s).
1. Trouver la fonction de transfert échantillonnée G(z) du système (2).
2. Déterminer la réponse de G(z) à une impulsion.
3. Déterminer la réponse de G(z) à un échelon unitaire.
4. On se propose d’asservir la sortie du système en le corrigeant comme indiqué sur le schéma de la figure
(4) en utilisant un correcteur R(z), résultat de la discrétisation d’un correcteur analogique R(p) en utilisant
l’approximation arrière.
(a) Dans le cas où R(p) = kp , où kp est une constante réelle,
i. Trouver la fonction de transfert H(z) du système ainsi bouclé.
ii. Étudier la précision du système ainsi bouclé (déterminer εp et εv ) ?
iii. Trouver la condition sur kp pour que le système bouclé soit stable.
(b) Dans le cas où R(p) = pkp , où kp est une constante réelle,
i. Trouver la fonction de transfert F (z) du système ainsi bouclé.
ii. Refaire l’étude de la précision du système bouclé (déterminer εp et εv ).
iii. Trouver la condition sur kp pour que le système bouclé soit stable.

Atmane BADDOU - ENSA d’Agadir 4


Utilisation de Matlab en Automatique

Atmane BADDOU - ENSA d’Agadir 5


Les systèmes continus:

Pour représenter un système par une fonction de transfert sur Matlab, on utilise la commande tf de la façon suiv-
ante: si le système est représenté par la fonction de transfert,

10
G(p) = p2 +p+2

on utilise les commandes suivantes:

>> n = 10;
>> d = [1 1 2];
>> G = tf (n, d,′ variable′ ,′ p′ )

G=

10
− − − − − − −−
p2 + p + 2

Continuous − timetransf erf unction.


Matlab utilise la variable ’s’ par défaut, l’ajout des options ’variable’,’p’ permet de le forcer à utiliser la variable ’p’.

Pour trouver les pôles et les zéros de G(p),

>> zero(G)

ans =

Emptymatrix : 0 − by − 1, (pas de zéros donc)

>> pole(G)

ans =

−0.5000 + 1.3229i
−0.5000 − 1.3229i

Pour visualiser la réponse impulsionnelle (réponse à δ(t)) on utilise la commande

>> impulse(G); grid;

la commande grid permet de tracer la grille sur le graphe. Le résultat de la commande est donné par le schéma de
la figure (5).

Pour visualiser la réponse indicielle (réponse à λ(t)) on utilise la commande

Atmane BADDOU - ENSA d’Agadir 6


Impulse Response
5

Amplitude
2

−1

−2
0 2 4 6 8 10 12
Time (seconds)

Figure 5: Réponse impulsionnelle

>> step(G); grid;

Le résultat de la commande est donné par le schéma de la figure (6).

Step Response
7

5
Amplitude

0
0 2 4 6 8 10 12
Time (seconds)

Figure 6: Réponse indicielle

Remarque: A partir de l’exemple précédent, on peut définir d’autre systèmes tel que:
>> G1 = tf (3, [2 1]) : premier ordre de gain statique 3 et de constante de temps 2

3
G1 (p) = 2p+1

>> G2 = tf (3, [1 0]) : intégrateur


3
G2 (p) = p

1

>> G3 = tf (10, [1 1 2]) : second ordre de gains statique 5, ξ = √
2 2
et w0 = 2

10
G3 (p) = p2 +p+2

Atmane BADDOU - ENSA d’Agadir 7


l’exécution de la commande >> step(G1 ) affiche la réponse de G1 (p) à un échelon (figure (7)).

Step Response
3

2.5

Amplitude 1.5

0.5

0
0 2 4 6 8 10 12 14 16 18
Time (seconds)

Figure 7: Réponse indicielle de G1 (p)

On peut ainsi visualiser la réponse indicielle ou impultionnelle de n’importe quelle fonction de transfert.
Il il existe une multitude de commande matlab qu’on peut exécuter. La commande >> help step permet de vous
expliquer comment appliquer la commande step, par exemple.

La commande lsim permet de visualiser la réponse d’une fonction de transfert à n’importe quelle entrée con-
nue (taper help lsim pour savoir comment l’utiliser).

Pour tracer le diagramme de Bode d’une fonction de transfert, il suffit de taper >> bode(G1), le résultat de
l’exécution est donné sur le schéma de la figure (8).

Pour visualiser le digramme de Nyquist de G1 (p), il suffit de taper >> nyquist(G1 ), e résultat de l’exécution
est donné sur le schéma de la figure (9).

Pour visualiser le digramme de Black de G1 (p), il suffit de taper >> nicols(G1 ), e résultat de l’exécution est
donné sur le schéma de la figure (10).

On peut simuler la réponse d’une fonction de transfert de façon graphique simple et visualiser les courbes de
simulation en utilisant leToolbox Simulink (voir figure (11)).

La simulation de la réponse de la fonction de transfert G1 (p) à un échelon en utilisant cette méthode est donnée
par le schéma de la figure (12).

En double cliquant sur le bouton scope on obtient la figure (13).

On peut ainsi simuler des systèmes en boucle ouverte comme pour celui de la figure (12) ou en boucle fermée
comme pour le schéma de la figure (14).

En double cliquant sur le bouton scope on obtient la figure (15).

Le schéma de la simulation du même système en utilisant un ploc PID est donnée par la figure (16).

En double cliquant sur le bouton scope on obtient la figure (17).

Atmane BADDOU - ENSA d’Agadir 8


Bode Diagram
10

Magnitude (dB)
0

−10

−20
0
Phase (deg)

−45

−90
−2 −1 0 1
10 10 10 10
Frequency (rad/s)

Figure 8: Diagramme de Bode du premier ordre

Le toolbox simulink comporte une multitude de possibilités pour simuler les systèmes continus ou discrets.

Atmane BADDOU - ENSA d’Agadir 9


Nyquist Diagram
1.5

0.5

Imaginary Axis
0

−0.5

−1

−1.5
−1 −0.5 0 0.5 1 1.5 2 2.5 3
Real Axis

Figure 9: Diagramme de Nyquist du premier ordre

Nichols Chart
40
0 dB
30 0.25 dB
0.5 dB
20 1 dB −1 dB
Open−Loop Gain (dB)

10 3 dB
6 dB −3 dB

0 −6 dB

−10 −12 dB

−20 −20 dB

−30

−40 dB
−40
−360 −315 −270 −225 −180 −135 −90 −45 0
Open−Loop Phase (deg)

Figure 10: Diagramme de Black du premier ordre

Atmane BADDOU - ENSA d’Agadir 10


Figure 11: Utilisation du toolbox simulink (bibliothèque des systèmes continus)

Atmane BADDOU - ENSA d’Agadir 11


Figure 12: Simulation sur toolbox simulink

Figure 13: Schéma du scope

Atmane BADDOU - ENSA d’Agadir 12


Figure 14: Simulation de la boucle fermée sur toolbox simulink

Figure 15: Schéma du scope de la boucle fermée

Atmane BADDOU - ENSA d’Agadir 13


Figure 16: Simulation de la boucle fermée (PID) sur toolbox simulink

Figure 17: Schéma du scope de la boucle fermée(PID)

Atmane BADDOU - ENSA d’Agadir 14


Les systèmes discrets:

On commence par la discrétisation d’un système continu représenté par une fonction de transfert Gc (p), en présence
d’un bloqueur d’ordre zéro à une période d’échantillonnage T e. Soit, un système du premier ordre décrit par,

2
Gc (p) = p+3

Pour obtenir la fonction de transfert échantillonnée on utilise les commandes suivantes (Te = 0.5):

>> Gc = tf (2, [1 3])

>> Gc =

2
− − −−
p+3

>> Gd = c2d(Gc , 0.5)


Gd =

0.5179
−−−−−
z − 0.2231

Sample time: 0.5 seconds


Discrete-time transfer function.

Pour afficher les zéros de Gd (z) on utilise la commande

>> zero(Gd )

ans =

Emptymatrix : 0 − by − 1 (pas de zéros donc)

Pour afficher les pôles de Gd (z) on utilise la commande

>> pole(Gd )

ans =

0.2231
Il est bien connu que la fonction de transfert dépend fortement de la période d’échantillonnage. Si au leu de

Atmane BADDOU - ENSA d’Agadir 15


Te = 0.5 on prend Te = 0.2, la fonction de transfert Gd (z) redevient,

>> Gd = c2d(Gc, 1)

Gd =

0.3008
−−−−−−−
z − 0.5488

Sample time: 1 seconds


Discrete-time transfer function.

La nouvelle fonction de transfert échantillonnée n’a pas de zéros, mais le pôle redevient 0.5488, qui est différent de
celui du cas où Te = 0.5.

Remarques:
1. Gd (z) dépend du choix de Te .
2. L’ordre de Gc (p) est le même que celui de Gd (z) (l’échantillonnage ne modifie pas l’ordre).

3. Si po est un pôle de Gc (p) alors epo Te est le pôle de Gd (z)(-3 est le pôle de Gc (p) et e−3×0.2 = e−0.6 = 0.5488
est le pôle de Gd (z)).
4. Si G1 et G2 sont deux fonctions de transfert échantillonnées définies sur matlab alors, on peut obtenir le
produit, la somme, la soustraction ou la fraction (rapport) des deux fonctions de transfert en tapant G1 ∗ G2 ,
G1 + G2 , G1 − G2 ou G1 /G2 , respectivement.

Pour visualiser la réponse de Gd (z) à une entrée impulsion (cas où Te = 0.2), il suffit d’exécuter la commande
dimpulse:

>> dimpulse(0.3008, [1 − 0.5488]); grid

le résultat est donné par le schéma de la figure (18).

Impulse Response
0.35

0.3

0.25
Amplitude

0.2

0.15

0.1

0.05

0
0 5 10 15 20
Time (seconds)

Figure 18: Réponse impulsionnelle de Gd (z)

Pour visualiser la réponse de Gd (z) à une entrée échelon (cas où Te = 0.2), il suffit d’exécuter la commande dstep:

Atmane BADDOU - ENSA d’Agadir 16


>> dstep(0.3008, [1 − 0.5488]); grid

Le résultat de l’exécution est donné par le schéma de la figure (19)(sortie en fonction du nombre d’itération).

Comme pour les systèmes continus, la commande dlsim permet de visualiser la réponse d’une fonction de transfert
échantillonnée à n’importe quelle entrée donnée (taper help dlsim pour savoir comment l’utiliser).

Step Response
0.7

0.6

0.5
Amplitude

0.4

0.3

0.2

0.1

0
0 5 10 15 20
Time (seconds)

Figure 19: Réponse indicielle de Gd (z)

Le Toolox Simulink permet aussi la simulation des fonctions de transfert échantillonnées de façon très simple.
La bibliothèque des systèmes discrets sur simulink est représentée par la figure (20).

La simulation de la réponse indicielle de la fonction de transfert échantillonnée Gd (z) est faite sur le schéma de
la figure (21). Noter que pour ajouter un bloc, il suffit de cliquer dessus sur la bibliothèque et de le glisser sur le
fichier modèle.
Pour le configurer, il suffit de double cliquer dessus, la fenêtre qui lui est associée s’ouvre pour vous permettre de
configurer ses paramètres.

En double cliquant sur le scope on obtient le schéma de la figure (22)(sortie en fonction du temps).

Pour une période d’échantillonnage Te = 0.2, la correction du système Gd (z) en utilisant un intégrateur pur 1p
(approximation arrière) est donnée sur le schéma de la figure (23). En double cliquant sur le scope on obtient la
figure (24).

La correction du même système en utilisant un bloc PID est représentée sur le schéma de la figure (25). En
double cliquant sur le scope on obtient le schéma de la figure (26).

Pour tester la capacité du PID à éliminer l’effet des perturbations, le schéma de la figure (27) présente un
exemple dans lequel une perturbation apparait à l’itération 10 avec une amplitude de 0.2 et disparait à l’itération
14. Le schéma du scope de la figure (28) montre que le correcteur a éliminé l’effet de la perturbation.

Après avoir rappelé les deux façons de simuler des systèmes linéaires représentés par des fonctions de transfert
en utilisant Matlab:

Atmane BADDOU - ENSA d’Agadir 17


Figure 20: Bibiothèque des systèmes discrets

1. En interaction, consistant à exécuter des commandes sur l’invité de matlab (>> step(G) par exemple),
2. Par l’exploitation des potentialités offertes par la programmation graphique du Toolbox Simulink,
il est temps de passer à une troisième façon de simuler ces systèmes en utilisant un script (langage de programma-
tion). Un premier petit programme consistant à simuler la réponse de
0.3008
Gd (z) =
z − 0.5488
à un échelon unitaire en utilisant le langage (script) matlab est donné par le schéma de la figure (29). L’exécution du
programme (en tapant son nom à l’invité de matlab) permet de tracer les courbes de la figure (30). En changeant
la ligne du programme permettant le calcule de la commande u et le titre du graphe on obtient la réponse du
système à une impulsion, voir le schéma de la figure (31).

Le programme de la figure (29) a été écrit en s’inspirant d’un langage de base de programmation. En s’inspirant
des fonctions préprogrammées de matlab, on aurait pu le simplifier et obtenir les mêmes résultats ou plus. La figure
(32) en est un exemple. La figure (33) donne 4 schémas: les réponses indicielle et impulsionnelle du système continu
(courbes continues) et les réponses indicielle et impulsionnelle du système discret (courbes discontinues).

Atmane BADDOU - ENSA d’Agadir 18


Figure 21: Simulation de la réponse indicielle de Gd (z)

Figure 22: Résultat de la simulation de la réponse indicielle de Gd (z)

Remarque: Le système bouclé représenté par le schéma de la figure (29) peut être simulé par script simple donné
par la figure (34). Le résultat de son exécution est donné par le schéma de la figure (35).

Atmane BADDOU - ENSA d’Agadir 19


Figure 23: Schéma de la correction de Gd (z) avec un intégrateur

Figure 24: Résultat de la simulation de la corection de Gd (z) avec un intégrateur

Figure 25: Schéma de la correction de Gd (z) avec un PID

Atmane BADDOU - ENSA d’Agadir 20


Figure 26: Résultat de la simulation de la corection de Gd (z) avec un PID

Figure 27: Schéma de l’élimination du bruit par le PID

Atmane BADDOU - ENSA d’Agadir 21


Figure 28: Résultat de la simulation de l’élimination du bruit par PID

Figure 29: Script d’une simulation de la réponse indicielle de Gd (z)

Atmane BADDOU - ENSA d’Agadir 22


Figure 30: Résultat de l’execution du script (réponse indicielle)

Figure 31: Résultat de l’execution du script(réponse impultionnelle)

Atmane BADDOU - ENSA d’Agadir 23


Figure 32: Script d’une simulation de G(p) et Gd (z)

Figure 33: Résultat de l’execution du script (G(p) et Gd (z) )

Atmane BADDOU - ENSA d’Agadir 24


Figure 34: Script d’une simulation(correction de Gd (z) par intégrateur )

Figure 35: Résultat de l’execution du script ( correction de Gd (z) par intégrateur )

Atmane BADDOU - ENSA d’Agadir 25

Vous aimerez peut-être aussi