답변:
Oli는 정답을 제공했지만 I (element_name)은 상용 SPICE 버전에만 추가 된 확장입니다.
ngspice (Berkeley Spice 3 기반)에서는 (독립적 인) 전압 소스를 통해서만 전류를 플롯 할 수 있습니다. SPICE가 작동하는 회로 방정식에 나타나는 유일한 전류입니다.
대화식 Spice 세션 또는 스크립트의 특수 블록 ( 이 질문 참조 ) (v(1)-v(2))/1k
에서 전류가 노드 1과 2 사이의 1kΩ 저항을 통과 할 때 와 같은 표현식을 사용할 수 있습니다 . 1μF 커패시터와 같은 반응성 요소의 (v(1) - v(2))/(2*pi*frequency*1u)
경우 또한 작동합니다.
나는 ngspice를 사용하지 않았습니다 (LTSpice를 사용하지만 거의 모든 SPICE는 원래 버클리 구문을 기반으로하고 비슷하게 작동합니다). 그러나 일반적으로 구성 요소를 통해 또는 트랜지스터의 기본으로 전류 를 플로팅합니다. Kirchoff의 첫 번째 법칙 에 따르면 노드에서보다 (한 지점에서 만나는 전류의 합은 0입니다)
편집-jpc가 지적했듯이 ngspice (및 아마도 대부분의 다른 비상업적 / 초기 변형)의 경우 전압 소스를 통해서만 전류를 플롯 할 수 있기 때문에 약간 다릅니다. 따라서 관심있는 회로의 레그에 0V 소스를 추가하고이를 통해 전류를 플로팅해야합니다. 아래에 예를 추가했습니다.
따라서 전압 소스 (V1)가있는 저항 (R1)으로 구성된 간단한 회로가 있다면 (넷리스트의 전문가가 아니므로 대략적인 예를 들어보십시오.)
V10 5
R110 1000
(1, 0은 노드, 5 (V) 및 1000 (Ohms)는 각각의 값입니다)
I (1)이 아니라 I (R1) 또는 I (V1)로 전류를 플로팅 할 수 있습니다. 그러나 전압에 대해 V (1)을 플로팅 할 수 있습니다.
NGSPICE 버전 (테스트 및 확인)
V1 5 5
R12 2 1000 Vdummy 200
Vdummy는 저항과 직렬로 연결되어 있으므로 동일한 전류가 저항을 통과해야합니다. R1의 전류를 플로팅하기 위해 I (Vdummy)를 씁니다. 더 복잡한 회로의 경우 동일한 조건이 적용되는지 확인하십시오.
LTspice의 "실제"예제는 다음과 같습니다.
넷리스트
V1 V + 0 24 Rser = 0
V2 SIG 0 SINE (-1.4563 1m 1000 000) AC 2 Rser = 0
V3 V-
024 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]
자세한 내용은 http://ngspice.sourceforge.net/docs/ngspice-manual.pdf 의 ngspice 설명서 519 페이지 (31 장)에 있습니다.
NGSpice 27 R2017부터이 코드 행을 배치하십시오.
.options savecurrents
위한 통해 호출 될 수있는 전류 저장 @R1[i]
, @D1[id]
등등
plot @R1[i] vs v(1)
NGSpice 매뉴얼 에서이 옵션을 찾으십시오 .
i(1)