mirror of
https://github.com/vale981/fpraktikum
synced 2025-03-05 09:31:44 -05:00
calculations for c
This commit is contained in:
parent
41588671fc
commit
ab435709e1
16 changed files with 698 additions and 11 deletions
|
@ -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
396
SZ/auswertung/b.ipynb
Normal 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
291
SZ/auswertung/c.ipynb
Normal file
File diff suppressed because one or more lines are too long
BIN
SZ/auswertung/figs/B/j_sc.pdf
Normal file
BIN
SZ/auswertung/figs/B/j_sc.pdf
Normal file
Binary file not shown.
BIN
SZ/auswertung/figs/B/u_cc.pdf
Normal file
BIN
SZ/auswertung/figs/B/u_cc.pdf
Normal file
Binary file not shown.
BIN
SZ/auswertung/figs/C/3x3_hell.pdf
Normal file
BIN
SZ/auswertung/figs/C/3x3_hell.pdf
Normal file
Binary file not shown.
BIN
SZ/auswertung/figs/C/3x3_schaltung_1.pdf
Normal file
BIN
SZ/auswertung/figs/C/3x3_schaltung_1.pdf
Normal file
Binary file not shown.
BIN
SZ/auswertung/figs/C/3x3_schaltung_2.pdf
Normal file
BIN
SZ/auswertung/figs/C/3x3_schaltung_2.pdf
Normal file
Binary file not shown.
BIN
SZ/auswertung/figs/C/3x3_schaltung_3.pdf
Normal file
BIN
SZ/auswertung/figs/C/3x3_schaltung_3.pdf
Normal file
Binary file not shown.
BIN
SZ/auswertung/figs/C/3x3_schaltung_4.pdf
Normal file
BIN
SZ/auswertung/figs/C/3x3_schaltung_4.pdf
Normal file
Binary file not shown.
BIN
SZ/auswertung/figs/C/3x3_verschattung_1.pdf
Normal file
BIN
SZ/auswertung/figs/C/3x3_verschattung_1.pdf
Normal file
Binary file not shown.
BIN
SZ/auswertung/figs/C/3x3_verschattung_2.pdf
Normal file
BIN
SZ/auswertung/figs/C/3x3_verschattung_2.pdf
Normal file
Binary file not shown.
BIN
SZ/auswertung/figs/C/3x3_verschattung_3.pdf
Normal file
BIN
SZ/auswertung/figs/C/3x3_verschattung_3.pdf
Normal file
Binary file not shown.
BIN
SZ/auswertung/figs/C/huge_hell.pdf
Normal file
BIN
SZ/auswertung/figs/C/huge_hell.pdf
Normal file
Binary file not shown.
BIN
SZ/auswertung/figs/C/huge_verbraucher.pdf
Normal file
BIN
SZ/auswertung/figs/C/huge_verbraucher.pdf
Normal file
Binary file not shown.
|
@ -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}
|
||||
|
|
Loading…
Add table
Reference in a new issue