Início Exemplos Capturas de ecrã Manual do utilizador Logótipo Bluesky YouTube ☰
OghmaNano Platforma symulacji wielofizycznych dla urządzeń optoelektronicznych i systemów fotonicznych DESCARREGAR Quick Start guide

Modelagem de Estados de Armadilha Distribuídos em Semicondutores Desordenados

Comparison of ordered and disordered semiconductors showing isolated trap states in a high-purity ordered semiconductor and broad distributions of electron traps, mid-gap traps and hole traps in a disordered semiconductor.
Comparação dos estados de armadilha em semicondutores ordenados e desordenados. Num semicondutor altamente ordenado, como o silício de alta pureza, apenas um pequeno número de estados de armadilha isolados pode surgir dentro da banda proibida (a). Em semicondutores desordenados, como o silício amorfo ou os semicondutores orgânicos, as armadilhas formam distribuições mais amplas: armadilhas que contêm eletrões perto da banda de condução (b), armadilhas no meio da banda proibida (c) e armadilhas que contêm lacunas perto da banda de valência (d).

O tutorial foi elaborado como uma introdução geral à modelagem de estados de armadilha em semicondutores desordenados. O PM6:Y6 é usado como exemplo prático porque é um material fotovoltaico orgânico bem conhecido, mas os mesmos princípios de modelagem podem ser aplicados de forma mais ampla a semicondutores orgânicos, silício amorfo, semicondutores de óxido, perovskitas e outros materiais em forma de película fina, nos quais os estados localizados formam uma densidade distribuída de estados dentro da banda proibida.

1. Introdução: por que as distribuições de armadilhas são importantes em semicondutores desordenados.

Os estados de armadilha são fundamentais para o comportamento de muitos semicondutores desordenados, incluindo semicondutores orgânicos, silício amorfo, semicondutores de óxido, perovskitas e outros materiais fotovoltaicos de película fina. A diferença entre semicondutores ordenados e desordenados pode ser observada em ??. Em semicondutores altamente ordenados, como o silício cristalino de pureza extremamente elevada, frequentemente descrito como material com uma pureza de 99,9999% ou 99,99999%, existem relativamente poucos estados de armadilha dentro da banda proibida. Estes estados de armadilha isolados são ilustrados na região a em ??. Em tais sistemas, a recombinação através destes defeitos pode frequentemente ser descrita utilizando a equação padrão de recombinação de Shockley–Read–Hall (SRH):

\[ R_{SRH}=\frac{np-n_i^2} {\tau_p(n+n_1)+\tau_n(p+p_1)} \]

Para obter a demonstração matemática detalhada, passo a passo, consulte Demonstração da recombinação de Shockley–Read–Hall.

Esta equação parte do princípio de que a recombinação ocorre através de um único estado de armadilha discreto no meio da banda proibida, o que é, frequentemente, uma aproximação adequada para semicondutores/dispositivos relativamente ordenados, como diodos p–n de silício e diodos p–n de arsenieto de gálio. No entanto, à medida que o grau de desordem aumenta, torna-se menos útil considerar as armadilhas como defeitos isolados e mais útil descrevê-las como uma distribuição completa de estados dentro da banda proibida. Esta distribuição de estados é geralmente referida como a densidade de estados de armadilha ou densidade de estados (DOS). O lado direito de ?? ilustra esta situação para um semicondutor desordenado, como um semicondutor orgânico ou silício amorfo. A região b representa uma distribuição de estados de armadilha que contêm eletrões, próximos da banda de condução, a região d representa uma distribuição de estados de armadilha que contêm lacunas, próximos da banda de valência, e a região c representa uma distribuição de estados mais profundos no meio da banda proibida.

Em semicondutores ordenados, a expressão padrão de Shockley–Read–Hall (SRH) é frequentemente suficiente, pois os estados de armadilha são geralmente escassos e podem ser frequentemente aproximados como níveis de defeito isolados. Em semicondutores desordenados, essa aproximação deixa de ser válida: o material contém uma ampla distribuição de estados localizados que se estendem por toda a banda proibida, portanto, assumir que as armadilhas são um único defeito pontual é insuficiente. Uma expressão SRH de nível único trata a armadilha como um único nível de energia discreto, portanto, não pode descrever como os portadores preenchem uma ampla distribuição de estados localizados. Em um semicondutor desordenado, essa ocupação determina o equilíbrio entre a carga móvel e a carga aprisionada e, portanto, define a relação entre a densidade total de portadores e a posição do nível de quasi-Fermi. Se essa relação estiver incorreta, o modelo também fornecerá taxa de recombinação incorreta, mobilidade efetiva e comportamento J–V. Para modelar corretamente dispositivos desordenados, a ocupação da distribuição de armadilhas deve ser resolvida explicitamente, utilizando equações de taxa de aprisionamento, desaprisionamento e recombinação, acopladas de forma autoconsistente às equações de deriva-difusão e de Poisson. A população aprisionada resultante não é uma pequena correção: ela pode dominar o armazenamento de carga, o transporte, a recombinação, a mobilidade, a corrente de fuga, a tensão de circuito aberto e a forma da curva fotovoltaica J–V.

2. Mecanismos de captura e libertação de portadores de carga em semicondutores amorfos, segundo o modelo de Shockley–Read–Hall.

Shockley-Read-Hall trapping processes showing carrier capture and escape between free and trapped states in a distributed density of states.
Processos de captura e recombinação de Shockley–Read–Hall numa distribuição de densidade de estados. Os eletrões e as lacunas podem ser capturados e emitidos a partir de estados de armadilha distribuídos por toda a banda proibida.

Muitos leitores têm o primeiro contacto com a recombinação de Shockley–Read–Hall (SRH) através da equação compacta de recombinação em estado estacionário apresentada acima. No entanto, esta equação compacta é apenas um resultado simplificado derivado do formalismo mais abrangente da equação de taxa de SRH; os passos matemáticos estão descritos em Derivação da recombinação de Shockley–Read–Hall. No seu núcleo, a teoria de SRH descreve o preenchimento e esvaziamento de um estado de armadilha através de processos de captura e libertação de portadores, como ilustrado em ??. Os eletrões podem ser capturados na armadilha e, posteriormente, emitidos termicamente de volta para a banda de condução, enquanto os buracos também podem ser capturados e emitidos. Quando um eletrão e um buraco ocupam o mesmo estado de armadilha, ocorre a recombinação.

O formalismo subjacente da teoria SRH é, portanto, fundamentalmente um modelo baseado em equações de taxa que descreve a captura, a libertação e a recombinação de portadores de carga:

\[ \frac{dn_t}{dt}=r_{ec}-r_{ee}-r_{hc}+r_{he} \]

Aqui, \(r_{ec}\) representa a taxa de captura de eletrões na armadilha, \(r_{ee}\) representa a taxa de escape de eletrões de volta para a banda de condução, \(r_{hc}\) representa a taxa de captura de lacunas e \(r_{he}\) representa a taxa de escape de lacunas. Uma das ideias físicas fundamentais por detrás da teoria de SRH é que as taxas de escape (\(r_{ee}\) e \(r_{he}\)) dependem fortemente da profundidade energética da armadilha, enquanto as taxas de captura (\(r_{ec}\) e \(r_{hc}\)) dependem principalmente de se a armadilha está ocupada ou não. As armadilhas superficiais libertam, portanto, portadores de carga relativamente facilmente, enquanto as armadilhas profundas podem armazenar carga durante longos períodos de tempo.

O OghmaNano resolve o formalismo completo de aprisionamento SRH, em vez de utilizar as simplificações habituais para obter a equação compacta de recombinação SRH em estado estacionário. Na prática, isto significa que é resolvida uma equação de aprisionamento separada para cada nível de aprisionamento dentro da densidade de estados. Isto permite que o simulador modele a carga aprisionada, o preenchimento dos níveis de aprisionamento, a recombinação assistida por aprisionamento, a curvatura eletrostática da banda e as populações de aprisionamento distribuídas em semicondutores altamente desordenados, como os semicondutores orgânicos e o silício amorfo.

Neste tutorial, vamos analisar como os estados de armadilhamento distribuídos são implementados e resolvidos no OghmaNano, e como o aprisionamento, a libertação e a carga aprisionada influenciam o comportamento de dispositivos semicondutores desordenados.

3. Exemplo prático: criação de uma simulação de um semicondutor desordenado do tipo PM6:Y6.

Inicie o OghmaNano e clique em «Nova simulação». Isso abrirá a biblioteca de tipos de dispositivos disponíveis, conforme mostrado em ??. Clique duas vezes no ícone «Células solares orgânicas» para abrir a biblioteca de exemplos de OPV. Na lista de exemplos PM6:Y6 disponíveis, selecione PM6:Y6_E10_0hrs, conforme mostrado em ??. Uma simulação genérica de deriva-difusão também pode ser usada para este tutorial; no entanto, este exemplo PM6:Y6 já foi configurado com uma distribuição de estados de armadilha e uma estrutura de bandas que correspondem aos resultados mostrados aqui. Quando solicitado, salve a simulação em uma pasta onde você tenha permissão de gravação.

OghmaNano new simulation window showing available device categories including organic solar cells, OFETs, perovskites, OLEDs, diode models and optical simulation examples.
Nova janela de simulação. Clique duas vezes em «Células solares orgânicas» para abrir a biblioteca de exemplos de fotovoltaicos orgânicos.
OghmaNano organic solar cell example list showing PM6:Y6 simulations at different ageing times and trap-state conditions.
Exemplos de simulações PM6:Y6. Selecione PM6:Y6_E10_0hrs como ponto de partida para este tutorial sobre estados de armadilha.
Main OghmaNano window showing a PM6:Y6 organic solar cell device stack with ITO, ZnO, PM6:Y6 active layer, MoOx and Ag layers.
A simulação da célula solar PM6:Y6 foi carregada na janela principal do OghmaNano. A estrutura do dispositivo contém ITO, ZnO, a camada ativa PM6:Y6, MoOx e Ag. Os parâmetros dos estados de armadilha são definidos no editor de parâmetros elétricos para a camada ativa.

💡 Dica: Para obter o melhor desempenho, salve os arquivos em uma unidade local, como C:\. As simulações armazenadas em pastas de rede, unidades USB ou na nuvem (por exemplo, OneDrive) podem ser executadas de forma mais lenta devido à grande quantidade de leituras e gravações.

Após a criação da simulação, a janela principal do OghmaNano é aberta, conforme mostrado em ??. O dispositivo PM6:Y6 é apresentado como uma pilha de células solares em camadas. A camada ativa é a região semicondutora desordenada na qual os estados de armadilha distribuídos serão modificados.

4. Configurar a simulação para que seja executada no escuro.

OghmaNano optical ribbon showing the light intensity control used to switch between illuminated and dark simulations.
A faixa óptica. Defina a intensidade da luz para 0,0 unidades solares para executar a simulação em condições de escuridão.

Antes de iniciar a simulação, precisamos primeiro configurar o dispositivo para que funcione no escuro. Abra a faixa óptica mostrada em ?? e defina a intensidade da luz para 0,0 Suns. Isso garante que as curvas de corrente-tensão (JV) geradas correspondam a medições de corrente-tensão no escuro, em vez de ao funcionamento fotovoltaico sob iluminação. As simulações no escuro são frequentemente particularmente úteis ao estudar estados de armadilha, pois revelam a injeção de portadores, o preenchimento das armadilhas, a recombinação e os efeitos eletrostáticos de forma muito mais clara do que as simulações sob iluminação, onde a fotocorrente pode obscurecer muitos desses processos.

5. Definir a densidade de estados da armadilha.

OghmaNano electrical parameter editor showing free carrier parameters and non-equilibrium SRH trap parameters for an exponential trap density of states.
O editor de parâmetros elétricos para a camada ativa PM6:Y6. No modelo exponencial de armadilha padrão, as distribuições de armadilhas LUMO e HOMO são definidas utilizando fatores de predeterminação da densidade de armadilhas, inclinações da cauda de Urbach, secções eficazes de captura e o número de bandas de armadilhas.
OghmaNano electrical parameter editor with complex trap density-of-states mode enabled and an Edit button available for opening the complex DOS editor.
O modelo da densidade de estados passou de exponencial para complexo. Neste modo, a distribuição dos estados de armadilha é definida utilizando funções matemáticas no editor de densidade de estados complexa.

Na janela principal, abra o editor de parâmetros elétricos para a camada ativa PM6:Y6, utilizando o separador «estrutura do dispositivo». Isso abrirá o editor mostrado em ??. Quando a opção «armadilhas dinâmicas SRH» estiver ativada, o OghmaNano calcula uma distribuição de estados de armadilha no espaço de energia, que se assemelha à distribuição ilustrada em ??.

Por padrão, assume-se que a distribuição das armadilhas segue uma densidade de estados exponencial. Para a região de cauda do lado do LUMO, a densidade de estados é expressa como:

\[ \rho_\mathrm{LUMO}(E)=N_{t,n}\exp\left(\frac{E-E_C}{E_{U,n}}\right), \]

enquanto que, para a extremidade do lado HOMO, é escrito como:

\[ \rho_\mathrm{HOMO}(E)=N_{t,p}\exp\left(\frac{E_V-E}{E_{U,p}}\right). \]

Aqui \(N_{t,n}\) e \(N_{t,p}\) são os coeficientes que multiplicam a densidade de armadilhas de eletrões e lacunas, enquanto \(E_{U,n}\) e \(E_{U,p}\) são as energias correspondentes da cauda de Urbach. Na interface do utilizador apresentada em ??estes correspondem, respetivamente, aos parâmetros. Densidade de armadilhas de eletrões, Densidade de armadilhas de lacunas., Inclinação da cauda eletrónica e Declive em forma de buraco/túnel. em Armadilhas SRH em condições de não equilíbrio. secção do editor de parâmetros elétricos.

O editor também contém as seções de captura, que controlam as taxas dos processos de aprisionamento SRH mencionados anteriormente. Os parâmetros «elétron livre para elétron aprisionado» e «lacuna livre para elétron aprisionado» regem os processos de captura de elétrons e lacunas (\(r_{ec}\) e \(r_{hc}\)), enquanto os parâmetros «elétron livre para lacuna aprisionada» e «lacuna livre para lacuna aprisionada» regem os processos de escape correspondentes (\(r_{ee}\) e \(r_{he}\)). Em conjunto, estes parâmetros determinam a rapidez com que os portadores de carga são capturados e libertados da distribuição de armadilhas.

Por fim, o parâmetro «Número de armadilhas» controla o número de níveis de armadilha discretizados utilizados para aproximar a densidade analítica de estados. Estes correspondem aos níveis de armadilha horizontais vermelhos e azuis mostrados em ??. A densidade analítica de estados continua a ser definida pelas funções \(\rho_\mathrm{LUMO}(E)\) e \(\rho_\mathrm{HOMO}(E)\), enquanto o número de armadilhas determina o grau de granularidade da discretização numérica da distribuição.

Se a simulação for executada com esta configuração, o OghmaNano assumirá uma densidade de estados exponencial correspondente às equações acima. No entanto, o OghmaNano também permite um controlo muito maior sobre a distribuição exata dos estados de armadilha. Se for clicado no seletor «Exponencial», o modo muda para «Complexo», como mostrado em ??. Isto permite definir formas arbitrárias da densidade de estados. O editor de densidade de estados complexa pode então ser aberto clicando no botão «Editar», que aparece no lado direito do editor.

6. Defina uma distribuição exponencial de armadilha com profundidade superficial.

Complex density-of-states editor showing exponential LUMO and HOMO trap distributions with b set to 0.025 eV and numerical trap discretisation superimposed on the analytical DOS curves.
O editor complexo da densidade de estados foi configurado com estados de cauda exponencial pouco profundos para o LUMO e o HOMO. A curva azul representa a distribuição do lado do LUMO e a curva vermelha representa a distribuição do lado do HOMO. As curvas em degraus, em azul-ciano e verde, mostram os níveis de armadilha numéricos utilizados para aproximar a densidade de estados analítica. Aumentar o número de bandas de armadilha resultaria numa aproximação em degraus mais precisa.
Complex density-of-states editor showing broader exponential LUMO and HOMO trap distributions with b set to 0.100 eV.
O mesmo modelo complexo de densidade de estados (DOS), mas com uma extensão maior da cauda de Urbach, b = 0,100 eV. Uma extensão de cauda maior resulta numa diminuição mais lenta em direção à banda proibida e, consequentemente, aumenta o intervalo de energia no qual as armadilhas podem afetar o armazenamento de carga e a recombinação.

Clique em «Editar» para abrir o editor avançado de densidade de estados. O editor é apresentado em ??. A tabela superior define a distribuição de armadilhas do lado do LUMO e a tabela inferior define a distribuição de armadilhas do lado do HOMO. Cada linha contém uma função matemática, um interruptor de ativação e três parâmetros numéricos, identificados por a, b e c. O gráfico no lado esquerdo do editor mostra a densidade de estados resultante, gerada a partir das funções matemáticas inseridas nas tabelas. A curva analítica azul representa a distribuição de armadilhas do lado do LUMO ou da banda de condução (\(E_C\)), enquanto a curva analítica vermelha representa a distribuição de armadilhas do lado do HOMO ou da banda de valência (\(E_V\)). Estas curvas suaves correspondem à densidade de estados analítica exata, definida pelas equações inseridas no editor.

As curvas em azul-ciano e verde representam os níveis de armadilha discretizados que são efetivamente utilizados internamente pelo simulador. Estes níveis correspondem diretamente ao parâmetro «Número de armadilhas» definido anteriormente no editor de parâmetros elétricos. Aumentar o número de níveis de armadilha produz uma aproximação mais precisa da densidade de estados analítica e, consequentemente, melhora a precisão numérica da simulação. Na prática, as simulações que utilizam cerca de cinco níveis de armadilha geralmente produzem resultados muito bons para muitas simulações de dispositivos em estado estacionário. No entanto, as simulações que envolvem longos períodos de transição, como os cálculos de tempo de voo, podem exigir um número maior de níveis de armadilha, por vezes até cerca de vinte. Uma vez que os estados de armadilha são resolvidos em cada ponto da malha dentro do dispositivo, aumentar o número de níveis de armadilha também aumenta muito rapidamente o tamanho matemático total da simulação, pelo que, na prática, raramente são necessários valores muito superiores a vinte.

Table 1: Symbols used by the complex density-of-states editor
Símbolo Significado na expressão DOS.
ECoordenada de energia na qual é avaliada a densidade de estados.
CEBorda da banda de condução / nível de transporte LUMO
EVNível de transporte da extremidade da banda de valência / HOMO
um/umaUma constante definida pelo utilizador.
bUma constante definida pelo utilizador.
cUma constante definida pelo utilizador.

Em princípio, qualquer equação pode ser inserida no editor de equações, utilizando os parâmetros apresentados na tabela acima, e isso pode ser usado para construir a densidade de estados.

7. Efeito da largura da «cauda» da armadilha nas curvas de corrente-tensão em condições de escuridão e na densidade de carga.

Dark JV comparison showing current density as a function of voltage for shallow and broad exponential trap-tail distributions.
Comparação de curvas características em corrente contínua (JV) para distribuições exponenciais de «cauda» de armadilha, com profundidade e amplitude rasas.
Charge density comparison showing total charge density as a function of voltage for shallow and broad exponential trap-tail distributions.
Comparação da densidade de carga para as mesmas duas distribuições de «cauda de armadilha».

Realizaremos agora duas simulações e compararemos o efeito de alterar a largura energética da distribuição das armadilhas. No editor complexo da densidade de estados, certifique-se de que o parâmetro b está definido em 0,025 eV tanto para a distribuição LUMO quanto para a distribuição HOMO, conforme mostrado em ??. Isso define o caso de cauda rasa, onde a densidade de estados de armadilhas diminui relativamente rapidamente, afastando-se das bordas da banda, e, portanto, apenas um número limitado de estados de armadilhas profundas está presente dentro da banda proibida.

Executando e criando uma cópia de segurança da simulação para uso posterior: Volte para a janela principal e execute a simulação clicando no botão azul. Executar simulação botão ou pressionando F9Quando o cálculo estiver concluído, abra a pasta da simulação usando o Explorador do Windows. O ficheiro jv.csv contém a curva JV escura, enquanto charge.csv contém a carga total armazenada no dispositivo, expressa em função da voltagem. Faça cópias de segurança destes ficheiros utilizando o Explorador do Windows e renomeie os ficheiros copiados para: jv.bak e charge.bakEsses ficheiros de cópia de segurança irão armazenar os resultados da simulação da «cauda rasa», para que, posteriormente, possam ser comparados com a distribuição mais ampla da «armadilha».

Em seguida, abra novamente o editor DOS e aumente o parâmetro b para 0,100 eV, tanto para a distribuição LUMO quanto para a distribuição HOMO, conforme mostrado em ??. Isso amplia a distribuição das armadilhas, de modo que os estados de armadilha se estendam mais para dentro da banda proibida. Execute a simulação novamente. Após a segunda execução, o diretório da simulação deverá conter os arquivos de cópia de segurança originais (jv.bak e charge.bak), juntamente com os novos arquivos de saída (jv.csv e charge.csv).

☑ Após concluir esta etapa, o diretório da simulação deverá conter quatro ficheiros:

  • jv.csv — os dados escuros da simulação JV para a análise de longo prazo.
  • jv.bak — os dados escuros do JV relativos à simulação da zona de cauda superficial.
  • charge.csv — os dados da densidade de carga para a simulação de cauda alargada.
  • charge.bak — os dados de densidade de carga para a simulação da região de transição.

Após executar as duas simulações, pode usar o Microsoft Excel ou os scripts MATLAB e Python apresentados abaixo para gerar os gráficos mostrados em ?? e ??. Nestas comparações, os ficheiros .bak correspondem à simulação de cauda curta, enquanto os novos ficheiros .csv correspondem à simulação de cauda mais larga.

O aumento da energia da cauda de Urbach alarga a densidade dos estados de armadilha, de modo que uma população muito maior de armadilhas se estende profundamente na banda proibida. Isso altera diretamente tanto a corrente de recombinação quanto a quantidade de carga armazenada no dispositivo. Na comparação das curvas corrente-tensão (JV) no escuro, mostrada em ??, a distribuição mais ampla das armadilhas aumenta a corrente na região de tensão média, porque os portadores de carga podem ter acesso a uma população muito maior de estados de armadilha energeticamente distribuídos, que participam na recombinação e no transporte assistidos por armadilhas.

O efeito também é claramente visível na comparação da densidade de carga apresentada em ??. A distribuição mais ampla de armadilhas armazena mais carga em todo o dispositivo, pois agora existem muito mais estados energeticamente acessíveis disponíveis para a ocupação por portadores de carga. Essa carga armazenada atua como carga espacial no interior do dispositivo e, portanto, altera o potencial eletrostático e a curvatura da banda.

Do ponto de vista físico, esta é a principal diferença entre modelar um único centro de recombinação SRH e modelar uma densidade completa e distribuída de estados de armadilha. Num semicondutor desordenado, as armadilhas não são defeitos isolados. Elas formam um cenário energético completo que controla, simultaneamente, o aprisionamento e a libertação de portadores de carga, a recombinação, o armazenamento de carga e o transporte. É por isso que os estados de armadilha devem ser incluídos nos modelos de dispositivos semicondutores desordenados.

Versão MATLAB/Octave


clear;
close all;
clc;

% ============================================
% Settings
% ============================================

log_jv = true;
Mostrar o código completo do 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' ...
);

Versão do Python


import numpy as np
import matplotlib.pyplot as plt

# ============================================
# Settings
# ============================================

log_jv = True
Mostrar o código Python completo.

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. Efeito da largura da «cauda» da armadilha sob iluminação solar simulada.

Illuminated JV comparison for a PM6:Y6 solar cell with shallow and broad exponential trap-tail distributions.
Comparação de curvas de corrente-tensão (IV) para distribuições de «cauda» exponencial pouco profundas e amplas.
Charge density comparison under one-sun illumination for shallow and broad exponential trap-tail distributions.
Comparação da densidade de carga sob iluminação de um sol, para as mesmas duas distribuições de «cauda de armadilha».

Na secção anterior, comparámos as distribuições de «cauda de armadilha» pouco profundas e amplas no escuro. Agora, repetiremos a mesma comparação sob uma única fonte de luz. Vá para a faixa ótica e defina a intensidade da luz para 1,0. Em seguida, volte para o editor complexo de DOS e defina o parâmetro da «cauda de Urbach» para b = 0,025 eV, tanto para a distribuição LUMO como para a HOMO. Execute a simulação e, em seguida, faça cópias de segurança de jv.csv e charge.csv usando o Explorador do Windows, renomeando-as para jv.bak e charge.bak.

Em seguida, volte ao editor DOS e aumente a largura de ambas as «caudas» da armadilha, definindo b = 0,100 eV. Execute a simulação novamente. O diretório da simulação deverá agora conter os ficheiros jv.csv, jv.bak, charge.csv e charge.bak. Neste caso, os ficheiros .bak contêm a simulação de uma «cauda» estreita, enquanto os novos ficheiros .csv contêm a simulação de uma «cauda» larga.

☑ Após concluir esta etapa, o diretório da simulação deverá conter quatro ficheiros: jv.csv, jv.bak, charge.csv e charge.bak. Os ficheiros .bak contêm a simulação com iluminação na extremidade estreita, enquanto os ficheiros .csv contêm a simulação com iluminação na extremidade larga.

Os mesmos scripts MATLAB ou Python utilizados para gerar os gráficos acima podem agora ser reutilizados sem necessidade de modificação. Eles gerarão gráficos de jv.csv em função de jv.bak e de charge.csv em função de charge.bak. A comparação resultante das curvas de corrente-tensão (JV) sob iluminação é mostrada em ??, e a comparação da densidade de carga sob iluminação é mostrada em ??.

Sob iluminação, a distribuição das armadilhas altera diretamente o equilíbrio entre a fotogeração, a extração e a recombinação. Uma distribuição mais ampla coloca mais estados de armadilha mais profundamente dentro da banda proibida, aumentando a quantidade de carga aprisionada e alterando o perfil eletrostático interno do dispositivo. Isso modifica a curva corrente-tensão (JV) sob iluminação, pois a corrente de recombinação e a divisão do nível de quasi-Fermi são alteradas pela população de carga aprisionada.

O gráfico da densidade de carga apresenta a mesma dinâmica, mas sob uma perspetiva diferente. A simulação de cauda alargada armazena a carga de forma diferente, porque os portadores de carga estão agora distribuídos por uma gama mais ampla de níveis de energia de armadilha. É por isso que a distribuição das armadilhas é importante nas simulações fotovoltaicas: ela controla não apenas a quantidade de carga armazenada, mas também a sua posição energética e a forma como influencia o transporte, a recombinação e a formação de tensão.

9. Visualização da ocupação da armadilha em termos de energia e posição.

OghmaNano JV experiment window configured to write all simulation output to disk and dump the trap distribution as an energy-space map.
O editor de experimentos do JV. Defina o nível de detalhe da saída para o disco, de modo a que tudo seja gravado no disco, e defina a distribuição do «dump trap» para o mapa do espaço de energia. Após executar novamente a simulação, o diretório trap_map será gravado na pasta de saída.
Low-resolution trap occupation map showing charge density as a function of position and energy in the PM6:Y6 active layer.
Mapa inicial da ocupação das armadilhas, obtido a partir da simulação da junção. O eixo horizontal representa a posição no dispositivo e o eixo vertical representa a energia. A escala de cores indica a densidade das armadilhas ocupadas. Ao mover o controle deslizante da tensão, é possível observar o preenchimento das armadilhas à medida que a tensão aplicada varia.

Após constatar que a distribuição dos estados de armadilha altera as curvas de corrente-tensão (JV) e de densidade de carga, o próximo passo é analisar diretamente a ocupação das armadilhas. Abra a pasta de saída da simulação e procure a pasta trap_map. Se esta pasta não estiver visível, abra a guia «Elétrica» e clique no editor de curvas JV. Isso abrirá a janela do experimento JV mostrada em ??.

Na secção «Saída» do editor JV, defina o nível de detalhe da saída para «Disco» para que tudo seja gravado no disco. Em seguida, defina a distribuição do «Mapa de armadilhas» para «Mapa do espaço de energia». Execute novamente a simulação. Uma pasta chamada trap_map deverá aparecer agora na pasta de saída. Ao abrir os ficheiros nesta pasta, será apresentado um mapa de energia-posição da densidade das armadilhas ocupadas, conforme mostrado em ??.

Este mapa mostra a ocupação dos estados de armadilha distribuídos em função da posição e da energia. Em cada ponto de tensão durante a análise de corrente-tensão (JV), o OghmaNano regista a distribuição de armadilhas ocupadas no disco. Ao mover o controlo de tensão, pode observar como a população de armadilhas se distribui à medida que o dispositivo passa de uma baixa tensão para uma polarização direta.

10. Aumente a resolução do mapa de armadilhas.

O primeiro mapa de armadilhas é útil para simulações, mas a resolução é propositalmente baixa, pois o modelo padrão utiliza apenas cinco faixas de armadilhas e um número modesto de pontos de malha. Para uma visualização mais clara, volte ao editor de parâmetros elétricos e aumente o número de armadilhas de 5 para 10 ou 20. Em seguida, abra o editor de malha na barra de ferramentas elétrica e aumente o número de pontos de malha na direção da camada ativa para cerca de 100, conforme mostrado em ??.

Execute novamente a simulação, utilizando a malha com maior resolução e a discretização da armadilha. Os mapas de armadilhas resultantes devem apresentar uma aparência semelhante aos de ??, ?? e ??. Estes gráficos mostram como a densidade de armadilhas ocupadas evolui em função da tensão aplicada.

OghmaNano optical mesh editor showing spatial and wavelength mesh settings, including a spatial mesh with 200 points and wavelength range from 300 nm to 900 nm.
O editor de malhas. Aumentar o número de pontos da malha espacial resulta num eixo de posição mais suave no mapa de ocupação da armadilha. Aumentar o número de bandas da armadilha permite uma discretização mais fina da energia da densidade de estados.
High-resolution trap occupation map at low voltage showing occupied trap density as a function of position and energy.
Mapa de ocupação de armadilhas com resolução mais elevada, obtido com baixa voltagem. A população de armadilhas ainda é relativamente pequena e está distribuída ao longo do espectro de energia.
High-resolution trap occupation map at intermediate voltage showing increased filling of the trap distribution.
Ocupação de armadilhas numa tensão intermediária. À medida que a densidade de portadores injetados aumenta, uma porção maior da distribuição de armadilhas fica ocupada.
High-resolution trap occupation map at high voltage showing strong trap filling across the device.
Ocupação de armadilhas em tensões mais elevadas. A região ocupada move-se e alarga à medida que os níveis de quasi-Fermi se deslocam e o dispositivo armazena mais carga.

O mapa de armadilhas torna explícita a natureza distribuída do modelo. A carga não é concentrada num único nível de defeito; em vez disso, a densidade ocupada é distribuída por uma faixa de energia finita e varia com a posição dentro do dispositivo. Esta é uma das principais razões pelas quais os modelos de estados de armadilha distribuídos são úteis para semicondutores desordenados: permitem analisar em conjunto a desordem energética, o preenchimento das armadilhas e a eletrostática espacial.

11. Apresentar a ocupação da armadilha num único ponto da malha.

O mapa completo da distribuição espacial das armadilhas de energia é útil para visualizar todo o dispositivo, mas, por vezes, pode ser mais fácil compreender a física ao analisar a ocupação das armadilhas numa posição espacial específica. Para o fazer, abra novamente o editor JV e altere a opção «Dump trap distribution» de «Energy space map» para «Single mesh point», conforme mostrado em ??. Defina a posição y para 50. O OghmaNano irá então gerar o espetro de ocupação das armadilhas no 50.º ponto da malha dentro do dispositivo.

Execute novamente a simulação. Dentro do diretório de saída trap_map, o OghmaNano irá agora criar ficheiros como energy_slice_nt.csv para armadilhas de eletrões e energy_slice_pt.csv para armadilhas de lacunas. Estes ficheiros contêm a densidade de ocupação das armadilhas em função da energia na posição espacial selecionada. Ao mover o controlo deslizante da voltagem, poderá observar como a distribuição energética da carga aprisionada evolui durante a análise de corrente-voltagem (JV).

OghmaNano JV editor configured to dump the trap distribution at a single mesh point with y-position set to 50.
Configurar a simulação JV para que apresente o nível de ocupação da armadilha num único ponto da malha.
Electron trap occupation spectrum at low voltage showing occupation as a function of energy.
Ocupação de armadilhas de eletrões em baixa voltagem.
Electron trap occupation spectrum at intermediate voltage showing increased occupation across the trap distribution.
Ocupação de armadilhas de eletrões em tensões intermediárias.
Electron trap occupation spectrum at higher voltage showing a larger occupation maximum shifted in energy.
Ocupação de armadilhas de eletrões em tensões mais elevadas.

Os espectros de ocupação das armadilhas de eletrões apresentados em ??, ?? e ?? mostram como a ocupação das armadilhas evolui à medida que a tensão aplicada aumenta. Em baixas tensões, apenas uma pequena fração da distribuição das armadilhas está ocupada. À medida que a tensão aumenta, a densidade de portadores aumenta e preenche progressivamente uma região energética maior da densidade de estados. O máximo de ocupação também se desloca em termos de energia, pois o nível de quasi-Fermi local move-se através da distribuição das armadilhas à medida que a carga se acumula no interior do dispositivo.

Hole trap occupation spectrum at low voltage showing occupation as a function of energy.
Ocupação de armadilhas de lacunas em baixa tensão.
Hole trap occupation spectrum at intermediate voltage showing increased occupation as the device is driven forward.
Ocupação de armadilhas de lacunas em tensão intermediária.
Hole trap occupation spectrum at higher voltage showing the maximum occupied density moving through the trap distribution.
Ocupação de armadilhas de lacunas com tensão mais elevada.

Os espectros correspondentes de armadilhas de lacunas apresentados em ??, ?? e ?? mostram o mesmo processo físico a partir do lado HOMO da densidade de estados. À medida que o dispositivo é ativado e a densidade de portadores aumenta, a densidade de armadilhas ocupadas cresce e desloca-se através da distribuição de armadilhas do lado HOMO, exatamente da mesma forma que para as armadilhas de eletrões.

Esses diagramas de energia unidimensionais são particularmente úteis porque separam a componente energética do problema da componente espacial. O mapa completo da armadilha mostra onde a carga é armazenada dentro do dispositivo, enquanto os espectros de ponto único da malha mostram exatamente como essa carga é distribuída em termos de energia. Em conjunto, esses resultados fornecem uma visualização direta do preenchimento das armadilhas, do movimento do nível de quasi-Fermi e do armazenamento de carga dentro de um dispositivo semicondutor desordenado.

12. Adicionar uma armadilha profunda que favoreça a recombinação gaussiana.

OghmaNano equation selector showing predefined density-of-states functions including exponential, Gaussian, Lorentzian and power-law forms.
O seletor de equações no editor avançado de densidade de estados.
Complex density-of-states editor showing an exponential LUMO tail with an additional Gaussian deep trap state superimposed on the LUMO density of states.
Uma densidade de estados complexa é formada pela sobreposição de uma armadilha gaussiana profunda sobre uma cauda exponencial do LUMO.

O editor avançado de densidade de estados permite combinar várias funções analíticas numa única distribuição de armadilhas. Isto significa que a densidade de estados não precisa de consistir apenas numa cauda exponencial pura ou numa distribuição gaussiana pura. Em vez disso, várias funções podem ser sobrepostas para criar modelos de densidade de estados desordenados mais realistas, que contenham tanto estados de cauda superficiais como bandas de armadilhas localizadas mais profundas.

Para adicionar outro componente à densidade de estados do lado do LUMO, clique no botão «+» no painel do LUMO do editor de densidade de estados do complexo. Pode digitar a expressão analítica diretamente no campo da função ou clicar no botão com três pontos para abrir o seletor de equações mostrado em ??. O seletor de equações contém várias funções de densidade de estados predefinidas, incluindo distribuições exponenciais, gaussianas, de Lorentz e de potência.

Neste exemplo, a densidade de estados do lado LUMO contém duas funções ativadas. A primeira é a função exponencial original, enquanto a segunda é uma função gaussiana que representa um poço de armadilhamento profundo:

\[ \rho_\mathrm{G}(E)= a\exp\left[ -\left( \frac{c+E-E_C} {\sqrt{2}\,b} \right)^2 \right]. \]

O parâmetro «a» controla a escala de densidade, «b» controla a largura energética da gaussiana e «c» desloca a armadilha para longe da extremidade da banda. Neste exemplo, «c» = 0,7 eV, o que coloca a armadilha gaussiana bem no interior da banda proibida, em relação ao nível de transporte LUMO. A densidade de estados do lado HOMO é mantida como uma simples cauda exponencial.

Fisicamente, este modelo representa um semicondutor que contém tanto uma perturbação energética superficial como uma banda de defeitos mais profunda. A cauda exponencial superficial controla principalmente o transporte e a captura de portadores de carga perto do nível de transporte, enquanto o estado gaussiano profundo atua como um centro de recombinação e armazenamento de carga. Uma vez que cada função tem o seu próprio interruptor de ativação, o efeito da armadilha profunda pode ser isolado sem alterar o restante do modelo do dispositivo.

OghmaNano simulation type ribbon showing the Suns Voc simulation option selected for running open-circuit voltage as a function of light intensity.
Selecione o experimento «Suns Voc» na faixa de opções do tipo de simulação.
Suns-Voc comparison showing open-circuit voltage as a function of light intensity for simulations with and without a Gaussian deep trap state.
Comparação entre os resultados obtidos com o Suns e o Voc, com e sem a utilização da função gaussiana para modelar o poço profundo.

Para investigar o efeito da armadilha profunda na recombinação, execute um Suns Voc simulação. Abra o Tipo de simulação fita e selecionar Suns Voccomo demonstrado em ??Em seguida, execute a simulação a partir da janela principal, utilizando o botão azul de execução ou pressionando F9.

Quando a simulação estiver concluída, o ficheiro suns_voc.csv conterá a tensão de circuito aberto em função da intensidade da iluminação. Faça uma cópia de segurança deste ficheiro utilizando o Explorador do Windows e renomeie-o para suns_voc.bak. Em seguida, volte para o editor DOS e desative a linha de armadilhas profundas de Gauss, mantendo a parte exponencial ativada. Execute novamente a simulação Suns–Voc.

O novo ficheiro suns_voc.csv corresponde agora ao dispositivo sem a armadilha gaussiana profunda, enquanto suns_voc.bak contém a simulação com a armadilha profunda incluída. Ao apresentar graficamente estes dois ficheiros em conjunto, obtém-se a comparação mostrada em ??.

A armadilha gaussiana profunda reduz a tensão de circuito aberto, pois introduz um caminho de recombinação adicional no interior da banda proibida. Isso diminui a separação do nível de quasi-Fermi estabelecida sob iluminação e, consequentemente, reduz a tensão de circuito aberto (VOC) que pode ser alcançada. O efeito é particularmente forte em intensidades de luz mais baixas, onde a recombinação assistida por armadilhas domina a dinâmica dos portadores de carga.

As medições de Suns-Voc são, portanto, extremamente úteis para distinguir estados de desordem energéticos superficiais de estados de defeito mais profundos, que são ativos na recombinação. Uma vez que o dispositivo é medido em condições de circuito aberto, o experimento isola a física interna da recombinação, sem a complicação adicional da corrente de extração de portadores.

Se pretender criar o gráfico comparativo entre os valores de Suns e Voc apresentados em ??, pode utilizar os scripts MATLAB/Octave ou Python que se seguem. Estes scripts comparam suns_voc.csv com suns_voc.bak e representam graficamente a tensão de circuito aberto em função da intensidade da luz.

Versão MATLAB/Octave


clear;
close all;
clc;

% Load data
voc     = load('suns_voc.csv');
voc_bak = load('suns_voc.bak');
Mostrar o código completo do 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' ...
);

Versão do 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")
Mostrar o código Python completo.

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()

Resumo

Este tutorial demonstrou como os estados de armadilha podem ser incluídos explicitamente num modelo de dispositivo semicondutor desordenado. Em vez de tratar a recombinação como proveniente de um único nível de defeito SRH isolado, o OghmaNano permite que a densidade de estados de armadilha seja descrita como uma distribuição energética. Isto é essencial para semicondutores orgânicos, silício amorfo, semicondutores de óxido e outros materiais em película fina, onde os estados localizados se estendem por toda a banda proibida e influenciam fortemente a relação entre a densidade de portadores, a posição do nível de quasi-Fermi, a recombinação e a mobilidade. Embora o exemplo prático utilize uma célula solar orgânica PM6:Y6, o objetivo do tutorial é mais amplo: demonstrar como os estados de armadilha distribuídos são representados, resolvidos e diagnosticados em simulações de dispositivos semicondutores desordenados.

Partindo de uma simulação de uma célula solar orgânica PM6:Y6, comparámos distribuições de «cauda» exponencial de armadilhas, tanto estreitas como largas, em condições de escuridão e de iluminação. O alargamento da distribuição de armadilhas alterou a curva de corrente-tensão (JV) em condições de escuridão, a curva de corrente-tensão em condições de iluminação e a carga total armazenada, uma vez que o dispositivo podia ocupar uma gama mais ampla de estados localizados. Os resultados do mapeamento das armadilhas tornaram este comportamento visível diretamente, mostrando como a população de armadilhas ocupadas varia com a posição, a energia e a tensão aplicada.

Por fim, foi adicionada uma armadilha gaussiana profunda no topo da cauda exponencial, para demonstrar como modelos complexos de densidade de estados podem representar tanto a desordem energética superficial quanto os defeitos mais profundos que favorecem a recombinação. A simulação Suns–Voc demonstrou que esses estados profundos podem reduzir a tensão de circuito aberto, aumentando a recombinação assistida por armadilhas e diminuindo a separação do nível de quasi-Fermi sob iluminação. No geral, o tutorial demonstra que as distribuições de armadilhas não são uma correção menor nas simulações de semicondutores desordenados: elas são frequentemente essenciais para obter curvas JV, densidades de carga, taxas de recombinação e desempenho fotovoltaico com significado físico.

Próximos passos: se quiser aprofundar o conhecimento sobre a estrutura de modelagem mais ampla que envolve este tutorial, as páginas a seguir são um bom ponto de partida.