Netlists SPICE vérifiées et circuits d'exemple
Les circuits suivants sont des netlists pré-testées pour SPICE 2g6, avec courtes descriptions quand nécessaire. (Voir Chapitre 2 « Simulation par ordinateur de circuits électriques » pour plus d'infos sur netlists SPICE.)
N'hésitez pas à « copier » et « coller » toute netlist dans votre propre fichier source SPICE pour analyse et/ou modification. Double objectif : exemples pratiques de conception netlist SPICE pour mieux comprendre la syntaxe, et montrer à quel point les netlists SPICE peuvent être simples et compactes pour analyser des circuits simples.
Toutes les sorties de ces exemples ont été « nettoyées » d'infos superflues, pour la présentation la plus succincte possible. Je fais cela principalement pour économiser l'espace dans ce document.
Les sorties SPICE typiques contiennent beaucoup d'en-têtes et infos de résumé pas nécessairement pertinentes. Ne soyez pas surpris si votre propre simulation ne ressemble pas exactement à ce que je montre !
Exemple : réseau résistif multi-sources DC, partie 1
Sans card .dc et .print ou .plot, la sortie n'affichera que tensions nœuds 1, 2, 3 (référence nœud 0).
Netlist :
Multiple dc sources v1 1 0 dc 24 v2 3 0 dc 15 r1 1 2 10k r2 2 3 8.1k r3 2 0 4.7k .end
Sortie :
node voltage node voltage node voltage ( 1) 24.0000 ( 2) 9.7470 ( 3) 15.0000 voltage source currents name current v1 -1.425E-03 v2 -6.485E-04 total power dissipation 4.39E-02 watts
Exemple : réseau résistif multi-sources DC, partie 2
En ajoutant card .dc spécifiant V₁ de 24V à 24V par pas de 1 (24V constant), on peut utiliser .print pour afficher tensions entre n'importe quels points.
Curieusement, quand .dc est invoqué, les affichages tension par nœud (vers masse) disparaissent, donc il faut les spécifier explicitement dans .print pour les voir.
Netlist :
Multiple dc sources v1 1 0 v2 3 0 15 r1 1 2 10k r2 2 3 8.1k r3 2 0 4.7k .dc v1 24 24 1 .print dc v(1) v(2) v(3) v(1,2) v(2,3) .end
Sortie :
v1 v(1) v(2) v(3) v(1,2) v(2,3) 2.400E+01 2.400E+01 9.747E+00 1.500E+01 1.425E+01 -5.253E+00
Exemple : circuit constante de temps RC
Pour analyse DC, conditions initiales composants réactifs (C ou L) doivent être spécifiées (tension condensateurs, courant inductances). Fourni par dernier champ card condensateur (ic=0).
Pour analyse DC, option .tran (« transient ») doit être spécifiée : premier champ = incrément temps (secondes), second = durée totale (secondes), « uic » = « use initial conditions ».
Netlist :
RC time delay circuit v1 1 0 dc 10 c1 1 2 47u ic=0 c2 1 2 22u ic=0 r1 2 0 3.3k .tran .05 1 uic .print tran v(1,2) .end
Sortie :
time v(1,2) 0.000E+00 7.701E-06 5.000E-02 1.967E+00 1.000E-01 3.551E+00 1.500E-01 4.824E+00 2.000E-01 5.844E+00 2.500E-01 6.664E+00 3.000E-01 7.322E+00 3.500E-01 7.851E+00 4.000E-01 8.274E+00 4.500E-01 8.615E+00 5.000E-01 8.888E+00 5.500E-01 9.107E+00 6.000E-01 9.283E+00 6.500E-01 9.425E+00 7.000E-01 9.538E+00 7.500E-01 9.629E+00 8.000E-01 9.702E+00 8.500E-01 9.761E+00 9.000E-01 9.808E+00 9.500E-01 9.846E+00 1.000E+00 9.877E+00
Tracer et analyser un circuit AC sinusoïdal simple
Cet exercice montre la configuration correcte pour tracer valeurs instantanées d'une source sinusoïdale avec .plot (analyse transitoire). L'analyse Fourier nécessite aussi .tran sur plage temporelle adaptée.
La plage temporelle ici permet analyse Fourier avec précision médiocre. Plus de cycles de la fréquence fondamentale dans l'analyse transitoire, plus la Fourier sera précise. Ce n'est pas un caprice de SPICE, mais principe de base des formes d'onde.
Netlist :
v1 1 0 sin(0 15 60 0 0) rload 1 0 10k * change tran card pour meilleure précision Fourier * .tran 1m 30m .01m et inclure .options : * .options itl5=30000 .tran 1m 30m .plot tran v(1) .four 60 v(1) .end
Sortie : (tronquée pour brièveté — voir original pour complet)
Exemple : circuit RC AC simple
Card .ac spécifie points analyse AC de 60Hz à 60Hz, point unique. Plus utile pour multi-fréquences. Card .print sort tension AC nœuds 1-2 et nœud 2-masse.
Netlist :
Demo of a simple AC circuit v1 1 0 ac 12 sin r1 1 2 30 c1 2 0 100u .ac lin 1 60 60 .print ac v(1,2) v(2) .end
Sortie :
freq v(1,2) v(2) 6.000E+01 8.990E+00 7.949E+00
Exemple : circuit filtre passe-bas
Ce filtre passe-bas bloque AC et passe DC vers Rload. Typique pour supprimer ripple redresseur, il a une fréquence de résonance (techniquement passe-bande). Mais passe bien DC et bloque harmoniques haute fréquence du redressement AC-DC. Performance mesurée source AC balayant 500 Hz à 15 kHz. Card .print remplaçable/supplémentable par .plot pour tension AC nœud 4 graphique.
Netlist :
Lowpass filter v1 2 1 ac 24 sin v2 1 0 dc 24 rload 4 0 1k l1 2 3 100m l2 3 4 250m c1 3 0 100u .ac lin 30 500 15k .print ac v(4) .plot ac v(4) .end
Sortie : (tableau fréquences/amplitudes — voir original pour complet)
Exemple : réseau AC multi-sources
Un caprice SPICE : incapacité à gérer boucle exclusivement sources de tension et inductances en série. Boucle V₁-L₁-L₂-V₂-V₁ inacceptable.
Solution : insérer résistance faible dans la boucle. Rbogus entre 3 et 4 (1 pico-ohm), V₂ entre 4 et 0.
Netlist :
Multiple ac source v1 1 0 ac 55 0 sin v2 4 0 ac 43 25 sin l1 1 2 450m c1 2 0 330u l2 2 3 150m rbogus 3 4 1e-12 .ac lin 1 30 30 .print ac v(2) .end
Sortie :
freq v(2) 3.000E+01 1.413E+02
Exemple : circuit démonstration déphasage AC
Courants par branche indiqués par chutes tension sur résistances shunt (1 A = 1 V par 1 Ω), sorties v(1,2) et v(1,3). Phases courants par phases chutes tension, sorties vp(1,2) et vp(1,3).
Netlist :
phase shift v1 1 0 ac 4 sin rshunt1 1 2 1 rshunt2 1 3 1 l1 2 0 1 r1 3 0 6.3k .ac lin 1 1000 1000 .print ac v(1,2) v(1,3) vp(1,2) vp(1,3) .end
Sortie :
freq v(1,2) v(1,3) vp(1,2) vp(1,3) 1.000E+03 6.366E-04 6.349E-04 -9.000E+01 0.000E+00
Exemple : circuit transformateur
SPICE comprend transformateurs comme ensembles d'inductances mutuellement couplées. Pour simuler transformateur, spécifier primaire et secondaire comme inductances séparées, puis lier avec card « k » spécifiant constante couplage.
Pour transformateur idéal, couplage = 1. Mais SPICE ne gère pas cette valeur, donc 0.999. Tous couples enroulements doivent avoir leur card k. Transformateur 2 enroulements = 1 card k. 3 enroulements = 3 cards k (L₁-L₂, L₂-L₃, L₁-L₃). Ratio L₁/L₂ = 100:1 → transformation 10:1. 120V entrée → 12V sortie L₂. Ratio L₁/L₃ = 100:25 (4:1) → 2:1 → 60V sortie L₃.
Netlist :
transformer v1 1 0 ac 120 sin rbogus0 1 6 1e-3 l1 6 0 100 l2 2 4 1 l3 3 5 25 k1 l1 l2 0.999 k2 l2 l3 0.999 k3 l1 l3 0.999 r1 2 4 1000 r2 3 5 1000 rbogus1 5 0 1e10 rbogus2 4 0 1e10 .ac lin 1 60 60 .print ac v(1,0) v(2,0) v(3,0) .end
Sortie :
freq v(1) v(2) v(3) 6.000E+01 1.200E+02 1.199E+01 5.993E+01
Rbogus0 casse boucle V₁/L₁. Rbogus1, Rbogus2 très fortes donnent chemin DC vers masse circuits isolés. Sans références masse, SPICE produit erreurs !
Exemple : redresseur pont double alternance
Diodes, comme tous semi-conducteurs SPICE, doivent être modélisées. Heureusement SPICE inclut modèles génériques, diode = plus basique. Card .model spécifie « dmod1.
Pour tracer formes d'onde, spécifier tous paramètres source AC en une card et tracer avec .tran.
Netlist :
fullwave bridge rectifier v1 1 0 sin(0 15 60 0 0) rload 1 0 10k d1 1 2 mod1 d2 0 2 mod1 d3 3 1 mod1 d4 3 0 mod1 .model mod1 d .tran .5m 25m .plot tran v(1,0) v(2,3) .end
Sortie : (tracé forme d'onde redressée — voir original)
Exemple : amplificateur BJT base commune
Analyse balaye Vin 0 à 5V par pas 0.1V, imprime tension collecteur-émetteur v(2,3). Transistor Q1 = NPN Beta direct 50.
Netlist :
Common-base BJT amplifier vsupply 1 0 dc 24 vin 0 4 dc rc 1 2 800 re 3 4 100 q1 2 0 3 mod1 .model mod1 npn bf=50 .dc vin 0 5 0.1 .print dc v(2,3) .plot dc v(2,3) .end
Sortie : (tableau Vin vs Vce — voir original)
Exemple : amplificateur JFET source commune auto-biais
Netlist :
common source jfet amplifier vin 1 0 sin(0 1 60 0 0) vdd 3 0 dc 20 rdrain 3 2 10k rsource 4 0 1k j1 2 1 4 mod1 .model mod1 njf .tran 1m 30m .plot tran v(2,0) v(1,0) .end
Sortie : (tracé formes d'onde — voir original)
Exemple : amplificateur opérationnel inverseur
Pour simuler AOP idéal dans SPICE, source de tension dépendante comme amplificateur différentiel gain très élevé. Card « e » : 4 nœuds, 3 et 0 sortie, 1 et 0 entrée. Pas d'alimentation nécessaire pour source dépendante. Gain 999 000. Vin (V₁) balayé 0 à 3.5V par pas 0.05V.
Netlist :
Inverting opamp v1 2 0 dc e 3 0 0 1 999k r1 3 1 3.29k r2 1 2 1.18k .dc v1 0 3.5 0.05 .print dc v(3,0) .end
Sortie : (tableau Vin vs Vout — voir original)
Exemple : amplificateur opérationnel non-inverseur
Autre caprice SPICE : source dépendante « e » n'étant pas considérée charge pour V₁, SPICE croit V₁ en circuit ouvert et refuse analyse. Fix : Rbogus en parallèle avec V₁ comme charge DC. 10 kΩ convient. Pas de balayage Vin pour simplicité.
Netlist :
noninverting opamp v1 2 0 dc 5 rbogus 2 0 10k e 3 0 2 1 999k r1 3 1 20k r2 1 0 10k .end
Sortie :
node voltage node voltage node voltage ( 1) 5.0000 ( 2) 5.0000 ( 3) 15.0000
Exemple : amplificateur d'instrumentation
Rbogus1 et Rbogus2 très fortes (non montrées schéma) aux entrées V₁ et V₂, pour éviter circuit ouvert comme autres AOP.
Netlist :
Instrumentation amplifier v1 1 0 rbogus1 1 0 9e12 v2 4 0 dc 5 rbogus2 4 0 9e12 e1 3 0 1 2 999k e2 6 0 4 5 999k e3 9 0 8 7 999k rload 9 0 10k r1 2 3 10k rgain 2 5 10k r2 5 6 10k r3 3 7 10k r4 7 9 10k r5 6 8 10k r6 8 0 10k .dc v1 0 10 1 .print dc v(9) v(3,6) .end
Sortie : (tableau — voir original)
Exemple : intégrateur AOP entrée sinusoïdale
Netlist :
Integrator with sinewave input vin 1 0 sin (0 15 60 0 0) r1 1 2 10k c1 2 3 150u ic=0 e 3 0 0 2 999k .tran 1m 30m uic .plot tran v(1,0) v(3,0) .end
Sortie : (tracé — voir original)
Exemple : intégrateur AOP entrée onde carrée
Netlist :
Integrator with squarewave input vin 1 0 pulse (-1 1 0 0 0 10m 20m) r1 1 2 1k c1 2 3 150u ic=0 e 3 0 0 2 999k .tran 1m 50m uic .plot tran v(1,0) v(3,0) .end
Sortie : (tracé intégration onde carrée → rampe — voir original)
Technologie industrielle
- Configuration analyse AC, DC, transitoire, Fourier et options SPICE
- Circuits de permission et d'interverrouillage dans les systèmes de commande industriels
- Circuits Moyenneur Passif et Additionneur Ampli Op : De la Moyenne à l'Addition
- Comprendre les Circuits Ampli Op Dérivateur et Intégrateur
- Circuits Radio à Cristal et Transistor : Du Détecteur de Base aux Récepteurs AM/FM Intégrés
- Circuits de Commande : Fondamentaux, Applications et Bonnes Pratiques
- Comprendre les circuits série et parallèle : Fonctionnement et importance
- Circuits diviseurs de courant : Théorie, formule et applications pratiques
- Stratégies complètes pour la mise à la masse des PCB et l'atténuation des EMI