TangenteX.com

Son origine

Le télégraphe

La page wikipedia sur le télégraphe vous donnera toutes les informations nécessaires sur l'invention du télégraphe, processus long et tortueux qui part des signaux de fumée pour aboutir au télégraphe électrique dont je veux vous parler ici.

Pourquoi le télégraphe ? Sur ladite page, regardez le schéma de principe du télégraphe électrique de Wheaststone datant de 1837 (oui comme le pont du même nom). Le principe est simple : un circuit électrique composé d'un générateur, d'un interrupteur (le célèbre manipulateur), d'une ligne et d'un électro-aimant associé à une bobine de papier. Le circuit est fermé par la Terre ou bien par un autre conducteur. Lorqu'on ferme l'interrupteur plus ou moins longtemps (une brève, une longue) du coté du générateur, à l'autre bout de la ligne, l'électro-aimant se ferme plus ou moins longtemps. Et le trait tracé sur la bande de papier est plus ou moins long. Manque plus qu'un alphabet, fourni par Morse, et voilà un moyen de communication pratique et peu couteux !

Au milieu du XIXème, les distances entre émetteur et récepteur étaient courtes (quelques km) puis les ingénieurs se sont enhardis. En 1851, liaison entre Londre et Paris, puis en 1858 entre l'Irlande et Terre-Neuve, c'est à dire entre l'Europe et les Etats-Unis. Sur ce genre de liaison, pas question de faire intervenir la Terre dans le circuit. On utilisait des lignes formées de deux conducteurs isolés entre eux.

Et là, les physiciens constatèrent des choses curieuses : dans une ligne sous-marine, les impulsions du code Morse transitaient plus lentement que dans une ligne terrestre. L'amplitude des impulsions diminuait en fonction de la distance. Elles étaient plus ou moins déformées. Tous phénomènes qui étaient trés génants pour l'exploitation du télégraphe et qu'il fallait donc comprendre.

Ainsi naquit l'équation des télégraphistes, que nous allons aborder et résoudre numériquement.

La notion de ligne de transmission

Qu'est-ce qu'une ligne ?

En électricité, on appelle "ligne" un ensemble d'au moins deux conducteurs qui forment un circuit fermé entre un générateur (une batterie par exemple) et un récepteur (un électro-aimant par exemple). Bien sur, ces conducteurs doivent être isolés entre eux. 

Si nous considérons le cas simple d'une ligne formée par deux conducteurs, on peut mettre en oeuvre plusieurs géométries. Les deux conducteurs peuvent être colinéaires avec pour isolant de l'air, comme les premières lignes de télégraphe, ou du plastique, comme nos câbles électriques. Ils peuvent aussi être non plus colinéaires mais torsadés, comme les lignes téléphoniques ou les câbles de réseaux Ethernet. Ils peuvent encore être coaxiaux comme les câbles de télévision domestiques. Selon la géométrie, les performances de la ligne seront différentes. Par performances, j'entends l'atténuation et la déformation d'une impulsion les plus petites possible, un bruit minimum  et d'autres caractéristiques que je vais passer sous silence.

La transmission d'un signal électrique sur une ligne

Imaginons que notre générateur délivre une tension sinusoïdale sur la ligne. Nous savons que l'électricité comme la lumière se propage à une vitesse finie. Sur notre ligne, nous allons donc observer la propagation du signal sur la ligne jusqu'au récepteur. Comme dans toute propagation, l'amplitude de notre signal électrique dépendra de la position de l'instrument de mesure sur la ligne et aussi du temps. C'est cette propagation que nous voulons modéliser.

Une fonction de deux variables, temps et espace : vous sentez venir une équation aux dérivées partielles comme pour la diffusion thermique ou la propagation d'une onde électromagnétique ? Gagné !

Sa construction

Modèle générale d'une ligne

Soit une ligne homogène à deux conducteurs colinéaires reliant un générateur et une charge réceptrice, telle que figurée par le schéma ci-dessous :

Modèle général d'une ligne

Pour modéliser cette ligne, je vais considérer qu'elle est constituée d'une multitude de quadripôles infinitésimaux associés en série. Chaque quadripôle est modélisé comme suit :

Modèle élémentaire d'une ligne

Sur ce quadripôle, nous modélisons les caractéristiques physiques locales de la ligne :

A partir de ce modèle, je vais construire l'équation différentielle qui décrit le comportement local du signal qui traverse ce quadripôle. Pour obtenir l'évolution du signal sur la ligne, il me suffira d'intégrer numériquement cette équation sur le temps et la longueur de la ligne. A noter que l'équation possède une solution analytique connue.

Obtenir l'équation différentielle d'évolution de V et de I

En appliquant la loi des noeuds et des mailles sur le dipôle infinitésimal, j'obtiens :

\( V(x,t) = Ldx\dfrac{\partial I(x,t)}{\partial t} + RdxI(x,t) + V(x+dx,t) \)

soit :

\( - \dfrac{V(x+dx,t) - V(x,t)}{dx} = L\dfrac{\partial I(x,t)}{\partial t} + RI(x,t) \)

En différentiant le membre de gauche, j'obtiens finalement :

\( - \dfrac{\partial V(x,t)}{\partial x} = L\dfrac{\partial I(x,t)}{\partial t} + RI(x,t) \)          (1).

Je procède de la même façon sur I(x,t) pour établir la relation :

\( - \dfrac{\partial I(x,t)}{\partial x} = C\dfrac{\partial V(x,t)}{\partial t} + GV(x,t) \)         (2).

En dérivant l'équation (1) par rapport à x, puis en substituant l'expression de l'intensité obtenue dans (2) dans l'équation (1), j'obtiens l'équation des télégraphistes en V(x,t) :

\( \dfrac{\partial^2 V(x,t)}{\partial x^2} = LC\dfrac{\partial^2 V(x,t)}{\partial t^2} + (RC + LG)\dfrac{\partial V(x,t)}{\partial t} + RGV(x,t) \)          (3).

Je peux écrire en procédant de la même manière sur I(x,t) :

\( \dfrac{\partial^2 I(x,t)}{\partial x^2} = LC\dfrac{\partial^2 I(x,t)}{\partial t^2} + (RC + LG)\dfrac{\partial I(x,t)}{\partial t} + RGI(x,t) \)              (4).

Ligne sans perte

L'équation

Considérons d'abord le cas le plus simple d'une ligne sans perte, c'est à dire que R = 0 (pas de perte résistive) et G = 0 (pas de perte dans le diélectrique). Si je pose R=G=0 dans l'équation générale, j'obtiens :

\(\dfrac{\partial^2 V}{\partial x^2} = LC\dfrac{\partial^2 V}{\partial t^2} \) soit :

\(\dfrac{\partial^2 V}{\partial x^2} - LC\dfrac{\partial^2 V}{\partial t^2} = 0 \).

En posant \( c = \dfrac{1}{\sqrt{LC}} \), j'obtiens une forme d'équation bien connue, l'équation d'Alembert :

\(\dfrac{\partial^2 V}{\partial x^2} - \dfrac{1}{c^2}\dfrac{\partial^2 V}{\partial t^2} = 0 \)

C'est un problème de Cauchy homogène, que je résume ainsi :

\( \left\{ \begin{array}{lr} \dfrac{\partial^2 V}{\partial x^2} - \dfrac{1}{c^2}\dfrac{\partial^2 V}{\partial t^2} = 0 \; avec \; t \gt 0 , \: x \in \mathbb{R} \\ V(x,0) = g(x) \\ \dfrac{\partial V(x,0)}{\partial x} = h(x) \; avec \; x \in \mathbb{R} \\ \end{array} \right. \)

Les conditions initiales du problèmes sont fixées par les fonctions h(x) et g(x) de classe \( C^1 \) et \( C^2 \) respectivement.

A l'énoncé du problème de Cauchy, je vais ajouter les conditions aux limites sur le domaine spatial [0,X], dites "conditions de bord de Dirichlet homogènes", ce qui me donne :

\( \left\{ \begin{array}{lr} \dfrac{\partial^2 V}{\partial x^2} - \dfrac{1}{c^2}\dfrac{\partial^2 V}{\partial t^2} = 0 \; avec \; t \gt 0 , \: x \in ]0,X[ \\ V(x,0) = g(x) \\ \dfrac{\partial V(x,0)}{\partial x} = h(x) \; avec \; x \in ]0,X[ \\ V(0,t) = V(X,t) = 0 \; avec \; t \gt 0 \end{array} \right. \)

Ici, les conditions de bord sont nulles (Dirichlet homogène).

Discrétisation de l'équation

Je vais discrétiser cette équation par la méthode des différences finies. Je vous renvoie à la page décrivant la méthode des différences finies pour les aspects techniques des schémas aux différences finies.

Nous allons discrétiser les deux membres de l'équation qui sont de deuxième ordre en temps et en espace en utilisant un malliage spatio-temporel. Le pas spatial du maillage est \( \Delta x\) et son pas temporel \( \Delta t\). L'indice spatial est i, variant entre 0 et Nx, et l'indice temporel j variant entre 0 et Nt, de sorte que je puisse écrire \( V[i,j] = V(x_i, t^j) \).

Pour le membre de gauche, j'obtiens, en appliquant le schéma centré d'Euler explicite :

\( \dfrac{\partial^2 V(x_i, t^j)}{\partial t^2} \approx \dfrac{1}{(\Delta t)^2} (V[i,j+1] + V[i,j-1] - 2V[i,j]) \)

De même, pour le membre de droite :

\( \dfrac{\partial^2 V(x_i, t^j)}{\partial x^2} \approx \dfrac{1}{(\Delta x)^2} (V[i+1,j] + V[i-1,j] - 2V[i,j]) \)

En remplaçant ces approximations dans l'équation :

\( \dfrac{1}{(\Delta x)^2} (V[i+1,j] + V[i-1,j] - 2V[i,j]) = \dfrac{1}{c^2} \dfrac{1}{(\Delta t)^2} (V[i,j+1] + V[i,j-1] - 2V[i,j]) \)

\( V[i+1,j] + V[i-1,j] - 2V[i,j] = \dfrac{(\Delta x)^2}{(c \Delta t)^2} (V[i,j+1] + V[i,j-1] - 2V[i,j]) \)

\( \dfrac{(c \Delta t)^2}{(\Delta x)^2} \left(V[i+1,j] + V[i-1,j] - 2V[i,j]\right) = V[i,j+1] + V[i,j-1] - 2V[i,j] \)

\( V[i,j+1] = 2V[i,j] - V[i,j-1] + \left(\dfrac{c \Delta t}{\Delta x}\right)^2 \left(V[i+1,j] + V[i-1,j] - 2V[i,j]\right) \)

En posant \( \alpha = \left(\dfrac{c \Delta t}{\Delta x}\right) \le 1 \) pour assurer la stabilité du schéma (condition CFL), on obtient :

\( V[i,j+1] = 2V[i,j] - V[i,j-1] + \alpha^2 \left(V[i+1,j] + V[i-1,j] - 2V[i,j]\right) \)

Résolution par la méthode des différences finies

L'algorithme

Observons l'équation discrète que nous avons obtenu. Pour calculer la valeur du potentiel V à l'instant futur j+1 sur un point spatial i du maillage, j'utilise les valeurs du potentiel V présentes (indice j) et passées (indice j-1) sur les points voisins de i, i-1 et i+1. Symbolisé sur le maillage spatio-temporel, cela me donne :

Maillage spatio-temporel DF

Pour mon calcul, je vais utiliser 3 buffers glissants : V[:,0] pour stocker le potentiel du passé (j-1) sur toute la ligne du maillage spatial, V[:,1] pour stocker le potentiel du présent (j) sur toute la ligne du maillage spatial et V[:,2] pour stocker le potentiel du futur (j+1) sur toute la ligne du maillage spatial. Après chaque calcul, je permute les buffers : le futur devient le présent et le présent devient le passé.

Revenons sur \( \alpha = c\dfrac{\Delta t}{\Delta x} \) qui détermine la stabilité de notre schéma numérique explicite. Il définit en effet le nombre CFL (Courant-Friedrich-Levy) qui doit respecter certaines règles pour garantir la stabilité du schéma.

En particulier, il doit être impérativement inférieur ou égal à 1, en dimension 1, ce qui impose des contraintes sur le choix du pas spatial et du pas temporel, la valeur de c étant un paramètre physique du système, ici en l'occurence sa valeur dépend de L et de C.

Cette contrainte peut être interprétée physiquement. En effet, on conçoit que le pas d'espace \( \Delta x \) doive être supérieur à la distance parcourue par l'onde de célérité c pendant un temps \( \Delta t \), ce que nous impose la condition \( c\dfrac{\Delta t}{\Delta x} \le 1 \) ou encore \( c\Delta t \le \Delta x \) .

Le code Python

Pour illustrer la propagation d'un signal sur une ligne sans perte, j'ai choisi de propager une onde gaussienne et de présenter le résultat sous forme d'une animation.

Je décris ci-dessous les principaux éléments du code qui vous me permettre de résoudre l'équation des télégraphistes en utilisant la technique matricielle et de produire l'animation. En d'autres termes, la fonction g(x) du mon problème de Dirichlet est une gaussienne et la fonction h(x) est sa dérivée par rapport à x.

Voyons d'abord les paramètres physiques et de discrétisation de la manip :

# paramètres physiques du système
L = 0.1             # inductance linéique
C = 2.5             # capacitance linéique
c = 1.0/sqrt(L*C)

# paramètres de la simulation
dx = 0.05              # pas spatial
LX = 200               # longueur de la ligne
Alpha = 1.0          
dt = sqrt(Alpha)*dx/c  # condition CFL

# paramètres du signal gaussien
mu = 0.0
sigma = 0.5
k = 1./(sigma*sqrt(2*pi))

# définition du vecteur Tension
V = zeros((LX+1,3),float)

La fonction init() est utilisée dans la fonction d'animation pour créer et initialiser à vide la liste des données à tracer :

# fonction d'initialisation
def init():
    line.set_data([],[])
    return line,

La fonction animate() permet elle de calculer les données nécessaires à l'animation en appliquant notre équation aux différences finies :

# fonction de tracé de l'animation
def animate(dum):
    i = arange(1,LX)
    V[i,2] = 2*V[i,1] - V[i,0] + Alpha*(V[i+1,1] + V[i-1,1] - 2*V[i,1])
    line.set_data(i,V[i,2])
    V[:,0] = V[:,1]
    V[:,1] = V[:,2]
    return line,

Les conditions du problème de Dirichlet sont définies, d'abord en fixant le signal initial, dans mon cas une gaussienne :

# construction de la gaussienne
X = 0.0
for i in range(0,LX):
    V[i,0] = k*exp(-0.5*((X - mu)/sigma)**2)
    X += dx

puis la condition sur la dérivée :

for i in range(1,LX):
    V[i,2] = V[i,0] + Alpha*(V[i+1,1] + V[i-1,1] - 2*V[i,1])
V[:,0] = V[:,1]
V[:,1] = V[:,2]

Reste maintenant à afficher le résultat animé, ce que je réalise avec les instructions suivantes :

# tracé de l'évolution
fig = plt.figure(figsize=(14,8))
ax = fig.add_subplot(111,autoscale_on=False, xlim=(0,LX), ylim=(-5,5))
plt.grid(True)
plt.title(u"Equation des télégraphistes sans perte - méthode DF")
plt.xlabel("X")
plt.ylabel("V(x,t)")
plt.hold("off")
line, = ax.plot([],[],lw = 2)
ani = animation.FuncAnimation(fig,animate,init_func=init,frames=5000,\
                              interval=20,blit=True)

plt.show()

Le script Python complet est disponible ici.

Les résultats

On observe la propagation de la gaussienne :

Propagation sur ligne sans pertes - DF

En laissant se propager l'onde, on la voit se réfléchir sur la bout de la ligne et revenir en étant inversée. Les conditions de sa réflexion en bout de ligne sont contraintes par les données du problème de Dirichlet tel que je l'ai posé. Vous pouvez essayer de les modifier et d'observer les conséquences de ces modifications.

On constate aussi qu'elle ne subit aucune déformation ni atténuation. Les valeurs de L et de C n'influent pas sur la forme de l'onde mais seulement sur sa célérité, à travers la valeur de \( c = \dfrac{1}{\sqrt{LC}} \).

Ligne avec pertes

Modélisation

L'équation

On considère maintenant que l'isolement est parfait et donc que G est nul (les pertes dans le diélectrique sont négligeables, ce qui est vrai dans les diélectriques modernes). L'équation d'évolution de la tension est donc :

\( \dfrac{\partial^2 V}{\partial x^2} = LC\dfrac{\partial^2 V}{\partial t^2} + RC\dfrac{\partial V}{\partial t} \)     (5)

Sa discrétisation

En employant la même méthode que ci-dessus, j'obtiens :

\( \dfrac{1}{(\Delta x)^2} (V[i+1,j] + V[i-1,j] - 2V[i,j]) = \dfrac{LC}{(\Delta t)^2} (V[i,j+1] + V[i,j-1] - 2V[i,j]) + \dfrac{RC}{2\Delta t} (V[i,j+1] - V[i,j-1]) \)

En isolant à gauche le terme \( V[i,j+1] \), en posant la condition CFL \( \Delta x = \dfrac{\Delta t}{\sqrt{LC}} \) et en réorganisant l'équation, j'arrive après quelques calculs à :

\( V[i,j+1] =  \dfrac{1}{\left(1 + \dfrac{R\Delta t}{2L}\right)} \left( V[i+1,j] + V[i-1,j] - \dfrac{1}{\left(1 - \dfrac{R\Delta t}{2L}\right)} V[i,j-1] \right) \)

C'est cette formule que je vais employer dans ma simulation.

L'algorithme

L'algorithme est identique à celui utilisé dans la cas d'une ligne sans perte.

Le code Python

Le code du script Python est très similaire à celui utilisé dans le cas d'une ligne sans perte. Seules diffèrent les définitions initiales du problème et la fonction animate().

Les conditions du problème de Dirichlet sont définies comme ci-dessus :

# construction de la gaussienne
X = 0.0
for i in range(0,LX):
    V[i,0] = k*exp(-0.5*((X - mu)/sigma)**2)
    X += dx

puis la condition sur la dérivée :

# conditions de bords
for i in range(1,LX):
    V[i,2] = (1.0/(1.0 + dt*R/2*L))*(V[i+1,1] + V[i-1,1] - (1.0 - R*dt/2*L)*V[i,0])
V[:,0] = V[:,1]
V[:,1] = V[:,2]

La fonction animate() devient :

def animate(dum):
    i = arange(1,LX)
    V[i,2] = (1.0/(1.0 + dt*R/2*L))*(V[i+1,1] + V[i-1,1] - (1.0 - R*dt/2*L)*V[i,0])         
    line.set_data(i,V[i,2])
    V[:,0] = V[:,1]
    V[:,1] = V[:,2]
    return line,

Le script Python complet est disponible ici.

Les résultats

Au lancement de la simulation, après quelques centaines d'unités de temps, j'observe la propagation de mon paquet d'ondes :

Propagation sur ligne avec pertes

Après plusieurs milliers d'itérations, l'amplitude du paquet a considérablement diminuée :

Propagation sur ligne avec pertes

Vous pourrez vérifier que la rapidité de l'atténuation dépend de la valeur de la résistance R.

Pour résumer, sur notre ligne :

Ces paramètres dépendent de la qualité de la ligne. C'est surtout la résistance de la ligne qui fut un problème, le signal électrique du télégraphe s'affaiblissant rapidement, ce qui contraignit fortement la longueur des lignes. Avant l'invention des amplificateurs, évidemment...

Rappelons que j'ai considéré que la perte dans l'isolant qui sépare les deux conducteurs est nulle. Dans les premières lignes, c'était loin d'être évident ! Vous pouvez en étudier l'impact en introduisant C dans l'équation discrète et en faisant la simulation. Là aussi, des progès furent fait dans la technologie des isolants, progès essentiellement apportés par la chimie des plastiques.

Contenu et design par Dominique Lefebvre - www.tangenteX.com avril 2019 Licence Creative Commons Contact :