Ngspice is an update of Spice3f5, the last Berkeley’s release of Spice3 simulator family. SPICE = Simulation Program with Integrated Circuit Emphasis
Ngspice home : http://ngspice.sourceforge.net/
Release (executable) for Windows : http://sourceforge.net/projects/ngspice/files/ng-spice-rework/36/ngspice-36_64.zip
Download the zip file for ngspice-36_64 (about 10 MB). Expand this zip file into you working directory, for instance C:. In MS Windows 10 you might need admin rights to do so. Thus you will get C:\Spice64 with several sub-directories. The main program ngspice.exe resides in folder C:\Spice64\bin.
Other OS, check : https://sourceforge.net/projects/ngspice/files/ng-spice-rework/36/
Il semblerait que l’installation sur Mac pose problème avec l’une des dernières mises à jour de l’OS (note écrite en mars 2022). Voici une procédure qui devrait solutionner le problème (un grand merci à Matthieu Azzoun, promo E1 2021/22).
Tout d’abord, installer Xcode (disponible sur l’app store).
Pour installer Ngspice :sudo port install ngspiceIl est possible qu'il faille rentrer son mot de passe et accepter des demandes du terminal pendant l'installation du programme.
Le programme se situe dans /opt/local/bin (pour y accéder directement à partir du Finder, maintenir enfoncé : Shift + Command + G). Il est fonctionnel mais les graphiques ne s'affichent pas.
Pour afficher les graphiques sur Mac Os :
Le circuit est composé d’une source de tension continue V1 = 10 V et de 2 résistances R1 = 9 kOhms et R2 = 1 kOhms. Le nœud de connexion entre V1 et R1 est noté n1, celui entre R1 et R2 est noté n2. Le nœud 0 correspond à la masse.
Voltage divider ; 1ère ligne = titre
V1 n1 0 10
R1 n1 n2 9k
R2 n2 0 1k
.tran 1u 1m ; pour une simulation temporelle (transitoire) pendant 1 ms avec un pas de calcul de 1 µs
.end
Mettre les commandes entre
.control
et
.endc
Ce qui donne pour l’exemple ci-dessus :
voltage divider
V1 n1 0 10
R1 n1 n2 9k
R2 n2 0 1k
.tran 1u 1m
.control
run
plot v(n1)
plot v(n2)
plot v(n1) v(n2)
plot v(n1)-v(n2)
.endc
.end
Sauvegarder la netlist dans un fichier div2.cir et lancer le script dans ngspice
Pour mettre une ligne en commentaire, la commencer par “;”
c → capacité
l → inductance
i → source de courant
C1 n1 n2 1p ; capa de 1pF
L1 n1 n2 1n ; inductance de 1nH
i1 n1 n2 10 ; source de courant de 10V
V1 n1 n2 10 ac 1 ; pour pouvoir faire une simulation petit signal (signal d'entrée d'amplitude 1V --> on trace Vs/1v=Vs/Ve <=> diagramme de Bode)
V1 n1 n2 sin(0 1 1k) ; sinus d'offset nul, d'amplitude crête 1V et de fréquence 1kHz
V1 n1 n2 pulse(niveau_bas niveau_haut delais temps_montée temps_descente largeur période) ; source créneau
.ic v(n1)=0 v(n2)=0 v(n3)=0 ; conditions initiales (ici à zéro)
.ac dec 100 1 100Meg ; simulation petit signal entre 1Hz et 100MHz, échelle log avec 100 points par décade
.tran 1u 1m UIC ; ne calcule pas le point de fonctionnement (--> necessaire pour observer la charge/décharge d'un condensateur par exemple)
plot vdb(n2) ; affichage de la tension en dB
plot ph(n2) ; affichage de la phase