WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Matrix nach Wertbereichen durchsuchen und neu speichern

 

Mistania
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 15.01.21
Wohnort: Augsburg
Version: ---
     Beitrag Verfasst am: 26.01.2021, 10:28     Titel: Matrix nach Wertbereichen durchsuchen und neu speichern
  Antworten mit Zitat      
Hallo Zusammen!

Ich bin neu hier und hoffe das ihr mir eventuell helfen könnt.
Ich habe einen sehr großen Datensatz von Schwingungsmessungen. Pro Messreihe gibt es 5 Ausschläge die ich jeweils mit einer Fensterlänge von 10 ms auswerten muss.

Nun zum konkreten Problem:
Ich möchte die Messreihe durchsuchen, sobald diese >0 wird die folgenden Messwerte (in meinem Fall 31 Messwerte für 10 ms) in einer neuen Matrix speichern und das je Messreihe für alle 5 Ausschläge. Heißt danach habe ich aus einer Datei 5 kleine Dateien gemacht. Ich brauche sozusagen einen Art Trigger.
Ist das so verständlich?
Ich bin Momentan leider vollkommen ratlos und dies manuell zu machen würde Ewigkeiten dauern...
Ich habe im Anhang mal eine Beispielmessreihe geladen.

Vielen Dank schonmal im Voraus!
Grüße Mistania

Beispiel_Messreihe.txt
 Beschreibung:

Download
 Dateiname:  Beispiel_Messreihe.txt
 Dateigröße:  274.84 KB
 Heruntergeladen:  138 mal
Private Nachricht senden Benutzer-Profile anzeigen


ueg
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 51
Anmeldedatum: 15.08.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.01.2021, 14:20     Titel:
  Antworten mit Zitat      
Hi.

setze dich dazu am besten mal mit dem Importieren von Dateien in Matlab auseinander.

Hier ist ein sehr rudimentärer Ansatz der die einzelnen Pulse für eine definierte Länge ausschneidet und plottet.

Den würde ich so sicher nicht für eine Arbeit o.ä. verwenden, aber als Denkansatz für was man so prinzipiell ohne große Kenntnisse in Matlab auswerten kann, könnte der dienen.

Prinzipiell sollte man noch import-Einstellungen für das Erkennen der Kommas in deinen Messdateien eingeben können. Ich habe im Editor einfach per suchen und ersetzen alle Kommas durch Punkte ersetzen lassen. Matlab nimmt die Dezimaltrennung mit einem Punkt und keinem Komma vor.

Man sollte sich auf jeden Fall noch eine "Endbedingung" für die Schwingung suchen, momentan werden einfach 2000 Messwerte als ein "Puls" angenommen. Das hat in dem Beispiel hingehauen.
Beim Plotten haben wir jetzt auch nur die 5 Pulse der Beispieldatei dargestellt.

Am besten davon ausgehend einfach rumspielen. Die Daten hast du damit in Matlab und dann kannst du frei rumprobieren mit eigenen Ideen und Ansätzen. Das hier ist keinesfalls gut durchdacht, damit habe ich mich nicht lange beschäftigt, wie man dem Code auch deutlich ansieht.
Die Messpunkte in der x-Achse müsstest du zum Beispiel noch mit deinem Faktor in eine Zeit (Abstand zwischen den Punkten ist dann 10ms o.ä.) umrechnen. Das bekommst du sicher aber selbst hin.

Viel Spaß damit und viel Erfolg
Tim


!!!EDIT!!!
Du musst natürlich auch das "Beispielmessung" am Anfang deiner Messdatei entfernen, sonst funktioniert das Ganze nicht. Für den Entwurf dürfen nur Zahlen in der Datei stehen.

Code:

clear all;
close all;
GesamteMessung = load("DEINSPEICHERORT\Beispiel_Messreihe.txt");

LaengederMessung= length(GesamteMessung);
figure
plot(1:LaengederMessung,GesamteMessung)

GrenzwertSchwingungStart = 100;   %Grenzwert ab welchem die Schwingung als begonnen angesehen wird
Schwingungslaenge = 1999;   %"Dauer" der Schwingungen in Messpunkten

Bereichnummer = 1;
%Findet für alle Pulse den Beginn aufgrund des ersten großen Ausschlags.
for n=1:LaengederMessung
    if abs(GesamteMessung(n)) >=GrenzwertSchwingungStart
        Bereich(Bereichnummer,:) = GesamteMessung(n-1:n+Schwingungslaenge);
        Bereichnummer = Bereichnummer+1;
        GesamteMessung(n-1:n+Schwingungslaenge)=0; %"Schneidet" die Schwingung aus, damit die restlichen Ausschläge keine neuen Startpunkte ergeben
   
    end
end


figure()
subplot(2,3,1)
plot(1:2001, Bereich(1,:));
title("Puls 1");
xlabel("Messzeitpunkte")
ylabel("Ausschlag")

subplot(2,3,2)
plot(1:2001, Bereich(2,:));
title("Puls 2");
xlabel("Messzeitpunkte")
ylabel("Ausschlag")

subplot(2,3,3)
plot(1:2001, Bereich(3,:));
title("Puls 3");
xlabel("Messzeitpunkte")
ylabel("Ausschlag")

subplot(2,3,4)
plot(1:2001, Bereich(4,:));
title("Puls 4");
xlabel("Messzeitpunkte")
ylabel("Ausschlag")

subplot(2,3,5)
plot(1:2001, Bereich(5,:));
title("Puls 5");
xlabel("Messzeitpunkte")
ylabel("Ausschlag")


 
Private Nachricht senden Benutzer-Profile anzeigen
 
Mistania
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 15.01.21
Wohnort: Augsburg
Version: ---
     Beitrag Verfasst am: 27.01.2021, 15:22     Titel:
  Antworten mit Zitat      
Hallo Tim!

Vielen Lieben Dank für deinen Ansatz. Das ist genau der Denkanstoß den ich gebraucht habe.

Liebe Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
ueg
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 51
Anmeldedatum: 15.08.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.01.2021, 19:31     Titel:
  Antworten mit Zitat      
Alles klar perfekt, dann viel Erfolg. Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.