-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathREADME.html
141 lines (88 loc) · 6.07 KB
/
README.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<!DOCTYPE html>
<html>
<body>
<h1 id="solarcellshockleyqueisserlimitcalculator">Solar Cell Shockley-Queisser Limit Calculator</h1>
<p>Code written by: <br />
Pr. Sidi Hamady <br />
Université de Lorraine, France <br />
sidi.hamady@univ-lorraine.fr</p>
<p>See Copyright Notice in COPYRIGHT</p>
<h2 id="presentationandrequirements">Presentation and Requirements</h2>
<p>The Shockley-Queisser limit is the maximum photovoltaic efficiency obtained for a solar cell with respect to the absorber bandgap. <br />
The theory is described by W. Shockley and H. J. Queisser in Journal of Applied Physics 32 (1961).</p>
<p>To install the Shockley-Queisser limit calculator: <br />
just download it: <br />
from github: <a href="https://github.com/sidihamady/Shockley-Queisser">https://github.com/sidihamady/Shockley-Queisser</a> <br />
or from my website: <a href="http://www.hamady.org/photovoltaics/ShockleyQueisser.zip">http://www.hamady.org/photovoltaics/ShockleyQueisser.zip</a> <br />
unzip and use.</p>
<p>The distribution mainly includes: </p>
<p>Two main Python files: </p>
<ul>
<li><a href="ShockleyQueisserCore.py">ShockleyQueisserCore.py</a> implementing the calculator core functionality in the module classes, with a simple and easy-to-use graphical user interface. </li>
<li><a href="ShockleyQueisser.py">ShockleyQueisser.py</a> implementing the program interface. </li>
</ul>
<p>Two text files: </p>
<ul>
<li><a href="SolarSpectrum_AM15G.txt">SolarSpectrum_AM15G.txt</a> containing the standard AM1.5 solar spectrum. </li>
<li><a href="ShockleyQueisserCurve.txt">ShockleyQueisserCurve.txt</a> containing the Shockley-Queisser Efficiency vs Bandgap data. </li>
</ul>
<p>Two figures: </p>
<ul>
<li><a href="ShockleyQueisserCurve.pdf">ShockleyQueisserCurve.pdf</a> containing the Shockley-Queisser Efficiency vs Bandgap curve in PDF format (to integrate for example in a LaTeX document). </li>
<li><a href="ShockleyQueisserCurve.png">ShockleyQueisserCurve.png</a> containing the Shockley-Queisser Efficiency vs Bandgap curve in PNG format. </li>
</ul>
<p>Three examples: </p>
<ul>
<li><a href="ShockleyQueisserTJ.py">ShockleyQueisserTJ.py</a> for triple junction solar cell. </li>
<li><a href="ShockleyQueisserDJ.py">ShockleyQueisserDJ.py</a> for double junction solar cell. </li>
<li><a href="ShockleyQueisserCurve.py">ShockleyQueisserCurve.py</a> calculates and plots the efficiency of a PN junction solar cell with respect to the bandgap. </li>
</ul>
<p>It is not necessary to know the Python language to use the program.</p>
<p>The basic requirements are found in any Linux distribution (and easily installed for Windows):</p>
<ul>
<li>Python version 2.7.x or later</li>
<li>numpy version 1.5 or later</li>
<li>scipy version 0.13.1 or later</li>
<li>matplotlib version 1.3.x or later</li>
<li>tkinter 8.5 or later</li>
</ul>
<p>PS: for Windows, you can download a complete Python distribution from <a href="https://www.anaconda.com/distribution/">https://www.anaconda.com/distribution/</a></p>
<h2 id="howto">HowTo</h2>
<p>Start <a href="ShockleyQueisser.py">ShockleyQueisser.py</a> interface: </p>
<p>from the command line prompt: <br />
under Linux:</p>
<pre><code>cd /path/to/ShockleyQueisser/
python -u ShockleyQueisser.py
</code></pre>
<p>under Windows (in the command prompt):</p>
<pre><code>cd C:\path\to\ShockleyQueisser\
python.exe -u ShockleyQueisser.py
</code></pre>
<p>You have to add python to your PATH. </p>
<p>You can also execute <a href="ShockleyQueisser.py">ShockleyQueisser.py</a> by double clicking on it (depending on the operating system settings), or from within your editor, if possible.</p>
<p>In the graphical interface, change the parameters you want (solar concentration, temperature and target bandgap) and press 'Calculate'.</p>
<p>Screenshot under Windows: <br />
<img src="screenshot1.png" alt="Screenshot under Windows" /></p>
<p>Screenshot under Linux: <br />
<img src="screenshot2.png" alt="Screenshot under Linux" /></p>
<h2 id="howtomultijunctionsolarcell">HowTo: Multijunction solar cell</h2>
<p>The program calculates the efficiency for a single junction solar cell but takes into account the part of solar spectrum already absorbed (for example in a top cell) through the Target top bandgap parameter.
This is useful to calculate the overall efficiency in a multijunction solar cell.
For example for double junction solar cell, follow the steps below: </p>
<ol>
<li>set TargetBandgap to 1.65 eV and the TargetBandgapTop to 0, and calculate the corresponding efficiency and current-voltage characteristic. </li>
<li>set TargetBandgap to 0.95 eV and the TargetBandgapTop to 1.65, and calculate the corresponding efficiency and current-voltage characteristic. <br />
Deduce from the previous data the overall double junction solar cell efficiency. </li>
</ol>
<p>Two examples are given below (for double and triple junction solar cells).</p>
<h2 id="howtocommandlineonlymode">HowTo: Command-line only mode</h2>
<p>The calculator can be used in graphical (GUI) mode or command-line only mode. In command-line mode the results are printed out and saved in text files.</p>
<p>The command-line mode is useful to perform specific calculations such as multijunction solar cell efficiency.</p>
<p>Two multijunction solar cell examples are given in the included <a href="ShockleyQueisserTJ.py">ShockleyQueisserTJ.py</a> and <a href="ShockleyQueisserDJ.py">ShockleyQueisserDJ.py</a> files. <br />
The execution of <a href="ShockleyQueisserTJ.py">ShockleyQueisserTJ.py</a> gives the following output:</p>
<p><img src="screenshot3.png" alt="ShockleyQueisserTJ.py text output" /></p>
<p><img src="screenshot4.png" alt="ShockleyQueisserTJ.py plot output" /></p>
<p>The execution of <a href="ShockleyQueisserDJ.py">ShockleyQueisserDJ.py</a> gives the following output (Efficiency of a double junction solar cell with respect to the top and bottom bandgap):</p>
<p><img src="screenshot5.png" alt="ShockleyQueisserDJ.py plot output" /></p>
</body>
</html>