시뮬레이션 문제 해결
개요
- 시뮬레이션 경고와 오류를 해석하는 방법을 익히고, 이를 통해 시뮬레이션 실행이 실패한 원인을 파악해 보세요.
- 배선 및 접지 점검부터 고급 해석 설정 조정까지, 수렴 문제를 해결하기 위한 단계별 체크리스트를 확인해 보세요.
- 동작점, DC 스윕 및 과도 해석별 문제 해결 팁을 살펴보고, 실패한 시뮬레이션 유형에 맞는 해결 방법을 선택해 보세요.
회로 시뮬레이션이 실행되지 않으면 문제가 회로에 있는지, 아니면 시뮬레이션 과정에 있는지 파악해야 합니다. 이 참조 문서 섹션의 안내에 따라 제안된 항목을 하나씩 시도해 보십시오.
시뮬레이션 중 오류나 경고 메시지가 표시되는 경우가 있습니다. 이러한 메시지는 Messages Panel에 나열됩니다.
- Warning Messages – 경고 메시지는 시뮬레이션에 치명적이지 않습니다. 일반적으로 시뮬레이션을 완료하기 위해 SPICE가 회로에 적용한 변경 사항에 관한 정보를 제공합니다. 여기에는 유효하지 않거나 누락된 파라미터 등이 포함됩니다.
- Error Messages – 오류 메시지는 시뮬레이터가 해결하지 못했으며 시뮬레이션 과정을 중단시킨 문제에 관한 정보를 제공합니다. 오류 메시지는 시뮬레이션 결과를 생성할 수 없음을 의미하므로, 회로를 분석하려면 먼저 해당 오류를 수정해야 합니다.
시뮬레이션 분석 실패 문제 해결
모든 시뮬레이터가 직면하는 과제 중 하나는 수렴입니다. convergence라는 용어는 정확히 무엇을 의미할까요? 대부분의 시뮬레이터와 마찬가지로 Altium Designer의 SPICE 엔진은 회로를 나타내는 방정식을 반복적으로 풀어 회로의 정상 상태 전압과 전류를 구합니다. 이러한 전압과 전류를 찾지 못하면, 즉 수렴하지 못하면 회로 분석을 수행할 수 없습니다.
SPICE는 시뮬레이션의 각 단계에서 행렬 형태로 표현된 연립 선형 방정식을 사용하여 회로의 동작점(DC 전압 및 전류)을 결정합니다. 회로는 컨덕턴스 배열로 변환되며, 이 배열을 행렬에 배치하여 방정식(G * V = I)을 구성합니다. 회로에 비선형 소자가 포함된 경우 SPICE는 비선형성을 반영하기 위해 선형 방정식을 여러 차례 반복 계산합니다. SPICE는 먼저 노드 전압의 초깃값을 추정한 다음, 회로의 컨덕턴스를 기반으로 분기 전류를 계산합니다. 그런 다음 분기 전류를 사용하여 노드 전압을 다시 계산하고 이 과정을 반복합니다. 모든 노드 전압과 분기 전류가 지정된 허용 오차 범위에 들어올 때까지, 즉 수렴할 때까지 이 과정이 계속됩니다.
그러나 지정된 반복 횟수 내에 전압이나 전류가 수렴하지 않으면 SPICE는 오류 메시지(예: singular matrix, Gmin stepping failed, source stepping failed 또는 iteration limit reached)를 출력하고 시뮬레이션을 중단합니다. SPICE는 각 시뮬레이션 단계의 결과를 다음 단계의 초기 추정값으로 사용합니다. 과도 해석을 수행 중이고, 즉 시간을 단계적으로 증가시키는 중이고, SPICE가 지정된 시간 간격으로 해를 수렴시키지 못하면 시간 간격이 자동으로 줄어들고 계산 과정이 반복됩니다. 시간 간격이 지나치게 작아지면 SPICE는 Timestep too small 메시지를 표시하고 시뮬레이션을 중단합니다.
일반적인 시뮬레이션 수렴 문제 해결
시뮬레이션 분석이 실패할 때 가장 흔한 문제는 회로가 타당한 동작점으로 수렴하지 못하는 것입니다. 다음 방법을 사용하여 수렴 문제를 해결하십시오.
수렴 문제 해결 단계
- 수렴 문제가 발생하면 먼저 동작점 해석을 제외한 모든 해석을 비활성화하십시오.
- Messages Panel에서 시뮬레이션 관련 오류나 경고를 확인하십시오.
- 회로가 올바르게 배선되어 있는지 확인하십시오. 연결되지 않은 노드나 불필요하게 남아 있는 부품이 있어서는 안 됩니다.
- 회로에 접지 노드가 있고 회로의 모든 노드에 이 접지로 이어지는 DC 경로가 있는지 확인하십시오. 노드를 절연시킬 수 있는 컴포넌트에는 변압기와 커패시터가 있습니다. 전압원은 DC 단락 회로로, 전류원은 DC 개방 회로로 간주됩니다.
- 시뮬레이션 파라미터를 입력할 때 숫자 0과 문자 O를 혼동하지 않았는지 확인하십시오.
-
모든 컴포넌트 값이나 시뮬레이션 파라미터에 올바른 SPICE 배수 접미사가 지정되어 있는지 확인하십시오(
1e6의 경우M대신MEG사용). 배수 접미사는 대소문자를 구분하지 않습니다. 또한 값과 배수 접미사 사이에 공백을 넣어서는 안 됩니다. 예를 들어1.0 uF가 아니라1.0uF로 입력해야 합니다. - 모든 소자와 소스가 올바른 값으로 설정되어 있는지 확인하십시오.
- 모든 종속 소스의 이득이 올바르게 설정되어 있는지 확인하십시오.
- 직렬 커패시터나 전류원을 일시적으로 제거하고 시뮬레이션을 다시 실행하십시오.
- 병렬 인덕터나 전압원을 일시적으로 제거하고 시뮬레이션을 다시 실행하십시오.
-
Advanced Analysis Settings 대화상자의 Advanced 탭에서
ITL1파라미터 값을300로 늘리십시오. 이 대화상자는 Simulation Dashboard Panel의 Analysis Setup & Run Region에서 Settings를 클릭하여 열 수 있습니다. 이렇게 하면 동작점 해석이 중단되기 전에 더 많은 반복 계산을 수행할 수 있습니다. -
Advanced Analysis Settings 대화상자의 Advanced 탭에서
RSHUNT1값을 설정하십시오. 이 저항값은 각 회로 노드와 접지 사이에 추가되어 "특이 행렬(singular matrix)" 오류와 같은 문제를 해결하는 데 도움이 됩니다. 일반적으로 RSHUNT 값은1e12와 같이 매우 높은 저항값으로 설정해야 합니다. - .NS(Nodeset) 소자를 추가하여 노드 전압을 정의하십시오. 노드 전압의 초기 추정값이 실제 값과 크게 다르면 Nodeset 소자를 사용하여 동작점 해석의 예비 계산에 사용할 시작 전압을 미리 정의할 수 있습니다. 배치한 각 Nodeset 소자에서 Initial Voltage 파라미터를 설정하십시오. Nodeset은 Simulation Generic Components 라이브러리에서 배치할 수 있습니다.
- Nodeset 소자가 수렴에 도움이 되지 않으면 .IC 소자를 배치하여 초기 조건을 정의해 보십시오. 이 경우 동작점 해석 중에는 노드 전압이 지정된 값으로 유지되고, 과도 해석 중에는 이 제약이 해제됩니다. 초기 조건 소자는 Nodeset 소자와 동일한 라이브러리에서 배치할 수 있으며, 초기 전압 파라미터도 동일한 방식으로 설정해야 합니다.
- Simulation Dashboard Panel의 Analysis Setup & Run Region에 있는 Transient 설정에서 Use Initial Conditions 옵션을 활성화하십시오. 이 옵션은 .IC 소자 또는 컴포넌트의 IC 파라미터와 함께 작동합니다. 이 옵션을 설정하면 동작점 해석이 수행되지 않으며, 지정된 전압이 과도 해석의 초기 조건으로 사용됩니다.
-
모델의 직렬 저항 파라미터를 지정하고
GMIN옵션(Advanced Analysis Settings 대화상자의 Advanced 탭) 값을10배로 늘리십시오. -
반도체 소자, 특히 다이오드의 초기 조건(시작 조건)을
OFF로 지정하십시오. 이렇게 하면 첫 번째 반복 계산에서 다이오드 또는 반도체 소자를 건너뛰어 수렴을 개선하므로 수치적 수렴 문제를 해결하는 데 도움이 될 수 있습니다.
DC 스윕 해석 문제 해결
DC 스윕 해석에 문제가 발생하면 먼저 위의 수렴 문제 해결 단계를 시도하십시오. 그래도 문제가 발생하면 다음 방법을 시도하십시오.
- Simulation Dashboard의 Analysis Setup & Run 섹션에서 Step 파라미터 값을 변경하십시오. 소자 모델에 불연속점이 있는 경우(예: 모델의 선형 영역과 포화 영역 사이), 스텝 크기를 늘리면 시뮬레이션이 불연속점을 건너뛸 수 있습니다. 반면 스텝을 더 작게 하면 급격한 전압 전이에 따른 불연속을 시뮬레이션에서 세밀하게 계산할 수 있습니다.
- DC 스윕 해석을 사용하지 마십시오. 히스테리시스와 같은 일부 문제는 DC 해석으로 해결할 수 없습니다. 이러한 경우에는 과도 해석을 사용하고 해당 전원의 값을 점진적으로 증가시키는 것이 더 효과적입니다.
과도 해석 문제 해결
과도 해석에 문제가 발생하면 먼저 위에 나열된 수렴 문제 해결 단계를 시도해 보세요. 문제가 계속되면 다음 방법을 시도해 보세요.
Advanced Analysis Settings 대화상자의 Advanced 탭에서 다음을 수행하세요. (이 대화상자는 Simulation Dashboard 패널의 Analysis Setup & Run 영역에서 Settings을 클릭하면 열립니다.)
-
RELTOL파라미터를0.01로 설정하세요. 허용 오차를 기본값인0.001(정확도 0.1%)보다 높이면 해에 수렴하는 데 필요한 반복 횟수가 줄어들어 시뮬레이션이 훨씬 빠르게 완료됩니다. -
ITL4파라미터 값을100로 높이세요. 이렇게 하면 과도 해석이 각 시간 단계에서 수렴을 포기하기 전에 더 많은 반복을 수행할 수 있습니다. 이 값을 높이면timestep too small오류를 제거하여 수렴성과 시뮬레이션 속도를 모두 개선하는 데 도움이 될 수 있습니다. -
전류/전압 수준이 허용한다면
ABSTOL및VNTOL값을 높여 정확도를 낮추세요. 회로에 따라서는 1uV 또는 1pA 수준의 분해능이 필요하지 않을 수 있습니다. 다만 회로에서 예상되는 최저 전압 또는 전류 수준보다 최소한 한 자릿수 낮은 값까지는 구분할 수 있도록 해야 합니다. - Integration Method를 Gear 방법 중 하나로 변경하세요. Gear 적분법은 시뮬레이션 시간이 더 오래 걸리지만 일반적으로 사다리꼴 적분법보다 안정적입니다. Gear 적분법은 발진하거나 피드백 경로가 있는 회로에 특히 유용할 수 있습니다.
추가로 시도해 볼 사항:
- 회로를 실제와 가깝게 모델링하세요. 실제적인 기생 성분, 특히 부유/접합 커패시턴스를 추가하세요. 다이오드 주변에 RC 스너버를 사용하세요. 특히 RF 및 전력 소자의 경우 소자 모델을 서브회로로 교체하세요.
- 회로에 있는 모든 주기적 펄스 소스의 상승/하강 시간을 늘리세요. 아무리 성능이 뛰어난 펄스 발생기라도 순간적으로 전환할 수는 없습니다.