neue plots

This commit is contained in:
Maximilian Eibl 2025-01-28 21:18:43 +01:00
parent c47a3d76c5
commit 3d23539094
10 changed files with 475 additions and 0 deletions

7
.idea/discord.xml generated Normal file
View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DiscordProjectSettings">
<option name="show" value="ASK" />
<option name="description" value="" />
</component>
</project>

6
.idea/vcs.xml generated Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

50
100muF Elektrolyt.txt Normal file
View File

@ -0,0 +1,50 @@
Frequency 10.0 Hz Cp 104.8946 uF Rp 1.030805 kOHMS
Frequency 12.8 Hz Cp 104.0753 uF Rp 925.7539 OHMS
Frequency 16.4 Hz Cp 103.5400 uF Rp 768.2361 OHMS
Frequency 21.1 Hz Cp 102.6861 uF Rp 677.8150 OHMS
Frequency 27.0 Hz Cp 101.9676 uF Rp 522.3007 OHMS
Frequency 34.7 Hz Cp 101.2396 uF Rp 400.0688 OHMS
Frequency 44.5 Hz Cp 100.5594 uF Rp 318.9185 OHMS
Frequency 57.1 Hz Cp 99.60169 uF Rp 247.9168 OHMS
Frequency 73.3 Hz Cp 98.50601 uF Rp 188.4413 OHMS
Frequency 94.1 Hz Cp 97.30053 uF Rp 139.5976 OHMS
Frequency 120.7 Hz Cp 96.03810 uF Rp 101.9457 OHMS
Frequency 154.8 Hz Cp 94.67487 uF Rp 72.92807 OHMS
Frequency 198.7 Hz Cp 93.24144 uF Rp 50.92277 OHMS
Frequency 254.9 Hz Cp 91.57037 uF Rp 35.00562 OHMS
Frequency 327.0 Hz Cp 89.46848 uF Rp 23.65473 OHMS
Frequency 419.5 Hz Cp 86.85985 uF Rp 15.85507 OHMS
Frequency 538.2 Hz Cp 83.33990 uF Rp 10.61141 OHMS
Frequency 690.4 Hz Cp 78.61127 uF Rp 7.140916 OHMS
Frequency 885.7 Hz Cp 72.36631 uF Rp 4.890046 OHMS
Frequency 1.1363 kHz Cp 64.45532 uF Rp 3.442071 OHMS
Frequency 1.4577 kHz Cp 55.04984 uF Rp 2.519202 OHMS
Frequency 1.8701 kHz Cp 44.80981 uF Rp 1.932644 OHMS
Frequency 2.3991 kHz Cp 34.65811 uF Rp 1.560501 OHMS
Frequency 3.0777 kHz Cp 25.56394 uF Rp 1.322855 OHMS
Frequency 3.9484 kHz Cp 18.11199 uF Rp 1.170033 OHMS
Frequency 5.0653 kHz Cp 12.44216 uF Rp 1.070590 OHMS
Frequency 6.4981 kHz Cp 8.297980 uF Rp 1.004414 OHMS
Frequency 8.3363 kHz Cp 5.426760 uF Rp 959.8384 mOHMS
Frequency 10.694 kHz Cp 3.490902 uF Rp 929.4670 mOHMS
Frequency 13.719 kHz Cp 2.213912 uF Rp 910.2106 mOHMS
Frequency 17.600 kHz Cp 1.379835 uF Rp 897.2427 mOHMS
Frequency 22.579 kHz Cp 858.1895 nF Rp 889.3796 mOHMS
Frequency 28.966 kHz Cp 530.2700 nF Rp 883.8451 mOHMS
Frequency 37.160 kHz Cp 326.0026 nF Rp 880.5242 mOHMS
Frequency 47.672 kHz Cp 198.5722 nF Rp 878.5395 mOHMS
Frequency 61.157 kHz Cp 116.7453 nF Rp 877.3022 mOHMS
Frequency 78.457 kHz Cp 65.33699 nF Rp 874.4890 mOHMS
Frequency 100.6 kHz Cp 33.99249 nF Rp 868.9252 mOHMS
Frequency 129.1 kHz Cp 21.28261 nF Rp 871.9109 mOHMS
Frequency 165.6 kHz Cp 7.812861 nF Rp 871.2926 mOHMS
Frequency 212.5 kHz Cp -8.51496 nF Rp 860.9439 mOHMS
Frequency 272.6 kHz Cp -19.4955 nF Rp 866.5434 mOHMS
Frequency 349.7 kHz Cp -22.0017 nF Rp 860.5710 mOHMS
Frequency 448.6 kHz Cp -25.2685 nF Rp 863.8482 mOHMS
Frequency 575.5 kHz Cp -28.1376 nF Rp 868.1703 mOHMS
Frequency 738.4 kHz Cp -27.7273 nF Rp 864.2491 mOHMS
Frequency 947.2 kHz Cp -30.6817 nF Rp 879.1330 mOHMS
Frequency 1.2152 MHz Cp -30.1190 nF Rp 882.0552 mOHMS
Frequency 1.5589 MHz Cp -30.1836 nF Rp 911.9849 mOHMS
Frequency 2.0000 MHz Cp -119.829 nF Rp 729.6536 mOHMS

50
100muF Folien.txt Normal file
View File

@ -0,0 +1,50 @@
Frequency 10.0 Hz Cp 98.17027 uF Rp 50.18778 kOHMS
Frequency 12.8 Hz Cp 98.15458 uF Rp 31.52186 kOHMS
Frequency 16.4 Hz Cp 98.13721 uF Rp 19.43502 kOHMS
Frequency 21.1 Hz Cp 98.11209 uF Rp 11.73101 kOHMS
Frequency 27.0 Hz Cp 98.09951 uF Rp 7.162295 kOHMS
Frequency 34.7 Hz Cp 98.08737 uF Rp 4.365625 kOHMS
Frequency 44.5 Hz Cp 98.08124 uF Rp 2.657475 kOHMS
Frequency 57.1 Hz Cp 98.05655 uF Rp 1.629598 kOHMS
Frequency 73.3 Hz Cp 98.01701 uF Rp 997.5324 OHMS
Frequency 94.1 Hz Cp 97.97056 uF Rp 609.2633 OHMS
Frequency 120.7 Hz Cp 97.89579 uF Rp 373.2172 OHMS
Frequency 154.8 Hz Cp 97.78862 uF Rp 228.5718 OHMS
Frequency 198.7 Hz Cp 97.62163 uF Rp 139.6784 OHMS
Frequency 254.9 Hz Cp 97.37068 uF Rp 85.46604 OHMS
Frequency 327.0 Hz Cp 97.00827 uF Rp 52.22446 OHMS
Frequency 419.5 Hz Cp 96.40125 uF Rp 32.07689 OHMS
Frequency 538.2 Hz Cp 95.45857 uF Rp 19.75849 OHMS
Frequency 690.4 Hz Cp 93.98334 uF Rp 12.23719 OHMS
Frequency 885.7 Hz Cp 91.68774 uF Rp 7.642808 OHMS
Frequency 1.1363 kHz Cp 88.18954 uF Rp 4.839218 OHMS
Frequency 1.4577 kHz Cp 83.00955 uF Rp 3.130954 OHMS
Frequency 1.8701 kHz Cp 75.73756 uF Rp 2.088871 OHMS
Frequency 2.3991 kHz Cp 66.22561 uF Rp 1.453842 OHMS
Frequency 3.0777 kHz Cp 54.90482 uF Rp 1.067025 OHMS
Frequency 3.9484 kHz Cp 42.88891 uF Rp 831.9263 mOHMS
Frequency 5.0653 kHz Cp 31.61179 uF Rp 688.8114 mOHMS
Frequency 6.4981 kHz Cp 21.96844 uF Rp 600.5457 mOHMS
Frequency 8.3363 kHz Cp 14.61312 uF Rp 546.1629 mOHMS
Frequency 10.694 kHz Cp 9.380491 uF Rp 512.5682 mOHMS
Frequency 13.719 kHz Cp 5.835120 uF Rp 492.6487 mOHMS
Frequency 17.600 kHz Cp 3.498277 uF Rp 480.0066 mOHMS
Frequency 22.579 kHz Cp 2.043849 uF Rp 473.1109 mOHMS
Frequency 28.966 kHz Cp 1.141319 uF Rp 468.9699 mOHMS
Frequency 37.160 kHz Cp 588.8404 nF Rp 466.8625 mOHMS
Frequency 47.672 kHz Cp 252.8534 nF Rp 466.5015 mOHMS
Frequency 61.157 kHz Cp 52.95411 nF Rp 466.0803 mOHMS
Frequency 78.457 kHz Cp -71.4378 nF Rp 466.8782 mOHMS
Frequency 100.6 kHz Cp -135.339 nF Rp 467.6042 mOHMS
Frequency 129.1 kHz Cp -179.777 nF Rp 470.5764 mOHMS
Frequency 165.6 kHz Cp -203.399 nF Rp 473.2811 mOHMS
Frequency 212.5 kHz Cp -213.339 nF Rp 477.9676 mOHMS
Frequency 272.6 kHz Cp -218.015 nF Rp 485.8769 mOHMS
Frequency 349.7 kHz Cp -216.205 nF Rp 497.6312 mOHMS
Frequency 448.6 kHz Cp -208.263 nF Rp 517.0357 mOHMS
Frequency 575.5 kHz Cp -194.701 nF Rp 547.0907 mOHMS
Frequency 738.4 kHz Cp -176.370 nF Rp 591.7235 mOHMS
Frequency 947.2 kHz Cp -156.105 nF Rp 660.1430 mOHMS
Frequency 1.2152 MHz Cp -132.683 nF Rp 770.8148 mOHMS
Frequency 1.5589 MHz Cp -107.929 nF Rp 947.3601 mOHMS
Frequency 2.0000 MHz Cp -101.847 nF Rp 1.177602 OHMS

50
1nF Keramik.txt Normal file
View File

@ -0,0 +1,50 @@
Frequency 10.0 Hz Cp 933.7606 pF Rp INVALID #
Frequency 12.8 Hz Cp 934.3870 pF Rp INVALID #
Frequency 16.4 Hz Cp 933.4549 pF Rp INVALID #
Frequency 21.1 Hz Cp 932.9069 pF Rp INVALID #
Frequency 27.0 Hz Cp 932.3479 pF Rp INVALID #
Frequency 34.7 Hz Cp 931.1796 pF Rp 926.7592 MOHMS
Frequency 44.5 Hz Cp 930.5802 pF Rp 651.8350 MOHMS
Frequency 57.1 Hz Cp 929.9153 pF Rp 531.5705 MOHMS
Frequency 73.3 Hz Cp 929.2366 pF Rp 450.2702 MOHMS
Frequency 94.1 Hz Cp 928.5809 pF Rp 380.3751 MOHMS
Frequency 120.7 Hz Cp 927.8018 pF Rp 320.0941 MOHMS
Frequency 154.8 Hz Cp 927.1119 pF Rp 250.3684 MOHMS
Frequency 198.7 Hz Cp 926.4786 pF Rp 211.1238 MOHMS
Frequency 254.9 Hz Cp 925.9473 pF Rp 173.8030 MOHMS
Frequency 327.0 Hz Cp 925.6416 pF Rp 139.8907 MOHMS
Frequency 419.5 Hz Cp 925.1245 pF Rp 112.7589 MOHMS
Frequency 538.2 Hz Cp 924.6721 pF Rp 94.07312 MOHMS
Frequency 690.4 Hz Cp 924.2606 pF Rp 76.50648 MOHMS
Frequency 885.7 Hz Cp 923.8882 pF Rp 62.99415 MOHMS
Frequency 1.1363 kHz Cp 923.5746 pF Rp 49.21066 MOHMS
Frequency 1.4577 kHz Cp 923.2599 pF Rp 38.31692 MOHMS
Frequency 1.8701 kHz Cp 922.9495 pF Rp 30.02577 MOHMS
Frequency 2.3991 kHz Cp 922.6452 pF Rp 23.66553 MOHMS
Frequency 3.0777 kHz Cp 922.3339 pF Rp 18.73920 MOHMS
Frequency 3.9484 kHz Cp 922.0640 pF Rp 15.08398 MOHMS
Frequency 5.0653 kHz Cp 921.8148 pF Rp 12.14105 MOHMS
Frequency 6.4981 kHz Cp 921.4863 pF Rp 9.146400 MOHMS
Frequency 8.3363 kHz Cp 921.5784 pF Rp 6.708373 MOHMS
Frequency 10.694 kHz Cp 921.2312 pF Rp 5.069716 MOHMS
Frequency 13.719 kHz Cp 920.8448 pF Rp 3.754666 MOHMS
Frequency 17.600 kHz Cp 920.4230 pF Rp 2.787036 MOHMS
Frequency 22.579 kHz Cp 920.0688 pF Rp 2.083809 MOHMS
Frequency 28.966 kHz Cp 919.5376 pF Rp 1.492108 MOHMS
Frequency 37.160 kHz Cp 919.0440 pF Rp 1.076167 MOHMS
Frequency 47.672 kHz Cp 918.5822 pF Rp 772.2406 kOHMS
Frequency 61.157 kHz Cp 918.1618 pF Rp 596.2365 kOHMS
Frequency 78.457 kHz Cp 918.0928 pF Rp 415.3470 kOHMS
Frequency 100.6 kHz Cp 917.4063 pF Rp 296.7726 kOHMS
Frequency 129.1 kHz Cp 916.8448 pF Rp 207.2099 kOHMS
Frequency 165.6 kHz Cp 916.1407 pF Rp 146.9611 kOHMS
Frequency 212.5 kHz Cp 915.4975 pF Rp 101.0326 kOHMS
Frequency 272.6 kHz Cp 914.5927 pF Rp 68.96882 kOHMS
Frequency 349.7 kHz Cp 913.7457 pF Rp 46.76412 kOHMS
Frequency 448.6 kHz Cp 913.1353 pF Rp 30.97186 kOHMS
Frequency 575.5 kHz Cp 912.8255 pF Rp 21.08662 kOHMS
Frequency 738.4 kHz Cp 913.5270 pF Rp 13.84700 kOHMS
Frequency 947.2 kHz Cp 920.7625 pF Rp 8.394100 kOHMS
Frequency 1.2152 MHz Cp -548.744 pF Rp 126.4634 OHMS
Frequency 1.5589 MHz Cp -568.464 pF Rp 121.5801 OHMS
Frequency 2.0000 MHz Cp -413.472 pF Rp 185.3224 OHMS

94
Dielektrizitätszahl.py Normal file
View File

@ -0,0 +1,94 @@
import sympy
from sympy import *
from sympy import symbols
from sympy.physics.units import e0
er, A, dx1, dx2, dL, er1, er2, cs1, cs2 = symbols('er A dx1 dx2 dL er1 er2 cs1 cs2')
# Gleichungen 2.26 aufloesen nach er und gleichsetzen
eqn = Eq(solve(er * (1 + dL / dx1) / (1 + er * dL / dx1) - er1, er)[0],
solve(er * (1 + dL / dx2) / (1 + er * dL / dx2) - er2, er)[0])
# print("Gleichungen 2.26 nach er aufloesen und gleichsetzen :")
# print(eqn)
# print()
# Term aufloesen nach dL
solution = solve(eqn, dL)[0]
# Term vereinfachen
# solution = simplify(solution)
# Term mit dL gleichsetzen um eine Gleichung zu erhalten
eqn_2_27 = Eq(dL, simplify(solution))
# print("Gleichung 2.27")
print("Gleichung 2.27", eqn_2_27)
# print(solution)
# Gleichung 2.26
eqn = Eq(er * (1 + dL / dx1) / (1 + er * dL / dx1), er1)
# Loesung fuer dL in Gleichung einsetzen und vereinfachen
eqn = simplify(eqn.subs(dL, solution))
# print("Gleichung 2.27 in 2.26 einsetzen")
# print(eqn)
# Gleichung nach er aufloesen und Term vereinfachen
expr = simplify(solve(eqn, er)[0])
# print("Gleichung nach er aufloesen und vereinfachen")
# print(expr)
# Gleichung 2.28
eqn_2_28 = Eq(er, expr)
# print("Gleichung 2.28")
print("Gleichung 2.28", eqn_2_28)
def get_param(dx1_value, dx2_value, cs1_value, cs2_value):
# Geometrische Parameter und Werte
d = 100e-3 # Durchmesser
# Fläche
A_value = sympy.pi * (d / 2) ** 2
# Vakuumpermittivität
e0_value = 8.854187817e-12
# Berechnung von er1 und er2
er1_expr = cs1 * dx1 / (A * e0_value)
er2_expr = cs2 * dx2 / (A * e0_value)
print("er1", er1_expr.subs({
cs1: cs1_value, dx1: dx1_value, A: A_value, e0: e0_value
}).evalf())
print("er2", er2_expr.subs({
cs2: cs2_value, dx2: dx2_value, A: A_value, e0: e0_value
}).evalf())
# Beispielparameter im Dictionary
param = {
A: A_value,
cs1: cs1_value,
cs2: cs2_value,
dx1: dx1_value,
dx2: dx2_value,
er1: er1_expr.subs({
cs1: cs1_value, dx1: dx1_value, A: A_value, e0: e0_value
}),
er2: er2_expr.subs({
cs2: cs2_value, dx2: dx2_value, A: A_value, e0: e0_value
})
}
return param
param = get_param(dx1_value=5e-3, dx2_value=10e-3, cs1_value=49.87e-12, cs2_value=26.84e-12)
print(eqn_2_27.subs(param).evalf())
print(eqn_2_28.subs(param).evalf())
print()
param = get_param(dx1_value=1e-3, dx2_value=3.5e-3, cs1_value=121.28e-12, cs2_value=43.47e-12)
print(eqn_2_27.subs(param).evalf())
print(eqn_2_28.subs(param).evalf())

View File

@ -0,0 +1,46 @@
import matplotlib.pyplot as plt
def tabelle_als_bild(spannungen, dateiname="tabelle.png"):
"""Erstellt eine Tabelle als Bild mit Matplotlib mit farbigen Blitzen und Rahmen.
Args:
spannungen: Eine Liste der Spannungswerte.
dateiname: Der Dateiname für das gespeicherte Bild.
"""
fig, ax = plt.subplots(figsize=(2, len(spannungen)/2 + 0.5))
table_data = [["kV"]] # Einheit in der ersten Zeile
for i, spannung in enumerate(spannungen):
if i == len(spannungen) - 1: # Letzte Zeile
table_data.append([f"{spannung:.1f}"])
else:
table_data.append([f"{spannung:.1f}"])
table = ax.table(cellText=table_data, loc='center', cellLoc='center')
# Formatierung
table.scale(1, 1.5)
ax.axis('off')
# Rahmen und Textformatierung
for (row, col), cell in table.get_celld().items():
if row == len(spannungen): # Rahmen um die letzte Zeile (mit Blitzen)
cell.set_edgecolor("red") # Roter Rahmen
cell.set_linewidth(3)
text = cell.get_text()
text.set_text(f"{spannungen[-1]:.1f}") # Text neu setzen mit direkter Formatierung
text.set_fontsize(12)
text.set_color("black") # Textfarbe wieder auf Schwarz setzen
for t in text.get_children(): # Durch die Text-Elemente iterieren
if "" in t.get_text(): # Wenn es ein Blitz ist
t.set_color("yellow") # Gelbe Farbe setzen
cell.set_text_props(ha='center', va='center')
elif row > 0: #alle anderen Zellen außer der ersten zentrieren
cell.get_text().set_text(f"{spannungen[row-1]:.1f}")
cell.set_text_props(ha='center', va='center')
plt.show()
# Beispiele
spannungen1 = [9.6, 11.2, 12.8, 14.4, 16.0, 17.6]
tabelle_als_bild(spannungen1, "tabelle_mit_farben_17_6.png")

View File

@ -0,0 +1,106 @@
import pandas as pd
import matplotlib.pyplot as plt
# Data for Elektrolyt
data_elektrolyt = {
'Frequency': [10.0, 12.8, 16.4, 21.1, 27.0, 34.7, 44.5, 57.1, 73.3, 94.1, 120.7, 154.8, 198.7, 254.9, 327.0, 419.5,
538.2, 690.4, 885.7, 1136.3, 1457.7, 1870.1, 2399.1, 3077.7, 3948.4, 5065.3, 6498.1, 8336.3, 10694,
13719, 17600, 22579, 28966, 37160, 47672, 61157, 78457, 100600, 129100, 165600, 212500, 272600,
349700, 448600, 575500, 738400, 947200, 1215200, 1558900, 2000000],
'Cp': [104.895, 104.075, 103.54, 102.686, 101.968, 101.24, 100.559, 99.6017, 98.506, 97.3005, 96.0381, 94.6749,
93.2414, 91.5704, 89.4685, 86.8599, 83.3399, 78.6113, 72.3663, 64.4553, 55.0498, 44.8098, 34.6581, 25.5639,
18.112, 12.4422, 8.29798, 5.42676, 3.4909, 2.21391, 1.37984, 0.85819, 0.53027, 0.326003, 0.198572, 0.116745,
0.065337, 0.033992, 0.021283, 0.007813, -0.008515, -0.019496, -0.022002, -0.025269, -0.028138, -0.027727,
-0.030682, -0.030119, -0.030184, -0.119829],
'Rp': [1030.805, 925.754, 768.236, 677.815, 522.301, 400.069, 318.919, 247.917, 188.441, 139.598, 101.946, 72.9281,
50.9228, 35.0056, 23.6547, 15.8551, 10.6114, 7.14092, 4.89005, 3.44207, 2.5192, 1.93264, 1.5605, 1.32286,
1.17003, 1.07059, 1.00441, 0.959838, 0.929467, 0.910211, 0.897243, 0.88938, 0.883845, 0.880524, 0.87854,
0.877302, 0.874489, 0.868925, 0.871911, 0.871293, 0.860944, 0.866543, 0.860571, 0.863848, 0.86817, 0.864249,
0.879133, 0.882055, 0.911985, 0.729654],
}
# Data for Folien
data_folien = {
'Frequency': [10.0, 12.8, 16.4, 21.1, 27.0, 34.7, 44.5, 57.1, 73.3, 94.1, 120.7, 154.8, 198.7, 254.9, 327.0, 419.5,
538.2, 690.4, 885.7, 1136.3, 1457.7, 1870.1, 2399.1, 3077.7, 3948.4, 5065.3, 6498.1, 8336.3, 10694,
13719, 17600, 22579, 28966, 37160, 47672, 61157, 78457, 100600, 129100, 165600, 212500, 272600,
349700, 448600, 575500, 738400, 947200, 1215200, 1558900, 2000000],
'Cp': [98.1703, 98.1546, 98.1372, 98.1121, 98.0995, 98.0874, 98.0812, 98.0566, 98.017, 97.9706, 97.8958, 97.7886,
97.6216, 97.3707, 97.0083, 96.4013, 95.4586, 93.9833, 91.6877, 88.1895, 83.0096, 75.7376, 66.2256, 54.9048,
42.8889, 31.6118, 21.9684, 14.6131, 9.38049, 5.83512, 3.49828, 2.04385, 1.14132, 0.58884, 0.252853, 0.052954,
-0.071438, -0.135339, -0.179777, -0.2034, -0.213339, -0.218015, -0.216205, -0.208263, -0.194701, -0.17637,
-0.156105, -0.132683, -0.107929, -0.101847],
'Rp': [50.1878, 31.5219, 19.435, 11.731, 7.1623, 4.36563, 2.65748, 1.6296, 0.997532, 0.609263, 0.373217, 0.228572,
0.139678, 0.085466, 0.052224, 0.032077, 0.019758, 0.012237, 0.007643, 0.004839, 0.003131, 0.002089, 0.001454,
0.001067, 0.000832, 0.000689, 0.0006, 0.000546, 0.000513, 0.000493, 0.00048, 0.000473, 0.000469, 0.000467,
0.000467, 0.000466, 0.000468, 0.000468, 0.000471, 0.000473, 0.000478, 0.000486, 0.000498, 0.000517, 0.000547,
0.000592, 0.00066, 0.000771, 0.000947, 0.001178],
}
# Data for Keramik
data_keramik = {
'Frequency': [10.0, 12.8, 16.4, 21.1, 27.0, 34.7, 44.5, 57.1, 73.3, 94.1, 120.7, 154.8, 198.7, 254.9, 327.0, 419.5,
538.2, 690.4, 885.7, 1136.3, 1457.7, 1870.1, 2399.1, 3077.7, 3948.4, 5065.3, 6498.1, 8336.3, 10694,
13719, 17600, 22579, 28966, 37160, 47672, 61157, 78457, 100600, 129100, 165600, 212500, 272600,
349700, 448600, 575500, 738400, 947200, 1215200, 1558900, 2000000],
'Cp': [9.337606e-07, 9.343870e-07, 9.334549e-07, 9.329069e-07,
9.323479e-07, 9.311796e-07, 9.305802e-07, 9.299153e-07,
9.292366e-07, 9.285809e-07, 9.278018e-07, 9.271119e-07,
9.264786e-07, 9.259473e-07, 9.256416e-07, 9.251245e-07,
9.246721e-07, 9.242606e-07, 9.238882e-07, 9.235746e-07,
9.232599e-07, 9.229495e-07, 9.226452e-07, 9.223339e-07,
9.220640e-07, 9.218148e-07, 9.214863e-07, 9.215784e-07,
9.212312e-07, 9.208448e-07, 9.204230e-07, 9.200688e-07,
9.195376e-07, 9.190440e-07, 9.185822e-07, 9.181618e-07,
9.180928e-07, 9.174063e-07, 9.168448e-07, 9.161407e-07,
9.154975e-07, 9.145927e-07, 9.137457e-07, 9.131353e-07,
9.128255e-07, 9.135270e-07, 9.207625e-07, -5.487440e-07,
-5.684640e-07, -4.134720e-07],
'Rp': [None, None, None, None, None, 0.9267592, 0.651835,
0.5315705, 0.4502702, 0.3803751, 0.3200941, 0.2503684,
0.2111238, 0.173803, 0.1398907, 0.1127589, 0.09407312,
0.07650648, 0.06299415, 0.04921066, 0.03831692, 0.03002577,
0.02366553, 0.0187392, 0.01508398, 0.01214105, 0.0091464,
0.006708373, 0.005069716, 0.003754666, 0.002787036,
0.002083809, 0.001492108, 0.001076167, 0.7722406,
0.5962365, 0.415347, 0.2967726, 0.2072099, 0.1469611,
0.1010326, 0.06896882, 0.04676412, 0.03097186, 0.02108662,
0.013847, 0.0083941, 0.1264634, 0.1215801, 0.1853224]
}
import pandas as pd
import matplotlib.pyplot as plt
def clean_data(df):
df.replace('INVALID', float('nan'), inplace=True)
df.dropna(inplace=True)
return df[df['Frequency'] <= 10**6] # Filter data for Frequency <= 10^6
# Assuming 'data_elektrolyt', 'data_folien', and 'data_keramik' are your data sources
df_elektrolyt = clean_data(pd.DataFrame(data_elektrolyt))
df_folien = clean_data(pd.DataFrame(data_folien))
# df_keramik = clean_data(pd.DataFrame(data_keramik)) # Not used anymore
# Plot for Cp
fig, ax1 = plt.subplots(figsize=(10, 6))
# Plot Cp for Elektrolyt and Folien on the left y-axis
ax1.plot(df_elektrolyt['Frequency'], df_elektrolyt['Cp'], label='Elektrolyt 100µF')
ax1.plot(df_folien['Frequency'], df_folien['Cp'], label='Folien 100µF')
ax1.set_xlabel('Frequenz f [ Hz]')
ax1.set_ylabel('Kapazität Cp [F]')
ax1.tick_params(axis='y')
plt.grid(True)
# Set logarithmic scale for x-axis
ax1.set_xscale('log')
# Limit x-axis to not exceed 10^6
ax1.set_xlim(right=10**6)
# Add title and legend
ax1.legend(loc='lower left')
plt.tight_layout()
plt.show()

View File

@ -0,0 +1,34 @@
import matplotlib.pyplot as plt
import numpy as np
from scipy.interpolate import make_interp_spline
abstand = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
messwerte = np.array([65.01, 40.41, 26.67, 19.65, 15.61, 13.13, 11.11, 10.08, 8.85, 7.93])
konstante = messwerte[0] * abstand[0]
idealwerte = konstante / abstand
# Spline-Interpolation für Messwerte
xnew = np.linspace(abstand.min(), abstand.max(), 300)
spl = make_interp_spline(abstand, messwerte, k=3)
messwerte_smooth = spl(xnew)
# Spline-Interpolation für Idealwerte
spl_ideal = make_interp_spline(abstand, idealwerte, k=3)
idealwerte_smooth = spl_ideal(xnew)
plt.figure(figsize=(10, 6))
# Fläche zwischen den Graphen füllen
plt.fill_between(xnew, messwerte_smooth, idealwerte_smooth, color='red', alpha=0.3, label='Differenz') # alpha für Transparenz
plt.plot(xnew, messwerte_smooth, linestyle='-', label='Messwerte (geglättet)')
plt.plot(xnew, idealwerte_smooth, linestyle='--', label='Idealwerte (geglättet)')
plt.xlabel('Abstand l [mm]')
plt.ylabel('Kapazität C [pF]')
#plt.title('Kapazität in Korrelation zum Abstand eines Luftkondensators (geglättet)')
plt.grid(True)
plt.legend()
plt.xticks(abstand)
plt.yticks(np.arange(min(messwerte), max(messwerte)+5, 5.0))
plt.show()

32
piezo-gewichte-graph.py Normal file
View File

@ -0,0 +1,32 @@
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
# Deine Daten (in mV)
data_10g = [412, 284, 360, 548, 280, 304, 380, 312, 278, 444]
data_20g = [960, 960, 992, 968, 936, 952, 1160, 1200, 1010, 1000]
data_50g = [1180, 2020, 1120, 1260, 1240, 1580, 1140, 2340, 1700, 1060]
data_100g = [4080, 5280, 5160, 5080, 3520, 4280, 4800, 5120, 4400, 4240]
data = [data_10g, data_20g, data_50g, data_100g]
labels = ['10g', '20g', '50g', '100g']
means = [np.mean(d) for d in data]
# Violin Plots
plt.figure(figsize=(8, 6))
ax = sns.violinplot(data=data, inner="box")
# X-Achsen-Ticks und Beschriftungen anpassen
x_coords = ax.get_xticks() # X-Koordinaten der Ticks abrufen
new_labels = []
for i, label in enumerate(labels):
new_labels.append(f"{label}\n{means[i]:.2f} mV") # Neue Beschriftungen mit Durchschnitt
ax.set_xticks(x_coords) # Ticks setzen
ax.set_xticklabels(new_labels) # Neue Beschriftungen setzen
ax.set_xlabel('Gewicht')
ax.set_ylabel('Ergebnis [mV]')
ax.set_title('Messwert Aufteilung der gemessenen Spannungen pro Gewicht')
plt.tight_layout()
plt.show()