Пример #1
0
def c_open(file):
    """
    Zum Einlesen der CASSY-Messungen
    Parameter: file - Messdatei
    returns: f, U, I 
    """
    data = cassy.CassyDaten(file)
    R = data.messung(1).datenreihe("R_B1").werte
    U = data.messung(1).datenreihe("U_A1").werte
    return np.array(R), np.array(U)
Пример #2
0
def c_open(file):
    """
    Zum Einlesen der CASSY-Messungen
    Parameter: file - Messdatei
    returns: t, U, I 
    """
    data = cassy.CassyDaten(file)
    t = data.messung(1).datenreihe("t").werte
    I = data.messung(1).datenreihe("I_A2").werte
    U = data.messung(1).datenreihe("U_B2").werte
    return t, U, I
Пример #3
0
def c_open(file):
    """
    Zum Einlesen der CASSY-Messungen
    Parameter: file - Messdatei
    returns: t, U1, U2
    """
    data = cassy.CassyDaten(file)
    t = data.messung(1).datenreihe("t").werte
    U1 = data.messung(1).datenreihe("U_A1").werte
    U2 = -data.messung(1).datenreihe("U_B1").werte
    return t, U1, U2
Пример #4
0
def c_open(file, N_Messung):
    """
    Zum Einlesen der CASSY-Messungen
    Parameter: file - Messdatei
    returns: t, U, I 
    """
    data = cassy.CassyDaten(file)
    s = []
    Dt_A1 = []
    R = []
    for i in range(N_Messung):
        s.append(data.messung(i + 1).datenreihe("s").werte)
        Dt_A1.append(data.messung(i + 1).datenreihe("&Dt_A1").werte)
        R.append(data.messung(i + 1).datenreihe("R_B1").werte)
    return np.array(s), np.array(Dt_A1), np.array(R)
Пример #5
0
def fft_analysis(groesse, hoehe, nummer):
    #Daten mit Korrektur
    dataname = groesse + '_' + hoehe + '_' + nummer

    data = cassy.CassyDaten('daten/' + dataname + '.lab')
    time = data.messung(1).datenreihe('t').werte
    pres = data.messung(1).datenreihe('p_A1').werte

    #Signale abschneiden
    time, pres = analyse.untermenge_daten(time, pres, 0, tgrenz[dataname])

    fourier = analyse.fourier_fft(time, pres)
    freq = fourier[0]
    amp = fourier[1]
    peak = analyse.peakfinder_schwerpunkt(freq[3:100], amp[3:100])
    delta = korrektur(time, pres)
    return (2 * np.pi * peak, delta)
Пример #6
0
# -*- coding: utf-8 -*-
"""
Created on Sat Dec 22 19:57:55 2018

@author: Anwender
"""

import Temperatur
import matplotlib.pyplot as plt
import numpy as np
import praktikum.cassy as cassy
import praktikum.analyse as analyse

#Daten einlesen
data = cassy.CassyDaten("Kalibrierung_Wegaufnehmer.lab")
n = np.array(data.messung(1).datenreihe("n").werte) #Nummer des Messpunktes, wobei n=1 der weiteste Abstand war
R = np.array(data.messung(1).datenreihe("R_B1").werte) #Widerstand in kOhm

#n->L
L=(5*len(n)-5*(n)) #in cm #es wurde in 5cm-Schritten gemessen #TODO: np.arange(0.5,30.5,5)
#So ist L=0 bei der Messung, die am nächsten an der Quelle war und L wird bei größerem Abstand von der Quelle größer

L_err=np.ones(len(L))*0.1/2 #cm
R_err=np.ones(len(R))*0.005/np.sqrt(12) #kOhm
L_esys=0.03+0.02*1 #cm #Güteklasse II:a+b*L mit a=0.3mm, b=0.2mm/m, L= auf ganzen Meter gerundete zu messende Länge
                    #=const.
#lineare Regression
k,k_err,L0,L0_err,chiq,corr=analyse.lineare_regression_xy(R,L,R_err,L_err)
chiq,k,k_err=Temperatur.round_good(chiq,k,k_err)
x,L0,L0_err=Temperatur.round_good(0,L0,L0_err)
Пример #7
0
import numpy as np
from pylab import *

close('all')

def calc_mean_distance(ind,v):
    dis = 0
    i = 0
    while i < len(ind)-1:
        dis = dis + v[ind[i+1]]-v[ind[i]]
        i = i+1
        
    dis = dis/(len(ind)-1)
    return dis

data = cassy.CassyDaten('Schwebung_1_250n.lab')
U1 = data.messung(1).datenreihe('U_B1').werte
t = data.messung(1).datenreihe('t').werte

ind_max = find_peaks_cwt(U1,np.arange(1,20))
ind_max = ind_max[:20]
ind_max = ind_max[3:]

w_array,A = analyse.fourier_fft(t,U1)
ind_w1=analyse.peak(w_array,A,np.argmax(w_array>950),np.argmax(w_array>1020))
ind_w2=analyse.peak(w_array,A,np.argmax(w_array>1100),np.argmax(w_array>1160))

plot(w_array,A/max(A))
plt.axvline(x=w_array[int(ind_w1)], color="darkred", linestyle = "--") 
plt.text(w_array[int(ind_w1)],0.7,'max_1:{} Hz'.format(np.round(w_array[int(ind_w1)],4)))
plt.axvline(x=w_array[int(ind_w2)], color="darkred", linestyle = "--") 
Пример #8
0
Spyder Editor

This is a temporary script file.
"""

from praktikum import analyse
from praktikum import cassy
import numpy as np
import matplotlib.pyplot as plt

#gemessene Laengen
rp = 0.5*0.07995
lp = 0.615+0.02535+rp

#Daten laden
data_s = cassy.CassyDaten('daten1.lab')
data_p = cassy.CassyDaten('daten2.lab')
timeVal = data_s.messung(1).datenreihe('t').werte
voltage_s = data_s.messung(1).datenreihe('U_A1').werte
voltage_p = data_p.messung(1).datenreihe('U_A1').werte

#Bestimmte Zeitpunkte der Maxima in s
n = np.arange(0,200,10)
n[0] = 1
period_p = [0.48, 15.38, 31.94, 48.48, 65.04, 81.56, 98.11, 114.68,
            131.28, 147.84, 164.36, 180.9, 197.46, 214.02, 230.56,
            247.12, 263.68, 280.22, 296.8, 313.34]

period_s = [1.5, 16.44, 33.01, 49.59, 66.14, 82.73, 99.32,
          115.86, 132.46, 149.05, 165.64, 182.18, 198.8,
          215.34, 231.92, 248.47, 265.08, 281.62, 298.23, 314.83]
Пример #9
0
ax1.set_ylabel('$U_1$ / V')
ax1.grid()

ax2.plot(1000*time, vol2)
ax2.set_ylabel('$U_2$ / V')
ax2.set_xlabel('$t$ / ms')
ax2.set_xlim(0,10)
ax2.grid()

plt.subplots_adjust(hspace=0)
plt.savefig('plots/fundamental_roh.pdf', format='pdf', dpi=1200)
plt.show()
'''

# Frequenzspektrum
data1 = cassy.CassyDaten('daten/fundamental_3.lab')
time1 = data1.messung(1).datenreihe('t').werte
vol1_1 = data1.messung(1).datenreihe('U_A1').werte
vol1_2 = data1.messung(1).datenreihe('U_A2').werte
fre1_1, amp1_1 = analyse.fourier_fft(time1, vol1_1)
fre1_2, amp1_2 = analyse.fourier_fft(time1, vol1_2)

data2 = cassy.CassyDaten('daten/fundamental_2.lab')
time2 = data2.messung(1).datenreihe('t').werte
vol2_1 = data2.messung(1).datenreihe('U_A1').werte
vol2_2 = data2.messung(1).datenreihe('U_A2').werte
fre2_1, amp2_1 = analyse.fourier_fft(time2, vol2_1)
fre2_2, amp2_2 = analyse.fourier_fft(time2, vol2_2)

peak1_1 = analyse.peakfinder_schwerpunkt(fre1_1[5:600], amp1_1[5:600])
peak1_2 = analyse.peakfinder_schwerpunkt(fre1_2[5:600], amp1_2[5:600])
Пример #10
0
def round_good(m,s,err): 
    '''
    Passt Mittelwert- und Standardabweichungsnachkommastellen an den Fehler an (2 signifikante Stellen des Fehlers)
    m=mean
    s=std
    err=std/sqrt(len)
    '''
    i=2
    test=list('{:.20f}'.format(err))
    while test[i]=='0':
        i+=1
    return np.round([m,s,err],i)

#Daten einlesen
data = cassy.CassyDaten('gegen.koppl.eisen.lab')
U1 = data.messung(1).datenreihe('U_B1').werte
U2 = data.messung(1).datenreihe('U_B2').werte
t = data.messung(1).datenreihe('t').werte

#Rohdatenplot
subplot(2,1,1)
plot(t,U1)
ylabel('$U$ / V')
xlabel('t/s')
xlim(0,0.04)
title('erster Schwingkreis')
grid()

subplot(2,1,2)
plot(t,U2)
Пример #11
0
plt.show()
'''



fplus = np.array([])
fminus = np.array([])

dic_file = {1:'ohne2', 2:'ohne3', 3:'eisen2'}
dic_fre = {1: np.array([57,67,70,78]), 2:np.array([64,68,68,72]), 3:np.array([20,29,40,49])}

freqs = np.array([])
amps = np.array([])

for i in range(1,4,1):
    data = cassy.CassyDaten('daten/schwebung_' + dic_file[i] + '_1.lab')
    time = data.messung(1).datenreihe('t').werte
    vol = data.messung(1).datenreihe('U_A1').werte
    vol2 = data.messung(1).datenreihe('U_A2').werte
    
    freq, amp = analyse.fourier_fft(time, vol)
    freq2, amp2 = analyse.fourier_fft(time, vol2)
    (freq, amp) = analyse.untermenge_daten(freq, amp, 0, 50000)
    (freq2, amp2) = analyse.untermenge_daten(freq2, amp2, 0, 50000)
    peak1 = analyse.peakfinder_schwerpunkt(freq[dic_fre[i][0]:dic_fre[i][1]], amp[dic_fre[i][0]:dic_fre[i][1]])
    peak2 = analyse.peakfinder_schwerpunkt(freq[dic_fre[i][2]:dic_fre[i][3]], amp[dic_fre[i][2]:dic_fre[i][3]])
    ymax1 = amp[dic_fre[i][0]:dic_fre[i][1]].argmax()
    ymax2 = amp[dic_fre[i][2]:dic_fre[i][3]].argmax()
    
    fplus = np.concatenate((fplus, np.array([peak1, np.abs(peak1-freq[dic_fre[i][0]+ymax1])])))
    fminus = np.concatenate((fminus, np.array([peak2, np.abs(peak2-freq[dic_fre[i][2]+ymax2])])))
Пример #12
0
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Mon Sep 16 21:19:03 2019

@author: simon
"""

from praktikum import analyse
from praktikum import cassy
import numpy as np
import matplotlib.pyplot as plt

data = cassy.CassyDaten('daten/mittel_20_3.lab')
timeVal = data.messung(1).datenreihe('t').werte
pres = data.messung(1).datenreihe('p_A1').werte
f, (ax1, ax2) = plt.subplots(2, 1)
ax1.plot(timeVal, pres, color='red')
freq, amp = analyse.fourier_fft(timeVal, pres)
ax2.plot(freq[0:8000], amp[0:8000], color='red')
ax1.set_ylabel("Druckdifferenz / hPa")
ax2.set_ylabel("Amplitude")
ax2.set_xlabel("$f$ / Hz")
ax1.set_xlabel("$t$ / $s$")
ax1.set_xlim(0, 8)
ax2.set_xlim(0, 5)
plt.rcParams["figure.figsize"] = (12, 6)
plt.rcParams['axes.titlesize'] = 'large'
plt.rcParams['axes.labelsize'] = 'large'
f.tight_layout()
plt.savefig('plots/rohdaten.pdf')
Пример #13
0
close('all')


def calc_mean_distance(ind, v):
    dis = 0
    i = 0
    while i < len(ind) - 1:
        dis = dis + v[ind[i + 1]] - v[ind[i]]
        i = i + 1

    dis = dis / (len(ind) - 1)
    return dis


data = cassy.CassyDaten('Gleichsinnig/gleich.koppl.eisen.lab')
U1 = data.messung(1).datenreihe('U_B1').werte
U2 = data.messung(1).datenreihe('U_B2').werte
t = data.messung(1).datenreihe('t').werte

w1, A1 = analyse.fourier_fft(t, U1)
w1 = analyse.peakfinder_schwerpunkt(w1, A1)
print("Frequenz 1 aus fft: ", w1)

w2, A2 = analyse.fourier_fft(t, U2)
w2 = analyse.peakfinder_schwerpunkt(w2, A2)
print("Frequenz 2 aus fft: ", w2)

w_mean = (w1 + w2) / 2
w_std = np.sqrt((w1 - w_mean)**2 + (w2 - w_mean)**2)
print("mittlere Frequenz aus fft", w_mean, "+-", w_std)
Пример #14
0
import praktikum.cassy as cassy
import Rauschmessung

offsetM = Rauschmessung.mM
offsetSt = Rauschmessung.mSt

l = 0.68
r = 0.08035 / 2
errl_stat = 0.001
errr_stat = 0.0001
errl_sys = 0.0003 + 0.0002 * 1  # Güteklasse II:a+b*L mit a=0.3mm, b=0.2mm/m, L= auf ganzen Meter gerundete zu messende Länge
T = []
errT = []

for i in range(1, 4):
    data = cassy.CassyDaten("Erdbeschleunigung/perfekte_anpassung_messung_" +
                            str(i) + ".lab")
    t = data.messung(1).datenreihe("t").werte
    M = data.messung(1).datenreihe(
        "U_A1").werte - offsetM  #Pendelkörper (Masse)
    St = data.messung(1).datenreihe("U_B1").werte - offsetSt  #Stange allein

    if __name__ == '__main__':
        #Rohdatenplot bis Stange zu gedämpft
        von = 0
        bis = -1  #np.argmax(t>=100)
        plt.plot(t[von:bis], M[von:bis], color='black')
        plt.plot(t[von:bis], St[von:bis], color='red')
        plt.title('Schwingung mit körperloser Frequenz {}'.format(i))
        plt.grid()
        plt.savefig('Images/Erdbeschleunigung_Roh_' + str(i) + '.jpg')
Пример #15
0
    '''
    Passt Mittelwert- und Standardabweichungsnachkommastellen an den Fehler an (2 signifikante Stellen des Fehlers)
    m=mean
    s=std
    err=std/sqrt(len)
    '''
    i=2
    test=list('{:.20f}'.format(err))
    while test[i]=='0': #TODO: wie groß sind die Fehler auf L? Kommastelle finden oder nicht?
        i+=1
    return np.round([m,s,err],i)

plt.close('all')

t, p, T = [], [], [] #Temperatur in °C, Druck in hPa!
data = cassy.CassyDaten("Rauschmessung.lab")
t = data.messung(1).datenreihe("t").werte
T = data.messung(1).datenreihe("&J_A11").werte
p = data.messung(1).datenreihe("p_B1").werte

print("Temperaturverteilung")
print("m=" + str(np.round(np.average(T),1))+" °C , s="+str(np.round(np.std(T),2))+" °C , err="+str(round_up(np.std(T)/np.sqrt(len(T)),1))+" °C")
plt.hist(T,7, normed=True)
x=np.arange(np.average(T)-0.25, np.average(T)+0.25, 0.001)
plt.plot(x, gauss(x, np.average(T), np.std(T)))
plt.title(u"Rauschmessung bei Raumtemperatur\n $\sigma$=" + str(np.round(np.std(T),2))+"$^{\circ}C$, $\mu$="+str(np.round(np.average(T),1))+ "$^{\circ}C$, $\sigma_{\mu} = $"+str(round_up(np.std(T)/np.sqrt(len(T)),1))+"$^{\circ}C$")
plt.xlabel(u"T/°C")
plt.ylabel('Relatives Vorkommen')
plt.savefig("Images/RauschmessungRT_T_histo.jpg")
plt.figure()
Пример #16
0
    '''
    Passt Mittelwert- und Standardabweichungsnachkommastellen an den Fehler an (2 signifikante Stellen des Fehlers)
    m=mean
    s=std
    err=std/sqrt(len)
    '''
    i = 2
    test = list('{:.20f}'.format(err))
    while test[i] == '0':
        i += 1
    return np.round([m, s, err], i)


plt.close('all')

data = cassy.CassyDaten("gekoppelt/Rauschmessung.lab")
t = data.messung(1).datenreihe("t").werte
M = data.messung(1).datenreihe("U_A1").werte  #Pendelkörper (Masse)
St = data.messung(1).datenreihe("U_B1").werte  #Stange allein

#----------------------------#
#Auswertung der Rauschmessung#
#----------------------------#

#Mittelwerte, Standardabweichungen und Fehler
mM, sM, errM = round_good(np.average(M), np.std(M),
                          np.std(M) / np.sqrt(len(M)))
mSt, sSt, errSt = round_good(np.average(St), np.std(St),
                             np.std(St) / np.sqrt(len(St)))

if __name__ == "__main__":
Пример #17
0
U_array = []
I_array = []
U_err_array = []
I_err_array = []
U_sigma = []
I_sigma = []
U_B = 20
I_B = 0.6

sigmaU = U_B / 4096. / np.sqrt(12.)
sigmaI = I_B / 4096. / np.sqrt(12.)

for i in range(1, 6):
    #Daten Einlesen
    t, U, I = [], [], []  #Zeit, Spannung, Strom
    data = cassy.CassyDaten("Widerstand_2.lab")
    t = data.messung(i).datenreihe("t").werte
    U = data.messung(i).datenreihe("U_B1").werte
    I = data.messung(i).datenreihe("I_A1").werte

    #Mittelwert, Standardabweichung, Fehler auf den Mittelwert
    mU, sU, errU = round_good(np.mean(U), np.std(U),
                              np.std(U) / np.sqrt(len(U)))
    mI, sI, errI = round_good(np.mean(I), np.std(I),
                              np.std(I) / np.sqrt(len(I)))

    if __name__ == '__main__':
        print('U-werte')
        print('m=' + str(mU) + u' V, std=' + str(sU) + u' V, err=' +
              str(errU) + u' V')
        print('I-werte')
Пример #18
0
# -*- coding: utf-8 -*-


from praktikum import analyse
from praktikum import cassy
import numpy as np
import matplotlib.pyplot as plt

# Daten laden
data = cassy.CassyDaten('daten/schwebung_1.lab')
timeVal = data.messung(1).datenreihe('t').werte
voltage = data.messung(1).datenreihe('U_A1').werte


'''
t = [0, 8]
plt.plot(timeVal, voltage)

plt.xlim(t[0], t[1])
#plt.ylim(-0.3,0.3)

plt.xticks(np.arange(t[0], t[1], 0.02))
#plt.xticks(np.arange(t[0],t[1], 2*0.0069))

plt.grid()
plt.tight_layout()
plt.show()
'''

'''
# Rohdaten visualisieren
Пример #19
0
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

from praktikum import analyse
from praktikum import cassy
import numpy as np
import matplotlib.pyplot as plt

# Daten laden
data1 = cassy.CassyDaten('daten/spektrum_1.2.lab')
time1 = data1.messung(1).datenreihe('t').werte
volt1 = data1.messung(1).datenreihe('U_A1').werte

data2 = cassy.CassyDaten('daten/spektrum_2.lab')
time2 = data2.messung(1).datenreihe('t').werte
volt2 = data2.messung(1).datenreihe('U_A1').werte

data3 = cassy.CassyDaten('daten/spektrum_3.1.lab')
time3 = data3.messung(1).datenreihe('t').werte
volt3 = data3.messung(1).datenreihe('U_A1').werte

# Fourier
fourier1 = analyse.fourier_fft(time1, volt1)
fourier2 = analyse.fourier_fft(time2, volt2)
fourier3 = analyse.fourier_fft(time3, volt3)

fre1 = fourier1[0]
amp1 = fourier1[1]
fre2 = fourier2[0]
amp2 = fourier2[1]
fre3 = fourier3[0]
Пример #20
0
    return np.round([m, s, err], i - komma + 1)


plt.close('all')

dateien = ['messung_vorher', '_mitte', '_ende']
names = ['vor den Messungen', 'in der Mitte', 'nach den Messungen']
dnames = ['vor_den_Messungen', 'in_der_Mitte', 'nach_den_Messungen']
ts = []
Ts = []
T_errs = []

dig = 0.1 / np.sqrt(12)

for i, n in enumerate(dateien):
    data = cassy.CassyDaten("Temperatur" + n + ".lab")
    t = data.messung(1).datenreihe("t").werte
    T = data.messung(1).datenreihe("&J_A11").werte

    #Mittelwerte, Standardabweichungen und Fehler
    mT, sT, errT = round_good(np.average(T), np.std(T),
                              np.std(T) / np.sqrt(len(T)))

    if __name__ == "__main__":
        print("Temperatur " + names[i])
        print('m=' + str(mT) + u' °C, std=' + str(sT) + u' °C, err=' +
              str(errT) + u' °C')

        #Histogramm
        weightsT = np.ones_like(T) / float(len(T))
        plt.hist(T, 7, normed=0, weights=weightsT)
Пример #21
0
import numpy as np
import scipy
from praktikum import analyse as anal
import praktikum.cassy as cassy

#Fehler Beachten+Daraufaddieren!!!!!
R=8.314
N=10000 #Anzahl der Elemente die zur Berechnung von L betrachtet werden = max. obere Temperatur

#Kalibrierungsdaten
#Aus dem Resultat von Kalib.py
def T_real(T_gemessen):
    return 0.9727951049804687*(T_gemessen-50) + 1.126251220703125 + 50

t, p, T = [], [], [] #Temperatur in °C!!!
data = cassy.CassyDaten("Dampfdruckkurve.lab")
t = data.messung(1).datenreihe("t").werte
T = data.messung(1).datenreihe("&J_A11").werte
p = data.messung(1).datenreihe("p_B1").werte

#Mitbetrachtung der Kalibrierung:
T = T_real(T)
T = T+273.15
#Plots

plt.plot(t, T-273.15)
plt.title("Abkühlung des Kolbens")
plt.ylabel("Temperatur in K")
plt.xlabel("Zeit in s")
plt.show()
Пример #22
0
@author: Mate
"""
import matplotlib.pyplot as plt
import numpy as np
import scipy
import praktikum.cassy as cassy
import praktikum.analyse as anal


def gauss(x, m, s):
    return (np.power(scipy.pi * 2 * s**2, -0.5) * np.exp(-(x - m)**2 /
                                                         (2 * s**2)))


t, p, T = [], [], []  #Temperatur in °C!!!
data = cassy.CassyDaten("Kalibrierung 1 + Dichtigkeit.lab")
t = data.messung(1).datenreihe("t").werte
T = data.messung(1).datenreihe("&J_A11").werte
p = data.messung(1).datenreihe("p_B1").werte
#Fehler ausrechnen!!
sigmat = 1.0
sigmaT = 1.0
sigmap = 1.0

####Temperaturkalibrierung:

#T=0°C
N_Tslice = 2000
t_sliced = t[N_Tslice:]
T = T[N_Tslice:]
print("Temperaturkalibrierung")
Пример #23
0
#! /usr/bin/env python

from __future__ import print_function
from praktikum import cassy
from praktikum import analyse
import numpy as np
from pylab import *

data = cassy.CassyDaten('lab/Pendel.lab')
timeValues = data.messung(1).datenreihe('t').werte
voltage = data.messung(1).datenreihe('U_A1').werte
voltageError = 0. * voltage + 0.01
offset = analyse.gewichtetes_mittel(voltage, voltageError)[0]
voltage = voltage - offset

figure(1)
title('Pendel')

subplot(2, 1, 1)
plot(timeValues, voltage)
grid()
xlabel('Zeit / s')
ylabel('Spannung / V')
einhuellende = analyse.exp_einhuellende(timeValues, voltage, voltageError)
plot(timeValues, +einhuellende[0] * exp(-einhuellende[2] * timeValues))
plot(timeValues, -einhuellende[0] * exp(-einhuellende[2] * timeValues))

subplot(2, 1, 2)
fourier = analyse.fourier_fft(timeValues, voltage)
frequency = fourier[0]
amplitude = fourier[1]
Пример #24
0
    '''
    Passt Mittelwert- und Standardabweichungsnachkommastellen an den Fehler an (2 signifikante Stellen des Fehlers)
    m=mean
    s=std
    err=std/sqrt(len)
    '''
    i = 2
    test = list('{:.20f}'.format(err))
    while test[i] == '0':
        i += 1
    return np.round([m, s, err], i)


plt.close('all')

data = cassy.CassyDaten("Erdbeschleunigung/Rauschmessung_umgepolt.lab")
t = data.messung(1).datenreihe("t").werte
M = data.messung(1).datenreihe("U_A1").werte  #Pendelkörper (Masse)
St = data.messung(1).datenreihe("U_B1").werte  #Stange allein

#----------------------------#
#Auswertung der Rauschmessung#
#----------------------------#

#Mittelwerte, Standardabweichungen und Fehler
mM, sM, errM = round_good(np.average(M), np.std(M),
                          np.std(M) / np.sqrt(len(M)))
mSt, sSt, errSt = round_good(np.average(St), np.std(St),
                             np.std(St) / np.sqrt(len(St)))

if __name__ == "__main__":
Пример #25
0
#! /usr/bin/env python

from __future__ import print_function
from praktikum import cassy
from praktikum import analyse
import numpy as np
import scipy.constants
from pylab import *

# Rauschmessung
data1 = cassy.CassyDaten('lab/Thermo_Rauschmessung.lab')
# CASSY-Datei hat Druckwerte in der 2. Spalte, Temperatur in der 3. Spalte
p = data1.messung(1).datenreihe('p_A1').werte
T = data1.messung(1).datenreihe('T_B11').werte

figure()

subplot(2, 1, 1)
title('Histogramm der Druckwerte')
hist(p, bins=100, range=(1000., 1020.), color='green')
xlabel('p / mbar')
xlim(1000., 1020.)

p_mean = np.mean(p)
p_stdabw = np.std(p, ddof=1)
p_err = p_stdabw / np.sqrt(len(p))

print('p_mean = %f, p_stdabw = %f, p_err = %f' % (p_mean, p_stdabw, p_err))

subplot(2, 1, 2)
title('Histogramm der Temperaturwerte')
Пример #26
0
# -*- coding: utf-8 -*-
"""
Created on Sat Sep 21 13:39:02 2019

@author: Marius
"""

from praktikum import analyse
from praktikum import cassy
import numpy as np
import matplotlib.pyplot as plt

data_s = cassy.CassyDaten('daten/schwingung_10Ohm_1.lab')
data_k = cassy.CassyDaten('daten/schwingung_1000Ohm_1.lab')
data_k2 = cassy.CassyDaten('daten/schwingung_3000Ohm_1.lab')
data_a = cassy.CassyDaten('daten/aperiodisch_3_186.lab')

time = data_s.messung(1).datenreihe('t').werte
# Zeit in ms
time = time * 1000
volt_s = data_s.messung(1).datenreihe('U_B1').werte
volt_k = data_k.messung(1).datenreihe('U_B1').werte
volt_k2 = data_k2.messung(1).datenreihe('U_B1').werte
volt_a = data_a.messung(1).datenreihe('U_B1').werte

plt.figure(figsize=(12, 6))
'''
plt.plot(time, volt_s, color='blue', label='Schwingung')
plt.plot(time, volt_k, color='green', label='Kriechfall')
plt.plot(time, volt_a, color='red', label='Aperiodischer Grenzfall')
plt.xlim(0,5)
Пример #27
0
    i = 2
    test = list('{:.20f}'.format(err))
    while test[i] == '0':
        i += 1
    return np.round([m, s, err], i)


freq_array = []
errfreq_array = []

Gegen = ['gegen', 20, 3000]
Gleich = ['gleich', 30, 4500]

for n in (Gegen, Gleich):
    #Daten einlesen
    data = cassy.CassyDaten(n[0] + '.koppl.eisen.lab')
    U1 = data.messung(1).datenreihe('U_B1').werte
    U2 = data.messung(1).datenreihe('U_B2').werte
    t = data.messung(1).datenreihe('t').werte
    ''' 
    An dieser Stelle müsste eine Offsetkorrektur stehen, welche aber zumindest im gegensinnigen Fall 
    auf Grund fehlender Daten keinen Sinn ergibt. Außerdem ändert sich das Ergebnis nur marginal 
    [für eine Frequenzbestimmung ist eine Konstante ja egal], hier trotzdem mal ein Vorschlag: 
     
    figure() 
     
    subplot(2,1,1)    
    hist(U1[1000:]) 
    title("Offset-Korrektur U1 "+n[3]) 
    off_set1 = np.mean(U1[1000:]) 
    print(off_set1) 
Пример #28
0
    2: 'daten/schwingung_5.1Ohm_',
    3: 'daten/schwingung_10Ohm_',
    4: 'daten/schwingung_20Ohm_',
    5: 'daten/schwingung_47Ohm_',
    6: 'daten/schwingung_100Ohm_'
}

reg1 = np.array([])
reg2 = np.array([])
reg2plus = np.array([])
reg2minus = np.array([])

#Frequenzen und Dämpfungen bestimmen (Regression)
for i in range(1, 6, 1):
    n = np.arange(1, 1 + dic1[i].size, 1)
    data = cassy.CassyDaten(dic2[i])
    time = data.messung(1).datenreihe('t').werte
    vol = data.messung(1).datenreihe('U_B1').werte
    x = time[dic1[i]]
    ex = np.full((dic1[i].size, ), 1e-05 / np.sqrt(12))
    y = np.log(np.abs(vol[dic1[i]]) - dic3[i])
    ey = 4.8e-03 * 1 / (np.abs(vol[dic1[i]]) - dic3[i])
    ey_sys = 0.01 * np.sqrt(vol[dic1[i]]**2 +
                            dic3[i]**2) / (np.abs(vol[dic1[i]]) - dic3[i])
    res1 = analyse.lineare_regression(n, x, ex)
    res2 = analyse.lineare_regression_xy(x, y, ex, ey)
    res2plus = analyse.lineare_regression_xy(x, y + ey_sys, ex, ey)
    res2minus = analyse.lineare_regression_xy(x, y - ey_sys, ex, ey)
    reg1 = np.concatenate((reg1, res1))
    reg2 = np.concatenate((reg2, res2))
    reg2plus = np.concatenate((reg2plus, res2plus))
#! /usr/bin/env python
# -*- coding: utf-8 -*-

from __future__ import print_function
from builtins import range

from praktikum import analyse
from praktikum import cassy
import numpy as np
import os
from pylab import *

inputfile = 'labx/kondensator.labx'
#inputfile = 'txt/kondensator.txt'
data = cassy.CassyDaten(inputfile)
data.info()

# Bereich für logarithmischen Fit (in ms)
tmin = 0.101
tmax = 4.001

# Beginn der "Rauschmessung" für die Offset-Korrektur (in ms)
toffset = 8.0

figure(1, figsize=(25, 10))

N = data.anzahl_messungen()
for m in range(1, N + 1):

    t = data.messung(m).datenreihe('t').werte
    data.messung(m).datenreihe('t').info()
Пример #30
0
errks = []
T = [0, 0, 0], [0, 0, 0], [0, 0], [0]

for i in range(1, 5):  #Läuft durch Positionen (pos_i)
    #if i<3:
    #    plt.close('all')

    #Anzahl der Dateien
    path, dirs, files = next(os.walk("gekoppelt/pos_" + str(i)))
    file_count = len(files)
    t = np.empty((file_count, bis))
    U1 = np.empty((file_count, bis))
    U2 = np.empty((file_count, bis))

    #Daten einlesen
    data = cassy.CassyDaten("gekoppelt/pos_" + str(i) + "/schweb_pos_" +
                            str(i) + ".lab")
    t1 = data.messung(1).datenreihe("t").werte
    t[0] = t1[:bis]
    U1_1 = data.messung(1).datenreihe("U_A1").werte - (
        offset1 + (i - 1) * 0.05)  #scheinbar systematischer Offset
    U1[0] = U1_1[:bis]
    U1_2 = data.messung(1).datenreihe("U_B1").werte - offset2  #Pendel2
    U2[0] = U1_2[:bis]

    if file_count > 1:  #Für 2 Messungen im Ordner einer bestimmten Position
        data = cassy.CassyDaten("gekoppelt/pos_" + str(i) + "/gleich_pos_" +
                                str(i) + ".lab")
        t2 = data.messung(1).datenreihe("t").werte
        U2_1 = data.messung(1).datenreihe("U_A1").werte  #Pendel1
        U2_1 = U2_1 - np.mean(U2_1)
        U1[1] = U2_1[:bis]