Analyse von gedämpften Schwingungen

  • Hallo,


    ich hab bei meiner Messungen mehrere gedämpfte Schwingungen und würde mir gerne die einzelnen Schwingungen angucken und eine FFT machen.

    Bei meinem jetzigen Programm muss ich immer noch die Zeiten Manuell ermitteln ab wann die Schwingung beginnt, kann man diese auch Automatisch auslesen für mehrere Schwingungen ?


    Über eine kurze Rückmeldung würde ich mich sehr freuen.

  • Hallo Jan,


    ich glaube es wäre am besten, wenn Du eine Ausschnitt von deinen Messdaten zeigst, ansonsten kann man da schwer was zu sagen.


    Wenn die Schwingungen bei Beginn einen gewissen Wert überschreiten, kann man sich den Startpunkt über z.B. SuchePegel raussuchen und dann eine bestimmte Dauer angeben.

  • Hallo,

    Vielen Dank für die Rückmeldung.

    Im Anhang finden Sie ein Screenshot hoffe da reicht so. Über diese Fenster messe ich die einzelnen Zeiten mit dem Cursor aus und mache dann eine fft.

    Diese Zeiten auf de x-achse würde ich gerne automatisch auslesen, da ich mir die einzelnen Pings ausschneide.

    Hoffe das reicht so, ansonsten nochmal Fragen

  • Ich würde es tatsächlich mit der Funktion SuchePegel versuchen.

    Entweder gibst Du einen Wert an, der Überschritten werden soll, oder eine Anstiegsbedingung. Musst mal ein wenig versuchen, was sich besser eignet. Dann nimmst Du dir den ersten Wert als Startwert, schneidest dir das Signal für dein Intervall zurecht und machst darüber die FFT.

    xy = suchepegel(...)

    Signal_Teil = gren(Eingangssignal, wert(xy.x, 0), wert(xy.x, 0) + delta) (das delta halt, wie lang dein zu untersuchendes Teilstück sein soll)

  • Vielen Dank ! ich habe es jetzt so gemacht.

    a_y_filt = filtlpz(a_x , 0, 0, 8, 300
    da_y = diff(a_y_filt) 
    Event = suchepegel(da_y, 2, 1, 0, 0,0,0, 0


    X_Komponente = event.x 
    X_Komponente = binde(0, X_Komponente ) 
    dX_Komponente = diff(x_Komponente) 
    dX_Komp_Valid = dX_Komponente > 1
    zeitpkt = dx_komp_Valid * event.x
    zeitpkt = samplesGate( zeitpkt , zeitpkt > 0

    for i = 1 to lang?(zeitpkt ) 
       _i = tform(i, "")
       Schnipsel:Schnitt_<_i> = gren(a_x-0.16, zeitpkt[i], zeitpkt[i]+1.5)
    end

    FFTS = fft(Schnipsel)

    Wie kann ich jetzt mehrere Messdateien aufeinmal auswerten ?

    Über eine Rückmeldung würde ich mich freuen.

  • 1) Messdaten mit Messungsbezug laden.

    2) Obige Berechnung für die Messdaten jeder Messung durchführen.

    Code
    1. ; Calculation for each measurement
    2. FOREACH ELEMENT name IN measurements
    3. SelMeasListSetName(1, name)
    4. if SelUseMeasurement(1)
    5. seq Calculation ; your code in a file
    6. end
    7. END

    Beim Suchbegriff einfach mal "Messung" eingeben.


    Wenn du vollautomatisch agieren willst und auch die Messungen automatisch laden willst, benötigst du ggf. ein von FAMOS abgeleitetes Import-Filter, welches dir den Elternordner als Messungsnamen definiert:


    Im Menüband "Extras > Optionen" wählen.

    Im Dialog zu "Importfilter" navigieren

    Button "Neu..." anklicken.

    Im Dialog folgende Einstellung vornehmen:

    • Name: FAMOS_Measurement
    • Basis-Format: FAMOS;
    • Messungszuordnung "Elternverzeichnis"

    Das Importfilter "FAMOS_Measurement" kann dann beim FileLoad-Befehl genutzt werden.

  • dir$ = FsDlgSelectDirectory("Choose folder", "c:\",0

    IF TLeng(dir$) > 0 ; Prüfen Anzahl der Zeichen

       FileListID= FsFileListNew(dir$, "*.raw", 0, 0, 0)

       n=FsFileListGetCount(FileListID) 

       FOR k = 1 TO n

          file$=FsFileListGetName(FileListID,k) 

          FileLoad( file$, "", 0)
    Hallo,

    Vielen Dank für die Antwort.

    Ich hole mir die Dateien aus dem Verzeichnis und lade sie nacheinander ein. Nur wenn ich den Schleifen durchlauf machen um die Zeiten herauszufinden, überschreibt ich immer die Variable. Die Zeiten Sollte ich vorher alle auslesen und dann die Berechnung durchführen. Hier bei muss ich die Zeilen immer verschieben sehen ich das richtig ?

  • Ich hole den ganzen Ordner mit den Dateien und diese werden nacheinander geladen und dann sollen die Zeiten ermittelt werden und erst wenn alles ermittelt sind, soll meine Code vom Dienstag durchlaufen, damit alles Dateien in einer der FFTS stehen. Kann ich das so mit dem Code machen ?