Yanıtlar:
Oli doğru bir cevap verdi, ancak I (element_name) sadece ticari SPICE sürümlerine eklenen bir uzantı.
Ngspice'de (Berkeley Spice 3 tabanlı) akımları yalnızca (bağımsız) voltaj kaynakları üzerinden çizebilirsiniz. SPICE'ın çalıştığı devre denklemlerinde görünen tek akım bunlar.
İnteraktif Baharat oturumda veya komut dosyası özel bir bloktan (ayrıca bkz bu soruyu sizin gibi ifadeleri kullanabilirsiniz) (v(1)-v(2))/1k
gibi bir şey mevcut düğümlerinin 1 (a 1μF kondansatör gibi) reaktif elemanlar için 2 arasında bir 1kQ direnç üzerinden olduğunda (v(1) - v(2))/(2*pi*frequency*1u)
gerektiği ayrıca çalışır.
Ben ngspice kullanmadıysanız, ancak genellikle akımı çizmek (ı LTspice kullanın, ancak hemen hemen bütün baharatlar orijinal Berkeley sözdizimi dayanmaktadır anlamak ve çalışma benzer şeyden) aracılığıyla daha doğrusu, bir bileşen veya bir transistörün örn üssü haline Kirchoff'un ilk yasasına göre, bir düğümden ziyade (bir noktada toplanan akımların toplamı sıfırdır)
EDIT - jpc'in işaret ettiği gibi, ngspice (ve muhtemelen diğer ticari olmayan / erken varyantların çoğu) için, akımları sadece bir voltaj kaynağı aracılığıyla çizebileceğiniz için biraz farklıdır. Bu yüzden, ilgilenilen devrenin bacağına 0V kaynağı eklemek ve akımı bu şekilde çizmek gerekir. Aşağıya bir örnek ekledim.
Bu nedenle, üzerinde bir voltaj kaynağı (V1) olan bir direnç (R1) içeren basit bir devreniz varsa (netlist'de uzman değilim, bu yüzden kaba örnek alın):
V1 1 0 5
R1 1 0 1000
(1, 0 düğümlerdir, 5 (V) ve 1000 (Ohm) ilgili değerlerdir)
Akımı I (1) ile değil I (R1) veya I (V1) ile çizebilirsiniz. Ancak voltaj için V (1) çizebilirsiniz.
NGSPICE sürümü (test edildi ve onaylandı)
V1 1 0 5
R1 1 2 1000 Vdummi 2 0 0
Vdummy'nin dirençle seri olduğunu unutmayın, bu yüzden aynı akım içinden akmalıdır. Yani R1 için akımı çizmek için I (Vdummy) yazıyoruz. Daha karmaşık bir devre için sadece aynı koşulların geçerli olduğundan emin oluruz.
İşte LTspice'den "gerçek" bir örnek:
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
DEVRE RESİMİ
ARSA SEÇENEKLERİ
(I (n001), I (n002) vb. Olmadığını unutmayın)
Akımları çizebilirsiniz, ancak simülasyonunuzu çalıştırmadan önce hangi akımları bilmek istediğinizi bilmeniz gerekir.
Örneğin, bir D1 diyotunuz varsa ve içinden akım çizmek istiyorsanız, şunları yapabilirsiniz:
.save @d1[id]
.tran <slice> <end>
.plot tran @d1[id]
Daha fazla bilgi http://ngspice.sourceforge.net/docs/ngspice-manual.pdf adresindeki ngspice kılavuzunun 519. sayfasında (Bölüm 31) bulunmaktadır.
DC voltajını tek bir bileşende süpürme durumunda dal akımını çizebilirsiniz. Aşağıdaki netlist'i yükleyerek
.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
ngspice ve komuta
dc vin -10 5 0.001
plot -vin#branch
diyot d1 boyunca bir akım grafiği çizebilmelisiniz.
akım çizimleri için o branşa sıfır gerilim kaynağı ekleyin ve terminale vlabel # branşını yazın.
NGSpice 27 R2017'den beri, bu kod satırını yerleştirmek:
.options savecurrents
İçin içinden çağrılabilir akımları, kaydeder @R1[i]
, @D1[id]
vb
plot @R1[i] vs v(1)
Bu seçeneği NGSpice Kılavuzunda arayın .
i(1)
her zaman 0.