Відповіді:
Олі дав правильну відповідь, але I (element_name) є розширенням, доданим лише до комерційних версій SPICE.
У ngspice (який заснований на Berkeley Spice 3) ви можете будувати струми тільки через (незалежні) джерела напруги. Це єдині струми, які з'являються в рівняннях схеми, з яких працює SPICE.
В інтерактивному сеансі Spice або зі спеціального блоку в сценарії (див. Також це питання ) ви можете використовувати вирази, наприклад, (v(1)-v(2))/1k
коли струм проходить через резистор 1kΩ між вузлами 1 і 2. Для реактивних елементів (наприклад, конденсатор 1µF) щось подібне (v(1) - v(2))/(2*pi*frequency*1u)
повинно також працюють.
Я не використовував ngspice (я використовую LTSpice, але з того, що я дуже розумію, всі СПІСИ засновані на оригінальному синтаксисі Берклі, і працюють аналогічно), але зазвичай ви плануєте струм через компонент або, наприклад, на базі транзистора, а не ніж у вузлі, згідно з першим законом Кірхофа (сума струмів, що зустрічаються в точці дорівнює нулю)
EDIT - як вказував jpc, для ngspice (і, мабуть, більшості інших комерційних / ранніх варіантів) речі дещо відрізняються, оскільки ви можете побудувати струми лише через джерело напруги. Таким чином, потрібно було б додати джерело 0В в нозі схеми, що цікавить, і побудувати струм через це. Я додав приклад нижче.
Отже, якщо у вас є проста схема, що складається з резистора (R1) з джерелом напруги (V1) через нього (я не є експертом у мережі, тому візьміть як приблизний приклад):
V1 1 0 5
R1 1 0 1000
(1, 0 - це вузли, 5 (V) і 1000 (Ом) - відповідні значення)
Ви можете або побудувати графік струму з I (R1), або I (V1), а не I (1). Однак ви можете побудувати графік V (1) для напруги.
Версія NGSPICE (протестована та підтверджена)
V1 1 0 5
R1 1 2 1000 Vdummy 2 0 0
Зверніть увагу, що Vdummy знаходиться в серії з резистором, тому через нього повинен протікати той же струм. Отже, для побудови струму для R1 пишемо I (Vdummy). Для більш складної схеми ми просто впевнені, що застосовуються ті самі умови.
Ось "справжній" приклад від LTspice:
НЕТЛІСТ
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
КАРТИНА СТРАНИЦІ
ВАРІАНТИ СТОЛІ
(Зверніть увагу, що немає I (n001), I (n002) тощо)
Ви можете побудувати графіки струмів, але вам потрібно знати, про які струми ви хочете знати, перш ніж запускати моделювання.
Наприклад, якщо у вас був діод D1 і ви хотіли побудувати струм через нього, ви можете:
.save @d1[id]
.tran <slice> <end>
.plot tran @d1[id]
Додаткову інформацію можна знайти на сторінці 519 (глава 31) посібника з ngspice за адресою http://ngspice.sourceforge.net/docs/ngspice-manual.pdf
У разі швидкості напруги постійного струму через один компонент, ви можете побудувати струм гілки. Завантаживши наступний список нетто
.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 та командування
dc vin -10 5 0.001
plot -vin#branch
ви повинні мати змогу отримати схему струму через діод d1.
Починаючи з NGSpice 27 R2017, розміщуючи цей рядок коду:
.options savecurrents
Зберігає струми, які можуть бути викликані через для @R1[i]
, @D1[id]
і т.д.
plot @R1[i] vs v(1)
i(1)
завжди 0.