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

Zeitverlaufe mit Start nach aktueller Uhrzeit

 

Hmpfx
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 26.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.08.2013, 16:15     Titel: Zeitverlaufe mit Start nach aktueller Uhrzeit
  Antworten mit Zitat      
Hallo Community,

ich stehe gerade vor folgendem Problem.

Ich möchte in meiner Simulation auf einen Tagesverlauf von Messdaten zugreifen. Die Messdaten sind z.B. mit einen Zeitvektor von 0:86400 sec (=1Tag) und einem dazugehörigem Signalvektor aufgebaut.
Die Daten kann ich theo. mit dem "From Workspace"Block in meine Simulation reinbringen, dass ist mir soweit klar. Allerdings habe ich an meiner Simulation ein Gerät hängen, welchem ich die Daten übergebe. Dieses Gerät hat eine interne Uhr und macht zu bestimmten Uhrzeiten bestimmte Sachen.
Deswegen, wenn ich meine Simulation um 16:00 Uhr starte, will ich nicht das mein Tagesverlauf um 00:00 anfängt sonder um 16:00 Uhr.
Dieser soll dann auch nicht um 24:00 Uhr (=86400s) stoppen sondern dann wieder bei Sekunde 0 wieder anfangen.

Hier nochmal mit Beispiel
Time=[1, 2, 3, 4]
Signal=[2, 4, 6, 8]
Ich will nun dass die Simulation mit Time=3 beginnt und bis Time=2 einen Zirkel macht, die Ausgabe sähe dann so aus
Time_out=[3,4,1,2]
Signal_out=[6,8,2,4]

Die Messdaten zu ändern wie z.B. nimm Signalvektor zu bestimmten Uhrzeit (z.B. 16:00) und setze den Wert auf Zeitvektor(1) und interpolier mal durch, macht hier kein Sinn, da ich die Simulation evtl auch um 16:01 starte.

Wäre cool wenn mir jemand in dem Problem-WirrWarr meine Gedanken ordnen könnte, habe gerade Kopfschmerzen Smile

Danke
Private Nachricht senden Benutzer-Profile anzeigen


Hmpfx
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 26.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.08.2013, 18:44     Titel:
  Antworten mit Zitat      
Beim rumhirnen habe ich jetzt doch die Messdaten verändert. So würde es zwar schon gehen, aber vielleicht gibt es noch bessere/andere Möglichkeiten, da es schöner wäre wenn das in der Simulation geschieht und nicht vorab bei der Initialisierung rein muss.

Wäre für jede Idee dankbar.

Für die wos interessiert hier der Code. Dabei sind LastPwr und P_pv_norm Messdatenvektoren mit zwei Spalten (1.Spalte Zeit in Sec./2.Spalte Wert)

Code:

% dbstop if error

% Abfrage ob Profilverlauf geändert werden soll
zeitverlauf = questdlg('Profilverläufe zu bestimmter Zeit starten?', 'Startpunkt Profil', 'Ja','Nein','Nein');

switch zeitverlauf  
    case {'Ja'}
        %Abfrage was der neue Startwert (Uhrzeit) sein soll
        start_uhr=str2double(cell2mat(inputdlg(sprintf('Bitte die gewünschte Startzeit angeben? \n in 15min und auf 100 basierend'),'Wähle Startpunkt')))*3600;
           
        t=LastPwr(:,1); %Hilfswariable
        s=LastPwr(:,2);
        hilf_uhr=find(t==start_uhr); %Finde Startwert in Zeitvektor
       
        n=s(hilf_uhr:length(s)); %Generieren des neuen Signalvektors
        n(length(s)-hilf_uhr+1:length(s))=s(1:hilf_uhr);
       
        LastPwr1(:,1)=LastPwr(:,1); %Erzeuge neuen Profilvektor
        LastPwr1(:,2)=n;
       
        clear t;clear s; clear n; clear hilf_uhr
        %alles nochmal mit zweiten Messdaten
        t=P_pv_norm(:,1);
        s=P_pv_norm(:,2);
        hilf_uhr=find(t==start_uhr);
       
        n=s(hilf_uhr:length(s));
        n(length(s)-hilf_uhr+1:length(s))=s(1:hilf_uhr);
       
        P_pv_norm1(:,1)=P_pv_norm(:,1);
        P_pv_norm1(:,2)=n;
       
    case {'Nein'}
        LastPwr1=LastPwr;
        P_pv_norm1=P_pv_norm;
end

% subplot(2,1,1)
% plot(LastPwr1(:,1)/3600,LastPwr(:,2),LastPwr1(:,1)/3600,LastPwr1(:,2))
% subplot(2,1,2)
% plot(P_pv_norm1(:,1)/3600,P_pv_norm(:,2),P_pv_norm1(:,1)/3600,P_pv_norm1(:,2))
 


Wenns Schönheitsfehler gibt bitte melden Smile

Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

wie wäre es mit
Code:

bzw.
Code:


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

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 26.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2013, 08:21     Titel:
  Antworten mit Zitat      
Danke für die Verbesserung, aber da die Initialisierung meines Systems bis zum wirklichen starten bis zu 10min dauert, ist es geschickter, wenn ich den Startpunkt selber wähle und dann zur richtigen Zeit auf Simulation starten klicke.

Unschön, ich weiß, aber vielleicht hat jemand noch eine bessere Idee?

Danke
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.