Chcę nakreślić prąd i moc w ngspice. Na przykład w przypadku napięcia, gdybym chciał wykreślić napięcie w węźle 1, użyłbym:
plot v(1)
Problem polega na tym, że gdy próbuję i (1), wektor nie jest rozpoznawany. Czy ktoś mógłby podać kilka przykładów, jak to zrobić?
i(1)
wynosi zawsze 0.Odpowiedzi:
Oli podał poprawną odpowiedź, ale I (nazwa_elementu) jest rozszerzeniem dodanym tylko do komercyjnych wersji SPICE.
W ngspice (opartym na Berkeley Spice 3) można wykreślać prądy tylko przez (niezależne) źródła napięcia. Są to jedyne prądy, które pojawiają się w równaniach obwodu, z których działa SPICE.
W interaktywnej sesji Spice lub ze specjalnego bloku w skrypcie (patrz także to pytanie ) możesz użyć wyrażeń, takich jak
(v(1)-v(2))/1k
gdy prąd przepływa przez rezystor 1kΩ między węzłami 1 i 2. W przypadku elementów reaktywnych (takich jak kondensator 1 μF) coś takiego(v(1) - v(2))/(2*pi*frequency*1u)
powinno być też działa.źródło
Nie używałem ngspice (używam LTSpice, ale z tego, co rozumiem, prawie wszystkie SPICE są oparte na oryginalnej składni Berkeleya i działają podobnie), ale zwykle wykreślasz prąd przez komponent lub np. Podstawę tranzystora, raczej niż w węźle, zgodnie z pierwszym prawem Kirchoffa (suma prądów spotykających się w punkcie wynosi zero)
EDYCJA - jak wskazał jpc, dla ngspice (i prawdopodobnie większości innych niekomercyjnych / wczesnych wariantów) rzeczy są nieco inne, ponieważ można wykreślić prądy tylko przez źródło napięcia. Trzeba więc dodać źródło 0V w odnodze interesującego obwodu i przez to wykreślić prąd. Poniżej dodałem przykład.
Więc jeśli masz prosty obwód składający się z rezystora (R1) ze źródłem napięcia (V1) na nim (nie jestem ekspertem na liście sieci, weź jako przykład):
V1 1 0 5
R1 1 0 1000
(1, 0 to węzły, 5 (V) i 1000 (Ohm) to odpowiednie wartości)
Możesz albo narysować prąd za pomocą I (R1), albo I (V1), a nie I (1). Można jednak wykreślić napięcie V (1).
Wersja NGSPICE (przetestowana i potwierdzona)
V1 1 0 5
R1 1 2 1000 Vdummy 2 0 0
Zauważ, że Vdummy jest w szeregu z rezystorem, więc ten sam prąd musi przez niego przepływać. Aby wykreślić prąd dla R1, piszemy I (Vdummy). W przypadku bardziej złożonego obwodu upewniamy się, że obowiązują te same warunki.
Oto „prawdziwy” przykład 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
OBRAZ OBWODU
OPCJE DZIAŁANIA
(Uwaga: nie ma I (n001), I (n002) itp.)
źródło
Możesz wykreślić prądy, ale przed uruchomieniem symulacji musisz wiedzieć, jakie prądy chcesz poznać.
np. jeśli masz diodę D1 i chcesz narysować przez nią prąd, możesz:
Więcej informacji znajduje się na stronie 519 (rozdział 31) podręcznika ngspice pod adresem http://ngspice.sourceforge.net/docs/ngspice-manual.pdf
źródło
W przypadku zamiany napięcia stałego na jeden element można wykreślić prąd rozgałęzienia. Ładując następującą listę sieci
do przyprawy i dowodzenia
powinieneś być w stanie uzyskać wykres prądu na diodzie d1.
źródło
do wykresu prądu dodaj źródło napięcia zerowego w tej gałęzi i wpisz gałąź vlabel # w terminalu.
źródło
Od NGSpice 27 R2017 umieszczenie tego wiersza kodu:
Zapisuje prądy, które mogą być wywoływane przez o
@R1[i]
,@D1[id]
itpPoszukaj tej opcji w Podręczniku NGSpice .
źródło