From 3d23539094e58226e13c87a20d4619e9111fbbc1 Mon Sep 17 00:00:00 2001 From: Maximilian Eibl Date: Tue, 28 Jan 2025 21:18:43 +0100 Subject: [PATCH] neue plots --- .idea/discord.xml | 7 ++ .idea/vcs.xml | 6 ++ 100muF Elektrolyt.txt | 50 +++++++++++++ 100muF Folien.txt | 50 +++++++++++++ 1nF Keramik.txt | 50 +++++++++++++ Dielektrizitätszahl.py | 94 ++++++++++++++++++++++++ durschl-stehspannung-papier-graph.py | 46 ++++++++++++ kapazität-frequenz_kondensatoren.py | 106 +++++++++++++++++++++++++++ kapazität-luft_kondensator-graph.py | 34 +++++++++ piezo-gewichte-graph.py | 32 ++++++++ 10 files changed, 475 insertions(+) create mode 100644 .idea/discord.xml create mode 100644 .idea/vcs.xml create mode 100644 100muF Elektrolyt.txt create mode 100644 100muF Folien.txt create mode 100644 1nF Keramik.txt create mode 100644 Dielektrizitätszahl.py create mode 100644 durschl-stehspannung-papier-graph.py create mode 100644 kapazität-frequenz_kondensatoren.py create mode 100644 kapazität-luft_kondensator-graph.py create mode 100644 piezo-gewichte-graph.py diff --git a/.idea/discord.xml b/.idea/discord.xml new file mode 100644 index 0000000..30bab2a --- /dev/null +++ b/.idea/discord.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/100muF Elektrolyt.txt b/100muF Elektrolyt.txt new file mode 100644 index 0000000..172220a --- /dev/null +++ b/100muF Elektrolyt.txt @@ -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 \ No newline at end of file diff --git a/100muF Folien.txt b/100muF Folien.txt new file mode 100644 index 0000000..40f9146 --- /dev/null +++ b/100muF Folien.txt @@ -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 \ No newline at end of file diff --git a/1nF Keramik.txt b/1nF Keramik.txt new file mode 100644 index 0000000..08ea443 --- /dev/null +++ b/1nF Keramik.txt @@ -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 \ No newline at end of file diff --git a/Dielektrizitätszahl.py b/Dielektrizitätszahl.py new file mode 100644 index 0000000..874e1f6 --- /dev/null +++ b/Dielektrizitätszahl.py @@ -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()) diff --git a/durschl-stehspannung-papier-graph.py b/durschl-stehspannung-papier-graph.py new file mode 100644 index 0000000..ccc7089 --- /dev/null +++ b/durschl-stehspannung-papier-graph.py @@ -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") \ No newline at end of file diff --git a/kapazität-frequenz_kondensatoren.py b/kapazität-frequenz_kondensatoren.py new file mode 100644 index 0000000..fcf208f --- /dev/null +++ b/kapazität-frequenz_kondensatoren.py @@ -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() diff --git a/kapazität-luft_kondensator-graph.py b/kapazität-luft_kondensator-graph.py new file mode 100644 index 0000000..0128b3b --- /dev/null +++ b/kapazität-luft_kondensator-graph.py @@ -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() \ No newline at end of file diff --git a/piezo-gewichte-graph.py b/piezo-gewichte-graph.py new file mode 100644 index 0000000..fc008d3 --- /dev/null +++ b/piezo-gewichte-graph.py @@ -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() \ No newline at end of file