-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRecursiefVoorbeeld.py
More file actions
99 lines (74 loc) · 2.69 KB
/
RecursiefVoorbeeld.py
File metadata and controls
99 lines (74 loc) · 2.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
"""Created on Fri Oct 11 14:27:41 2024 by Floris Messack."""
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from Libs import tn
plt.close("all") # Kan je weghalen, kan je laten, vrije keuze.
"""
##### Variabelen #############################################################
"""
# Dit bestand voegt automatisch de meetonzekerheid van de MMTTi-1604 toe.
# Alleen meetdata is benodigd, van twee assen.
Excel_bestand = "LibsTNvoorbeelddata.xlsx" # Selecteer bestand
Sheet = "Sheet1" # Selecteer blad
Label = "Stapresponsie"
metingcount = 3
X_as = "T" # Titel van de kolom in excel zonder nummering
Y_as = "U_h"
X_as_label = r"$t$ [s]"
Y_as_label = r"$U$ [V]" # de $$ maakt het een math environment & cursief
p0 = [30, 4, 20] # a0, a1, a2, etc.
# De functieverwerking werkt met np. en math., tot 24 parameters.
# Heb ook ln, log2 en log10 toegevoegd
fitfunctie = "a0 *(1 - np.exp(-(x+a1)/a2))-9.09"
# Kleurcollectie voor iedere dataset
c = ["b", "orange", "r", "g", "black", "purple", "brown", "pink"]
"""
##### Extract en plot data recursief #########################################
"""
fig1, ax1 = plt.subplots(1, 1, figsize=(12, 6)) # Creëer figuuromgeving
popt = np.zeros((metingcount, len(p0))) # Pre-allocation voor referenties
perr = np.zeros((metingcount, len(p0)))
_path = tn.vind_bestand(Excel_bestand) # Buiten de loop, voorkomt onnodig
_dataframe = pd.read_excel(_path, Sheet) # herhalen van code
for i in range(metingcount):
Xas = f"{X_as}{i+1}" # Automatische nummertoevoeging en behoud X_as
Yas = f"{Y_as}{i+1}"
# Data-extractie
columns = tn.zoek_kolom( # Selecteer kolommen en maak een grote dict.
_dataframe,
[Xas, Yas],
)
Xas = columns[Xas][1:] # Tijdswaarden zonder 1e waarde
Yas = columns[Yas][1:] # Spanningswaarden van waterpeil
# Meting is automatisch getimed -> onzekerheid van de .time() functie
err_Xas = np.ones(len(Xas)) * 16e-3
# Meting is gedaan met de multimeter
err_Yas = tn.MMTTi_1604_error(Yas, "U")
# Plotten van data
[popt[i], perr[i], _] = tn.sigmaPolynoomfit(
ax1,
2,
Xas,
Yas,
err_Xas,
err_Yas,
label=r"%s %d" % (Label, i + 1),
func=fitfunctie,
p0=p0,
colour=c[i],
full_label=False,
)
"""
##### Plot data ##############################################################
"""
ax1.set_title(r"Voorbeeldtitel $U_{h}$ (gain) met tijd")
tn.grafiek_opmaak(
ax1,
X_as_label,
Y_as_label,
5,
# xlim=[0, 55],
# ylim=[-10, 12.5], # Dit is voor de zoom-in
)
plt.show() # Niet te vergeten