calculations for c

This commit is contained in:
hiro98 2019-11-18 21:13:55 +01:00
parent 41588671fc
commit ab435709e1
16 changed files with 698 additions and 11 deletions

View file

@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
"execution_count": 55,
"execution_count": 57,
"metadata": {
"autoscroll": false,
"collapsed": false,
@ -450,7 +450,7 @@
},
{
"cell_type": "code",
"execution_count": 56,
"execution_count": 58,
"metadata": {
"autoscroll": false,
"collapsed": false,
@ -465,9 +465,9 @@
"name": "stdout",
"output_type": "stream",
"text": [
"an_light (-0.02630074615384615, 0.5599925566487172, 0.30999911523151735, 0.156638522040846, 0.1282742291712253, 0.06024558540032538)\n",
"fol_light (-3.2946186e-05, 7.129314361652983, 4.02000070175182, 0.002029756267025768, 17.568978096781162, 0.0008119025068103072)\n",
"org_light (-0.0040643187499999995, 0.9183601229960922, 0.7400008818112345, 0.00016271274581558095, 0.5744693424183512, 0.025423866533684523)\n"
"an_light (0.02630074615384615, 0.5599925566487172, 0.30999911523151735, 0.156638522040846, 0.40904859440059965, 0.06024558540032538)\n",
"fol_light (3.2946186e-05, 7.129314361652983, 4.02000070175182, 0.002029756267025768, 0.3456614690624081, 0.0008119025068103072)\n",
"org_light (0.0040643187499999995, 0.9183601229960922, 0.7400008818112345, 0.00016271274581558095, 0.6811469583998824, 0.025423866533684523)\n"
]
}
],

396
SZ/auswertung/b.ipynb Normal file
View file

@ -0,0 +1,396 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 139,
"metadata": {
"autoscroll": false,
"ein.hycell": false,
"ein.tags": "worksheet-0",
"slideshow": {
"slide_type": "-"
}
},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from importlib import reload\n",
"import utility\n",
"\n",
"reload(utility)\n",
"from utility import *\n",
"\n",
"from scipy.optimize import curve_fit\n",
"from SecondaryValue import SecondaryValue"
]
},
{
"cell_type": "code",
"execution_count": 114,
"metadata": {
"autoscroll": false,
"ein.hycell": false,
"ein.tags": "worksheet-0",
"slideshow": {
"slide_type": "-"
}
},
"outputs": [],
"source": [
"org_compliance = 0.0098\n",
"a_an = 26 # cm^2\n",
"a_org = 6.4e-2 # cm^2\n",
"a_fol = 25 # cm^2\n",
"i_ein = 100e-3 # watt/cm^2\n",
"u_ref = 32.2e-3 # volt"
]
},
{
"cell_type": "code",
"execution_count": 122,
"metadata": {
"autoscroll": false,
"ein.hycell": false,
"ein.tags": "worksheet-0",
"slideshow": {
"slide_type": "-"
}
},
"outputs": [],
"source": [
"intensity = SecondaryValue('u/u_ref*i0', defaults=dict(i0=i_ein, u_ref=u_ref))"
]
},
{
"cell_type": "code",
"execution_count": 170,
"metadata": {
"autoscroll": false,
"ein.hycell": false,
"ein.tags": "worksheet-0",
"slideshow": {
"slide_type": "-"
}
},
"outputs": [],
"source": [
"intensities, d_intensites = intensity(u=([.011, 0.017, .021, .026, .032], 1e-3))"
]
},
{
"cell_type": "code",
"execution_count": 188,
"metadata": {
"autoscroll": false,
"ein.hycell": false,
"ein.tags": "worksheet-0",
"slideshow": {
"slide_type": "-"
}
},
"outputs": [],
"source": [
"ccurves = [parse_ccurve(f'../messungen/191114_OM_VB/2_{point}.dat') \\\n",
" for point in ['a', 'b', 'c', 'd', 'e']]\n",
"\n",
"ccurve_specs = [(intsy, analyze_ccurve(curve, a_an, intsy)) \\\n",
" for curve, intsy in zip(ccurves, intensities)]"
]
},
{
"cell_type": "code",
"execution_count": 187,
"metadata": {
"autoscroll": false,
"ein.hycell": false,
"ein.tags": "worksheet-0",
"slideshow": {
"slide_type": "-"
}
},
"outputs": [],
"source": [
"%matplotlib qt5\n",
"fig, ax = plot_ccurve(ccurves[0], label=intensities[0]*1000, area=a_an)\n",
"\n",
"for ccurve, intsy in zip(ccurves[1:], intensities[1:]):\n",
" plot_ccurve_line(ax, ccurve, label=intsy*1000, area=a_an)\n",
"\n",
"ax.legend()\n",
"fig.show()"
]
},
{
"cell_type": "code",
"execution_count": 168,
"metadata": {
"autoscroll": false,
"ein.hycell": false,
"ein.tags": "worksheet-0",
"slideshow": {
"slide_type": "-"
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([0.04347826, 0.05279503, 0.06521739, 0.08074534, 0.09937888])"
]
},
"execution_count": 168,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"intensities"
]
},
{
"cell_type": "code",
"execution_count": 241,
"metadata": {
"autoscroll": false,
"ein.hycell": false,
"ein.tags": "worksheet-0",
"slideshow": {
"slide_type": "-"
}
},
"outputs": [],
"source": [
"plt.clf()\n",
"plt.plot(*np.array([[intsy*1000, params['j_c']] \\\n",
" for intsy, params in ccurve_specs]).T, marker='*')\n",
"plt.xlabel('Intensitaet [$mW/cm^2$]')\n",
"plt.ylabel('$j_{SC}$ [$A/cm^2$]')\n",
"plt.savefig('./figs/B/j_sc.pdf', dpi=300)\n",
"plt.grid()\n",
"#plt.xscale('log')\n",
"#plt.yscale('log')\n"
]
},
{
"cell_type": "code",
"execution_count": 243,
"metadata": {
"autoscroll": false,
"ein.hycell": false,
"ein.tags": "worksheet-0",
"slideshow": {
"slide_type": "-"
}
},
"outputs": [],
"source": [
"plt.clf()\n",
"plt.plot(*np.array([[(intsy*1000), params['u_cc']] \\\n",
" for intsy, params in ccurve_specs]).T, marker='*')\n",
"plt.xlabel('Intensitaet [$mW/cm^2$]')\n",
"plt.ylabel('$U_{CC}$ [$V$]')\n",
"plt.xscale('log')\n",
"plt.grid(which='both')\n",
"plt.savefig('./figs/B/u_cc.pdf', dpi=300)\n",
"#plt.yscale('log')\n"
]
},
{
"cell_type": "code",
"execution_count": 103,
"metadata": {
"autoscroll": false,
"ein.hycell": false,
"ein.tags": "worksheet-0",
"slideshow": {
"slide_type": "-"
}
},
"outputs": [
{
"data": {
"text/plain": [
"0.0168614765323676"
]
},
"execution_count": 103,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"0.011 * (.032/.011)**(2/5)"
]
},
{
"cell_type": "code",
"execution_count": 105,
"metadata": {
"autoscroll": false,
"ein.hycell": false,
"ein.tags": "worksheet-0",
"slideshow": {
"slide_type": "-"
}
},
"outputs": [
{
"data": {
"text/plain": [
"[(0.034161490683229816,\n",
" {'j_c': 0.0025912392307692305,\n",
" 'u_cc': 0.5086008577882963,\n",
" 'u_mlp': 0.3977111360504424,\n",
" 'p_mlp': 0.022268705563519103,\n",
" 'ff': 0.6498857684076272,\n",
" 'eta': 0.025071759410675354}),\n",
" (0.052795031055900624,\n",
" {'j_c': 0.01341955,\n",
" 'u_cc': 0.5600084576663334,\n",
" 'u_mlp': 0.37999930322896436,\n",
" 'p_mlp': 0.11432399757691399,\n",
" 'ff': 0.585101909146971,\n",
" 'eta': 0.08328580818951652}),\n",
" (0.06521739130434784,\n",
" {'j_c': 0.016769280769230767,\n",
" 'u_cc': 0.5613136094311547,\n",
" 'u_mlp': 0.36000019842026715,\n",
" 'p_mlp': 0.13293315750161686,\n",
" 'ff': 0.5431752390708393,\n",
" 'eta': 0.07839647750095351}),\n",
" (0.08074534161490683,\n",
" {'j_c': 0.02099583076923077,\n",
" 'u_cc': 0.5641834857878043,\n",
" 'u_mlp': 0.3399999063957519,\n",
" 'p_mlp': 0.1534276805047185,\n",
" 'ff': 0.4981692745272282,\n",
" 'eta': 0.07308241586171502}),\n",
" (0.09937888198757765,\n",
" {'j_c': 0.025274496153846155,\n",
" 'u_cc': 0.5675239554252917,\n",
" 'u_mlp': 0.32765580118957827,\n",
" 'p_mlp': 0.17174272136274898,\n",
" 'ff': 0.4605091752711381,\n",
" 'eta': 0.06646773591202546})]"
]
},
"execution_count": 105,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ccurve_specs"
]
},
{
"cell_type": "code",
"execution_count": 161,
"metadata": {
"autoscroll": false,
"ein.hycell": false,
"ein.tags": "worksheet-0",
"slideshow": {
"slide_type": "-"
}
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f0eb414d940>,\n",
" <matplotlib.lines.Line2D at 0x7f0eb414dc50>]"
]
},
"execution_count": 161,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"plt.clf()\n",
"points = np.arange(0,6)\n",
"ints = .011 * (.032/.011)**(points/5)\n",
"plt.plot(np.arange(1,6), intensities, ints)"
]
},
{
"cell_type": "code",
"execution_count": 162,
"metadata": {
"autoscroll": false,
"ein.hycell": false,
"ein.tags": "worksheet-0",
"slideshow": {
"slide_type": "-"
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([0.03416149, 0.05279503, 0.06521739, 0.08074534, 0.09937888])"
]
},
"execution_count": 162,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"intensities"
]
},
{
"cell_type": "code",
"execution_count": 163,
"metadata": {
"autoscroll": false,
"ein.hycell": false,
"ein.tags": "worksheet-0",
"slideshow": {
"slide_type": "-"
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([0.011 , 0.01361897, 0.01686148, 0.02087599, 0.02584631,\n",
" 0.032 ])"
]
},
"execution_count": 163,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ints"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.0"
},
"name": "b.ipynb"
},
"nbformat": 4,
"nbformat_minor": 2
}

291
SZ/auswertung/c.ipynb Normal file

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,7 +1,6 @@
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.figure import Figure
import seaborn
from matplotlib import rc
from scipy import interpolate
from scipy import optimize
@ -37,7 +36,7 @@ def plot_ccurve(ccurve, log=False, area=None, compliance=.99, median=False,
if median:
compliance = np.median(ccurve[:, 0])
plot_ccurve_line(ax, ccurve, compliance=compliance, **pyplot_args)
plot_ccurve_line(ax, ccurve, area=area, compliance=compliance, **pyplot_args)
if log:
ax.set_yscale('log')
@ -51,11 +50,11 @@ def plot_ccurve_line(ax, ccurve, area=None, marker='.', compliance=.99, **pyplot
if area:
c /= area
ax.errorbar(v, c, linestyle='None', marker=marker, markersize=1.5, alpha=1,
ax.errorbar(v, c, linestyle='None', marker=marker, markersize=2, alpha=1,
**pyplot_args)
ax.set_xlabel("Spannung V [V]")
ax.set_ylabel("Stromstaerke I [A]" \
if area else r"Stromdichte j [$\frac{A}{cm^2}$]")
if not area else r"Stromdichte j [$\frac{A}{cm^2}$]")
ax.grid(True, which='both')
ax.set_xlim(v[0], v[-1])
@ -84,7 +83,8 @@ def analyze_ccurve(ccurve, area, int_ein):
bracket=(0, u_cc), bounds=(0, u_cc),
method='bounded').x
p_mlp = -interpolated(u_mlp)*u_mlp
ff = -p_mlp / i_c * u_cc
ff = -p_mlp / (i_c * u_cc)
eta = p_mlp / (int_ein * area)
return -j_c, u_cc, u_mlp, p_mlp, ff, eta
return {'j_c': -j_c, 'u_cc': u_cc, 'u_mlp': u_mlp, 'p_mlp': p_mlp,
'ff': ff, 'eta': eta}