le TP3 de SII

PSI
Sciences Industrielles pour l’Ingénieur
TP n°3
!
Lycée Clemenceau - Nantes
Durée : 2 heures
INTRODUCTION AUX SIGNAUX ÉCHANTILLONNÉS
ALGORITHMES DE FILTRAGES NUMÉRIQUES
☞ Compte rendu à rédiger.
L’objectif de ce travail est d’aborder (très modestement) la conception d’un filtre numérique. Pour ce faire, dans une
première partie, sera établi l’algorithme de construction d’un système passe-bas du premier ordre basé sur la méthode
d’Euler (cf. cours d’informatique). Cet algorithme sera mis en œuvre sur le tableur EXCEL.
On pourra alors, dans une seconde partie, établir et tracer les réponses temporelles d’un tel système aux signaux
canoniques usuels.
Son utilisation comme filtre, par exemple pour supprimer des fréquences parasites supportées par un signal
harmonique, fera l’objet de la troisième partie de ce travail. La quatrième partie évoque le traitement de signaux autres
qu’harmoniques.
Enfin, pour aller plus loin, on s’intéressera à un filtre passe-bas du deuxième ordre et à un filtre coupe-bande.
0 – INTRODUCTION
0-1 Objectif
Le filtrage de signaux intervient dans de nombreux secteurs scientifiques ou industriels. On peut citer trois
grands domaines :
1. La correction en automatique, où le correcteur peut être considéré comme un filtre agissant sur
l’écart. Voir cours d’automatique.
2. Les mesures physiques où les grandeurs acquises sont toujours entachées de bruits qu’il convient
d’éliminer. En particulier lorsqu’elles proviennent de dérivations, qu’elles soient analogiques ou
numériques. Par exemple, si on désire accéder à une vitesse à partir de la mesure d’un déplacement,
les bruits minimes du signal de position peuvent néanmoins présenter de fortes variations, et donc leurs
dérivées de fortes amplitudes :
Lycée Clemenceau Nantes - Olivier Le Gallo - SII
3. Le traitement de signaux harmoniques (acoustiques, ondes radios, etc.) où il convient d’éliminer des
fréquences situées en dehors d’une certaine bande passante :
1,5!
1!
59,2!
56!
57,6!
54,4!
51,2!
50!
52,8!
48!
49,6!
49!
46,4!
46!
47!
44,8!
44!
43,2!
40!
41,6!
38,4!
36,8!
35,2!
32!
33,6!
30,4!
27,2!
26!
28,8!
24!
25,6!
25!
22,4!
23!
20,8!
22!
19,2!
20!
16!
17,6!
14,4!
12,8!
11,2!
8!
9,6!
6,4!
3,2!
2!
4,8!
0!
1,6!
1!
0!
-1!
0,5!
-0,5!
-1!
-1,5!
1,5!
1!
59!
58!
56!
55!
53!
52!
43!
41!
40!
38!
37!
35!
34!
32!
31!
29!
28!
19!
17!
16!
14!
13!
11!
10!
8!
7!
5!
0!
4!
0,5!
-0,5!
-1!
-1,5!
Les signaux manipulés aujourd’hui sont de plus en plus souvent numériques. Leur traitement s’effectue
alors par des algorithmes (ou « filtres numériques »), généralement accessibles comme blocs fonctionnels
dans les différents logiciels industriels d’exploitation (voir systèmes du laboratoire : PID du bras MAXPID par
exemple). En mesures, ils peuvent aussi être intégrés (ROM) tout simplement dans le conditionneur du
capteur. Néanmoins, dans des cas simples, ou dans le cas de développements spécifiques, il peut être utile
de savoir programmer son propre algorithme dans un langage de base, afin de l’implanter dans une carte.
De plus, dans le cas de signaux
analogiques, même s’il existe toujours
des filtres réalisés par des réseaux
électriques traditionnels (voir exemple
ci-contre pour un filtre PID), on leur
Signal
analogique
filtré
Signal
analogique
préfère aujourd’hui très couramment les
filtres numériques après conversion,
puis éventuellement recomposition :
Filtre
Signal
analogique
Convertisseur
A/N
Image
numérique
Filtre
numérique
Réponse du
filtre numérique
Convertisseur
N/A
Signal
analogique
filtré
Lycée Clemenceau Nantes - Olivier Le Gallo - SII
0-2 Choix du filtre - rappels de cours
Le filtre le plus simple que l’on peut rencontrer, et qui sera celui principalement étudié et conçu dans ce
travail, est le filtre fondamental du premier ordre, de fonction de transfert :
1
H(p) =
1+ τp
où p représente la variable symbolique de Laplace.
€
Le gain est 1 (puisque éventuellement un amplificateur de gain K peut lui être adjoint en série).
La constante de temps est τ (exprimée en s).
Comme tout système linéaire, soumis à une entrée sinusoïdale e(t) = sinωt, il répond en régime permanent
par une sortie également sinusoïdale et de même pulsation, mais amplifiée (en fait ici atténuée) et
$
ϕ '
déphasée : s(t) = A sin ωt + ϕ = A sin& ω(t + ) )
ω (
%
(
facteur d’atténuation
€ signal d’entrée
)
déphasage ou retard
signal de sortie
ϕ
ω
régime transitoire
NB1 : Il est clair que, théoriquement, le régime transitoire a une durée infinie et que donc le régime
permanent n’est jamais atteint. Mais en pratique, le graphe ci-dessus montre bien l’établissement d’un
régime permanent après un certain temps (lié à la constante de temps du système).
NB2 : Ne pas confondre le terme de retard (qui dépend de ω) ici utilisé pour caractériser le décalage
temporel entre la sortie en régime permanent et l’entrée, avec la notion de système retardateur, par ailleurs
non linéaire, caractérisé par la fonction de transfert R(p) = e
−Tp
où T est une constante appelée retard.
L’outil performant d’étude de cette réponse harmonique en régime permanent de pulsation ω est la fonction
de transfert isochrone (obtenue lorsque p = jω , imaginaire pur) :
1
H(p) =
ω
1+ j
ω0
La pulsation ω0 =
1
-1
(exprimée en rad.s ) est appelée pulsation de cassure ou bande passante plus
τ
spécifiquement dans le cas d’un filtre.
Lycée Clemenceau Nantes - Olivier Le Gallo - SII
Son module n’est autre que le facteur d’atténuation entre sortie et entrée A = H( jω) =
1
" ω%
1+ $ '
#ω0&
ω
Son argument n’est autre que le déphasage entre sortie et entrée ϕ = Arg H(j ω) = − arctan
ω0
(
2
)
Ces deux grandeurs dépendent de la pulsation ω. Cette dépendance pouvant être traduite graphiquement
par les différents lieux de transfert, comme par exemple le diagramme de Bode qui rassemble, en fonction
de ω représentée selon une échelle logarithmique :
•
Pente de –20 dB par décade
l’évolution de A, exprimée
en dB, soit 20 log A :
Atténuation de –3dB pour
la pulsation de cassure
(ou bande passante)
Pulsation de cassure
"
(ou bande passante)
l’évolution de ϕ :
Déphasage de 45° pour
la pulsation de cassure
(ou bande passante)
Ainsi, si la bande passante ω 0 du filtre est suffisamment faible (constante de temps τ suffisamment grande)
par rapport à celle du signal d’entrée, la sortie se trouve fortement atténuée : déjà quasiment -20 dB, soit
une division par 10 de l’amplitude, si ω0 = ω / 10 .
Cette atténuation se fait « au prix » d’un déphasage ϕ pouvant atteindre 90°. Celui-ci est souvent sans
incidence. Dans le cas contraire, il convient de traiter le signal en le décalant temporairement de ϕ / ω.
I – FILTRAGE NUMÉRIQUE
I-1 Mise en place du problème - méthode d’Euler
L’entrée du filtre est notée e(t), la sortie s(t). Soit, dans le domaine de
Laplace, respectivement E(p) et S(p). Ces variables sont liées par :
1
S(p) =
E(p)
1+ τp
E(p)
S(p)
ou encore : S(p) + τpS(p) = E(p)
Lycée Clemenceau Nantes - Olivier Le Gallo - SII
soit très classiquement par l’équation différentielle: s(t) + τ
ds
(t) = e(t) sous les conditions de Heaviside.
dt
Par ailleurs, les signaux ne sont pas continus, mais sont échantillonnés. Soit Te la période
d’échantillonnage. Les valeurs des signaux s’inscrivent donc selon le tableau :
0
e(0)
s(0)
Attention : pour que l’approximation donne des résultats
Te
e(Te)
s(Te)
satisfaisants, il faut que la période d’échantillonnage soit
2 Te
e(2Te)
s(2Te)
suffisamment faible devant la période la plus petite des
3 Te
e(3Te)
s(3Te)
différents signaux à échantillonner.
…
➨ Quel est alors l’algorithme de calcul de
ds
(t) en fonction de s(t) et de s(t - Te) ?
dt
Mettre en évidence la nécessité de la condition initiale.
➨ En déduire l’algorithme de filtrage, c’est-à-dire la loi donnant s(t) en fonction de e(t) et de s(t - Te).
I-2 Programmation de l’algorithme
➨ Créer un fichier EXCEL à trois colonnes :
Case permettant de saisir la valeur de
la bande passante du filtre.
•
La première colonne contient les instants d’échantillonnage, par ex. toutes les Te = 0,1s, pendant 60s.
•
Dans la deuxième colonne sera défini ultérieurement le signal d’entrée.
•
Dans la troisième colonne, programmer l’algorithme établi précédemment, afin de définir le signal de
sortie du filtre. La constante de temps τ du filtre sera programmable et saisie par définition de sa bande
1
passante ω0 = dans une case déterminée.
τ
I-3 Test
Afin de vérifier le fonctionnement de l’algorithme qui vient d’être programmé, on peut le tester sur une entrée
sinusoïdale, afin de valider les résultats bien connus rappelés ci-dessus au paragraphe 0-2.
➨ Compléter la colonne « entrée », afin de définir un signal sinusoïdal de période suffisamment grande
devant Te. On pourra, par exemple, choisir un signal d’amplitude 1 (fixe) et de pulsation 1 rad/s (modifiable).
➨ Observer la sortie pour diverses valeurs de la bande passante, en particulier :
•
L’existence du régime transitoire (on pourra modifier la condition initiale).
•
L’atténuation et le déphasage (matérialisé ici par un décalage temporel).
On tracera pour cela toutes les courbes jugées utiles.
Lycée Clemenceau Nantes - Olivier Le Gallo - SII
NB : le régime transitoire est d’autant plus marqué que la bande passante du filtre est faible ; mais dans ce
cas le signal est aussi fortement atténué : il peut être alors intéressant de « zoomer » sur les premiers
instants.
II – ANALYSE TEMPORELLE : RÉPONSES AUX SIGNAUX CANONIQUES
➨ Modifier la seconde colonne du fichier EXCEL précédent pour obtenir la réponse du filtre à un échelon à
partir d’une condition initiale nulle (situation de Heaviside).
Vérifier quantitativement les résultats bien connus concernant cette réponse : temps de réponse à 5% (ou de
montée à 95%), temps de montée à 63%. Observer qu’avec une période d’échantillonnage plus petite
(par exemple 0,01s au lieu de 0,1s) l’approximation numérique est sensiblement meilleure.
Tester la réponse pour plusieurs valeurs de la condition initiale.
➨ Même travail pour une sollicitation en rampe.
III – FILTRAGE D’UN SIGNAL HARMONIQUE BRUITÉ
III-1 Filtrage brut
➨ Modifier la seconde colonne du fichier EXCEL précédent pour obtenir la réponse du filtre à un signal
sinusoïdal sur lequel se superpose, par exemple, un signal de pulsation 10 fois plus grande et d’amplitude
20% : e(t) = sin(ωt) + 0,2 sin(10ωt)
Prévoir une possibilité de modification de la
pulsation porteuse du signal d’entrée.
Si vous le souhaitez et en avez le temps, vous
pouvez prévoir également une possibilité de
modification du bruit (amplitude 0,2 et facteur
10 sur la pulsation modifiables).
➨ Pour un signal bruité donné, faire varier la bande passante du filtre, observer et conclure.
III-2 Traitement du signal filtré
Il conviendrait maintenant de :
•
ré-amplifier le signal de sortie,
•
le décaler temporairement,
afin que le filtre numérique réalise entièrement sa fonction (voir paragraphe 0-1, point 3).
On s’intéressera ici uniquement à la ré-amplification. Celle-ci dépend de la pulsation du signal porteur que
l’on désire conserver et de la bande passante du filtre. Cf. paragraphe 0-2.
Le décalage temporel ne sera pas abordé dans ce travail.
Lycée Clemenceau Nantes - Olivier Le Gallo - SII
➨ Il convient donc maintenant de créer de nouvelles cases et colonnes EXCEL pour traduire ces relations,
puis de tracer la sortie finale :
Case de calcul du
Case de calcul du
Case de calcul de l’amplification
déphasage
décalage temporel
(demandé dans ce travail)
(non abordé)
Colonne des
Colonne de la
nouveaux instants
sortie traitée
Filtrage brut
Signal de sortie du filtre numérique (ici avec le décalage
(obtenu au III-1)
temporel réalisé, mais non demandé dans ce travail)
➨ Pour un signal bruité donné, faire varier la bande passante du filtre, observer et conclure.
IV – FILTRAGE D’UN SIGNAL QUELCONQUE
Il vient de comprendre que le post-traitement (ré-amplification et décalage temporel correcteur) peut être
traité relativement facilement lorsque le signal bruité est harmonique. Par contre la conception d’un filtre
capable de traiter des signaux quelconques ne va pas sans poser de difficultés, puisque ces deux
traitements dépendent de la nature du signal d’entrée.
Lycée Clemenceau Nantes - Olivier Le Gallo - SII
IV-1 Exemple d’une rampe bruitée
➨ Ouvrir le fichier « rampe.xls » du répertoire « filtre du premier ordre ». Bien observer l’algorithme, en
particulier le décalage temporel.
NB : L’affichage aux temps longs est réalisé en modifiant l’étiquette des abscisses et les séries de données. Il peut être modifié par
accès au menu d’affichage par pointage sur la courbe et action sur le bouton droit de la souris.
➨ Tester diverses bandes passantes du filtre pour bien observer son comportement. La comparaison
temporelle de la sortie traitée avec l’entrée nécessite une modification manuelle de l’étiquette des abscisses
(voir remarque ci-dessus).
IV-2 Exemple d’un trapèze bruité
➨ Ouvrir le fichier « trapèze.xls ».
➨ Tester diverses bandes passantes et
bien
comprendre
le
comportement et
l’imperfection du filtre étudié à filtrer
correctement le bruit sans trop affecter la
porteuse.
Lycée Clemenceau Nantes - Olivier Le Gallo - SII
V – SYSTÈME FONDAMENTAL DU SECOND ORDRE
V-1 Mise en place de l’algorithme et des conditions initiales
Le paragraphe I-1 a permis d’établir que la dérivée de la sortie à l’instant t est assimilée à :
ds
s(t) − s(t − Te )
(t) =
dt
Te
€
De même sa dérivée seconde sera donc :
ds
ds
(t) − (t − Te )
d2s
s(t) − 2s(t − Te ) + s(t − 2Te )
dt
(t) = dt
=
2
Te
dt
Te2
La nécessité de deux conditions initiales apparaît clairement dans les écritures précédentes.
€
Le calcul de la dérivée première à l’instant initial n’est pas possible pour des raisons de causalité : elle
nécessiterait la connaissance de la valeur à l’instant -Te ce qui n’a pas de sens. Son calcul à l’instant suivant
nécessite la connaissance de la valeur initiale f(0) de la fonction. Ensuite l’algorithme est initié et la dérivée
première à chaque instant peut être calculée à partir de la valeur de la fonction à ce même instant et de sa
valeur à l’instant précédent.
Concernant la dérivée seconde, il apparaît de la même manière que les valeurs de la fonction à l’instant
initial f(0) et à l’instant suivant f(Te) doivent être connues. Cela peut aussi se traduire par la nécessité de
connaître la valeur initiale de la fonction et de sa dérivée première puisqu’alors celle-ci donne accès à f(Te)
par linéarisation (voir ci-dessous). L’algorithme est alors initié à partir de l’instant 2Te et permet de calculer la
dérivée seconde à chaque instant à partir des valeurs de la fonction à ce même instant et aux deux instants
précédents. On retrouve ici les résultats bien connus des équations différentielles où une équation
différentielle d’ordre n > 1 nécessite n conditions initiales : celle de la fonction et celles de ses n-1 dérivées
d’ordre i ∈[1,n − 1] à l’instant initial.
On s’intéresse au système fondamental du deuxième ordre, de gain unitaire pour simplifier, qui est le
système d’entrée e(t) et de sortie s(t), obéissant à l’équation différentielle :
s(t) +
€
2z ds(t) 1 d2s(t)
+ 2
= e(t)
ω0 dt
ω0 dt2
où z est le facteur d’amortissement et ω 0 la pulsation propre.
L’entrée et la sortie étant échantillonnées à la période Te, en utilisant l’approximation précédemment
construite des dérivées première et seconde, cette équation différentielle se traduit par :
2z s(t) − s(t − Te ) 1 s(t) − 2s(t − Te ) + s(t − 2Te )
s(t) +
+ 2
= e(t)
ω0
Te
ω0
Te2
Ce qui permet d’exprimer la valeur de la sortie à l’instant t en fonction de ses deux valeurs précédentes et de
€
la valeur de l’entrée au même instant :
s(t) =
€
1
2z
2
1
[ e(t) +
s(t − Te ) + 2 2 s(t − Te ) − 2 2 s(t − 2Te ) ]
2z
1
ω0 Te
ω
T
ω
0 e
0 Te
1+
+ 2 2
ω0 Te ω0 Te
Lycée Clemenceau Nantes - Olivier Le Gallo - SII
Cette relation, initiée par les valeurs s(0) et s(Te) de la sortie, constitue l’algorithme de calcul de s(t) pour
t>Te.
Par ailleurs, puisque
ds
ds
s(t) − s(t − Te )
(t) .
, il vient : s(t) = s(t − Te ) + Te
(t) =
dt
Te
dt
s(t)
ds
ds
(Te ) ≈ s(0) + Te
(0)
dt
dt
€
€
si Te est suffisamment
faible.
Donc s(Te ) = s(0) + Te
s(Te)
s(0)
0
€
Ceci montre que l’on peut accéder à s(Te) à partir de s(0) et de
Te
t
ds
(0) .
dt
Il s’agit en fait de la simple linéarisation figurée ci-dessus, qui revient à confondre la dérivée à gauche en Te
avec la dérivée à droite en 0.
€
Ainsi l’algorithme peut également être classiquement initié par les valeurs de s(0) et de
V-2 Mise en œuvre
➨
Ouvrir
le
ds
(0) .
dt
€
fichier
EXCEL se trouvant dans
le répertoire « filtre du
L’algorithme est
programmé à partir
de l’instant 2Te.
La valeur s(Te) est
calculée à partir de
s(0) et de s’(0).
2ème ordre ».
Observer et comprendre la mise en œuvre de l’algorithme.
➨ Tester cet algorithme :
•
modification du facteur d’amortissement et/ou de la pulsation propre,
•
modification des conditions initiales ou du signal d’entrée.
VI – FILTRE COUPE BANDE
Les filtres passe-bas qui viennent d’être étudiés s’avèrent rapidement inefficaces si on doit filtrer une
pulsation bien précise. Voir en particulier l’exemple du trapèze bruité. Un filtre coupe-bande (ou rejecteur)
peut alors être une solution.
Soit par exemple un filtre de fonction de transfert :
1 2
p
ω02
H(p) =
2z
1
1+
p + 2 p2
ω0
ω0
1+
La bande de pulsation fortement filtrée sera d’autant plus étroite que le facteur d’amortissement z sera
faible, par exemple, pour :
Lycée Clemenceau Nantes - Olivier Le Gallo - SII
•
ω0 = 1 rad/s
•
z = 0,2
le diagramme de Bode (de gain) est le suivant :
Bande passante à -3dB
Bande passante à -3dB
Bande de filtrage
NB : Cette fonction de transfert peut-être obtenue à partir d’un algorithme numérique, ou à partir d’un circuit
électrique de type RLC, en prenant la tension de sortie aux bornes de l’ensemble {condensateur, bobine} :
R
avec ω0 =
e(t)
L
s(t)
1
LC
et z =
R C
2 L
C
➨ Créer un tel filtre à l’aide d’Excel et tester ses capacités sur un signal bruité.
VII – POUR ALLER PLUS LOIN
Un travail personnel d’approfondissement de ce TP peut consister en une transposition
en langage Python des travaux réalisés sous Excel.
Bien entendu, des logiciels de calcul numérique comme Scilab-Xcos, possèdent des fonctionnalités de filtres
numériques intégrées.
Lycée Clemenceau Nantes - Olivier Le Gallo - SII