Lorenz, Rössler, ampli-op et calcul analogique
Piste rouge Le 5 décembre 2015 Voir les commentaires (10)
Il fut un temps (dont les trois auteurs - qui ont pourtant plus de vingt ans ! - ont seulement entendu parler), où les ordinateurs tels qu’on les connaît aujourd’hui n’existaient pas. Si si, il paraît ! En ce temps-là donc, les ingénieurs et les scientifiques qui avaient besoin de faire des calculs, utilisaient des calculateurs analogiques [1]. Nous allons voir dans la suite comment fabriquer un tel calculateur et résoudre quelques-unes de nos équations différentielles préférées. À suivre donc, un petit TP d’électronique !
Dans un article précédent, T’es sûr du résultat ?, nous nous amusions à résoudre numériquement une équation différentielle. Pour cela, l’idée était simplement d’écrire un programme pour calculer pas à pas une solution approchée et de demander à notre ordinateur d’effectuer la suite de calculs. De nombreux problèmes se prêtent volontiers à une modélisation par une équation différentielle que l’on discrétise au moment de calculer des solutions approchées, nos ordinateurs ne travaillant qu’avec des quantités numériques discrètes.
- Contrairement aux apparences, ce n’est pas Galilée en haut de la tour...
Un calculateur analogique utilise au contraire des mesures physiques continues pour modéliser un problème. Ces grandeurs physiques peuvent être d’origine mécanique, hydraulique ou électrique. Un calculateur analogique réalise ainsi des calculs sur des équations différentielles en remplaçant un ensemble de variables par un autre ensemble de variables, physiques. Voici un petit exemple avec une équation différentielle très simple :
\[x'' = g,\]
où $x$ est une fonction réelle et $g$ une constante strictement positive, valant disons... $9.8$ [2]. Notons $x_0 = x(0)$ la valeur de $x$ à l’instant 0. Pour calculer approximativement la solution [3], deux possibilités :
- discrétiser le problème et faire le calcul pas à pas avec un ordinateur (avec une méthode d’Euler par exemple) ;
- monter en haut d’une tour pour se placer à l’altitude $x_0$, lâcher un caillou et enregistrer en temps réel l’altitude du caillou. Les lecteurs les plus ingénieux pourront imaginer un système concret pour réaliser cette mesure et tracer la solution en temps réel :-).
Autre exemple : vous souhaitez intégrer une équation différentielle de la forme
\[a.x'' + b.x' + c.x = 0,\]
où $a$, $b$ et $c$ sont trois constantes. Eh bien, prenez une masselotte qui oscille au bout d’un ressort et mesurez à chaque instant l’altitude de la masselotte. Voilà ! Vous venez de construire un calculateur analogique pour l’équation différentielle précédente avec des coefficients $a$, $b$, $c$ bien déterminés qui dépendent de la raideur du ressort, des frottements, de la masse, de la pesanteur. Petit désagrément tout de même : les coefficients $a$, $b$ et $c$ sont difficiles à changer... Par exemple, on voit mal comment faire varier la pesanteur ou le coefficient de frottement de l’air...
Alors, voici maintenant un exemple électrique analogue : le fameux circuit RLC, constitué d’une résistance $R$, d’une bobine $L$ et d’un condensateur $C$. La grandeur physique $x$ est cette fois la tension aux bornes du condensateur et, là encore, vous réalisez un intégrateur analogique de l’équation différentielle ci-dessus [4]. Dans ce cas, c’est très facile de faire varier les trois paramètres $R$, $L$ et $C$. Et de visualiser la tension $x$ avec un oscilloscope ou une table traçante.
- Une table traçante à l’École des Mines d’Aix-la-Chapelle (1970)
Petit conseil de lecture, l’article Les calculateurs analogiques d’Alain Brochier et François Rechenmann, publié sur Interstices : on comprend en le lisant que fabriquer une machine qui est modélisée par l’équation différentielle que l’on souhaite étudier n’est pas du tout chose facile ; et que faire fonctionner une telle machine était un art qui demandait beaucoup de patience et de persévérance...
Quelques mots sur le modèle continu de calcul universel
Le modèle continu de calcul universel (GPAC) est un modèle mathématique pour le calcul analogique qui a été introduit en 1941 par Claude Shannon. Sans rentrer dans les détails, quelques mots pour dire que le modèle s’appuie sur cinq briques élémentaires permettant de faire des additions, des multiplications, des intégrations, des ajouts et des multiplications par des constantes [5]. Aujourd’hui encore, le GPAC reste, du point de vue théorique au moins, un sujet de recherche actif (voir par exemple les travaux d’Olivier Bournez). Les lecteurs à la recherche de définitions précises trouveront leur bonheur notamment dans ce manuscrit (HdR d’Olivier Bournez). Le manuscrit de thèse d’Emmanuel Hainry est également une référence concernant le GPAC [6], ainsi que celui de Daniel Graça [7]. Enfin mentionnons la récente thèse d’Amaury Pouly qui apporte la preuve qu’on peut parler de complexité dans ces modèles.
Il y a sûrement de nombreuses raisons de s’intéresser au GPAC. L’une d’entre elles est sans nul doute que beaucoup y voient là des arguments supplémentaires pour soutenir un peu plus encore la thèse de Church-Turing dont on connaît l’importance en informatique et plus particulièrement en théorie de la calculabilité. Pour une introduction aux différentes formes de la thèse de Church-Turing (et bien d’autres choses encore !), on ne pourra que conseiller le délicieux livre Les métamorphoses du calcul de Gilles Dowek.
Un composant électronique précieux : l’ampli-op
- Différents modèles d’ampli-op
Un ampli-op (en vrai on devrait dire amplificateur opérationnel) est un amplificateur différentiel électronique qui amplifie une différence de potentiel électrique présente à ses entrées. Il a été initialement conçu pour effectuer des opérations mathématiques dans les calculateurs analogiques et permettait de modéliser les opérations mathématiques de base comme l’addition, la soustraction, l’intégration, la dérivation et d’autres. Ses applications vont bien au-delà et en font l’un des composants électroniques passe-partout puisqu’il est petit, pas cher et costaud. On le trouve en général sous forme de circuit intégré et si on met le nez dedans, on y trouvera essentiellement des transistors.
- Sommateur inverseur
Bon, mais concrètement que peut-on faire avec un ampli-op ? Eh bien, avec le montage ci-contre (l’ampli-op, c’est le gros carré avec une entrée $-$, une $+$ et une sortie) et toutes les résistances égales, vous réalisez un sommateur inverseur, c’est-à-dire que la tension en sortie est l’opposée de la somme des tensions en entrée :
\[V_S = - (V_1 + ... + V_n).\]
- Intégrateur
Et avec celui-ci, vous réalisez un intégrateur, c’est-à-dire que la tension de sortie est proportionnelle à l’intégrale dans le temps de la tension d’entrée. Plus précisément :
\[V_S(t) = \frac{-1}{RC} \int_0^{t} V_e(s) ds.\]
Sympa, non ? Sur cette page Wikipédia [8], vous trouverez tous les montages de base de l’ampli-op pour réaliser vos désirs électroniques les plus fous.
Notre premier montage et une jolie sinusoïde :-)
Pour s’échauffer, essayons de visualiser une sinusoïde. Rien de plus simple théoriquement puisqu’il s’agit d’une solution de l’équation différentielle
\[x'' = -\omega^2.x,\]
où $\omega$ est une constante strictement positive qu’on appelle la pulsation. Concrètement il nous faut être capable de réaliser une multiplication par une constante et une double intégration. Quelques nécessaires gribouillis au tableau d’abord... et la même chose ci-dessous en plus lisible.
Plus précisément, notre circuit réalise l’équation différentielle précédente avec
\[\omega^2 = \frac{1}{R_1 C_1 R_2 C_2}.\]
Nous prenons $R_1 = R_2 = 1 \, M\Omega$ et $C_1 = C_2 = 470 \, nF$, soit une pulsation $\omega = 2.1 \, s^{-1}$, et donc une fréquence $f = \frac{\omega}{2\pi}$ d’environ $0.33 \, Hz$ [9].
Et voilà, y’a plus qu’à ! Après quelques minutes et quelques premiers câblages hasardeux, on contemplait sur notre oscilloscope une jolie sinusoïde. Ça marche !
Première remarque. Les lecteurs observateurs remarqueront que la sinusoïde a l’air d’être amortie dans le temps. Ben oui ! Nos raisonnements et nos équations sont toutes théoriques, alors qu’en pratique il y a des petites pertes un peu partout dans notre montage, sans parler de nos composants électroniques qui ne sont pas les plus chers du marché... Il faut donc remettre de temps en temps un petit coup de jus dans le circuit :-).
Deuxième remarque. Toujours pour les plus observateurs : notre montage est sur la plaque à essai de droite. Sur la plaque de gauche, c’est un pont diviseur de tension (qui est également gribouillé sur le tableau gauche ci-dessus) : c’est un petit montage qui permet d’avoir une tension bien équilibrée +V, -V par rapport à la masse (qui est notre référence pour mesurer les différences de potentiel dans le circuit) égale à 0.
Troisième remarque. Le montage que nous venons de réaliser est un peu différent des montages de base de l’ampli-op dont nous parlions dans le paragraphe précédent. En effet ces derniers ne faisaient que réaliser un calcul analogique sur les signaux en entrée, la sortie étant justement le résultat du calcul en question. Alors que dans le montage que nous venons de voir, on est en circuit fermé (ce qui nous ramène à la première remarque d’ailleurs !) afin de modéliser un système d’équations (différentielles grâce aux primitives d’intégration). Il faut donc comprendre qu’ainsi on peut modéliser n’importe quel jeu d’équations différentielles (algébriques tout de même), avec comme conséquence de contraindre les grandeurs physiques (ici la tension) à satisfaire une solution du système qu’il ne reste plus qu’à visualiser.
L’attracteur de Rössler
L’attracteur de Rössler doit son nom au biochimiste allemand Otto Rössler ; c’est en 1976 que Rössler publia son équation différentielle [10] qui allait donner naissance à l’attracteur chaotique « le plus simple », comme le qualifiera plus tard Edward Lorenz. Voici le système de Rössler qui, en plus de son intérêt purement théorique, s’avère également utile dans la modélisation de l’équilibre de certaines réactions chimiques :
\[\left\{
\begin{array}\\
\frac{dx}{dt}&=&-y-z\\
\frac{dy}{dt}&=&x+a.y\\
\frac{dz}{dt}&=&b+z.(x-c)\\
\end{array}
\right.\]
Les valeurs traditionnelles pour les paramètres $a$, $b$ et $c$ sont respectivement $0.2$, $0.1$ et $5.7$.
Bon, mais à quoi ça ressemble tout ça ? Alors, c’est le moment de regarder les premières minutes du dernier chapitre de Chaos, où l’on voit notamment que le comportement (chaotique ou pas) du système dépend des valeurs des paramètres.
Il est maintenant temps de concevoir un montage électronique pour simuler cette équation différentielle. Retour donc au tableau blanc !
Si on veut pouvoir visualiser quelque chose [11], quelques calculs « à la louche » nous incitent à faire un petit changement de variable inoffensif : $X = x$, $Y = y$ et $Z = z/2$. On se lance dans l’aventure avec une résistance de référence $R_1 = 100 \, k\Omega$, les quatre autres résistances de notre montage sont déterminées par les coefficients (notamment $a$ et $c$) du système de Rössler :
\[R_2 = \frac{R_1}{a}, R_3 = \frac{R_1}{10}, R_4 = \frac{R_1}{c}, R_5 = \frac{R_1}{2}.\]
C’est en le faisant qu’on comprend rapidement qu’il faut être patient et méticuleux (en plus d’avoir une bonne vue de près !) car on a vite fait de brancher un fil dans le mauvais trou de la plaque à essai... Mais après quelques « sapristi, c’est quoi qui cloche ? » [12], oh miracle, ça marche !
L’attracteur de Lorenz
Ne résistons pas davantage à l’appel de la plus médiatique des équations différentielles chaotiques, le système de Lorenz.
Les chapitres 7 et 8 de Chaos lui sont presque entièrement consacrés. Nous n’en dirons pas davantage ici sur l’importance de cet exemple. Rappelons simplement le système en question :
\[\left\{\begin{array}\\ \frac{dx}{dt}&=&\sigma.(y-x)\\ \frac{dy}{dt}&=&x.(\rho - z) - y\\ \frac{dz}{dt}&=&x.y - \beta.z\\ \end{array} \right. \]
les valeurs traditionnelles de $\sigma$, $\beta$ et $\rho$ étant 10, 8/3 et 28.
Les lecteurs inquiets de ne pas voir de fils sur la plaque comme dans l’exemple précédent seront rassurés d’apprendre que l’un d’entre nous a pris son courage à deux mains et surtout son fer à souder. Donc tous les fils sont en fait soudés sous la plaque. Électronicien n’est pas un métier de tout repos !
Les détails techniques. On commence par faire un changement de variables, histoire de redimensionner les valeurs et rester dans les plages de tolérance de nos composants. On pose donc
\[\left\{\begin{array}\\ X&=&x/10\\ Y&=&-y/10\\ Z&=&z/10\\ \end{array} \right. \]
Le signe $-$ devant $y$ nous permet d’économiser un inverseur, rien de plus. Pour les valeurs des résistances, on a pris :
\[R_4 = 1 M\Omega, R_1 = R_4/\sigma = 100 k\Omega, R_2 = R_4/\rho \approx 35.7 k\Omega,\]
\[R_3 = R_4/100 = 10 k\Omega, R_5 = R_4/\beta = 375 k\Omega,\]
et pour le condensateur $C = 470 nF$ [13].
Pour terminer...
Et si on faisait dialoguer l’oscilloscope avec notre ordinateur ? On pourrait ainsi imaginer récupérer les données enregistrées par l’oscillo et fabriquer une belle image de papillon. Sitôt dit, sitôt fait, petit script python qui va bien pour récupérer lesdites données en communication série avec l’oscillo et les dessiner avec la librairie matplotlib (on affiche environ 15 à 20 fois plus de points que sur l’écran de l’oscillo).
C’est un début... Essayons maintenant de relier artificiellement les points successifs [14].
Enfin un petit coup de lissage [15] pour terminer... et faire plus joli :-).
Dédicace à celles et ceux qui n’en gardent pas forcément un super souvenir : en fait, c’est vraiment sympa l’électronique :-). Et puis résoudre des équations différentielles avec un ampli-op, c’est quand même amusant sur le principe. À vrai dire, cette idée nous a suffi pour nous motiver à relever le challenge !
Merci aux relecteurs qui nous ont permis d’améliorer une première version de ce texte : amic, Sébastien Peronno et ERHCNRS.
Notes
[1] On pourra à ce propos relire l’article Les mathématiques face à l’ordinateur de Maarten Bullynck et Liesbeth De Mol à propos d’une session récente du Séminaire d’histoire des mathématiques de l’IHP.
[2] La notation $x'$ désigne la dérivée de la fonction $x$ et $x''$ sa dérivée seconde.
[3] Cette équation étant particulièrement simple, on peut facilement en donner une solution exacte, mais nous n’en ferons rien !
[4] Plus précisément, l’équation différentielle qu’on obtient est $LC.x'' + RC.x' + x = 0$.
[5] On distingue la multiplication entre deux signaux de la multiplication par une constante. Une bonne analogie est celle de structure d’algèbre en mathématiques où on dispose d’une multiplication interne des éléments, ainsi que d’une multiplication externe par les scalaires.
[6] voir par exemple page 40 pour une définition et une caractérisation des fonctions GPAC-calculables
[7] voir page 28 pour les définitions
[8] d’où proviennent les deux schémas ci-dessus
[9] Pour mémoire, les résistances se mesurent en ohms ($\Omega$), les capacités en farads ($F$) et les fréquences en hertz ($Hz$).
[10] Rössler, O. E. (1976), « An Equation for Continuous Chaos », Physics Letters 57A (5) : 397–398
[11] plus précisément, c’est à cause des ampli-ops et des multiplieurs (qui ne peuvent fournir en sortie qu’une tension dans l’intervalle de leur tension d’alimentation, soit ici, et classiquement, -15/+15V) ; sans parler du fait que les ampli-ops claquent au delà de -18 V /+18 V)...
[12] Version littéraire de « c’est quoi ce bord... de mer... ! ».
[13] Pour info, dans tous nos montages, les ampli-ops utilisés sont des TL084 et TL074 et les multiplieurs des AD633.
[14] Précisons que les données récupérées ne sont pas les mesures (qui sont théoriquement relativement précises) mais correspondent en fait à l’affichage de l’oscilloscope sur une résolution 0-255 ; d’où une perte de précision au passage qui anéantit un peu tout espoir d’une visualisation à plus haute résolution sur ordinateur par la suite.
[15] Attention, trop de lissage tue le lissage (ou du moins altère un peu trop les données) : il faut donc trouver le bon compromis. Le rayon retenu pour notre moyenne glissante est de 7 : pour chaque point, on calcule sa moyenne en tenant compte des 7 points qui le précèdent et des 7 points qui le suivent.
Partager cet article
Pour citer cet article :
Aurélien Alvarez, Bastien Le Gloannec, Vivien Pelletier — «Lorenz, Rössler, ampli-op et calcul analogique» — Images des Mathématiques, CNRS, 2015
Laisser un commentaire
Actualités des maths
-
5 mars 2023Maths en scène : Printemps des mathématiques (3-31 mars)
-
6 février 2023Journées nationales de l’APMEP, appel à ateliers (9/4)
-
20 janvier 2023Le vote électronique - les défis du secret et de la transparence (Nancy, 26/1)
-
17 novembre 2022Du café aux mathématiques : conférence de Hugo Duminil-Copin (Nancy et streaming, 24/11)
-
16 septembre 2022Modélisation et simulation numérique d’instruments de musique (Nancy & streaming, 22/9)
-
11 mai 2022Printemps des cimetières
Commentaire sur l'article
Lorenz, Rössler, ampli-op et calcul analogique
le 5 décembre 2015 à 08:50, par ROUX
Lorenz, Rössler, ampli-op et calcul analogique
le 6 décembre 2015 à 22:50, par Aurélien Alvarez
Lorenz, Rössler, ampli-op et calcul analogique
le 7 décembre 2015 à 14:06, par Pierre-Antoine Guihéneuf
Lorenz, Rössler, ampli-op et calcul analogique
le 8 décembre 2015 à 09:29, par Aurélien Alvarez
Lorenz, Rössler, ampli-op et calcul analogique
le 12 décembre 2015 à 15:30, par M. Ponchant
Lorenz, Rössler, ampli-op et calcul analogique
le 8 février 2018 à 21:04, par yvettebouonon
Lorenz, Rössler, ampli-op et calcul analogique
le 14 octobre 2020 à 20:43, par LORD+KELVIN
Lorenz, Rössler, ampli-op et calcul analogique
le 15 octobre 2020 à 14:31, par LORD+KELVIN
Lorenz, Rössler, ampli-op et calcul analogique
le 15 octobre 2020 à 15:36, par LORD+KELVIN
Lorenz, Rössler, ampli-op et calcul analogique
le 6 août 2021 à 01:52, par Marcello di Gennaro