Divers >
Reflexions > Quand Spice nous
fait tourner
en bourrique
Dernière mise à jour :
07/02/2009
Qu'est-ce donc que Spice ?
Spice est un outil logiciel qui permet de simuler le fonctionnement
d'un circuit électronique. Vous saisissez (dessinez) votre
montage, vous ajoutez une alimentation, un ou plusieurs
générateurs de signaux, puis vous placez une ou plusieurs
sondes aux endroits stratégiques du montage, qui vous
permettront de "voir" l'allure des signaux en ces points, sur un joli
graphe de type analogique ou numérique. Tout ça en
virtuel. Et quand tout se passe bien, vous pouvez avoir un bon
apperçu de ce que vous pourriez avoir avec une
réalisation
concrète (un vrai prototype, quoi). Seulement voilà...
Spice est-il fiable ?
Quelle drôle de question ! Si tant d'ingénieurs
l'utilisent à ce jour, la réponse doit être oui,
non ? Et puis qu'appelle-t-on fiabilité ? Le faible écart
obtenu entre résultats simulés et ceux obtenus une fois
le circuit imprimé terminé pour de bon ? En termes plus
simples, peut-on faire confiance aux résultats simulés ?
Si je peux me permettre de donner mon avis, voici ce que j'en pense.
J'utilise depuis plus de 14 ans un logiciel de conception electronique
(Proteus de Labcenter) dont le module de simulation est basé sur
le moteur Spice. J'ai bien remarqué les
améliorations considérables apportées au fil des
ans au module de simulation, et remarqué aussi l'explosion du
nombre de modèles (chaque composant doit disposer d'un
modèle qui
décrit son comportement et ses caractéristiques
principales au moteur de simulation. Si dans un schéma
électronique vous incluez un composant sans modèle - un
convertisseur de tension CC/CC très ancien par exemple, la
simulation de l'ensemble ne peut s'effectuer). J'ai commencé
à
toucher aux composants physiques à l'âge de 10 ans, bien
avant de lancer pour la
première fois une simulation sur un ordinateur. Et heureusement
que cela s'est passé dans cet ordre. J'ai rencontré ces
dernières années, des gens qui faisaient une confiance
incroyable aux résultats simulés. On leur montrait
ça à l'école, et certains de ces gens
en arrivaient à un point tel de confiance, qu'une simulation qui
ne fonctionnait pas ou qui donnait des résultats
abhérants ne pouvait être que le fruit d'une erreur dans
le schéma dessiné. J'ai pour ma part rencontré pas
mal de choses bizarre avec mon outil de simulation. J'ai dessiné
plusieurs circuits analogiques à base de transistors ou d'AOP,
où je n'avais pas fait d'erreur de saisie. La simulation ne
fonctionnait pas (erreur de type "trop d'itérations",
problème de convergence, qui est une erreur commune). Pourtant,
je savais que le montage
fonctionnerait quasiment à coup sûr, car j'en avais
déjà fait en vrai et ils fonctionnaient parfaitement !
Comment j'ai réussi à faire fonctionner la simulation ?
En modifiant légèrement la valeur d'un composant (12K1 au
lieu de 12K), en modifiant légèrement la valeur de la
tension d'alimlentation (12,1V au lieu de 12V par exemple), ou encore
en ajoutant une résistance de 1 M0 entre un point donné
et la masse. Tenez, j'ai cet exemple sous la main : un oscillateur tout
bête à deux transistors, qui ne veut pas "osciller" sur
l'ordinateur, alors qu'il oscille parfaitement en pratique !
Le premier schéma refuse obstinément d'osciller avec le
simulateur, alors qu'en pratique il démarre très bien
à chaque mise sous tension
(parce qu'il ne s'agit pas d'un oscillateur fonctionnant à
très haute fréquence, non plus). Le simple fait de
déséquilibrer une des deux moitiés du montage avec
une résistance de valeur légèrement
différente, permet de
démarrer aussitôt l'oscillation dans le simulateur (dans
cet exemple, modification de la valeur de la
résistance R3 de 22K en 22K1). Dans un sens, on pourrait faire
l'analogie avec le monde réel, dans lequel la symétrie
parfaite ne peut pas exister. Il y aura presque toujours ce petit truc,
cette petite
dissymétrie, que l'on n'a pas ici avec les composants
"parfaits". Croyez-moi, il y a vraiment peu de chances que vous
trouviez en pratique, deux transistors
parfaitement
identiques,
et
deux
résistance de 22K
parfaitement
identiques,
et
deux
résistance de 1K
parfaitement
identiques,
et
deux
condensateurs
parfaitement
identiques,
tout ça en même temps. Et ceci n'est qu'un exemple parmi
d'autres. Ca, c'était le passé, j'ai appris par la suite
que le refus de fonctionner du simulateur pouvait être
contrecarré par un paramétrage adéquat des valeurs
de base du système de simulation. Il faut tout de même
avouer que le simulateur fonctionne bien pour un grand nombre de
circuit, et que celui donné en exemple n'est là que pour
rappeler que nous sommes en face d'une machine, qui pour des raisons
que l'on ne maîtrise pas toujours, se bloque, tout comme cela
nous arrive à nous quand on est vexé. Je me suis
battu trop de temps avec ce genre de bétises, alors quand
ça ne fonctionne pas, j'applique mes règles de
"légère modification", et si décidement ça
ne veut rien savoir, je laisse tomber. Ne trouvez-vous pas qu'il y a
là des raisons de se poser des questions, et de regarder tous
les résultats avec un oeil méfiant ? Vous dessinez un
montage qui en pratique fonctionne et qui bloque dans le simulateur,
alors que penser d'une simulation qui fonctionne ?
Alors pourquoi utiliser Spice ?
Malgré cet avis qui
pourrait sembler un poil négatif, je reconnais que j'utilise de
plus en plus la simulation avant d'effectuer un montage. C'est
très pratique pour montrer
à des élèves, ou inclure dans un document
technique, la forme d'un signal à un
endroit donné. Et puis parce qu'il faut bien l'admettre, il
fonctionne bien avec certains circuits, notemment avec les circuits
logiques, même quand ces derniers comportent un composant
programmable (là, je prend mon pied car je gagne un temps
réellement précieux). J'ai appris à me
méfier des modèles de simulation des AOP, ce sont eux, je
crois, qui m'ont laissé voire le plus de choses curieuses. Il
faut dire qu'un certain nombre de modèles sont
élaborés parce que les utilisateurs de la simulation sont
demandeurs, et parce que certains fabricants veulent faire plaisir ou
ne pas paraître hors course (désolant de ne pas pouvoir
simuler un circuit complexe à cause d'un seul modèle
manquant, n'est-ce pas). Pourtant, l'élaboration d'un
modèle de composant destiné à la simulation
représente un travail considérable, si l'on veut que les
résultats se rapprochent un tant soit peu de la
réalité. Il ne me parrait pas du tout absurde d'ailleur
de trouver des modèles payants. Je
crois que si l'on reconnait les limites de l'outil
informatique de simulation, on peut en tirer de bonnes choses. Je ne
crois pas qu'il
s'agisse d'un outil que l'on peut utiliser en toute confiance, surtout
quand on n'a aucune
expérience pratique. Apprendre à l'école que cet
outil existe est une bonne chose, mais il faut mettre en garde
l'élève pour qu'il ne pense pas qu'il puisse s'agire d'un
outil infaillible. En informatique, je ne connais pas d'outil
conçu par l'homme qui soit
infaillible. Et vous ?
Que dire de plus ?
Oui, que dire de plus... Je n'ai même pas parlé des
conditions réelles d'utilisation des composants
électroniques, qui vont se retrouver sur un circuit
imprimé, avec des lignes d'alimentation qui deviennent des
lignes inductives, des capacités parasites entre pistes proches
qui vont
provoquer de la diaphonie ou amorcer une oscillation
indésirable... Toutes choses avec lesquelles un bon concepteur
est capable de jongler, et avec lesquelles le débutant se plante
un jour et apprend ainsi la "vraie vie". Oui, la conception
électronique n'est pas toujours aisée. Essayez donc de
réaliser un montage oscillateur "simple" utilisant un seul
transistor,
calculé pour osciller à 450 MHz. D'abord avec votre
simulateur préféré, puis ensuite avec de vrais
composants. Votre première maquette pratique fonctionne du
premier coup ? Bravo ! Coupez et rétablissez son alimentation
quelques fois, chauffez-le et refroidissez-le un peu, et dites-moi s'il
oscille toujours aussi bien... Pourtant, d'après l'ordinateur...