BA Lena Schürmann: Difference between revisions
Jump to navigation
Jump to search
(→Methode 1: Analyse mittels Autokorrelation:: gallery-Fix) |
|||
| (4 intermediate revisions by one other user not shown) | |||
| Line 3: | Line 3: | ||
=== Analyse der Ablösefrequenz: === | === Analyse der Ablösefrequenz: === | ||
==== | ==== Literaturdaten: ==== | ||
[[File: | Zusammentragung von Daten in M.M Zdrakowich's Volume 1: Flow around circular cylinders: | ||
[[File:Experimentelle Daten zum Fluss um einen Zylinder.png|thumb|Zusammentragung von experimentellen Daten aus M.M. Zdrakovich Volume 1: Flow Around Cyrcular Cylinders. Auftragung der Strouhal-Zahl (Ablösefrequenz der Wirbel einer von Karman-Straße) über die Reynolds-Zahl]] | |||
==== Methode 1: Analyse mittels Autokorrelation: ==== | |||
Hier wird die [https://de.wikipedia.org/wiki/Autokorrelation Autokorrelationsfunktion] in ihrer allgemeinen normierten Form verwendet. Es stellt sich heraus, dass eine Periode der Autokorrelationsfunktion der Tangentialgeschwindigkeit mit der Periode der Wirbelablösung übereinstimmt. Im Fall der anderen Größen ist die Periode in der Regel kleiner.<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> | |||
<gallery mode="nolines" widths=400px heights=300px | |||
caption="[https://de.wikipedia.org/wiki/Autokorrelation Autokorrelationsfunktion] (Verallgemeinerung) angewandt auf die Zeitreihen von Druck, Dichte und Geschwindigkeit an Position r=12,42 und phi=180° hinter einem Zylinder. Maximalstellen markiert durch x kennzeichnen lokal höchste Übereinstimmung der Zeitreihen. Literaturwert als grobe visuelle Orientierung (umgerechnet in Perioden aus Daten von Roshko)."> | |||
File:Re60 Autokorr.png|bei [https://de.wikipedia.org/wiki/Reynolds-Zahl Reynolds-Zahl] 60 und [https://de.wikipedia.org/wiki/Mach-Zahl Mach-Zahl] 0.01 | |||
File:Re100 Autokorr.png|bei [https://de.wikipedia.org/wiki/Reynolds-Zahl Reynolds-Zahl] 100 und [https://de.wikipedia.org/wiki/Mach-Zahl Mach-Zahl] 0.01 | |||
</gallery> | |||
[[File:St Re Autokorr T0.png|thumb|Auftragung der Strouhal-Zahl errechnet aus der Periodendauer des ersten signifikaten Peaks der Autokorrelationsfunktion. Mittlung über alle Zellen der Simulation, Fehlerbalken entsprechen der Standardabweichung]] | |||
===== Ü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> | |||
[[File:St Re Autokorr.png|thumb|Auftragung der Strouhal-Zahl errechnet aus den mittleren Abständen der Peaks der Autokorrelationsfunktion. Mittlung über alle Zellen der Simulation, Fehlerbalken entsprechen der Standardabweichung]] | |||
===== Ü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> | |||
[[File:St Re Fourier.png|thumb|Auftragung der Strouhal-Zahl errechnet aus den mittleren Peak-Abständen der Fourier-Transformierten aller Zellen der Simulation und der Observablen Druck, Dichte und Geschwindigkeit.]] | |||
==== Methode 2: Analyse mittels Fourier-Analyse: ==== | |||
==== Einfluss des Simulationsrandes: ==== | |||
==== Einfluss der Mach-Zahl: ==== | |||
Latest revision as of 20:20, 2 July 2024
Vortragstitel im Bachelorseminar: Modellierung und Analyse der Ablösefrequenz von von Kármán-Straßen
Analyse der Ablösefrequenz:
Literaturdaten:
Zusammentragung von Daten in M.M Zdrakowich's Volume 1: Flow around circular cylinders:
Methode 1: Analyse mittels Autokorrelation:
Hier wird die Autokorrelationsfunktion in ihrer allgemeinen normierten Form verwendet. Es stellt sich heraus, dass eine Periode der Autokorrelationsfunktion der Tangentialgeschwindigkeit mit der Periode der Wirbelablösung übereinstimmt. Im Fall der anderen Größen ist die Periode in der Regel kleiner.
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
- Autokorrelationsfunktion (Verallgemeinerung) angewandt auf die Zeitreihen von Druck, Dichte und Geschwindigkeit an Position r=12,42 und phi=180° hinter einem Zylinder. Maximalstellen markiert durch x kennzeichnen lokal höchste Übereinstimmung der Zeitreihen. Literaturwert als grobe visuelle Orientierung (umgerechnet in Perioden aus Daten von Roshko).
bei Reynolds-Zahl 60 und Mach-Zahl 0.01
bei Reynolds-Zahl 100 und Mach-Zahl 0.01
Ü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