ホーム 例 スクリーンショット ユーザーマニュアル Blueskyロゴ YouTube ☰
OghmaNano 有機/ペロブスカイト太陽電池、OFET、OLEDをシミュレーション ダウンロード Quick Start guide

無秩序な半導体中における分散したトラップ状態のモデリング

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.
秩序だった半導体と無秩序な半導体におけるトラップ状態の比較。高純度シリコンのような高度に秩序だった半導体では、バンドギャップ内にごく少数の孤立したトラップ状態のみが存在する(a)。一方、アモルファスシリコンや有機半導体のような無秩序な半導体では、トラップはより広範な分布を形成する。すなわち、伝導帯付近に存在する電子を捕獲するトラップ(b)、バンドギャップ中央付近のトラップ(c)、そして価電子帯付近に存在する正孔を捕獲するトラップ(d)である。

本チュートリアルは、無秩序な半導体におけるトラップ状態のモデリングに関する一般的な入門書として作成されている。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. 無秩序な半導体におけるショックレー・リード・ホール過程によるトラップ捕捉および脱捕捉

Shockley-Read-Hall trapping processes showing carrier capture and escape between free and trapped states in a distributed density of states.
分散した状態密度におけるショックレー・リード・ホール型のトラップ現象および再結合過程。電子および正孔は、バンドギャップ内に分布する各種トラップ状態へと捕獲されたり、そこから放出されたりする。

多くの読者は、まず上記の簡略化された定常状態における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サンプルは既に本テキストで示されている結果と一致するよう、トラップ状態の分布およびバンド構造が設定済みとなっています。プロンプトが表示された際には、書き込み権限のあるフォルダへシミュレーションデータを保存してください。

OghmaNano new simulation window showing available device categories including organic solar cells, OFETs, perovskites, OLEDs, diode models and optical simulation examples.
新規シミュレーションウィンドウです。「有機太陽電池」をダブルクリックすると、有機太陽光発電用のサンプルライブラリが開きます。
OghmaNano organic solar cell example list showing PM6:Y6 simulations at different ageing times and trap-state conditions.
PM6:Y6のサンプルシミュレーションです。本トラップ状態チュートリアルの開始点としてPM6:Y6_E10_0hrsを選択してください。
Main OghmaNano window showing a PM6:Y6 organic solar cell device stack with ITO, ZnO, PM6:Y6 active layer, MoOx and Ag layers.
メインのOghmaNanoウィンドウに読み込まれたPM6:Y6太陽電池のシミュレーションモデルである。デバイス構造はITO、ZnO、PM6:Y6活性層、MoOx、Agから構成されている。活性層におけるトラップ状態のパラメータは、電気的特性パラメータ編集画面にて定義される。

💡 ヒント:最適なパフォーマンスを得るためには、C:\ のようなローカルドライブに保存してください。ネットワークドライブやUSB、クラウドフォルダ(例:OneDrive)に保存されたシミュレーションデータは、頻繁な読み書き処理のため 処理が遅くなる可能性があります。

シミュレーションの作成が完了すると、??に示すようにOghmaNanoのメインウィンドウが開く。PM6:Y6デバイスは層状構造を持つ太陽電池スタックとして表示される。活性層は、分布するトラップ状態を変更するための無秩序半導体領域である。

4. シミュレーションを暗状態下で実行する設定

OghmaNano optical ribbon showing the light intensity control used to switch between illuminated and dark simulations.
光学設定パネルにて、暗条件下でのシミュレーション実行のため光強度を0.0サンに設定してください。

シミュレーションを開始する前に、まずデバイスが暗状態下で動作するよう設定する必要がある。??に示す光学リボンを開き、光強度を0.0サンに設定する。これにより得られるJV曲線は、光照射下での太陽電池動作時のものではなく暗状態における測定値となる。トラップ状態の研究においては、暗状態シミュレーションが特に有用である。光照射下では光電流が多くの物理現象を覆い隠してしまうのに対し、暗状態シミュレーションではキャリアの注入、トラップの充填、再結合、および静電気的効果がより明確に現れるからだ。

5. トラップの状態密度の定義

OghmaNano electrical parameter editor showing free carrier parameters and non-equilibrium SRH trap parameters for an exponential trap density of states.
PM6:Y6活性層用の電気的パラメータ編集機能である。デフォルトの指数関数型トラップモデルにおいては、LUMOおよびHOMOにおけるトラップ分布が、トラップ密度の前置係数、ウルバッハテールの傾き、捕獲断面積、ならびにトラップバンド数を用いて定義される。
OghmaNano electrical parameter editor with complex trap density-of-states mode enabled and an Edit button available for opening the complex DOS editor.
状態密度モデルが指数関数型から複雑型へと切り替わった。このモードでは、トラップ状態の分布が複雑な状態密度エディタ内の数式によって定義される。

メインウィンドウからデバイス構造タブを使用して、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. 浅い指数関数的なトラップ分布を定義する

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.
複雑な状態密度エディタには、浅い指数関数的形状を持つLUMO側およびHOMO側のトラップ分布が設定されている。青色の曲線がLUMO側の分布を、赤色の曲線がHOMO側の分布を示している。段状の水色および緑色の曲線は、解析的な状態密度を近似するために用いられる離散的なトラップ準位を表している。トラップ帯の数を増やすことで、より滑らかな階段状近似が得られる。
Complex density-of-states editor showing broader exponential LUMO and HOMO trap distributions with b set to 0.100 eV.
同じ複雑な状態密度モデルにおいて、Urbachテールエネルギーをより大きな値であるb = 0.100 eVに設定した場合である。このようにテールエネルギーを増大させるとバンドギャップ内での減衰が緩やかになり、結果としてトラップが電荷の蓄積や再結合に影響を及ぼし得るエネルギー範囲も拡大する。

「編集」ボタンをクリックすると、複雑な状態密度エディタが開きます。このエディタの画面は??に示されています。上部のテーブルではLUMO側のトラップ分布を定義し、下部のテーブルではHOMO側のトラップ分布を定義します。各行には数学関数、有効化スイッチ、そしてa、b、cと記された3つの数値パラメータが含まれています。エディタの左側にあるプロット図は、各テーブルに入力された数学関数から生成された状態密度を示しています。青色の解析曲線はLUMO側、すなわち伝導帯(\(E_C\))におけるトラップ分布を表し、赤色の解析曲線はHOMO側、すなわち価電子帯(\(E_V\))におけるトラップ分布を表します。これら滑らかな曲線は、エディタ内で入力された数式によって定義される正確な解析的状態密度に対応しています。

水色および緑色の階段状曲線は、シミュレータ内部で実際に使用される離散化されたトラップ準位を表している。これらの階段状準位は、電気パラメータ編集器で事前に定義された「トラップ数」パラメータと直接対応している。トラップ準位の数を増やすことで解析的に求められた状態密度への近似がより精密になり、結果としてシミュレーションの数値精度も向上する。実際には、多くの定常状態下でのデバイスシミュレーションにおいては5程度のトラップ準位を用いれば十分良好な結果が得られる。ただし飛行時間測定のような長時間にわたる過渡現象を扱うシミュレーションでは、場合によっては20程度のトラップ準位が必要となることもある。デバイス内の各メッシュ点においてすべてのトラップ状態が解かれるため、トラップ準位の数を増やすとシミュレーションの数学的規模も急速に増大する。そのため実用上20を大幅に超える値が必要となるケースはほとんどない。

Table 1: Symbols used by the complex density-of-states editor
記号 状態密度表現における意味合い
E状態密度を評価する際のエネルギー座標
エネルギー座標:状態密度が評価される位置伝導帯端/LUMO輸送準位
電子電圧価電子帯端/HOMO輸送準位
aユーザー定義の定数
bユーザー定義の定数
cユーザー定義定数

原則として、上記の表に記載されたパラメータを用いて数式エディタに任意の数式を入力でき、それによって状態密度を構築することも可能である。

7. トラップテイルの幅が暗状態下のJV特性曲線および電荷密度に与える影響

Dark JV comparison showing current density as a function of voltage for shallow and broad exponential trap-tail distributions.
浅く広い指数関数的なトラップ分布における暗状態下のJV特性の比較。
Charge density comparison showing total charge density as a function of voltage for shallow and broad exponential trap-tail distributions.
同じ2種類のトラップ分布における電荷密度の比較。

これから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太陽光下におけるトラップテイルの幅の影響

Illuminated JV comparison for a PM6:Y6 solar cell with shallow and broad exponential trap-tail distributions.
単色光照射下における、浅くて広範囲に分布する指数関数的なトラップ分布における電流電圧特性の比較。
Charge density comparison under one-sun illumination for shallow and broad exponential trap-tail distributions.
1太陽定数下における、同じ2種類のトラップテイル分布における電荷密度の比較。

前項では暗状態下における浅いトラップ分布と広いトラップ分布の比較を行った。ここでは同じ比較を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. エネルギーおよび位置におけるトラップ占有状態の可視化

OghmaNano JV experiment window configured to write all simulation output to disk and dump the trap distribution as an energy-space map.
JV実験エディタにおいて、出力詳細度をディスクへ出力に設定し、すべてのデータをディスクに書き込ませる。また、トラップ分布の出力先としてエネルギー空間マップを指定する。シミュレーションを再実行すると、出力フォルダ内に trap_map ディレクトリが作成される。
Low-resolution trap occupation map showing charge density as a function of position and energy in the PM6:Y6 active layer.
JVシミュレーションから出力された初期のトラップ占有状態マップである。横軸はデバイス内の位置、縦軸はエネルギーを表す。色の濃淡は占有されているトラップの密度を示している。電圧スライダーを操作することで、印加電圧の変化に伴うトラップの占有状態の変化を確認できる。

トラップ状態の分布がJV特性曲線および電荷密度分布に与える影響を確認した後、次のステップとしてトラップの占有状態を直接調査する。シミュレーション出力ディレクトリを開き、trap_mapというディレクトリを探してください。もし該当ディレクトリが見当たらない場合は、電気系リボンを開いてJVエディタをクリックしてください。そうすると??に示すJV実験ウィンドウが表示されます。

JVエディタの出力設定セクションにおいて、出力詳細度を「disk」に設定してすべてのデータをディスクに書き出すようにします。次に「Dump trap distribution」の値を「Energy space map」に設定します。その後シミュレーションを再実行してください。そうすると出力フォルダ内に trap_map というディレクトリが生成されるはずです。このディレクトリ内のファイルを開くと、占有されたトラップ状態の密度に関するエネルギー位置マップが得られ、それが ?? に示されている内容となります。

このマップは、位置およびエネルギーの関数として分布するトラップ状態の占有状況を示している。JVスキャンにおける各電圧点において、OghmaNanoは占有されたトラップ分布をディスクに書き出す。電圧スライダーを操作することで、デバイスが低電圧状態から順バイアス状態へ移行する際にトラップの占有数がどのように増加していくかを確認できる。

10. トラップマップの解像度を向上させる

最初のトラップマップはシミュレーション用として有用だが、デフォルトモデルではトラップバンドが5つしかなくメッシュ点の数も少ないため、意図的に解像度を低く設定している。より明瞭な可視化を行うため、電気パラメータエディタに戻り「トラップ数」の値を5から10または20へ増やす。次に電気リボンからメッシュエディタを開き、??に示すように活性層方向のメッシュ点の数を約100まで増加させる。

より高解像度なメッシュおよびトラップ離散化設定を用いてシミュレーションを再実行してください。得られるトラップ分布図は ??、??、?? と類似したものになるはずです。これらの図は印加電圧の変化に伴いトラップ占有密度がどのように変化するかを示しています。

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.
メッシュエディタ機能について。空間メッシュ点の数を増やすと、トラップ占有マップにおける位置軸がより滑らかになる。また、トラップバンドの数を増やすことで、状態密度のエネルギー離散化がより細かくなる。
High-resolution trap occupation map at low voltage showing occupied trap density as a function of position and energy.
低電圧下におけるより高解像度なトラップ占有マップ。この状態ではトラップの占有度は依然として低く、エネルギーおよび位置の空間全体にわたって分散している。
High-resolution trap occupation map at intermediate voltage showing increased filling of the trap distribution.
中間的な電圧におけるトラップ占有状態。注入されるキャリア密度が増加するにつれて、より多くのトラップ領域が占有されるようになる。
High-resolution trap occupation map at high voltage showing strong trap filling across the device.
高電圧下におけるトラップ占有状態。準フェルミ準位が移動し、デバイス内に蓄積される電荷量が増加するにつれて、占有領域は移動するとともに拡大していく。

このトラップマップにより、モデルの分散的性質が明確に示される。電荷は単一のトラップ準位に蓄積されるのではなく、占有密度は有限なエネルギー範囲内で分布し、デバイス内部の位置に応じて変化する。これこそが、分散型トラップ状態モデルが無秩序な半導体の解析に有用である主な理由の一つである。すなわち、エネルギー的な無秩序性、トラップの占有状態、および空間的な静電場の影響を同時に解析することが可能となるのである。

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スキャン中にトラップされた電荷のエネルギー分布がどのように変化するかを確認できます。

OghmaNano JV editor configured to dump the trap distribution at a single mesh point with y-position set to 50.
単一のメッシュ点におけるトラップ占有状態を出力するようJVシミュレーションを設定する。
Electron trap occupation spectrum at low voltage showing occupation as a function of energy.
低電圧下における電子トラップの占有状態
Electron trap occupation spectrum at intermediate voltage showing increased occupation across the trap distribution.
中程度の電圧における電子トラップの占有状態。
Electron trap occupation spectrum at higher voltage showing a larger occupation maximum shifted in energy.
高電圧下における電子トラップの占有状態

??、??、??に示されている電子トラップの占有スペクトルは、印加電圧が増加するにつれてトラップの占有状態がどのように変化するかを示している。低電圧下では、トラップ分布のごく一部のみが占有されているに過ぎない。電圧が上昇するにつれてキャリア密度も増加し、状態密度のより広範なエネルギー領域が次第に占有されていく。また、デバイス内部に電荷が蓄積されることで局所的な準フェルミ準位がトラップ分布内を移動するため、占有の最大値もエネルギー的にシフトする。

Hole trap occupation spectrum at low voltage showing occupation as a function of energy.
低電圧下における正孔トラップの占有状態
Hole trap occupation spectrum at intermediate voltage showing increased occupation as the device is driven forward.
中程度の電圧における正孔トラップの占有状態。
Hole trap occupation spectrum at higher voltage showing the maximum occupied density moving through the trap distribution.
高電圧下における正孔トラップの占有状態

??、??、??に示されているホールトラップのスペクトルも、状態密度のHOMO側から見た同一の物理現象を表している。デバイスに順方向電圧が印加されキャリア密度が増加すると、占有されたトラップの密度も増大し、電子トラップの場合と全く同様にHOMO側のトラップ分布全体へと移動していく。

これらの一次元エネルギースライスは、問題のエネルギー的側面と空間的側面を分離できる点で特に有用である。全体のトラップマップはデバイス内で電荷がどこに蓄積されているかを示す一方、単一メッシュ点におけるスペクトルはその電荷がエネルギー的にどのように分布しているかを正確に示す。これらの出力結果を合わせることで、無秩序な半導体デバイス内部におけるトラップの占有状態、準フェルミ準位の動き、および電荷蓄積の様子を直感的に可視化できる。

12. エネルギーが深く、再結合活性を持つガウス型トラップの追加

OghmaNano equation selector showing predefined density-of-states functions including exponential, Gaussian, Lorentzian and power-law forms.
複雑な状態密度エディタにおける方程式選択機能。
Complex density-of-states editor showing an exponential LUMO tail with an additional Gaussian deep trap state superimposed on the LUMO density of states.
ガウス型の深いトラップ分布を指数関数的なLUMOテール分布の上に重ね合わせることで形成される、複雑な状態密度分布。

複雑な状態密度エディタを使用することで、複数の解析関数を同一のトラップ分布に組み合わせることが可能となる。これにより、状態密度が純粋な指数関数的分布や純粋なガウス分布のみで構成される必要はなく、複数の関数を重ね合わせることで、浅いエネルギー領域の状態とより深い局在化したトラップバンドの両方を含む、より現実的な無秩序系の状態密度モデルを構築できるのである。

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側の状態密度は単純な指数関数型の分布として定義されている。

物理的には、このモデルはエネルギー的に浅い無秩序性とより深い欠陥バンドの両方を有する半導体を表している。エネルギー的に浅い指数関数的な分布は主に輸送レベル付近でのキャリア輸送およびトラップ現象を支配する一方、深いガウス型分布を持つトラップ状態は強力な再結合および電荷蓄積の中心として機能する。各分布関数には個別の有効化スイッチが備わっているため、デバイスモデルの他の部分を変更することなく深いトラップの影響のみを分離して解析することが可能である。

OghmaNano simulation type ribbon showing the Suns Voc simulation option selected for running open-circuit voltage as a function of light intensity.
シミュレーション種類選択メニューから「Suns–Voc」実験を選択する。
Suns-Voc comparison showing open-circuit voltage as a function of light intensity for simulations with and without a Gaussian deep trap state.
ガウス型深いトラップの有無によるSuns–Voc特性の比較

深いトラップが再結合に与える影響を調査するため、シミュレーションを実行してください。 サンズ-開放電圧 シミュレーションです。  ファイルを開いてください。 シミュレーションの種類 リボンを選択し、クリックしてください サンズ-開放電圧前述の通り ??次に、メインウィンドウから青色の実行ボタンをクリックするか、キーを押してシミュレーションを実行してください。 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特性曲線、電荷密度、再結合率、および太陽電池性能を得るためには不可欠な要素であることを実証している。

次のステップとして、本チュートリアルに関連するより広範なモデリングフレームワークを探求したい場合、以下のページが引き続き参照するのに適しています。