Je souhaite tracer le courant et la puissance dans ngspice. Dans le cas de la tension, par exemple, si je voulais tracer la tension au nœud 1, j'utiliserais:
plot v(1)
Le problème est que lorsque j'essaye i (1), le vecteur n'est pas reconnu. Quelqu'un pourrait-il fournir quelques exemples sur la façon de procéder?
i(1)
est toujours 0.Réponses:
Oli a donné une bonne réponse mais le I (nom_élément) est une extension ajoutée uniquement aux versions commerciales SPICE.
Dans ngspice (qui est basé sur Berkeley Spice 3), vous ne pouvez tracer des courants qu'à travers des sources de tension (indépendantes). Ce sont les seuls courants qui apparaissent dans les équations du circuit à partir desquelles SPICE fonctionne.
Dans une session Spice interactive ou à partir d'un bloc spécial du script (voir également cette question ), vous pouvez utiliser des expressions comme
(v(1)-v(2))/1k
lorsque le courant passe par une résistance de 1 kΩ entre les nœuds 1 et 2. Pour les éléments réactifs (comme un condensateur de 1 μF), quelque chose comme(v(1) - v(2))/(2*pi*frequency*1u)
devrait fonctionnent également.la source
Je n'ai pas utilisé ngspice (j'utilise LTSpice, mais d'après ce que je comprends à peu près tous les SPICE sont basés sur la syntaxe originale de Berkeley, et fonctionnent de manière similaire), mais généralement vous tracez le courant à travers un composant ou dans par exemple la base d'un transistor, plutôt qu'à un nœud, selon la première loi de Kirchoff (la somme des courants se rencontrant en un point est nulle)
EDIT - comme l'a souligné jpc, pour ngspice (et probablement la plupart des autres variantes non commerciales / anciennes), les choses sont légèrement différentes, car vous ne pouvez tracer des courants qu'à travers une source de tension. Il faudrait donc ajouter une source 0V dans la jambe du circuit d'intérêt et tracer le courant à travers cela. J'ai ajouté un exemple ci-dessous.
Donc, si vous avez un circuit simple composé d'une résistance (R1) avec une source de tension (V1) à travers (je ne suis pas un expert de la netlist, prenez donc un exemple approximatif):
V1 1 0 5
R1 1 0 1000
(1, 0 sont les nœuds, 5 (V) et 1000 (Ohms) sont les valeurs respectives)
Vous pouvez soit tracer le courant avec I (R1), soit I (V1), pas I (1). Vous pouvez cependant tracer V (1) pour la tension.
Version NGSPICE (testée et confirmée)
V1 1 0 5
R1 1 2 1000 Vdummy 2 0 0
Notez que Vdummy est en série avec la résistance, donc le même courant doit le traverser. Donc, pour tracer le courant pour R1, nous écrivons I (Vdummy). Pour un circuit plus complexe, nous nous assurons simplement que les mêmes conditions s'appliquent.
Voici un "vrai" exemple de LTspice:
NETLIST
V1 V + 0 24 Rser = 0
V2 SIG 0 SINE (-1.4563 1m 1000 0 0 0 0) AC 2 Rser = 0
V3 V-
0-24 Q1 N001 N002 N003 0 2N2222
R1 V + N001 1f
R2 N003 V- 2K7
C2 N004 N003 100µF
R3 N004 0 3K9
R4 N002 0 22K
C1 N002 SIG 100µF
IMAGE DU CIRCUIT
OPTIONS DE TERRAIN
(Notez qu'il n'y a pas de I (n001), I (n002), etc.)
la source
Vous pouvez tracer des courants, mais vous devez savoir quels courants vous souhaitez connaître avant d'exécuter votre simulation.
Par exemple, si vous aviez une diode D1 et que vous vouliez tracer le courant à travers elle, vous pourriez:
Vous trouverez plus d'informations à la page 519 (chapitre 31) du manuel ngspice à http://ngspice.sourceforge.net/docs/ngspice-manual.pdf
la source
En cas de balayage de tension continue sur un seul composant, vous pouvez tracer le courant de dérivation. En chargeant la netlist suivante
à ngspice et commandant
vous devriez pouvoir obtenir un diagramme de tracé du courant à travers la diode d1.
la source
pour le tracé de courant, ajoutez une source de tension nulle dans cette branche et saisissez vlabel # branch dans la borne.
la source
Depuis NGSpice 27 R2017, en plaçant cette ligne de code:
Enregistre les courants, qui peuvent être appelés par pour
@R1[i]
,@D1[id]
etc.Recherchez cette option dans le manuel NGSpice .
la source