Table des matières

Boucle à verrouillage de phase

1. Introduction

La boucle à verrouillage de phase (Phase Locked Loop) est un dispositif permettant de générer un signal périodique dont la phase est verrouillée sur celle d'un autre signal. Les applications de la boucle à verrouillage de phase (B.V.F.) sont très nombreuses. On peut citer :

2. Schéma général

boucle-1.svgFigure pleine page

La description qui suit suppose que les signaux soient portés par des tensions.

Le signal constituant l'entrée de la B.V.P. est u1(t). Sa phase est comparée à celle du signal u2(t) au moyen d'un comparateur de phase, qui est constitué de deux parties : un détecteur de phase et un filtre passe-bas. Dans certains documents, le détecteur de phase est appelé comparateur de phase bien que le filtre passe-bas joue un rôle essentiel dans le fonctionnement du comparateur. Pour plus de clarté, nous préférons faire la distinction entre le détecteur de phase et le comparateur de phase (qui comprend le filtre). Il existe d'ailleurs différents types de détecteur de phase alors que le filtre passe-bas est presque toujours un filtre du premier ordre comme celui représenté sur le schéma (il est toutefois possible d'employer un filtre actif).

Le signal en sortie du détecteur (entrée du filtre) est noté ud(t). Le signal en sortie du filtre est noté uf(t). Ce dernier constitue l'entrée d'un oscillateur commandé en tension, c'est-à-dire un oscillateur générant un signal u2(t) (le plus souvent de forme carrée) dont la fréquence est commandée par la tension uf(t). La pulsation de ce signal est supposée dépendre de la tension de commande en suivant une relation affine :

est la pulsation de référence de l'oscillateur et une constante s'exprimant en . est la tension de référence de l'OCT, c.a.d. la tension de commande pour laquelle l'OCT a la pulsation .

Le signal u2(t) généré par l'OCT constitue la seconde entrée du détecteur de phase.

3. Modélisation des signaux

On suppose que u1(t) est un signal quasi périodique dont la fréquence varie lentement (sur un temps beaucoup plus grand que la période). Un exemple de signal de ce type est constitué d'une porteuse de haute fréquence dont la fréquence est modulée à basse fréquence. Par souci de simplification, nous ne considérons que l'harmonique fondamental de ce signal (et le décalage) car, comme nous le justifierons plus loin, les harmoniques de rang supérieur ou égal à 2 jouent un rôle négligeable dans le fonctionnement de la boucle. On a donc :

est la valeur moyenne. La pulsation de ce signal est, par définition :

L'écriture suppose que la fréquence de base de ce signal (sa fréquence lorsque la phase est constante) est identique à la fréquence centrale de l'OCT. Cette hypothèse, dont l'intérêt apparaîtra plus loin, ne nuit pas à la généralité car si la pulsation du signal est différente de (elle le sera en général), la différence peut être incorporée dans la phase .

Le signal en sortie de l'OCT est le plus souvent de forme carrée mais on peut là encore limiter l'étude en considérant seulement le fondamental :

On remarquera que cette écriture fait intervenir un cosinus alors que la relation fait intervenir un sinus. En effet, le déphasage entre les deux signaux est proche de lorsque la boucle est verrouillée et cette convention d'écriture permet d'avoir alors une différence de phase petite.

Nous supposons que le comparateur de phase a une réponse linéaire, c'est-à-dire qu'il fournit un signal proportionnel à la différence de phase :

est une constante qui dépend du détecteur de phase utilisé (le gain du filtre vaut 1 dans la bande passante). Il faut noter que cette relation n'est valable que si la différence de phase est assez petite et que son domaine de validité dépend du détecteur de phase utilisé.

4. Filtre passe-bas

Le filtre passe-bas considéré sur le schéma ci-dessus est caractérisé par la fonction de transfert suivante :

avec et . Voici le diagramme de Bode ce filtre :

filtrePasseBas.svgFigure pleine page

La pulsation de coupure doit être inférieure à . Pour les pulsations supérieures ou égales à , le gain doit êtr inférieur à -40 dB, ce qui impose une valeur de plus petite que . Finalement, la pulsation de coupure est environ . Comme nous le verrons plus loin, le temps permet, dans certains cas, d'ajuster le facteur d'amortissement de la boucle.

5. Détecteur de phase

5.a. Multiplicateur

Lorsque le signal est analogique (par exemple un signal provenant d'un capteur), un multiplicateur permet de réaliser la détection de phase. Le signal en sortie du détecteur est :

Le rôle du filtre passe-bas est de réduire fortement les composantes de fréquence égale à . Sa pulsation de coupure doit donc être beaucoup plus petite que :

Les termes de pulsation et sont donc négligeables en sortie du filtre, tout comme les termes provenant des harmoniques de rang supérieur ou égal à 2, que ne n'avons pas écrit par souci de simplicité :

La valeur de tension de référence de l'OCT est , ce qui revient à considérer que est en fait la pulsation de l'OCT lorsque la tension de commande est . Lorsque la différence des phases est petite, nous avons une relation linéaire :

Il faut remarquer que lorsque est petit, les deux signaux ont en fait un déphasage proche de .

5.b. Porte OU-exclusif

Une porte logique OU-exclusif (XOR) est un meilleur choix de détecteur de phase (et beaucoup moins coûteux que le multiplicateur) mais il ne fonctionne qu'avec des signaux binaires (typiquement des signaux en créneau 0 et 5 V). Lorsque le signal est analogique (non binaire), il peut être aisément converti en signal binaire au moyen d'un comparateur. La figure suivante montre le fonctionnement de la porte XOR pour deux signaux binaires dont les valeurs sont 0 et 5 V (lorsque la boucle est proche du verrouillage, les deux signaux ont pratiquement la même fréquence).

comparateur-xor.svgFigure pleine page

La tension en sortie du filtre est la valeur moyenne de , ou du moins la partie variant lentement. Cette tension reste constante lorsque la boucle est verrouillée, mais elle varie (lentement) lorsque les deux signaux ne sont plus synchrones. Lorsque les deux signaux sont déphasés de , la tension en sortie du filtre est . Notons l'avance de par rapport à . C'est aussi la durée pendant laquelle la tension est au niveau haut. On a donc :

Or est le déphasage de par rapport à (tant que ). La tension de référence de l'OCT est . Lorsque les deux signaux sont en quadrature , et en conséquence :

avec :

La figure suivante montre la sortie du comparateur de phase en fonction du déphasage.

courbe-phase.svgFigure pleine page

La relation linéaire est donc valable pour compris entre et . Avec la porte XOR, le domaine de validité de la relation est nettement plus large que dans le cas de l'utilisation d'un multiplicateur. Ce dernier est cependant préconisé lorsque le signal à analyser est analogique et alternatif.

6. Fonctionnement de la boucle

6.a. Boucle verrouillée

La boucle est dite verrouillée lorsque les signaux et sont synchrones, c'est-à-dire lorsque le déphasage est constant, ce qui implique que ces deux signaux ont exactement la même fréquence. Cela n'exclue pas que cette fréquence puisse être différente de . En effet si désigne la fréquence des deux signaux, on a :

Lorsque la boucle est verrouillée, la tension en sortie du filtre est donc constante (tant que le signal ne change pas de fréquence) :

Dans cette écriture (et dans toute cette partie) nous avons posé , ce qui revient simplement à considérer que désigne l'écart de la tension en sortie du filtre par rapport à la tension de référence .

Il s'en suit que la tension de commande de l'OCT est constante donc que la pulsation de est constante, égale à :

Cette pulsation est précisément celle du signal . Ainsi, lorsque la boucle est verrouillée, l'OCT produit un signal périodique (de forme carrée) parfaitement synchrone avec le signal , c'est-à-dire de même fréquence. Le déphasage réel entre et est constant, égal à :

La valeur absolue est donc d'autant plus grande que la pulsation est éloignée de . Sachant que doit être inférieur à (pour les deux comparateurs étudiés ci-dessus), le verrouillage n'est possible que si :

En conséquence, la pulsation de base de l'oscillateur () doit être choisie assez proche de la plage de fréquences possible de . Si cette plage est trop large, il faut augmenter (le facteur de conversion tension-fréquence de l'OCT).

La tension de commande de l'OCT est :

Elle contient l'information sur la fréquence du signal d'entrée; la B.V.P. peut donc être utilisée pour effectuer une démodulation de fréquence.

Lorsque l'OCT délivre un signal de pulsation , on a , ce qui signifie que les deux signaux et sont déphasés de . En effet, l'intervalle de déphasage permettant d'avoir verrouillage de la boucle est en centré sur . Le choix d'un déphasage de lorsque la pulsation est permet donc une excursion de pulsation symétrique autour de . Cependant, ce choix n'est qu'une convention adoptée pour le calcul : la seule chose qui importe en réalité est que la boucle reste verrouillée sur toute la plage de fréquence du signal .

Une B.V.P. bien réglée doit rester verrouillée, ou du moins très proche du verrouillage, lorsque la fréquence du signal change. Elle doit avoir un comportement stable, c'est-à-dire qu'elle peut éventuellement s'éloigner notablement du verrouillage à condition d'y retourner très vite, à une échelle de temps de l'ordre de quelques périodes de . Il faut donc étudier le comportement du système bouclé lorsque la fréquence de change.

6.b. Étude linéaire

On suppose que la relation est valable, ce qui, dans le cas du détecteur XOR, est vrai pour un déphasage dans l'intervalle . Dans ce cas, toutes les équations sont linéaires. Par ailleurs, l'effet des harmoniques de rang supérieur ou égal à 2 est négligeable grace au filtre passe-bas. Il est donc possible d'étudier la réponse du système en régime sinusoïdal.

Pour définir une fonction de transfert, nous devons définir une grandeur d'entrée et une grandeur de sortie. Le plus souvent, la grandeur d'entrée qui nous intéresse est la fréquence du signal , ou bien sa pulsation . Plus précisement, la grandeur d'entrée est , l'écart entre la pulsation et la pulsation de base de l'OCT, que l'on notera . On a la relation :

La phase est donc obtenue par intégration de . En régime sinusoïdal, nous avons :

est la pulsation de modulation de fréquence, c'est-à-dire la pulsation de variation de la pulsation . Posons . En notation complexe, la relation entre et s'écrit :

Dans le cas d'une analyse du signal , la grandeur de sortie qui nous intéresse est .

Bien que le rôle du filtre soit de faire fonctionner le comparateur de phase (en éliminant les composantes de haute fréquence), nous devons tenir compte de son comportement à basse fréquence. Pour cela, nous devons modifier la relation en la multipliant par la fonction de transfert du filtre :

Lorsque tend vers zéro, on retrouve bien sûr la relation .

La relation s'écrit aussi :

Nous avons donc :

La fonction de transfert (sans dimensions) qui nous intéresse est :

Il s'agit donc de la fonction de transfert qui permet d'exprimer la phase en sortie de l'OCT par rapport à la phase du signal d'entrée. La relation s'écrit :

La fonction de transfert s'en déduit et, après simplification, on obtient :

Voici un schéma bloc du modèle linéaire de la boucle à verrouillage de phase, avec la phase comme entrée :

schema-bloc.svgFigure pleine page

La représentation de la boucle sous cette forme nécessite de séparer le comparateur de phase du filtre, alors qu'en réalité le filtre est nécessaire au fonctionnement du comparateur, par son action d'élimination des composantes de fréquence supérieure ou égale .

Supposons que soit assez grand pour que :

On obtient alors :

Voici le tracé du gain en décibel et du déphasage pour différentes valeurs de :

import numpy as np
from matplotlib.pyplot import *

x = np.logspace(-1,1,500)
def H(x,xi):
    return (1+2*1j*xi*x)/(1+2*1j*xi*x-x**2)
H1 = H(x,2)
GdB1 = 20*np.log10(np.absolute(H1))
phi1 = np.angle(H1)
H2 = H(x,1)
GdB2 = 20*np.log10(np.absolute(H2))
phi2 = np.angle(H2)
H3 = H(x,1/np.sqrt(2))
GdB3 = 20*np.log10(np.absolute(H3))
phi3 = np.angle(H3)
H4 = H(x,0.2)
GdB4 = 20*np.log10(np.absolute(H4))
phi4 = np.angle(H4)

figure()
plot(x,GdB1,label=r"$\xi = 2$")
plot(x,GdB2,label=r"$\xi = 1$")
plot(x,GdB3,label=r"$\xi = 1/\sqrt{2}$")
plot(x,GdB4,label=r"$\xi = 0.2$")
xscale('log')
xlabel(r"$\Omega/\Omega_n$")
ylabel(r"$G_{\rm dB}$")
legend(loc='upper right')
grid()

    	              
BodePLLBodePLL.pdf
figure()
plot(x,phi1/np.pi,label=r"$\xi = 2$")
plot(x,phi2/np.pi,label=r"$\xi = 1$")
plot(x,phi3/np.pi,label=r"$\xi = 1/\sqrt{2}$")
plot(x,phi4/np.pi,label=r"$\xi = 0.2$")
xscale('log')
xlabel(r"$\Omega/\Omega_n$")
ylabel(r"$\phi/\pi$")
legend(loc='upper right')
grid()    	              
    	              
PhasePLLPhasePLL.pdf

Si le coefficient (coefficient d'amortissement) est trop faible, le gain présente une résonance très marquée, ce qui implique des oscillations de la réponse indicielle. Le rôle du temps (donc de la résistance ) est de réduire le temps d'amortissement lorsque est grand (on a vu qu'une grande valeur est nécessaire pour élargir la plage de fréquence de verrouillage). Si au contraire le coefficient d'amortissement est trop grand, le gain dans la bande atténuante ne décroît pas assez vite et la réponse indicielle est moins rapide. La valeur optimale est .

L'équation différentielle reliant l'entrée et la sortie se déduit de la fonction de transfert :

6.c. Exemple

Voyons un exemple de calcul des coefficients d'une B.V.P.. Supposons que la fréquence de base soit et qu'on souhaite suivre des variations de cette fréquence de plus ou moins 10 Hz, variations qui ont lieu à une fréquence inférieure à 10 Hz. La condition s'écrit aussi :

En prenant le cas d'un détecteur de phase XOR, on a et il faut donc que :

Le choix de dépend de l'application. Si l'objectif est d'obtenir un système très rapide, une grande valeur est souhaitable. Si l'objectif est d'extraire l'information de fréquence de la tension , il faut choisir une valeur de adaptée aux variations de tension que l'on peut mesurer avec précision. Plaçons-nous dans ce dernier cas de figure et adoptons la valeur , qui implique .

La pulsation de coupure du filtre est . La fréquence de coupure doit être 100 fois plus petite que la fréquence du signal :

Sachant que et que doit être petit devant , la condition n'est pas du tout satisfaite. On a :

ce qui correspond à une fréquence , tout à fait convenable si les variations de fréquence ont une fréquence inférieure à 10 Hz. est négligeable devant 1/(KdKo) donc

La valeur de est en fait négligeable et on peut donc opter pour (la résistance est inutile).

La valeur de est convenable mais pas optimale. Si l'on impose la valeur optimale on a :

Voici la courbe de réponse fréquentielle de la boucle pour les deux valeurs de :

f = np.logspace(0,2,500)
def H(f,xi,Omega_n):
    x = 2*np.pi*f/Omega_n
    return 1/(1+2*1j*xi*x-x**2)
H1 = H(f,0.62,50)
GdB1 = 20*np.log10(np.absolute(H1))
H2 = H(f,0.71,39)
GdB2 = 20*np.log10(np.absolute(H2))

figure()
plot(f,GdB1,label=r"$\xi = 0.39$")
plot(f,GdB2,label=r"$\xi = 0.71$")
xscale('log')
xlabel(r"$F (Hz)$")
ylabel(r"$G_{\rm dB}$")
legend(loc='upper right')
grid()
    	           
reponse1reponse1.pdf
Creative Commons LicenseTextes et figures sont mis à disposition sous contrat Creative Commons.