SPICE : pièges courants et comment les éviter
« Garbage in, garbage out. » — Anonyme
SPICE est un moteur de simulation fiable, mais il a quelques idiosyncrasies qui peuvent piéger même les utilisateurs expérimentés. Cet article se concentre sur les règles subtiles de format de fichier et topologie de circuit que SPICE impose, pas sur les bugs donnant des résultats incorrects. Beaucoup de ces particularités étaient spécifiques à SPICE 2g6 mais peuvent resurgir dans les versions récentes.
Un début de fichier correct
Toute netlist SPICE doit commencer par une ligne non-composant — typiquement un titre, commentaire, ou ligne vide. Si la première ligne est une card composant, SPICE s'arrête avec « serious error », souvent en accusant à tort les connexions de nœuds. Un simple saut de ligne ou commentaire suffit.
Une fin de fichier propre
La card finale .end doit être écrite sans caractère de fin de ligne. Après avoir tapé .end, arrêtez le curseur immédiatement après le « d » et n'appuyez PAS sur [Entrée]. Sinon SPICE signale « missing .end card », qui n'affecte pas la simulation mais encombre la sortie.
Inclure le nœud 0
Le nœud 0 est la référence de masse pour toutes les tensions. Toute netlist valide doit contenir le nœud 0 ; sinon SPICE ne peut pas résoudre l'échelle de tension. Exemple sortie analyse DC :
node voltage node voltage ( 1) 15.0000 ( 2) 0.6522
Ici nœud 1 = 15 V au-dessus de la masse, nœud 2 = 0,6522 V au-dessus de la masse.
Ne pas laisser de circuits ouverts
Les circuits ouverts — particulièrement sources de tension en circuit ouvert — brisent la capacité de SPICE à trouver un chemin de courant. En connectant une source de tension à l'entrée d'une source dépendante (ex. modèle amplificateur opérationnel), insérez une résistance de forte valeur (souvent appelée rbogus) pour fournir une charge minimale et maintenir la simulation.
Éviter les boucles inductances/sources de tension « mortes-vivantes »
SPICE traite les inductances comme courts-circuits et les condensateurs comme circuits ouverts en analyse DC. Conséquemment, boucles ininterrompues d'inductances ou sources de tension, ou condensateurs en série sans chemin DC, font échouer le solveur. Patterns fautifs typiques :
netlist l1 2 4 10m l2 2 4 50m l3 2 4 25m
netlist v1 1 0 dc 12 l1 1 0 150m
netlist c1 5 6 33u c2 6 7 47u
Remède : insérer résistance shunt faible pour inductances, forte pour condensateurs. Exemple inductances :
original netlist l1 2 4 10m l2 2 4 50m l3 2 4 25m
fixed netlist rbogus1 2 3 1e-12 rbogus2 2 5 1e-12 l1 3 4 10m l2 2 4 50m l3 5 4 25m
Les résistances rbogus sont quasi-nulles (1 pΩ), assurant que la boucle d'inductances n'apparaît plus comme court-circuit parfait. Pour condensateurs :
original netlist c1 5 6 33u c2 6 7 47u
fixed netlist c1 5 6 33u c2 6 7 47u rbogus 6 7 9e12
Un shunt 9 TΩ maintient le chemin DC sans affecter le comportement AC.
Mesurer le courant dans SPICE
Sondes de tension simples — référencer les deux nœuds. Sondes de courant nécessitent une référence source de tension. Si votre circuit n'en a pas, insérez une source « bogus » à tension nulle pour ancrer la mesure :
c1 4 7 22u vbogus 6 4 dc 0 .print ac i(vbogus)
L'analyse AC s'applique toujours, la source nulle n'altère pas la simulation.
Note : SPICE assigne polarité courant opposée à la convention pour source DC. Circuit série simple :
example v1 1 0 r1 1 2 5k r2 2 0 5k .dc v1 10 10 1 .print dc i(v1) .end
SPICE rapporte –1 mA car courant sortant borne négative de v1 est considéré négatif. Réorienter la source nulle peut forcer lecture positive.
Conseils analyse Fourier
En analyse Fourier (domaine fréquentiel), toujours imprimer/tracer la forme d'onde cible ; sinon SPICE pause et avorte après « initial transient solution ». Pour sources impulsionnelles générant ondes carrées, fournissez temps de montée/descente réalistes. Une onde carrée idéale (fronts instantanés) introduit incorrectement harmoniques paires dans la transformée de Fourier de SPICE.
Technologie industrielle
- Construire un Autocomplete Temps Réel Style Google : Architecture, Design et Meilleures Pratiques
- Démarrer avec SPICE : outil de simulation de circuits en mode texte
- L'évolution de SPICE : des racines CANCER à la simulation moderne
- Utiliser l'interface en ligne de commande avec SPICE
- Maîtriser la syntaxe des netlists SPICE : nommage, composants passifs/actifs, sources
- Déterminisme et tolérance aux pannes : principes de conception essentiels pour les réseaux de contrôle industriels
- Guide complet de modélisation des dispositifs semi-conducteurs dans SPICE
- Décoder les Particularités du JFET : Pièges Courants et Comment les Maîtriser
- Particularités Courantes des IGFETs et Comment les Atténuer