Câu trả lời:
Oli đã đưa ra một câu trả lời đúng nhưng I (Element_name) là một phần mở rộng chỉ được thêm vào các phiên bản SPICE thương mại.
Trong ngspice (dựa trên Berkeley Spice 3), bạn chỉ có thể vẽ dòng điện qua các nguồn điện áp (độc lập). Đây là những dòng điện duy nhất xuất hiện trong các phương trình mạch SPICE hoạt động từ đó.
Trong một phiên Spice tương tác hoặc từ một khối đặc biệt trong kịch bản (xem thêm câu hỏi này ), bạn có thể sử dụng biểu thức như (v(1)-v(2))/1k
khi hiện nay là thông qua một điện trở 1kΩ giữa các nút 1 và 2. Đối với các yếu tố phản ứng (như một tụ 1μF) cái gì đó như (v(1) - v(2))/(2*pi*frequency*1u)
nên cũng làm việc.
Tôi chưa sử dụng ngspice (tôi sử dụng LTSpice, nhưng từ những gì tôi hiểu khá rõ, tất cả các SPICE đều dựa trên cú pháp Berkeley gốc và hoạt động tương tự), nhưng thông thường bạn vẽ dòng điện qua một thành phần hoặc ví dụ như cơ sở của bóng bán dẫn, thay vì so với tại một nút, theo luật đầu tiên của Kirchoff (tổng dòng điện gặp nhau tại một điểm bằng không)
EDIT - như jpc đã chỉ ra, đối với ngspice (và có lẽ hầu hết các biến thể phi thương mại / đầu tiên khác) hơi khác nhau, vì bạn chỉ có thể vẽ dòng điện qua nguồn điện áp. Vì vậy, người ta sẽ phải thêm một nguồn 0V trong phần mạch quan tâm và vẽ dòng điện qua đây. Tôi đã thêm một ví dụ dưới đây.
Vì vậy, nếu bạn có một mạch đơn giản bao gồm một điện trở (R1) với nguồn điện áp (V1) trên nó (tôi không phải là một chuyên gia trong danh sách mạng, vì vậy hãy lấy ví dụ thô):
V1 1 0 5
1 0 1000
(1, 0 là các nút, 5 (V) và 1000 (Ohms) là các giá trị tương ứng)
Bạn có thể vẽ dòng điện với I (R1) hoặc I (V1), không phải I (1). Tuy nhiên, bạn có thể vẽ V (1) cho điện áp.
Phiên bản NGSPICE (đã được kiểm tra và xác nhận)
V1 1 0 5
R1 1 2 1000 Vdummy 2 0 0
Lưu ý rằng Vdummy nối tiếp với điện trở, vì vậy cùng một dòng điện phải chạy qua nó. Vì vậy, để vẽ sơ đồ hiện tại cho R1, chúng ta viết I (Vdummy). Đối với một mạch phức tạp hơn, chúng tôi chỉ cần đảm bảo rằng các điều kiện tương tự được áp dụng.
Đây là một ví dụ "thực" từ LTspice:
ĐƯỜNG DÂY
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
HÌNH ẢNH CIRCUIT
LỰA CHỌN
(Lưu ý rằng không có I (n001), I (n002), v.v.)
Bạn có thể vẽ các dòng điện, nhưng bạn cần biết dòng điện nào bạn muốn biết trước khi chạy mô phỏng.
ví dụ: Nếu bạn có một diode D1 và bạn muốn vẽ dòng điện qua nó, bạn có thể:
.save @d1[id]
.tran <slice> <end>
.plot tran @d1[id]
Thông tin chi tiết có ở trang 519 (Chương 31) của hướng dẫn sử dụng ngspice tại http://ngspice.sourceforge.net/docs/ngspice-manual.pdf
Trong trường hợp quét điện áp DC trên một thành phần, bạn có thể vẽ dòng điện nhánh. Bằng cách tải các netlist sau
.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 và chỉ huy
dc vin -10 5 0.001
plot -vin#branch
bạn sẽ có thể có được một sơ đồ dòng điện trên diode d1.
đối với âm mưu hiện tại, thêm nguồn điện áp bằng 0 trong nhánh đó và gõ nhánh vlabel # trong thiết bị đầu cuối.
Kể từ NGSpice 27 R2017, đặt dòng mã này:
.options savecurrents
Tiết kiệm các dòng, có thể được gọi thông qua cho @R1[i]
, @D1[id]
vv
plot @R1[i] vs v(1)
Tìm kiếm tùy chọn này trong Hướng dẫn NGSpice .
i(1)
luôn luôn là 0.