Desejo traçar a corrente e a potência em Ngspice. No caso de tensão, por exemplo, se eu quisesse plotar a tensão no nó 1, usaria:
plot v(1)
O problema é que, quando tento i (1), o vetor não é reconhecido. Alguém poderia fornecer alguns exemplos de como fazer isso?
i(1)
é sempre 0.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.fonte
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.)
fonte
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:
Mais informações estão na página 519 (capítulo 31) do manual ngspice em http://ngspice.sourceforge.net/docs/ngspice-manual.pdf
fonte
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
para ngspice e comandando
você deve obter um diagrama de plotagem de corrente no diodo d1.
fonte
para plotagem de corrente, adicione a fonte de tensão zero nessa ramificação e digite vlabel # branch no terminal.
fonte
Desde o NGSpice 27 R2017, colocando esta linha de código:
Salva as correntes, que podem ser chamados através de
@R1[i]
,@D1[id]
, etc.Procure essa opção no Manual do NGSpice .
fonte