Verfasst am: 26.01.2021, 09:28
Titel: Matrix nach Wertbereichen durchsuchen und neu speichern
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.
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.
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
ifabs(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
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
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.