138
Technische Universit¨ at M¨ unchen Physik Department Realizing flexibility and artificial structures for organic solar cells Bachelor thesis Jochen Wolf July 25, 2013 Lehrstuhl f¨ ur Funktionelle Materialien E13 Advisor: Dipl.-Phys. Claudia M. Palumbiny Supervisor: Prof. Dr. Peter M¨ uller-Buschbaum

BSc Thesis Jochen Wolf

Embed Size (px)

Citation preview

Page 1: BSc Thesis Jochen Wolf

Technische Universitat Munchen Physik Department

Realizing flexibility and artificial

structures for organic solar cells

Bachelor thesis

Jochen Wolf

July 25, 2013

Lehrstuhl fur Funktionelle Materialien E13

Advisor: Dipl.-Phys. Claudia M. Palumbiny

Supervisor: Prof. Dr. Peter Muller-Buschbaum

Page 2: BSc Thesis Jochen Wolf
Page 3: BSc Thesis Jochen Wolf

Contents

Abstract v

List of abbreviations vii

1 Introduction 1

1.1 Basic physics of organic solar cells . . . . . . . . . . . . . . . . . . . . . . 2

1.1.1 Solar spectrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.1.2 Polymers and their band structure . . . . . . . . . . . . . . . . . 3

1.1.3 The diffusion length of excitons . . . . . . . . . . . . . . . . . . . 7

1.1.4 Working principle of organic solar cells . . . . . . . . . . . . . . . 9

1.2 Benefits of structured organic solar cells . . . . . . . . . . . . . . . . . . 11

1.2.1 Diffraction gratings . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.2.2 Light trapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.2.3 Morphology change . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2 Sample preparation 13

2.1 Materials used . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2 Solar cell production . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.2.1 Substrate cleaning . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.2.2 Oxygen plasma treatment . . . . . . . . . . . . . . . . . . . . . . 16

2.2.3 Spin coating and post-treatment of PEDOT:PSS . . . . . . . . . 16

2.2.4 Spin coating of P3HT:PCBM . . . . . . . . . . . . . . . . . . . . 18

2.2.5 Aluminium evaporation . . . . . . . . . . . . . . . . . . . . . . . 18

2.3 Different device architectures . . . . . . . . . . . . . . . . . . . . . . . . 19

2.3.1 Partial spin coating . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.3.2 Imprinting of PEDOT:PSS . . . . . . . . . . . . . . . . . . . . . . 20

iii

Page 4: BSc Thesis Jochen Wolf

Contents

3 Device Characterization 23

3.1 Optical microscope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.2 Atomic force microscope . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.3 UV/Vis spectrometer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.4 Four-point measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.5 Scanning electron miscroscopy . . . . . . . . . . . . . . . . . . . . . . . . 26

3.6 Current-voltage measurement . . . . . . . . . . . . . . . . . . . . . . . . 26

4 Towards ITO-free organic solar cells 31

4.1 Different device architectures on glass . . . . . . . . . . . . . . . . . . . . 31

4.1.1 UV/Vis spectroscopy . . . . . . . . . . . . . . . . . . . . . . . . . 31

4.1.2 Current-voltage measurement . . . . . . . . . . . . . . . . . . . . 36

4.2 Different device structures on PET . . . . . . . . . . . . . . . . . . . . . 41

4.2.1 Prerequisites for annealing and cleaning of ITO-PET foils . . . . . 41

4.2.2 Four point measurement . . . . . . . . . . . . . . . . . . . . . . . 41

4.2.3 UV/Vis spectroscopy . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.2.4 Usage of different blend without annealing step . . . . . . . . . . 44

4.2.5 Scanning electron microscopy . . . . . . . . . . . . . . . . . . . . 45

5 Towards structured organic solar cells 49

5.1 Structured devices on PET . . . . . . . . . . . . . . . . . . . . . . . . . . 49

6 Summary and outlook 53

Acknowledgements 69

Appendix 71

1 Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

1.1 UV/Vis spectroscopy plots of reflectance and transmittance on

glass and PET . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

1.2 Current voltage measurements . . . . . . . . . . . . . . . . . . . . 74

1.3 Black silicon structuring . . . . . . . . . . . . . . . . . . . . . . . 76

2 Current-voltage evaluation program . . . . . . . . . . . . . . . . . . . . . 77

2.1 Readme file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

2.2 Source Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

iv

Page 5: BSc Thesis Jochen Wolf

Abstract

In this thesis, organic solar cells based on the polymer poly(3-hexylthiophen-2,5-diyl)

(P3HT) are examined. Four different device architectures are manufactured via spin

coating to realize indium tin oxide (ITO)-free organic solar cells. They are analysed us-

ing current-voltage measurements and UV/Vis spectroscopy. As a replacement for ITO,

highly conductive poly(3,4-ethylenedioxythiophene):poly(styrenesulfonate) (PEDOT:PSS)

is analysed. As a replacement for the widely used glass substrates, poly(ethylene tereph-

thalate) (PET) foil is chosen and the manufacturing process adjusted. Scanning electron

microscopy (SEM) is used to obtain information about spin coating on a PET foil. A

compact disc (CD) structure is transferred into a PEDOT:PSS layer on a PET foil using

plasticizer assisted soft embossing and then analysed using atomic force microscopy.

ITO-free organic solar cells are realized on glass with efficiencies of 1.75 % compared to

2.75 % with ITO. Some problems with the manufacturing process for the substrate PET

are solved, but no solar cell is produced of a performance comparable to the substrate

glass. SEM reveals defects in the used ITO-PET foil which could short circuit the solar

cells. Measured by AFM, the depth of an artificial CD structure transferred into glycerol

doped PEDOT:PSS is (8 ± 1) nm.

v

Page 6: BSc Thesis Jochen Wolf
Page 7: BSc Thesis Jochen Wolf

List of abbreviations

AFM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . atomic force microscope

AM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . air mass

ASTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . american society for testing and materials

BHJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . bulk heterojunction

Blend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P3HT:PCBM

CB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . chlorobenzene

CCD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .charge-coupled device

CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . compact disc

EG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ethylene glycol

FF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . fillfactor

HOMO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .highest occupied molecular orbital

H-PEDOT:PSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . higly conductive PEDOT:PSS

ITO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . indium tin oxide

LUMO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lowest unoccupied molecular orbital

MPP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .maximum power point

P3HT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . poly(3-hexylthiophen-2,5-diyl)

vii

Page 8: BSc Thesis Jochen Wolf

List of abbreviations

PCBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . phenyl-C61-butyric acid methyl ester

PC70BM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .phenyl-C70-butyric acid methyl ester

PCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . photo current efficiency

PEDOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . poly(3,4-ethylenedioxythiophene)

PET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . poly(ethylene terephthalate)

PDMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . poly(dimethylsiloxane)

PTB7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . poly([4,8-bis[(2-ethylhexyl)oxy]benzo[1,2-b:4,5-b’]

dithiophene-2,6-diyl][3-fluoro-2-[(2-ethylhexyl)carbonyl]thieno[3,4-b]thiophenediyl])

PTFE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . poly(tetrafluoroethylene)

PSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . poly(styrenesulfonate)

rpm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . revolutions per minute

SEM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . scanning electron microscope

SMARTS. . . . . . . . . . . . . . . simple model of the atmospheric radiative transfer of sunshine

UV/Vis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ultraviolet-visible spectroscopy

viii

Page 9: BSc Thesis Jochen Wolf

1 Introduction

Renewable energies such as water, wind and solar energy have been used for centuries

(Pierce 2011). The first proof of concept of a solar cell was discovered in 1887 by

Alexander Stoletov. However, it took a century until the price of commercially available

solar modules dropped to a level at which wide deployment was put into action. Most

of these lower cost solar cells are based on the semiconductor silicon. Prices for silicon

based solar cells are expected to drop in the next years, in accordance with Swanson’s

law stating that the price drops by 20 % for every doubling of global production capacity

(Carr 2013).

However, many other materials and technologies are being researched in order to open

new markets for solar cells. Organic solar cells for example offer flexibility and a po-

tentially much lower cost due to the possibility to print the devices. They are also

able to make more use of diffuse light conditions, which silicon based solar cells do not

(D. Cheyns 2008, p. 243310-1). For widespread usage of solar cells, this makes organic

solar cells more reliable because they can make more usage out of an for example a

cloudy day. This property could lead to a reduced need for increasing the electric grid

capacity.

In any case, for the actual deployment of organic solar cells the photo current efficiency

(PCE) and the lifetime have to be improved. As shown in figure 1.4, the record in

organic solar cells is an efficiency PCE = 11.1 %, while inorganic solar cells have a

record efficiency of PCE = 44.0 %. On the other hand, organic solar cells have been

researched for a relatively short period of time, compared to inorganic ones and still

have untapped potential.

In this thesis, organic solar cells based on the polymer poly(3-hexylthiophen-2,5-diyl)

(P3HT) are examined. Despite being commercially unsound, a lot of research into

organic solar cells use an indium tin oxide (ITO) transparent electrode. ITO has a

number of disadvantages, like being expensive and brittle. As a replacement for ITO,

1

Page 10: BSc Thesis Jochen Wolf

1 Introduction

the polymer poly(3,4-ethylenedioxythiophene):poly(styrenesulfonate) (PEDOT:PSS) is

investigated, which puts ITO-free organic solar cells within reach.

One aspect of this thesis examines the replacement of glass as a substrate underlying

most organic solar cells. The possibility of poly(ethylene terephthalate) (PET) as a

substrate is investigated, and manufacturing processes adjusted. In order to improve

the PCE of organic solar cells, the technique of plasticizer assisted soft embossing is

used. A structure taken from a compact disc (CD) is transferred onto an organic solar

cell on PET. All of these aspects are steps towards the deployment of organic solar cells

which could contribute to future power supply.

1.1 Basic physics of organic solar cells

1.1.1 Solar spectrum

The sun was formed about 4.6 billion years ago and plays a crucial role in the energy

supply for most lifeforms on earth. It will continue burning for another 5 billion years

(Hufnagel 1997, p. 2) although the earth will only be habitable for another one billion

years (Carrington 2000). All of today’s fossil fuels are indirectly supplied by the sun-

light, stored via photosynthesis in plants whose remainder is converted to fossil fuels.

The intensity of sunlight at the average distance between earth and sun is called the

solar constant which is about 1366 Wm2 (NASA 07.07.2013). Despite its name, it does

change over time - solar activity has multiple so-called cycles, the shortest one being

the (11 ± 2) year discovered by Heinrich Schwabe (Schwabe 1843). During this cycle,

the solar constant varies from 1365 Wm2 to 1367 W

m2 for an 81 day average, as shown in

figure 1.1.

However, more recent measurements established the solar constant at (1360.8±0.5) Wm2 ,

with the Schwabe cycle amplitude from minimum to maximum at 1.6 Wm2 and daily to

weekly changes at 4.6 Wm2 (Greg Kopp 2011, p. 1). The solar constant is defined for

the average distance between earth and sun, but due to the earth’s elliptical orbit, the

solar irradiance on top of the atmosphere changes. Its amplitude is 6.9 %, thus making

it four times as large as the Schwabe cycle (Dahlback 2002).

2

Page 11: BSc Thesis Jochen Wolf

1.1 Basic physics of organic solar cells

Figure 1.1: Variations of the solar constant from 1874 to 2007 for an 81 day average (red) anda daily average (yellow) (after A. D. Crouch & Paquin-Ricard 2008, p. 737)

In conclusion, the sun is a highly reliable source of energy, although some changes in

the solar irradiance have to be taken into account. The sun’s radiation spectrum closely

resembles a black body at about 5800 K (Demtroder 2004, p. 303). Due to absorption

of gases both on the sun’s and the earth’s surface in addition to the Rayleigh and Mie

scattering in the earth atmosphere, this black body spectrum is modified. A comparison

of the spectrum of a black body at 5250 K, the sunlight at the top of the atmosphere

and the radiation at sea level can be seen in figure 1.2 (after Rohde 2007). However, the

solar irradiance on ground level is changed with weather conditions, local atmospheric

composition, and the angle of incidence. To account for these factors, an average is

taken over one year for every land mass on earth, see figure 1.3 (after Steiner 2008).

1.1.2 Polymers and their band structure

In order to harvest the solar radiation shown in figure 1.3, solar cells can be used. The

solar cells used in this work use the band gap that some polymers show, and fall under

the category of organic solar cells. There are many different types of solar cells, and it

is a popular research field (NREL 2013a). Figure 1.4 shows an overview of the highest

efficiencies of different solar cells, organic solar cells are plotted in solid orange circles,

3

Page 12: BSc Thesis Jochen Wolf

1 Introduction

Figure 1.2: A comparison of the spectrum of a black body at 5250 K (grey), the sunlight atthe top of the atmosphere (yellow) and radiation at sea level (red) together withthe corresponding absorbing molecules (purple) (after Rohde 2007)

Figure 1.3: Annual ground solar irradiance for every land mass on earth averaged over 1983until 2005 in [ W

m2 ] (after Steiner 2008)

4

Page 13: BSc Thesis Jochen Wolf

1.1 Basic physics of organic solar cells

for which the record is at 11.1 % efficiency. In this chapter the band structure of semi

conductors and polymers is described.

Figure 1.4: Best research-cell efficiencies of different types of solar cells (after NREL10.07.2013b)

Electrons inside a semiconductor can only occupy discrete energy states which in their

simplest form can be derived via the Schrodinger equation. Polymers are similar in

their mathematical description to semiconductors. As a consequence of the Schrodinger

equation, combined with the theory of the linear combination of atomic orbitals, there

are molecular orbitals that electrons occupy. An example of molecular orbitals is shown

on ethene in figure 1.5, two overlapping π atomic orbitals form a molecular orbital. The

interaction between overlapping atomic orbitals can lower the overall energy, which are

called bonding molecular orbitals. If they increase the overall energy, they are called

antibonding molecular orbitals. Not all molecular orbitals are occupied, and the so-called

band gap is the energy difference between the highest occupied states and the lowest

unoccupied states. These are called the highest occupied molecular orbital (HOMO)

and the lowest unoccupied molecular orbital (LUMO).

In solar cells, an incoming photon can excite an electron from the occupied states to the

5

Page 14: BSc Thesis Jochen Wolf

1 Introduction

Figure 1.5: Orbitals of ethene: a) individual atomic orbitals, b) one molecular orbital and c)energy of bonding- and antibonding orbitals (Palumbiny 2011, p. 7)

unoccupied ones. This leaves a hole, an empty state, surrounded by occupied ones. In

order for energy to be conserved, this can only happen if the incoming photon has an

energy EPh sufficient to let the electron jump into a state above the band gap.

EPh =h · cλ

> Eg (1.1)

Eg denotes the band gap, h the Planck constant, c the speed of light and λ the wavelength

of the photon. The energy surplus of the photon ∆E = EPh −Eg given to the electron-

hole pair is used to excite either the electron to a state above the LUMO, or to excite an

electron of lower energy than the HOMO, or both. The energy surplus is then dissipated

by creating phonons and photons. Thus, the energy is transformed through this process

called thermalization.

Therefore the band gap Eg becomes a very important choice for solar cells in order to

maximize both the amount of potential photons that can be absorbed and their energy.

In the polymers used in this work to build organic solar cells, the electron-hole pair is not

free, in the sense that it can move independently, but forms a bound pair, an exciton.

This stands in contrast for example to silicon based solar cells, where the electron-hole

pairs can move independently.

For a given band gap, the Shockley-Queisser limit describes the highest reachable effi-

ciency. It assumes a black body spectrum of the sun at TSun = 6000 K, the solar cell

6

Page 15: BSc Thesis Jochen Wolf

1.1 Basic physics of organic solar cells

at TSC = 300 K and a single band gap Eg (William Shockley 1961, p. 1). According to

this limit, the optimal band gap is Eg = 1.1 eV, which gives a maximum efficiency of

30 %. Using an AM 1.5 solar spectrum, which will be explained in chapter 3.6, instead

of a calculated spectrum, the Shockley-Queisser limit is modified, as shown in figure 1.6.

The modified Shockley-Queisser limit increases the maximum efficiency to 33.7 % at a

band gap of 1.34 eV. One definition of a semiconductor is a band gap of Eg < 2.5 eV,

while for example silicon has a band gap of Eg = 1.11 eV (Streetman 2000, p. 524).

There are a number of ways through which this limit can be exceeded, among them the

use of lenses to concentrate incoming light, or the use of multiple p-n junctions. For

example, a triple junction solar cell by Scanlon (2012) under 942x concentrated light

reached 44.0% efficiency. The benefit of light concentration is an increase in the open

circuit voltage, which will be explained in chapter 1.1.4.

Figure 1.6: Shockley-Queisser limit calculated using an AM 1.5 solar spectrum instead of ablack body spectrum (after Byrnes 2011)

1.1.3 The diffusion length of excitons

The excitons described in the previous section have a typical lifetime τ = 200 ps before

they recombine, sending out phonons and photons (Jorge Piris 2009, p. 14502 & 14505).

Due to their relatively short life expectancy, they fall in the category of Frenkel excitons.

In this chapter the diffusion length of excitons and consequences for polymer based solar

cells are discussed.

7

Page 16: BSc Thesis Jochen Wolf

1 Introduction

The lifetime limits the distance which an exciton can travel within the solar cell. Accord-

ing to (Paul E. Shaw 2008, p. 3519), this can be described by the following equation:

LD =√D · τ (1.2)

With a typical lifetime τ = 200 ps and a diffusion coefficient D = 5 · 10−4 cm2

s

(according to L. Luuer 2004), the excitons can travel about LD = 3.2 nm in the polymer

poly(3-hexylthiophen-2,5-diyl) (P3HT). A newer measurement corrects this distance to

LD = (8.5±0.7) nm (Paul E. Shaw 2008, p. 3519). A description of P3HT can be found

in chapter 2.1. Within this distance, an interface between the polymer acting as a donor

and the polymer acting as an acceptor has to be located, else the exciton will decay.

Figure 1.7: The basic process inside an organic solar cell exciton generation (a), transport (b),dissociation (c) and charge carrier transport (d) (Meier 2012, p. 6)

At the interface, the band structure changes rapidly, as can be seen in figure 1.8, resulting

in high enough electrical fields to separate the exciton. The electron and the hole move

independently towards the electrodes. Therefore, the theoretically ideal morphology

between these two polymers is an interdigitated donor-acceptor interface as shown in

figure 1.9. The width of the individual fingers is in the same range as the distance

LD = (8.5 ± 0.7) nm.

However, for the purpose of this work the so-called bulk heterojunction, see figure 1.9,

is chosen in which the polymers are mixed together, forming disordered regions in which

one polymer dominates, as can be seen in figures 1.7 and 1.9. The actual structure

can, to some extend, be influenced by the choice of spin coat parameters and solvent

(C.Y. Kwong 2004).

8

Page 17: BSc Thesis Jochen Wolf

1.1 Basic physics of organic solar cells

Figure 1.8: Band structure of the polymers PEDOT:PSS and P3HT:PCBM, ITO and alu-minium. The top line of each column represents the HOMO, the bottom line theLUMO. (after Seong Kyu Janga 2012, p. 427)

Figure 1.9: Bilayer junction (left), bulk heterojunction (middle) and interdigitated junction(right) between the donor and acceptor material (after Palumbiny 2011, p. 21)

1.1.4 Working principle of organic solar cells

In order to gain an insight into the solar cell, the generalized Shockley equation is used,

based on an equivalent circuit shown in figure 1.10. It describes the resulting current

through a solar cell I(V ) dependent on the external voltage V :

I(V ) = IS

(exp

[e (V − IRshunt)

nkBT

]− 1

)− V − IRshunt

RSerial

− IPh (1.3)

IS is the saturation current, IPh the photo current, Rshunt the shunt resistance, Rseries the

series resistance, n the ideality factor, kB the Boltzmann constant, T the temperature

and e the elementary charge (Giebink et al. 2010). These characteristic parameters are

9

Page 18: BSc Thesis Jochen Wolf

1 Introduction

Figure 1.10: Equivalent circuit model of organic solar cells with the shunt resistance Rshunt,serial resistance RSerial, saturation current IS , photo current IPh and idealityfactor n (Palumbiny 2011, p. 37)

now explained in more detail.

The photo current IPh is the current generated by the photoelectric effect. It is therefore

independent of the external voltage, only dependent on the incoming radiation. Further-

more, the photo current Iph is equal to the short circuit current ISC , under the so-called

short circuit condition V = 0.

IPh = I(V = 0) = ISC (1.4)

The open circuit voltage VOC is the voltage at which no current flows I(VOC) = 0

(Andre Moliton 2006, p. 594). It is dictated by the band structure, as can be seen

in figure 1.8. The point at which the external voltage V is opposite and equal to the

internally generated voltage of the band structure is the open circuit voltage VOC .

The shunt resistance Rshunt is defined as the slope of the IV-curve at V = 0 (Andre Moli-

ton 2006, p. 594). For decreasing shunt resistances Rshunt, the current through the solar

cell I(V ) decreases. Consequently, the open circuit voltage VOC decreases as well.

The series resistance Rseries is defined as the slope of the IV-curve at the open circuit

voltage VOC (Andre Moliton 2006, p. 594). For high Rseries, it decreases the current

I(V ) around the open circuit voltage VOC . Also for large values of Rseries, it suppresses

the diode behaviour, which then looks like a resistor. It does not modify the open circuit

voltage VOC , but can decrease the short circuit current ISC for high series resistances

Rseries.

For an ideal solar cell, the ideality factor is n = 1. It describes how well the theory

matches the actual behaviour of the solar cell. Furthermore, the shunt resistance is

ideally Rshunt =∞ and the serial resistance is Rseries = 0.

10

Page 19: BSc Thesis Jochen Wolf

1.2 Benefits of structured organic solar cells

1.2 Benefits of structured organic solar cells

Figure 1.11: Structured organic solar cell. The incoming ray of light is diffracted at thestructured PEDOT:PSS-P3HT:PCBM interface, and consequently trapped (afterLang 2012, p. 15)

Organic solar cells built in this work only absorb about 50 %-75 % of the light inserted

into the active layer, as can be seen in figure 4.4. A higher absorption in the active layer

would be favourable, as it implies an increased exciton generation rate which would lead

to a higher photo generated current and a higher efficiency. Organic solar cells can be

structured in order to increase the absorption in the blend. In artificially structured

organic solar cells, there are three major ways in which the efficiency is influenced.

1.2.1 Diffraction gratings

The CD structure used in this work has a periodicity of 1.5 µm. Since the wavelengths

of visible light are in the same order of magnitude, the periodic CD structure acts as

a diffraction grating. This can be seen on a structured organic solar cell in figure 1.11.

Some of the incoming light gets diffracted and consequently enters the solar cell at an

angle α 6= 0 measured to the surface normal. This increases the optical path through

the solar cell, which increases absorption.

11

Page 20: BSc Thesis Jochen Wolf

1 Introduction

1.2.2 Light trapping

As described for diffraction gratings, structured solar cells lets light enter at an angle

α neq 0. Using a reflective back coating, for example an aluminium layer, the vast ma-

jority of the light gets reflected back inside the solar cell. Through tuning the structure

and the refractive indexes, it is possible to reflect part of the light back. As can be seen

in figure 1.11, the light can be reflected back and forth until it is absorbed, which is

called light trapping.

1.2.3 Morphology change

PEDOT:PSS shows best conductivities when the charge is transported along the back-

bone of the polymer. Therefore, alignment of the backbones has a major impact on the

final conductivity of the PEDOT:PSS layer. The technique of plasticizer assisted soft

embossing influences that alignment (Jin Young Park & Carter 2011, p. 11251).

12

Page 21: BSc Thesis Jochen Wolf

2 Sample preparation

2.1 Materials used

Substrates

Two kinds of substrates are used in order to realize all the different device structures as

detailed in section 2.3 on both glass and PET. For the glass substrates, this is 1.1 mm

thick glass bought from Solems L’energie lumiere. They have a layer of indium tin oxide

(ITO), a transparent metal oxide electrode, evaporated on top. For samples on glass

without an ITO layer, it is removed via a catalytic reaction with hydrochloric acid and

zinc.

PET substrates are PXM739 foils bought from HiFi industrial film. They have a

thickness of d = 175 µm. The ITO-PET substrates are V 150A − OFS bought from

Nitto Denko. They consist of six layers, ITO being the top one, as shown in figure 2.1.

Once the release liner is removed, it has a thickness of d = 45 µm. The ITO-PET foils

are annealed for 1.5 hours at 140 C to bind the glue. This annealing step must be

performed before the four step cleaning process, in order to avoid the dissolving of the

glue, which would result in the splitting of the foil.

PEDOT:PSS

Poly(3,4-ethylenedioxythiophene):poly(styrenesulfonate) (PEDOT:PSS) is a mixture of

two polymers. Its chemical structure is shown in figure 2.4. Dissolved in water, it has a

high transparency and can be treated with various solvents to increase the conductivity

from 1-10 Scm

for pristine PEDOT:PSS by two to three orders of magnitude (Yong

Hyun Kim 2011, p. 1076). One of the most important properties of PEDOT:PSS is its

good hole conducting and electron blocking ability. In this work, it is used as an electron

13

Page 22: BSc Thesis Jochen Wolf

2 Sample preparation

Figure 2.1: The six layers of the used ITO-PET substrates: ITO (white), under coating (or-ange), PET (blue), back coating (pink), adhesive (olive), and release liner (red).The total thickness is 120µm, the thickness from ITO to adhesive 45µm

Figure 2.2: Carbon (grey), hydrogen (black), sulfur (yellow) and oxygen (red) atoms form thechemical structures of PEDOT (left) and PSS (right) which forms PEDOT:PSSif solved in water. Hydrogen atoms bound to oxygen (pink) is highly polar (afterMeier 2012, p. 66)

blocking layer, as a transparent electrode, or both. It is soluble in water, in which PSS

acts as an acid (Yong Hyun Kim 2011, p. 1078).

P3HT:PCBM

Poly(3-hexylthiophene) (P3HT) is a polymer and an electron donor. Phenyl-C61-butyric

acid methyl ester (PCBM) is a small molecule and an electron acceptor (Wanli Ma 2005,

p. 1618). Both are soluble in chlorobenzene. Their chemical structure can be seen in

figure 2.3. The band gap of P3HT lies at about 1.9 eV (Renee Kroon 2008, p. 531).

Solved in CD, P3HT:PCBM is called blend.

14

Page 23: BSc Thesis Jochen Wolf

2.2 Solar cell production

Figure 2.3: The chemical structures of P3HT (left) and PCBM (right) solved in CB formP3HT:PCBM, the so-called blend. Coloring is analogous to figure 2.4. (afterMeier 2012, p. 62 & 68)

Aluminium

Aluminium granules are bought from ChemPur. They have a size of 2-10 mm with a

purity of 99.99%.

2.2 Solar cell production

2.2.1 Substrate cleaning

As previously mentioned, the two substrates used in this work are PET-foil and glass.

The PET-foil is cut into 2.2 x 2.2 cm2 squares, while the glass already comes in the

required size. The substrates are cleaned using ten-minute long ultrasonic baths in the

following sequence:

• Alconox high precision aqueous cleaning solution, 24 gl

(Alconox Inc.)

• Ethanol, purity ≥ 99.5% (Carl Roth)

• Acetone, purity ≥ 99.5% (Carl Roth)

• Isopropanol, purity ≥ 99.5% (Carl Roth)

15

Page 24: BSc Thesis Jochen Wolf

2 Sample preparation

The substrates are initially rinsed off with distilled water, and at each change of solvent,

with the current and subsequently the next solvent. Finally, they are taken out of the

isopropanol one by one to be blown dry with nitrogen. Care is taken to ensure the

samples do not dry in between the solvent baths.

2.2.2 Oxygen plasma treatment

After the sample cleaning, the substrates are treated with an O2-plasma in order to

achieve a surface functionalization which, in turn, leads to homogeneous thin films after

spin coating. This is due to an increase in the hydrophilic character of the PEDOT:PSS.

To this end, the samples are placed inside a vacuum chamber, which is pumped down

to the pressure of P0 = 0.16 mbar. While further pumping down, oxygen is released

into the chamber at a rate to reach a pressure equilibrium at Pequ = 0.40 mbar.

Then, a voltage high enough to ignite the oxygen is applied for 15 min at a power of

P = 200 W. The PET samples have to be placed away from all air vents to avoid the

pressure wave from opening the vents after the oxygen plasma treatment. The surface

functionilization effect gradually wears off, therefore the samples must be spin coated

within the next hour.

2.2.3 Spin coating and post-treatment of PEDOT:PSS

For the mixing of polymer solutions, welted glass with an polyethylene lid bought from

Carl Roth is cleaned with the appropriate solvent of the polymer solution and blown-

dry using nitrogen. Liquids are measured using micro litre pipettes (Carl Roth), while

solids are weighted using a high precision balance (Sartorius BP 210, error 0.01 mg).

In order to achieve maximum reproducibility, PEDOT:PSS is taken out of refrigerated

storage 30 minutes early for it to achieve room temperature. It is then given a 15 min

ultrasonic bath to break up larger clusters that PEDOTS:PSS tends to form in aqueous

solution over time. Afterwards, it is filtered using a 0.45 µm PTFE filter to remove any

remaining larger clusters.

For the next step, the different layers are applied onto the substrates. For this purpose,

the widely used technique of spin coating is chosen, which creates polymer films of

reproducible thickness by spinning the sample, thus distributing the solution evenly

16

Page 25: BSc Thesis Jochen Wolf

2.2 Solar cell production

and evaporating the solvent. The substrates are held in place on a Suss MicroTec

Lithography Delta 6Rs TT spin coater using a vacuum. The highest acceleration setting

of 9 is used for all the samples, which accelerates the sample within 6 seconds to its speed

of 2500 rpm.

For the PET substrates the use of a vacuum is not directly possible, since the PET foils

would bend, resulting in an inhomogeneous layer thickness. Furthermore, the PET foils

would also wrinkle while annealing, and therefore the annealing temperature would not

be homogeneous over the sample. To solve this issue, 10 µl of glycerol, 99.5% purity

(Carl Roth), is used on top of a microscopy slide.

By placing the PET foil on the glycerol, it is secured in place strongly enough to with-

stand the spin coating, while the glycerol remains on the lower side of the substrate and

therefore is not interacting with the sample, flattening it. After being placed on the

glass, excess glycerol is pushed out on the side by a stream of nitrogen, originating from

directly above the sample. This method also flattens the PET foil for the spin coating

as well as preventing the PET foil from wrinkling during annealing, because of its higher

boiling point of 290C.

The first layer to be spin coated on top of the cleaned and plasma-treated substrates is

the filtered PEDOT:PSS. The exact parameters of the PEDOT:PSS spin coating differ,

as the different device architectures come into play. These will be described in more

detail in section 2.3, along with the device architecture dependant areas covered with

PEDOT:PSS. To achieve high conductivity in the PEDOT:PSS, three out of four device

architectures are placed in an ethylene glycol (EG) bath for three minutes. Afterwards,

they are placed on the spin coater for 30 s at 1500 rpm in order to remove excess EG,

followed by an annealing step of 15 min at 140 C. After two minutes, the substrates

have to be moved once in order to let the evaporated EG from the bottom out, otherwise

it will leave white drying rings. This is especially critical for the PET foils, because of

the capillary attraction between the substrate and the surface, due to the intermediary

EG. To minimize scratches on the PET foils, the surface should be as smooth as possible,

in this work, microscopy glass slides are used.

17

Page 26: BSc Thesis Jochen Wolf

2 Sample preparation

2.2.4 Spin coating of P3HT:PCBM

After the PEDOT:PSS layers, the active layer must now be administered. The polymers

P3HT and PCBM are both soluble in chlorobenzene (CB). According to a survey by

Minh Trung Dang (2011), most authors use a mixture weight ratio of 1:1, although the

best ratio would be somewhere in range 1:0.8 to 1:1. In order to achieve maximum

comparability, a 1:1 weight mixture of 24 mgml

of each polymer in CB is chosen. To avoid

getting dirt into the polymers, the welted glasses, pipette tips and tweezers were cleaned

with CB.

Each polymer is first weighted, and mixed with the appropriate amount of CB sepa-

rately. Since the polymers do not dissolve instantly, an hour of shaking is required, after

which the better dissolving polymer, PCBM, is transferred to the P3HT. To minimize

evaporation of the CB, the lids of the glasses are further sealed with parafilm by Bemis.

Due to the light sensitivity of the blend, the solution is also wrapped in aluminum foil.

The resulting mixture is then weighed and shaken for another (20±2) hours, after which

it is weighted again. The change in mass ∆m is used to calculate the amount of CB VCB

needed to mitigate the evaporated CB, using the density of CB ρCB = 1.1 gml

:

VCB =∆m

ρCB(2.1)

These steps are timed, so that the P3HT:PCBM is done vibrating at the time the

PEDOT:PSS layers are created. The P3HT:PCBM is then spin coated on the samples,

at 2000 rpm for 30 s. The lights in the room are kept to the minimum necessary because

of the light sensitivity of P3HT:PCBM. Also, after the spin coating, care is taken to

ensure that the samples are exposed to as little light as possible.

2.2.5 Aluminium evaporation

After these steps, the samples are placed in an evaporation chamber. In order to avoid

aluminium penetration into the P3HT:PCBM, potentially creating a short circuit, the

heating is adjusted to limit the growth of the aluminium layer to 0.1 nms

(Jonas Weickert

2010, p. 2372). After the first 10 nm, the incoming aluminium atoms are not able to

penetrate the already grown layer of aluminium, and therefore the rate of evaporation

is increased to yield 100 nm of aluminium at the end.

18

Page 27: BSc Thesis Jochen Wolf

2.3 Different device architectures

PEDOT:PSS annealing EG spinning annealing PEDOT:PSS annealingA 2500 rpm, 60 s 140 C, 10 min - - - - -B 2000 rpm, 60 s 140 C, 10 min 3 min 1500 rpm, 30 s 140 C, 10 min - -C 1500 rpm, 60 s 140 C, 10 min 3 min 1500 rpm, 30 s 140 C, 10 min - -D 1500 rpm, 60 s 140 C, 10 min 3 min 1500 rpm, 30 s 140 C, 10 min 2500 rpm, 60 s 140 C, 10 min

Table 2.1: The steps necessary for different device architectures, which are explained in thetext

2.3 Different device architectures

As mentioned before, samples are treated differently in order to compare their per-

formance. Details of the treatments are listed in table 2.1. The annealing steps are

performed in order to evaporate all water out of the PEDOT:PSS as well as all the

CB out of the P3HT:PCBM. Therefore, a temperature above the boiling point of both

water, TH2O = 100 C and CB TCB = 131 C is chosen. To ensure full evaporation,

140C for 10 minutes is applied in the annealing steps. As the solvent evaporates, the

polymer crystallizes, which improves efficiency.

The amount of PEDOT:PSS used for spin coating depends on the underlying surface.

On glass both with and without ITO, 200 µl is used, while for PET the amount has to

be raised to 300 µl due to comparatively bad surface wetting. For the second layer of

PEDOT:PSS on device architecture D, the higher amount of 300 µl is used as well. For

the P3HT:PCBM layer, an amount of 200 µl remains constant among all the devices.

Finally, the samples are taken into a nitrogen glove box by MBRAUN for a last annealing

step. The nitrogen atmosphere is necessary to keep the P3HT:PCBM from reacting with

ambient oxygen, which would happen very quickly due to the annealing temperature.

The samples are annealed at 140 C for 10 minutes. Afterwards they are taken directly

to be measured.

2.3.1 Partial spin coating

In order to contact the electrode and the aluminium of the organic solar cells, some of

the layers are not administered on the complete sample. An overview can be seen in

table 2.2. Etching is done with the tip of a cotton bud, soaked in hydrochloric acid

and zinc dust and prior to the four step cleaning process. For etching half the ITO off

glass, the other side is sealed with scotch tape. On ITO-PET foil, this method has to

be adapted due to the tendency of the ITO-PET foil to split. A razor blade is pressed

19

Page 28: BSc Thesis Jochen Wolf

2 Sample preparation

etching PEDOT:PSS PEDOT:PSS blend aluminiumA half etched partial spin coating - partial spin coating masked evaporationB half etched partial spin coating - partial spin coating masked evaporationC fully etched full spin coating, half removed - partial spin coating masked evaporationD fully etched full spin coating, half removed partial spin coating partial spin coating masked evaporation

Table 2.2: The steps necessary to contact device architectures A-D

on the ITO-PET foil instead to prevent the acid from spilling into the other half of the

foil. A razor blade is also used for removing half of the PEDOT:PSS after spin coating

with the help of distilled H2O and a cotton bud.

Partial spin coating is done by leaving out 5 mm from the edge that contains the electrode

when spilling the solved polymer onto the substrate. Despite the use of an O2-plasma,

the solved polymer does not distribute itself over the whole foil due to residual surface

tension. After spinning the sample, most of the previously uncovered area is still un-

covered, therefore a contact to the layer below can be made. During the aluminium

evaporation, a hole mask covers the samples, and creates aluminium contacts for both

the top and the bottom electrode.

2.3.2 Imprinting of PEDOT:PSS

The second PEDOT:PSS layer on device architecture D can be mixed with glycerol

prior to spin coating. The aim is to soften the PEDOT:PSS layer. After spin coating

the second layer of PEDOT:PSS, it can be imprinted using a stamp made out of the

polymer PDMS.

In order to give the stamp, and in turn the PEDOT:PSS layer, an artificial structure a

compact disc (CD) is reverse engineered. The used CD is a blank polycarbonate master

whose structure has a periodicity of d = 740 nm. The CD is cut into four equal pieces,

then cleaned using the same four step process described in chapter 2.2.1.

Afterwards, the PDMS is mixed using a glass cleaned with isopropanol and a mixture

of elastomer:curing agent of 10:1. To remove residual air bubbles from the mixture, a

vacuum is created. After 5 min, a vent is opened and ambient air inserted. The process

of creating and lifting the vacuum is repeated three to five times, until all of the visible

bubbles are removed. Then, it is poured onto a cleaned CD piece. To prevent the PDMS

from flowing beyond the CD piece, a border square measuring 3 cm is used. In order

to remove newly created bubbles due to pouring the mixture, the still liquid stamp and

20

Page 29: BSc Thesis Jochen Wolf

2.3 Different device architectures

(a) Device architecture A (b) Device architecture B

(c) Device architecture C (d) Device architecture D

Figure 2.4: Schematic representation of the different device architectures A-D, which areprepared with the help of tables 2.1 and 2.2. The substrate (blue), ITO(white), PEDOT:PSS (light green), highly conductive PEDOT:PSS (dark green),P3HT:PCBM (red) and aluminium (grey) are not to scale. The change in apparentcolor of the P3HT:PCBM is due to the underlying layer.

CD are put into a vacuum chamber, and the process of creating and lifting the vacuum

is repeated another three to five times.

For the glycerol doped PEDOT:PSS layer, 30 mgml

glycerol is mixed with filtered PEDOT:PSS

for 20 min using water cleaned stirring magnets. Afterwards, it is spin coated on top

of the other layer of PEDOT:PSS, using the spin coat parameters of table 2.1 of device

architecture D.

After spin coating, the annealing step is modified. The sample is placed on a heating

plate at ambient temperature while the stamp is given an oxygen plasma treatment with

the same parameters as described in chapter 2.2.2, but only for 30 s. Due to the surface

functionalization of the PDMS stamp, higher imprint depths are achievable.

21

Page 30: BSc Thesis Jochen Wolf

2 Sample preparation

Afterwards, the PDMS stamp is placed on top and cut to the size of the sample. The

cutting is done to get a flat surface of well known area. To imprint the CD structure, a

pressure of P = 30 kPa is chosen to be comparable to the work by (Lang 2012, p. 30).

Therefore, metal blocks with a combined mass of m

m =P · Ag

=30 kPa · (2.2 cm)2

9.81 Nkg

= 1.5 kg (2.2)

are placed on the sample, calculated with the pressure P , the sample area A and the

acceleration constant g.

The heating plate is adjusted to a temperature of T = 80C for three hours. Afterwards,

the metal blocks are removed and the sample including stamp placed on a cold metal

block to facilitate the removal of the stamp. With the help of a knife, an edge of the

stamp is lifted, after which the rest is carefully lifted as well.

The sample is then annealed at 140C for 10 minutes to remove rests of glycerol and

water, and crystallize the PEDOT:PSS layer. Afterwards, it is treated the same way as

non-structured samples of device architecture D.

22

Page 31: BSc Thesis Jochen Wolf

3 Device Characterization

3.1 Optical microscope

In this work, optical microscopy is used to determine the size of the pixels of the solar

cells, which is needed for the exact calculation of short-circuit current, photocurrent

efficiency, as well as series and shunt resistance, explained in chapter 3.6. Furthermore,

it is used to identify the imprint of a CD on a PDMS stamp, as can be seen in chapter

5. A Pixellink CCD camera in conjunction with an Axiolab C microscope by Carl Zeiss

is used to take pictures with a resolution of 1280 pixel x 1024 pixel then processed with

the free image analysis program ImageJ version 1.46r. The scale is dependent on the

objective used, measured with a high precision grid and shown in table 3.1.

3.2 Atomic force microscope

Atomic force microscopy (AFM) is used for topological measurements of the sample sur-

faces. An ULTRASHARP NSC35/ALBS cantilever from MikroMasch with a typical

length of l = 110 µm, resonance frequency of f = 210 kHz and conically shaped tip

with a radius of r = 10 nm is used in conjunction with a JEOL JSPM 5200 atomic

magnification scales[µm

pixel

]1.25x 6.2502.5x 3.12510x 0.81150x 0.165100x 0.081

Table 3.1: Microscopy scales at magnifications 1.25x - 100x measured with a high precisiongrid

23

Page 32: BSc Thesis Jochen Wolf

3 Device Characterization

force microscope. Using a piezoelectric crystal, the cantilever is vibrated near to its reso-

nance frequency and brought close to the surface without making contact, resulting in an

attractive force. The vertical position is constantly adjusted, in order for the vibration

amplitude to remain constant. Through these adjustments, a topographical image is

generated, which is then processed by the free AFM software Gwyddion version 2.3.1.

3.3 UV/Vis spectrometer

The transmittance T and reflectance R of different layers of solar cells is measured from

260 nm to 800 nm. For this purpose, a Perkin Elmer LAMBDA 900 UV/V IS/NIR

spectrometer with an integrating sphere is used. The software UV WinLab is used to

process the data. The integrating sphere has a diameter of 150 mm and is made out

of Spectralon USRS − 99− 020 from labsphere, a highly reflective material capable of

diffusely reflecting 97 % to 99 % of the light, depending on the wavelength (labsphere

2008).

As a result, the light from a sample is scattered until it reaches the detector. Although

the absorption of Spectralon is low, the light is weakened by two orders of magnitude

due to multiple reflections. In order to avoid over emphasizing the some angles of diffuse

reflection or transmittance over other angles, two baffles are inside the sphere, as shown

in figure 3.1. They block the direct line of sight between the sample and the detector.

Through the relation

R + A+ T = 1 (3.1)

the absorption A can be extracted out of the transmittance T and reflectance R, which

can then be used to compare relative layer thicknesses. For calibration purposes, the

transmittance T is first measured without a sample, measuring the ambient air only. This

spectrum defines 100 % transmittance T . To check the calibration, another measurement

is done without a sample, yielding 100 % transmittance T plus background noise. The

transmittance measurement with a sample can be seen in figure 3.1a.

To calibrate the reflectance Rcal, a reference is needed. For this purpose, the certified

reflectance standard Spectralon USRS−99−020 from labsphere is used, which has a well

known reflectance Rref (labsphere 2008). It is also the coating of the integration sphere.

The reflectance reference is measured and the result defined as its reflectance Rcal =:

24

Page 33: BSc Thesis Jochen Wolf

3.4 Four-point measurement

Rref . Another measurement of this sample then yields its calibration curve of 97 % to

99 % reflectance Rref plus background noise.

(a) Transmittance measure-ment with a sample

(b) Reflectance measurementwith a sample

Figure 3.1: Transmittance and reflectance measurements with a diffuse sample (red) using anintegrating sphere made out of Spectralon from labsphere

3.4 Four-point measurement

As shown in figure 3.2, for a four-point measurement four contacts are pushed onto the

surface of a sample via a spring. A Keithley 2400 sourcemeter is used to apply a current

through the outer two probes and detect the voltage through the inner two. Due to the

separation of current and voltage, the resistance of the wires cancels out. Therefore, a

more accurate result is gained.

Figure 3.2: Four-point measurement of a sample (Akira Shimamoto & Ike 2012, after)

25

Page 34: BSc Thesis Jochen Wolf

3 Device Characterization

3.5 Scanning electron miscroscopy

In a scanning electron microscope (SEM), electrons are accelerated by a high voltage

up to several kV. They are focused onto a sample to be measured. There, they are

decelerated and produce a variety of signals, including secondary electrons, backscattered

electrons and photons of various wavelengths (Swapp 17.07.2013). At the SEM used in

this work, the so-called InLens modus is used, which means that secondary electrons

are detected. Images are processed using the free image editing software Paint.NET to

enhance visibility of features.

Due to the used acceleration voltage V = 1.50 kV and V = 5.00 kV, the electron speed

exceeds 10 % of the speed of light. Therefore, relativistic effects have to be taken into

account. The relativistic impulse p, using the electron charge e and mass me, the total

electron energy E, the electron rest energy E0 and the speed of light c

p =

√E2 − E2

0

c=

√(V · e−mec2)2 − (mec2)2

c(3.2)

Using the De Broglie equation, the corresponding relativistic De Broglie wavelength λe

is

λe =h

me · v=

h · c√(V · e+mec2)2 − (mec2)2

= 17.3 pm (3.3)

using the planck constant h and an acceleration voltage V = 5.00 kV. Since the De

Broglie wavelength of these electrons is much lower than the lowest wavelength of visible

light λe = 17.3 pm << 400 nm = λvis, it is possible to resolve much smaller features of

the sample.

3.6 Current-voltage measurement

In order to characterize the solar cells, a Solar Constant 1200 from K.H. Steuernagel

Lichttechnik, which simulates sunlight after passing through 1.5 times the terrestrial

air mass (AM), the AM 1.5 standard. AM 0 is equal to the solar constant defined

by PAM0 = 1347.9 Wm2 from ASTM (2012) which was measured from a wavelength of

280 nm to 4000 nm. The AM 1.5 takes into account that the sunlight has to traverse the

26

Page 35: BSc Thesis Jochen Wolf

3.6 Current-voltage measurement

atmosphere at an angle α, measured from the surface normal. This leads to an increased

distance travelled through the atmosphere, see figure 3.3.

Figure 3.3: Visual representation of the air mass (AM) models AM 0, AM 1 and AM 1.5(Energy 10.07.2013)

AM =1

cosα(3.4)

Therefore, the AM 1.5 standard implies an inclination angle of αAM1.5

αAM1.5 = cos−1

(1

AM

)= cos−1

(1

1.5

)= 48.2 (3.5)

As mentioned at the end of section 1.2, the actual spectrum is, among others, depen-

dant on factors like air composition, actual angle of incident, or weather. The AM 1.5

standard uses the reference spectrum ASTM G-173, of the American Society for Testing

and Materials (ASTM) International (ASTM 2012). Air pollution was then taken into

account through the Simple Model of the Atmospheric Radiative Transfer of Sunshine

(SMARTS) software version 2.9.2 (ASTM 2012, chapter 4.5).

For a solar cell facing towards the equator, under the AM 1.5 angle αAM1.5 = 48.2, this

spectrum yields a total irradiance PAM1.5G = 1000.4 Wm2 of direct and diffuse light. If

the diffuse light is ignored, the total irradiance drops to PAM1.5D = 900.1 Wm2 . The solar

simulator is first pre-heated for an hour to reach the described spectrum, then calibrated

using a Fraunhofer WPVS-ID 3 solar cell to an intensity of P = 1000 Wm2 . The solar

27

Page 36: BSc Thesis Jochen Wolf

3 Device Characterization

cells analysed in this work are capable of using diffuse light, therefore the choice of solar

simulator and intensity is made to ensure the AM 1.5 G standard measuring conditions

for solar cells. The resulting spectrum can be seen in 3.5.

Afterwards, the samples are placed on top of the solar simulator, as seen in figure 3.4,

first under dark conditions accomplished by covering a duct. The contact between the

sample and a Keithley 2400 sourcemeter is facilitated by using silver contact paste

from Ferro GmbH. To check the contact, the current is measured with the sourcemeter

sweeping the voltage from -1 V to 1 V, using a step size of 0.01 V and measuring for

0.1 s each. Afterwards, the cover is removed and the sample measured again under light

conditions. This procedure is repeated for every one of the four pixels on each solar cell.

Figure 3.4: Visual representation of the solar simulator setup used in this work (after Meier2012, p. 49)

Solar cell characteristics are calculated using a self-made Python program that can be

found in the appendix. It takes the data points from the measurement and first plots the

curves. Afterwards, it fits one linear polynomial each through the five points surrounding

the voltage V = 0 and the point of current I = 0. Short circuit current ISC =: I(V = 0)

and open circuit voltage VOC =: V (I = 0) are defined respectively. The inclines of the

28

Page 37: BSc Thesis Jochen Wolf

3.6 Current-voltage measurement

polynomials are defined as the shunt resistance

Rshunt =

(1dIdV

)V=VOC

(3.6)

and the series resistance

Rseries =

(1dIdV

)V=0

(3.7)

In order to find the maximum power point (MPP), all pairs of current and voltage are

multiplied. The resulting maximum defines the pair (VMPP , IMPP ) used to calculate the

fillfactor (FF).

FF =VMPP · ISCVOC · ISC

(3.8)

The efficiency η is calculated via

η =PoutPin

=VMPP · ISCA · Pin

(3.9)

using the area of the pixel A and the intensity of incoming radiation Pin. The plots are

saved as a vector graphic in the portable document format .pdf and portable network

graphic .png, examples are figures 4.6 and 4.7. A more elaborate description on features

and usage can be found in the appendix in the form of a readme file as well as the source

code written in python 2.7.

Figure 3.5: Spectrum of a Solar Constant 1200 from K.H. Steuernagel Lichttechnik solarsimulator (yellow) compared to the global radiation (black) in arbitrary units (afterLang 2012)

29

Page 38: BSc Thesis Jochen Wolf
Page 39: BSc Thesis Jochen Wolf

4 Towards ITO-free organic solar cells

In order to realize ITO-free organic solar cells, two device architectures based on highly

conductive PEDOT:PSS (H-PEDOT:PSS) as a replacement for ITO are chosen. For

comparison, two ITO-based device architectures are built as well.

4.1 Different device architectures on glass

The device architectures detailed in section 2.3 are prepared on glass.

4.1.1 UV/Vis spectroscopy

Figure 4.1: Visual representation of the splitting intensities of an incoming beam falling on asample (light red). It can either be absorbed, reflected or transmitted. If absorbed,it can also create photoluminescence and emit light of a lower wavelength. (afterMiguel A. Perez & Arias 2013)

For the UV/Vis spectroscopy of both glass and PET samples, partial spin coating is

changed to full spin coating, as well as leaving out the aluminium evaporation. That way,

the transmittance T and reflectance R can be measured in the whole sample, yielding

a more accurate result. However, it has to be kept in mind that the highly reflective

31

Page 40: BSc Thesis Jochen Wolf

4 Towards ITO-free organic solar cells

aluminium back layer would reflect most of the light. Therefore, the absorption in the

active layer, and in the other layers, as well as the reflectance would be higher while

transmittance through the solar cell would drop to near zero.

Overall, 10 samples are measured to reconstruct the transmittance T and reflectance R,

and therefore the absorption A, in all layers. The underlying equation

1 = R + A+ T (4.1)

is based on the assumption that an incoming photon can either be reflected, absorbed or

transmitted, as shown in figure 4.1. However, photoluminescence, which is also shown

in figure 4.1 is counted towards both transmittance and reflectance, because the photon

can be emitted in either direction.

3 0 0 4 0 0 5 0 0 6 0 0 7 0 0 8 0 00

2 0

4 0

6 0

8 0

1 0 0

abso

rption

[%]

w a v e l e n g t h [ n m ]

Co

lour

De

vic

e a

rch

ite

ctu

re

Su

bstr

ate

Ele

ctr

ode

Ele

trco

n b

lockin

g la

yer

Ble

nd

Glass

Glass ITO

A Glass ITO PEDOT:PSS

A Glass ITO PEDOT:PSS P3HT:PCBM

B Glass ITO H-PEDOT:PSS

B Glass ITO H-PEDOT:PSS P3HT:PCBM

C Glass H-PEDOT:PSS

C Glass H-PEDOT:PSS P3HT:PCBM

D Glass H-PEDOT:PSS PEDOT:PSS

D Glass H-PEDOT:PSS PEDOT:PSS P3HT:PCBM

Figure 4.2: Absorption of different device structures on glass calculated via transmittance andreflectance using UV/Vis spectroscopy

Figure 4.2 shows the calculated absorption spectra A(λ). Figures 1 and 2 in the appendix

show the measured reflectance R and transmittance T . Each device architecture A-D

is built once with and once without P3HT:PCBM, plus one ITO glass and an etched

glass. H-PEDOT:PSS is used to abbreviate highly conductive PEDOT:PSS. Two sam-

ples based on the same device architecture A-D are plotted in the same color. They are

distinguishable at 400 nm - the higher absorbing four curves belong to the samples with

blend.

The curves with blend show an increased absorption A by about 20 to 40 % compared

32

Page 41: BSc Thesis Jochen Wolf

4.1 Different device architectures on glass

to the corresponding samples without blend. For all device architectures A-D, the re-

flectance R increases for wavelengths bigger than 400 nm, while the transmittance T

decreases for wavelengths between 300 nm to 650 nm. Therefore, the increase in ab-

sorption A by adding blend is due to a decrease in transmittance T , while the increased

reflectance partly mitigates the increase in absorption A.

The ITO layer on glass contributes only very slightly to the absorption, only for wave-

lengths below 350 nm, there is a significant difference due to a much higher reflectance of

etched glass. The increase in reflectance by the blend layer might be due to the detector

of the used UV/Vis spectrometer not being able to discriminate different wavelengths.

Therefore, decaying excitons in the blend that send out a photon of lower energy, pho-

toluminescence are detected as well and counted towards the reflectance.

Another effect to contribute to the higher reflectance is a change in the refractive in-

dex n (λ) of the blend, see figure 4.3. Since the refraction index n (λ) was measured by

Florent Monestiera (2007), they have used different production parameters like annealing

temperature. Therefore, only general tendencies in the refraction index are valid.

The refractive index n (λ) rises from its minimum n (440 nm) = 1.6 to n (600 nm) = 2.1,

then falls to n (800 nm) = 1.9. These extrema correspond well to the measured re-

flectance R, which increases for device architecture C from RC (400 nm) = 12 %

to RC (640 nm) = 24 %, then decreases to RC (800 nm) = 18 %. Only device archi-

tecture D behaves somewhat differently as it has an overall decreased reflectance com-

pared to the other device architectures B-D but a higher reflectance for 750 to 800 nm.

The refraction index of PEDOT:PSS is at about n (400 nm) = 1.6 and decreases to

about n (800 nm) = 1.5 (Leif A.A Pettersson 2002, p. 146), but is dependent on the

mixture ratio of PEDOT:PSS, and treatment methods. Therefore, the refraction index of

blend is similar to that of PEDOT:PSS for smaller wavelengths λ = 400 . . . 500 nm, but

larger for bigger wavelengths. Lastly, due to the post treatment method, H-PEDOT:PSS

behaves differently than PEDOT:PSS.

Overall, the dominating effect that leads to higher reflectance R (λ) after a layer of blend

is administered, is not the photoluminescence, but the refractive index n (λ).

For wavelengths λ = 330 nm to λ = 610 nm, the absorption A is higher with blend than

without, see figure 4.2. However, for higher wavelengths, the absorption A of device

architectures A-C lies below the samples without blend. This is due to the increased

33

Page 42: BSc Thesis Jochen Wolf

4 Towards ITO-free organic solar cells

reflectance for higher wavelengths because of the increased refractive index n (λ). There-

fore, the blend is not able to absorb incoming photons, since they are reflected at the

PEDOT:PSS - P3HT:PCBM barrier due to the higher refraction index of P3HT:PCBM.

All device architecturesA-D show higher absorptionA for wavelengths λ = 330 . . . 610 nm

in samples with blend, although the reflectance R = 10 . . . 20 % is still substantial.

The fraction of intensity that arrives inside the blend and is absorbed can be calculated,

for which the following equation is used

PP3HT :PCBM =TP3HT :PCBM

TPEDOT :PSS − (RP3HT :PCBM −RPEDOT :PSS)(4.2)

with the transmittance TPEDOT :PSS and reflectance RPEDOT :PSS of the corresponding

sample without blend, and the transmittance TP3HT :PCBM and reflectance RP3HT :PCBM

with blend. It is based on the assumption that the fraction of light that is not reflected

is either absorbed or transmitted. However, photoluminescence is neglected since the

fraction of the reflectance RP3HT :PCBM and transmittance TP3HT :PCBM that is due to

photoluminescence is not determined.

Figure 4.3: Refractive index n (λ) (solid line) and extinction coefficient k (λ) (circles) ofP3HT:PCBM measured by spectrometric ellipsometry (after Florent Monestiera2007)

Figure 4.4 shows the absorbed light in the blend layer as a fraction of the light intensity

that arrives inside the blend, calculated via equation (4.2). It also shows the intensity

of light that is transmitted into the blend layer as a fraction of the incoming beam

intensity. Corresponding curves are shown in the same color and can be distinguished

at the wavelength λ = 500 nm, at which the transmittance curves are on top. For

34

Page 43: BSc Thesis Jochen Wolf

4.1 Different device architectures on glass

4 0 0 5 0 0 6 0 0 7 0 0 8 0 00

2 0

4 0

6 0

8 0

1 0 0

1 2 0

1 4 0

0

2 0

4 0

6 0

8 0

1 0 0

1 2 0

1 4 0

trans

mitta

nce t

o blen

d lay

er [%

I 0]

ab

sorpt

ion of

injec

ted lig

ht in

blend

[%]

w a v e l e n g t h [ n m ]

t r a n s m i t t a n c e

a b s o r p t i o n

Co

lour

De

vic

e a

rch

ite

ctu

re

Su

bstr

ate

Ele

ctr

ode

Ele

trco

n b

lockin

g la

yer

Ble

nd

A GLASS ITO PEDOT:PSS P3HT:PCBM

B GLASS ITO H-PEDOT:PSS P3HT:PCBM

C GLASS H-PEDOT:PSS P3HT:PCBM

D GLASS H-PEDOT:PSS PEDOT:PSS P3HT:PCBM

Figure 4.4: Ratio of absorption of injected light into blend and intensity of light arrivingin blend of different device structures on glass calculated via transmittance andreflectance using UV/Vis spectroscopy

wavelengths λ = 400 . . . 550 nm, a clear trend is visible; out of lower injected intensity

follows higher chance of absorption. For wavelengths λ = 650 . . . 800 nm, the chance of

absorption increases steadily, even beyond 100 %, while the injected intensity drops.

The chance of absorption beyond 100 % for wavelengths λ = 650 . . . 800 nm is due

to an increase in reflectance RP3HT :PCBM combined with a decrease in transmission

TP3HT :PCBM . The critical wavelengths of 4.4 are λ = 350 . . . 660 nm, because the band

gap is located in this range. As mentioned in chapter 2.1, the band gap of P3HT lies at

about 1.9 eV. Therefore the wavelength at which P3HT is capable of creating a photo

current is

λ =h · cEPh

=6.6261 · 10−34 J

s· 2.9979 · 108 m

s

1.9 eV= 650 nm (4.3)

calculated with the Planck constant h, the speed of light c and the energy of the photon

EPh. For wavelengths λ = 350 . . . 500 nm, the chance of absorption might be modified by

the photoluminescence, therefore yielding a less accurate result. For wavelengths lower

than λ = 320 nm, equation (4.2) becomes impracticable, due to almost no transmittance

T and consequently high uncertainty.

Overall, the graphs of chance of absorption and injected intensity are inversely correlated

for wavelengths λ = 500 . . . 800 nm, but whether they are causally linked is uncertain.

For increasing intensities, the chance of absorption decreases. However, the data can be

explained by the polymer having a limited absolute capacity for absorbing photons.

35

Page 44: BSc Thesis Jochen Wolf

4 Towards ITO-free organic solar cells

4.1.2 Current-voltage measurement

(a) Camera picture of the solar cell with silverpaste, modified by increased brightness andcontrast. As mentioned in chapter 2.2.1, thecell measures 2.2 x 2.2 cm

(b) Microscopy image under 1.25x magnificationof a pixel of an organic solar cell. The blackdots on the yellow aluminium are blisters thatcould come from the blend annealing step.

Figure 4.5: Images of a finished organic solar cell

For this measurement, every device architecture is prepared twice on glass. Right after

the last annealing step, the samples are taken to the pre-heated solar simulator. The

measured current-voltage curves can be seen in figure 4.6. The order in which the

samples are measured is A-1, B-1, C-1, D-1, A-2, B-2, C-2 and then D-2. The evaluated

characteristics from figure 4.6 are plotted in figure 4.7. Every symbol stands for a pixel

of a solar cell, the white symbol for the average of all pixels of one solar cell.

To measure the size of each pixel, microscopy at 1.25x magnification is used. Figure

4.5 shows a camera picture (a) and a microscopy image (b) of a finished organic solar

cell. In the microscopy image, the yellow area is measured, up to the line at which the

underlying electrode ends and the material changes color.

Device architecture A shows the best diode behaviour of all device architectures. It

has the highest fillfactor FF , shunt resistance Rshunt, lowest serial resistance Rseries and

a short circuit current ISC nearly as high as device architecture B. It also shows the

highest open circuit voltage, albeit only by a small margin. All these characteristics lead

to the highest efficiency η of all the device structures.

36

Page 45: BSc Thesis Jochen Wolf

4.1 Different device architectures on glass

Curves of device architecture B show no diode behaviour in the lower right quadrant of

the plot. This could be due to a comparatively low shunt resistance, which tilts the left

side of curve down and the right side up. The curve does show an increase in its incline at

the open circuit voltage VOC of the other device architectures. The subsequently lower

fillfactor FF , and open circuit voltage VOC lead to the lower efficiency of the device

architecture. However, it has the highest short circuit current ISC .

The reason of the low shunt resistance Rshunt lies in the post treatment process of the

PEDOT:PSS layer. Due to the choice of spin coat parameters, the H-PEDOT:PSS layer

of device architecture B is thinner than the H-PEDOT:PSS layer of device architecture

C. The post treatment process might create a layer of PEDOT:PSS of uneven thickness.

Therefore, the layer might be too thin in some places, leading to a very low shunt

resistance Rshunt.

Device architecture C shows some diode behaviour, albeit not as good as device architec-

ture A. Especially the lower incline produces a higher series resistance Rshunt, compared

to device architecture A. Consequently, the fillfactor decreases, which combined with a

lower short circuit current ISC leads to a lower efficiency η. The higher series resistance

is due to the use of H-PEDOT:PSS as an electrode instead of ITO, since H-PEDOT:PSS

has about three times the resistivity of ITO.

The second ITO-free device architecture, D, shows nearly equal diode behaviour to

device architecture C. Sample D-2 is first measured without silver paste, then again

with silver paste. It is plausible to assume that it would have performed similar to

sample D-1 at the first time with silver paste. Even if it is assumed that sample D-2

would be equal to sample D − 1, the short circuit current ISC is the lowest, while the

series resistance Rseries the highest and the fillfactor FF rather low. Therefore, the

efficiency η of this device architecture D is lower than C.

For device architecture D, the high series resistance Rseries comes from the inclusion of

a second PEDOT:PSS layer that is not highly conductive. Also, the contact between

the PEDOT:PSS and the H-PEDOT:PSS layers on the one side, and the PEDPT:PSS

and P3HT:PCBM layers on the other side leads to a higher series resistance Rseries.

All in all, the best performing device architecture is A, while the best ITO-free is C.

Assuming sample D-2 would have performed similar to sample D-1, every solar cell

prepared on the basis of the same device architecture shows the same short circuit

current, open circuit voltage, fillfactor, resistances and efficiency within the variance of

37

Page 46: BSc Thesis Jochen Wolf

4 Towards ITO-free organic solar cells

the pixels. Therefore, the different device architectures have a reproducible effect on the

device performance.

To show the reproducibility of this result, another batch of six samples is prepared on

glass1. The order in which the samples are measured is A-3, B-3, C-3, D-3, A-4, and

then D-4. The results can be seen in the appendix, figures 5 and 6.

However, one pixel of device architecture B shows a very good diode behaviour, and a

shunt resistance Rshunt comparable to device architectureD. Consequently, the efficiency

increases, and even reaches 3.3 %. As mentioned before, the reason for the low shunt

resistance Rshunt is due to the post treatment process. The uneven surface of device

architecture B might be thick enough for this individual pixel, resulting in the highest

measured efficiency.

1two more samples based on device architectures A and D are prepared on PET. However, these showefficiencies below 0.15 %

38

Page 47: BSc Thesis Jochen Wolf

4.1 Different device architectures on glass

0.1 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7voltage (V)

12

10

8

6

4

2

0

2

curr

ent d

ensi

ty (m

A /

cm2)

1.0 0.5 0.0 0.5 1.0voltage (V)

50

0

50

100

150

curr

ent d

ensi

ty (m

A /

cm2)

Figure 4.6: Current-voltage graphs of four different device architectures detailed in chapter2.3 built on glass measured on a solar simulator. The samples A-1 (yellow), A-2(orange), B-1 (red), B-2 (brown), C-1 (purple), C-2 (blue), D-1 (green) and D-2(olive) are plotted from -1 V to 1 V (lower picture) and from -0.1 V to 0.7 V.

39

Page 48: BSc Thesis Jochen Wolf

4 Towards ITO-free organic solar cells

A-1

A-2 B-1

B-2 C-1

C-2 D-1

D-2

0.0

0.5

1.0

1.5

2.0

2.5

3.0

effic

ienc

y (%

)

A-1

A-2 B-1

B-2 C-1

C-2 D-1

D-2

0.0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

open

circ

uit v

olta

ge (V

)

A-1

A-2 B-1

B-2 C-1

C-2 D-1

D-2

10

9

8

7

6

5

4

shor

t circ

uit c

urre

nt (m

A /

cm2

)

A-1

A-2 B-1

B-2 C-1

C-2 D-1

D-2

20

30

40

50

60

fillfa

ctor

(%)

A-1

A-2 B-1

B-2 C-1

C-2 D-1

D-2

0.0

0.1

0.2

0.3

0.4

0.5

shun

t res

ista

nce

(kΩ·c

m2

)

A-1

A-2 B-1

B-2 C-1

C-2 D-1

D-2

0.00

0.05

0.10

0.15

0.20

seria

l res

ista

nce

(kΩ·c

m2

)

Figure 4.7: Characteristics of the four device architectures detailed in chapter 2.3 built onglass calculated from the data of the graphs of figure 4.6 with a self made program

40

Page 49: BSc Thesis Jochen Wolf

4.2 Different device structures on PET

4.2 Different device structures on PET

The same device architectures prepared on glass are now prepared on PET as well.

Despite five attempts to build device architectures A-D on PET, using both ITO-PET

foil and PET foil, none of the samples reached efficiencies higher than 0.15 %. This

chapter investigates the causes of the different performance of device architectures A-D

on PET and glass.

4.2.1 Prerequisites for annealing and cleaning of ITO-PET foils

For device architectures B-D, H-PEDOT:PSS is used. In order to increase the conduc-

tivity a post treatment step with EG is performed. To make sure the PET foil is not

damaged by the EG, the post treatment step is done with a pristine PET foil. It is

heated up to 140C for 20 minutes, bathed in EG for 6 minutes and then heated up

again for 20 minutes. The time for each of these steps is twice the length of normal post

treatment to make any ill effects visible. However, a visual inspection of the foil yields

no damage to the foils.

For the cleaning steps described in section 2.2.1, the foil needs to be resistent against

solvent. This is checked with the pristine ITO-PET foil, yielding two results. If the foil

is not thermally treated beforehand, it splits completely, even for an increased foil size of

4 cm squares. However, if the ITO-PET foil is first annealed for 1.5 hours, then cleaned,

there is only some splitting around the edges of the foil. This effect reaches about 2 mm

from the edge, which does not affect the rest of the production process.

4.2.2 Four point measurement

To measure the conductivity of the H-PEDOT:PSS layer, a four point measurement is

done. For this four point measurement, PEDOT:PSS is spin coated on top of glass and

PET, with 1500 rpm for 60 s. It is further treated with EG to produce H-PEDOT:PSS.

Contrary to the method of adding glycerine on a glass slide, 7.5 µl of H2O is used

here instead. The spin coating method is otherwise unaffected, since this amount of

distilled H2O holds the sample in place as well. The following annealing step, however,

is somewhat affected due to bending of the foils. The results of two batches can be

41

Page 50: BSc Thesis Jochen Wolf

4 Towards ITO-free organic solar cells

seen in figure 4.8. The resistivity can not be calculated, due to a lack of thickness

measurements. The used 4-point measurement setup is not calibrated, which is why

arbitrary units are chosen.

The sheet resistance of ITO on glass is measured in both batches and very reproducible,

as all 6 measurements have a spread of less than 3 %. Samples S-1 - S-3 are measured

in a first batch, S-4 - S-10 in a second. Assuming the same layer thickness, the samples

with the lowest sheet resistance have about 6 times the sheet resistance of ITO on glass,

as can be seen in figure 4.8.

According to Seok-In Na (2008, p. 4062), these values are reasonable for H-PEDOT:PSS

in comparison to ITO. Therefore, the post-treatment process is shown to work on PET

and H-PEDOT:PSS is produced with a conductivity of two to three orders of magnitude

higher than pristine PEDOT:PSS.

I T O S - 1 S - 2 S - 3 S - 4 S - 5 S - 6 S - 7 S - 8 S - 9 S - 1 01 , 0 61 , 0 8

6

8

1 0

1 2

1 4

1 6

1 8

shee

t resis

tance

[a.u.

]

s a m p l e

Figure 4.8: Sheet resistances of H-PEDOT:PSS spin coated on PET, labelled samples S-1 -S-10 and ITO on glass in arbitrary units

4.2.3 UV/Vis spectroscopy

Analogous to chapter 4.1.1, 10 samples are measured to reconstruct the transmittance T

and reflectance R, and therefore the absorption A, in all layers. The only difference is

42

Page 51: BSc Thesis Jochen Wolf

4.2 Different device structures on PET

the substrate, which is ITO-PET foil for device architectures A and B, and etched ITO-

PET foil for device architectures C and D. Figure 4.9 shows the calculated absorption

spectra A(λ). Figures 3 and 4 in the appendix show the measured reflectance R and

transmittance T .

3 0 0 4 0 0 5 0 0 6 0 0 7 0 0 8 0 00

2 0

4 0

6 0

8 0

1 0 0

abso

rption

[%]

w a v e l e n g t h [ n m ]C

olo

ur

De

vic

e a

rch

ite

ctu

re

Su

bstr

ate

Ele

ctr

ode

Ele

trco

n b

lockin

g la

yer

Ble

nd

PET

PET ITO

A PET ITO PEDOT:PSS

A PET ITO PEDOT:PSS P3HT:PCBM

B PET ITO H-PEDOT:PSS

B PET ITO H-PEDOT:PSS P3HT:PCBM

C PET H-PEDOT:PSS

C PET H-PEDOT:PSS P3HT:PCBM

D PET H-PEDOT:PSS PEDOT:PSS

D PET H-PEDOT:PSS PEDOT:PSS P3HT:PCBM

Figure 4.9: Absorption of different device structures on PET measured calculated via trans-mittance and reflectance using UV/Vis spectroscopy

In general, the samples using a PET substrate are performing similar to those on glass,

with some important differences.

On PET, device architecture D absorbs less for wavelengths λ = 620 . . . 800 nm with

blend than without blend, which is not the case on glass.

On glass, the highest absorbing device architecture without blend for wavelengths λ =

300 . . . 600 nm, A, is also the lowest absorbing one with blend. This trend also holds

for for the lowest absorbing one without blend, as it is the highest absorbing one with

blend. However, on PET, this trend is no longer visible.

For all PET samples, there is some amount of oscillation in the reflectance R and trans-

mittance T that steadily increases starting at about λ = 500 nm. This is be due to the

usage of a much thinner substrate. As mentioned in chapter 2.1, the glass substrates

have a thickness of d = 1.1 mm, while the ITO-PET substrate is only d = 45 µm thin.

For reflectance T , the light can be reflected on the surface of the substrate, and on the

first interface inside the substrate. The two beams interfere, creating the oscillation

pattern visible in 3.

43

Page 52: BSc Thesis Jochen Wolf

4 Towards ITO-free organic solar cells

Most importantly, the average absorption A is higher for samples built on PET than for

glass. This is due to both a decrease in transmittance T of about 10 % and an increase

in reflectance R of about 5 %. This is not due to a different transmittance T of the sub-

strates, because those are similar. The reflectance R, however, shows some differences -

the etched glass sample shows a high reflectivity for wavelengths λ = 260 . . . 350 nm.

The characteristic form of the curves of absorption of samples with blend on glass and

PET can be seen in figures 4.2 and 4.9. Both rates of absorption go up at a wavelength

of 640 nm, therefore the band gap of P3HT remains unchanged.

4 0 0 5 0 0 6 0 0 7 0 0 8 0 00

2 0

4 0

6 0

8 0

1 0 0

1 2 0

1 4 0

1 6 0

0

2 0

4 0

6 0

8 0

1 0 0

1 2 0

1 4 0

1 6 0

a b s o r p t i o n

t r a n s m i t t a n c e

tran

smitta

nce t

o blen

d lay

er [%

I 0]

abso

rption

of in

jected

light

in ble

nd [%

]

w a v e l e n g t h [ n m ]

Co

lour

De

vic

e a

rch

ite

ctu

re

Su

bstr

ate

Ele

ctr

ode

Ele

trco

n b

lockin

g la

yer

Ble

nd

A PET ITO PEDOT:PSS P3HT:PCBM

B PET ITO H-PEDOT:PSS P3HT:PCBM

C PET H-PEDOT:PSS P3HT:PCBM

D PET H-PEDOT:PSS PEDOT:PSS P3HT:PCBM

Figure 4.10: Ratio of absorption of injected light into blend and intensity of light arrivingin blend of different device structures on PET calculated via transmittance andreflectance using UV/Vis spectroscopy

4.2.4 Usage of different blend without annealing step

With the blend P3HT:PCBM, no solar cells of are produced on PET with a perfor-

mance comparable to glass. One reason might be the necessary last annealing step of

P3HT:PCBM, at which the foil could still bend despite of capillary force of glycerol

described in chapter 2.2.3.

Therefore, a different blend, poly([4,8-bis[(2-ethylhexyl)oxy]benzo[1,2-b:4,5-b’]dithiophene-

2,6-diyl][3-fluoro-2-[(2-ethylhexyl)carbonyl]thieno[3,4-b]thiophenediyl]) PTB7:PC70BM is

used that does not need annealing. Three samples are prepared on basis of device ar-

chitecture C. Two use etched ITO-PET foil as a substrate, and the third one PET foil.

44

Page 53: BSc Thesis Jochen Wolf

4.2 Different device structures on PET

All three samples show efficiencies below 0.1 %, despite other samples on glass working

in the same batch. Consequently, the last annealing step is either not the reason, or at

least not the only reason for the comparatively low efficiencies of device architectures

A-D on PET.

4.2.5 Scanning electron microscopy

For scanning electron microscopy (SEM), 3 samples are measured. The SEM images

of H-PEDOT:PSS (H-PEDOT:PSS) spin coated on etched ITO-PET foil are shown in

4.11a-c. For comparison, an image of H-PEDOT:PSS spin coated on glass is shown in

4.11b. The images of H-PEDOT:PSS in figures 4.11d and d are taken in about the same

magnification.

On glass, there is a homogeneous layer of H-PEDOT:PSS visible, while on the etched

ITO-PET foil there are some droplets apparent. These droplets also appear on other

magnifications, as shown in figure 4.11a and b. Therefore, there dewetting of the H-

PEDOT:PSS is taking place. However, the surface around the droplets appears mostly

intact though there are some holes visible.

Figures 4.11e and f show the edge of the same spin coated sample as shown in fig-

ures 4.11a, c and d. Due to the spin coating, the edge is sometimes not covered with

PEDOT:PSS. The H-PEDOT:PSS reaches to the right of figure 4.11e. The surface of

these etched ITO-PET foils shows an uneven topography with some spikes spread out.

Therefore, the H-PEDOT:PSS layer might be pierced in some places, which could lead to

short circuits between the H-PEDOT:PSS and the aluminium electrode. This might be

the reason of the low performance of device architectures C and D on etched ITO-PET

foil.

Comparing the uncovered, etched ITO-PET foil shown in figures 4.11e and f, and the

surface surrounding the droplets in figures 4.11a-c, they look contrasting. Therefore,

the surface surrounding the droplets is not the underlying etched ITO-PET foil, but

H-PEDOT:PSS that has not dewetted. Consequently, there is a mostly intact H-

PEDOT:PSS layer on top of device architectures C and D. Due to the formation of

the droplets, the H-PEDOT:PSS layer becomes thinner and more uneven.

45

Page 54: BSc Thesis Jochen Wolf

4 Towards ITO-free organic solar cells

Figures 4.12a-c show the surface of an ITO-PET foil. The ITO shows a pattern similar to

the Voronoi polygons. This pattern might be due to a crystalline growth of the ITO on

top of the under coating of the PET foil. If there is a significant mismatch in the lattice

constants of the under coating and the ITO, the result would be a columnar growth

mode. A small tilt between crystallites of the ITO could produce the pattern shown

in figures 4.12a and b. This tilt would then increase the surface roughness, therefore

influencing the spin coating.

Figure 4.12b shows a black spot of a diameter d = 3µm, which are also visible in figure

4.12c. Therefore, these spots are spread around the whole ITO-PET foil. In the top

right corner, figure 4.11f shows a spike with a diameter of d = 1µm. It might be that

those spikes are not due to etching, but due to the manufacturing process of this ITO-

PET foil. If this is the case, they could interfere with the growth of the ITO layer in

the dark spots of figure 4.12c.

46

Page 55: BSc Thesis Jochen Wolf

4.2 Different device structures on PET

(a) H-PEDOT:PSS spin coated on an etchedITO-PET foil under 5 000x magnification anda working distance of 1.5 mm

(b) H-PEDOT:PSS spin coated on an etchedITO-PET foil under 40 000x magnificationand a working distance of 1.5 mm

(c) H-PEDOT:PSS spin coated on an etchedITO-PET foil under 40 000x magnificationand a working distance of 1.5 mm

(d) H-PEDOT:PSS spin coated on glass under 44380x magnification and a working distance of1.0 mm

(e) Etched ITO-PET foil with some H-PEDOTon the right under 4 000x magnification anda working distance of 1.5 mm

(f) Etched ITO-PET foil under 10 000x magnifi-cation and a working distance of 1.9 mm

Figure 4.11: Scanning electron microscopy images of H-PEDOT:PSS and etched ITO-PETwith an acceleration voltage of 1.50 kV

47

Page 56: BSc Thesis Jochen Wolf

4 Towards ITO-free organic solar cells

(a) ITO-PET foil under 40 000x magnification, aworking distance of 3.6 mm and accelerationvoltage of 5.00 kV

(b) ITO-PET foil under 3 240x magnification, aworking distance of 3.6 mm and accelerationvoltage of 5.00 kV

(c) ITO-PET foil under 150x magnification, aworking distance of 3.6 mm and accelerationvoltage of 1.50 kV. The cuboids visible in thispicture are measuring artefacts due to previ-ous measurements.

(d) ITO on glass

Figure 4.12: Scanning electron microscopy images of ITO on glass (Cao Xia 2010, p. 1872)and ITO-PET foil

48

Page 57: BSc Thesis Jochen Wolf

5 Towards structured organic solar

cells

As can be seen in figures 2 and 4, 15 % to 25 % of the incoming light is not transmitted

through the substrate and PEDOT:PSS layer. To increase the transmittance, artificial

structuring can be used, as discussed in chapter 1.2. In order to realize structured

organic solar cells, a PDMS stamp based on a CD is used.

5.1 Structured devices on PET

The manufactured stamp is shown in figure 5.1a. The structure size of CDs is near

the optical wavelengths, therefore they refract light, making the individual wavelengths

visible. This can be seen in figure 5.1a, in which the stamp is bent both to show its

flexibility and to increase the visibility of the reflections. The PDMS stamp is used

to imprint its structure into glycerine doped PEDOT:PSS. Light microscopy at 100x

magnification is used to view the resulting structure, which can be seen in figure 5.1b.

For the imprinted PEDOT:PSS, the structure was not visible to the naked eye.

In order to measure the depth of these structures, AFM is used. The resulting topo-

graphical images can be seen in figure 5.2. The spots of locally highly increased height

might be due to dust. The image is recorded at an angle close to 45 in order to avoid

measuring artefacts. An average is taken over lines perpendicular to the structure. This

profile is shown in figures 5.2b and d, for figures to their respective left. Out of the

profiles, an average structure depth of (8 ± 1) nm is extracted.

Earlier works by Lang (2012) have shown that the average structure depth for an im-

printed CD structure can be up to (25.2 ± 1.9) (Lang 2012, p. 38). However, a glass

substrate was used in that work. The PET foil used in this work bends under pressure,

49

Page 58: BSc Thesis Jochen Wolf

5 Towards structured organic solar cells

(a) Light reflections of a stamp with a CD structuremade out of the polymer PDMS, modified byincreased contrast and decreased brightness

(b) Microscopy image of imprinted CD structureon glycerine doped PEDOT:PSS on PET un-der 100x magnification, modified by increasedcontrast

Figure 5.1

and although a polished metal surface is used, there might still be a substantial amount

of roughness due to dust for example. This would lead to a bending of the PET foil

and an uneven pressure distribution. The pressure might be too low in most places to

achieve the structure depth reported by Lang (2012, p. 38). A solution would be to clean

and blow dry the metal surface right before a sample is placed on it. Also, the overall

pressure could be increased to achieve a high structure depth in the whole sample.

50

Page 59: BSc Thesis Jochen Wolf

5.1 Structured devices on PET

(a) 4 µm topography (b) profile cut of 4 µm topography

(c) 10 µm topography (d) profile cut of 10 µm topography

Figure 5.2: AFM images of imprinted CD structure on glycerine doped PEDOT:PSS on PET,modified by subtracting a one and a two dimensional polynomial

51

Page 60: BSc Thesis Jochen Wolf
Page 61: BSc Thesis Jochen Wolf

6 Summary and outlook

In this thesis, organic solar cells based on the polymer P3HT are examined. Four different

device architectures are manufactured via spin coating to realize ITO-free organic solar

cells. As a replacement for ITO, highly conductive PEDOT:PSS is analysed. Two device

architectures use ITO, while two use H-PEDOT:PSS as an electrode.

They are analysed using current-voltage measurements and UV/Vis spectroscopy. ITO-

free organic solar cells are realized on glass with efficiencies of 1.75 % compared to

2.75 % with ITO. Device architecture A shows the best reproducible efficiency, while

device architecture C yields the highest efficiencies for ITO-free organic solar cells.

As a replacement for the widely used glass substrates, PET foil is chosen. Some problems

with the manufacturing process for the substrate PET are solved, but no solar cell is

produced of a performance comparable to the substrate glass. SEM reveals defects in

the used ITO-PET foil which could short circuit the solar cells.

A CD structure is transferred into a PEDOT:PSS layer on a PET foil using plasticizer

assisted soft embossing and then analysed using atomic force microscopy. The structure

depth of (8 ± 1) nm in glycerol doped is less than (25.2 ± 1.9) reported by Lang (2012,

p. 38), due to the use of a flexible PET substrate instead of rigid glass. By optimizing

the parameters of temperature, annealing time and pressure, the structure depth can be

increased.

Instead of using a CD as the artificial structure of choice, black silicon can be used,

which shows promising properties for structuring (J.S. Yoo 2006). It has already been

proven to work for glass substrates, as can be seen in figure 7 in the appendix (Heller

2013)

In order to improve the performance of device architectures B, C and D, the following

suggestion is made. Device architecture B suffers from a low shunt resistance Rshunt,

that might be due to a too thin H-PEDOT:PSS layer. Therefore, instead of spinning

53

Page 62: BSc Thesis Jochen Wolf

6 Summary and outlook

at 2000 rpm, 1500 rpm could be used. The increased layer thickness would lead to a

slightly decreased transmittance through the PEDOT:PSS layer, but it could increase

the shunt resistance Rshunt, which would contribute to a much higher efficiency of device

architecture B.

To further increase the performance of device architecture C, a thicker layer of H-

PEDOT:PSS can be used, but that would decrease the transmission to the blend layer.

Alternatively, a different post treatment method that achieves higher conductivities than

EG could be used.

As mentioned before, device architecture D has a high series resistance Rseries due to

the second PEDOT:PSS layer. The goal of this second PEDOT:PSS layer is to be able

to structure it, see chapters 2.3.2 and 5. The post treatment method used in this work

would destroy the structure, but a post-treatment method that preserves the structure

would increase the performance of device architecture D.

The UV/Vis spectrometer used in this work was not able to account for photolumines-

cence. To increase the accuracy of the results, the amount of photoluminescence can be

derived from using a filter that covers the detector. With proper calibration, the filter

does not interfere with the measurement. A comparison of the results with and without

the filter yields the amount of photoluminescence.

Another way of increasing the accuracy of the UV/Vis spectrometer is to measure re-

flectance and transmittance simultaneously in one measurement. To achieve this, the

sample is placed on a holder inside the integrating sphere of the UV/Vis spectrometer,

thus both the light of the reflectance and the transmittance is detected.

In order to circumvent the difficulties associated with the spin coating, etching, and

manufacturing defects, in the future a Flextrode provided by DTU Energy Conversion

will be used instead (DTU 24.07.2013). It consists of PEDOT:PSS on a PET foil,

available in different sheet thicknesses. It will also increase the comparability of research

based on PEDOT:PSS on PET, contributing to the goal of ITO-free, flexible organic

solar cells.

54

Page 63: BSc Thesis Jochen Wolf

List of Figures

1.1 Variations of the solar constant from 1874 to 2007 for an 81 day average

(red) and a daily average (yellow) (after A. D. Crouch & Paquin-Ricard

2008, p. 737) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 A comparison of the spectrum of a black body at 5250 K (grey), the

sunlight at the top of the atmosphere (yellow) and radiation at sea level

(red) together with the corresponding absorbing molecules (purple) (after

Rohde 2007) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.3 Annual ground solar irradiance for every land mass on earth averaged

over 1983 until 2005 in [ Wm2 ] (after Steiner 2008) . . . . . . . . . . . . . . 4

1.4 Best research-cell efficiencies of different types of solar cells (after NREL

10.07.2013b) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.5 Orbitals of ethene: a) individual atomic orbitals, b) one molecular orbital

and c) energy of bonding- and antibonding orbitals (Palumbiny 2011, p. 7) 6

1.6 Shockley-Queisser limit calculated using an AM 1.5 solar spectrum instead

of a black body spectrum (after Byrnes 2011) . . . . . . . . . . . . . . . 7

1.7 The basic process inside an organic solar cell exciton generation (a), trans-

port (b), dissociation (c) and charge carrier transport (d) (Meier 2012,

p. 6) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.8 Band structure of the polymers PEDOT:PSS and P3HT:PCBM, ITO

and aluminium. The top line of each column represents the HOMO, the

bottom line the LUMO. (after Seong Kyu Janga 2012, p. 427) . . . . . . 9

1.9 Bilayer junction (left), bulk heterojunction (middle) and interdigitated

junction (right) between the donor and acceptor material (after Palumbiny

2011, p. 21) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.10 Equivalent circuit model of organic solar cells with the shunt resistance

Rshunt, serial resistance RSerial, saturation current IS, photo current IPh

and ideality factor n (Palumbiny 2011, p. 37) . . . . . . . . . . . . . . . 10

55

Page 64: BSc Thesis Jochen Wolf

List of Figures

1.11 Structured organic solar cell. The incoming ray of light is diffracted

at the structured PEDOT:PSS-P3HT:PCBM interface, and consequently

trapped (after Lang 2012, p. 15) . . . . . . . . . . . . . . . . . . . . . . . 11

2.1 The six layers of the used ITO-PET substrates: ITO (white), under coat-

ing (orange), PET (blue), back coating (pink), adhesive (olive), and re-

lease liner (red). The total thickness is 120µm, the thickness from ITO

to adhesive 45µm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.2 Carbon (grey), hydrogen (black), sulfur (yellow) and oxygen (red) atoms

form the chemical structures of PEDOT (left) and PSS (right) which

forms PEDOT:PSS if solved in water. Hydrogen atoms bound to oxygen

(pink) is highly polar (after Meier 2012, p. 66) . . . . . . . . . . . . . . . 14

2.3 The chemical structures of P3HT (left) and PCBM (right) solved in CB

form P3HT:PCBM, the so-called blend. Coloring is analogous to figure

2.4. (after Meier 2012, p. 62 & 68) . . . . . . . . . . . . . . . . . . . . . 15

2.4 Schematic representation of the different device architectures A-D, which

are prepared with the help of tables 2.1 and 2.2. The substrate (blue),

ITO (white), PEDOT:PSS (light green), highly conductive PEDOT:PSS

(dark green), P3HT:PCBM (red) and aluminium (grey) are not to scale.

The change in apparent color of the P3HT:PCBM is due to the underlying

layer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

(a) Device architecture A . . . . . . . . . . . . . . . . . . . . . . . . . 21

(b) Device architecture B . . . . . . . . . . . . . . . . . . . . . . . . . 21

(c) Device architecture C . . . . . . . . . . . . . . . . . . . . . . . . . 21

(d) Device architecture D . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.1 Transmittance and reflectance measurements with a diffuse sample (red)

using an integrating sphere made out of Spectralon from labsphere . . . 25

(a) Transmittance measurement with a sample . . . . . . . . . . . . . . 25

(b) Reflectance measurement with a sample . . . . . . . . . . . . . . . 25

3.2 Four-point measurement of a sample (Akira Shimamoto & Ike 2012, after) 25

3.3 Visual representation of the air mass (AM) models AM 0, AM 1 and

AM 1.5 (Energy 10.07.2013) . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.4 Visual representation of the solar simulator setup used in this work (after

Meier 2012, p. 49) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

56

Page 65: BSc Thesis Jochen Wolf

List of Figures

3.5 Spectrum of a Solar Constant 1200 from K.H. Steuernagel Lichttech-

nik solar simulator (yellow) compared to the global radiation (black) in

arbitrary units (after Lang 2012) . . . . . . . . . . . . . . . . . . . . . . 29

4.1 Visual representation of the splitting intensities of an incoming beam

falling on a sample (light red). It can either be absorbed, reflected or

transmitted. If absorbed, it can also create photoluminescence and emit

light of a lower wavelength. (after Miguel A. Perez & Arias 2013) . . . . 31

4.2 Absorption of different device structures on glass calculated via transmit-

tance and reflectance using UV/Vis spectroscopy . . . . . . . . . . . . . 32

4.3 Refractive index n (λ) (solid line) and extinction coefficient k (λ) (cir-

cles) of P3HT:PCBM measured by spectrometric ellipsometry (after Flo-

rent Monestiera 2007) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.4 Ratio of absorption of injected light into blend and intensity of light ar-

riving in blend of different device structures on glass calculated via trans-

mittance and reflectance using UV/Vis spectroscopy . . . . . . . . . . . . 35

4.5 Images of a finished organic solar cell . . . . . . . . . . . . . . . . . . . . 36

(a) Camera picture of the solar cell with silver paste, modified by in-

creased brightness and contrast. As mentioned in chapter 2.2.1, the

cell measures 2.2 x 2.2 cm . . . . . . . . . . . . . . . . . . . . . . . 36

(b) Microscopy image under 1.25x magnification of a pixel of an organic

solar cell. The black dots on the yellow aluminium are blisters that

could come from the blend annealing step. . . . . . . . . . . . . . . 36

4.6 Current-voltage graphs of four different device architectures detailed in

chapter 2.3 built on glass measured on a solar simulator. The samples A-1

(yellow), A-2 (orange), B-1 (red), B-2 (brown), C-1 (purple), C-2 (blue),

D-1 (green) and D-2 (olive) are plotted from -1 V to 1 V (lower picture)

and from -0.1 V to 0.7 V. . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.7 Characteristics of the four device architectures detailed in chapter 2.3

built on glass calculated from the data of the graphs of figure 4.6 with a

self made program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.8 Sheet resistances of H-PEDOT:PSS spin coated on PET, labelled samples

S-1 - S-10 and ITO on glass in arbitrary units . . . . . . . . . . . . . . . 42

4.9 Absorption of different device structures on PET measured calculated via

transmittance and reflectance using UV/Vis spectroscopy . . . . . . . . . 43

57

Page 66: BSc Thesis Jochen Wolf

List of Figures

4.10 Ratio of absorption of injected light into blend and intensity of light ar-

riving in blend of different device structures on PET calculated via trans-

mittance and reflectance using UV/Vis spectroscopy . . . . . . . . . . . . 44

4.11 Scanning electron microscopy images of H-PEDOT:PSS and etched ITO-

PET with an acceleration voltage of 1.50 kV . . . . . . . . . . . . . . . . 47

(a) H-PEDOT:PSS spin coated on an etched ITO-PET foil under 5

000x magnification and a working distance of 1.5 mm . . . . . . . . 47

(b) H-PEDOT:PSS spin coated on an etched ITO-PET foil under 40

000x magnification and a working distance of 1.5 mm . . . . . . . . 47

(c) H-PEDOT:PSS spin coated on an etched ITO-PET foil under 40

000x magnification and a working distance of 1.5 mm . . . . . . . . 47

(d) H-PEDOT:PSS spin coated on glass under 44 380x magnification

and a working distance of 1.0 mm . . . . . . . . . . . . . . . . . . . 47

(e) Etched ITO-PET foil with some H-PEDOT on the right under 4

000x magnification and a working distance of 1.5 mm . . . . . . . . 47

(f) Etched ITO-PET foil under 10 000x magnification and a working

distance of 1.9 mm . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

4.12 Scanning electron microscopy images of ITO on glass (Cao Xia 2010,

p. 1872) and ITO-PET foil . . . . . . . . . . . . . . . . . . . . . . . . . . 48

(a) ITO-PET foil under 40 000x magnification, a working distance of

3.6 mm and acceleration voltage of 5.00 kV . . . . . . . . . . . . . 48

(b) ITO-PET foil under 3 240x magnification, a working distance of

3.6 mm and acceleration voltage of 5.00 kV . . . . . . . . . . . . . 48

(c) ITO-PET foil under 150x magnification, a working distance of 3.6 mm

and acceleration voltage of 1.50 kV. The cuboids visible in this pic-

ture are measuring artefacts due to previous measurements. . . . . 48

(d) ITO on glass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

5.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

(a) Light reflections of a stamp with a CD structure made out of the

polymer PDMS, modified by increased contrast and decreased bright-

ness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

(b) Microscopy image of imprinted CD structure on glycerine doped

PEDOT:PSS on PET under 100x magnification, modified by in-

creased contrast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

58

Page 67: BSc Thesis Jochen Wolf

List of Figures

5.2 AFM images of imprinted CD structure on glycerine doped PEDOT:PSS

on PET, modified by subtracting a one and a two dimensional polynomial 51

(a) 4 µm topography . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

(b) profile cut of 4 µm topography . . . . . . . . . . . . . . . . . . . . 51

(c) 10 µm topography . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

(d) profile cut of 10 µm topography . . . . . . . . . . . . . . . . . . . . 51

1 Reflectance of different device structures on glass measured using UV/Vis

spectroscopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

2 Transmittance of different device structures on glass using UV/Vis spec-

troscopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

3 Reflectance of different device structures on PET measured using UV/Vis

spectroscopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

4 Transmittance of different device structures on glass measured using UV/Vis

spectroscopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

5 Current-voltage graphs of four different device architectures detailed in

chapter 2.3 built on glass measured on a solar simulator. The samples

A-3 (yellow), A-4 (orange), B-3 (red), C-3 (brown), D-3 (purple), and D-4

(blue) are plotted from -1 V to 1 V (lower picture) and from -0.1 V to

0.7 V. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

6 Characteristics of the four device architectures detailed in chapter 2.3

built on glass calculated from the data of the graphs of figure 5 with a

self made program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

7 2D and 3D AFM images of black silicon (top), the corresponding structure

in a PDMS stamp (middle) and the imprint in glyerol doped PEDOT:PSS

(bottom) of 2 x 2 µm and 6 x 6 µm (Heller 2013, p. 108) . . . . . . . . . 76

59

Page 68: BSc Thesis Jochen Wolf
Page 69: BSc Thesis Jochen Wolf

List of Tables

2.1 The steps necessary for different device architectures, which are explained

in the text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.2 The steps necessary to contact device architectures A-D . . . . . . . . . 20

3.1 Microscopy scales at magnifications 1.25x - 100x measured with a high

precision grid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

61

Page 70: BSc Thesis Jochen Wolf
Page 71: BSc Thesis Jochen Wolf

Bibliography

A. D. Crouch, P. Charbonneau, G. B. & Paquin-Ricard, D. (2008), ‘A model for the total

solar irradiance based on active region decay’, The Astrophysical Journal 677, 723–

741.

URL: http:// dx .doi.org/10.1086/ 527433

Akira Shimamoto, Keitaro Yamashita, H. I. S.-m. Y. M. I. & Ike, N. (2012), ‘A nonde-

structive evaluation method: Measuring the fixed strength of spot-welded joint points

by surface electrical resistivity’, Journal of Pressure Vessel Technology 135, 7.

URL: http:// dx .doi.org/10.1115/ 1.4007957

Andre Moliton, J.-M. N. (2006), ‘How to model the bahaviour of organic photovoltaic

cells’, Polymer International 55, 583–600.

ASTM (2012), ‘Astm g173 - 03(2012)’.

URL: http:// www.astm.org/Standards/G173.htm

Byrnes, S. (2011), ‘Ideal bandgap and maximum efficiency’.

URL: http:// sj byrnes.com/sq.html

Cao Xia, Ning Wang, L. W. (2010), ‘Optical and electro-catalytic properties of bundled

zno nanowires grown on a ito substrate’, Journal of Nanoparticle Research 12, 1869–

1875.

URL: http:// dx .doi.org/10.1007/ s11051-009-9748-1

Carr, G. (2013), ‘Sunny uplands’, The Economist .

URL: http:// www.economist.com/ news/21566414-al ternative-energy-wi ll -no-lo

nger-be-al ternative-sunny-uplands

Carrington, D. (2000), ‘Date set for desert earth’.

URL: http:// news.bbc.co.uk/2/ hi/sci/tech/ specials/washington 2000/ 649913.

stm

63

Page 72: BSc Thesis Jochen Wolf

Bibliography

C.Y. Kwong, A.B. Djurisic, P. C. K. C. W. C. (2004), ‘Influence of solvent on film

morphology and device performance of poly(3-hexylthiophene):tio2 nanocomposite

solar cells’, Chemical Physics Letters 384, 372–375.

URL: http:// dx .doi.org/10.1016/ j.cplett.2003.12.045

D. Cheyns, B. P. Rand, B. V. J. G. J. P. e. a. (2008), ‘The angular response of ultrathin

film organic solar cells’, Applied Physics Letters 92, 243310.

URL: http:// dx .doi.org/10.1063/ 1.2949745

Dahlback, A. (2002), ‘Recent changes in surface ultraviolet solar radiation and strato-

spheric ozone at a high arctic site’, UV radiation and Arctic ecosystems 153, 3–22.

URL: http:// dx .doi.org/10.1007/ 978-3-642-56075-0 1

Demtroder, W. (2004), Experimentalphysik 4: Kern-, Teilchen- und Astrophysik,

Springer.

DTU (24.07.2013), ‘Flextrode - a new low-cost, environmentally sound semitransparent

electrode’.

URL: http:// www.plasticphotovoltaics.com/f lextrode.html

Energy, G. R. (10.07.2013), ‘Defining standard spectra for solar panels’.

URL: http:// www.greenrhinoenergy.com/solar/radiation/spectra.php

Florent Monestiera, Jean-Jacques Simona, P. T. L. E. F. F. S. B. R. d. B. S. G. C. D.

(2007), ‘Modeling the short-circuit current density of polymer solar cells based on

p3ht:pcbm blend’, Solar Energy Materials and Solar Cells 91, 405–410.

URL: http:// dx .doi.org/10.1016/ j.solmat.2006.10.019

Giebink, N. C., Wiederrecht, G. P., Wasielewski, M. R. & Forrest, S. R. (2010), ‘Ideal

diode equation for organic heterojunctions. i. derivation and application’, Physical

Review B 82, 155305–1 – 155305–12.

URL: http:// dx .doi.org/10.1103/ PhysRevB.82.155305

Greg Kopp, J. L. L. (2011), ‘A new, lower value of total solar irradiance: Evidence and

climate significance’, Geophysical Research Letters 38.

URL: http:// dx .doi.org/10.1029/ 2010GL045777

Heller, C. (2013), Kontrollierte morphologien durch molekulares design und nanostruk-

turierung fur die anwendung in der organischen photovoltaik, Master’s thesis, Tech-

nical Univeraity Munich.

64

Page 73: BSc Thesis Jochen Wolf

Bibliography

Hufnagel, B. (1997), ‘Biography of a star: Our sun’s birth, life, and death’.

URL: http:// www.astrosociety.org/edu/publications/ tnl/ 39/ 39.html

Jin Young Park, N. R. H. & Carter, K. R. (2011), ‘Solvent-assisted soft nanoim-

print lithography for structured bilayer heterojunction organic solar cells’, Langmuir

27, 11251–11258.

URL: http:// dx .doi.org/10.1021/ la201809g

Jonas Weickert, Haiyan Sun, C. P. H. C. H. L. S.-M. (2010), ‘Spray-deposited pedot:pss

for inverted organic solar cells’, Solar Energy Materials & Solar Cells 94, 2371–2374.

URL: http:// dx .doi.org/10.1016/ j.solmat.2010.08.018

Jorge Piris, Tieneke E. Dykstra, A. A. B. P. H. v. L. W. K. M. T. T. J. M. S. L. D. S.

(2009), ‘Photogeneration and ultrafast dynamics of excitons and charges in p3ht/pcbm

blends’, Journal of Physical Chemistry 113, 14500–14506.

URL: http:// dx .doi.org/10.1021/ jp904229q

J.S. Yoo, I.O. Parm, U. G. K. K. S. D. D. M. J. (2006), ‘Black silicon layer formation

for application in solar cells’, Sola 90, 3085–3093.

URL: http:// dx .doi.org/10.1016/ j.solmat.2006.06.015

L. Luuer, H.-J. Egelhaaf, D. O. G. C. G. L. B.-H. H. D. d. L. (2004), ‘Oxygen-induced

quenching of photoexcited states in polythiophene films’, Organic Electronics 5, 83–

89.

URL: http:// dx .doi.org/10.1016/ j.orgel.2003.12.005

labsphere (2008), ‘spectralon diffuse reflectance standards’.

URL: http:// www.labsphere.com/ uploads/ datasheets/dif fuse-reflectance-stan

dards-product-sheet.pdf

Lang, F. (2012), Structuring of active layers for organic solar cells: Film characterization

and device performance, Master’s thesis, Technical University Munich.

Leif A.A Pettersson, Soumyadeb Ghosh, O. I. (2002), ‘Optical anisotropy in thin

films of poly(3,4-ethylenedioxythiophene)-poly(4-styrenesulfonate)’, Organic Electron-

ics 3, 143–148.

URL: http:// dx .doi.org/10.1016/ S1566-1199( 02)00051-4

Meier, R. P. (2012), Novel Structuring Routines for Organic Photovoltaics, PhD thesis,

Technical University Munich.

65

Page 74: BSc Thesis Jochen Wolf

Bibliography

Miguel A. Perez, O. G. & Arias, J. R. (2013), ‘Optical fiber sensors for chemical and

biological measurements’, Intech .

URL: http:// dx .doi.org/10.5772/ 52741

Minh Trung Dang, Lionel Hirsch, G. W. (2011), ‘P3ht:pcbm, best seller in polymer

photovoltaic research’, Advanced Materials 23, 3597–3602.

URL: http:// dx .doi.org/10.1002/ adma.20110079

NASA (07.07.2013), ‘Sun: Facts & figures’.

URL: http:// solarsystem.nasa.gov/planets/profile.cf m?Object=Sun&Display

=F acts

NREL (10.07.2013b), ‘Reference solar spectral irradiance: Air mass 1.5’.

URL: http:// rredc.nrel .gov/solar/spectra/am1.5/ ASTM G173/ ASTM G173.ht

ml

NREL (2013a), ‘Best research-cell efficiencies’.

URL: http:// www.nrel .gov/ncpv/

Palumbiny, C. M. (2011), Controlled Meso- and Nanostructured Titanium Dioxide Tubes

for Solid-State Dye-Sensitised Solar Cells, PhD thesis, Technical University Munich.

Paul E. Shaw, Arvydas Ruseckas, I. D. W. S. (2008), ‘Exciton diffusion measurements

in poly(3-hexylthiophene)’, Advanced Materials 20, 3516–3520.

URL: http:// dx .doi.org/10.1002/ adma.200800982

Pierce, E. R. (2011), ‘Renewable energy: A centuries-old tradition’.

URL: http:// energy.gov/energysaver/articles/ renewable-energy-centuries-old-

tradition

Renee Kroon, Martijn Lenes, J. C. H. P. W. M. B. B. d. B. (2008), ‘Small bandgap

polymers for organic solar cells (polymer material development in the last 5 years)’,

Polymer Reviews 48, 531–582.

URL: http:// dx .doi.org/10.1080/ 15583720802231833

Rohde, R. A. (2007), ‘Solar radiation spectrum’.

URL: http:// www.globalwarmingart.com/wiki/ File:Solar Spectrum png

66

Page 75: BSc Thesis Jochen Wolf

Bibliography

Scanlon, B. (2012), ‘Award-winning pv cell pushes efficiency higher’.

URL: http:// www.nrel .gov/news/ features/f eature detai l.cf m/ feature id=

2055

Schwabe, H. (1843), ‘Solar observations during 1843’, Astronomische Nachrichten

20, 495.

URL: http:// istp.gsf c.nasa.gov/earthmag/ sunspots.htm

Seok-In Na, Seok-Soon Kim, J. J. D.-Y. K. (2008), ‘Efficient and flexible ito-free organic

solar cells using highly conductive polymer anodes’, Advanced Materials 20, 4061–

4067.

URL: http:// dx .doi.org/10.1002/ adma.200800338

Seong Kyu Janga, Su Cheol Gongb, H. J. C. (2012), ‘Effects of various solvent addition

on crystal and electrical properties of organic solar cells with p3ht:pcbm active layer’,

Synthetic Metals 162, 426–430.

URL: http:// dx .doi.org/10.1016/ j.synthmet.2012.01.008

Steiner, A. (2008), ‘Africa’s natural resources key to powering prosperity’, Environment

& Poverty Times No. 5 p. 20.

Streetman, Ben G., S. B. (2000), Solid State electronic Devices, 5th ed. edn, New Jersey:

Prentice Hall.

Swapp, S. (17.07.2013), ‘Scanning electron micsoscopy (sem)’.

URL: http:// serc.car leton.edu/ research education/geochemsheets/techniques/

SEM.html

Wanli Ma, Cuiying Yang, X. G. K. L. A. J. H. (2005), ‘Thermally stable, efficient poly-

mer solar cells with nanoscale control of the interpenetrating network morphology’,

Advanced Functional Materials 15, 1617–1622.

URL: http:// dx .doi.org/10.1002/ adfm.200500211

William Shockley, H. J. Q. (1961), ‘Detailed balance limit of efficiency of p-n junction

solar cells’, Journal of Applied Physics 32, 510.

URL: http:// dx .doi.org/10.1063/ 1.1736034

Yong Hyun Kim, Christoph Sachse, M. L. M. C. M. L. M.-M. K. L. (2011), ‘Highly

conductive pedot:pss electrode with optimized solvent and thermal post-treatment for

67

Page 76: BSc Thesis Jochen Wolf

Bibliography

ito-free organic solar cells’, Advanced Functional Materials 21, 1076–1081.

URL: http:// dx .doi.org/10.1002/ adfm.201002290

68

Page 77: BSc Thesis Jochen Wolf

Acknowledgements

I would like to express my very great appreciation to Prof. Dr. Muller-Buschbaum for

giving me the opportunity to work on this fascinating subject.

I am particularly grateful for the assistance given by Claudia Maria Palumbiny for the

guidance, encouragement and useful critique of this bachelor thesis.

I would like to offer my special thanks to Christoph Heller, who provided me with

valuable guidance and fruitful discussions, especially in the absence of Claudia Maria

Palumbiny.

I would like to thank Christian Jendrzejewski for the benetifial collaboration and general

support.

I would also like to thank Christoph Schaffer whose program is the basis of IVPlotsys,

and Dieter Muller for his technical assistance.

Advice given by Johannes Schlipf and Daniel Mosequi was greatly appreciated.

To all members of the E13 Group, who have provided a wonderful working atmosphere,

I extend my sincere thanks.

I would also like to acknowledge the support by my family during the last weeks of my

bachelor thesis.

Proofreading provided by Hannes Wolf and Christopher Panteli was of big help to me

and is greatly appreciated.

Lastly, I would like to express my special thanks to Anna Moosbauer for providing

invaluable feedback and support.

69

Page 78: BSc Thesis Jochen Wolf
Page 79: BSc Thesis Jochen Wolf

Appendix

1 Images

1.1 UV/Vis spectroscopy plots of reflectance and transmittance on

glass and PET

3 0 0 4 0 0 5 0 0 6 0 0 7 0 0 8 0 0

1 0

2 0

3 0

reflec

tance

[%]

w a v e l e n g t h [ n m ]

Co

lour

De

vic

e a

rch

ite

ctu

re

Su

bstr

ate

Ele

ctr

ode

Ele

trco

n b

lockin

g la

yer

Ble

nd

Glass

Glass ITO

A Glass ITO PEDOT:PSS

A Glass ITO PEDOT:PSS P3HT:PCBM

B Glass ITO H-PEDOT:PSS

B Glass ITO H-PEDOT:PSS P3HT:PCBM

C Glass H-PEDOT:PSS

C Glass H-PEDOT:PSS P3HT:PCBM

D Glass H-PEDOT:PSS PEDOT:PSS

D Glass H-PEDOT:PSS PEDOT:PSS P3HT:PCBM

Figure 1: Reflectance of different device structures on glass measured using UV/Vis spec-troscopy

71

Page 80: BSc Thesis Jochen Wolf

Appendix

3 0 0 4 0 0 5 0 0 6 0 0 7 0 0 8 0 0

0

2 0

4 0

6 0

8 0

1 0 0

tra

nsmi

ttanc

e [%]

w a v e l e n g t h [ n m ]

G l a s s G l a s s + I T O G l a s s + I T O + P E D O T G l a s s + I T O + P E D O T + B l e n d G l a s s + I T O + H - P E D O T G l a s s + I T O + H - P E D O T + B l e n d G l a s s + H - P E D O T G l a s s + H - P E D O T + B l e n d G l a s s + H - P E D O T + P E D O T G l a s s + H - P E D O T + P E D O T + B l e n d

Co

lour

De

vic

e a

rch

ite

ctu

re

Su

bstr

ate

Ele

ctr

ode

Ele

trco

n b

lockin

g la

yer

Ble

nd

Glass

Glass ITO

A Glass ITO PEDOT:PSS

A Glass ITO PEDOT:PSS P3HT:PCBM

B Glass ITO H-PEDOT:PSS

B Glass ITO H-PEDOT:PSS P3HT:PCBM

C Glass H-PEDOT:PSS

C Glass H-PEDOT:PSS P3HT:PCBM

D Glass H-PEDOT:PSS PEDOT:PSS

D Glass H-PEDOT:PSS PEDOT:PSS P3HT:PCBM

Figure 2: Transmittance of different device structures on glass using UV/Vis spectroscopy

3 0 0 4 0 0 5 0 0 6 0 0 7 0 0 8 0 00

5

1 0

1 5

2 0

2 5

reflec

tance

[%]

w a v e l e n g t h [ n m ]

Co

lour

De

vic

e a

rch

ite

ctu

re

Su

bstr

ate

Ele

ctr

ode

Ele

trco

n b

lockin

g la

yer

Ble

nd

PET

PET ITO

A PET ITO PEDOT:PSS

A PET ITO PEDOT:PSS P3HT:PCBM

B PET ITO H-PEDOT:PSS

B PET ITO H-PEDOT:PSS P3HT:PCBM

C PET H-PEDOT:PSS

C PET H-PEDOT:PSS P3HT:PCBM

D PET H-PEDOT:PSS PEDOT:PSS

D PET H-PEDOT:PSS PEDOT:PSS P3HT:PCBM

Figure 3: Reflectance of different device structures on PET measured using UV/Vis spec-troscopy

72

Page 81: BSc Thesis Jochen Wolf

1 Images

3 0 0 4 0 0 5 0 0 6 0 0 7 0 0 8 0 0

0

2 0

4 0

6 0

8 0

1 0 0

trans

mitta

nce [

%]

w a v e l e n g t h [ n m ]

Co

lour

De

vic

e a

rch

ite

ctu

re

Su

bstr

ate

Ele

ctr

ode

Ele

trco

n b

lockin

g la

yer

Ble

nd

PET

PET ITO

A PET ITO PEDOT:PSS

A PET ITO PEDOT:PSS P3HT:PCBM

B PET ITO H-PEDOT:PSS

B PET ITO H-PEDOT:PSS P3HT:PCBM

C PET H-PEDOT:PSS

C PET H-PEDOT:PSS P3HT:PCBM

D PET H-PEDOT:PSS PEDOT:PSS

D PET H-PEDOT:PSS PEDOT:PSS P3HT:PCBM

Figure 4: Transmittance of different device structures on glass measured using UV/Vis spec-troscopy

73

Page 82: BSc Thesis Jochen Wolf

Appendix

1.2 Current voltage measurements

0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7voltage (V)

12

10

8

6

4

2

0

2

curr

ent d

ensi

ty (m

A /

cm2)

1.0 0.5 0.0 0.5 1.0voltage (V)

50

0

50

100

150

curr

ent d

ensi

ty (m

A /

cm2)

Figure 5: Current-voltage graphs of four different device architectures detailed in chapter 2.3built on glass measured on a solar simulator. The samples A-3 (yellow), A-4 (orange),B-3 (red), C-3 (brown), D-3 (purple), and D-4 (blue) are plotted from -1 V to 1 V(lower picture) and from -0.1 V to 0.7 V.

74

Page 83: BSc Thesis Jochen Wolf

1 Images

A-3 A-4 B-3

C-3

D-3

D-4

0.0

0.5

1.0

1.5

2.0

2.5

3.0

3.5

effic

ienc

y (%

)

A-3 A-4 B-3

C-3

D-3

D-4

0.1

0.2

0.3

0.4

0.5

0.6

open

circ

uit v

olta

ge (V

)

A-3 A-4 B-3

C-3

D-3

D-4

11

10

9

8

7

6

5

4

shor

t circ

uit c

urre

nt (m

A /

cm2

)

A-3 A-4 B-3

C-3

D-3

D-4

20

30

40

50

60

fillfa

ctor

(%)

A-3 A-4 B-3

C-3

D-3

D-4

0.0

0.1

0.2

0.3

0.4

0.5

0.6

shun

t res

ista

nce

(kΩ·c

m2

)

A-3 A-4 B-3

C-3

D-3

D-4

0.01

0.02

0.03

0.04

0.05

0.06

0.07

seria

l res

ista

nce

(kΩ·c

m2

)

Figure 6: Characteristics of the four device architectures detailed in chapter 2.3 built on glasscalculated from the data of the graphs of figure 5 with a self made program

75

Page 84: BSc Thesis Jochen Wolf

Appendix

1.3 Black silicon structuring

Figure 7: 2D and 3D AFM images of black silicon (top), the corresponding structure in aPDMS stamp (middle) and the imprint in glyerol doped PEDOT:PSS (bottom) of2 x 2 µm and 6 x 6 µm (Heller 2013, p. 108)

76

Page 85: BSc Thesis Jochen Wolf

2 Current-voltage evaluation program

2 Current-voltage evaluation program

2.1 Readme file

This readme file is a user manual for IVPlotsys v1.0.2.

#############

### Index ###

#############

- Changelog

- Description

- Features

- System Requirements/Installation

- File Preparation

- Operation

- Troubleshooting

- Known Bugs

- Acknowledgements

- Developer Information

#####################

##### Changelog #####

#####################

Version 1.0.2

- NEW FEATURE: not evaluatable cells now plotted in pink

- NEW FEATURE: any voltages and stepsizes can now be plotted, e.g. -2V

to 3V, measured every 0.03V

- Fixed a bug introduced in the last version that caused the now rarer

not evaluatable cells to crash the program

77

Page 86: BSc Thesis Jochen Wolf

Appendix

- Fixed the bug that you had to click on the address bar

Version 1.0.1

- Fixed a bug that caused a lot of cells not to plot (Data invertion

problem)

- Fixed a bug that caused the filename to be read out wrong, and in

turn the cell not to plot

#######################

##### Description #####

#######################

The program takes the I-V files and produces good-looking plots,

including ISC, VOC, efficiency, fillfactor, shunt- and serial resistance

.

Those plots can optionally be saved as a two-page .pdf plus .txt or as .

pdf, .tiff, .png, .txt and .eps files.

####################

##### Features #####

####################

- Automatic sorting out of ’dead’ pixels

- Automatic file naming

- Automatic distinction between the plots of pixels of a single cell and

of multiple cells

- Improved visuals of the plots

- Optional labeling of the pixels and/or cells including no labels

- Option to save as a two-page-summary .pdf and a summary .txt, or .tiff

, .png, .pdf, .txt and .eps or no save

78

Page 87: BSc Thesis Jochen Wolf

2 Current-voltage evaluation program

- No installation of Python required (Windows only)

- More straight-forward User Interface

############################################

##### System Requirements/Installation #####

############################################

WINDOWS:

Since this is a .exe program, Windows is required - everything else is

included, so you dont have to install anything else. Just unpack it

anywhere you want.

If you want to use the uncompiled python version, install Python 2.7,

including all the modules required. I recommend Python(x,y), http://code

.google.com/p/pythonxy/wiki/Downloads.

LINUX:

To run it under Linux, you have to install Python 2.7, including all the

modules required. I recommend Python(x,y), http://code.google.com/p/

pythonxy-linux/, but I have not tested the linux version yet, so no

guarantees there.

############################

##### File Preparation #####

############################

The program uses the file names for naming and sorting purposes.

Therefore the files need to be named using the following system:

- I-V-Data files:

The filename starts with your own prefix, followed by a _, e.g.

Pi11a_

Then the first two numbers are the number of the cell, starting

79

Page 88: BSc Thesis Jochen Wolf

Appendix

at 01 through 90

The next number is the number of the pixel, starting at 1 through

9

Any text after these three digits is optional

The ending must be .dat

Example: Pi11c_034_l_0017.dat = Third cell, 4th pixel

- Area files:

Measure the sizes of the pixels in cm^2 ,e.g. with ImageJ and

save them this way:

Use filenames "xx_areas.txt", xx being the cellnumber from above,

e.g.

"03_areas.txt" for the above example

The content must be a table, e.g.:

Area

1 0.121

2 0.118

3 0.120

The first number is the pixelnumber of the cell, therefore in

ImageJ measure them

in order and save the xx_areas.txt after every cell.

Place the xx_areas.txt in the same directory as the I-V-Data

files.

- OPTIONAL: Names

If these .txt are not found (or not all names are defined in the

.txt), automatic names will be generated

- Cell Names:

Create a cell_names.txt in the folder of the data files

The content should be as follows:

Names Cellnumber

SampleA 01

SampleC 03

Any names that are not found will be displayed as the

cellnumber

80

Page 89: BSc Thesis Jochen Wolf

2 Current-voltage evaluation program

- Pixel Names:

Analogous to the cell names, create a pixel_names.txt

Content should be:

Names Pixelnumber

Pixel1 011

Pixel4 014

To get you started, I have included my own measurements of 8 Cells with

4 pixels each. These can be found in the folder named "Starting Graphs".

To make them interesting, some of them will not work.Pixels will not

work.

#####################

##### Operation #####

#####################

In order to start the compiled version:

Open the folder "IVPlotsys 1.0.0 compiled", open "IVPlotsys.exe"

In order to start the uncompiled version:

Open the folder "IVPlotsys 1.0.0 uncompiled", open "IVPlotsys.pyw"

A window titled "IValuator" should pop up. Click "Set working directory"

and open the folder that contains your I-V-measurements. Click "Browse"

and select all the files you want to plot, files that do not work get

sorted out automatically. Click once on the folder path in the top left

corner, then on "Auto Draw". Two windows should pop up with the graphs

of the data.

######################

##### Known Bugs #####

81

Page 90: BSc Thesis Jochen Wolf

Appendix

######################

- after adding files through the "Browse" button, the working directory

path (the text line) has to be clicked, otherwise the program will

not plot

- Remember, this is a beta version. Problems are to be expected.

###########################

##### Troubleshooting #####

###########################

Compiled Version:

- When you encounter a bug, please send me the log file, which is

located at "IValuator_v2.0.0_beta\IValuator.exe.log, together with a

short description of what you tried to do.

Uncompiled Version:

- When you encounter a bug, start the program again by right clicking

on it and selecting "Run in interactive mode". Try to recreate the

error, then select the error message with a left click and copy it with

a right click. Then please send it to me, so I can try to fix it.

If you could figure out the error by yourself, please take the time to

update the version, see Developer Information.

############################

##### Acknowledgements #####

############################

This program is based on an earlier version by Christopher Schaffer and

inspired by the ideas of Claudia Palumbiny. Thanks also to Anna

Moosbauer for some valuable input during testing and editing.

82

Page 91: BSc Thesis Jochen Wolf

2 Current-voltage evaluation program

#################################

##### Developer Information #####

#################################

In order to make a new version of this program, please follow these

instructions:

Download and install Python (x,y), which is based on Python 2.7 and has

all the modules required to make a new version. Download it here:

http://code.google.com/p/pythonxy/wiki/Downloads

I used Windows 7&8 to do the rest of the steps, I dont know if it will

work with other operation systems.

The program structure:

The graphical user interface was created with PyQT4, which is included

in Python (x,y). After compiling the PyQT4 ".ui" file, the ".py" file

contains the information how the window is supposed to look like and

which button calls which function.

The IValuator.pyw contains the instructions on what the program is

supposed to do when a button is pressed. To create a new button, follow

these steps:

- open the .ui file

- create the button, give it a memorable internal name

- compile the .ui file by rightclicking on an empty space within the

folder containing the .ui file

- "open enhanced console here"

- enter the following: pyuic4 -xo 1.py 1.ui

- 1.py and 1.ui are the filenames you want to create/compile

- Now the user interface is updated, in order to bind it to a function,

open the main .py file, and paraphrase the existing button binds, then

define the function in the script

How to create the .exe:

83

Page 92: BSc Thesis Jochen Wolf

Appendix

Start the cmd.bat, it starts the setup.py that contains all the

instructions to use the python module py2exe. This worked for me on

Windows 7&8. Note that i sometimes needed two or three tries to compile

it as there was an occasional access denied error, the reason for which

I have not tracked down yet. Also note that I included everything that

seemed remotely relevant to the program, so by optimizing the code in

the cmd.bat, you could make the compiled program smaller. Lastly, the

arial.ttf file has to be copied to the dist folder manually. The program

should be able to run now.

In any case, when you change the program, please give it a new version

number and update the interface version number accordingly, then upload

your version to the network in a new folder.

2.2 Source Code

1 # -*- coding: latin1 -*-

2 #!/bin/env python2.7

3 # This is version 1.0.2

4 # Have fun making cool plots,

5 # Jochen

6 # This program is based on Chris’ program

7 import sys

8 from PyQt4 import *

9 from IVPlotsys_window import * #DIALOG_IVALUATOR

10

11 from numpy import array,zeros, log10, pi, sin, arctan,arcsin, tan,

meshgrid, abs, sqrt, genfromtxt, where,arange,linspace

12 #from pylab import plt,savefig

13 from pylab import savefig

14 from pylab import plt

15 #import pylab

16 from scipy import polyfit

17 import os

18 import datetime

84

Page 93: BSc Thesis Jochen Wolf

2 Current-voltage evaluation program

19 import re

20 from matplotlib.ticker import MultipleLocator, FormatStrFormatter

21 from matplotlib.backends.backend_pdf import PdfPages

22 from matplotlib import font_manager

23

24

25 class my_DIALOG_IValuator(QtGui.QDialog):

26 def __init__( showstringspacesself, parent = None):

27 QtGui.QWidget.__init__( showstringspacesself, parent)

28 showstringspacesself.path=’.’

29 showstringspacesself.path_out= showstringspacesself.path

30 showstringspacesself.ui=Ui_DIALOG_IVALUATOR()

31 showstringspacesself.ui.setupUi( showstringspacesself)

32 plt.ion()

33 showstringspacesself.FMT=’%a %b %d %H:%M:%S %Y’

34 QtCore.QObject.connect( showstringspacesself.ui.

button_BROWSE_INPUT, QtCore.SIGNAL(’clicked()’),

showstringspacesself.get_inputfile)

35 QtCore.QObject.connect( showstringspacesself.ui.

button_RESET_INPUT, QtCore.SIGNAL(’clicked()’),

showstringspacesself.clear_input)

36 QtCore.QObject.connect( showstringspacesself.ui.

button_REMOVE_ITEM, QtCore.SIGNAL(’clicked()’),

showstringspacesself.remove_item)

37 QtCore.QObject.connect( showstringspacesself.ui.button_BROWSE_CWD

, QtCore.SIGNAL(’clicked()’),

showstringspacesself.get_cwd)

38 QtCore.QObject.connect( showstringspacesself.ui.line_CWD, QtCore.

SIGNAL(’editingFinished()’),

showstringspacesself.set_cwd)

39 #QtCore.QObject.connect(self.ui.button_X_LABEL, QtCore.SIGNAL(’

clicked()’), self.no_x_label)

40 #QtCore.QObject.connect(self.ui.button_DRAW_SINGLE, QtCore.

SIGNAL(’clicked()’), self.draw_single)

41 QtCore.QObject.connect( showstringspacesself.ui.button_DRAW_MULTI

85

Page 94: BSc Thesis Jochen Wolf

Appendix

, QtCore.SIGNAL(’clicked()’),

showstringspacesself.draw_multi)

42 QtCore.QObject.connect( showstringspacesself.ui.

button_SAVE_PDF_SINGLE, QtCore.SIGNAL(’clicked()’),

showstringspacesself.save_pdf_single)

43 QtCore.QObject.connect( showstringspacesself.ui.

button_SAVE_PDF_MULTI, QtCore.SIGNAL(’clicked()’),

showstringspacesself.save_pdf_multi)

44 #QtCore.QObject.connect(self.ui.button_LOAD_SETTINGS, QtCore.

SIGNAL(’clicked()’), self.load_settings)

45 #QtCore.QObject.connect(self.ui.button_SAVE_SETTINGS, QtCore.

SIGNAL(’clicked()’), self.save_settings)

46

47 def set_parameters( showstringspacesself):

48 pass

49

50

51 def draw_single( showstringspacesself):

52 #This function is now obsolete and taken over by the draw_multi

button

53 pass

54

55 def save_pdf_multi( showstringspacesself):

56 # Calls the main drawing function, then saves png, pdf of each

page plus the summary.txt

57 showstringspacesself.draw_multi()

58 temp= showstringspacesself.completefilename

59 if showstringspacesself.number_of_cells==1:

60 showstringspacesself.completefilename="Single-"+

showstringspacesself.completefilename

61 if showstringspacesself.number_of_cells is not 1:

62 showstringspacesself.completefilename="Multi-"+

showstringspacesself.completefilename

63 #temp=self.auto_completefilename+"-page_2"+".tiff"

64 #self.fig2.savefig(self.auto_completefilename+"-page_2"+".tif",

86

Page 95: BSc Thesis Jochen Wolf

2 Current-voltage evaluation program

dpi=150)

65 showstringspacesself.fig2.savefig( showstringspacesself.

auto_completefilename+"-page_2"+".png", dpi=300)

66 #self.fig2.savefig(self.auto_completefilename+"-page_2"+".eps")

67 showstringspacesself.fig2.savefig(

showstringspacesself.auto_completefilename+"-page_2"+".pdf")

68 #self.fig.savefig(self.auto_completefilename+"-page_1"+".tiff",

dpi=150)

69 showstringspacesself.fig.savefig( showstringspacesself.

auto_completefilename+"-page_1"+".png", dpi=300)

70 #self.fig.savefig(self.auto_completefilename+"-page_1"+".eps")

71 showstringspacesself.fig.savefig(

showstringspacesself.auto_completefilename+"-page_1"+".pdf")

72 showstringspacesself.completefilename=temp

73

74 ################################

75 ### Saving Individual Values ###

76 ################################

77

78 #if self.number_of_cells==1:

79 # summary_txt=open("Single-"+self.completefilename+".txt","w")

80 #if self.number_of_cells is not 1:

81 summary_txt=open(

showstringspacesself.auto_completefilename+".txt","w")

82 name_counter=-1

83 summary_txt.write("Cell\tPixel\tISC\tVOC\tFF\tEff.\tR_Shunt\

tR_Serial\n")

84 for i in xrange(len(

showstringspacesself.ordered_list_of_files)): # i is cellnumber

85 if len(

showstringspacesself.ordered_list_of_files[i]) is not 0:

86 name_counter+=1

87 name=str(i)

88 if i < 10:

89 name="0"+name

87

Page 96: BSc Thesis Jochen Wolf

Appendix

90 summary_txt.write("\n")

91 summary_txt.write(name+"\tAvg.:\t")

92 summary_txt.write(str(

showstringspacesself.average_ISC[i].round(2))+"\t")

93 summary_txt.write(str(

showstringspacesself.average_VOC[i].round(3))+"\t")

94 summary_txt.write(str(

showstringspacesself.average_FF[i].round(2))+"\t")

95 summary_txt.write(str(

showstringspacesself.average_PCE[i].round(3))+"\t")

96 summary_txt.write(str(

showstringspacesself.average_RSHUNT[i].round(3))+"\t")

97 summary_txt.write(str(

showstringspacesself.average_RSERIAL[i].round(3))+"\t\n")

98 for j in xrange(len( showstringspacesself.

ordered_list_of_files[i])): # j is pixelnumber

99 summary_txt.write("\t"+str(

showstringspacesself.pixel_names[i][j])+"\t")

100 summary_txt.write(str(

showstringspacesself.ISC_list[i][j].round(2))+"\t")

101 summary_txt.write(str(

showstringspacesself.VOC_list[i][j].round(3))+"\t")

102 summary_txt.write(str(

showstringspacesself.FF_list[i][j].round(2))+"\t")

103 summary_txt.write(str(

showstringspacesself.PCE_list[i][j].round(3))+"\t")

104 summary_txt.write(str(

showstringspacesself.RSHUNT_list[i][j].round(3))+"\t")

105 summary_txt.write(str( showstringspacesself.

RSERIAL_list[i][j].round(3))+"\t\n")

106 summary_txt.close()

107

108

109

110 def save_pdf_single( showstringspacesself):

88

Page 97: BSc Thesis Jochen Wolf

2 Current-voltage evaluation program

111 # Calls the main drawing function, then saves a summary pdf and

txt

112 #This is for drawing multiple pixels from a single or multiple

solar cells, it adapts

113 showstringspacesself.draw_multi()

114

115 if showstringspacesself.number_of_cells==1:

116 pdf_file=PdfPages(

showstringspacesself.auto_completefilename+".pdf")

117 if showstringspacesself.number_of_cells is not 1:

118 pdf_file=PdfPages(

showstringspacesself.auto_completefilename+".pdf")

119

120 showstringspacesself.fig

121 pdf_file.savefig( showstringspacesself.fig)

122 showstringspacesself.fig2

123 pdf_file.savefig( showstringspacesself.fig2)

124 pdf_file.close()

125

126 ################################

127 ### Saving Individual Values ###

128 ################################

129

130 if showstringspacesself.number_of_cells==1:

131 summary_txt=open(

showstringspacesself.auto_completefilename+".txt","w")

132 if showstringspacesself.number_of_cells is not 1:

133 summary_txt=open(

showstringspacesself.auto_completefilename+".txt","w")

134 name_counter=-1

135 summary_txt.write("Cell\tPixel\tISC\tVOC\tFF\tEff.\tR_Shunt\

tR_Serial\n")

136 for i in xrange(len(

showstringspacesself.ordered_list_of_files)): # i is cellnumber

137 if len(

89

Page 98: BSc Thesis Jochen Wolf

Appendix

showstringspacesself.ordered_list_of_files[i]) is not 0:

138 name_counter+=1

139 name=str(i)

140 if i < 10:

141 name="0"+name

142 summary_txt.write("\n")

143 summary_txt.write(name+"\tAvg.:\t")

144 summary_txt.write(str(

showstringspacesself.average_ISC[i].round(2))+"\t")

145 summary_txt.write(str(

showstringspacesself.average_VOC[i].round(3))+"\t")

146 summary_txt.write(str(

showstringspacesself.average_FF[i].round(2))+"\t")

147 summary_txt.write(str(

showstringspacesself.average_PCE[i].round(3))+"\t")

148 summary_txt.write(str(

showstringspacesself.average_RSHUNT[i].round(3))+"\t")

149 summary_txt.write(str(

showstringspacesself.average_RSERIAL[i].round(3))+"\t\n")

150 for j in xrange(len( showstringspacesself.

ordered_list_of_files[i])): # j is pixelnumber

151 summary_txt.write("\t"+str(

showstringspacesself.pixel_names[i][j])+"\t")

152 summary_txt.write(str(

showstringspacesself.ISC_list[i][j].round(2))+"\t")

153 summary_txt.write(str(

showstringspacesself.VOC_list[i][j].round(3))+"\t")

154 summary_txt.write(str(

showstringspacesself.FF_list[i][j].round(2))+"\t")

155 summary_txt.write(str(

showstringspacesself.PCE_list[i][j].round(3))+"\t")

156 summary_txt.write(str(

showstringspacesself.RSHUNT_list[i][j].round(3))+"\t")

157 summary_txt.write(str( showstringspacesself.

RSERIAL_list[i][j].round(3))+"\t\n")

90

Page 99: BSc Thesis Jochen Wolf

2 Current-voltage evaluation program

158 summary_txt.close()

159

160 def draw_multi( showstringspacesself):

161 # Now the main drawing function

162 #This is for drawing multiple pixels from a single or multiple

solar cells, it adapts

163 ### GENERATING AN ORDERED LIST OF FILES ###

164 ordered_list_of_files=[]

165 list_of_dead_pixels=[]

166 pixel_names=[]

167 for i in xrange(100):

168 ordered_list_of_files.append([])

169 list_of_dead_pixels.append([])

170 pixel_names.append([])

171 num_of_files= showstringspacesself.ui.list_INPUT.count()

172 list_of_files_unchecked=[]

173

174

175 for j in range(num_of_files):

176 showstringspacesself.ui.list_INPUT.setCurrentRow(j)

177 cur= showstringspacesself.ui.list_INPUT.currentItem()

178 cur=str(cur.text())

179 list_of_files_unchecked.append(cur) #list_of_files created

180 for cur in list_of_files_unchecked:

181 filepath=cur

182 cur=os.path.split(cur)[1] # 011_l_0003.dat

183 pixel_number=int(re.findall("\d\d\d",re.findall("_\d\d\d",cur

)[0])[0])-10*int((re.findall("\d\d",re.findall("_\d\d",cur)

[0])[0]))

184 cur=(re.findall("\d\d",(re.findall("_\d\d",cur)[0]))) #

[01,...]

185 cell_number=int(cur[0]) # 1

186 print "NEW cellnumber in process is ", cell_number

187 pixel_names[cell_number].append(pixel_number)

188 ordered_list_of_files[cell_number].append(filepath)

91

Page 100: BSc Thesis Jochen Wolf

Appendix

189 print ordered_list_of_files

190

191 # Structure of ordered list: list[0] gives a cell, list[0][0]

gives filename of pixel of that cell

192

193

194

195 #########################################

196 ### small (-0.2V to 0.8V) graph first ###

197 #########################################

198 ##############################################

199 ### SETTING VISUAL OPTIONS for small graph ###

200 ##############################################

201 fig=plt.figure(figsize=(6.7,66))

202 ax1=fig.add_subplot(2,1,1)

203 try:

204 arial = os.path.join(os.path.dirname(__file__), r’arial.ttf’)

205 except NameError:

206 arial=os.path.dirname(sys.executable)+r"\arial.ttf"

207 #arial=os.path.join(sys.path[0],r"arial.ttf")

208

209 #print "Filepath for arial.ttf: "+arial

210 #arial=r"C:\arial.ttf"

211 #arial = r"arial.ttf"

212

213 font=font_manager.FontProperties(family=None, style=None, variant

=None, weight=None, stretch=None, size=None, fname=None, _init=

None)

214 font.set_file(arial)

215 tick_font=font_manager.FontProperties()

216 tick_font.set_file(arial)

217 for label in ax1.get_xticklabels():

218 label.set_fontproperties(tick_font)

219 for label in ax1.get_yticklabels():

220 label.set_fontproperties(tick_font)

92

Page 101: BSc Thesis Jochen Wolf

2 Current-voltage evaluation program

221 fontsizes=13

222 #plt.rcParams.update(font)

223 #label.set_fontproperties(font)

224 #params=font

225 #plt.rcParams.update(params)

226

227

228

229 plt.axhline(linewidth=1, color="0")

230 plt.axvline(linewidth=1, color="0")

231 plt.minorticks_on()

232 plt.tick_params(width=2,length=8,pad=10,labelsize=fontsizes)

233 plt.xlabel(’voltage (V)’, fontsize=fontsizes,fontproperties=font)

234 plt.ylabel(r’current density (mA / cm$^2$)’, fontsize=fontsizes

,fontproperties=font)

235 plt.xticks(fontsize=fontsizes,fontproperties=font)

236 plt.yticks(fontsize=fontsizes,fontproperties=font)

237

238 ##########################################

239 ### CALCULATING LIMITS for small graph ###

240 ##########################################

241 xmax=[]

242 xmin=[]

243 ymax=[]

244 ymin=[]

245 print "Starting to evaluate data"

246 list_of_files=list_of_files_unchecked

247 round_number=0

248 while True:

249 round_number+=1

250 errors=0

251 for cur in list_of_files_unchecked:

252 try:

253 showstringspacesself.readout_data_silent(cur)

254 print "Successfully readout data, now trying to

93

Page 102: BSc Thesis Jochen Wolf

Appendix

evaluate",os.path.split(cur)[1]

255

showstringspacesself.evaluate_characteristics_silent()

256 print "Successfully evaluated data of",os.path.split(

cur)[1]

257 xmax.append( showstringspacesself.VOC+0.1)

258 xmin.append(- showstringspacesself.VOC*0.16) #to have

about -0.1V on the negative x

259 stepsize=abs( showstringspacesself.data[0,0]-

showstringspacesself.data[1,0])

260 steps=len( showstringspacesself.data[:,0])

261 # xmaximum=min(-self.VOC-0.1+self.data[:,0])+self.VOC

+0.1

262 # xmaxline_appr=int(xmaximum/stepsize)

263 #line_number=0

264 #temp_list=[]

265 #for voltage in self.data[:,0]:

266 # temp_list.append(abs(xmaxline_appr-voltage))

267 #for voltage in self.data[:,0]:

268 # line_number+=1

269 #data_dict=

270 #line_number=0

271 #for voltage in self.data[:,0]:

272 # data_dict.append(voltage:self.data[line_number,1])

273 # line_number+=1

274 ymaxline=int((( showstringspacesself.VOC+0.025)-

showstringspacesself.data[0,0])/stepsize) #in -1V to 1

V measurements this is the line number

275 #ymax.append(self.data[:,1].argmax)

276 yminline=int(((- showstringspacesself.VOC*0.16)-

showstringspacesself.data[0,0])/stepsize)

277 # yminline=int((-self.VOC*0.16)*100+100) # should be

replaced for other ranges

278 ymax.append( showstringspacesself.data[ymaxline,1])

279 #

94

Page 103: BSc Thesis Jochen Wolf

2 Current-voltage evaluation program

280 ymin.append( showstringspacesself.data[yminline,1])

281 except ValueError:#ValueError

282 errors+=1

283 print "NOT WORKING","NOT WORKING","NOT WORKING","NOT

WORKING"

284 print "NOT WORKING" ,os.path.split(cur)[1], "NOT

WORKING"

285 print "NOT WORKING","NOT WORKING","NOT WORKING","NOT

WORKING"

286 test=1

287 for i in xrange(len(ordered_list_of_files)): # i is

cellnumber

288 for j in xrange(len(ordered_list_of_files[i])): #

j is pixelnumber

289 if test==1:

290 if ordered_list_of_files[i][j] == cur:

291 list_of_dead_pixels[i].append(

ordered_list_of_files[i][j])

292 del ordered_list_of_files[i][j]

293 print os.path.split(cur)[1]+" deleted

from ordered list of files"

294 test=0

295 test=1

296 for i in xrange(len(list_of_files)):

297 if test==1:

298 if cur == list_of_files[i]:

299 del list_of_files[i]

300 print os.path.split(cur)[1]+" deleted from

list of files"

301 test=0

302 print "Data checked ",round_number," times"

303 if errors==0:

304 break

305 #for cur in list_of_files_unchecked:

306 # self.readout_data_silent(cur)

95

Page 104: BSc Thesis Jochen Wolf

Appendix

307 # self.evaluate_characteristics_silent()

308 # xmax.append(self.VOC+0.1)

309 # xmin.append(-self.VOC*0.16) #to have about -0.1V on the

negative x

310 # # ymaxline=int((self.VOC+0.025)*100+100) #in -1V to 1V

measurements this is the line number

311 # yminline=int((-self.VOC*0.16)*100+100) # should be replaced

for other ranges

312 # ymax.append(self.data[ymaxline,1])

313 # ymin.append(self.data[yminline,1])

314 temp=[]

315 for i in list_of_files:

316 temp.append(os.path.split(cur)[1])

317 print "list of files",temp

318 temp=[]

319 print "List of files: ",list_of_files

320 for i in xrange(len(ordered_list_of_files)): # i is cellnumber

321 for j in xrange(len(ordered_list_of_files[i])): # j is

pixelnumber

322 temp.append(os.path.split(ordered_list_of_files[i][j])[1])

323 print "Ordered List of files",temp

324 print "Ordered list of files",ordered_list_of_files

325 print "Data successfully evaluated"

326 if len(temp)==0:

327 print "No files left to plot, all were sorted out"

328 xmax=max(xmax)

329 xmin=min(xmin)

330 ymax=max(ymax)

331 ymin=min(ymin)

332 plt.xlim((xmin,xmax))

333 plt.ylim((ymin*1.1,ymax*1.1)) #10 percent overdraw, former: self

.data[:,1].max()

334 print "Limits are: xmax,xmin,ymax,ymin",xmax,xmin,ymax,ymin

335

336 ##################################

96

Page 105: BSc Thesis Jochen Wolf

2 Current-voltage evaluation program

337 ### CALCULATING VOC ISC FF PCE ###

338 ##################################

339 #average_xMPP=0

340 #average_yMPP=0

341 average_VOC=[]

342 VOC_list_limit=[]

343 VOC_list=[[]]

344 average_ISC=[]

345 ISC_list_limit=[]

346 ISC_list=[[]]

347 average_FF=[]

348 FF_list_limit=[]

349 FF_list=[[]]

350 average_PCE=[]

351 PCE_list_limit=[]

352 PCE_list=[[]]

353 average_RSHUNT=[]

354 RSHUNT_list_limit=[]

355 RSHUNT_list=[[]]

356 average_RSERIAL=[]

357 RSERIAL_list_limit=[]

358 RSERIAL_list=[[]]

359 for i in xrange(len(ordered_list_of_files)): # i is cellnumber

360 average_VOC.append(0)

361 average_ISC.append(0)

362 average_FF.append(0)

363 average_PCE.append(0)

364 average_RSHUNT.append(0)

365 average_RSERIAL.append(0)

366 VOC_list.append([])

367 ISC_list.append([])

368 FF_list.append([])

369 PCE_list.append([])

370 RSHUNT_list.append([])

371 RSERIAL_list.append([])

97

Page 106: BSc Thesis Jochen Wolf

Appendix

372 for j in xrange(len(ordered_list_of_files[i])): # j is

pixelnumber

373 showstringspacesself.readout_data_silent(

ordered_list_of_files[i][j])

374 showstringspacesself.evaluate_characteristics_silent()

375 VOC_list_limit.append( showstringspacesself.VOC)

376 ISC_list_limit.append( showstringspacesself.ISC)

377 FF_list_limit.append( showstringspacesself.FF)

378 PCE_list_limit.append( showstringspacesself.PCE)

379 RSHUNT_list_limit.append( showstringspacesself.RSHUNT)

380 RSERIAL_list_limit.append( showstringspacesself.RSERIAL)

381 VOC_list[i].append( showstringspacesself.VOC)

382 ISC_list[i].append( showstringspacesself.ISC)

383 FF_list[i].append( showstringspacesself.FF)

384 PCE_list[i].append( showstringspacesself.PCE)

385 RSHUNT_list[i].append( showstringspacesself.RSHUNT)

386 RSERIAL_list[i].append( showstringspacesself.RSERIAL)

387 average_VOC[i]=average_VOC[i]+ showstringspacesself.VOC

388 average_ISC[i]=average_ISC[i]+ showstringspacesself.ISC

389 average_FF[i]=average_FF[i]+ showstringspacesself.FF

390 average_PCE[i]=average_PCE[i]+ showstringspacesself.PCE

391 average_RSHUNT[i]=average_RSHUNT[i]+

showstringspacesself.RSHUNT

392 average_RSERIAL[i]=average_RSERIAL[i]+

showstringspacesself.RSERIAL

393

394 for i in xrange(len(ordered_list_of_files)): # i is cellnumber

395 if len(ordered_list_of_files[i]) is not 0:

396 average_VOC[i]=average_VOC[i]/float(len(

ordered_list_of_files[i])) # These are for the purpose of

397 average_ISC[i]=average_ISC[i]/float(len(

ordered_list_of_files[i])) # the average marker for each

cell

398 average_FF[i]=average_FF[i]/float(len(

ordered_list_of_files[i])) #

98

Page 107: BSc Thesis Jochen Wolf

2 Current-voltage evaluation program

399 average_PCE[i]=average_PCE[i]/float(len(

ordered_list_of_files[i])) #

400 average_RSHUNT[i]=average_RSHUNT[i]/float(len(

ordered_list_of_files[i]))

401 average_RSERIAL[i]=average_RSERIAL[i]/float(len(

ordered_list_of_files[i]))

402 else:

403 average_VOC[i]=0

404 average_ISC[i]=0

405 average_FF[i]=0

406 average_PCE[i]=0

407 average_RSHUNT[i]=0

408 average_RSERIAL[i]=0

409 #average_xMPP=average_xMPP/float(len(list_of_files))

410 #average_yMPP=average_yMPP/float(len(list_of_files))

411 max_VOC=max(VOC_list_limit) # These are for the purpose of

setting limits

412 min_VOC=min(VOC_list_limit) #

413 max_ISC=max(ISC_list_limit) #

414 min_ISC=min(ISC_list_limit) #

415 max_FF=max(FF_list_limit) #

416 min_FF=min(FF_list_limit) #

417 max_PCE=max(PCE_list_limit) #

418 min_PCE=min(PCE_list_limit) #

419 max_RSHUNT=max(RSHUNT_list_limit)

420 min_RSHUNT=min(RSHUNT_list_limit)

421 max_RSERIAL=max(RSERIAL_list_limit)

422 min_RSERIAL=min(RSERIAL_list_limit)

423 #del average_VOC[0]

424 #del average_ISC[0]

425 #del average_FF[0]

426 #del average_PCE[0]

427 number_of_cells=0

428 for cellnumber in xrange(len(ordered_list_of_files)):

429 if len(ordered_list_of_files[cellnumber]) is not 0:

99

Page 108: BSc Thesis Jochen Wolf

Appendix

430 number_of_cells+=1

431 print "Number of cells is ",number_of_cells

432

433

434

435 print "Average VOC",average_VOC

436 print "average_ISC",average_ISC

437 print "average_FF",average_FF

438 print "average_PCE",average_PCE

439 print "average_RSHUNT",average_RSHUNT

440 print "average_RSERIAL",average_RSERIAL

441

442

443

444 ##########################################################

445 ### PLOTTING DATA, GENERATING FILENAME for small graph ###

446 ##########################################################

447 plt.tight_layout()

448 completefilename=""

449 color_counter=0

450 namecounter=0

451 #color_dict=["LightSalmon","OrangeRed","Gold","FireBrick","

SaddleBrown","Olive","DarkGreen","Lime","DarkGreen"] # need to

add more colors

452 #color_dict=["Red","DeepPink", "MediumVioletRed", "OrangeRed", "

Orange", "Yellow", "Lavender" , "Violet","Magenta", "DarkViolet

", "Purple", "Indigo", "SlateBlue", "LawnGreen", "Green", "

LightSeaGreen", "DarkCyan", "Aqua", "DarkTurquoise", "SkyBlue",

"DeepSkyBlue", "MediumBlue", "Navy" ,"Goldenrod" ,"SaddleBrown",

"Maroon"]

453 #color_dict nachstes: dunkelgelb,light coral,rot,dunkelrot,

purple,royalblue, green,olive

454 color_dict=["#FFD000","orange","#FF0000","#8B0000","#A020F0","

#436EEE","#00EE00","#556B2F","DeepPink"]

455 for i in xrange(10,101):

100

Page 109: BSc Thesis Jochen Wolf

2 Current-voltage evaluation program

456 color_dict.append("Black")

457

458 for i in xrange(len(ordered_list_of_files)): # i is cellnumber

459 for j in xrange(len(ordered_list_of_files[i])): # j is

pixelnumber

460 try:

461 print "Currently drawing small ", os.path.split(

ordered_list_of_files[i][j])[1]

462 showstringspacesself.readout_data_silent(

ordered_list_of_files[i][j])

463 ax1.plot( showstringspacesself.data[:,0],

showstringspacesself.data[:,1], linewidth=2,color=

color_dict[color_counter])

464 if showstringspacesself.ui.checkBox_ANNOTATIONS.

isChecked():

465 showstringspacesself.readout_data_silent(

ordered_list_of_files[i][j])

466 showstringspacesself.

evaluate_characteristics_silent()

467 plt.vlines(x=

showstringspacesself.MPP[0],ymin=min(0,

showstringspacesself.MPP[1]), ymax=max(0,

showstringspacesself.MPP[1]), color=’g’, linestyle

=’--’)

468 plt.hlines(y=

showstringspacesself.MPP[1],xmin=min(0,

showstringspacesself.MPP[0]), xmax=max(0,

showstringspacesself.MPP[0]), color=’g’, linestyle

=’--’)

469 plt.vlines(x= showstringspacesself.VOC, ymin=-1,

ymax=0, color=’0.5’)

470 plt.annotate(’$0 = 1 V$’.format(r’V_OC’,

showstringspacesself.VOC.round(2)), xy=(

showstringspacesself.VOC, 0),xytext=(30,-30),

textcoords=’offset points’,arrowprops=dict(

101

Page 110: BSc Thesis Jochen Wolf

Appendix

arrowstyle=’->’), fontsize=fontsizes)

471 plt.annotate(’$0 = 1 2$’.format(r’I_SC’,

showstringspacesself.ISC.round(2), r’mA/cm^2’), xy

=(0,

showstringspacesself.ISC),xytext=(100,-30),

textcoords=’offset points’,arrowprops=dict(

arrowstyle=’->’), fontsize=fontsizes)

472 plt.annotate(’$0 = 1 2$\n$3 = 4 5$\

n$FF=6 \%$’.format(r’V_MPP’, round(

showstringspacesself.MPP[0],2), ’V’,

473 r’I_MPP’,round(

showstringspacesself.MPP[1],2), r’mA/cm^2’,

showstringspacesself.FF.round(2)), xy=(

showstringspacesself.MPP[0],

showstringspacesself.MPP[1]),xytext=(30,-60),

textcoords=’offset points’,arrowprops=dict(

arrowstyle=’->’), fontsize=fontsizes)

474 plt.annotate(r’$PCE = 0 \%$’.format(

showstringspacesself.PCE.round(2)), xy=(

showstringspacesself.MPP[0],

showstringspacesself.MPP[1]), xytext=(-200,50),

textcoords=’offset points’, fontsize=fontsizes)

475 except ValueError:#should have been caught earlier

476 print "ValueError in "+ordered_list_of_files[i][j]

477 if len(ordered_list_of_files[i][j]) is not 0:

478 if number_of_cells == 1:

479 color_counter+=1

480 curfilename=os.path.split(ordered_list_of_files[i

][j])[1]

481 #curfilename=curfilename.replace(".dat","")

482 #curfilename=re.findall("(\d\d\d)",curfilename)

[0]

483 cur=curfilename

484 pixel_number=str(int(re.findall("\d\d\d",re.

findall("_\d\d\d",cur)[0])[0])-10*int((re.findall(

102

Page 111: BSc Thesis Jochen Wolf

2 Current-voltage evaluation program

"\d\d",re.findall("_\d\d",cur)[0])[0])))

485 cur=(re.findall("\d\d",(re.findall("_\d\d",cur)

[0]))) # [01,...]

486 cell_number=str(cur[0])

487

488 if namecounter==0:

489 completefilename=completefilename+pixel_number

490 namecounter=1

491 else:

492 completefilename=completefilename+","+

pixel_number

493 showstringspacesself.auto_completefilename="

Single-"+cell_number+"-"+completefilename

494 if len(ordered_list_of_files[i]) is not 0:

495 if number_of_cells is not 1:

496 color_counter=color_counter+1

497 curfilename=os.path.split(ordered_list_of_files[i][j])

[1]

498 #curfilename=curfilename.replace(".dat","")

499 #curfilename=re.findall("(\d\d)",curfilename)[0]

500 cur=curfilename

501 pixel_number=int(re.findall("\d\d\d",re.findall("_\d\d

\d",cur)[0])[0])-10*int((re.findall("\d\d",re.findall(

"_\d\d",cur)[0])[0]))

502 cur=(re.findall("\d\d",(re.findall("_\d\d",cur)[0])))

# [01,...]

503 cell_number=str(cur[0])

504 if namecounter==0:

505 completefilename=completefilename+cell_number

506 namecounter=1

507 else:

508 completefilename=completefilename+","+cell_number

509 showstringspacesself.auto_completefilename="Multi-"+

completefilename

510 print "Now plotting small graph of dead pixels:",

103

Page 112: BSc Thesis Jochen Wolf

Appendix

list_of_dead_pixels

511 for i in xrange(len(list_of_dead_pixels)): # i is cellnumber

512 for j in xrange(len(list_of_dead_pixels[i])): # j is

pixelnumber

513 if len(list_of_dead_pixels[i][j]) is not 0:

514 showstringspacesself.readout_data_silent(

list_of_dead_pixels[i][j])

515 ax1.plot( showstringspacesself.data[:,0],

showstringspacesself.data[:,1], linewidth=2,color="Violet")

516 #plt.annotate(’$0 : 1 V$’.format(r’Dead ’),"0"+str(i)+

str(j), xy=(0,-5),xytext=(30,-30), textcoords=’offset

points’,arrowprops=dict(arrowstyle=’->’), fontsize=

fontsizes)

517 plt.tight_layout()

518 showstringspacesself.fig=fig

519

520

521 print "SETTING VISUAL OPTIONS for big graph"

522 ###################################

523 ### big (-1V to 1V) graph first ###

524 ###################################

525 ############################################

526 ### SETTING VISUAL OPTIONS for big graph ###

527 ############################################

528 ax2=fig.add_subplot(2,1,2)

529 plt.axhline(linewidth=1, color="0")

530 plt.axvline(linewidth=1, color="0")

531 plt.minorticks_on()

532

533 plt.tick_params(width=2,length=8,pad=10,labelsize=fontsizes-4)

534 for label in ax2.get_xticklabels():

535 label.set_fontproperties(tick_font)

536 for label in ax2.get_yticklabels():

537 label.set_fontproperties(tick_font)

538 plt.xlabel(’voltage (V)’, fontsize=fontsizes,fontproperties=font)

104

Page 113: BSc Thesis Jochen Wolf

2 Current-voltage evaluation program

539 plt.ylabel(r’current density (mA / cm$^2$)’, fontsize=fontsizes

,fontproperties=font)

540 plt.xticks(fontsize=fontsizes)

541 plt.yticks(fontsize=fontsizes)

542

543 #for item in ([ax2.title, ax2.xaxis.label, ax2.yaxis.label] +

ax2.get_xticklabels() + ax2.get_yticklabels()):

544 # item.set_fontsize(20)

545

546

547 print "CALCULATING LIMITS for big graph"

548 ########################################

549 ### CALCULATING LIMITS for big graph ###

550 ########################################

551 xmax=[1.00]

552 #xmax=self.data[:,0].argmax()

553 xmin=[-1.00]

554 #xmin=self.data[:,0].argmin()

555 ymax=[]

556 ymin=[]

557 if xmax > 0.79 and xmax<1.21 and xmin<-1.21 and xmin>-0.79:

558 plt.xticks([-1.,-0.8,-0.6,-0.4,-0.2,0.,.2,.4,.6,.8,1.])#ifnot

, default ticks will be used

559 for curr in list_of_files:

560 showstringspacesself.readout_data_silent(curr)

561 showstringspacesself.evaluate_characteristics_silent()

562 #xmax.append(self.VOC+0.1)

563 #xmin.append(-self.VOC*0.16)

564 # V=self.data[abs(self.data[:,1]).argmin()-2:abs(self.data

[:,1]).argmin()+2,0]

565 ymaxline=int((xmax[0])*100+100) #in -1V to 1V measurements

this is the line number

566 yminline=int((xmin[0])*100+100) # should be replaced for

other ranges

567 ymax.append( showstringspacesself.data[ymaxline,1])

105

Page 114: BSc Thesis Jochen Wolf

Appendix

568 #ymax.append(self.data[:,1].argmax)

569 ymin.append( showstringspacesself.data[yminline,1])

570 #ymin.append(self.data[:,1].argmin)

571 #print ymax,ymin

572 xmax=max(xmax)*1.005

573 xmin=min(xmin)*1.005

574 ymax=max(ymax)

575 ymin=min(ymin)

576 plt.xlim((xmin,xmax))

577 plt.ylim((ymin*1.1,ymax*1.1)) #10 percent overdraw, former: self

.data[:,1].max()

578 print "limits set to xmax,xmin,ymax,ymin",xmax,xmin,ymax,ymin

579 print "PLOTTING DATA, GENERATING FILENAME for big graph"

580 ########################################################

581 ### PLOTTING DATA, GENERATING FILENAME for big graph ###

582 ########################################################

583

584 color_counter=0

585 for i in xrange(len(ordered_list_of_files)): # i is cellnumber

586 for j in xrange(len(ordered_list_of_files[i])): # j is

pixelnumber

587 try:

588 print "Currently drawing big ", os.path.split(

ordered_list_of_files[i][j])[1]

589 showstringspacesself.readout_data_silent(

ordered_list_of_files[i][j])

590 #self.evaluate_characteristics_silent()

591 ax2.plot( showstringspacesself.data[:,0],

showstringspacesself.data[:,1], linewidth=2,color=

color_dict[color_counter])

592

593 if showstringspacesself.ui.checkBox_ANNOTATIONS.

isChecked():

594 plt.vlines(x=

showstringspacesself.MPP[0],ymin=min(0,

106

Page 115: BSc Thesis Jochen Wolf

2 Current-voltage evaluation program

showstringspacesself.MPP[1]), ymax=max(0,

showstringspacesself.MPP[1]), color=’g’, linestyle

=’--’)

595 plt.hlines(y=

showstringspacesself.MPP[1],xmin=min(0,

showstringspacesself.MPP[0]), xmax=max(0,

showstringspacesself.MPP[0]), color=’g’, linestyle

=’--’)

596 plt.vlines(x= showstringspacesself.VOC, ymin=-1,

ymax=0, color=’0.5’)

597 plt.annotate(’$0 = 1 V$’.format(r’V_OC’,

showstringspacesself.VOC.round(2)), xy=(

showstringspacesself.VOC, 0),xytext=(30,-30),

textcoords=’offset points’,arrowprops=dict(

arrowstyle=’->’), fontsize=fontsizes)

598 plt.annotate(’$0 = 1 2$’.format(r’I_SC’,

showstringspacesself.ISC.round(2), r’mA/cm^2’), xy

=(0,

showstringspacesself.ISC),xytext=(100,-30),

textcoords=’offset points’,arrowprops=dict(

arrowstyle=’->’), fontsize=fontsizes)

599 plt.annotate(’$0 = 1 2$\n$3 = 4 5$\

n$FF=6 \%$’.format(r’V_MPP’, round(

showstringspacesself.MPP[0],2), ’V’,

600 r’I_MPP’,round(

showstringspacesself.MPP[1],2), r’mA/cm^2’,

showstringspacesself.FF.round(2)), xy=(

showstringspacesself.MPP[0],

showstringspacesself.MPP[1]),xytext=(30,-60),

textcoords=’offset points’,arrowprops=dict(

arrowstyle=’->’), fontsize=fontsizes)

601 plt.annotate(r’$PCE = 0 \%$’.format(

showstringspacesself.PCE.round(2)), xy=(

showstringspacesself.MPP[0],

showstringspacesself.MPP[1]), xytext=(-200,50),

107

Page 116: BSc Thesis Jochen Wolf

Appendix

textcoords=’offset points’, fontsize=fontsizes)

602 except ValueError:

603 print "ValueError in "+ordered_list_of_files[i][j]

604 if len(ordered_list_of_files[i][j]) is not 0:

605 if number_of_cells == 1:

606 color_counter+=1

607 if len(ordered_list_of_files[i]) is not 0:

608 if number_of_cells is not 1:

609 color_counter=color_counter+1

610 plt.tight_layout()

611 #print "started saving bigger plots"

612 #savefig("Big"+completefilename+".pdf")

613 #savefig("Big"+completefilename+".eps")

614 #savefig("Big"+completefilename+".png")

615 #print "finished saving " + curfilename +".tiff"

616 #savefig("Big"+completefilename+".tiff")

617 #print "finished saving bigger plots"

618

619

620

621

622

623

624

625 ###############################

626 ### SETTING OPTIONS FOR PCE ###

627 ###############################

628 fig2=plt.figure(figsize=(6.7, 20))

629 PCE_plot=fig2.add_subplot(3,2,4)

630 plt.axhline(linewidth=1, color="0")

631 plt.axvline(linewidth=1, color="0")

632 plt.minorticks_on()

633 PCE_plot.tick_params(axis=’x’,which=’minor’,bottom=’off’,top=’off

’)

634 plt.axhline(linewidth=1, color="green")

108

Page 117: BSc Thesis Jochen Wolf

2 Current-voltage evaluation program

635 plt.axvline(linewidth=1, color="green")

636 for label in PCE_plot.get_xticklabels():

637 label.set_fontproperties(tick_font)

638 for label in PCE_plot.get_yticklabels():

639 label.set_fontproperties(tick_font)

640 plt.ylabel(r’efficiency ($\%$)’, fontsize=fontsizes,

fontproperties=font)

641 plt.tick_params(width=2,pad=10,length=8,labelsize=fontsizes-4)

642 plt.xticks(fontsize=fontsizes-4)

643 plt.yticks(fontsize=fontsizes-4)

644 list_xticks=[]

645 list_xticks_names=[]

646 try:

647 os.chdir( showstringspacesself.path)

648 rawpixelnames=genfromtxt("pixel_names.txt", comments=’#’,

skip_header=0,names=True,dtype=None)

649 except IOError:

650 print "IOERROR while trying to access Cellnames"

651 rawpixelnames=[]

652 try:

653 os.chdir( showstringspacesself.path)

654 rawcellnames=genfromtxt("cell_names.txt", comments=’#’,

skip_header=0,names=True,dtype=None)

655 except IOError:

656 print "IOERROR while trying to access Cellnames"

657 rawcellnames=[]

658

659

660 pixel_name_dict=

661 for row in rawpixelnames:

662 pixel_name_dict.update(row[1]:row[0])

663 cell_name_dict=

664 for row in rawcellnames:

665 cell_name_dict.update(row[1]:row[0])

666

109

Page 118: BSc Thesis Jochen Wolf

Appendix

667 if number_of_cells == 1:

668 for i in xrange(len(ordered_list_of_files)): # i is

cellnumber

669 for j in xrange(len(ordered_list_of_files[i])): # j is

pixelnumber

670 list_xticks.append(0.5+j)

671 try:

672 temp=pixel_name_dict[int(str(i)+str(pixel_names[i

][j]))]

673 list_xticks_names.append(temp)

674 except KeyError:

675 list_xticks_names.append(str(pixel_names[i][j]))

676 list_xticks.append(len(list_xticks)+0.5)

677 list_xticks_names.append("avg.")

678

679 if number_of_cells is not 1:

680 for i in xrange(len(ordered_list_of_files)): # i is

cellnumber

681 if len(ordered_list_of_files[i]) is not 0:

682 list_xticks.append(0.5+len(list_xticks))

683 try:

684 temp=cell_name_dict[i]

685 list_xticks_names.append(temp)

686 except KeyError:

687 list_xticks_names.append(str(i))

688

689 if showstringspacesself.ui.checkBox_X_LABELS.isChecked():

690 temp=len(list_xticks_names)

691 list_xticks_names=[]

692 for i in range(len(list_xticks_names)):

693 list_xticks_names.append()

694 PCE_plot.set_xticklabels(list_xticks_names,rotation=90)

695

696 plt.xticks(list_xticks,list_xticks_names)

697

110

Page 119: BSc Thesis Jochen Wolf

2 Current-voltage evaluation program

698 PCE_plot.set_xticklabels(list_xticks_names,rotation=90)

699 #Datatype: [("test1",12)

700

701 if number_of_cells==1:

702 xmax=len(list_xticks)

703 else:

704 xmax=number_of_cells

705 xmin=0

706 ymax=max_PCE+abs(max_PCE-min_PCE)*0.15

707 ymin=min_PCE-abs(min_PCE-max_PCE)*0.15

708 print "PCE xmax",xmax

709 if ymin < 0:

710 ymin=0

711 plt.xlim((0,xmax))

712 plt.ylim((ymin,ymax)) #(((ymin+(ymax-ymin)*0.1),ymax+(ymax-ymin)

*0.1))

713

714

715 color_counter=0

716 x_position_counter=0

717 print "starting to draw PCEs"

718 plt.tight_layout()

719 if number_of_cells==1:

720 plt.axvline(x=(xmax-1.0),linewidth=1, color="grey")

721 for i in xrange(len(ordered_list_of_files)): # i is cellnumber

722 for j in xrange(len(ordered_list_of_files[i])): # j is

pixelnumber

723 print "PCE Currently drawing", os.path.split(

ordered_list_of_files[i][j])[1]

724 #self.readout_data_silent(ordered_list_of_files[i][j])

725 #self.evaluate_characteristics_silent()

726

727 PCE_plot.plot((x_position_counter+0.5),PCE_list[i][j],

linewidth=0,color=color_dict[color_counter],marker="o")

728 if len(ordered_list_of_files[i][j]) is not 0:

111

Page 120: BSc Thesis Jochen Wolf

Appendix

729 if number_of_cells == 1:

730 color_counter+=1

731 x_position_counter+=1

732 if len(ordered_list_of_files[i]) is not 0:

733 PCE_plot.plot((x_position_counter+0.5),average_PCE[i],

linewidth=0,color="white",marker="o")

734 if number_of_cells is not 1:

735 color_counter+=1

736 x_position_counter+=1

737

738

739

740 ###############################

741 ### SETTING OPTIONS FOR VOC ###

742 ###############################

743 VOC_plot=fig2.add_subplot(3,2,2)

744 plt.ylabel(r’open circuit voltage (V)’, fontsize=fontsizes,

fontproperties=font)

745 plt.minorticks_on()

746 VOC_plot.tick_params(axis=’x’,which=’minor’,bottom=’off’,top=’off

’)

747 ymax=max_VOC+abs(max_VOC-min_VOC)*0.15

748 ymin=min_VOC-abs(min_VOC-max_VOC)*0.15

749 if number_of_cells==1:

750 xmax=len(list_xticks)

751 if number_of_cells is not 1:

752 xmax=number_of_cells

753 plt.xlim((0,xmax))

754 plt.ylim((ymin,ymax))

755 plt.xticks(list_xticks,list_xticks_names)

756 VOC_plot.set_xticklabels(list_xticks_names,rotation=90)

757 color_counter=0

758 x_position_counter=0

759 plt.tight_layout()

760 for label in VOC_plot.get_xticklabels():

112

Page 121: BSc Thesis Jochen Wolf

2 Current-voltage evaluation program

761 label.set_fontproperties(tick_font)

762 for label in VOC_plot.get_yticklabels():

763 label.set_fontproperties(tick_font)

764 plt.tick_params(width=2,pad=10,length=8,labelsize=fontsizes-4)

765 plt.xticks(fontsize=fontsizes-4)

766 plt.yticks(fontsize=fontsizes-4)

767 if number_of_cells==1:

768 plt.axvline(x=(xmax-1.0),linewidth=1, color="grey")

769 for i in xrange(len(ordered_list_of_files)): # i is cellnumber

770 for j in xrange(len(ordered_list_of_files[i])): # j is

pixelnumber

771 print "VOC Currently drawing", os.path.split(

ordered_list_of_files[i][j])[1]

772 #self.readout_data_silent(ordered_list_of_files[i][j])

773 #self.evaluate_characteristics_silent()

774 VOC_plot.plot((x_position_counter+0.5),VOC_list[i][j],

linewidth=0,color=color_dict[color_counter],marker="o")

775 if len(ordered_list_of_files[i][j]) is not 0:

776 if number_of_cells == 1:

777 color_counter+=1

778 x_position_counter+=1

779 if len(ordered_list_of_files[i]) is not 0:

780 VOC_plot.plot((x_position_counter+0.5),average_VOC[i],

linewidth=0,color="white",marker="o")

781 if number_of_cells is not 1:

782 color_counter+=1

783 x_position_counter+=1

784

785

786

787 ###############################

788 ### SETTING OPTIONS FOR ISC ###

789 ###############################

790 ISC_plot=fig2.add_subplot(3,2,1)

791 plt.tick_params(width=2,pad=10,length=8,labelsize=fontsizes)

113

Page 122: BSc Thesis Jochen Wolf

Appendix

792 plt.minorticks_on()

793 ISC_plot.tick_params(axis=’x’,which=’minor’,bottom=’off’,top=’off

’)

794 plt.ylabel(r’short circuit current (mA / cm$^2$)’, fontsize=

fontsizes,fontproperties=font)

795 ymax=max_ISC+abs(max_ISC-min_ISC)*0.15

796 ymin=min_ISC-abs(min_ISC-max_ISC)*0.15

797 plt.xlim((0,xmax))

798 plt.ylim((ymin,ymax))

799 plt.xticks(list_xticks,list_xticks_names)

800 ISC_plot.set_xticklabels(list_xticks_names,rotation=90)

801 color_counter=0

802 x_position_counter=0

803 plt.tight_layout()

804 for label in ISC_plot.get_xticklabels():

805 label.set_fontproperties(tick_font)

806 for label in ISC_plot.get_yticklabels():

807 label.set_fontproperties(tick_font)

808 plt.tick_params(width=2,pad=10,length=8,labelsize=fontsizes-4)

809 plt.xticks(fontsize=fontsizes-4)

810 plt.yticks(fontsize=fontsizes-4)

811 if number_of_cells==1:

812 plt.axvline(x=(xmax-1.0),linewidth=1, color="grey")

813 for i in xrange(len(ordered_list_of_files)): # i is cellnumber

814 for j in xrange(len(ordered_list_of_files[i])): # j is

pixelnumber

815 print "ISC Currently drawing", os.path.split(

ordered_list_of_files[i][j])[1]

816 #self.readout_data_silent(ordered_list_of_files[i][j])

817 #self.evaluate_characteristics_silent()

818 ISC_plot.plot((x_position_counter+0.5),ISC_list[i][j],

linewidth=0,color=color_dict[color_counter],marker="o")

819 if len(ordered_list_of_files[i][j]) is not 0:

820 if number_of_cells == 1:

821 color_counter+=1

114

Page 123: BSc Thesis Jochen Wolf

2 Current-voltage evaluation program

822 x_position_counter+=1

823 if len(ordered_list_of_files[i]) is not 0:

824 ISC_plot.plot((x_position_counter+0.5),average_ISC[i],

linewidth=0,color="white",marker="o")

825 if number_of_cells is not 1:

826 color_counter+=1

827 x_position_counter+=1

828

829

830

831 ##############################

832 ### SETTING OPTIONS FOR FF ###

833 ##############################

834 FF_plot=fig2.add_subplot(3,2,3)

835 plt.tick_params(width=2,pad=10,length=8,labelsize=fontsizes)

836 plt.minorticks_on()

837 FF_plot.tick_params(axis=’x’,which=’minor’,bottom=’off’,top=’off’

)

838 plt.ylabel(r’fillfactor ($\%$)’, fontsize=fontsizes,

fontproperties=font)

839 ymax=max_FF+abs(max_FF-min_FF)*0.15

840 ymin=min_FF-abs(min_FF-max_FF)*0.15

841 plt.xlim((0,xmax))

842 plt.ylim((ymin,ymax))

843 plt.xticks(list_xticks,list_xticks_names)

844 FF_plot.set_xticklabels(list_xticks_names,rotation=90)

845 color_counter=0

846 x_position_counter=0

847 plt.tight_layout()

848 for label in FF_plot.get_xticklabels():

849 label.set_fontproperties(tick_font)

850 for label in FF_plot.get_yticklabels():

851 label.set_fontproperties(tick_font)

852 plt.tick_params(width=2,pad=10,length=8,labelsize=fontsizes-4)

853 plt.xticks(fontsize=fontsizes-4)

115

Page 124: BSc Thesis Jochen Wolf

Appendix

854 plt.yticks(fontsize=fontsizes-4)

855 if number_of_cells==1:

856 plt.axvline(x=(xmax-1.0),linewidth=1, color="grey")

857 for i in xrange(len(ordered_list_of_files)): # i is cellnumber

858 for j in xrange(len(ordered_list_of_files[i])): # j is

pixelnumber

859 print "FF Currently drawing", os.path.split(

ordered_list_of_files[i][j])[1]

860 #self.readout_data_silent(ordered_list_of_files[i][j])

861 #self.evaluate_characteristics_silent()

862 FF_plot.plot((x_position_counter+0.5),FF_list[i][j],

linewidth=0,color=color_dict[color_counter],marker="o")

863 if len(ordered_list_of_files[i][j]) is not 0:

864 if number_of_cells == 1:

865 color_counter+=1

866 x_position_counter+=1

867 if len(ordered_list_of_files[i]) is not 0:

868 FF_plot.plot((x_position_counter+0.5),average_FF[i],

linewidth=0,color="white",marker="o")

869 if number_of_cells is not 1:

870 color_counter+=1

871 x_position_counter+=1

872

873

874

875 ##################################

876 ### SETTING OPTIONS FOR RSHUNT ###

877 ##################################

878 RSHUNT_plot=fig2.add_subplot(3,2,5)

879 plt.tick_params(width=2,pad=10,length=8,labelsize=fontsizes)

880 plt.minorticks_on()

881 RSHUNT_plot.tick_params(axis=’x’,which=’minor’,bottom=’off’,top=’

off’)

882 plt.ylabel(r’shunt resistance ($k\Omega \cdot $cm$^2$)’, fontsize

=fontsizes,fontproperties=font)

116

Page 125: BSc Thesis Jochen Wolf

2 Current-voltage evaluation program

883 ymax=max_RSHUNT+abs(max_RSHUNT-min_RSHUNT)*0.15

884 ymin=min_RSHUNT-abs(min_RSHUNT-max_RSHUNT)*0.15

885 plt.xlim((0,xmax))

886 plt.ylim((ymin,ymax))

887 plt.xticks(list_xticks,list_xticks_names)

888 RSHUNT_plot.set_xticklabels(list_xticks_names,rotation=90)

889 color_counter=0

890 x_position_counter=0

891 plt.tight_layout()

892 for label in RSHUNT_plot.get_xticklabels():

893 label.set_fontproperties(tick_font)

894 for label in RSHUNT_plot.get_yticklabels():

895 label.set_fontproperties(tick_font)

896 plt.tick_params(width=2,pad=10,length=8,labelsize=fontsizes-4)

897 plt.xticks(fontsize=fontsizes-4)

898 plt.yticks(fontsize=fontsizes-4)

899 if number_of_cells==1:

900 plt.axvline(x=(xmax-1.0),linewidth=1, color="grey")

901 for i in xrange(len(ordered_list_of_files)): # i is cellnumber

902 for j in xrange(len(ordered_list_of_files[i])): # j is

pixelnumber

903 print "RSHUNT Currently drawing", os.path.split(

ordered_list_of_files[i][j])[1]

904 #self.readout_data_silent(ordered_list_of_files[i][j])

905 #self.evaluate_characteristics_silent()

906 RSHUNT_plot.plot((x_position_counter+0.5),RSHUNT_list[i][j

], linewidth=0,color=color_dict[color_counter],marker="o")

907 if len(ordered_list_of_files[i][j]) is not 0:

908 if number_of_cells == 1:

909 color_counter+=1

910 x_position_counter+=1

911 if len(ordered_list_of_files[i]) is not 0:

912 RSHUNT_plot.plot((x_position_counter+0.5),average_RSHUNT[i

], linewidth=0,color="white",marker="o")

913 if number_of_cells is not 1:

117

Page 126: BSc Thesis Jochen Wolf

Appendix

914 color_counter+=1

915 x_position_counter+=1

916

917

918 ###################################

919 ### SETTING OPTIONS FOR RSERIAL ###

920 ###################################

921 RSERIAL_plot=fig2.add_subplot(3,2,6)

922 plt.tick_params(width=2,pad=10,length=8,labelsize=fontsizes)

923 plt.minorticks_on()

924 RSERIAL_plot.tick_params(axis=’x’,which=’minor’,bottom=’off’,top=

’off’)

925 plt.ylabel(r’serial resistance ($k\Omega \cdot $cm$^2$)’,

fontsize=fontsizes,fontproperties=font)

926 ymax=max_RSERIAL+abs(max_RSERIAL-min_RSERIAL)*0.15

927 ymin=min_RSERIAL-abs(min_RSERIAL-max_RSERIAL)*0.15

928 plt.xlim((0,xmax))

929 plt.ylim((ymin,ymax))

930 plt.xticks(list_xticks,list_xticks_names)

931 RSERIAL_plot.set_xticklabels(list_xticks_names,rotation=90)

932 color_counter=0

933 x_position_counter=0

934 plt.tight_layout()

935 for label in RSERIAL_plot.get_xticklabels():

936 label.set_fontproperties(tick_font)

937 for label in RSERIAL_plot.get_yticklabels():

938 label.set_fontproperties(tick_font)

939 plt.tick_params(width=2,pad=10,length=8,labelsize=fontsizes-4)

940 plt.xticks(fontsize=fontsizes-4)

941 plt.yticks(fontsize=fontsizes-4)

942 if number_of_cells==1:

943 plt.axvline(x=(xmax-1.0),linewidth=1, color="grey")

944 for i in xrange(len(ordered_list_of_files)): # i is cellnumber

945 for j in xrange(len(ordered_list_of_files[i])): # j is

pixelnumber

118

Page 127: BSc Thesis Jochen Wolf

2 Current-voltage evaluation program

946 print "RSERIAL Currently drawing", os.path.split(

ordered_list_of_files[i][j])[1]

947 #self.readout_data_silent(ordered_list_of_files[i][j])

948 #self.evaluate_characteristics_silent()

949 RSERIAL_plot.plot((x_position_counter+0.5),RSERIAL_list[i

][j], linewidth=0,color=color_dict[color_counter],marker="

o")

950 if len(ordered_list_of_files[i][j]) is not 0:

951 if number_of_cells == 1:

952 color_counter+=1

953 x_position_counter+=1

954 if len(ordered_list_of_files[i]) is not 0:

955 RSERIAL_plot.plot((x_position_counter+0.5),average_RSERIAL

[i], linewidth=0,color="white",marker="o")

956 if number_of_cells is not 1:

957 color_counter+=1

958 x_position_counter+=1

959 print "RSERIAL xmax",xmax

960 print "list_xticks",list_xticks

961 print "list_xticks_names",list_xticks_names

962 print "Dead Pixels: "#,list_of_dead_pixels

963 dead_printout=""

964 for i in list_of_dead_pixels:

965 #print i

966 if len(i) is not 0:

967 for j in i:

968 #print j

969 dead_printout+=str(os.path.split(j)[1])+" "

970 if dead_printout is "":

971 dead_printout="None - all pixels were successfully plotted!"

972 print dead_printout

973

974 showstringspacesself.completefilename=completefilename

975 showstringspacesself.fig=fig

976 showstringspacesself.fig2=fig2

119

Page 128: BSc Thesis Jochen Wolf

Appendix

977 showstringspacesself.ordered_list_of_files=ordered_list_of_files

978 showstringspacesself.number_of_cells=number_of_cells

979 showstringspacesself.ISC_list=ISC_list

980 showstringspacesself.VOC_list=VOC_list

981 showstringspacesself.FF_list=FF_list

982 showstringspacesself.PCE_list=PCE_list

983 showstringspacesself.RSHUNT_list=RSHUNT_list

984 showstringspacesself.RSERIAL_list=RSERIAL_list

985 showstringspacesself.average_ISC=average_ISC

986 showstringspacesself.average_VOC=average_VOC

987 showstringspacesself.average_FF=average_FF

988 showstringspacesself.average_PCE=average_PCE

989 showstringspacesself.average_RSHUNT=average_RSHUNT

990 showstringspacesself.average_RSERIAL=average_RSERIAL

991 showstringspacesself.pixel_names=pixel_names

992 print "all done"

993

994

995

996

997

998

999

1000 #for subplots in [PCE_plot,ISC_plot,FF_plot,VOC_plot,

RSERIAL_plot,RSHUNT_plot]:

1001 # subplots.axes.get_xaxis().set_visible(False)

1002 #frame1.axes.get_yaxis().set_visible(False)

1003

1004 def evaluate_characteristics_silent( showstringspacesself):

1005 #to avoid too much output in the window

1006

1007 showstringspacesself.I=float(

showstringspacesself.ui.doubleSpinBox_INTENSITY.value())

1008 #print ’testpoint 1’

1009 #data_active=self.data[((abs(self.data[:,0])).argmin()):(abs(

120

Page 129: BSc Thesis Jochen Wolf

2 Current-voltage evaluation program

self.data[:,1]).argmin()),:]

1010 #print ’testpoint 2’

1011 #print "active data is:",data_active

1012 #print "((abs(self.data[:,0])).argmin()):",((abs(self.data[:,0])

).argmin())

1013 #print "(abs(self.data[:,1]).argmin())",(abs(self.data[:,1]).

argmin())

1014 try:

1015 data_active= showstringspacesself.data[((abs(

showstringspacesself.data[:,0])).argmin()):(abs(

showstringspacesself.data[:,1]).argmin()),:]

1016 showstringspacesself.MPP_index=int(where(

showstringspacesself.data==data_active[abs((data_active[:,0]*

data_active[:,1])).argmax(),0])[0])

1017

1018

1019 except ValueError:

1020 try:

1021 #self.data[:,1]=self.data[:,1]

1022 showstringspacesself.data[:,0]=

showstringspacesself.data[::-1,0]

1023 showstringspacesself.data[:,1]=

showstringspacesself.data[::-1,1]

1024 showstringspacesself.data=- showstringspacesself.data

1025 print ’data has been inverted twice’

1026 data_active= showstringspacesself.data[((abs(

showstringspacesself.data[:,0])).argmin()):(abs(

showstringspacesself.data[:,1]).argmin()),:]

1027 showstringspacesself.MPP_index=int(where(

showstringspacesself.data==data_active[abs((data_active

[:,0]*data_active[:,1])).argmax(),0])[0])

1028 except ValueError:

1029 if showstringspacesself.data[100,1] > 0:

1030 #self.data[:,1]=self.data[:,1]

1031 showstringspacesself.data[:,0]=

121

Page 130: BSc Thesis Jochen Wolf

Appendix

showstringspacesself.data[::-1,0]

1032 showstringspacesself.data[:,1]=

showstringspacesself.data[::-1,1]

1033 showstringspacesself.data=- showstringspacesself.data

1034 print ’Error: data found to be not working and has been

inverted a third time to plot it’

1035 raise ValueError

1036 if showstringspacesself.data[100,1] > 0:

1037 #self.data[:,1]=self.data[:,1]

1038 showstringspacesself.data[:,0]=

showstringspacesself.data[::-1,0]

1039 showstringspacesself.data[:,1]=

showstringspacesself.data[::-1,1]

1040 showstringspacesself.data=- showstringspacesself.data

1041 print ’data found to be not working and has been inverted a

third time to plot it’

1042 raise ValueError

1043

1044 showstringspacesself.MPP=(float( showstringspacesself.data[

showstringspacesself.MPP_index,0]),float(

showstringspacesself.data[ showstringspacesself.MPP_index,1]))

1045 showstringspacesself.PMAX=float( showstringspacesself.MPP[0]*

showstringspacesself.MPP[1])

1046

1047

1048 #####################################################Calculate

VOC##########

1049 V= showstringspacesself.data[abs(

showstringspacesself.data[:,1]).argmin()-2:abs(

showstringspacesself.data[:,1]).argmin()+2,0]

1050 I= showstringspacesself.data[abs(

showstringspacesself.data[:,1]).argmin()-2:abs(

showstringspacesself.data[:,1]).argmin()+2,1]

1051 (a,b)=polyfit(V,I,1)

1052 #print ’type a, a= 0, 1’.format(type(a),a)

122

Page 131: BSc Thesis Jochen Wolf

2 Current-voltage evaluation program

1053 #print ’type a, a= 0, 1’.format(type(b),b)

1054 showstringspacesself.VOC=-b/a

1055 showstringspacesself.RSERIAL=1.0/a

1056

1057

1058

1059 #####################################################Calculate

ISC##########

1060 V= showstringspacesself.data[abs(

showstringspacesself.data[:,0]).argmin()-2:abs(

showstringspacesself.data[:,0]).argmin()+2,0]

1061 I= showstringspacesself.data[abs(

showstringspacesself.data[:,0]).argmin()-2:abs(

showstringspacesself.data[:,0]).argmin()+2,1]

1062 (a,b)=polyfit(V,I,1)

1063 #print ’type a, a= 0, 1’.format(type(a),a)

1064 #print ’type a, a= 0, 1’.format(type(b),b)

1065 showstringspacesself.ISC=b

1066 showstringspacesself.RSHUNT=1/a

1067 #print ’ISC is 0 mA/cm^2’.format(self.ISC)

1068

1069

1070 showstringspacesself.PCE=abs( showstringspacesself.PMAX/

showstringspacesself.I)*100.0

1071 #print ’PCE is 0 %’.format(self.PCE)

1072

1073 showstringspacesself.FF=abs( showstringspacesself.PMAX/(

showstringspacesself.VOC* showstringspacesself.ISC)*100.0)

1074 #print ’FF is 0%’.format(self.FF)

1075

1076 showstringspacesself.RCHAR=abs( showstringspacesself.VOC/

showstringspacesself.ISC)

1077 #print ’Characteristic Resistance is\t 0 kOhms / cm^2’.format(

round(self.RCHAR,2))

1078 #print ’Shunt Resistance is\t 0 kOhms/cm^2’.format(round(self.

123

Page 132: BSc Thesis Jochen Wolf

Appendix

RSHUNT,2))

1079 #print ’Serial Resistance is\t 0 kOhms/cm^2’.format(round(self

.RSERIAL,2))

1080

1081 def readout_data_silent( showstringspacesself, filename):

1082 #print filename

1083 showstringspacesself.filename=filename

1084 if os.path.basename(filename).startswith(’sweep_loop’):

1085 showstringspacesself.data=genfromtxt(filename, comments=’#’,

skip_header=2)

1086 elif os.path.basename(filename).startswith(’0’):

1087 showstringspacesself.data=genfromtxt(filename, comments=’#’,

skip_header=0)

1088 else:

1089 showstringspacesself.data=genfromtxt(filename, comments=’#’,

skip_header=0)

1090 #self.ui.comboBox_PIXELS.setCurrentIndex(int(os.path.

basename(filename)[2]))

1091 #self.pixelcounter=str(int(os.path.basename(filename)[2]))

1092 #aus xx_areas.txt auslesen

1093 #self.set_areas(’_areas.txt’.format(os.path.basename(filename)

[0:2]))

1094 cur=(re.findall("\d\d",(re.findall("_\d\d",filename)[0]))) #

[01,...]

1095 cell_number=int(cur[0]) # 1

1096 if cell_number < 10:

1097 cell_number="0"+str(cell_number)

1098 else:

1099 cell_number=str(cell_number)

1100

1101 showstringspacesself.pixelcounter=str(int(re.findall("\d\d\d",re

.findall("_\d\d\d",filename)[0])[0])-10*int((re.findall("\d\d",re

.findall("_\d\d",filename)[0])[0])))

1102 print "Cell and pixel in process is:", cell_number,

showstringspacesself.pixelcounter

124

Page 133: BSc Thesis Jochen Wolf

2 Current-voltage evaluation program

1103 showstringspacesself.set_areas(’_areas.txt’.format(cell_number

))

1104 showstringspacesself.Area= showstringspacesself.get_Area()

1105 #print ’0 has been successfully read.’.format(filename)

1106 #print self.data

1107 if showstringspacesself.data[100,1] > 0:#abs(self.data[0,1]) >

abs(self.data[-1,1]):

1108 #self.data[:,1]=self.data[:,1]

1109 showstringspacesself.data[:,0]=

showstringspacesself.data[::-1,0]

1110 showstringspacesself.data[:,1]=

showstringspacesself.data[::-1,1]

1111 showstringspacesself.data=- showstringspacesself.data

1112 print ’data has been inverted:’,os.path.split(filename)[1]

1113

1114 #print self.data

1115 showstringspacesself.data[:,1]=

showstringspacesself.data[:,1]*1000.0/ showstringspacesself.Area

1116

1117 def get_Area( showstringspacesself):

1118 try:

1119 showstringspacesself.set_areas()

1120 except IOError:

1121 pass

1122 #if self.ui.comboBox_PIXELS.currentIndex()==0:

1123 if showstringspacesself.pixelcounter==’0’:

1124 A=0

1125 A+= showstringspacesself.area1

1126 A+= showstringspacesself.area2

1127 A+= showstringspacesself.area3

1128 A+= showstringspacesself.area4

1129 A+= showstringspacesself.area5

1130 A+= showstringspacesself.area6

1131 A+= showstringspacesself.area7

1132 A+= showstringspacesself.area8

125

Page 134: BSc Thesis Jochen Wolf

Appendix

1133 print ’Area is ’+str(A)+’ cm^2’

1134 return A

1135

1136 elif showstringspacesself.pixelcounter==’1’:

1137 return showstringspacesself.area1

1138 print "score"

1139 elif showstringspacesself.pixelcounter==’2’:

1140 return showstringspacesself.area2

1141 elif showstringspacesself.pixelcounter==’3’:

1142 return showstringspacesself.area3

1143 elif showstringspacesself.pixelcounter==’4’:

1144 return showstringspacesself.area4

1145 elif showstringspacesself.pixelcounter==’5’:

1146 return showstringspacesself.area5

1147 elif showstringspacesself.pixelcounter==’6’:

1148 return showstringspacesself.area6

1149 print "score"

1150 elif showstringspacesself.pixelcounter==’7’:

1151 return showstringspacesself.area7

1152 elif showstringspacesself.pixelcounter==’8’:

1153 return showstringspacesself.area8

1154 else:

1155 print ’getting nonsense from area fields.’

1156 def get_filetime( showstringspacesself, filename):

1157 try:

1158 f=open(filename)

1159 x=f.readline()

1160 f.close()

1161 date=datetime.datetime.strptime(x[2:-2],

showstringspacesself.FMT)

1162 print date

1163 return date

1164 except ValueError:

1165 return 0

1166 def get_inputfile( showstringspacesself):

126

Page 135: BSc Thesis Jochen Wolf

2 Current-voltage evaluation program

1167 filenames = QtGui.QFileDialog.getOpenFileNames(

showstringspacesself, ’Open File’, showstringspacesself.path)

1168 showstringspacesself.ui.list_INPUT.addItems(filenames)

1169 def clear_input( showstringspacesself):

1170 showstringspacesself.ui.list_INPUT.clear()

1171 def remove_item( showstringspacesself):

1172 cur= showstringspacesself.ui.list_INPUT.currentRow()

1173 showstringspacesself.ui.list_INPUT.takeItem(cur)

1174 def get_cwd( showstringspacesself):

1175 path=QtGui.QFileDialog.getExistingDirectory(

showstringspacesself, ’Open Path’, showstringspacesself.path)

1176 showstringspacesself.ui.line_CWD.setText(path)

1177 #self.ui.line_OUTPUT.setText(path)

1178 showstringspacesself.path=path

1179 def set_cwd( showstringspacesself):

1180 showstringspacesself.path=str(

showstringspacesself.ui.line_CWD.text())

1181 def set_areas( showstringspacesself, filename=’areas.txt’):

1182 os.chdir(unicode( showstringspacesself.path))

1183 areas=genfromtxt(filename, comments=’#’, skip_header=1)

1184 if areas[0,0]==1:

1185 pass

1186 else:

1187 areas=genfromtxt(’areas.txt’, comments=’#’)

1188 #for i in xrange(10):

1189 # temp="area"+str(i)

1190 try:

1191 showstringspacesself.area1=areas[0,1]

1192 except IndexError:

1193 showstringspacesself.area1=0

1194 try:

1195 showstringspacesself.area2=areas[1,1]

1196 except IndexError:

1197 showstringspacesself.area2=0

1198 try:

127

Page 136: BSc Thesis Jochen Wolf

Appendix

1199 showstringspacesself.area3=areas[2,1]

1200 except IndexError:

1201 showstringspacesself.area3=0

1202 try:

1203 showstringspacesself.area4=areas[3,1]

1204 except IndexError:

1205 showstringspacesself.area4=0

1206 try:

1207 showstringspacesself.area5=areas[4,1]

1208 except IndexError:

1209 showstringspacesself.area5=0

1210 try:

1211 showstringspacesself.area6=areas[5,1]

1212 except IndexError:

1213 showstringspacesself.area6=0

1214 try:

1215 showstringspacesself.area7=areas[6,1]

1216 except IndexError:

1217 showstringspacesself.area7=0

1218 try:

1219 showstringspacesself.area8=areas[7,1]

1220 except IndexError:

1221 showstringspacesself.area8=0

1222

1223 #self.ui.doubleSpinBox_5.setValue(areas[4,1])

1224 #self.ui.doubleSpinBox_6.setValue(areas[5,1])

1225 #self.ui.doubleSpinBox_7.setValue(areas[6,1])

1226 #self.ui.doubleSpinBox_8.setValue(areas[7,1])

1227

1228

1229

1230 def save_settings( showstringspacesself):

1231 filename = QtGui.QFileDialog.getSaveFileName(

showstringspacesself, ’Save settings’,

showstringspacesself.path)

128

Page 137: BSc Thesis Jochen Wolf

2 Current-voltage evaluation program

1232 f=open(filename,’w’)

1233 settings=[]

1234

1235 for i in settings:

1236 f.write(i + ’\n’)

1237 f.close()

1238 print ’settings successfully written in 0’.format(filename)

1239 showstringspacesself.ui.label_SETTINGS.setText(’settings saved

as .../ ’ + filename[filename.rfind(’/’)+1:])

1240

1241 def load_settings( showstringspacesself):

1242 filename = str(QtGui.QFileDialog.getOpenFileName(

showstringspacesself, ’Open settings’,

showstringspacesself.path))

1243 settings=[]

1244 f=open( showstringspacesself.path+filename)

1245 for i in f.readlines():

1246 if i[0]!=’#’:

1247 settings.append(float(i))

1248 f.close()

1249

1250 def writefile_evolution(

showstringspacesself, filename, list_of_files, X,Y):

1251 f=open( showstringspacesself.path +’/’+ filename,’w’)

1252 f.write(’# first file: 0\n#last file: 1\n# time [min]\t Value

’.format(list_of_files[0],list_of_files[1]))

1253 for k in range(len(X)):

1254 f.write(str(X[k])+’\t’ + str(Y[k]) + ’\n’)

1255 f.close()

1256

1257 #

##########################################################################

1258

1259

129

Page 138: BSc Thesis Jochen Wolf

Appendix

1260

1261

1262 def __del__( showstringspacesself):

1263 plt.ioff()

1264 plt.close(’all’)

1265

1266

1267 if __name__=="__main__":

1268 app=QtGui.QApplication(sys.argv)

1269 my_app=my_DIALOG_IValuator()

1270 my_app.show()

1271 sys.exit(app.exec_())

130