BA Lena Schürmann: Difference between revisions

From Arbeitsgruppe Kuiper
Jump to navigation Jump to search
Line 3: Line 3:
=== Analyse der Ablösefrequenz: ===
=== Analyse der Ablösefrequenz: ===


==== Mathode 1: Analyse mittels Fourier-Transormation ====
==== Methode 1: Analyse mittels Autokorrelation: ====
<syntaxhighlight lang="python3" line="1">
def cov(a,b):
    return np.mean(np.dot((a-np.mean(a)),(b-np.mean(b))))
 
def autokorr(data):
    autok=[]
    for tau in range (0,int(len(data))):
        data_a=data[:len(data)-tau]
        data_b=data[tau:]
        temp=cov(data_a,data_b)/np.sqrt(cov(data_a,data_a)*cov(data_b,data_b))
        autok.append(temp)
    autok=np.asarray(autok)
    return autok
</syntaxhighlight>Hier wird die [https://de.wikipedia.org/wiki/Autokorrelation Autokorrelationsfunktion] in ihrer allgemeinen normierten Form verwendet. <gallery mode="nolines">
File:Re100 Autokorr.png|Autokorrelationsfunktion angewandt auf die Zeitreihen von Druck, Dichte und Geschwindigkeit an Position n_r=40 und n_phi=90. Maximalstellen markiert durch x kennzeichnen lokal höchste Übereinstimmung der Zeitreihen. Literaturwert als grobe visuelle Orientierung (umgerechnet in Perioden aus Daten von Roshko).
File:Re100 Autokorr St.png|Autokorrelationsfunktion angewandt auf die Zeitreihen von Druck, Dichte und Geschwindigkeit an Position n_r=40 und n_phi=90. Maximalstellen markiert durch x kennzeichnen lokal höchste Übereinstimmung der Zeitreihen. Literaturwert als grobe visuelle Orientierung (aus Daten von Roshko).
</gallery>
 
===== Über erste Periodendauer: =====
<syntaxhighlight lang="python3" line="1">
def autokorr_mod(vs_r, mesh_grid,stepwidth):
    phis_min=0
    phis_max=np.shape(mesh_grid)[1]
   
    diffs_mod=[]
    for rs in range (0,np.shape(mesh_grid)[0]):
        for phi in range (phis_min,phis_max):
            diffs_mod.append(np.asarray(sp.find_peaks(autokorr(vs_r[:,rs,phi]))[0])[0])
    return diffs_mod*stepwidth
</syntaxhighlight>
 
===== Über Durchschnittliche Periodendauer: =====
<syntaxhighlight lang="python3" line="1">
def autokorr_anw_mod(vs_r, mesh_grid,stepwidth):
    phis_min=0
    phis_max=np.shape(mesh_grid)[1]
   
    diffs_mod=[]
    for rs in range (0,np.shape(mesh_grid)[0]):
        for phi in range (phis_min,phis_max):
            vs_auto_maxs=np.asarray(sp.find_peaks(autokorr(vs_r[:,rs,phi]))[0])
            diffs_mod=np.hstack((diffs_mod,(vs_auto_maxs[1:]-vs_auto_maxs[:-1])[0]))
    return diffs_mod*stepwidth
</syntaxhighlight>
 
==== Methode 2: Analyse mittels Fourier-Analyse: ====
[[File:BA-LS-St-Re-Vgl-Roshko.png|alt=This plot shows the strouhal number for different reynolds numbers in case of eddie shedding behind a spherical cylinder. Three curves are approximately the data collected by Roshko (source: M.M Zdrakovich, Flow around circular cylinders, Vol. 1) and the marks in blue show the results of the simulated data with pluto.|thumb|center|600px|Current Simulation Results]]
[[File:BA-LS-St-Re-Vgl-Roshko.png|alt=This plot shows the strouhal number for different reynolds numbers in case of eddie shedding behind a spherical cylinder. Three curves are approximately the data collected by Roshko (source: M.M Zdrakovich, Flow around circular cylinders, Vol. 1) and the marks in blue show the results of the simulated data with pluto.|thumb|center|600px|Current Simulation Results]]

Revision as of 02:37, 17 June 2024

Vortragstitel im Bachelorseminar: Modellierung und Analyse der Ablösefrequenz von von Kármán-Straßen

Analyse der Ablösefrequenz:

Methode 1: Analyse mittels Autokorrelation:

def cov(a,b):
     return np.mean(np.dot((a-np.mean(a)),(b-np.mean(b))))

def autokorr(data):
    autok=[]
    for tau in range (0,int(len(data))):
         data_a=data[:len(data)-tau]
         data_b=data[tau:]
         temp=cov(data_a,data_b)/np.sqrt(cov(data_a,data_a)*cov(data_b,data_b))
         autok.append(temp)
    autok=np.asarray(autok)
    return autok

Hier wird die Autokorrelationsfunktion in ihrer allgemeinen normierten Form verwendet.

Über erste Periodendauer:
def autokorr_mod(vs_r, mesh_grid,stepwidth):
    phis_min=0
    phis_max=np.shape(mesh_grid)[1]
    
    diffs_mod=[]
    for rs in range (0,np.shape(mesh_grid)[0]):
        for phi in range (phis_min,phis_max):
            diffs_mod.append(np.asarray(sp.find_peaks(autokorr(vs_r[:,rs,phi]))[0])[0])
    return diffs_mod*stepwidth
Über Durchschnittliche Periodendauer:
def autokorr_anw_mod(vs_r, mesh_grid,stepwidth):
    phis_min=0
    phis_max=np.shape(mesh_grid)[1]
    
    diffs_mod=[]
    for rs in range (0,np.shape(mesh_grid)[0]):
        for phi in range (phis_min,phis_max):
            vs_auto_maxs=np.asarray(sp.find_peaks(autokorr(vs_r[:,rs,phi]))[0])
            diffs_mod=np.hstack((diffs_mod,(vs_auto_maxs[1:]-vs_auto_maxs[:-1])[0]))
    return diffs_mod*stepwidth

Methode 2: Analyse mittels Fourier-Analyse:

This plot shows the strouhal number for different reynolds numbers in case of eddie shedding behind a spherical cylinder. Three curves are approximately the data collected by Roshko (source: M.M Zdrakovich, Flow around circular cylinders, Vol. 1) and the marks in blue show the results of the simulated data with pluto.
Current Simulation Results