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

Zeitverschiebung

 

Owe

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.07.2015, 21:19     Titel: Zeitverschiebung
  Antworten mit Zitat      
Hallo Leute,

ich habe hier ein Problem und brauche mal eure Unterstützung.
Ich komme mit dem Matlab-Programm nicht immer zurecht.

Nun zur Sache, ich habe die Zeit Verschiebung zwischen zwei aufgenommene versch. Signale (rotes und blaues) ermitteln, in dem ich die Signale mit Matlab darstellte und mit der Data Coursor-Funktion durch die Maus auf dem Graph bzw. auf der X-Achse die verschobene Zeiten markierte (siehe Bild).

Das Problem ist es, diese müssen mit Matlab automatisch bestimmt werden. Daher brauche ich eure Unterstützung und ob es ein Befehl im Matlab gibt, der diese verschobene Zeiten bestimmt.

Danke im voraus

Owe

PC1.pdf
 Beschreibung:

Download
 Dateiname:  PC1.pdf
 Dateigröße:  265.4 KB
 Heruntergeladen:  534 mal


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.07.2015, 21:50     Titel:
  Antworten mit Zitat      
Hallo,

eine Möglichkeit ist logische Indizierung (logical indexing).
Dazu müssen wir wissen, was du genau suchst. Die Pfeile von unten scheinen die Zeiten zu sein, an denen das blaue Signal negativ wird?
Sind die Pfeile von oben nun die Zeiten, an denen das rote Signal positiv wird oder die, an denen das blaue Signal wieder auf 0 geht?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Owe

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.07.2015, 22:25     Titel:
  Antworten mit Zitat      
Hallo Harald,

danke für die Hilfe und deine schnelle Antwort.

Also ich habe zwei Signalverläufe rot und blau ( Jeder Kurvenabstieg (blau) bzw. anstieg (rot) stellt eine Schrittbewegung, da ich diese mittels eines Sensors aufgenommene habe).

Nun will ich jede Zeit haben (ermitteln), die zwischen den Signalen blau und rot (im Bild zwischen zwei Pfeilen) liegen, damit ich die die Zeit-Verschiebung zwischen dem blauen und roten für den ganzen Messverlauf (evtl. bis 1000) bestimmen kann.

Genau so ist das wie du schriebst, die Pfeile von oben sind nun die Zeiten, an denen das rote Signal positiv wird und die von unten sind die Zeiten, an denen das blaue Signal negativ wird.


Übrigens habe ich schon gelesen das "Triggern" bzw. "Schwellenwert" helfen könnte, stimmt das ? Aber ich Weiß nicht wie man das in Matlab programmieren könnte.

Danke und Grüße

Owe
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.07.2015, 08:24     Titel:
  Antworten mit Zitat      
Hallo,

wie gesagt: logische Indizierung (logical indexing) anschauen.
Anhand von Plots ist es immer schwierig, da man z.B. nicht sieht, ob ein Signal genau 0 ist oder nur recht nah an 0.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Owe

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.07.2015, 09:17     Titel: Zeitverschiebung
  Antworten mit Zitat      
Hallo Harlad,

bitte kannst du mir genauer beschreiben (irgendeinen Befehel, Matlab-Funktion), wie ich damit anfange.

Gemesse Werte aus zwei Sensoren (X-Achse beider Signale ist die Zeit und Y-Achse Volumenstorm (blau) und Druck (rot)), wurden mittels Matlab durch Überlagerung beider Signale in einem Plot erstellet (wie man auf dem geposteten Bild sieht).

Die Signale sind recht nah an 0.

ich kann dir hier das Code noch posten.
Bitte um weitere Hilfe !!

Grüße
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.07.2015, 09:24     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
bitte kannst du mir genauer beschreiben (irgendeinen Befehel, Matlab-Funktion), wie ich damit anfange.

Dafür gibt es keinen Befehl in dem Sinn, das ist mehr eine Vorgehensweise. Ich habe dir ja extra den englischen Begriff dazugeschrieben, damit du in der Hilfe danach suchen bzw. danach googeln kannst.
https://www.google.de/#q=matlab+logical+indexing

Zitat:
Die Signale sind recht nah an 0.

> 0 oder < 0? Wie nah? Am hilfreichsten wäre ein Datenbeispiel.

Zitat:
ich kann dir hier das Code noch posten.

Das wäre eine gute Idee. Und wie gesagt: Beispieldaten.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Owe

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.07.2015, 10:02     Titel:
  Antworten mit Zitat      
Hallo,

danke, danke!!

hier ist ein Datenbeispiel bzw. die gemessene Werte aus zwei Sensoren ( Druck (rot) und Volumenstrom (blau)).
Dann das von mir erstelle Matlab-Code.

Ich muss immer die Zeiten zwischen den Pfeilen bzw. Pfeil nach oben, immer wo das blaue Signal fängt an abzufallen und rot Pfeil nach unten, immer wo das rote Signal fängt anzusteigen an, bestimmen.

Übrigens im Code steht ".lvm", da die Daten waren zunächst in komma Zahlen in einem Textdatei.lvm gespeichert. Hier könnte ich dir die org. Daten in . lvm nicht anhängen (unerlaubt). Daher bekommst du sie als PDF.

Ich hoffe ist es, was du wolltest.

Code:
clear all
close all
clc


%========================
% Volumenstrom-Messdaten
%========================

Gesamtdatei_VST = fileread('K:\Desktop\Volum.lvm')      
NeueFILEDATA_VST = strrep(Gesamtdatei_VST,',','.')                          
Fileid_VST= fopen('K:\Desktop\Volum.lvm','w')          
fprintf(Fileid_VST,'%s',NeueFILEDATA_VST)                                                        
fclose(Fileid_VST)



     
    M_VST = load('Volumen.lvm')
    X_VST = M_VST (:,1)
    Y_VST = M_VST(:,2)

       


 

%============
% Druck-Messdaten
%============

Gesamtdatei_Druck = fileread('K:\Desktop\Druck.lvm')        
NeueFILEDATA_Druck= strrep(Gesamtdatei_Druck,',','.')                    
Fileid_Druck= fopen('K:\Desktop\Druck.lvm','w')              
fprintf(Fileid_Druck,'%s',NeueFILEDATA_Druck)                                                        
fclose(Fileid_Druck)


    M_Druck= load('Druck.lvm')
    X_Druck= M_Druck(:,1)
    Y_Druck = M_Druck(:,2)
   
    figure (1)
    plot(X_VST,Y_VST)
    set(gca,'XLim',[40 50]);
    hold on
    grid on
    plot(X_Druck,Y_Druck,'r')
    set(gca,'XLim',[40 50]);
    hold off


Datenbeispiel.pdf
 Beschreibung:

Download
 Dateiname:  Datenbeispiel.pdf
 Dateigröße:  178.25 KB
 Heruntergeladen:  492 mal
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.07.2015, 10:53     Titel:
  Antworten mit Zitat      
Hallo,

hast du dir denn die logische Indizierung inzwischen angesehen?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Owe

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.07.2015, 11:10     Titel:
  Antworten mit Zitat      
Ja, klar habe ich auch.

Das Problem ist es, vertehe nicht wie soll ich damit meine Messdaten so einordnen, zu dem Zweck alle Zeiten zwischen den blauen und roten Signalen zu bestimmen ( da ich extrem versch. Messdaten habe).

Gruß
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.07.2015, 11:16     Titel:
  Antworten mit Zitat      
Hallo,

grundsätzlich würde ich es erst mal mit einem Datensatz versuchen.
Ohne mehr über die Strukturierung der Daten zu wissen, kann man dir bei den "extrem verschiedenen" Messdaten schlecht weiterhelfen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Owe

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.07.2015, 11:30     Titel:
  Antworten mit Zitat      
Ok, aufjeden Fall danke dir !!
 
Owe

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.07.2015, 11:55     Titel:
  Antworten mit Zitat      
Hallo Harlad,

eine Frage bitte noch!

kennst du der sog. Schwellenwert in matlab? Vielleicht hilft es mir um alle Zeiten zu bestimmen.

Gruß
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.07.2015, 12:29     Titel:
  Antworten mit Zitat      
Hallo,

ein Schwellwert ist einfach ein Wert, über / unter dem man "etwas" macht.
Logische Indizierung ist eine Technik, in der man mit Schwellwerten arbeiten kann.

Grüße,
Harald
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.