Modelowanie rozproszonych stanów pułapkowych w nieuporządkowanych półprzewodnikach.
Niniejszy poradnik stanowi ogólne wprowadzenie do modelowania stanów pułapkowych w nieuporządkowanych półprzewodnikach. PM6:Y6 wykorzystano jako przykład, ponieważ jest to dobrze znany organiczny materiał fotowoltaiczny, ale te same zasady modelowania można stosować w szerszym zakresie do organicznych półprzewodników, amorficznego krzemu, półprzewodników tlenkowych, perowskitów i innych materiałów cienkowarstwowych, w których zlokalizowane stany tworzą rozproszoną gęstość stanów wewnątrz przerwy energetycznej.
1. Wprowadzenie: dlaczego rozkłady stanów pułapek są istotne w nieuporządkowanych półprzewodnikach.
Stanów pułapkowych odgrywają kluczową rolę w zachowaniu wielu nieuporządkowanych półprzewodników, w tym półprzewodników organicznych, amorficznego krzemu, półprzewodników tlenkowych, perowskitów i innych materiałów fotowoltaicznych w postaci cienkich warstw. Różnicę między uporządkowanymi i nieuporządkowanymi półprzewodnikami można zobaczyć na ??. W wysoce uporządkowanych półprzewodnikach, takich jak krzem krystaliczny o wyjątkowo wysokiej czystości, często opisywany jako materiał o czystości rzędu „sześć dziewiątek” lub „dziewięć dziewiątek”, występuje stosunkowo niewiele stanów pułapkowych w przerwie energetycznej. Te izolowane stany pułapkowe są zilustrowane na obszarze a na ??. W takich układach rekombinację zachodzącą przez te defekty można często opisać za pomocą standardowego równania rekombinacji Shockleya–Reada–Halla (SRH):
\[ R_{SRH}=\frac{np-n_i^2} {\tau_p(n+n_1)+\tau_n(p+p_1)} \]
Szczegółowe, krok po kroku przedstawione wyprowadzenie matematyczne znajduje się w Wyprowadzenie równania Shockleya–Reada–Halla dotyczącego rekombinacji.
To równanie zakłada, że rekombinacja zachodzi poprzez pojedynczy, dyskretny stan pułapki w środkowej części przerwy energetycznej, co często stanowi odpowiednie przybliżenie dla stosunkowo uporządkowanych półprzewodników/urządzeń, takich jak diody p–n z krzemu i diody p–n z arsenku galu. Jednak wraz ze wzrostem stopnia nieuporządkowania, coraz mniej przydatne staje się postrzeganie pułapek jako izolowanych defektów, a bardziej przydatne jest opisywanie ich jako całego rozkładu stanów wewnątrz przerwy energetycznej. Ten rozkład stanów jest powszechnie określany jako gęstość stanów pułapki lub gęstość stanów (DOS). Prawa strona ?? ilustruje tę sytuację dla nieuporządkowanego półprzewodnika, takiego jak półprzewodnik organiczny lub amorficzny krzem. Obszar b reprezentuje rozkład stanów pułapki zawierających elektrony, znajdujących się blisko pasma przewodnictwa, obszar d reprezentuje rozkład stanów pułapki zawierających dziury, znajdujących się blisko pasma walencyjnego, a obszar c reprezentuje rozkład głębszych stanów pułapki w środkowej części przerwy energetycznej.
W uporządkowanych półprzewodnikach standardowe równanie Shockleya–Reada–Halla (SRH) jest często wystarczające, ponieważ stany pułapkowe są zazwyczaj rzadkie i można je często przybliżyć jako izolowane poziomy defektów. W nieuporządkowanych półprzewodnikach to przybliżenie przestaje być trafne: materiał zawiera szeroki rozkład zlokalizowanych stanów rozciągających się wzdłuż przerwy energetycznej, więc założenie, że pułapki stanowią pojedynczy punktowy defekt, jest niewystarczające. Równanie SRH dla pojedynczego poziomu traktuje pułapkę jako jeden dyskretny poziom energii, dlatego nie może opisać, w jaki sposób nośniki wypełniają szeroki rozkład zlokalizowanych stanów. W nieuporządkowanym półprzewodniku to wypełnienie określa równowagę między ruchomym ładunkiem a ładunkiem uwięzionym w pułapkach, a zatem ustala zależność między całkowitą gęstością nośników a położeniem quasi-poziomu Fermiego. Jeśli ta zależność jest nieprawidłowa, model podaje również nieprawidłową szybkość rekombinacji, efektywną ruchliwość i charakterystykę J–V. Aby poprawnie modelować nieuporządkowane urządzenia, należy wyraźnie rozwiązać równania dotyczące wypełnienia rozkładu pułapek, wykorzystując równania szybkości pułapkowania, uwalniania z pułapki i rekombinacji, które są sprzężone w sposób samospójny z równaniami dryfu-dyfuzji i równaniem Poissona. Otrzymana populacja uwięzionych nośników nie jest małą poprawką: może dominować w procesach magazynowania ładunku, transportu, rekombinacji, ruchliwości, prądu w stanie ciemnym, napięcia w obwodzie otwartym oraz kształcie fotowoltaicznej krzywej J–V.
2. Zjawisko wychwytywania i uwalniania nośników ładunku w nieuporządkowanych półprzewodnikach, opisywane przez model Shockleya–Reada–Halla.
Wielu czytelników zapoznaje się z procesem rekombinacji Shockleya–Reada–Halla (SRH) po raz pierwszy dzięki przedstawionemu powyżej zwartemu równaniu opisującemu stan ustalony. Jednak to zwarte równanie jest jedynie uproszczonym wynikiem wyprowadzonym z bardziej rozbudowanego formalizmu równań szybkości SRH; poszczególne kroki matematyczne przedstawiono w Wyprowadzenie rekombinacji Shockleya–Reada–Halla. W istocie teoria SRH opisuje wypełnianie i opróżnianie stanu pułapkowego poprzez procesy wychwytywania i uwalniania nośników, co zilustrowano w ??. Elektrony mogą być wychwytywane do pułapki, a następnie emitowane z niej pod wpływem temperatury i wracać do pasma przewodnictwa, podczas gdy dziury również mogą być wychwytywane i emitowane. Gdy zarówno elektron, jak i dziura znajdują się w tym samym stanie pułapkowym, następuje rekombinacja.
Zatem podstawowa formalna struktura SRH jest zasadniczo modelem opartym na równaniach kinetycznych, opisującym wychwytywanie, uwalnianie i rekombinację nośników ładunku:
\[ \frac{dn_t}{dt}=r_{ec}-r_{ee}-r_{hc}+r_{he} \]
W tym kontekście \(r_{ec}\) oznacza szybkość wychwytu elektronów przez pułapkę, \(r_{ee}\) – szybkość ucieczki elektronów z powrotem do pasma przewodnictwa, \(r_{hc}\) – szybkość wychwytu dziur, a \(r_{he}\) – szybkość ucieczki dziur. Jedną z kluczowych zasad teorii SRH jest to, że szybkości ucieczki (\(r_{ee}\) i \(r_{he}\)) silnie zależą od głębokości energetycznej pułapki, natomiast szybkości wychwytu (\(r_{ec}\) i \(r_{hc}\)) zależą głównie od tego, czy pułapka jest zajęta. Płytkie pułapki uwalniają nośniki stosunkowo łatwo, natomiast głębokie pułapki mogą magazynować ładunek przez długi czas.
OghmaNano rozwiązuje pełne formalne równanie dotyczące pułapkowania nośników, zamiast stosować upraszczające założenia, które zazwyczaj wykorzystuje się do wyprowadzenia zwartego równania SRH opisującego rekombinację w stanie ustalonym. W praktyce oznacza to, że dla każdego poziomu pułapkowania w obrębie gęstości stanów rozwiązywane jest oddzielne równanie pułapkowania. Dzięki temu symulator może modelować zgromadzone ładunki, wypełnianie pułapek, rekombinację wspomaganą przez pułapki, elektrostatyczne zakrzywienie pasm energetycznych oraz rozkład populacji pułapek w silnie nieuporządkowanych półprzewodnikach, takich jak półprzewodniki organiczne i amorficzny krzem.
W tym samouczku omówimy, w jaki sposób zaimplementowano i rozwiązano problem rozproszonych stanów pułapkowych w programie OghmaNano, oraz w jaki sposób procesy zatrzymywania, uwalniania i akumulacji ładunku wpływają na działanie nieuporządkowanych urządzeń półprzewodnikowych.
3. Przykład: tworzenie modelu symulacji półprzewodnika o nieuporządkowanej strukturze PM6:Y6.
Uruchom program OghmaNano i kliknij „Nowa symulacja”. Otworzy się biblioteka dostępnych typów urządzeń, jak pokazano na ilustracji ??. Kliknij dwukrotnie ikonę „Organiczne ogniwa słoneczne”, aby otworzyć bibliotekę przykładów OPV. Z listy dostępnych przykładów PM6:Y6 wybierz PM6:Y6_E10_0hrs, jak pokazano na ilustracji ??. W tym samouczku można również użyć ogólnej symulacji dryfu i dyfuzji; jednak ten przykład PM6:Y6 został już skonfigurowany z rozkładem stanów pułapkowych i strukturą pasmową, które odpowiadają wynikom przedstawionym tutaj. Po wyświetleniu odpowiedniego komunikatu zapisz symulację w folderze, do którego masz uprawnienia zapisu.
💡 Wskazówka: Aby uzyskać najlepszą wydajność, zapisz dane na lokalnym dysku, na przykład C:\. Symulacje przechowywane w folderach sieciowych, na dyskach USB lub w chmurze (np. OneDrive) mogą działać wolniej ze względu na dużą liczbę operacji odczytu/zapisu.
Po utworzeniu symulacji otwiera się główne okno programu OghmaNano, jak pokazano na ilustracji ??. Urządzenie PM6:Y6 jest przedstawione jako warstwowa struktura ogniwa słonecznego. Warstwa aktywna to nieuporządkowany obszar półprzewodnikowy, w którym rozproszone stany pułapkowe zostaną zmodyfikowane.
4. Ustawienie symulacji tak, aby działała w ciemności.
Zanim rozpoczniemy symulację, musimy najpierw skonfigurować urządzenie, aby działało w ciemności. Otwórz pasek optyczny, który znajduje się w ??, i ustaw natężenie światła na 0,0 jednostek słonecznych. Zapewni to, że generowane krzywe JV będą odpowiadały pomiarom JV w ciemności, a nie działaniu ogniwa fotowoltaicznego w warunkach oświetlenia. Symulacje w ciemności są często szczególnie przydatne podczas badania stanów pułapkowych, ponieważ ujawniają w sposób bardziej wyraźny wstrzykiwanie nośników, wypełnianie pułapek, rekombinację i efekty elektrostatyczne niż symulacje w warunkach oświetlenia, gdzie fotoprąd może maskować wiele z tych procesów.
5. Określenie gęstości stanów w pułapce.
W głównym oknie otwórz edytor parametrów elektrycznych dla aktywnej warstwy PM6:Y6, korzystając z zakładki dotyczącej struktury urządzenia. Spowoduje to otwarcie edytora przedstawionego na rysunku ??. Gdy włączona jest opcja „Dynamiczne pułapki SRH”, OghmaNano oblicza rozkład stanów pułapek w przestrzeni energii, który przypomina rozkład zilustrowany na rysunku ??.
Domyślnie zakłada się, że rozkład pułapek odpowiada wykładniczej gęstości stanów. Dla obszaru o niskiej energii LUMO gęstość stanów wyraża się wzorem:
\[ \rho_\mathrm{LUMO}(E)=N_{t,n}\exp\left(\frac{E-E_C}{E_{U,n}}\right), \]
natomiast w przypadku ogona po stronie HOMO zapisuje się go jako:
\[ \rho_\mathrm{HOMO}(E)=N_{t,p}\exp\left(\frac{E_V-E}{E_{U,p}}\right). \]
W powyższym tekście \(N_{t,n}\) i \(N_{t,p}\) oznaczają odpowiednio współczynniki preeksponencjalne dla gęstości pułapek elektronów i dziur, natomiast \(E_{U,n}\) i \(E_{U,p}\) oznaczają odpowiadające im energie w ogonie Urbacha. W interfejsie użytkownika przedstawionym na ilustracji ?? odpowiadają one odpowiednio parametrom: gęstość pułapek elektronów, gęstość pułapek dziur, nachylenie ogona elektronów i nachylenie ogona dziur w sekcji „Pułapki SRH w stanie nieustalonym” edytora parametrów elektrycznych.
Edytor zawiera również przekroje przechwytujące, które kontrolują szybkość procesów wychwytywania nośników ładunku, o których mowa wcześniej. Parametry „Swobodny elektron do elektronu uwięzionego” i „Swobodna dziura do elektronu uwięzionego” regulują procesy przechwytywania elektronów i dziur (\(r_{ec}\) i \(r_{hc}\)), natomiast parametry „Swobodny elektron do dziury uwięzionej” i „Swobodna dziura do dziury uwięzionej” regulują odpowiednie procesy uwalniania (\(r_{ee}\) i \(r_{he}\)). Razem parametry te określają, jak szybko nośniki ładunku są przechwytywane i uwalniane z rozkładu pułapek.
Na koniec, parametr „Liczba pułapek” kontroluje liczbę dyskretyzowanych poziomów pułapek, które są wykorzystywane do przybliżenia analitycznej gęstości stanów. Odpowiadają one poziomom pułapek, które są przedstawione jako poziome linie w kolorze czerwonym i niebieskim na rysunku ??. Sama analityczna gęstość stanów jest nadal definiowana przez funkcje \(\rho_\mathrm{LUMO}(E)\) i \(\rho_\mathrm{HOMO}(E)\), natomiast liczba pułapek określa, jak dokładnie rozkład jest dyskretyzowany numerycznie.
Jeśli symulacja zostanie uruchomiona w tej konfiguracji, OghmaNano przyjmie wykładniczą zależność gęstości stanów, odpowiadającą powyższym równaniom. OghmaNano umożliwia jednak również znacznie większą kontrolę nad dokładnym rozkładem stanów pułapkowych. Jeśli zostanie kliknięty przełącznik „Wykładniczy”, tryb przełącza się na „Złożony”, jak pokazano na ilustracji ??. Pozwala to na zdefiniowanie dowolnych kształtów matematycznych gęstości stanów. Następnie można otworzyć edytor złożonej gęstości stanów, klikając przycisk „Edytuj”, który pojawia się po prawej stronie edytora.
6. Zdefiniuj rozkład płytkiej eksponencjalnej pułapki.
Kliknij „Edytuj”, aby otworzyć zaawansowany edytor gęstości stanów. Edytor jest wyświetlany na ??. Górna tabela definiuje rozkład pułapek związanych z poziomem LUMO, a dolna tabela definiuje rozkład pułapek związanych z poziomem HOMO. Każdy wiersz zawiera funkcję matematyczną, przełącznik aktywacji oraz trzy parametry numeryczne oznaczone jako a, b i c. Wykres po lewej stronie edytora pokazuje wynikową gęstość stanów, generowaną na podstawie funkcji matematycznych wprowadzonych do tabel. Niebieska krzywa analityczna reprezentuje rozkład pułapek związanych z poziomem LUMO lub pasmem przewodnictwa (\(E_C\)), natomiast czerwona krzywa analityczna reprezentuje rozkład pułapek związanych z poziomem HOMO lub pasmem walencyjnym (\(E_V\)). Te gładkie krzywe odpowiadają dokładnej analitycznej gęstości stanów, zdefiniowanej przez równania wprowadzone do edytora.
Niebiesko-zielone, zakrzywione schody symbolizują dyskretyzowane poziomy pułapek, które są faktycznie wykorzystywane wewnętrznie przez symulator. Te poziomy schodów bezpośrednio odpowiadają parametrowi „Liczba pułapek”, zdefiniowanemu wcześniej w edytorze parametrów elektrycznych. Zwiększenie liczby poziomów pułapek prowadzi do dokładniejszego przybliżenia analitycznej gęstości stanów, a tym samym poprawia dokładność numeryczną symulacji. W praktyce symulacje wykorzystujące około pięciu poziomów pułapek zazwyczaj dają bardzo dobre wyniki dla wielu symulacji urządzeń w stanie ustalonym. Jednak symulacje obejmujące długie okresy przejściowe, takie jak obliczenia czasu przelotu, mogą wymagać większej liczby poziomów pułapek, czasami nawet do około dwudziestu. Ponieważ stany pułapek są rozwiązywane w każdym punkcie siatki w obrębie urządzenia, zwiększenie liczby poziomów pułapek bardzo szybko zwiększa ogólną wielkość matematyczną symulacji, dlatego w praktyce rzadko wymagane są wartości znacznie większe niż dwadzieścia.
| Symbol | Znaczenie w wyrażeniu DOS. |
|---|---|
| E | Wartość energii, przy której obliczana jest gęstość stanów. |
| Komisja Europejska | Krawędź pasma przewodnictwa / poziom transportu LUMO |
| EV | Poziom energii na brzegu pasma walencyjnego / poziom transportu HOMO |
| a | Stała zdefiniowana przez użytkownika. |
| b | Stała zdefiniowana przez użytkownika. |
| c | Stała zdefiniowana przez użytkownika. |
Co do zasady, dowolne równanie można wprowadzić do edytora równań, korzystając z parametrów zawartych w powyższej tabeli, a następnie można wykorzystać to do określenia gęstości stanów.
7. Wpływ szerokości obszaru „pułapki” na charakterystykę prądowo-napięciową w ciemności oraz na gęstość ładunku.
Przeprowadzimy teraz dwie symulacje i porównamy wpływ zmiany energetycznej szerokości rozkładu pułapek. W zaawansowanym edytorze gęstości stanów upewnij się, że parametr b jest ustawiony na 0,025 eV zarówno dla rozkładu LUMO, jak i HOMO, zgodnie z ilustracją w ??. Określa to przypadek płytkiego opadania, w którym gęstość stanów pułapek maleje stosunkowo szybko w miarę oddalania się od krawędzi pasma, a zatem w przerwie energetycznej występuje tylko ograniczona liczba głębokich stanów pułapek.
Uruchamianie symulacji i tworzenie kopii zapasowej do wykorzystania w przyszłości:
Wróć do głównego okna i uruchom symulację, klikając niebieski przycisk. Uruchom symulację. przycisk lub poprzez naciśnięcie F9Po zakończeniu obliczeń otwórz folder symulacji za pomocą Eksploratora Windows. Plik jv.csv zawiera charakterystyczną, ciemną krzywą JV, natomiast charge.csv zawiera informacje o całkowitym ładunku zgromadzonym w urządzeniu, przedstawione w zależności od napięcia.
Utwórz kopie zapasowe tych plików za pomocą Eksploratora Windows i zmień nazwy skopiowanych plików na: jv.bak i charge.bakTe pliki kopii zapasowych będą zawierały wyniki symulacji „płaskiego ogona”, dzięki czemu w późniejszym terminie będzie można je porównać z szerszym rozkładem pułapek.
Następnie ponownie otwórz zaawansowany edytor DOS i zwiększ wartość parametru b do 0,100 eV zarówno dla rozkładu LUMO, jak i HOMO, zgodnie z ilustracją ??. Powoduje to poszerzenie rozkładu stanów pułapkowych, dzięki czemu stany pułapkowe rozciągają się dalej w obszar przerwy energetycznej. Uruchom ponownie symulację. Po drugim uruchomieniu w katalogu symulacji powinny znajdować się zarówno oryginalne pliki kopii zapasowych (jv.bak i charge.bak), jak i nowo wygenerowane pliki wynikowe (jv.csv i charge.csv).
☑ Po zakończeniu tego etapu w katalogu symulacji powinny znajdować się cztery pliki:
jv.csv– dane dotyczące ciemnej materii uzyskane w ramach symulacji szerokoprzestrzennego rozkładu.jv.bak– dane dotyczące ciemnej materii uzyskane w symulacji z płytkim rozkładem materii.charge.csv– dane dotyczące rozkładu gęstości ładunku uzyskane w symulacji z rozszerzonym obszarem końcowym.charge.bak– dane dotyczące rozkładu gęstości ładunku uzyskane podczas symulacji „płaskiego ogona”.
Po przeprowadzeniu obu symulacji można użyć programu Microsoft Excel lub poniższych skryptów MATLAB i Python, aby wygenerować wykresy przedstawione w ?? i ??. W tych porównaniach pliki .bak odpowiadają symulacji z płytkim obszarem opadania, natomiast nowe pliki .csv odpowiadają symulacji z szerszym obszarem opadania.
Zwiększenie energii „ogona Urbacha” powoduje poszerzenie zakresu gęstości stanów pułapkowych, dzięki czemu znacznie większa liczba pułapek rozciąga się głęboko w obszar przerwy energetycznej. To bezpośrednio wpływa zarówno na prąd rekombinacji, jak i na ilość ładunku zgromadzonego w pułapkach wewnątrz urządzenia. Na wykresie porównawczym charakterystyk prądowo-napięciowych w ciemności, przedstawionym w ??, szerszy rozkład pułapek zwiększa prąd w średnim zakresie napięć, ponieważ nośniki ładunku mogą uzyskać dostęp do znacznie większej liczby stanów pułapkowych o różnej energii, które biorą udział w rekombinacji wspomaganej przez pułapki i w transporcie ładunku.
Efekt ten jest również wyraźnie widoczny w porównaniu rozkładu gęstości ładunku, przedstawionym na ??. Szerszy rozkład pułapek powoduje, że w całym urządzeniu gromadzona jest większa ilość ładunku, ponieważ teraz dostępnych jest znacznie więcej stanów energetycznych, w których mogą znajdować się nośniki ładunku. Nagromadzony ładunek działa jako ładunek przestrzenny wewnątrz urządzenia, co zmienia potencjał elektrostatyczny i zakrzywienie pasm energetycznych.
Z punktu widzenia fizyki, to jest zasadnicza różnica między modelowaniem pojedynczego centrum rekombinacji SRH a modelowaniem pełnego, rozproszonego rozkładu stanów pułapkowych. W nieuporządkowanym półprzewodniku, pułapki nie są izolowanymi defektami. Tworzą one całe spektrum energetyczne, które jednocześnie kontroluje wychwytywanie i uwalnianie nośników, rekombinację, magazynowanie ładunku i transport. Dlatego też stany pułapkowe muszą być uwzględnione w modelach urządzeń półprzewodnikowych o nieuporządkowanej strukturze.
Wersja MATLAB / Octave
clear;
close all;
clc;
% ============================================
% Settings
% ============================================
log_jv = true;
Wyświetl cały skrypt MATLAB.
clear;
close all;
clc;
% ============================================
% Settings
% ============================================
log_jv = true; % true = semilogy
% false = linear plot
% ============================================
% Load data
% ============================================
jv = load('jv.csv');
jv_bak = load('jv.bak');
charge = load('charge.csv');
charge_bak = load('charge.bak');
% ============================================
% Figure 1 : JV
% ============================================
figure;
if log_jv == true
semilogy(jv(:,1), abs(jv(:,2)), ...
'LineWidth', 2);
hold on;
semilogy(jv_bak(:,1), abs(jv_bak(:,2)), '--', ...
'LineWidth', 2);
else
plot(jv(:,1), jv(:,2), ...
'LineWidth', 2);
hold on;
plot(jv_bak(:,1), jv_bak(:,2), '--', ...
'LineWidth', 2);
end
grid on;
box on;
xlabel('Voltage (V)');
ylabel('Current density (A m^{-2})');
title('JV comparison');
legend( ...
'JV', ...
'JV backup', ...
'Location', 'northwest' ...
);
% ============================================
% Figure 2 : Charge density
% ============================================
figure;
semilogy(charge(:,1), abs(charge(:,2)), ...
'LineWidth', 2);
hold on;
semilogy(charge_bak(:,1), abs(charge_bak(:,2)), '--', ...
'LineWidth', 2);
grid on;
box on;
xlabel('Voltage (V)');
ylabel('Charge density (m^{-3})');
title('Charge density comparison');
legend( ...
'Charge', ...
'Charge backup', ...
'Location', 'northwest' ...
);
Wersja Pythona
import numpy as np
import matplotlib.pyplot as plt
# ============================================
# Settings
# ============================================
log_jv = True
Wyświetl cały kod programu w języku Python.
import numpy as np
import matplotlib.pyplot as plt
# ============================================
# Settings
# ============================================
log_jv = True # True = semilogy
# False = linear plot
# ============================================
# Load data
# ============================================
jv = np.loadtxt("jv.csv")
jv_bak = np.loadtxt("jv.bak")
charge = np.loadtxt("charge.csv")
charge_bak = np.loadtxt("charge.bak")
# ============================================
# Figure 1 : JV
# ============================================
plt.figure()
if log_jv:
plt.semilogy(jv[:, 0], np.abs(jv[:, 1]), linewidth=2)
plt.semilogy(jv_bak[:, 0], np.abs(jv_bak[:, 1]), "--", linewidth=2)
else:
plt.plot(jv[:, 0], jv[:, 1], linewidth=2)
plt.plot(jv_bak[:, 0], jv_bak[:, 1], "--", linewidth=2)
plt.grid(True)
plt.xlabel("Voltage (V)")
plt.ylabel("Current density (A m$^{-2}$)")
plt.title("JV comparison")
plt.legend(["JV", "JV backup"], loc="upper left")
# ============================================
# Figure 2 : Charge density
# ============================================
plt.figure()
plt.semilogy(charge[:, 0], np.abs(charge[:, 1]), linewidth=2)
plt.semilogy(charge_bak[:, 0], np.abs(charge_bak[:, 1]), "--", linewidth=2)
plt.grid(True)
plt.xlabel("Voltage (V)")
plt.ylabel("Charge density (m$^{-3}$)")
plt.title("Charge density comparison")
plt.legend(["Charge", "Charge backup"], loc="upper left")
plt.show()
8. Wpływ szerokości „ogona pułapki” na działanie w warunkach oświetlenia odpowiadającego jednemu słońcu.
W poprzedniej sekcji porównano rozkłady płytkich i szerokich „ogonów pułapki” w ciemności. Teraz powtórzymy to samo porównanie przy oświetleniu odpowiadającym jednej jednostce słonecznej. Przejdź do sekcji „optyczna taśma” i ustaw intensywność światła na 1,0 jednostki słonecznej. Następnie wróć do edytora DOS i ustaw parametr „ogona Urbacha” na b = 0,025 eV zarówno dla rozkładu LUMO, jak i HOMO. Uruchom symulację, a następnie utwórz kopie zapasowe plików jv.csv i charge.csv za pomocą Eksploratora Windows, zmieniając ich nazwy na jv.bak i charge.bak.
Następnie wróć do zaawansowanego edytora DOS i poszerz obie krzywe pułapki, ustawiając wartość b = 0,100 eV. Uruchom ponownie symulację. W katalogu symulacji powinny teraz znajdować się pliki jv.csv, jv.bak, charge.csv i charge.bak. W tym przypadku pliki .bak zawierają wyniki symulacji z płytką krzywą pułapki, natomiast nowe pliki .csv zawierają wyniki symulacji z szeroką krzywą pułapki.
☑ Po zakończeniu tego etapu w katalogu symulacji powinny znajdować się cztery pliki: jv.csv, jv.bak, charge.csv i charge.bak. Pliki .bak zawierają dane symulacji oświetlenia płytkiej części ogona, natomiast pliki .csv zawierają dane symulacji oświetlenia szerokiej części ogona.
Te same skrypty MATLAB lub Python, które zostały użyte wcześniej do tworzenia wykresów, można teraz ponownie wykorzystać bez wprowadzania zmian. Będą one generować wykres przedstawiający zależność jv.csv od jv.bak oraz charge.csv od charge.bak. Wynikowe porównanie charakterystyk prądowo-napięciowych w warunkach oświetlenia przedstawiono na rysunku ??, a porównanie rozkładu ładunku w warunkach oświetlenia – na rysunku ??.
Pod wpływem oświetlenia rozkład pułapek bezpośrednio zmienia równowagę między generacją fotonośników, ekstrakcją i rekombinacją. Szerszy zakres rozkładu pułapek powoduje, że więcej stanów pułapkowych znajduje się głębiej w obszarze zabronionym, co zwiększa ilość uwięzionych ładunków i zmienia wewnętrzny profil elektrostatyczny urządzenia. To modyfikuje charakterystykę prądowo-napięciową (JV) pod wpływem oświetlenia, ponieważ prąd rekombinacji i rozszczepienie quasi-poziomu Fermiego ulegają zmianie w wyniku obecności uwięzionych ładunków.
Wykres rozkładu gęstości ładunku przedstawia te same zjawiska fizyczne, ale z innej perspektywy. Symulacja rozkładu „długiego ogona” przechowuje ładunek w inny sposób, ponieważ nośniki ładunku są teraz rozłożone w szerszym zakresie energii pułapek. Dlatego rozkład pułapek ma znaczenie w symulacjach fotowoltaicznych: wpływa nie tylko na ilość przechowywanego ładunku, ale także na jego energię i na to, jak silnie wpływa na transport, rekombinację i powstawanie napięcia.
9. Wizualizacja rozmieszczenia pułapek w przestrzeni, z uwzględnieniem energii i położenia.
trap_map.
Ponieważ zaobserwowano, że rozkład stanów pułapkowych wpływa na krzywe charakterystyki prądowo-napięciowej (JV) i rozkład gęstości ładunku, następnym krokiem jest bezpośrednia analiza zajętości stanów pułapkowych. Otwórz katalog z wynikami symulacji i poszukaj katalogu o nazwie trap_map. Jeśli ten katalog nie jest widoczny, otwórz zakładkę „Electrical” i kliknij „Edytor JV”. Spowoduje to otwarcie okna eksperymentu JV, jak pokazano na ilustracji ??.
W sekcji „Wyniki” edytora JV ustaw poziom szczegółowości danych wyjściowych na „Zapisz wszystko na dysku”. Następnie ustaw parametr „Rozkład pułapek” na „Mapa przestrzeni energetycznej”. Uruchom ponownie symulację. W folderze z wynikami powinien teraz pojawić się katalog o nazwie trap_map. Otwarcie plików w tym katalogu wyświetli mapę energii i położenia, przedstawiającą rozkład zajętych pułapek, jak pokazano na ilustracji ??.
Ta mapa przedstawia zajętość rozproszonych stanów pułapkowych w zależności od położenia i energii. W każdym punkcie napięcia podczas skanowania charakterystyki prądowo-napięciowej (JV), OghmaNano zapisuje na dysku rozkład zajętych pułapek. Przesuwając suwak napięcia, można zobaczyć, jak zmienia się populacja pułapek w miarę przechodzenia urządzenia od niskiego napięcia do stanu przewodzenia.
10. Zwiększ rozdzielczość mapy pułapek.
Pierwsza mapa pułapek jest przydatna do symulacji, ale jej rozdzielczość jest celowo niska, ponieważ domyślny model wykorzystuje tylko pięć pasm pułapek i stosunkowo niewielką liczbę punktów siatki. Aby uzyskać wyraźniejszą wizualizację, wróć do edytora parametrów elektrycznych i zwiększ liczbę pułapek z 5 do 10 lub 20. Następnie otwórz edytor siatki z paska narzędzi elektrycznego i zwiększ liczbę punktów siatki w kierunku aktywnej warstwy do około 100, jak pokazano na ilustracji ??.
Uruchom ponownie symulację, wykorzystując siatkę o wyższej rozdzielczości i dyskretyzację pułapek. Otrzymane mapy pułapek powinny być podobne do map ??, ?? i ??. Na tych wykresach przedstawiono, jak zmienia się gęstość zajętych pułapek w zależności od przyłożonego napięcia.
Schematyczna mapa pułapek uwypukla rozproszony charakter modelu. Ładunek nie jest skupiony w jednym konkretnym poziomie defektu, lecz rozkłada się na określonym zakresie energii i zmienia się w zależności od położenia wewnątrz urządzenia. Jest to jeden z kluczowych powodów, dla których rozproszone modele stanów pułapkowych są przydatne w przypadku materiałów półprzewodnikowych o nieuporządkowanej strukturze: umożliwiają one jednoczesną analizę energetycznego nieuporządkowania, wypełnienia pułapek i przestrzennej elektrostatyki.
11. Wyświetlanie informacji o obszarze, w którym umieszczona jest pułapka, w odniesieniu do pojedynczego punktu siatki.
Pełna mapa pułapki energetyczno-przestrzennej jest przydatna do wizualizacji całego urządzenia, ale czasami łatwiej jest zrozumieć fizykę, analizując zajętość pułapki w jednym, wybranym punkcie przestrzennym. Aby to zrobić, ponownie otwórz edytor JV i zmień opcję „Zapisz rozkład pułapek” z „Mapa przestrzeni energetycznej” na „Pojedynczy punkt siatki”, jak pokazano na ilustracji ??. Ustaw wartość współrzędnej y na 50. OghmaNano wyświetli wówczas spektrum zajętości pułapki w 50. punkcie siatki w obrębie urządzenia.
Uruchom ponownie symulację. W katalogu wyjściowym trap_map program OghmaNano zapisze teraz pliki, takie jak energy_slice_nt.csv dla pułapek elektronowych i energy_slice_pt.csv dla pułapek dziur. Pliki te zawierają informacje o gęstości zajętych pułapek w funkcji energii w wybranym położeniu przestrzennym. Przesuwając suwak napięcia, można obserwować, jak zmienia się rozkład energetyczny uwięzionej ładunku podczas skanowania charakterystyki prądowo-napięciowej (JV).
Widma zajętości pułapek elektronowych przedstawione w ??, ?? i ?? ilustrują, jak zmienia się zajętość pułapek wraz ze wzrostem przyłożonego napięcia. Przy niskim napięciu zajęta jest stosunkowo niewielka część rozkładu pułapek. Wraz ze wzrostem napięcia gęstość nośników ładunku wzrasta i stopniowo wypełnia coraz większy zakres energetyczny w rozkładzie gęstości stanów. Maksimum zajętości przesuwa się również w zakresie energii, ponieważ lokalny poziom quasi-Fermiego przesuwa się wzdłuż rozkładu pułapek w miarę gromadzenia się ładunku wewnątrz urządzenia.
Odpowiadające im widma pułapek, przedstawione w ??, ?? i ??, ilustrują ten sam proces fizyczny, analizowany z perspektywy najwyższego obsadzonego orbitalu molekularnego (HOMO) w strukturze stanów. Wraz z dalszym działaniem urządzenia i wzrostem gęstości nośników, gęstość obsadzonych pułapek rośnie i przesuwa się wzdłuż rozkładu pułapek związanych z HOMO, dokładnie w taki sam sposób, jak w przypadku pułapek dla elektronów.
Te jednowymiarowe przekroje energetyczne są szczególnie przydatne, ponieważ oddzielają energetyczny aspekt problemu od przestrzennego. Pełna mapa pułapek pokazuje, gdzie ładunek jest zgromadzony wewnątrz urządzenia, natomiast widma oparte na pojedynczym punkcie siatki pokazują, jak dokładnie ten ładunek jest rozłożony w przestrzeni energetycznej. Razem te wyniki zapewniają bezpośrednią wizualizację wypełniania pułapek, zmian poziomu quasi-Fermiego oraz gromadzenia ładunku wewnątrz nieuporządkowanego urządzenia półprzewodnikowego.
12. Dodanie głębokiej pułapki aktywnej w procesie rekombinacji gaussowskiej.
Zaawansowany edytor gęstości stanów umożliwia połączenie kilku funkcji analitycznych w jedną dystrybucję pułapek. Oznacza to, że gęstość stanów nie musi składać się wyłącznie z czystej eksponencjalnej krzywej lub czystej rozkładu Gaussa. Zamiast tego, można nałożyć na siebie kilka funkcji, aby stworzyć bardziej realistyczne modele nieuporządkowanej gęstości stanów, zawierające zarówno płytkie stany brzegowe, jak i głębsze, zlokalizowane pasma pułapek.
Aby dodać kolejny składnik do gęstości stanów związanej z orbitalem LUMO, kliknij przycisk „+” w panelu LUMO edytora gęstości stanów dla danego kompleksu. Możesz wpisać analityczne wyrażenie bezpośrednio w polu funkcji lub kliknąć przycisk z trzema kropkami, aby otworzyć okno wyboru równania, jak pokazano na ilustracji ??. Okno wyboru równania zawiera kilka predefiniowanych funkcji gęstości stanów, w tym funkcje eksponencjalne, Gaussa, Lorentza oraz funkcje opisujące rozkłady potęgowe.
W tym przykładzie gęstość stanów po stronie LUMO zawiera dwie aktywne funkcje. Pierwszą z nich jest pierwotny eksponencjalny „ogon”, a drugą – głęboka pułapka o rozkładzie Gaussa:
\[ \rho_\mathrm{G}(E)= a\exp\left[ -\left( \frac{c+E-E_C} {\sqrt{2}\,b} \right)^2 \right]. \]
Parametr „a” kontroluje skalę gęstości, „b” kontroluje szerokość energetyczną rozkładu Gaussa, a „c” przesuwa pułapkę w stosunku do krawędzi pasma. W tym przykładzie c = 0,7 eV, co powoduje, że pułapka Gaussa znajduje się głęboko wewnątrz przerwy energetycznej w stosunku do poziomu transportu LUMO. Gęstość stanów po stronie HOMO pozostaje w postaci prostego eksponencjalnego opadania.
Pod względem fizycznym, model ten przedstawia półprzewodnik zawierający zarówno płytkie zaburzenia energetyczne, jak i głębszy pas defektów. Płytki, eksponencjalny ogon głównie kontroluje transport i zatrzymywanie nośników w pobliżu poziomu transportu, natomiast głęboki, gaussowski stan pełni funkcję silnego centrum rekombinacji i magazynowania ładunku. Ponieważ każda funkcja ma własny przełącznik włączający, wpływ głębokiej pułapki można wyizolować bez zmiany pozostałej części modelu urządzenia.
Aby zbadać wpływ głębokiej pułapki na proces rekombinacji, przeprowadź symulację. Głosy Sunsów symulacja. Otwórz Rodzaj symulacji taśma i wybierz Głosy Sunsówjak pokazano w ??Następnie uruchom symulację z głównego okna, korzystając z niebieskiego przycisku „Uruchom” lub naciskając odpowiedni klawisz. F9.
Po zakończeniu symulacji plik suns_voc.csv będzie zawierał wartość napięcia w obwodzie otwartym w funkcji natężenia oświetlenia. Utwórz kopię zapasową tego pliku za pomocą Eksploratora Windows i zmień jego nazwę na suns_voc.bak. Następnie wróć do zaawansowanego edytora DOS i wyłącz sekwencję głębokich pułapek Gaussa, pozostawiając włączony eksponencjalny fragment. Uruchom ponownie symulację Suns–Voc.
Nowy plik suns_voc.csv odpowiada teraz urządzeniu bez głębokiej pułapki Gaussa, natomiast w pliku suns_voc.bak znajdują się dane symulacji z uwzględnioną głęboką pułapką. Porównanie tych dwóch plików, przedstawione na wykresie ??, pozwala na ich wzajemną analizę.
Głęboka pułapka Gaussa obniża napięcie w stanie rozwartym, ponieważ wprowadza dodatkową ścieżkę rekombinacji głęboko wewnątrz przerwy energetycznej. Powoduje to zmniejszenie rozszczepienia quasi-poziomu Fermiego, które powstaje pod wpływem oświetlenia, a w konsekwencji obniża osiągalne napięcie VOC. Efekt ten jest szczególnie wyraźny przy niższych natężeniach światła, gdzie rekombinacja wspomagana przez pułapki dominuje w dynamice nośników.
Dlatego pomiary metodą Suns-Voc są niezwykle przydatne do rozróżniania płytkich, energetycznie aktywnych defektów od głębszych stanów defektów, w których zachodzi rekombinacja. Ponieważ pomiary urządzenia są wykonywane w warunkach obwodu otwartego, eksperyment pozwala na wyizolowanie wewnętrznej fizyki rekombinacji, bez dodatkowych komplikacji związanych z prądem ekstrakcji nośników.
Jeśli chcesz stworzyć wykres porównujący parametry Suns i Voc, jak pokazano w ??, możesz użyć jednego z poniższych skryptów: MATLAB/Octave lub Python. Skrypty te porównują suns_voc.csv z suns_voc.bak i przedstawiają na wykresie napięcie w obwodzie otwartym w zależności od natężenia światła.
Wersja MATLAB / Octave
clear;
close all;
clc;
% Load data
voc = load('suns_voc.csv');
voc_bak = load('suns_voc.bak');
Wyświetl cały skrypt MATLAB.
clear;
close all;
clc;
% Load data
voc = load('suns_voc.csv');
voc_bak = load('suns_voc.bak');
% ============================================
% Figure : Suns-Voc
% ============================================
figure;
loglog(voc(:,1), abs(voc(:,2)), ...
'LineWidth', 2);
hold on;
loglog(voc_bak(:,1), abs(voc_bak(:,2)), '--', ...
'LineWidth', 2);
grid on;
box on;
xlabel('Light intensity (suns)');
ylabel('Open-circuit voltage (V)');
title('Suns-Voc comparison');
legend( ...
'suns\_voc.csv', ...
'suns\_voc.bak', ...
'Location', 'northwest' ...
);
Wersja Pythona
import numpy as np
import matplotlib.pyplot as plt
# Load data
voc = np.loadtxt("suns_voc.csv")
voc_bak = np.loadtxt("suns_voc.bak")
Wyświetl cały kod programu w języku Python.
import numpy as np
import matplotlib.pyplot as plt
# Load data
voc = np.loadtxt("suns_voc.csv")
voc_bak = np.loadtxt("suns_voc.bak")
# ============================================
# Figure : Suns-Voc
# ============================================
plt.figure()
plt.loglog(voc[:,0], np.abs(voc[:,1]),
linewidth=2)
plt.loglog(voc_bak[:,0], np.abs(voc_bak[:,1]),
'--',
linewidth=2)
plt.grid(True)
plt.xlabel("Light intensity (suns)")
plt.ylabel("Open-circuit voltage (V)")
plt.title("Suns-Voc comparison")
plt.legend([
"suns_voc.csv",
"suns_voc.bak"
], loc="upper left")
plt.show()
Podsumowanie
W tym samouczku pokazano, jak można w sposób wyraźny uwzględnić stany pułapkowe w modelu nieuporządkowanego urządzenia półprzewodnikowego. Zamiast traktować rekombinację jako wynikającą z pojedynczego, izolowanego defektu SRH, OghmaNano umożliwia opis gęstości stanów pułapkowych jako rozkładu energetycznego. Jest to kluczowe dla organicznych półprzewodników, amorficznego krzemu, półprzewodników tlenkowych i innych materiałów cienkowarstwowych, w których zlokalizowane stany rozciągają się przez przerwę energetyczną i silnie wpływają na zależność między gęstością nośników, położeniem quasi-poziomu Fermiego, rekombinacją i ruchliwością. Chociaż w praktycznym przykładzie wykorzystano organiczną ogniwo słoneczną PM6:Y6, celem tego samouczka jest szerszy: pokazanie, jak rozproszone stany pułapkowe są reprezentowane, rozwiązywane i diagnozowane w symulacjach nieuporządkowanych urządzeń półprzewodnikowych.
Wykorzystując symulację organicznej ogniwa słonecznego typu PM6:Y6, porównaliśmy rozkłady płytkich i szerokich eksponencjalnych „ogonów” pułapek w warunkach braku oświetlenia i w warunkach oświetlenia. Poszerzenie rozkładu pułapek wpłynęło na charakterystykę prądowo-napięciową w ciemności, charakterystykę prądowo-napięciową w warunkach oświetlenia oraz na całkowitą zgromadzoną ładunek, ponieważ urządzenie mogło zajmować szerszy zakres zlokalizowanych stanów. Wyniki mapowania pułapek pozwoliły na bezpośrednią obserwację tego zachowania, ukazując, jak populacja zajętych pułapek zmienia się w zależności od położenia, energii i przyłożonego napięcia.
Na koniec dodano głęboki potencjał Gaussa na szczycie eksponencjalnego spadku, aby zademonstrować, w jaki sposób złożone modele gęstości stanów mogą opisywać zarówno płytkie zaburzenia energetyczne, jak i głębsze defekty aktywne w procesach rekombinacji. Symulacja Suns–Voc wykazała, że takie głębokie stany mogą obniżać napięcie w obwodzie otwartym poprzez zwiększenie rekombinacji wspomaganej przez pułapki i zmniejszenie rozszczepienia quasi-poziomu Fermiego pod wpływem oświetlenia. Ogólnie rzecz biorąc, to ćwiczenie pokazuje, że rozkłady pułapek nie stanowią jedynie drobnej korekty w symulacjach nieuporządkowanych półprzewodników: często odgrywają kluczową rolę w uzyskiwaniu fizycznie znaczących krzywych JV, gęstości ładunku, współczynników rekombinacji i parametrów fotowoltaicznych.
Kolejne kroki: Jeśli chcesz dokładniej zapoznać się z szerszym kontekstem i zasadami modelowania, które są omawiane w tym samouczku, warto przejrzeć następujące strony.
- Czym są organiczne półprzewodniki? Materiały, urządzenia i zastosowania – szersze wprowadzenie do materiałów i typów urządzeń, w których istotną rolę odgrywają stany pułapkowe.
- Modelowanie organicznych urządzeń półprzewodnikowych: ogniwa słoneczne OPV, diody OLED i tranzystory OFET – przegląd metod wykorzystujących modele dryfu i dyfuzji, rekombinacji oraz modele optyczne do opisu organicznych urządzeń.
- Symulacja organicznej ogniwa słonecznego (OPV) – praktyczny punkt wyjścia do symulacji organicznych urządzeń fotowoltaicznych w programie OghmaNano.
- Symulacja organicznego tranzystora polowego (OFET) – przydatna, jeśli chcesz zobaczyć, jak proces wypełniania pułapek i transport ładunków przebiegają w różnych geometriach tranzystorów.
- Przykład efektu ograniczenia prądu przez ładunek przestrzenny (SCLC) — stanowi przydatne uzupełnienie wiedzy na temat mechanizmów wstrzykiwania, ruchliwości nośników ładunku oraz transportu ograniczonego przez pułapki.
- Symulacja morfologii heterospójników objętościowych za pomocą dwuwymiarowych przekrojów elektrycznych – bardziej zaawansowany poradnik, w którym pokazano, jak morfologia i transport oddziałują na siebie w organicznych ogniwach słonecznych.
- Dlaczego w modelach nieuporządkowanych półprzewodników konieczne jest uwzględnianie stanów pułapkowych – podstawowe fizyczne uzasadnienie, dlaczego konieczne jest uwzględnianie rozkładów stanów pułapkowych, aby uzyskać realistyczne wartości gęstości nośników, współczynników rekombinacji, ruchliwości i charakterystyk prądowo-napięciowych (krzywych J–V).