Respostas:
Oli deu uma resposta correta, mas o I (element_name) é uma extensão adicionada apenas às versões comerciais do SPICE.
No ngspice (baseado no Berkeley Spice 3), você só pode plotar correntes através de fontes de tensão (independentes). Essas são as únicas correntes que aparecem nas equações de circuito das quais o SPICE trabalha.
Em uma sessão interativa do Spice ou de um bloco especial no script (consulte também esta pergunta ), você pode usar expressões como (v(1)-v(2))/1k
quando a corrente passa por um resistor de 1kΩ entre os nós 1 e 2. Para elementos reativos (como um capacitor de 1μF), algo como (v(1) - v(2))/(2*pi*frequency*1u)
deveria também funciona.
Eu não usei o ngspice (eu uso o LTSpice, mas pelo que entendi praticamente todas as SPICEs são baseadas na sintaxe original de Berkeley e funcionam da mesma forma), mas geralmente você plota a corrente através de um componente ou, por exemplo, na base de um transistor, do que em um nó, de acordo com a primeira lei de Kirchoff (a soma das correntes reunidas em um ponto é zero)
EDIT - como jpc apontou, para ngspice (e provavelmente a maioria das outras variantes não comerciais / iniciais) as coisas são um pouco diferentes, pois você só pode plotar correntes através de uma fonte de tensão. Portanto, seria necessário adicionar uma fonte de 0V na parte do circuito de interesse e traçar a corrente através disso. Eu adicionei um exemplo abaixo.
Portanto, se você tiver um circuito simples que consiste em um resistor (R1) com uma fonte de tensão (V1) através dele (eu não sou um especialista no netlist, tome um exemplo aproximado):
V1 1 0 5
R1 1 0 1000
(1, 0 são os nós, 5 (V) e 1000 (Ohms) são os respectivos valores)
Você pode plotar a corrente com I (R1) ou I (V1), não com I (1). No entanto, você pode plotar V (1) para a tensão.
Versão NGSPICE (testada e confirmada)
V1 1 0 5
R1 1 2 1000 Vdummy 2 0 0
Observe que o Vdummy está em série com o resistor, portanto a mesma corrente deve fluir através dele. Então, para plotar a corrente para R1, escrevemos I (Vdummy). Para um circuito mais complexo, garantimos apenas as mesmas condições.
Aqui está um exemplo "real" do LTspice:
NETLIST
V1 V + 0 24 Rser = 0
V2 SIG 0 SINE (-1,44563 1m 1000 0 0 0 0) CA 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
IMAGEM DO CIRCUITO
OPÇÕES DE LOTE
(Observe que não há I (n001), I (n002) etc.)
Você pode plotar correntes, mas precisa saber sobre quais correntes deseja saber antes de executar sua simulação.
Por exemplo, se você tivesse um diodo D1 e desejasse plotar a corrente através dele, poderia:
.save @d1[id]
.tran <slice> <end>
.plot tran @d1[id]
Mais informações estão na página 519 (capítulo 31) do manual ngspice em http://ngspice.sourceforge.net/docs/ngspice-manual.pdf
No caso de varrer a tensão CC em um único componente, você pode plotar a corrente de derivação. Ao carregar a seguinte netlist
.MODEL DI1N4004 D (IS=76.9n RS=42.0m BV=4 IBV=5.00u CJO=39.8p
+M=0.333 N=1.45 TT=4.32u)
D1 1 0 DI1N4004
Vin 1 0 dc 12 ac 0
para ngspice e comandando
dc vin -10 5 0.001
plot -vin#branch
você deve obter um diagrama de plotagem de corrente no diodo d1.
para plotagem de corrente, adicione a fonte de tensão zero nessa ramificação e digite vlabel # branch no terminal.
Desde o NGSpice 27 R2017, colocando esta linha de código:
.options savecurrents
Salva as correntes, que podem ser chamados através de @R1[i]
, @D1[id]
, etc.
plot @R1[i] vs v(1)
i(1)
é sempre 0.