산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 산업기술

SPICE 단점

"쓰레기 인, 가비지 아웃" —익명

SPICE는 매우 신뢰할 수 있는 소프트웨어이지만 익숙해지는 데 약간의 시간이 걸리는 약간의 단점이 있습니다. "특이한"이란 오류 메시지를 표시하지 않고 작동하려면 특정 방식으로 소스 파일을 작성하도록 사용자에게 요구하는 것을 의미합니다.

나는 그렇지 않다 잘못되거나 오해의 소지가 있는 결과를 생성하는 SPICE의 모든 종류의 결함을 의미합니다. "버그"라고 하는 것이 더 적절합니다. 버그에 대해 말하자면 SPICE에도 몇 가지 버그가 있습니다.

이러한 단점 중 일부(또는 전체)는 내가 광범위하게 사용한 유일한 버전인 SPICE 버전 2g6에 고유할 수 있습니다. 이후 버전에서 수정되었을 수 있습니다.

좋은 시작

SPICE는 소스 파일이 회로 설명 "덱"의 첫 번째 "카드"가 아닌 다른 것으로 시작하도록 요구합니다. 소스 파일의 첫 번째 문자는 줄 바꿈, 제목 줄 또는 주석일 수 있습니다. 무언가만 있으면 됩니다. 파일의 첫 번째 구성 요소 지정 줄 앞에 있습니다.

그렇지 않은 경우 SPICE는 "데크"에 심각한 오류(예:부적절한 노드 연결)가 있다고 주장하며 분석을 전혀 거부합니다.

좋은 결말

SPICE는 .end를 요구합니다. 소스 파일 끝에 있는 줄은 줄 바꿈 또는 캐리지 리턴 문자로 끝나지 않습니다. 즉, ".end 입력을 마치면 " [Enter] 키를 누르면 안 됩니다. 키보드의 키를 누릅니다.

텍스트 편집기의 커서는 ".end 뒤의 "d" 바로 오른쪽에서 멈춰야 합니다. "하고 더 이상 가지 마십시오. 이 단점에 주의하지 않으면 ".end 카드가 누락됩니다. ” 오류 메시지가 분석 출력 끝에 표시됩니다.

실제 회로 분석은 이 오류의 영향을 받지 않으므로 일반적으로 메시지를 무시합니다. 그러나 "완벽한" 출력을 얻으려면 이 특이성에 주의를 기울여야 합니다.

노드 0이 있어야 함

회로 노드에 번호를 매기는 데 있어 많은 자유가 주어지지만 반드시 SPICE가 작동하려면 넷리스트 어딘가에 노드 0이 있어야 합니다. 노드 0은 회로 접지의 기본 노드이며 단일 노드 위치에 지정된 모든 전압의 기준점입니다.

SPICE에서 간단한 DC 분석을 수행하면 출력에 회로의 0이 아닌 모든 노드의 전압 목록이 포함됩니다. 이러한 모든 전압 판독값의 기준점(접지)은 노드 0입니다. 예:

노드 전압 노드 전압 ( 1) 15.0000 ( 2) 0.6522 

이 분석에서 노드 1과 접지(노드 0) 사이에는 15볼트의 DC 전압이 있고 노드 2와 접지(노드 0) 사이에는 0.6522볼트의 DC 전압이 있습니다. 이 두 경우 모두 전압 극성은 노드 0에서 다른 노드를 기준으로 음수입니다(즉, 노드 1과 2 모두 노드 0에 대해 양수임).

개방 회로를 피하십시오

SPICE는 어떤 종류의 개방 회로도 처리할 수 없습니다. 예를 들어 넷리스트가 개방 전압 소스가 있는 회로를 지정하는 경우 SPICE는 분석 수행을 거부합니다.

이러한 유형의 오류의 대표적인 예는 전압 소스를 전압 종속 소스(연산 증폭기를 시뮬레이션하는 데 사용)의 입력에 "연결"할 때 찾을 수 있습니다. SPICE는 전류에 대한 완전한 경로를 볼 필요가 있으므로 일반적으로 고가의 저항을 연결합니다(rbogus !) 전압 소스를 가로질러 최소 부하로 작동합니다.

특정 구성 요소 루프 피하기

SPICE는 회로의 구성 요소, 즉 전압 소스 및 인덕터의 특정 중단 없는 루프를 처리할 수 없습니다. 다음 루프는 SPICE가 분석을 중단하도록 합니다.

넷리스트 l1 2 4 10m l2 2 4 50m l3 2 4 25m 

넷리스트 v1 1 0 dc 12 l1 1 0 150m 

넷리스트 c1 5 6 33u c2 6 7 47u 

SPICE가 이러한 조건을 처리할 수 없는 이유는 모든 인덕터를 단락으로 처리하고 모든 커패시터를 개방으로 처리하여 DC 분석을 수행하는 방식에서 비롯됩니다. 단락(0 Ω) 및 개방 회로(무한 저항)는 수학적 무한대를 포함하거나 생성하므로 컴퓨터는 단순히 이를 처리할 수 없으므로 SPICE는 이러한 조건이 발생하면 분석을 중단합니다.

SPICE에서 인덕터 및 커패시터를 처리하는 방법

SPICE에서 이러한 구성 요소 구성을 허용하려면 적절한 위치에 적절한 값의 저항을 삽입하여 각각의 단락 및 개방 회로를 제거해야 합니다. 직렬 저항이 필요한 경우 매우 낮은 저항 값을 선택하십시오.

반대로 병렬 저항이 필요한 경우 매우 높은 저항 값을 선택합니다. 예:

병렬 인덕터 문제를 해결하려면 문제가 되는 각 인덕터와 직렬로 매우 낮은 값의 저항을 삽입하십시오.

원래 넷리스트 l1 2 4 10m l2 2 4 50m l3 2 4 25m 
고정 넷리스트 rbogus1 2 3 1e-12 rbogus2 2 5 1e-12 l1 3 4 10m l2 2 4 50m l3 5 4 25m 

병렬 인덕터를 사용한 이전 예에서와 같이 수정 저항(Rbogus ) 회로 작동에 실질적으로 영향을 미치지 않도록 저항이 매우 낮습니다.

직렬 커패시터 회로를 수정하려면 커패시터 중 하나에 저항을 분로시키는 저항이 있어야 합니다. SPICE는 분석을 위해 각 커패시터에 대한 DC 전류 경로가 필요합니다.

원래 넷리스트 c1 5 6 33u c2 6 7 47u 
고정 넷리스트 c1 5 6 33u c2 6 7 47u rbogus 6 7 9e12 

R가짜 9테라옴의 값은 C1에 대한 DC 전류 경로를 제공합니다. (그리고 약 C2 ) 회로 작동에 실질적으로 영향을 미치지 않습니다.

현재 측정

SPICE에서는 전압을 인쇄하거나 플로팅하는 것이 매우 쉽지만 전류 값을 출력하는 것은 조금 더 어렵습니다. 전압 측정은 적절한 회로 노드를 선언하여 지정됩니다.

예를 들어, 리드가 노드 4와 7 사이에 연결되는 커패시터의 전압을 알고 싶다면 .print를 만들 수 있습니다. 문은 다음과 같습니다.

c1 4 7 22u .print ac v(4,7) 

그러나 SPICE가 현재 그 커패시터를 통해, 그것은 아주 쉽지 않을 것입니다. SPICE의 전류는 임의의 구성 요소가 아니라 전압 소스와 관련하여 지정되어야 합니다. 예:

c1 4 7 22u vinput 6 4 ac 1 sin .print ac i(vinput) 

.print 카드는 SPICE에 전압 소스 Vinput을 통해 전류를 인쇄하도록 지시합니다. , 이는 노드 4와 7 사이의 커패시터를 통과하는 전류와 동일합니다. 그러나 전류 측정을 위해 참조할 이러한 전압 소스가 회로에 없으면 어떻게 될까요?

한 가지 솔루션은 션트 저항을 회로에 삽입하고 회로 양단의 전압을 측정하는 것입니다. 이 경우 C1을 통해 전류의 암페어당 1볼트를 생성하기 위해 1Ω의 션트 저항 값을 선택했습니다. :

c1 4 7 22u rshunt 6 4 1 .print ac v(6,4) 

그러나 의도한 전류 범위에 대해 의미 있는 전압을 떨어뜨릴 만큼 충분히 큰 추가 저항을 회로에 삽입하면 부정적인 영향을 미칠 수 있습니다. SPICE에 대한 더 나은 솔루션은 다음과 같습니다. 그러나 실생활에서는 이러한 현재 측정 솔루션을 절대 찾지 못할 것입니다.

c1 4 7 22u 가짜 6 4 dc 0 .print ac i(가짜) 

0볼트의 "가짜" DC 전압 소스를 삽입하는 것은 회로 작동에 전혀 영향을 미치지 않지만 SPICE가 전류 측정을 수행할 수 있는 편리한 장소를 제공합니다. 흥미롭게도 V가짜 AC 전류를 측정할 때 DC 소스입니다!

SPICE가 AC 전류 판독값을 출력한다는 사실은 "ac ” 사양은 .print 카드와 그 이상. 또한 SPICE가 전류 측정에 극성을 할당하는 방식이 약간 이상하다는 점에 유의해야 합니다. 다음 회로를 예로 들어 보겠습니다.

<사전>예제 v1 1 0 r1 1 2 5k r2 2 0 5k .dc v1 10 10 1 .print dc i(v1) .end

총 전압이 10볼트이고 총 저항이 10kΩ이면 SPICE에서 전압 소스 V1를 통해 1mA(1e-03)의 전류가 흐르게 될 것이라고 말할 것으로 예상할 수 있습니다. 그러나 실제로 SPICE는 음수 수치를 출력합니다. 1mA(-1e-03)! SPICE는 DC 전압 소스(정상 방향)의 음의 끝에서 나오는 전류를 양의 전류 값이 아닌 음의 전류 값으로 간주합니다.

SPICE가 양수를 출력하도록 하기 위해 이와 같은 DC 회로에 "가짜" 전압 소스를 넣는 경우가 있습니다. 현재 값:

예제 v1 1 0 r1 1 2 5k r2 2 3 5k 가짜 3 0 dc 0 .dc v1 10 10 1 .print dc i(가짜) .end 

V가짜 회로 전류가 양극 측(노드 3)으로 들어가고 음극 측(노드 0)을 나가도록 배치됩니다. 이 방향은 회로 전류에 대한 양의 출력 수치를 보장합니다.

푸리에 분석

파형에 대한 푸리에(주파수 영역) 분석을 수행할 때 .print를 사용하여 파형을 인쇄하거나 플롯할 필요가 있음을 발견했습니다. 또는 .plot 각각 카드. 인쇄하거나 플로팅하지 않으면 SPICE는 분석 중에 잠시 멈춘 다음 "초기 과도 솔루션"을 출력한 후 작업을 중단합니다.

또한 "펄스에 의해 생성된 구형파를 분석할 때 " 소스 기능을 사용하려면 파형에 유한한 상승 및 하강 시간을 제공해야 합니다. 그렇지 않으면 푸리에 분석 결과가 정확하지 않습니다. 어떤 이유로 상승/하강 시간이 0인 완벽한 구형파는 상당한 수준의 짝수 SPICE의 푸리에 분석 옵션에 따른 고조파는 실제 구형파에 해당하지 않습니다.


산업기술

  1. Google 검색 자동 완성을 만드는 방법
  2. SPICE 소개
  3. SPICE의 역사
  4. 명령줄 인터페이스
  5. 회로 구성요소
  6. 실용적 고려사항 - 디지털 커뮤니케이션
  7. SPICE의 반도체 장치
  8. JFET 단점
  9. IGFET 단점
  10. 전기 회로의 컴퓨터 시뮬레이션