GNU/Linux >> Tutoriels Linux >  >> Linux

Comment tracer le courant dans ngspice?

Oli a donné une réponse correcte mais le I(element_name) est une extension ajoutée uniquement aux versions commerciales de SPICE.

Dans ngspice (basé sur Berkeley Spice 3), vous ne pouvez tracer des courants que via des sources de tension (indépendantes). Ce sont les seuls courants qui apparaissent dans les équations de circuit à partir desquelles SPICE travaille.

Dans une session Spice interactive ou à partir d'un bloc spécial dans le script (voir aussi cette question), vous pouvez utiliser des expressions comme (v(1)-v(2))/1k lorsque le courant passe par une résistance de 1kΩ 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 également fonctionner.


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 la même manière), mais généralement vous tracez le courant à un composant ou dans par ex. 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/antérieures), les choses sont légèrement différentes, car vous ne pouvez tracer que des courants via 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 constitué d'une résistance (R1) avec une source de tension (V1) à ses bornes (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), ou I(V1), pas I(1). Vous pouvez cependant tracer V(1) pour la tension.

Version NGSPICE (testé et confirmé)

V1 1 0 5
R1 1 2 1000Vfictif 2 0 0

Notez que Vdummy est en série avec la résistance, donc le même courant doit la 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.)


Vous pouvez tracer des courants, mais vous devez savoir quels courants vous voulez connaître avant d'exécuter votre simulation.

par exemple. Si vous aviez une diode D1 et que vous vouliez tracer le courant qui la traverse, vous pourriez :

.save @d1[id]
.tran <slice> <end>
.plot tran @d1[id]

Plus d'informations sont à la page 519 (chapitre 31) du manuel ngspice à http://ngspice.sourceforge.net/docs/ngspice-manual.pdf


Linux
  1. Comment accéder à la messagerie Web via cPanel

  2. Ssh - Comment se connecter à un PC via un autre PC en utilisant Ssh ?

  3. Comment déplacer le contenu d'un dossier vers le dossier actuel ?

  4. CentOS / RHEL 6 :Comment trouver mon niveau d'exécution actuel ?

  5. Comment supprimer la base de données mysql via la commande shell

Comment installer Minecraft sur Ubuntu

Comment importer une base de données via phpMyAdmin ?

Comment vérifier les e-mails via Webmail

Comment installer ClipBucket via cPanel

comment tracer stdin depuis le terminal?

Comment dois-je déterminer l'utilisation actuelle du réseau ?