대면적 페로브스카이트 모듈 튜토리얼 파트 B: 시뮬레이션 실행 및 출력 확인
대면적 모듈 시뮬레이션은 단일 장치 drift–diffusion 실행보다 더 복잡하므로, 솔버가 무엇을 하고 있는지 지켜보는 것이 중요합니다. 이 예제에서 OghmaNano는 시뮬레이션을 두 개의 주요 단계로 실행합니다: (i) 광학 솔버 (3D 광학 계산), 그 다음 (ii) 전기 회로 솔버 (회로 메쉬 상의 Kirchhoff 전류/전압 방정식). 터미널 출력은 문제를 조기에 발견하는 가장 빠른 방법입니다 (예: 연결되지 않은 회로 또는 누락된 접촉).
1단계: 시뮬레이션 실행
??에 표시된 Run simulation 버튼(파란 삼각형)을 클릭합니다. 이 시뮬레이션은 실행에 시간이 걸립니다 (3D 광학 단계 후 대규모 회로 해를 수행하기 때문입니다). 실행되는 동안 Terminal 탭을 계속 확인하십시오. 이 탭은 수렴과 전류에 대한 실시간 정보를 제공합니다.
2단계: 터미널 출력이 무엇을 말해주는지 이해하기
이러한 복잡한 시뮬레이션에서 터미널 출력은 “잡음”이 아니라 진단 정보입니다. ??에서 솔버가 처음에 광학 단계를 실행하는 것을 볼 수 있습니다. 이 단계는 3D에서 해를 구하기 때문에 시간이 걸릴 수 있습니다. 광학 생성이 준비되면, 솔버는 전기 단계를 시작하고 각 바이어스 점에 대해 줄을 출력합니다.
핵심 줄은 다음과 같이 보입니다 (형식은 설정에 따라 약간 달라질 수 있습니다):
- 접촉 전압: 예:
ground = 0.00 V는 접지 접촉이 0 V에 유지됨을 의미하고;change = 0.10 V는 다른 접촉이 0.10 V에 있음을 의미합니다. - 접촉 전류: 예: 한 접촉에서
1.58e+03 A/m^2, 다른 접촉에서-1.19e+03 A/m^2는 전류가 한 접촉으로 들어가고 다른 접촉에서 나감을 의미합니다. 0 V에서는 장치가 조명되어 있고 인가 전압 0에서 전류를 공급하므로, 이는 본질적으로 모듈의 단락 전류 밀도 (JSC)입니다. - 수렴 지표: 출력되는
f()값은 전기 해(전체 회로 메쉬에 대한 Kirchhoff 법칙 방정식)에 대한 솔버의 오차/잔차입니다. 느슨하게 말하면 이는 전체 네트워크에서 “회로 방정식이 얼마나 잘 만족되는지”를 나타냅니다. - 스텝당 시간: 줄 끝의 마지막 숫자(밀리초)는 해당 바이어스 점을 푸는 데 걸린 시간입니다.
스윕 시작 근처(특히 0 V 근처)에서는 더 높은 오차가 자주 나타나며, 솔버가 այդ 점에서 멀어질수록 오차가 감소할 수 있습니다. 경험적으로, 솔버가 10-4 이하와 같은 오차에 도달할 때 결과를 훨씬 더 신뢰하며, 이상적으로는 “깨끗한” 수렴을 위해 10-9까지 내려가는 것이 좋습니다. (여기에 표시된 예제 로그에서도 스윕이 진행될수록 오차가 감소하는 것을 볼 수 있습니다.)
??에서는
매우 유용한 것을 볼 수 있습니다:
스윕 중간쯤에서 접지 접촉의 전류가 부호를 바꾸고, change 접촉의 전류는 반대 방향으로 부호가 바뀝니다.
이 부호 반전은 스윕이 VOC를 지나갈 때 정확히 기대되는 현상입니다: VOC 아래에서는 조명된 장치가 전력을 공급하고;
VOC 위에서는 순방향 바이어스가 걸려 다이오드처럼 전력을 소비합니다.
다시 말해, 접촉 전류 열에서 직접 JV 곡선이 형성되는 것을 종종 “볼” 수 있습니다.
💡 왜 터미널을 봐야 하나요? 무엇인가 잘못되었다면 (예: 회로가 연결되지 않았거나, 접촉 마스크가 메쉬를 놓쳤거나, 영역이 떠 있는 경우),
일반적으로 즉시 알 수 있습니다: 전류가 0으로 붕괴하거나, 전류가 비정상적이 되거나, 솔버가 f()를 줄이지 못합니다.
이를 일찍 발견하면 긴 대기 시간을 절약할 수 있습니다.
3단계: 출력 파일 확인
시뮬레이션이 끝나면 Output 탭에
??에
표시된 것과 같은 파일 세트가 들어 있습니다.
이 튜토리얼 파트의 핵심 결과는 접촉 JV 곡선입니다:
jv_contact0.csv 및 jv_contact1.csv.
이 파일들에는 인가 전압의 함수로서 각 접촉에서의 전류 밀도가 들어 있습니다.
jv_contact0.csv와 jv_contact1.csv를 더블클릭하여 플로팅합니다. 예제 플롯은
?? 및
??에 나와 있습니다.
확대된 보기(VOC를 읽고 knee 근처의 곡률을 보는 데 유용함)는
??에
나와 있습니다.
jv_contact0.csv).
jv_contact1.csv).
✅ 예상 결과
조명 하에서 0 V에서는 접촉에서 0이 아닌 전류 크기(모듈의 JSC)가 관찰되어야 합니다. 전압이 증가함에 따라 전류는 VOC 근처에서 0에 접근한 뒤, 순방향 바이어스에서 부호가 바뀝니다. JV 곡선이 평평해 보이면(전체적으로 거의 0), 이는 보통 연결되지 않은 회로, 누락된 접촉, 또는 기하/접촉 마스크 불일치를 의미합니다.
4단계: 솔버 메쉬와 회로 표현 확인
대면적 시뮬레이션은 기하학적 이유(잘못 배치된 접촉, 누락된 영역, 의도치 않은 간격)로 실패할 수 있으므로, 어디를 봐야 하는지 아는 것이 유용합니다. 특히:
device.csv- 이는 솔버가 실제로 보는 메쉬의 뷰입니다. GUI의 보기 좋게 렌더링된 3D 뷰는 솔버가 내부적으로 사용하는 것이 아닙니다. 솔버는 더 단순한 삼각형 표현 위에서 동작하며, 기하에 문제가 있으면 보통 여기서 확인할 수 있습니다.electrical_links.csv- 회로 링크(노드를 연결하는 요소: 저항 경로 / 다이오드 연결 등)를 나열합니다.electrical_nodes.csv- 해에서 사용되는 Kirchhoff 노드(전류 합이 0이 되는 점)를 나열합니다.
이러한 파일의 예제 뷰는 ??, ??, 및 ??에 나와 있습니다. 개념적으로 이는 표준 회로를 푸는 것과 같습니다: 노드 + 링크 + Kirchhoff 법칙 - 단지 훨씬 더 큰 규모일 뿐입니다.
device.csv: 솔버가 사용하는 단순화된 메쉬 표현.
기하학적으로 무언가 잘못되면 여기서 분명하게 보이는 경우가 많습니다.
electrical_links.csv: Kirchhoff 해에 사용되는 회로 링크.
electrical_nodes.csv: 계산에 사용되는 Kirchhoff 전류 노드.
5단계: 광학 설정 찾기 (Transfer Matrix)
이 모듈 시뮬레이션에는 광학 생성이 포함되어 있으며, 광학 도구는 Optical 리본에서 찾을 수 있습니다 (??). Transfer Matrix를 클릭하여 Transfer Matrix 창을 엽니다.
중요: 이 튜토리얼에서는 여기에서 Transfer Matrix 도구를 실행하지 마십시오. Transfer Matrix 창은 본질적으로 스택을 관통하는 1D 보기인 반면, 이 시뮬레이션은 3D입니다. 이는 재료/스택 설정을 구성하고 sanity-check하는 데는 유용하지만, 방금 실행한 전체 3D 광학 단계를 대체하는 것은 아닙니다. 지금은 이를 열고 Configure를 클릭하기만 하십시오 - 파트 C에서 제어된 변경을 시작할 때 이 진입점을 사용합니다.
5단계: 광학 설정 찾기 (Transfer Matrix)
이 모듈 시뮬레이션에는 광학 생성이 포함되어 있으며, 광학 도구는 Optical 리본에서 찾을 수 있습니다 (??). Transfer Matrix를 클릭하여 Transfer Matrix 창을 엽니다.
중요: 이 튜토리얼에서는 여기에서 Transfer Matrix 도구를 실행하지 마십시오. Transfer Matrix 창은 본질적으로 스택을 관통하는 1D 보기인 반면, 이 시뮬레이션은 3D입니다. 이는 재료/스택 설정을 구성하고 sanity-check하는 데는 유용하지만, 방금 실행한 전체 3D 광학 단계를 대체하는 것은 아닙니다.
대신 Configure (톱니바퀴) 옵션을 클릭하여 ??에 표시된 광학 구성 패널을 엽니다.
Photon efficiency와 태양전지 다이오드 방정식
photon efficiency (이 단순화된 맥락에서 때때로 internal quantum efficiency factor라고도 부름)는 흡수된 광자 중 실제로 추출 가능한 전하 캐리어(전자와 정공)를 생성하는 비율을 모델에 알려주는 스칼라 배수입니다. photon efficiency가 0이면 광전류가 없습니다. 1이면 (이 단순화된 그림에서는) 모든 흡수 광자가 광전류에 기여합니다. 대부분의 실제 장치에서는 0.6 정도의 값이 합리적인 자릿수 수준입니다.
다이오드 언어로 보면, 이는 조명된 다이오드 방정식의 광전류 항을 스케일링하는 것으로 생각할 수 있습니다:
여기서 \(J_0\)는 다이오드 포화 전류 밀도, \(n\)은 이상 계수, \(J_{\mathrm{ph}}\)는 광학 모델에서 예측된 광전류 밀도 (즉, 흡수 광자/생성 계산에서 나온 값)입니다. 매개변수 \(\eta_{\mathrm{ph}}\)는 ??의 photon efficiency이며, 단순히 광전류 항의 기여를 스케일링합니다. \(\eta_{\mathrm{ph}}=0.6\)으로 설정하는 것은 이 유효 모델에서 “흡수된 광자의 60%가 추출 가능한 캐리어가 된다”는 의미입니다.
실질적으로: 시뮬레이션된 \(J_\mathrm{SC}\)가 실험과 크게 맞지 않고, 회로 모델의 전기적 부분이 타당하다고 확신한다면, \(\eta_{\mathrm{ph}}\)는 절대 전류 수준을 맞추기 위해 사용할 수 있는 가장 빠른 조정 손잡이 중 하나입니다. 이 값이 1을 넘는 경우는 매우 드뭅니다; 만약 \(\eta_{\mathrm{ph}} > 1\)이 필요하다면, 보통 다른 무언가가 잘못되었다는 뜻입니다 (예: 광학 상수 / 흡수 계수가 일관되지 않음).
🧪 과제: photon efficiency 탐색
- Optical 리본을 열고 Transfer Matrix → Configure로 이동합니다 (??).
- Photon efficiency를 0.6에서 더 낮은 값(예: 0.3)으로 변경하고, 시뮬레이션을 다시 실행한 뒤 접촉 JV 곡선이 어떻게 변하는지 관찰합니다.
- 더 높은 값(예: 0.9)도 시도하고 다시 실행합니다. \(J_\mathrm{SC}\)와 전체 JV 곡선 형상은 어떻게 됩니까?
- 끝난 뒤에는 Photon efficiency를 다시 0.6으로 되돌리십시오.
👉 다음 단계: 파트 C로 계속 진행하십시오. वहाँ에서 모듈 규모 손실(직렬 저항, 접촉 제한, 광학 생성 효과)을 해석하기 위해 매개변수를 바꾸기 시작합니다.