無秩序な半導体中における分散したトラップ状態のモデリング
本チュートリアルは、無秩序な半導体におけるトラップ状態のモデリングに関する一般的な入門書として作成されている。PM6:Y6を具体例として用いているのは、これが広く知られた有機太陽電池材料だからであるが、ここで述べられるモデリング手法は、局在化した状態がバンドギャップ内で連続的な状態密度分布を形成する有機半導体、アモルファスシリコン、酸化物半導体、ペロブスカイト、その他の薄膜材料全般にも適用可能である。
1. はじめに:なぜ無秩序な半導体においてトラップ分布が重要なのか
トラップ状態は、有機半導体、非晶質シリコン、酸化物半導体、ペロブスカイト、その他の薄膜型太陽電池材料を含む多くの無秩序半導体の挙動において極めて重要な役割を果たす。秩序半導体と無秩序半導体の違いは??に示されている。極めて高純度な結晶シリコンといった高度に秩序化された半導体においては、バンドギャップ内に存在するトラップ状態は比較的少ない。こうした孤立したトラップ状態は??の領域aで示されている。このような系においては、これらの欠陥を介した再結合現象は標準的なショックレー・リード・ホール(SRH)再結合方程式を用いて記述可能である。
\[ R_{SRH}=\frac{np-n_i^2} {\tau_p(n+n_1)+\tau_n(p+p_1)} \]
段階的な数学的導出の手順については、以下をご覧ください。 ショックレー・リード・ホール再結合の導出.
この式では、再結合が単一の中間バンド領域にあるトラップ状態を介して起こると仮定されている。この仮定は、シリコン p-n ダイオードやガリウムヒ素 p-n ダイオードのように比較的秩序だった半導体やデバイスにおいては適切な場合が多い。しかし、物質の無秩序度が高まるにつれて、トラップを孤立した欠陥として考えることは不適切となり、バンドギャップ内に存在する状態の分布として記述する方が適切となる。この状態分布は一般にトラップ状態密度あるいは状態密度(DOS)と呼ばれる。??の右側図は、有機半導体や非晶質シリコンといった無秩序な半導体におけるこの状況を示している。領域bは伝導帯近傍に存在する電子を含むトラップ状態の分布、領域dは価電子帯近傍に存在する正孔を含むトラップ状態の分布、そして領域cはより深い中間バンド領域に存在する状態の分布を表している。
秩序だった半導体材料においては、トラップ状態は通常まばらに存在し孤立した欠陥準位として近似できるため、標準的なショックレー・リード・ホール(SRH)式で十分である。一方、無秩序な半導体材料ではこの近似が成り立たない。この種の材料にはバンドギャップ全体にわたって広範な局在状態分布が存在するため、トラップを単一の点状欠陥と見なすことは不適切だからである。単一準位のSRH式ではトラップを一つの離散的なエネルギー準位として扱うため、広範な局在状態分布へのキャリアの占有状態を記述することは不可能である。無秩序な半導体においては、この占有状態が移動性キャリアとトラップされたキャリアのバランスを決定し、結果として全キャリア密度と擬フェルミ準位の位置との関係を定める。この関係が不正確であれば、モデルは誤った再結合率、有効移動度およびJ–V特性を算出してしまう。無秩序な半導体デバイスを正確にモデル化するためには、トラップ・脱トラップ・再結合率の方程式をトラップ分布の占有状態の計算に用い、それらをドリフト–拡散方程式およびポアソン方程式と自己無矛盾的に連成させる必要がある。こうして得られるトラップされたキャリアの量は些細な補正項にとどまらず、キャリア蓄積、輸送、再結合、移動度、暗電流、開放電圧、さらには太陽電池のJV特性の形状にまで大きな影響を及ぼすのである。
2. 無秩序な半導体におけるショックレー・リード・ホール過程によるトラップ捕捉および脱捕捉
多くの読者は、まず上記の簡略化された定常状態におけるSRH再結合方程式を通じてショックレー・リード・ホール(SRH)再結合現象に触れることになる。しかしこの簡略式は、より広範なSRH速度方程式体系から導出された単純化された結果に過ぎず、その数学的導出過程はShockley–Read–Hall recombination derivationに記載されている。SRH理論の本質は、??に示すように、キャリアのトラップ状態への捕獲および脱捕獲の過程を通じたトラップ状態の充填・空化を記述することにある。電子はトラップ状態に捕獲された後、熱的に伝導帯へと再放出される場合もあり、正孔も同様に捕獲・放出される。電子と正孔の両方が同一のトラップ状態に存在する場合、再結合が生じるのである。
基本的なSRH理論は、キャリアのトラップ・脱トラップおよび再結合の過程を記述する速度方程式モデルである。
\[ \frac{dn_t}{dt}=r_{ec}-r_{ee}-r_{hc}+r_{he} \]
ここで\(r_{ec}\)はトラップへの電子捕獲率、\(r_{ee}\)は伝導帯への電子放出率、\(r_{hc}\)は正孔捕獲率、\(r_{he}\)は価電子帯への正孔放出率を表す。SRH理論の重要な物理的概念の一つとして、放出率(\(r_{ee}\)および\(r_{he}\))はトラップのエネルギー深さに強く依存する一方、捕獲率(\(r_{ec}\)および\(r_{hc}\))は主にトラップが占有されているか否かによって決まる点が挙げられる。したがって、浅いトラップは比較的容易にキャリアを放出するのに対し、深いトラップは長期間にわたって電荷を保持することが可能となる。
OghmaNanoでは、簡略化された定常状態用SRH再結合方程式を導出する際に用いられる近似処理を行うのではなく、完全なSRHトラップ理論に基づいた計算が実施される。具体的には、状態密度内に存在する各トラップ準位に対して個別のトラップ方程式が解かれる。この手法により、有機半導体や非晶質シリコンといった極めて無秩序な半導体材料中におけるトラップされた電荷の挙動、トラップの占有状態、トラップ介在型再結合、静電的なバンド曲がり、および分散したトラップ分布の影響を正確にモデル化することが可能となる。
本チュートリアルでは、OghmaNanoにおいて分散したトラップ状態がどのように実装・解析されるか、またトラップ現象、トラップからの脱トラップ現象、およびトラップされた電荷が無秩序な半導体デバイスの挙動にどのような影響を与えるかを解説する。
3. 実践例:PM6:Y6系無秩序半導体のシミュレーション作成方法
OghmaNanoを起動し、「新規シミュレーション」をクリックします。これにより利用可能なデバイスタイプの一覧が表示され、??に示されている通りです。続いて「有機太陽電池」アイコンをダブルクリックして有機太陽光発電関連のサンプルライブラリを開きます。利用可能なPM6:Y6サンプルのリストから、??に示されているPM6:Y6_E10_0hrsを選択します。このチュートリアルでは一般的なドリフト拡散シミュレーションも使用可能ですが、今回選択したPM6:Y6サンプルは既に本テキストで示されている結果と一致するよう、トラップ状態の分布およびバンド構造が設定済みとなっています。プロンプトが表示された際には、書き込み権限のあるフォルダへシミュレーションデータを保存してください。
💡 ヒント:最適なパフォーマンスを得るためには、C:\ のようなローカルドライブに保存してください。ネットワークドライブやUSB、クラウドフォルダ(例:OneDrive)に保存されたシミュレーションデータは、頻繁な読み書き処理のため 処理が遅くなる可能性があります。
シミュレーションの作成が完了すると、??に示すようにOghmaNanoのメインウィンドウが開く。PM6:Y6デバイスは層状構造を持つ太陽電池スタックとして表示される。活性層は、分布するトラップ状態を変更するための無秩序半導体領域である。
4. シミュレーションを暗状態下で実行する設定
シミュレーションを開始する前に、まずデバイスが暗状態下で動作するよう設定する必要がある。??に示す光学リボンを開き、光強度を0.0サンに設定する。これにより得られるJV曲線は、光照射下での太陽電池動作時のものではなく暗状態における測定値となる。トラップ状態の研究においては、暗状態シミュレーションが特に有用である。光照射下では光電流が多くの物理現象を覆い隠してしまうのに対し、暗状態シミュレーションではキャリアの注入、トラップの充填、再結合、および静電気的効果がより明確に現れるからだ。
5. トラップの状態密度の定義
メインウィンドウからデバイス構造タブを使用して、PM6:Y6活性層用の電気的パラメータ編集器を開いてください。そうすると??に示す編集器が表示されます。動的SRHトラップ機能が有効化されている場合、OghmaNanoはエネルギー空間上で??に示す分布に類似したトラップ状態の分布を計算します。
デフォルトでは、トラップ分布は指数関数的な状態密度に従うと仮定される。LUMO側の尾部における状態密度は次のように表される。
\[ \rho_\mathrm{LUMO}(E)=N_{t,n}\exp\left(\frac{E-E_C}{E_{U,n}}\right), \]
一方、HOMO側の分布に関しては次のように表される
\[ \rho_\mathrm{HOMO}(E)=N_{t,p}\exp\left(\frac{E_V-E}{E_{U,p}}\right). \]
ここで\(N_{t,n}\)および\(N_{t,p}\)は電子および正孔のトラップ密度に関する前係数であり、\(E_{U,n}\)および\(E_{U,p}\)はそれぞれ対応するアーバッハ尾のエネルギー値である。??に示すユーザーインターフェース上では、これらは電気パラメータエディタの「非平衡状態におけるSRHトラップ」セクション内にある「電子トラップ密度」「正孔トラップ密度」「電子尾の傾き」「正孔尾の傾き」というパラメータにそれぞれ対応している。
このエディタには、前述のSRHトラップ過程の速度を制御するための捕獲断面積パラメータも備わっている。Free electron to Trapped electronおよびFree hole to Trapped electronの各パラメータは電子および正孔の捕獲過程を制御し(\(r_{ec}\)および\(r_{hc}\))、一方Free electron to Trapped holeおよびFree hole to Trapped holeのパラメータはそれぞれの放出過程を制御する(\(r_{ee}\)および\(r_{he}\))。これらのパラメータの組み合わせによって、キャリアがトラップ分布内にどの程度迅速に捕獲されたり放出されたりするかが決定される。
最後に、トラップ数パラメータは、解析的な状態密度を近似するために用いられる離散化されたトラップ準位の数を制御する。これらは ?? に示されている水平方向の赤色および青色のトラップ準位に対応する。解析的な状態密度自体は依然として関数 \(\rho_\mathrm{LUMO}(E)\) および \(\rho_\mathrm{HOMO}(E)\) によって定義されるが、トラップ数によってその分布が数値的にどの程度細かく離散化されるかが決定される。
この設定でシミュレーションを実行すると、OghmaNanoは上記の数式に基づく指数関数的な状態密度を仮定する。ただし、OghmaNanoではトラップ状態の分布をより詳細に制御することも可能である。ExponentialボタンをクリックするとモードがComplexに切り替わり、??に示すようになる。これにより任意の形状を持つ状態密度を定義できる。さらに、エディタ右側に現れるEditボタンをクリックすることで、複雑な状態密度エディタ自体を開くことも可能である。
6. 浅い指数関数的なトラップ分布を定義する
「編集」ボタンをクリックすると、複雑な状態密度エディタが開きます。このエディタの画面は??に示されています。上部のテーブルではLUMO側のトラップ分布を定義し、下部のテーブルではHOMO側のトラップ分布を定義します。各行には数学関数、有効化スイッチ、そしてa、b、cと記された3つの数値パラメータが含まれています。エディタの左側にあるプロット図は、各テーブルに入力された数学関数から生成された状態密度を示しています。青色の解析曲線はLUMO側、すなわち伝導帯(\(E_C\))におけるトラップ分布を表し、赤色の解析曲線はHOMO側、すなわち価電子帯(\(E_V\))におけるトラップ分布を表します。これら滑らかな曲線は、エディタ内で入力された数式によって定義される正確な解析的状態密度に対応しています。
水色および緑色の階段状曲線は、シミュレータ内部で実際に使用される離散化されたトラップ準位を表している。これらの階段状準位は、電気パラメータ編集器で事前に定義された「トラップ数」パラメータと直接対応している。トラップ準位の数を増やすことで解析的に求められた状態密度への近似がより精密になり、結果としてシミュレーションの数値精度も向上する。実際には、多くの定常状態下でのデバイスシミュレーションにおいては5程度のトラップ準位を用いれば十分良好な結果が得られる。ただし飛行時間測定のような長時間にわたる過渡現象を扱うシミュレーションでは、場合によっては20程度のトラップ準位が必要となることもある。デバイス内の各メッシュ点においてすべてのトラップ状態が解かれるため、トラップ準位の数を増やすとシミュレーションの数学的規模も急速に増大する。そのため実用上20を大幅に超える値が必要となるケースはほとんどない。
| 記号 | 状態密度表現における意味合い |
|---|---|
| E | 状態密度を評価する際のエネルギー座標 |
| エネルギー座標:状態密度が評価される位置 | 伝導帯端/LUMO輸送準位 |
| 電子電圧 | 価電子帯端/HOMO輸送準位 |
| a | ユーザー定義の定数 |
| b | ユーザー定義の定数 |
| c | ユーザー定義定数 |
原則として、上記の表に記載されたパラメータを用いて数式エディタに任意の数式を入力でき、それによって状態密度を構築することも可能である。
7. トラップテイルの幅が暗状態下のJV特性曲線および電荷密度に与える影響
これから2回のシミュレーションを実行し、トラップ分布のエネルギー幅を変化させた際の影響を比較する。複雑な状態密度エディタにおいて、??に示すようにLUMOおよびHOMO分布の両方においてパラメータbが0.025 eVに設定されていることを確認する。これにより浅いトレイル分布が定義され、この場合トラップ状態の密度はバンド端から比較的速やかに減少するため、バンドギャップ内に存在する深いトラップ状態の数は限定的となる。
シミュレーションを実行し、後で参照できるようバックアップコピーを作成する:
メインウィンドウに戻り、青色のボタンをクリックしてシミュレーションを実行してください シミュレーションを実行 ボタンをクリックするか、キーを押してください F9計算が完了したら、Windowsエクスプローラーを使用してシミュレーションディレクトリを開いてください。
そのファイル jv.csv 暗状態におけるJV曲線が記録されています charge.csv このファイルには、電圧の関数としてデバイス内に蓄積される全電荷量が記録されている。
Windowsエクスプローラーを使用してこれらのファイルのバックアップコピーを作成し、コピーしたファイルの名前を変更してください。 jv.bak および charge.bakこれらのバックアップファイルには、浅い尾状分布を持つ場合のシミュレーション結果が保存されるため、後程より広範なトラップ分布の場合と比較することが可能となる。
次に、複雑な状態密度エディタを再開し、??に示すようにLUMOおよびHOMO分布の両方においてパラメータbを0.100 eVまで増加させます。これによりトラップ分布が広がり、トラップ状態がバンドギャップ内により広範囲に存在するようになります。再度シミュレーションを実行してください。2回目の実行後、シミュレーションディレクトリには元のバックアップファイル(jv.bakおよびcharge.bak)と新たに生成された出力ファイル(jv.csvおよびcharge.csv)の両方が存在することになります。
☑ この段階を完了すると、シミュレーションディレクトリ内に4つのファイルが存在することになる。
jv.csv— 広尾分布シミュレーションにおける暗状態下のJVデータである。jv.bak— 浅い尾分布シミュレーションにおける暗状態下のJVデータ。charge.csv— 広い尾分布シミュレーションにおける電荷密度データ。charge.bak— シャローテイルシミュレーションにおける電荷密度データ。
両方のシミュレーションを実行した後、Microsoft Excelまたは以下のMATLABおよびPythonスクリプトを用いて、??および??に示されるグラフを作成することができる。これらの比較において、.bakファイル群は浅いテール分布を仮定したシミュレーション結果に対応し、新たに用意された.csvファイル群はより広範なテール分布を仮定したシミュレーション結果に対応する。
ウルバッハテールのエネルギー値を増加させると、トラップ状態の分布が広がり、より多くのトラップがバンドギャップの奥深くまで存在するようになる。これにより再結合電流ならびにデバイス内に蓄積されるトラップ電荷量の両方が変化する。??に示した暗状態下でのJV特性の比較において、より広範なトラップ分布では中電圧領域における電流値が増加する。これは、より多くのエネルギー的に分布したトラップ状態が利用可能となり、それらがトラップ支援型の再結合およびキャリア輸送に寄与するためである。
この効果は??に示された電荷密度の比較においても明確に確認できる。より広範なトラップ分布では、エネルギー的にアクセス可能なトラップ状態の数が増加したため、デバイス全体でより多くの電荷が蓄積される。このように蓄積された電荷はデバイス内部で空間電荷として作用し、静電ポテンシャルやバンド曲がりの状態を変化させるのである。
物理的には、単一のSRH再結合中心をモデル化することと、分散した多数のトラップ状態の密度分布をモデル化することとの間に存在する主要な違いがこれである。無秩序な半導体においては、トラップは単独で存在する欠陥ではない。それらはキャリアのトラップ・脱トラップ現象、再結合、電荷蓄積および輸送を同時に制御するエネルギー構造全体を形成しているのである。これが理由である。 無秩序な半導体デバイスモデルにおいては、トラップ状態を必ず考慮する必要がある。.
MATLAB/Octave版
clear;
close all;
clc;
% ============================================
% Settings
% ============================================
log_jv = true;
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' ...
);
Python版
import numpy as np
import matplotlib.pyplot as plt
# ============================================
# Settings
# ============================================
log_jv = True
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. 1太陽光下におけるトラップテイルの幅の影響
前項では暗状態下における浅いトラップ分布と広いトラップ分布の比較を行った。ここでは同じ比較を1太陽光照射下で実施する。光学設定画面に移動し、光強度を再び1.0太陽光に設定する。その後、複合状態密度エディタに戻り、LUMOおよびHOMO分布のそれぞれについてウルバッハ尾パラメータを b = 0.025 eV に設定する。シミュレーションを実行した後、Windowsエクスプローラーを用いて jv.csv および charge.csv のバックアップコピーを作成し、それぞれ jv.bak および charge.bak と名付ける。
次に、複雑な状態密度エディタに戻り、LUMOおよびHOMO分布の両方においてUrbach尾パラメータをb = 0.100 eVに設定してトラップ分布を広げます。再度シミュレーションを実行すると、シミュレーションディレクトリ内にはjv.csv、jv.bak、charge.csv、charge.bakが生成されます。この場合、.bakファイル群には浅い尾分布を持つ1太陽光下でのシミュレーション結果が含まれ、新たに生成された.csvファイル群には広い尾分布を持つ1太陽光下でのシミュレーション結果が含まれます。
☑ この段階を完了すると、シミュレーションディレクトリにはjv.csv、jv.bak、charge.csv、charge.bakの4つのファイルが存在するはずです。.bakファイル群には浅い尾根分布を持つ照射下シミュレーションの結果が含まれ、.csvファイル群には広い尾根分布を持つ照射下シミュレーションの結果が含まれます。
先ほど使用したMATLABまたはPythonのプロットスクリプトを、変更なしでそのまま再利用可能である。これらのスクリプトではjv.csvとjv.bak、およびcharge.csvとcharge.bakの関係がプロットされる。得られた照射下におけるJV特性の比較結果は??に、また照射下における電荷密度の比較結果は??に示されている。
光照射下において、トラップ分布は光生成、キャリア抽出、および再結合の間のバランスに直接的な影響を与える。より広範囲に広がった分布では、バンドギャップ内部のより深い位置に多くのトラップ状態が存在するため、トラップされた電荷量が増加し、デバイス内部の静電的状態も変化する。この結果、トラップされた電荷の分布によって再結合電流や準フェルミ準位の分裂が変化するため、光照射時のJV特性も変動するのである。
電荷密度分布図は、別の視点から同じ物理現象を示している。広いエネルギー分布を持つシミュレーションでは、キャリアがより広範囲のトラップエネルギー領域に分布するため、電荷の蓄積様態も異なる。このようにトラップ分布は太陽電池シミュレーションにおいて極めて重要である。なぜなら、蓄積される電荷量のみならず、そのエネルギー的位置や輸送現象・再結合過程・開回路電圧の形成に与える影響も決定づけるからである。
9. エネルギーおよび位置におけるトラップ占有状態の可視化
trap_map ディレクトリが作成される。
トラップ状態の分布がJV特性曲線および電荷密度分布に与える影響を確認した後、次のステップとしてトラップの占有状態を直接調査する。シミュレーション出力ディレクトリを開き、trap_mapというディレクトリを探してください。もし該当ディレクトリが見当たらない場合は、電気系リボンを開いてJVエディタをクリックしてください。そうすると??に示すJV実験ウィンドウが表示されます。
JVエディタの出力設定セクションにおいて、出力詳細度を「disk」に設定してすべてのデータをディスクに書き出すようにします。次に「Dump trap distribution」の値を「Energy space map」に設定します。その後シミュレーションを再実行してください。そうすると出力フォルダ内に trap_map というディレクトリが生成されるはずです。このディレクトリ内のファイルを開くと、占有されたトラップ状態の密度に関するエネルギー位置マップが得られ、それが ?? に示されている内容となります。
このマップは、位置およびエネルギーの関数として分布するトラップ状態の占有状況を示している。JVスキャンにおける各電圧点において、OghmaNanoは占有されたトラップ分布をディスクに書き出す。電圧スライダーを操作することで、デバイスが低電圧状態から順バイアス状態へ移行する際にトラップの占有数がどのように増加していくかを確認できる。
10. トラップマップの解像度を向上させる
最初のトラップマップはシミュレーション用として有用だが、デフォルトモデルではトラップバンドが5つしかなくメッシュ点の数も少ないため、意図的に解像度を低く設定している。より明瞭な可視化を行うため、電気パラメータエディタに戻り「トラップ数」の値を5から10または20へ増やす。次に電気リボンからメッシュエディタを開き、??に示すように活性層方向のメッシュ点の数を約100まで増加させる。
より高解像度なメッシュおよびトラップ離散化設定を用いてシミュレーションを再実行してください。得られるトラップ分布図は ??、??、?? と類似したものになるはずです。これらの図は印加電圧の変化に伴いトラップ占有密度がどのように変化するかを示しています。
このトラップマップにより、モデルの分散的性質が明確に示される。電荷は単一のトラップ準位に蓄積されるのではなく、占有密度は有限なエネルギー範囲内で分布し、デバイス内部の位置に応じて変化する。これこそが、分散型トラップ状態モデルが無秩序な半導体の解析に有用である主な理由の一つである。すなわち、エネルギー的な無秩序性、トラップの占有状態、および空間的な静電場の影響を同時に解析することが可能となるのである。
11. 単一メッシュ点上でのトラップ占有状態の出力
全エネルギー空間にわたるトラップ分布マップはデバイス全体を可視化するのに有用だが、特定の空間位置におけるトラップ占有状態を調べる方が物理現象の理解に役立つ場合もある。そのためには、??に示すようにJVエディタを再開し、Dump trap distributionの設定値をEnergy space mapからSingle mesh pointへ変更する。次にy位置を50に設定すると、OghmaNanoはデバイス内の50番目のメッシュ点におけるトラップ占有スペクトルを出力する。
シミュレーションを再実行してください。trap_map出力ディレクトリ内に、電子トラップ用のenergy_slice_nt.csvおよび正孔トラップ用のenergy_slice_pt.csvといったファイルが作成されます。これらのファイルには、選択した空間位置におけるエネルギーごとのトラップ占有密度が記録されています。電圧スライダーを操作することで、JVスキャン中にトラップされた電荷のエネルギー分布がどのように変化するかを確認できます。
??、??、??に示されている電子トラップの占有スペクトルは、印加電圧が増加するにつれてトラップの占有状態がどのように変化するかを示している。低電圧下では、トラップ分布のごく一部のみが占有されているに過ぎない。電圧が上昇するにつれてキャリア密度も増加し、状態密度のより広範なエネルギー領域が次第に占有されていく。また、デバイス内部に電荷が蓄積されることで局所的な準フェルミ準位がトラップ分布内を移動するため、占有の最大値もエネルギー的にシフトする。
??、??、??に示されているホールトラップのスペクトルも、状態密度のHOMO側から見た同一の物理現象を表している。デバイスに順方向電圧が印加されキャリア密度が増加すると、占有されたトラップの密度も増大し、電子トラップの場合と全く同様にHOMO側のトラップ分布全体へと移動していく。
これらの一次元エネルギースライスは、問題のエネルギー的側面と空間的側面を分離できる点で特に有用である。全体のトラップマップはデバイス内で電荷がどこに蓄積されているかを示す一方、単一メッシュ点におけるスペクトルはその電荷がエネルギー的にどのように分布しているかを正確に示す。これらの出力結果を合わせることで、無秩序な半導体デバイス内部におけるトラップの占有状態、準フェルミ準位の動き、および電荷蓄積の様子を直感的に可視化できる。
12. エネルギーが深く、再結合活性を持つガウス型トラップの追加
複雑な状態密度エディタを使用することで、複数の解析関数を同一のトラップ分布に組み合わせることが可能となる。これにより、状態密度が純粋な指数関数的分布や純粋なガウス分布のみで構成される必要はなく、複数の関数を重ね合わせることで、浅いエネルギー領域の状態とより深い局在化したトラップバンドの両方を含む、より現実的な無秩序系の状態密度モデルを構築できるのである。
LUMO側の状態密度に別の成分を追加するには、複合状態密度エディタのLUMOパネルにある+ボタンをクリックします。関数フィールドに直接解析関数式を入力することも、??に示す方程式選択器を開くために三点ボタンをクリックすることも可能です。この方程式選択器には指数関数、ガウス関数、ローレンツ関数、べき乗関数といった複数の事前定義済み状態密度関数が用意されています。
この例では、LUMO側の状態密度として2つの関数が有効化されています。1つ目は元々存在した指数関数型の分布であり、2つ目は深いエネルギー準位に位置するガウス型のトラップ分布です。
\[ \rho_\mathrm{G}(E)= a\exp\left[ -\left( \frac{c+E-E_C} {\sqrt{2}\,b} \right)^2 \right]. \]
パラメータaは状態密度のスケールを制御し、bはガウス分布のエネルギー幅を決定し、cはトラップ位置をバンド端からの距離として調整する。本例ではcの値が0.7 eVであり、このガウス型トラップはLUMO輸送レベルに対してバンドギャップの奥深くに位置している。一方、HOMO側の状態密度は単純な指数関数型の分布として定義されている。
物理的には、このモデルはエネルギー的に浅い無秩序性とより深い欠陥バンドの両方を有する半導体を表している。エネルギー的に浅い指数関数的な分布は主に輸送レベル付近でのキャリア輸送およびトラップ現象を支配する一方、深いガウス型分布を持つトラップ状態は強力な再結合および電荷蓄積の中心として機能する。各分布関数には個別の有効化スイッチが備わっているため、デバイスモデルの他の部分を変更することなく深いトラップの影響のみを分離して解析することが可能である。
深いトラップが再結合に与える影響を調査するため、シミュレーションを実行してください。 サンズ-開放電圧 シミュレーションです。 ファイルを開いてください。 シミュレーションの種類 リボンを選択し、クリックしてください サンズ-開放電圧前述の通り ??次に、メインウィンドウから青色の実行ボタンをクリックするか、キーを押してシミュレーションを実行してください。 F9.
シミュレーションが完了すると、ファイル suns_voc.csv には照射強度に対する開回路電圧の値が記録される。Windowsエクスプローラーを使用してこのファイルのバックアップコピーを作成し、suns_voc.bak という名前に変更する。その後、複雑な状態密度エディタに戻り、指数関数的分布は有効なままにして、ガウス型の深いトラップに関する行を無効化する。最後に Suns–Voc シミュレーションを再度実行する。
新しく作成されたsuns_voc.csvファイルは深いガウス型トラップが存在しないデバイスに対応しており、suns_voc.bakファイルには深いトラップを含むシミュレーション結果が記録されている。これら2つのファイルを併せてプロットすると??に示す比較結果が得られる。
深いガウス型トラップは、バンドギャップ内部に新たな再結合経路を生み出すため開回路電圧を低下させる。この結果、照射下で形成される準フェルミ準位の分離幅が縮小し、結果として得られる開回路電圧も低下する。この影響は、トラップ支援型再結合がキャリア動態を支配する低照度条件下において特に顕著に現れる。
Suns–Voc測定は、エネルギー的に浅い無秩序構造と、再結合活性を有するより深い欠陥状態とを区別する上で極めて有用である。本実験では素子を開回路状態で測定するため、キャリア抽出電流による影響を排除した形で内部における再結合現象のみを抽出することが可能となる。
??に示されているSuns–Voc比較のプロットを行いたい場合、以下のMATLAB/OctaveまたはPythonスクリプトを利用できます。これらのスクリプトではsuns_voc.csvとsuns_voc.bakを比較し、光強度の関数として開回路電圧をプロットします。
MATLABおよびOctave用スクリプト
clear;
close all;
clc;
% Load data
voc = load('suns_voc.csv');
voc_bak = load('suns_voc.bak');
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' ...
);
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")
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()
概要
本チュートリアルでは、無秩序な半導体デバイスモデルにおいてトラップ状態を明示的に取り入れる方法を説明した。OghmaNanoでは、再結合現象を単一の孤立したSRH欠陥準位に起因するものとして扱うのではなく、トラップの状態密度をエネルギー分布として記述することが可能である。この手法は、局在化した状態がバンドギャップ全体に広がり、キャリア密度、準フェルミ準位の位置、再結合現象、移動度の相互関係に強い影響を及ぼす有機半導体、アモルファスシリコン、酸化物半導体、その他の薄膜材料において不可欠である。実際の例としてはPM6:Y6有機太陽電池を用いたが、本チュートリアルの目的はより広範なものであり、無秩序な半導体デバイスシミュレーションにおいて分散したトラップ状態がどのように表現・解析・診断されるかを示すことにある。
PM6:Y6有機太陽電池のシミュレーションを出発点として、暗状態および光照射状態の下で、浅くかつ広範囲に分布する指数関数的なトラップ分布の影響を比較した。トラップ分布を広げると、デバイスがより多くの局在状態を利用できるようになるため、暗状態および光照射状態におけるJV特性や蓄積される全電荷量も変化した。トラップマップの出力結果からは、位置やエネルギー準位、印加電圧に応じてどのようにトラップ占有状態が変化するかが直接的に確認できた。
最後に、指数関数的なトラップ分布に加えて深いガウス型トラップを導入することで、複雑な状態密度モデルがエネルギー的に浅い無秩序構造と、再結合反応に寄与する深い欠陥の両方をどのように表現できるかを示した。Suns–Vocシミュレーションの結果、このような深いトラップ状態はトラップ支援型再結合を促進し、照射下における準フェルミ準位の分離を減少させることで開放電圧を低下させることが判明した。総じて、本チュートリアルは、無秩序半導体のシミュレーションにおいてトラップ分布は単なる補正要素ではなく、物理的に妥当なJV特性曲線、電荷密度、再結合率、および太陽電池性能を得るためには不可欠な要素であることを実証している。
次のステップとして、本チュートリアルに関連するより広範なモデリングフレームワークを探求したい場合、以下のページが引き続き参照するのに適しています。
- 有機半導体とは?材料、デバイスおよび応用 — トラップ状態が重要な役割を果たす材料やデバイス分野に関するより広範な紹介内容です。
- 有機半導体デバイスモデリング:OPV、OLED、OFET — 有機デバイスにおいてドリフト拡散モデル、再結合モデル、光学モデルがどのように利用されるかの概要。
- 有機太陽電池(OPV)シミュレーション — OghmaNanoにおいて有機太陽光発電デバイスのシミュレーションを始めるための実用的な入門例である。
- 有機電界効果トランジスタ(OFET)シミュレーション — トラップの充填現象や電荷輸送がトランジスタ構造内でどのように現れるかを確認したい場合に有用である。
- 空間電荷制限電流(SCLC)の例 — 注入現象、キャリア移動度、およびトラップに制限される輸送現象を理解するための有益な続きとなる内容である。
- 2次元電気的スライスを用いたバルクヘテロ接合構造のシミュレーション — 有機太陽電池における構造とキャリア輸送の相互作用を示す、より高度なチュートリアルである。
- なぜ無秩序半導体モデルにおいてトラップ状態が必要なのか — 現実的なキャリア密度、再結合率、移動度、およびJ–V特性を得るためにはトラップ分布が不可欠であるという物理的根拠である。