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 !

Osc 000a Osc 000a

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...