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

Timer initialisieren

 

tommylabamba
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 87
Anmeldedatum: 08.08.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.09.2012, 13:17     Titel: Timer initialisieren
  Antworten mit Zitat      
Im Matlab gibt es den Befehl timer.

Man kann den timer auch in einer Zeile definieren und initialisieren.

Leider weiss ich nicht wie genau.

Einzelne Teile der Definition sind mir nicht bekannt auch kann ich der help nichts konkretes entnehmen.

Hat jemand schon damit Erfahrung und ein klares How To in Deutsch vielleicht mit einem klaren Beispiel?
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 11.09.2012, 16:37     Titel: Re: Timer initialisieren
  Antworten mit Zitat      
Hallo tommylabamba,

Wieso kannst Du dem Help-Text nichts konkretes entnehmen? Wie sieht es mit dem Doc-Text aus?
Ein allgemeins How-To hieße, den Help-Text nochmal ins Deutsche zu übersetzen. Das ist nicht effizient.
Eine konkrete Frage wäre deutlich einfacher zu beantworten.

Ob man einen Timer in einer oder zwei Zeilen erstellt und startet, spielt keine große Rolle, oder?
Code:
TimerH = timer(...)
start(TimerH)

% Oder
start(timer(...))

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
tommylabamba
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 87
Anmeldedatum: 08.08.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.09.2012, 16:57     Titel:
  Antworten mit Zitat      
Also für den Timer habe ich Laufzeiten im Workspace im cell
d.h. Laufzeiten{1}(:,2) --> min.Laufzeit=5 für Zeile 1, min.Laufzeit=3 für Zeile 2, min.Laufzeit=7 für Zeile 3 ... usw.


Zum Beispiel:
Wenn jetzt angenommen ein GO_Befehl=[1;0;0;1] kommt dann soll bei den Zeilen die 1 im GO_Befehl haben die min. Laufzeit los gehen und runterzählen (-1) mit der Simulationszeit solange nicht 0 erreicht ist.

Wenn 0 erreicht ist soll er wieder die Startwerte siehe oben annehmen und bei GO_Befehl starten.

Brauch ich dafür 4 Timer wenn 4 Zeilen (Werte) in Laufzeiten{1}(1:4,2) sind oder reicht nur 1 Timer?

Wie initialisiere ich das?
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 16.09.2012, 00:09     Titel:
  Antworten mit Zitat      
Hallo tommylabamba,

Ich kann Dir nicht folgen. Was ist "Laufzeiten im Workspace im cell haben"? Was ist ein "GO_Befehl" und woher "kommt" er? Was ist "runterzählen (-1)" und was ist die "Simulationszeit". Wer soll welche Startwerte annehmen, wenn 0 erreicht ist?
Du siehst, ich habe keinen einzigen Satz verstanden.

Vielleicht hilft es, wenn Du kurz erklärst, welches Problem Du zu lösen versuchst.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
tommylabamba
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 87
Anmeldedatum: 08.08.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.09.2012, 09:36     Titel:
  Antworten mit Zitat      
Also ich versuche es genauer zu beschreiben.

Laufzeiten im Workspace im Cell Form sind Werte in einer Matrix.
z.B. gibt es 10 Matrizen mit unterschiedlichen Zeilenlängen aber gleichen Spaltengrößen im Cell. Die Laufzeit befindet sich in der 2 Spalte der ersten Matrix. Die Struktur der Werte in den Matrizen ist gleich. d.h. auch in der 2ten Matrix stehen unter der 2ten Spalte die Werte für die Laufzeiten.
Nun möchte ich gerne diese Laufzeiten für die Initialisierung der 4 Timer nehmen. (z.B. Zeile 1 = Wert 5, Zeile 2 = Wert 7 usw.)

Die erste Frage wäre, wie bilde ich 4 Timer am schnellsten?
Wie starte und stoppe ich den Timer und wie kehrt der Timer zum vorherigen Wert zurück?

Muss ich einzeln die Timer initialisieren oder gibt es eine andere Möglichkeit? (vor dem Hintergrund es werden wahrscheinlich mehr als 4 Timer).

Der GO_Befehl käme von außen in die Matlab Function.
Es wäre ein array. GO_Befehl = [1;0;0;1]; (bei 1 soll der Timer starten).
Pro Zyklus soll er entweder hart den Wert 5 nehmen und um -1 verringern und den Wert 4 in die Matrix zurückschreiben, oder (wahrscheinlich einfacher) Timer soll mit der 5 intern arbeiten und um -1 verringern. Ich brauche nur dann eine Rückmeldung wann die 5 Durchläufe vom Timer abgelaufen sind. Danach soll sich wieder der Timer neu mit der 5 belegen und bei GO_Befehel starten.
Die Startwerte stehen wie gesagt in der Matrix im Cell im Workspace in der 2ten Spalte. Ganz wichtig: Wenn der Timer am laufen ist, soll er GO_Befehle ignorieren.

Die zweite Frage ist, kann der Timer mit den Werten aus der Matrix arbeiten? Wenn ja, wie? Wie bekomme ich eine Rückmeldung vom Timer wann dieser abgelaufen ist?
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 16.09.2012, 21:03     Titel:
  Antworten mit Zitat      
Hallo tommylabamba,

Zitat:
Laufzeiten im Workspace im Cell Form sind Werte in einer Matrix.

Hier steige ich bereits beim ersten Satz aus. Ich habe keine Ahnung, was dies bedeuten soll.

Zitat:
Die Laufzeit befindet sich in der 2 Spalte der ersten Matrix. Die Struktur der Werte in den Matrizen ist gleich. d.h. auch in der 2ten Matrix stehen unter der 2ten Spalte die Werte für die Laufzeiten.

Bitte lies Dir dies nochmal in Ruhe durch und versuche Dir vorzustellen, dass Du weder Dein physikalisches Problem noch Deinen Code jemals gesehen hättest. Wäre Dir dann klar, worum es geht?

Was z.B. könnte "Zeile 1 = Wert 5" heißen?

Zitat:
Der GO_Befehl käme von außen in die Matlab Function.

Ich habe eine ungefähre Vorstellung davon, was Du mit den Timern erreichen möchtest. Aber diesen Satz verstehe ich nicht:
Zitat:
Danach soll sich wieder der Timer neu mit der 5 belegen und bei GO_Befehel starten.

"Bei GO_Befehl" ist in Deinen Augen sicherlich offensichtlich, als Nicht-Eingeweihter ist das aber ein Rätsel. Ein TIMER startet, wenn er per "start()"-Befehl gestartet wird. Ein TIMER nimmt aber keine Befehle entgegen.

Bitte erkläre kurz, welches Problem Du eigentlich lösen möchtest. Was hat es mit Echt-Zeit zu tun? Welche Signal möchtest Du eigentlich verarbeiten?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
tommylabamba
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 87
Anmeldedatum: 08.08.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.09.2012, 23:46     Titel:
  Antworten mit Zitat      
OK. Tut mir leid falls ich mich zu unprofessionel ausdrücke.

Fangen wir mit kleiner Frage zu Timer an:

Der Timer muss doch wissen, wie lange er läuft, oder? d.h. der Timer benötigt einen Wert.
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 17.09.2012, 12:22     Titel:
  Antworten mit Zitat      
Hallo tommylabamba,

Zitat:
Der Timer muss doch wissen, wie lange er läuft, oder? d.h. der Timer benötigt einen Wert.

Hast Du Dir bereits "help timer" und "doc timer" durchgelesen? Meinst Du die Anzahl der bisherigen Aufrufe, die Zeit, die seit dem Start vergangen ist oder die Gesamt-Anzahl der Aufrufe, die vergehen soll bis der Timer stoppt? All dies wird in der Dokumentation umfassend erklärt.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
tommylabamba
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 87
Anmeldedatum: 08.08.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.09.2012, 12:46     Titel:
  Antworten mit Zitat      
Ich meine die Zeit die seit Start vergangen ist.
Diese Zeit soll aber bei einen festen von mir definierten Wert automatisch stoppen und mir eine Rückmeldung geben das diese feste Zeit erreicht ist.
Danach soll der Timer wieder auf Start warten... und so weiter...
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 - 2025 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.